subcatprod
This commit is contained in:
@@ -7,6 +7,7 @@ const Producer = require('../models/producer');
|
||||
const Storehouse = require('../models/storehouse');
|
||||
const Provider = require('../models/provider');
|
||||
const CatProd = require('../models/catprod');
|
||||
const SubCatProd = require('../models/subcatprod');
|
||||
const Gasordine = require('../models/gasordine');
|
||||
const Scontistica = require('../models/scontistica');
|
||||
|
||||
@@ -153,6 +154,9 @@ const productSchema = new Schema({
|
||||
cat_name: {
|
||||
type: String,
|
||||
},
|
||||
subcat_name: {
|
||||
type: String,
|
||||
},
|
||||
sconto1: {
|
||||
type: String,
|
||||
},
|
||||
@@ -318,6 +322,14 @@ module.exports.findAllIdApp = async function (idapp, code, id) {
|
||||
as: 'catprods'
|
||||
}
|
||||
},
|
||||
{
|
||||
$lookup: {
|
||||
from: 'subcatprods',
|
||||
localField: 'idSubCatProds',
|
||||
foreignField: '_id',
|
||||
as: 'subcatprods'
|
||||
}
|
||||
},
|
||||
{
|
||||
$lookup: {
|
||||
from: 'scontisticas',
|
||||
@@ -696,6 +708,7 @@ module.exports.singlerecconvert_AfterImport_AndSave = async function (idapp, pro
|
||||
|
||||
const objDelete = {
|
||||
cat_name: 1,
|
||||
subcat_name: 1,
|
||||
producer_name: 1,
|
||||
provider_name: 1,
|
||||
magazzino_name: 1,
|
||||
|
||||
@@ -37,6 +37,7 @@ const productInfoSchema = new Schema({
|
||||
type: String,
|
||||
},
|
||||
idCatProds: [{ type: Schema.Types.ObjectId, ref: 'CatProd' }],
|
||||
idSubCatProds: [{ type: Schema.Types.ObjectId, ref: 'SubCatProd' }],
|
||||
color: {
|
||||
type: String
|
||||
},
|
||||
@@ -131,6 +132,14 @@ module.exports.findAllIdApp = async function (idapp, code, id) {
|
||||
as: 'catprods'
|
||||
}
|
||||
},
|
||||
{
|
||||
$lookup: {
|
||||
from: 'subcatprods',
|
||||
localField: 'idSubCatProds',
|
||||
foreignField: '_id',
|
||||
as: 'subcatprods'
|
||||
}
|
||||
},
|
||||
{
|
||||
$sort: {
|
||||
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 ProductInfo = require('../models/productInfo');
|
||||
const CatProd = require('../models/catprod');
|
||||
const SubCatProd = require('../models/subcatprod');
|
||||
|
||||
var { authenticate } = require('../middleware/authenticate');
|
||||
|
||||
@@ -66,6 +67,7 @@ router.post('/import', authenticate, async (req, res) => {
|
||||
name: product.name,
|
||||
link: product.link,
|
||||
idCatProds: [],
|
||||
idSubCatProds: [],
|
||||
img: 'upload/products/' + product.code + '.jpg',
|
||||
weight: product.weight,
|
||||
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')) {
|
||||
product.active = true;
|
||||
}
|
||||
|
||||
@@ -67,6 +67,7 @@ const OrdersCart = require('../models/orderscart');
|
||||
const Storehouse = require('../models/storehouse');
|
||||
const Provider = require('../models/provider');
|
||||
const CatProd = require('../models/catprod');
|
||||
const SubCatProd = require('../models/subcatprod');
|
||||
const Gasordine = require('../models/gasordine');
|
||||
const Product = require('../models/product');
|
||||
const ProductInfo = require('../models/productInfo');
|
||||
@@ -1440,6 +1441,7 @@ function load(req, res, version) {
|
||||
let storehouses = Storehouse.findAllIdApp(idapp);
|
||||
let providers = Provider.findAllIdApp(idapp);
|
||||
let catprods = CatProd.findAllIdApp(idapp);
|
||||
let subcatprods = SubCatProd.findAllIdApp(idapp);
|
||||
let gasordines = Gasordine.findAllIdApp(idapp);
|
||||
let products = Product.findAllIdApp(idapp);
|
||||
let productInfos = ProductInfo.findAllIdApp(idapp);
|
||||
@@ -1536,6 +1538,7 @@ function load(req, res, version) {
|
||||
products,
|
||||
productInfos,
|
||||
catprods,
|
||||
subcatprods,
|
||||
]).then((arrdata) => {
|
||||
// console.table(arrdata);
|
||||
let myuser = req.user;
|
||||
@@ -1624,6 +1627,7 @@ function load(req, res, version) {
|
||||
products: arrdata[43],
|
||||
productInfos: arrdata[44],
|
||||
catprods: arrdata[45],
|
||||
subcatprods: arrdata[46],
|
||||
});
|
||||
|
||||
const prova = 1;
|
||||
|
||||
@@ -37,6 +37,7 @@ const Cart = require('../models/cart');
|
||||
const CartClass = require('../modules/Cart');
|
||||
const Product = require('../models/product');
|
||||
const CatProd = require('../models/catprod');
|
||||
const SubCatProd = require('../models/subcatprod');
|
||||
const ProductInfo = require('../models/productInfo');
|
||||
const Order = require('../models/order');
|
||||
const OrdersCart = require('../models/orderscart');
|
||||
@@ -1316,6 +1317,10 @@ async function eseguiDbOp(idapp, mydata, locale, req, res) {
|
||||
|
||||
await CatProd.collection.drop();
|
||||
|
||||
} else if (mydata.dbop === 'dropSubCatProd') {
|
||||
|
||||
await SubCatProd.collection.drop();
|
||||
|
||||
} else if (mydata.dbop === 'dropAllOrders') {
|
||||
|
||||
try {
|
||||
|
||||
@@ -66,6 +66,7 @@ const Gasordine = require('../models/gasordine');
|
||||
const Scontistica = require('../models/scontistica');
|
||||
const Department = require('../models/department');
|
||||
const CatProd = require('../models/catprod');
|
||||
const SubCatProd = require('../models/subcatprod');
|
||||
const { Category } = require('../models/category');
|
||||
const ShareWithUs = require('../models/sharewithus');
|
||||
const Site = require('../models/site');
|
||||
@@ -122,6 +123,8 @@ module.exports = {
|
||||
mytable = Category;
|
||||
else if (tablename === 'catprods')
|
||||
mytable = CatProd;
|
||||
else if (tablename === 'subcatprods')
|
||||
mytable = SubCatProd;
|
||||
else if (tablename === 'sharewithus')
|
||||
mytable = ShareWithUs;
|
||||
else if (tablename === 'sites')
|
||||
|
||||
Reference in New Issue
Block a user