subcatprod
This commit is contained in:
@@ -7,6 +7,7 @@ const Producer = require('../models/producer');
|
|||||||
const Storehouse = require('../models/storehouse');
|
const Storehouse = require('../models/storehouse');
|
||||||
const Provider = require('../models/provider');
|
const Provider = require('../models/provider');
|
||||||
const CatProd = require('../models/catprod');
|
const CatProd = require('../models/catprod');
|
||||||
|
const SubCatProd = require('../models/subcatprod');
|
||||||
const Gasordine = require('../models/gasordine');
|
const Gasordine = require('../models/gasordine');
|
||||||
const Scontistica = require('../models/scontistica');
|
const Scontistica = require('../models/scontistica');
|
||||||
|
|
||||||
@@ -153,6 +154,9 @@ const productSchema = new Schema({
|
|||||||
cat_name: {
|
cat_name: {
|
||||||
type: String,
|
type: String,
|
||||||
},
|
},
|
||||||
|
subcat_name: {
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
sconto1: {
|
sconto1: {
|
||||||
type: String,
|
type: String,
|
||||||
},
|
},
|
||||||
@@ -318,6 +322,14 @@ module.exports.findAllIdApp = async function (idapp, code, id) {
|
|||||||
as: 'catprods'
|
as: 'catprods'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
$lookup: {
|
||||||
|
from: 'subcatprods',
|
||||||
|
localField: 'idSubCatProds',
|
||||||
|
foreignField: '_id',
|
||||||
|
as: 'subcatprods'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
$lookup: {
|
$lookup: {
|
||||||
from: 'scontisticas',
|
from: 'scontisticas',
|
||||||
@@ -696,6 +708,7 @@ module.exports.singlerecconvert_AfterImport_AndSave = async function (idapp, pro
|
|||||||
|
|
||||||
const objDelete = {
|
const objDelete = {
|
||||||
cat_name: 1,
|
cat_name: 1,
|
||||||
|
subcat_name: 1,
|
||||||
producer_name: 1,
|
producer_name: 1,
|
||||||
provider_name: 1,
|
provider_name: 1,
|
||||||
magazzino_name: 1,
|
magazzino_name: 1,
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ const productInfoSchema = new Schema({
|
|||||||
type: String,
|
type: String,
|
||||||
},
|
},
|
||||||
idCatProds: [{ type: Schema.Types.ObjectId, ref: 'CatProd' }],
|
idCatProds: [{ type: Schema.Types.ObjectId, ref: 'CatProd' }],
|
||||||
|
idSubCatProds: [{ type: Schema.Types.ObjectId, ref: 'SubCatProd' }],
|
||||||
color: {
|
color: {
|
||||||
type: String
|
type: String
|
||||||
},
|
},
|
||||||
@@ -131,6 +132,14 @@ module.exports.findAllIdApp = async function (idapp, code, id) {
|
|||||||
as: 'catprods'
|
as: 'catprods'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
$lookup: {
|
||||||
|
from: 'subcatprods',
|
||||||
|
localField: 'idSubCatProds',
|
||||||
|
foreignField: '_id',
|
||||||
|
as: 'subcatprods'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
$sort: {
|
$sort: {
|
||||||
name: 1 // 1 for ascending order, -1 for descending order
|
name: 1 // 1 for ascending order, -1 for descending order
|
||||||
|
|||||||
65
src/server/models/subcatprod.js
Executable file
65
src/server/models/subcatprod.js
Executable file
@@ -0,0 +1,65 @@
|
|||||||
|
|
||||||
|
const mongoose = require('mongoose').set('debug', false)
|
||||||
|
const Schema = mongoose.Schema;
|
||||||
|
|
||||||
|
mongoose.Promise = global.Promise;
|
||||||
|
mongoose.level = "F";
|
||||||
|
|
||||||
|
const tools = require('../tools/general');
|
||||||
|
|
||||||
|
// Resolving error Unknown modifier: $pushAll
|
||||||
|
mongoose.plugin(schema => {
|
||||||
|
schema.options.usePushEach = true
|
||||||
|
});
|
||||||
|
|
||||||
|
const SubCatProdSchema = new Schema({
|
||||||
|
idapp: {
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
|
idCatProd: {
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
|
name: {
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
|
img: {
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
|
icon: {
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
|
color: {
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
SubCatProdSchema.statics.getAllCategories = function (callback) {
|
||||||
|
SubCatProd.find(callback)
|
||||||
|
}
|
||||||
|
|
||||||
|
SubCatProdSchema.statics.getSubCatProdById = function (id, callback) {
|
||||||
|
SubCatProd.findById(id, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
SubCatProdSchema.statics.getFieldsForSearch = function () {
|
||||||
|
return [{ field: 'name', type: tools.FieldType.string }]
|
||||||
|
};
|
||||||
|
|
||||||
|
SubCatProdSchema.statics.executeQueryTable = function (idapp, params) {
|
||||||
|
return tools.executeQueryTable(this, idapp, params);
|
||||||
|
};
|
||||||
|
|
||||||
|
SubCatProdSchema.statics.findAllIdApp = async function (idapp) {
|
||||||
|
const myfind = { idapp };
|
||||||
|
|
||||||
|
return await SubCatProd.find(myfind).sort({ name: 1 });
|
||||||
|
};
|
||||||
|
|
||||||
|
const SubCatProd = mongoose.model('SubCatProd', SubCatProdSchema);
|
||||||
|
|
||||||
|
SubCatProd.createIndexes((err) => {
|
||||||
|
if (err) throw err;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = SubCatProd;
|
||||||
@@ -11,6 +11,7 @@ const { City } = require('../models/city');
|
|||||||
const Product = require('../models/product');
|
const Product = require('../models/product');
|
||||||
const ProductInfo = require('../models/productInfo');
|
const ProductInfo = require('../models/productInfo');
|
||||||
const CatProd = require('../models/catprod');
|
const CatProd = require('../models/catprod');
|
||||||
|
const SubCatProd = require('../models/subcatprod');
|
||||||
|
|
||||||
var { authenticate } = require('../middleware/authenticate');
|
var { authenticate } = require('../middleware/authenticate');
|
||||||
|
|
||||||
@@ -66,6 +67,7 @@ router.post('/import', authenticate, async (req, res) => {
|
|||||||
name: product.name,
|
name: product.name,
|
||||||
link: product.link,
|
link: product.link,
|
||||||
idCatProds: [],
|
idCatProds: [],
|
||||||
|
idSubCatProds: [],
|
||||||
img: 'upload/products/' + product.code + '.jpg',
|
img: 'upload/products/' + product.code + '.jpg',
|
||||||
weight: product.weight,
|
weight: product.weight,
|
||||||
unit: tools.getIdUnitsByText(product.unit),
|
unit: tools.getIdUnitsByText(product.unit),
|
||||||
@@ -91,6 +93,27 @@ router.post('/import', authenticate, async (req, res) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (product.subcat_name) {
|
||||||
|
arrsubcat = product.subcat_name.trim().split(',');
|
||||||
|
for (const mysubcat of arrsubcat) {
|
||||||
|
let mysubcatstr = mysubcat.trim();
|
||||||
|
|
||||||
|
// Cerca la Sotto Categoria
|
||||||
|
let recsubcateg = await SubCatProd.findOne({ idapp, name: mysubcatstr }).lean();
|
||||||
|
if (!recsubcateg) {
|
||||||
|
// Non esiste questa Sotto Categoria, quindi la creo !
|
||||||
|
const idCatProd = reccateg ? reccateg._id : ''
|
||||||
|
recsubcateg = new SubCatProd({ idapp, name: mycatstr, idCatProd });
|
||||||
|
ris = await recsubcateg.save();
|
||||||
|
recsubcateg = await SubCatProd.findOne({ idapp, name: mysubcatstr, idCatProd }).lean();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (recsubcateg) {
|
||||||
|
productInfo.idSubCatProds.push(recsubcateg._id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!product.hasOwnProperty('active')) {
|
if (!product.hasOwnProperty('active')) {
|
||||||
product.active = true;
|
product.active = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ const OrdersCart = require('../models/orderscart');
|
|||||||
const Storehouse = require('../models/storehouse');
|
const Storehouse = require('../models/storehouse');
|
||||||
const Provider = require('../models/provider');
|
const Provider = require('../models/provider');
|
||||||
const CatProd = require('../models/catprod');
|
const CatProd = require('../models/catprod');
|
||||||
|
const SubCatProd = require('../models/subcatprod');
|
||||||
const Gasordine = require('../models/gasordine');
|
const Gasordine = require('../models/gasordine');
|
||||||
const Product = require('../models/product');
|
const Product = require('../models/product');
|
||||||
const ProductInfo = require('../models/productInfo');
|
const ProductInfo = require('../models/productInfo');
|
||||||
@@ -1440,6 +1441,7 @@ function load(req, res, version) {
|
|||||||
let storehouses = Storehouse.findAllIdApp(idapp);
|
let storehouses = Storehouse.findAllIdApp(idapp);
|
||||||
let providers = Provider.findAllIdApp(idapp);
|
let providers = Provider.findAllIdApp(idapp);
|
||||||
let catprods = CatProd.findAllIdApp(idapp);
|
let catprods = CatProd.findAllIdApp(idapp);
|
||||||
|
let subcatprods = SubCatProd.findAllIdApp(idapp);
|
||||||
let gasordines = Gasordine.findAllIdApp(idapp);
|
let gasordines = Gasordine.findAllIdApp(idapp);
|
||||||
let products = Product.findAllIdApp(idapp);
|
let products = Product.findAllIdApp(idapp);
|
||||||
let productInfos = ProductInfo.findAllIdApp(idapp);
|
let productInfos = ProductInfo.findAllIdApp(idapp);
|
||||||
@@ -1536,6 +1538,7 @@ function load(req, res, version) {
|
|||||||
products,
|
products,
|
||||||
productInfos,
|
productInfos,
|
||||||
catprods,
|
catprods,
|
||||||
|
subcatprods,
|
||||||
]).then((arrdata) => {
|
]).then((arrdata) => {
|
||||||
// console.table(arrdata);
|
// console.table(arrdata);
|
||||||
let myuser = req.user;
|
let myuser = req.user;
|
||||||
@@ -1624,6 +1627,7 @@ function load(req, res, version) {
|
|||||||
products: arrdata[43],
|
products: arrdata[43],
|
||||||
productInfos: arrdata[44],
|
productInfos: arrdata[44],
|
||||||
catprods: arrdata[45],
|
catprods: arrdata[45],
|
||||||
|
subcatprods: arrdata[46],
|
||||||
});
|
});
|
||||||
|
|
||||||
const prova = 1;
|
const prova = 1;
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ const Cart = require('../models/cart');
|
|||||||
const CartClass = require('../modules/Cart');
|
const CartClass = require('../modules/Cart');
|
||||||
const Product = require('../models/product');
|
const Product = require('../models/product');
|
||||||
const CatProd = require('../models/catprod');
|
const CatProd = require('../models/catprod');
|
||||||
|
const SubCatProd = require('../models/subcatprod');
|
||||||
const ProductInfo = require('../models/productInfo');
|
const ProductInfo = require('../models/productInfo');
|
||||||
const Order = require('../models/order');
|
const Order = require('../models/order');
|
||||||
const OrdersCart = require('../models/orderscart');
|
const OrdersCart = require('../models/orderscart');
|
||||||
@@ -1316,6 +1317,10 @@ async function eseguiDbOp(idapp, mydata, locale, req, res) {
|
|||||||
|
|
||||||
await CatProd.collection.drop();
|
await CatProd.collection.drop();
|
||||||
|
|
||||||
|
} else if (mydata.dbop === 'dropSubCatProd') {
|
||||||
|
|
||||||
|
await SubCatProd.collection.drop();
|
||||||
|
|
||||||
} else if (mydata.dbop === 'dropAllOrders') {
|
} else if (mydata.dbop === 'dropAllOrders') {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ const Gasordine = require('../models/gasordine');
|
|||||||
const Scontistica = require('../models/scontistica');
|
const Scontistica = require('../models/scontistica');
|
||||||
const Department = require('../models/department');
|
const Department = require('../models/department');
|
||||||
const CatProd = require('../models/catprod');
|
const CatProd = require('../models/catprod');
|
||||||
|
const SubCatProd = require('../models/subcatprod');
|
||||||
const { Category } = require('../models/category');
|
const { Category } = require('../models/category');
|
||||||
const ShareWithUs = require('../models/sharewithus');
|
const ShareWithUs = require('../models/sharewithus');
|
||||||
const Site = require('../models/site');
|
const Site = require('../models/site');
|
||||||
@@ -122,6 +123,8 @@ module.exports = {
|
|||||||
mytable = Category;
|
mytable = Category;
|
||||||
else if (tablename === 'catprods')
|
else if (tablename === 'catprods')
|
||||||
mytable = CatProd;
|
mytable = CatProd;
|
||||||
|
else if (tablename === 'subcatprods')
|
||||||
|
mytable = SubCatProd;
|
||||||
else if (tablename === 'sharewithus')
|
else if (tablename === 'sharewithus')
|
||||||
mytable = ShareWithUs;
|
mytable = ShareWithUs;
|
||||||
else if (tablename === 'sites')
|
else if (tablename === 'sites')
|
||||||
|
|||||||
Reference in New Issue
Block a user