{ maxlength: 0 });
function handleUpdate(newList) {
@@ -302,6 +312,14 @@ export default defineComponent({
noexp: true,
notsortable: true,
},
+ {
+ name: 'addtocart',
+ label: 'Carrello',
+ field: 'addtocart',
+ align: 'center',
+ noexp: true,
+ notsortable: true,
+ },
{ name: 'name', label: 'Titolo', field: 'name', align: 'left' },
{
name: 'sottotitolo',
@@ -436,18 +454,28 @@ export default defineComponent({
const allColumnsComputed = computed(() => {
return allColumns.value.filter(
- (col) => !col.visu || col.visu === costanti.VISUCAMPI.PER_TUTTI || (col.visu === costanti.VISUCAMPI.PER_EDITORE && tools.isCollaboratore())
+ (col) =>
+ !col.visu ||
+ col.visu === costanti.VISUCAMPI.PER_TUTTI ||
+ (col.visu === costanti.VISUCAMPI.PER_EDITORE && tools.isCollaboratore())
);
});
async function mounted() {
- console.log('mounted CProductTable');
+ //myorder = ProductStore.createMyOrder()
+ // ProductStore.initproduct(myorder);
+
+ internalProducts.value.forEach((p: IProduct) => {
+ p.myorder = ProductStore.createMyOrder();
+ });
+
+ // console.log('mounted CProductTable');
loading.value = true;
if (props.table === shared_consts.TABLES_CATALOG) {
selectedColumns.value = selectedColumns_Catalogs.value;
} else {
- // "products"
+ // "ProductStore"
selectedColumns.value = tools.isUtente()
? selectedColumns_Utenti.value
: selectedColumns_Editori.value;
@@ -455,10 +483,10 @@ export default defineComponent({
addstr.value = tools.addstrCookie(props.table);
- if (props.table === 'products') {
+ if (props.table === shared_consts.TABLES_PRODUCTS) {
allColumns.value = allColumns_Catalog.value;
isVisibleEditBtn.value = true;
- } else if (props.table === 'catalogs') {
+ } else if (props.table === shared_consts.TABLES_CATALOG) {
allColumns.value = allColumns_Raccolta.value;
isVisibleEditBtn.value = false;
}
@@ -522,6 +550,8 @@ export default defineComponent({
return tools.getstrDate(catalog.data_online);
case 'data_online_stampa':
return tools.getstrDate(catalog.data_online_stampa);
+ case 'addtocart':
+ return true;
case 'image':
return catalog.foto_collana?.imagefile
? tools.getFullFileNameByImageFile(
@@ -535,7 +565,10 @@ export default defineComponent({
switch (field.field) {
case 'image':
return element.productInfo?.imagefile
- ? tools.getFullFileNameByImageFile('productInfos', element.productInfo?.imagefile)
+ ? tools.getFullFileNameByImageFile(
+ 'productInfos',
+ element.productInfo?.imagefile
+ )
: element.productInfo?.image_link;
case 'name':
@@ -576,21 +609,25 @@ export default defineComponent({
return element.arrvariazioni?.[0]?.edizione;
case 'casaeditrice':
- return products.getCasaEditriceByIdPublisher(element.productInfo?.idPublisher);
+ return ProductStore.getCasaEditriceByIdPublisher(
+ element.productInfo?.idPublisher
+ );
case 'idCollana':
return tools.formatCollane(element.productInfo?.idCollana);
case 'stato':
- return products.getDescrStatiProdottoByIdStatoProdotto(
+ return ProductStore.getDescrStatiProdottoByIdStatoProdotto(
element.productInfo?.idStatoProdotto || ''
);
case 'tipologia':
- return products.getDescrByIdTipologia(element.arrvariazioni?.[0]?.idTipologia || '');
+ return ProductStore.getDescrByIdTipologia(
+ element.arrvariazioni?.[0]?.idTipologia || ''
+ );
case 'tipoformato':
- return products.getDescrByIdTipoFormato(
+ return ProductStore.getDescrByIdTipoFormato(
element.arrvariazioni?.[0]?.idTipoFormato || ''
);
@@ -599,11 +636,11 @@ export default defineComponent({
case 'prezzo':
// return element.price ? '€ ' + element.price.toFixed(2) : '';
- return '€ ' + element.arrvariazioni?.[0]?.price.toFixed(2);
+ return '€ ' + element.arrvariazioni?.[0]?.price?.toFixed(2);
case 'prezzo_sconto':
// return element.sale_price ? '€ ' + element.sale_price.toFixed(2) : '';
- return '€ ' + element.arrvariazioni?.[0]?.sale_price.toFixed(2);
+ return '€ ' + element.arrvariazioni?.[0]?.sale_price?.toFixed(2);
case 'rank3M':
return element.productInfo?.rank3M;
@@ -637,7 +674,9 @@ export default defineComponent({
case 'quantity':
if (tools.isUtente())
- return tools.getDescrQuantitàByQuantity(element.arrvariazioni?.[0]?.quantita);
+ return tools.getDescrQuantitàByQuantity(
+ element.arrvariazioni?.[0]?.quantita
+ );
else return element.arrvariazioni?.[0]?.quantita;
default:
@@ -659,13 +698,13 @@ export default defineComponent({
: 'text-red';
case 'stato':
- if (products.isProssimaUscita(element.productInfo)) {
+ if (ProductStore.isProssimaUscita(element.productInfo)) {
return 'bg-purple-3';
}
- if (products.isPrevendita(element.productInfo)) {
+ if (ProductStore.isPrevendita(element.productInfo)) {
return 'bg-blue-3';
}
- if (products.isNonVendibile(element.productInfo)) {
+ if (ProductStore.isNonVendibile(element.productInfo)) {
return 'bg-grey';
}
return '';
@@ -680,14 +719,14 @@ export default defineComponent({
}
case 'quantity':
- if (products.isPubblicato(element.productInfo)) {
- if (products.isQtaLimitata(element)) {
+ if (ProductStore.isPubblicato(element.productInfo)) {
+ if (ProductStore.isQtaLimitata(element)) {
return 'bg-yellow';
}
- if (products.isInEsaurendo(element)) {
+ if (ProductStore.isInEsaurendo(element)) {
return 'bg-orange';
}
- if (products.isEsaurito(element)) {
+ if (ProductStore.isEsaurito(element)) {
return 'text-white bg-red-10';
}
}
@@ -846,14 +885,19 @@ export default defineComponent({
persistent: false,
})
.onOk(() => {
- internalProducts.value = internalProducts.value.filter((p: any) => p._id !== product._id);
+ internalProducts.value = internalProducts.value.filter(
+ (p: any) => p._id !== product._id
+ );
emit('update:lista_prodotti', internalProducts.value); // Notifica il parent del cambiamento
});
};
// 8. Salvataggio delle colonne selezionate in un cookie
const saveSelectedColumns = () => {
- tools.setCookie(addstr.value + 'selColCat_2', JSON.stringify(selectedColumns.value));
+ tools.setCookie(
+ addstr.value + 'selColCat_2',
+ JSON.stringify(selectedColumns.value)
+ );
};
// 9. Watcher per salvare automaticamente le preferenze quando cambiano
@@ -901,7 +945,7 @@ export default defineComponent({
let link_macro = element.productInfo?.link_macro;
if (tools.isUtente() && link_macro) {
- tools.openUrl(link_macro + '?utm_source=catalog&id=' + props.idcatalog)
+ tools.openUrl(link_macro + '?utm_source=catalog&id=' + props.idcatalog);
} else {
selProd.value = element;
@@ -910,7 +954,7 @@ export default defineComponent({
} else if (isCatalog()) {
// Apri la pagina del catalogo
if (element.idPageAssigned) {
- const mypagepath = productStore.getPathByPage(element.idPageAssigned);
+ const mypagepath = ProductStore.getPathByPage(element.idPageAssigned);
// fai il route sulla pagina myfilename
$router.push(`/${mypagepath}`);
@@ -953,9 +997,9 @@ export default defineComponent({
console.log('PRODUCT TABLE: updateproductmodif');
try {
if (element?._id) {
- selProd.value = await products.getProductById(element?._id);
+ selProd.value = await ProductStore.getProductById(element?._id);
} else {
- selProd.value = await products.getProductById(selProd.value?._id);
+ selProd.value = await ProductStore.getProductById(selProd.value?._id);
}
// update record inside internalProducts
@@ -1019,7 +1063,9 @@ export default defineComponent({
return sortDirection.value === 1 ? aVal - bVal : bVal - aVal;
}
if (typeof aVal === 'string' && typeof bVal === 'string') {
- return sortDirection.value === 1 ? aVal.localeCompare(bVal) : bVal.localeCompare(aVal);
+ return sortDirection.value === 1
+ ? aVal.localeCompare(bVal)
+ : bVal.localeCompare(aVal);
}
return sortDirection.value === 1
? String(aVal).localeCompare(String(bVal))
@@ -1092,7 +1138,9 @@ export default defineComponent({
}
function isSortable(field: string): boolean {
- return allColumns && !allColumns.value.find((col) => col.name === field)?.notsortable;
+ return (
+ allColumns && !allColumns.value.find((col) => col.name === field)?.notsortable
+ );
}
function getImageByElement(element) {
@@ -1107,10 +1155,48 @@ export default defineComponent({
}
function isProduct() {
- return props.table === 'products';
+ return props.table === shared_consts.TABLES_PRODUCTS;
}
function isCatalog() {
- return props.table === 'catalogs';
+ return props.table === shared_consts.TABLES_CATALOG;
+ }
+
+ /*
+ async function addToCart(element: any) {
+ if (props.table === shared_consts.TABLES_PRODUCTS) {
+ await updateProduct(element);
+
+ if (!!element) {
+ arrordersCart.value = ProductStore.getOrdersCartInAttesaByIdProduct(
+ element._id
+ );
+
+ ProductStore.setMyOrder(myorder, element, null, {
+ setstore: false,
+ });
+ }
+ }
+ }*/
+
+ async function addtoCart(element: any, add: boolean) {
+ if (!userStore.isLogged) {
+ tools.showNeutralNotif($q, t('ecomm.area_personale'));
+ globalStore.rightDrawerOpen = true;
+ return false;
+ }
+
+ ProductStore.setMyOrder(element.myorder, element, null, {
+ setstore: false,
+ });
+
+ const ris = await ProductStore.addtoCartBase({
+ $q,
+ t,
+ id: element._id,
+ order: element.myorder,
+ addqty: add,
+ });
+ updateProduct(element);
}
onMounted(mounted);
@@ -1144,7 +1230,7 @@ export default defineComponent({
updateproductmodif,
optionscatalogo,
t,
- products,
+ ProductStore,
sortTable,
sortAttribute,
sortDirection,
@@ -1160,6 +1246,8 @@ export default defineComponent({
isProduct,
isCatalog,
allColumnsComputed,
+ addtoCart,
+ arrordersCart,
};
},
});
diff --git a/src/components/CProductTable/CProductTable.vue b/src/components/CProductTable/CProductTable.vue
index 5eda81c5..841e7280 100755
--- a/src/components/CProductTable/CProductTable.vue
+++ b/src/components/CProductTable/CProductTable.vue
@@ -54,9 +54,7 @@
{{ col.label }}
+ |
+
+
+
+
+ |
-
+ |
{
- console.log('catalogs', res.data.catalog);
+ // console.log('catalogs', res.data.catalog);
if (res.data.catalog) {
// console.log('RISULTANTE CATEGORIES DAL SERVER = ', res.data.categories)
return res.data.catalog;
diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts
index 131d1803..4b9e4f6e 100755
--- a/src/store/Modules/fieldsTable.ts
+++ b/src/store/Modules/fieldsTable.ts
@@ -140,12 +140,6 @@ export const colTableRaccoltaCataloghi = [
fieldtype: costanti.FieldType.select,
jointable: 'mypages_id',
}),
- AddCol({
- name: 'idPageAssigned_stampa',
- label_trans: 'cataloglist.idPageAssigned_stampa',
- fieldtype: costanti.FieldType.select,
- jointable: 'mypages_id',
- }),
AddCol({
name: 'nomefile_da_generare',
@@ -224,14 +218,14 @@ export const colTableCatalogList = [
name: 'editore',
label_trans: 'cataloglist.editore_includi',
fieldtype: costanti.FieldType.multiselect,
- jointable: 'publishers_totali',
+ jointable: 'publishers_totali_sort_qty',
isadvanced_field: true,
}),
AddCol({
name: 'editore_escludi',
label_trans: 'cataloglist.editore_escludi',
fieldtype: costanti.FieldType.multiselect,
- jointable: 'publishers_totali',
+ jointable: 'publishers_totali_sort_qty',
isadvanced_field: true,
}),
AddCol({
@@ -272,13 +266,6 @@ export const colTableCatalogList = [
label_trans: 'cataloglist.pdf_online',
}),
- AddCol({
- name: 'idPageAssigned_stampa',
- label_trans: 'cataloglist.idPageAssigned_stampa',
- fieldtype: costanti.FieldType.select,
- jointable: 'mypages_id',
- }),
-
AddCol({
name: 'img_bordata_stampa',
label_trans: 'cataloglist.img_bordata_stampa',
@@ -4607,6 +4594,13 @@ export const fieldsTable = {
colkey: '_id',
collabel: (row: any) => row.name + ' (' + row.quanti + ')',
},
+ {
+ value: 'publishers_totali_sort_qty',
+ label: 'Nome',
+ columns: colTablePublisher,
+ colkey: '_id',
+ collabel: (row: any) => row.name + ' (' + row.quanti + ')',
+ },
{
value: 'catais',
label: 'Categorie AI',
diff --git a/src/store/Modules/tools.ts b/src/store/Modules/tools.ts
index 458674d1..4edf70d7 100644
--- a/src/store/Modules/tools.ts
+++ b/src/store/Modules/tools.ts
@@ -101,6 +101,7 @@ export const tools = {
FILTER_MYFOLLOW: 2,
COOK_TIPOCONTO: 'TC_',
+ COOK_ARGOM: 'CK_ARG',
COOK_SEARCH: 'SEARCH_',
COOK_SELCART: 'SELCART_',
COOK_SELGAS: 'SELGAS',
@@ -4105,7 +4106,7 @@ export const tools = {
},
setLangAtt($q: any, $router: Router, mylang: string) {
- console.log('setLangAtt =', mylang);
+ // console.log('setLangAtt =', mylang);
const globalStore = useGlobalStore();
if (!mylang || typeof mylang !== 'string') {
diff --git a/src/store/Products.ts b/src/store/Products.ts
index 461bb8c4..e647d9a9 100755
--- a/src/store/Products.ts
+++ b/src/store/Products.ts
@@ -36,7 +36,7 @@ import { defineStore } from 'pinia';
import { useUserStore } from '@store/UserStore';
import { toolsext } from '@store/Modules/toolsext';
import { useGlobalStore } from './globalStore';
-import { ref } from 'vue';
+import { ref, reactive } from 'vue';
import objectId from '@src/js/objectId';
import { costanti } from '@costanti';
@@ -1109,7 +1109,7 @@ export const useProducts = defineStore('Products', {
ris = await Api.SendReq('/products/id/' + id, 'GET', null)
.then((res) => {
- console.log('product', res.data.product);
+ // console.log('product', res.data.product);
if (res.data.product) {
// console.log('RISULTANTE CATEGORIES DAL SERVER = ', res.data.categories)
this.updateDataProduct(res);
@@ -1242,8 +1242,8 @@ export const useProducts = defineStore('Products', {
if (res && res.msgerr) {
return res;
} else if (res && res.risult) {
- order.quantity = res.myord.quantity;
- order.quantitypreordered = res.myord.quantitypreordered;
+ order.quantity = res?.myord?.quantity;
+ order.quantitypreordered = res?.myord?.quantitypreordered;
}
return res;
});
@@ -1672,7 +1672,7 @@ export const useProducts = defineStore('Products', {
},
qtaNextAdd(myorder: IOrder, myproduct: IProduct): number {
- let step = myproduct.minStepQty;
+ let step = myproduct.minStepQty || 1;
if (this.getQtyAvailable(myproduct) > 0) {
if (myorder.quantity === 0) step = myproduct.minBuyQty;
} else {
@@ -2557,5 +2557,52 @@ export const useProducts = defineStore('Products', {
return '';
}
},
+
+ createMyOrder() {
+ let myorder = reactive({
+ idapp: tools.getEnv('VITE_APP_ID'),
+ quantity: 0,
+ quantitypreordered: 0,
+ idStorehouse: '',
+ idGasordine: '',
+ storehouse: {},
+ gasordine: { active: false },
+ });
+
+ return myorder;
+ },
+
+ initproduct(myorder: IOrder) {
+ myorder.quantity = 0;
+ myorder.quantitypreordered = 0;
+ myorder.idStorehouse = '';
+ myorder.idGasordine = '';
+ },
+
+ setMyOrder(myorder: IOrder, myproduct: IProduct, storeSelected: any = null, options: any = {setstore: false}) {
+ if (myproduct.storehouses && myproduct.storehouses.length === 1) {
+ // Se solo 1 presente, metto fisso l'unico negozio !
+ myorder.idStorehouse = myproduct.storehouses[0]._id;
+ } else if (myproduct.storehouse) {
+ myorder.idStorehouse = myproduct.storehouse._id;
+ }
+
+ if (myproduct.gasordine) {
+ myorder.idGasordine = myproduct.gasordine._id;
+ }
+
+ const ord = this.getOrderProductInCart(myproduct._id);
+ if (ord) {
+ myorder.quantity = ord.quantity;
+ myorder.quantitypreordered = ord.quantitypreordered;
+
+ // Seleziona il Negozio che avevo già scelto nell'ordine !
+ if (options.setstore && ord.idStorehouse) {
+ storeSelected = ord.idStorehouse;
+ }
+ }
+
+ }
+
},
});
diff --git a/src/store/globalStore.ts b/src/store/globalStore.ts
index 523ce8d3..2019bd2f 100644
--- a/src/store/globalStore.ts
+++ b/src/store/globalStore.ts
@@ -244,7 +244,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
sovrascriviPaginaDefaultFromTemplate:
(state: IGlobalState) => (idTemplate: string, origDimensioni: IDimensioni) => {
- const myfindelem = state.myelems.find((myelem: IMyElem) => myelem._id === idTemplate);
+ const myfindelem = state.myelems.find(
+ (myelem: IMyElem) => myelem._id === idTemplate
+ );
const precname = origDimensioni.name;
@@ -255,7 +257,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
// myelemtocopy.scheda._id = origScheda.scheda?._id;
myelemtocopy.catalogo.dimensioni_def.isTemplate = false;
myelemtocopy.catalogo.dimensioni_def.name = precname;
- myelemtocopy.catalogo.dimensioni_def.linkIdTemplate = origDimensioni.linkIdTemplate;
+ myelemtocopy.catalogo.dimensioni_def.linkIdTemplate =
+ origDimensioni.linkIdTemplate;
return myelemtocopy.catalogo;
}
@@ -266,13 +269,15 @@ export const useGlobalStore = defineStore('GlobalStore', {
sovrascriviAreadistampaFromTemplate:
(state: IGlobalState) => (idTemplate: string, optCatalogo: IOptCatalogo) => {
- const myfindelem = state.myelems.find((myelem: IMyElem) => myelem._id === idTemplate);
+ const myfindelem = state.myelems.find(
+ (myelem: IMyElem) => myelem._id === idTemplate
+ );
if (myfindelem) {
const myelemtocopy = tools.jsonCopy(myfindelem);
if (myelemtocopy) {
- const linkIdTemplate = myelemtocopy.catalogo.print_linkIdTemplate
+ const linkIdTemplate = myelemtocopy.catalogo.print_linkIdTemplate;
myelemtocopy.catalogo.print_isTemplate = false;
myelemtocopy.catalogo.print_linkIdTemplate = linkIdTemplate;
@@ -304,24 +309,31 @@ export const useGlobalStore = defineStore('GlobalStore', {
},
getColByStatusSkills: (state: IGlobalState) => (id: number) => {
- const ctrec = state.statusSkills.find((mystatus: IStatusSkill) => mystatus._id === id);
+ const ctrec = state.statusSkills.find(
+ (mystatus: IStatusSkill) => mystatus._id === id
+ );
return ctrec && ctrec.color ? ctrec.color : 'green';
},
getStatusSkillById: (state: IGlobalState) => (id: number) => {
- const ctrec = state.statusSkills.find((mystatus: IStatusSkill) => mystatus._id === id);
+ const ctrec = state.statusSkills.find(
+ (mystatus: IStatusSkill) => mystatus._id === id
+ );
return ctrec ? ctrec.descr : '';
},
getStatusSkillIconById: (state: IGlobalState) => (id: number) => {
- const ctrec = state.statusSkills.find((mystatus: IStatusSkill) => mystatus._id === id);
+ const ctrec = state.statusSkills.find(
+ (mystatus: IStatusSkill) => mystatus._id === id
+ );
return ctrec ? ctrec.icon : '';
},
isNewVersionAvailable: (state: IGlobalState) => {
// console.log('cfgServer', cfgServer)
const serversrec = state.cfgServer.find(
- (x) => x.chiave === toolsext.SERVKEY_VERS && x.idapp === tools.getEnv('VITE_APP_ID')
+ (x) =>
+ x.chiave === toolsext.SERVKEY_VERS && x.idapp === tools.getEnv('VITE_APP_ID')
);
// console.log('Record ', serversrec)
if (serversrec) {
@@ -499,7 +511,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
else if (table === 'mypages_id') ris = state.mypage;
else if (table === toolsext.TABMYELEMS) ris = state.myelems;
else if (table === toolsext.TABCATALOGS) ris = catalogStore.catalogs!;
- else if (table === toolsext.TABRACCOLTA_CATALOGHI) ris = catalogStore.raccoltacataloghis!;
+ else if (table === toolsext.TABRACCOLTA_CATALOGHI)
+ ris = catalogStore.raccoltacataloghis!;
else if (table === toolsext.TABCALZOOM) ris = state.calzoom;
else if (table === 'producers') ris = state.producers;
else if (table === 'storehouses') ris = state.storehouses;
@@ -522,6 +535,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
else if (table === 'authors') ris = Products.authors;
else if (table === 'publishers') ris = Products.publishers;
else if (table === 'publishers_totali') ris = Products.publishers;
+ else if (table === 'publishers_totali_sort_qty')
+ ris = Products.publishers_sort_qty;
else if (table === 't_web_statiprodottos') ris = Products.stati_prodotto;
else if (table === 't_web_tipologies') ris = Products.tipologie;
else if (table === 't_web_tipiformatos') ris = Products.tipoformato;
@@ -556,7 +571,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
else if (table === toolsext.TABSECTORS) return state.sectors;
else if (table === 'sectorgoods') return state.sectorgoods;
else if (table === 'catgrps') return state.catgrps;
- else if (table === 'schedeopt') return Products.getSchedeOptByArrSchede(state.myschedas);
+ else if (table === 'schedeopt')
+ return Products.getSchedeOptByArrSchede(state.myschedas);
else if (table === 'provinces')
return state.provinces.filter(
(rec: IProvince) => !rec.card && rec.prov !== 'ITA' && rec.prov !== 'EST'
@@ -567,10 +583,12 @@ export const useGlobalStore = defineStore('GlobalStore', {
);
if (arrprov) {
// const idCardArray: { _id: number, card: string }[] = arrprov.map(({ _id, card }) => ({ _id, card }));
- const idCardArray: { card: string; label: string }[] = arrprov.map(({ card }) => ({
- card,
- label: card,
- }));
+ const idCardArray: { card: string; label: string }[] = arrprov.map(
+ ({ card }) => ({
+ card,
+ label: card,
+ })
+ );
return idCardArray;
}
return [];
@@ -601,7 +619,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
getdestnewsletterbyId:
(mystate: IGlobalState) =>
(id: string): string => {
- const myrec = mystate.destnewsletter.find((rec: IDestNewsletter) => rec._id === id);
+ const myrec = mystate.destnewsletter.find(
+ (rec: IDestNewsletter) => rec._id === id
+ );
return !!myrec ? myrec.descr! : '';
},
},
@@ -624,7 +644,15 @@ export const useGlobalStore = defineStore('GlobalStore', {
return [];
},
- setValueSettingsByKey({ key, value, serv }: { key: string; value: any; serv: boolean }): any {
+ setValueSettingsByKey({
+ key,
+ value,
+ serv,
+ }: {
+ key: string;
+ value: any;
+ serv: boolean;
+ }): any {
// Update the Server
// Update in Memory
@@ -633,7 +661,10 @@ export const useGlobalStore = defineStore('GlobalStore', {
else myrec = this.settings.find((rec: any) => rec.key === key);
if (myrec) {
- if (myrec.type === costanti.FieldType.date || myrec.type === costanti.FieldType.onlydate)
+ if (
+ myrec.type === costanti.FieldType.date ||
+ myrec.type === costanti.FieldType.onlydate
+ )
myrec.value_date = value;
else if (
myrec.type === costanti.FieldType.number ||
@@ -651,9 +682,15 @@ export const useGlobalStore = defineStore('GlobalStore', {
const myrec = this.getrecSettingsByKey(key, serv);
// console.log('getValueSettingsByKey', myrec, 'key=', key, 'srv=', serv)
if (myrec) {
- if (myrec.type === costanti.FieldType.date || myrec.type === costanti.FieldType.onlydate)
+ if (
+ myrec.type === costanti.FieldType.date ||
+ myrec.type === costanti.FieldType.onlydate
+ )
return myrec.value_date;
- if (myrec.type === costanti.FieldType.number || myrec.type === costanti.FieldType.hours)
+ if (
+ myrec.type === costanti.FieldType.number ||
+ myrec.type === costanti.FieldType.hours
+ )
return myrec.value_num;
if (myrec.type === costanti.FieldType.boolean) return myrec.value_bool;
else if (myrec.type === costanti.FieldType.crypted) return '***********';
@@ -1496,9 +1533,20 @@ export const useGlobalStore = defineStore('GlobalStore', {
const obj = { test: 'OK! Versione Client: ' + tools.getvers(), timeout };
- return Api.SendReq('/api/test-lungo', 'POST', obj, false, false, 0, 5000, null, null, {
- timeout,
- })
+ return Api.SendReq(
+ '/api/test-lungo',
+ 'POST',
+ obj,
+ false,
+ false,
+ 0,
+ 5000,
+ null,
+ null,
+ {
+ timeout,
+ }
+ )
.then((res) => {
return res;
})
@@ -1851,7 +1899,13 @@ export const useGlobalStore = defineStore('GlobalStore', {
});
},
- async GetArrDoniNavi({ ricalcola, showall }: { ricalcola: boolean; showall: boolean }) {
+ async GetArrDoniNavi({
+ ricalcola,
+ showall,
+ }: {
+ ricalcola: boolean;
+ showall: boolean;
+ }) {
console.log('GetArrDoniNavi');
const mydata = {
@@ -1933,7 +1987,11 @@ export const useGlobalStore = defineStore('GlobalStore', {
},
async loadTest(ind: number, numval: number) {
- const restest = await Api.SendReq(`/testpao/?numval=${numval}&ind=${ind}`, 'GET', null);
+ const restest = await Api.SendReq(
+ `/testpao/?numval=${numval}&ind=${ind}`,
+ 'GET',
+ null
+ );
return restest;
},
@@ -1968,12 +2026,18 @@ export const useGlobalStore = defineStore('GlobalStore', {
calendarStore.bookedevent = res.data.bookedevent ? res.data.bookedevent : [];
calendarStore.eventlist = res.data.eventlist ? res.data.eventlist : [];
calendarStore.operators = res.data.operators ? res.data.operators : [];
- calendarStore.internalpages = res.data.internalpages ? res.data.internalpages : [];
+ calendarStore.internalpages = res.data.internalpages
+ ? res.data.internalpages
+ : [];
calendarStore.wheres = res.data.wheres ? res.data.wheres : [];
calendarStore.contribtype = res.data.contribtype ? res.data.contribtype : [];
- circuitStore.listcircuits = res.data.listcircuits ? res.data.listcircuits : [];
- circuitStore.listaccounts = res.data.listaccounts ? res.data.listaccounts : [];
+ circuitStore.listcircuits = res.data.listcircuits
+ ? res.data.listcircuits
+ : [];
+ circuitStore.listaccounts = res.data.listaccounts
+ ? res.data.listaccounts
+ : [];
catalogStore.catalogs = res.data.catalogs;
catalogStore.raccoltacataloghis = res.data.raccoltacataloghis;
@@ -1984,7 +2048,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
this.gallery = res.data.gallery ? [...res.data.gallery] : [];
this.calzoom = res.data.calzoom ? [...res.data.calzoom] : [];
Products.products = res.data.products ? [...res.data.products] : [];
- Products.productInfos = res.data.productInfos ? [...res.data.productInfos] : [];
+ Products.productInfos = res.data.productInfos
+ ? [...res.data.productInfos]
+ : [];
this.producers = res.data.producers ? [...res.data.producers] : [];
this.storehouses = res.data.storehouses ? [...res.data.storehouses] : [];
this.providers = res.data.providers ? [...res.data.providers] : [];
@@ -1993,13 +2059,23 @@ export const useGlobalStore = defineStore('GlobalStore', {
Products.catprtotali = res.data.catprtotali ? [...res.data.catprtotali] : [];
Products.collane = res.data.collane ? [...res.data.collane] : [];
Products.subcatprods = res.data.subcatprods ? [...res.data.subcatprods] : [];
- Products.stati_prodotto = res.data.stati_prodotto ? [...res.data.stati_prodotto] : [];
+ Products.stati_prodotto = res.data.stati_prodotto
+ ? [...res.data.stati_prodotto]
+ : [];
Products.tipologie = res.data.tipologie ? [...res.data.tipologie] : [];
Products.tipoformato = res.data.tipoformato ? [...res.data.tipoformato] : [];
- Products.catprods_gas = res.data.catprods_gas ? [...res.data.catprods_gas] : [];
+ Products.catprods_gas = res.data.catprods_gas
+ ? [...res.data.catprods_gas]
+ : [];
Products.authors = res.data.authors ? [...res.data.authors] : [];
Products.publishers = res.data.publishers ? [...res.data.publishers] : [];
+ Products.publishers_sort_qty = [...res.data.publishers];
+ Products.publishers_sort_qty.sort((a, b) => b.quanti - a.quanti);
+
+ // console.table(Products.publishers)
+ // console.table(Products.publishers_sort_qty)
+
this.gasordines = res.data.gasordines ? [...res.data.gasordines] : [];
this.scontisticas = res.data.scontisticas ? [...res.data.scontisticas] : [];
this.groups = res.data.groups ? [...res.data.groups] : [];
@@ -2372,7 +2448,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
else if (table === 'confpages_lang') myarr = costanti.ArrLang;
else if (table === 'bottype') myarr = shared_consts.BotType;
else if (table === 'visibility') myarr = shared_consts.Visibility;
- else if (table === 'cat_interesse_arcadei') myarr = shared_consts.Cat_Interesse_Arcadei;
+ else if (table === 'cat_interesse_arcadei')
+ myarr = shared_consts.Cat_Interesse_Arcadei;
else if (table === 'pub_to_share') myarr = shared_consts.Pub_to_Share;
else if (table === 'visibilGroup') myarr = shared_consts.VisibilGroup;
else if (table === 'statuscircuit') myarr = shared_consts.StatusCircuit;
@@ -2391,7 +2468,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
else if (table === toolsext.TABTYPEACCOM) myarr = shared_consts.TypeAccom;
else if (table === toolsext.TABLOCACCOM) myarr = shared_consts.LocationAccom;
else if (table === toolsext.TABPREF) myarr = shared_consts.Preferences;
- else if (table === toolsext.TABUNITS) myarr = shared_consts.Units_Of_Measure_ListBox;
+ else if (table === toolsext.TABUNITS)
+ myarr = shared_consts.Units_Of_Measure_ListBox;
else if (table === toolsext.TABTYPECASH) myarr = shared_consts.TypeCashStr;
else if (table === 'usernotifs') myarr = shared_consts.UsersNotif_Adv_List;
else if (table === 'typenotifs') myarr = shared_consts.TypeNotifs_Arr;
@@ -2478,7 +2556,12 @@ export const useGlobalStore = defineStore('GlobalStore', {
getTableJoinLabelValueByName(col: IColGridTable) {
let myarrrec: any = [];
if (col.jointable) {
- let myarrtab = this.getTableJoinByName(col.jointable, col.addall, col.addnone, col.filter);
+ let myarrtab = this.getTableJoinByName(
+ col.jointable,
+ col.addall,
+ col.addnone,
+ col.filter
+ );
const key = fieldsTable.getKeyByTable(col.jointable);
const collab = fieldsTable.getLabelByTable(col.jointable);
@@ -2523,20 +2606,22 @@ export const useGlobalStore = defineStore('GlobalStore', {
async delMyElem($q: any, t: any, myelem: IMyElem) {
if (!myelem._id) return false;
- return await this.DeleteRec({ table: 'myelems', id: myelem._id }).then(async (ris) => {
- if (ris) {
- this.myelems = this.myelems.filter((rec) => rec._id !== myelem._id);
+ return await this.DeleteRec({ table: 'myelems', id: myelem._id }).then(
+ async (ris) => {
+ if (ris) {
+ this.myelems = this.myelems.filter((rec) => rec._id !== myelem._id);
- // Aggiorna anche tutto il sito...
- // await this.loadSite()
+ // Aggiorna anche tutto il sito...
+ // await this.loadSite()
- tools.showPositiveNotif($q, t('db.deletedrecord'));
- return true;
- } else {
- tools.showNegativeNotif($q, t('db.recdelfailed'));
- return false;
+ tools.showPositiveNotif($q, t('db.deletedrecord'));
+ return true;
+ } else {
+ tools.showNegativeNotif($q, t('db.recdelfailed'));
+ return false;
+ }
}
- });
+ );
},
async saveMyElem($q: any, t: any, myelem: IMyElem) {
@@ -2748,7 +2833,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
dir_out: string = '',
file_out: string = '',
print: boolean = false,
- optcatalogo: IOptCatalogo | null = null,
+ optcatalogo: IOptCatalogo | null = null
) {
try {
if (!pdfFile) {
@@ -2756,7 +2841,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
return;
}
- const filenameToDownload = tools.removeFileExtension(pdfFile.name) + '-compresso.pdf';
+ const filenameToDownload =
+ tools.removeFileExtension(pdfFile.name) + '-compresso.pdf';
const formData = new FormData();
if (pdfFile instanceof File) {
@@ -2775,8 +2861,10 @@ export const useGlobalStore = defineStore('GlobalStore', {
formData.append('print_right', optcatalogo.areadistampa.margini.right);
formData.append('print_bottom', optcatalogo.areadistampa.margini.bottom); // 7 mm 0,275"
}
- formData.append('salvasufiledascaricare', salvasufiledascaricare ? 'true' : 'false');
-
+ formData.append(
+ 'salvasufiledascaricare',
+ salvasufiledascaricare ? 'true' : 'false'
+ );
console.log('2) Invia le immagini al convertitore/compressione di PDF...');
@@ -2877,7 +2965,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
numrec: 1,
query: '',
where:
- 'T.IdArticolo =' + sku + ' AND T.DataPubblicazione IS NOT NULL ORDER BY T.DataOra DESC;',
+ 'T.IdArticolo =' +
+ sku +
+ ' AND T.DataPubblicazione IS NOT NULL ORDER BY T.DataOra DESC;',
fieldGM: field,
showQtaDisponibile: false,
outhtml: false,
@@ -2913,7 +3003,11 @@ export const useGlobalStore = defineStore('GlobalStore', {
return valueris;
},
- async setGM_FieldOf_T_Web_Articoli(sku: string, data: Record, cmd: number) {
+ async setGM_FieldOf_T_Web_Articoli(
+ sku: string,
+ data: Record,
+ cmd: number
+ ) {
try {
// Verifica se i campi specificati sono validi
if (!data || Object.keys(data).length === 0) {
@@ -3051,7 +3145,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
if (mytablerec && resdata && resdata.rec) {
// Trova l'indice del record da aggiornare
- const index = mytablerec.findIndex((item: any) => item._id === resdata.rec._id);
+ const index = mytablerec.findIndex(
+ (item: any) => item._id === resdata.rec._id
+ );
if (index !== -1 && index !== undefined) {
// Aggiorna il record mantenendo reattività
@@ -3075,8 +3171,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
} catch (e) {}
},
setshowHeader(value: boolean) {
- this.showHeader = value
- }
-
+ this.showHeader = value;
+ },
},
});
diff --git a/src/views/admin/dbopmacro/dbopmacro.vue b/src/views/admin/dbopmacro/dbopmacro.vue
index 57462dc8..a51646c7 100755
--- a/src/views/admin/dbopmacro/dbopmacro.vue
+++ b/src/views/admin/dbopmacro/dbopmacro.vue
@@ -47,6 +47,11 @@
color="accent"
@click="EseguiFunz('updateAllBook', { usaDBGMLocale: false, caricatutti: true })"
>
+
([]);
+ const arrListaTemporanea = ref([]);
const arrProdToView = ref([]);
const numRecLoaded = ref(0);
@@ -1000,7 +1002,7 @@ export default defineComponent({
return arrris;
}
- async function calcArrProducts(generalista?: boolean) {
+ async function calcArrProducts(generalista?: boolean, salva_listatemp: boolean) {
// console.log('calcArrProducts (generalista=' + generalista + ')');
if (generalista) {
@@ -1089,31 +1091,35 @@ export default defineComponent({
salva = true;
}
- arrProducts.value = arrprod;
+ if (salva_listatemp) {
+ arrListaTemporanea.value = arrprod;
+ } else {
+ arrProducts.value = arrprod;
- // console.log('arrprod', arrprod)
+ optcatalogo.value = productStore.populateDataWithlinkIdTemplate(
+ optcatalogo.value
+ );
- optcatalogo.value = productStore.populateDataWithlinkIdTemplate(optcatalogo.value);
+ // Ordina la lista
+ generatearrProdToViewSorted(!generalista, salva, !showListaFiltrata.value);
+ loaddata();
- // Ordina la lista
- generatearrProdToViewSorted(!generalista, salva, !showListaFiltrata.value);
- loaddata();
-
- if (generalista) {
- const catalog = myCatalog.value;
- if (catalog && !showListaFiltrata.value) {
- catalog.data_lista_generata = tools.getDateNow();
- catalog.username_lista_generata = userStore.my.username;
- await saveCatalog();
+ if (generalista) {
+ const catalog = myCatalog.value;
+ if (catalog && !showListaFiltrata.value) {
+ catalog.data_lista_generata = tools.getDateNow();
+ catalog.username_lista_generata = userStore.my.username;
+ await saveCatalog();
+ }
}
}
- // console.log('***** FINE calcArrPROD');
-
- // console.log('areadistampa FINITO...', optcatalogo.value.areadistampa)
-
generatinglist.value = false;
- rigeneraLibri.value = false;
+ if (!salva_listatemp) {
+ rigeneraLibri.value = false;
+ } else {
+ tabgen.value = 'generato'
+ }
}
async function saveCatalog() {
@@ -1146,6 +1152,13 @@ export default defineComponent({
});
}
+ function generaListaTempLibri() {
+ // chiedi prima "Sei sicuro di rigenerare il catalogo?"
+ let risposta_si = false;
+
+ calcArrProducts(true, true);
+ }
+
function reSortList() {
let risposta_si = false;
@@ -1344,12 +1357,12 @@ export default defineComponent({
salva?: boolean,
salvasudb?: boolean
) {
- console.log(
+ /*console.log(
'generatearrProdToViewSorted... usaprodottiSalvati=',
usaprodottiSalvati,
' salva=',
salva
- );
+ );*/
try {
// Svuota
@@ -2922,6 +2935,7 @@ export default defineComponent({
componentToFixRef,
isFixed,
arrProducts,
+ arrListaTemporanea,
show_hide,
onLoadScroll,
numRecLoaded,
@@ -2996,6 +3010,8 @@ export default defineComponent({
isStampa,
onlyCatalogoPDF,
updatecatalogmodif,
+ tabgen,
+ generaListaTempLibri,
};
},
});
diff --git a/src/views/ecommerce/catalogo/catalogo.vue b/src/views/ecommerce/catalogo/catalogo.vue
index 97109ee7..1e434bf0 100755
--- a/src/views/ecommerce/catalogo/catalogo.vue
+++ b/src/views/ecommerce/catalogo/catalogo.vue
@@ -188,7 +188,7 @@
icon="fas fa-redo"
label="Rigenera Lista"
color="primary"
- @click="rigeneraLibri = true"
+ @click="rigeneraLibri = true; tabgen = 'condizioni'"
>
|