subcatprod

This commit is contained in:
Surya Paolo
2024-01-12 13:02:59 +01:00
parent 9b4a9dbf28
commit c63e345285
7 changed files with 122 additions and 0 deletions

View File

@@ -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,

View File

@@ -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
View 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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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 {

View File

@@ -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')