aggiornamento Ordini GAS filtri

This commit is contained in:
Surya Paolo
2024-02-13 18:13:36 +01:00
parent 6a01379b67
commit c6e0caa3f4
71 changed files with 1105 additions and 281 deletions

View File

@@ -2018,6 +2018,19 @@ export const colTableIscrittiArcadei = [
AddCol(DuplicateRec),
]
export const colTableGestoreOrdini = [
AddCol({ name: 'name', label_trans: 'products.name' }),
AddCol({ name: 'totalQty', label_trans: 'orderscart.totalQty', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'totalQtyPreordered', label_trans: 'orderscart.totalQtyPreordered', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'price', label_trans: 'order.price', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'quantity', label_trans: 'order.quantity', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'quantitypreordered', label_trans: 'order.quantitypreordered', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'TotalPriceProduct', label_trans: 'orderscart.TotalPriceProduct', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'TotalPriceProduct_Sell', label_trans: 'orderscart.TotalPriceProduct_Sell', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'TotalPriceProductCalc', label_trans: 'orderscart.TotalPriceProductCalc', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'status', label_trans: 'orderscart.status', fieldtype: costanti.FieldType.number }),
]
export const colTableProductInfos = [
AddCol({ name: 'code', label_trans: 'products.code', required: true }),
AddCol({ name: 'codice_EAN', label_trans: 'products.codice_EAN' }),

View File

@@ -67,6 +67,7 @@ export const tools = {
COOK_SEARCH: 'SEARCH_',
COOK_SELCART: 'SELCART_',
COOK_SELGAS: 'SELGAS',
COOK_TAB_CIRCUIT: 'TAB_CIRC',
COOK_COSA_PRODOTTI: 'PROD_N',
@@ -8297,6 +8298,7 @@ export const tools = {
mystr = unitrec ? (short ? unitrec.short : unitrec.label) : ''
return mystr
},
getWeightByUnit(unit: number, short: boolean, weight: number | undefined) {
let unitrec = shared_consts.Units_Of_Measure_ListBox.find((rec: any) => rec.value === unit)

View File

@@ -1,4 +1,4 @@
import { IBaseOrder, ICart, IOrder, IOrderCart, IProduct, IProductsState, IProductInfo, ICatProd, IUserShort } from 'model'
import { IBaseOrder, ICart, IOrder, IOrderCart, IProduct, IProductsState, IProductInfo, ICatProd, IUserShort, IGasordine } from 'model'
import { Api } from '@api'
import { serv_constants } from '@src/store/Modules/serv_constants'
@@ -195,42 +195,52 @@ export const useProducts = defineStore('Products', {
return state.cart
},
getOrdersAllCart: (state: IProductsState) => (): IOrderCart[] => {
return state.orders
getOrdersAllCart: (state: IProductsState) => (idGasordine: string): IOrderCart[] => {
return state.orders.filter((rec: IOrderCart) => {
if ((idGasordine && !rec.items?.some(item => item.order.idGasordine === idGasordine))) {
return false; // Skip records not matching gasordine condition
}
return true
})
},
getNumOrders: (state: IProductsState) => (): number => {
return state.orders.length
},
getOrdersCart: (state: IProductsState) => (tipoord: number, hasGasordine: any): IOrderCart[] | undefined => {
if (tipoord === shared_consts.OrderStat.IN_CORSO.value)
return state.orders.filter((rec: IOrderCart) => ((rec.status ? rec.status : 0) <= shared_consts.OrderStatus.CHECKOUT_SENT)
&& (hasGasordine ? rec.items?.some(item => item.order.idGasordine) : true))
else if (tipoord === shared_consts.OrderStat.PREPARED.value)
return state.orders.filter((rec: IOrderCart) => (rec.status === shared_consts.OrderStatus.PREPARED)
&& (hasGasordine ? rec.items?.some(item => item.order.idGasordine) : true))
else if (tipoord === shared_consts.OrderStat.CONFERMATI.value)
return state.orders.filter((rec: IOrderCart) => (rec.status === shared_consts.OrderStatus.ORDER_CONFIRMED)
&& (hasGasordine ? rec.items?.some(item => item.order.idGasordine) : true))
else if (tipoord === shared_consts.OrderStat.PAGATI.value)
return state.orders.filter((rec: IOrderCart) => (rec.status === shared_consts.OrderStatus.PAYED)
&& (hasGasordine ? rec.items?.some(item => item.order.idGasordine) : true))
else if (tipoord === shared_consts.OrderStat.DELIVERED.value)
return state.orders.filter((rec: IOrderCart) => (rec.status === shared_consts.OrderStatus.DELIVERED)
&& (hasGasordine ? rec.items?.some(item => item.order.idGasordine) : true))
else if (tipoord === shared_consts.OrderStat.SHIPPED.value)
return state.orders.filter((rec: IOrderCart) => (rec.status === shared_consts.OrderStatus.SHIPPED)
&& (hasGasordine ? rec.items?.some(item => item.order.idGasordine) : true))
else if (tipoord === shared_consts.OrderStat.RECEIVED.value)
return state.orders.filter((rec: IOrderCart) => (rec.status === shared_consts.OrderStatus.RECEIVED)
&& (hasGasordine ? rec.items?.some(item => item.order.idGasordine) : true))
else if (tipoord === shared_consts.OrderStat.COMPLETATI.value)
return state.orders.filter((rec: IOrderCart) => (rec.status === shared_consts.OrderStatus.COMPLETED)
&& (hasGasordine ? rec.items?.some(item => item.order.idGasordine) : true))
else if (tipoord === shared_consts.OrderStat.CANCELLATI.value)
return state.orders.filter((rec: IOrderCart) => (rec.status === shared_consts.OrderStatus.CANCELED)
&& (hasGasordine ? rec.items?.some(item => item.order.idGasordine) : true))
getOrdersCart: (state: IProductsState) => (tipoord: number, hasGasordine: any, idGasordine: string): IOrderCart[] | undefined => {
return state.orders.filter((rec: IOrderCart) => {
if (idGasordine && !rec.items?.some(item => item.order.idGasordine === idGasordine)) {
return false; // Skip records not matching gasordine condition
}
if (hasGasordine && !rec.items?.some(item => item.order.idGasordine)) {
return false; // Skip records not matching gasordine condition
}
switch (tipoord) {
case shared_consts.OrderStat.IN_CORSO.value:
return !rec.status || rec.status <= shared_consts.OrderStatus.CHECKOUT_SENT;
case shared_consts.OrderStat.PREPARED.value:
return rec.status === shared_consts.OrderStatus.PREPARED;
case shared_consts.OrderStat.CONFERMATI.value:
return rec.status === shared_consts.OrderStatus.ORDER_CONFIRMED;
case shared_consts.OrderStat.PAGATI.value:
return rec.status === shared_consts.OrderStatus.PAYED;
case shared_consts.OrderStat.DELIVERED.value:
return rec.status === shared_consts.OrderStatus.DELIVERED;
case shared_consts.OrderStat.SHIPPED.value:
return rec.status === shared_consts.OrderStatus.SHIPPED;
case shared_consts.OrderStat.RECEIVED.value:
return rec.status === shared_consts.OrderStatus.RECEIVED;
case shared_consts.OrderStat.COMPLETATI.value:
return rec.status === shared_consts.OrderStatus.COMPLETED;
case shared_consts.OrderStat.CANCELLATI.value:
return rec.status === shared_consts.OrderStatus.CANCELED;
default:
return false; // Invalid tipoord
}
});
},
existProductInCart: (state: IProductsState) => (idproduct: string): boolean => {
@@ -627,6 +637,23 @@ export const useProducts = defineStore('Products', {
})
},
async getGestoreOrdini({ idGasordine }: { idGasordine: string }) {
const userStore = useUserStore()
let useractive = this.userActive._id
if (!useractive)
useractive = userStore.my._id;
return Api.SendReq('/cart/' + useractive + '/gestord', 'POST', { idGasordine })
.then((res) => {
if (res)
return res.data.arrout
else
return []
})
},
async addToCart({ product, order, addqty }: { product: IProduct, order: IOrder, addqty: boolean }) {
const userStore = useUserStore()
@@ -882,7 +909,7 @@ export const useProducts = defineStore('Products', {
if (qta >= 0) {
let totalPrice = this.cart.totalPrice ? this.cart.totalPrice.toFixed(2): 0
let totalPrice = this.cart.totalPrice ? this.cart.totalPrice.toFixed(2) : 0
let tot = totalPrice + ' €'
msg = t('ecomm.prod_sul_carrello', { strprod, qty: qta, tot })
}
@@ -1075,9 +1102,60 @@ export const useProducts = defineStore('Products', {
})
},
getStrInfoOrder(t: any, order: IOrder) {
let mystr = ''
let qtyrisult: any
if (order.product) {
let qtystr = ''
let qtynum = 0
if (order.quantity > 0)
qtynum += order.quantity;
if (order.quantitypreordered > 0)
qtynum += order.quantitypreordered;
if (order.product.productInfo.sfuso && order.product.productInfo.weight)
qtyrisult = qtynum * order.product.productInfo.weight;
else
qtyrisult = qtynum + ' x ' + order.product.productInfo.weight;
qtystr += qtyrisult + ' ' + tools.getUnitsMeasure(order.product.productInfo.unit, true, order.product.productInfo.weight);
if (order.quantitypreordered > 0)
qtystr += ' Pre-Ordinati';
mystr += '✅ [' + qtystr + '] ' + order.product.productInfo.name + ' a ' + order.price + '€ ' + (order.after_price ? order.after_price : '') + '<br>Totale = ' + order.TotalPriceProduct + '€';
}
return mystr
},
getGasordines() {
const globalStore = useGlobalStore()
const myarr: any = [{
id: 0,
label: 'Tutti',
value: ''
}]
let ind = 1
globalStore.gasordines.forEach((gasordine: IGasordine) => {
myarr.push(
{
id: ind,
label: gasordine.name,
value: gasordine._id
})
ind++
})
return myarr
},
},
})