From 3f4eb0877ce41c281d975cef298dd50b711f42f0 Mon Sep 17 00:00:00 2001 From: Surya Paolo Date: Thu, 21 Dec 2023 15:21:30 +0100 Subject: [PATCH] - Creazione pagina Home logout - Nuovo Gasordine - Visualizzazione GAS / BOTTEGA --- src/common/shared_vuejs.ts | 5 ++ src/components/CProductCard/CProductCard.vue | 2 +- src/components/CSignUp/CSignUp.ts | 2 +- src/components/CSignUp/CSignUp.vue | 2 +- src/model/Products.ts | 5 +- src/statics/lang/it.js | 10 +++- src/store/Modules/fieldsTable.ts | 20 ++++++-- src/store/Products.ts | 24 ++++++++-- .../ecommerce/productsList/productsList.ts | 7 ++- .../ecommerce/productsList/productsList.vue | 46 ++++++++++++------- 10 files changed, 92 insertions(+), 31 deletions(-) diff --git a/src/common/shared_vuejs.ts b/src/common/shared_vuejs.ts index 9175af1d..913d3596 100755 --- a/src/common/shared_vuejs.ts +++ b/src/common/shared_vuejs.ts @@ -17,6 +17,11 @@ export const shared_consts = { }, LIMIT_NOTIF_FOR_USER: 200, + PROD: { + GAS: 1, + BOTTEGA: 2, + }, + UNITS_OF_MEASURE: { NESSUNO: 0, GRAMMI: 1, diff --git a/src/components/CProductCard/CProductCard.vue b/src/components/CProductCard/CProductCard.vue index e7e1a1ea..a639cb3c 100755 --- a/src/components/CProductCard/CProductCard.vue +++ b/src/components/CProductCard/CProductCard.vue @@ -91,7 +91,7 @@ >
diff --git a/src/components/CSignUp/CSignUp.ts b/src/components/CSignUp/CSignUp.ts index 1d0313ba..ccc8d1cc 100755 --- a/src/components/CSignUp/CSignUp.ts +++ b/src/components/CSignUp/CSignUp.ts @@ -114,7 +114,7 @@ export default defineComponent({ let ret = true if (slide.value === '1') { // Invitante + Email - ret = !signup.email || !signup.aportador_solidario || inputAportador.value.hasError || (inputEmail.value && inputEmail.value.hasError) + ret = !signup.email || (tools.getAskToVerifyReg() && (!signup.aportador_solidario || inputAportador.value.hasError)) || (inputEmail.value && inputEmail.value.hasError) } else if (slide.value === '2') { // Username ret = !signup.username || (inputUsername.value && inputUsername.value.hasError) diff --git a/src/components/CSignUp/CSignUp.vue b/src/components/CSignUp/CSignUp.vue index 27b70953..a35e6d7d 100755 --- a/src/components/CSignUp/CSignUp.vue +++ b/src/components/CSignUp/CSignUp.vue @@ -2,7 +2,7 @@
diff --git a/src/model/Products.ts b/src/model/Products.ts index 6ec3d02a..0fe7c9ac 100755 --- a/src/model/Products.ts +++ b/src/model/Products.ts @@ -7,10 +7,12 @@ export interface IProduct { idProducer?: string, idProvider?: string, idStorehouses?: string[], + idGasordines?: string[], idScontisticas?: string[], scontisticas: IScontistica[], producer?: IProducer, storehouses: IStorehouse[], + gasordines: IGasordine[], provider?: IProvider, code?: string, name?: string, @@ -26,6 +28,7 @@ export interface IProduct { QuantitaOrdinateInAttesa?: number, QuantitaPrenotateInAttesa?: number, stockQty: number, + minBuyQty: number, bookableQty: number, canBeShipped?: boolean, canBeBuyOnline?: boolean, @@ -141,7 +144,7 @@ export interface IGasordine { referent?: string, city?: string, img?: string, - dataora_chiusura?: Date, + dataora_chiusura_ordini?: Date, dataora_ritiro?: Date, } diff --git a/src/statics/lang/it.js b/src/statics/lang/it.js index 3e30b08c..ae6bdf8d 100755 --- a/src/statics/lang/it.js +++ b/src/statics/lang/it.js @@ -62,6 +62,7 @@ const msg_it = { quantity: 'Quantità', quantityAvailable: 'Disponibili', stockQty: 'In Magazzino', + minBuyQty: 'Qta minima acquistabile', bookableQty: 'Prenotabili', bookableAvailableQty: 'Disponib. Prenotabili', weight: 'Peso', @@ -79,6 +80,8 @@ const msg_it = { note: 'Note', codice_EAN: 'EAN', barcode: 'BarCode', + price_acquistato: 'Prezzo Acquistato', + vegan: 'Vegano', }, storehouses: { name: 'Magazzino', @@ -1669,12 +1672,17 @@ const msg_it = { qta_in_attesa: '(Ordinati In attesa {qty})', sconto_applicato: 'Risparmi {risparmio} € !', codice: 'Codice', - code_o_text_search: 'Inserisci il codice o il testo', + code_o_text_search: 'Inserisci il codice o il testo da cercare', code_add_to_cart: 'Aggiungi un codice al carrello', qta_prenotate_in_attesa: '(Preordinate In attesa {qty})', }, }, + gas: { + dataora_chiusura_ordini: 'Data Chiusura Ordini', + dataora_ritiro: 'Data Ritiro Prodotti', + } + }; export default msg_it; diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts index b49288c2..6ede4233 100755 --- a/src/store/Modules/fieldsTable.ts +++ b/src/store/Modules/fieldsTable.ts @@ -449,7 +449,7 @@ export const colTableGasordine = [ AddCol({ name: 'referente', label_trans: 'store.referent' }), AddCol({ name: 'city', label_trans: 'store.city' }), AddCol({ name: 'img', label_trans: 'store.img' }), - AddCol({ name: 'dataora_chiusura', label_trans: 'gas.dataora_chiusura', fieldtype: costanti.FieldType.date }), + AddCol({ name: 'dataora_chiusura_ordini', label_trans: 'gas.dataora_chiusura_ordini', fieldtype: costanti.FieldType.date }), AddCol({ name: 'dataora_ritiro', label_trans: 'gas.dataora_ritiro', fieldtype: costanti.FieldType.date }), AddCol(DeleteRec), AddCol(DuplicateRec), @@ -1957,7 +1957,7 @@ export const colTableIscrittiArcadei = [ export const colTableProducts = [ AddCol({ name: 'active', label_trans: 'products.active', fieldtype: costanti.FieldType.boolean }), - AddCol({ name: 'code', label_trans: 'products.code' }), + AddCol({ name: 'code', label_trans: 'products.code', required: true }), AddCol({ name: 'codice_EAN', label_trans: 'products.codice_EAN' }), AddCol({ name: 'barcode', label_trans: 'products.barcode' }), AddCol({ name: 'name', label_trans: 'products.name' }), @@ -1977,6 +1977,12 @@ export const colTableProducts = [ fieldtype: costanti.FieldType.multiselect, jointable: 'storehouses', }), + AddCol({ + name: 'idGasordines', + label_trans: 'gasordine.name', + fieldtype: costanti.FieldType.multiselect, + jointable: 'gasordines', + }), AddCol({ name: 'idProvider', label_trans: 'provider.name', @@ -2002,11 +2008,12 @@ export const colTableProducts = [ fieldtype: costanti.FieldType.multiselect, jointable: 'categorys', }), - AddCol({ name: 'price', label_trans: 'products.price', fieldtype: costanti.FieldType.number }), + AddCol({ name: 'price', label_trans: 'products.price', fieldtype: costanti.FieldType.number, required: true }), + AddCol({ name: 'price_acquistato', label_trans: 'products.price_acquistato', fieldtype: costanti.FieldType.number, required: true }), AddCol({ name: 'after_price', label_trans: 'products.after_price' }), AddCol({ name: 'color', label_trans: 'products.color' }), AddCol({ name: 'size', label_trans: 'products.size' }), - AddCol({ + /*AddCol({ name: 'quantityAvailable', label_trans: 'products.quantityAvailable', fieldtype: costanti.FieldType.number @@ -2015,6 +2022,11 @@ export const colTableProducts = [ name: 'bookableAvailableQty', label_trans: 'products.bookableAvailableQty', fieldtype: costanti.FieldType.number + }), */ + AddCol({ + name: 'minBuyQty', + label_trans: 'products.minBuyQty', + fieldtype: costanti.FieldType.number }), AddCol({ name: 'stockQty', diff --git a/src/store/Products.ts b/src/store/Products.ts index a2f263fe..d4d1d674 100755 --- a/src/store/Products.ts +++ b/src/store/Products.ts @@ -20,8 +20,18 @@ export const useProducts = defineStore('Products', { }), getters: { - getProducts: (state: IProductsState) => (): IProduct[] => { - return state.products + getProducts: (state: IProductsState) => (cosa?: number): IProduct[] => { + if (!!cosa) { + let ris = null + if (cosa === shared_consts.PROD.GAS) { + ris = state.products.filter((rec) => (rec.idGasordines && rec.idGasordines.length > 0)) + } else if (cosa === shared_consts.PROD.BOTTEGA) { + ris = state.products.filter((rec) => (!rec.idGasordines || (rec.idGasordines && rec.idGasordines.length === 0))) + } + return ris ? ris : [] + } else { + return state.products + } }, updateDataProduct: (state: IProductsState) => (res: any) => { @@ -55,14 +65,15 @@ export const useProducts = defineStore('Products', { getProductById: (state: IProductsState) => (id: string): IProduct => { const prod = state.products.find((prod: IProduct) => prod._id === id) - return prod ? prod : { active: false, img: '', code: '', name: '', storehouses: [], scontisticas: [], price: 0, stockQty: 0, bookableQty: 0 } + return prod ? prod : { active: false, img: '', code: '', name: '', storehouses: [], scontisticas: [], price: 0, stockQty: 0, bookableQty: 0, gasordines: [], idGasordines: [], minBuyQty: 1 } }, getProductByCode: (state: IProductsState) => (code: string): IProduct => { const prod = state.products.find((prod: IProduct) => prod.code === code) return prod ? prod : { active: false, img: '', code: '', name: '', storehouses: [], scontisticas: [], price: 0, - stockQty: 0, bookableQty: 0 + gasordines: [], idGasordines: [], + stockQty: 0, bookableQty: 0, minBuyQty: 1 } }, @@ -215,8 +226,10 @@ export const useProducts = defineStore('Products', { active: false, idProducer: '', idStorehouses: [], + idGasordines: [], idScontisticas: [], scontisticas: [], + gasordines: [], idProvider: '', producer: {}, storehouses: [], @@ -232,6 +245,7 @@ export const useProducts = defineStore('Products', { quantityAvailable: 0, bookableAvailableQty: 0, stockQty: 0, + minBuyQty: 1, bookableQty: 0, canBeShipped: false, QuantitaOrdinateInAttesa: 0, @@ -645,7 +659,7 @@ export const useProducts = defineStore('Products', { if (ris && ris.myord == null) { msg = t('ecomm.prodotto_tolto') tools.showNotif($q, msg) - return + return } if (ris === null || ris.myord == null) { msg = t('ecomm.error_cart') diff --git a/src/views/ecommerce/productsList/productsList.ts b/src/views/ecommerce/productsList/productsList.ts index fea241de..dafcc146 100755 --- a/src/views/ecommerce/productsList/productsList.ts +++ b/src/views/ecommerce/productsList/productsList.ts @@ -9,6 +9,7 @@ import { toolsext } from '@store/Modules/toolsext' import { useQuasar } from 'quasar' import { costanti } from '@costanti' +import { shared_consts } from '@/common/shared_vuejs' import { CProductCard } from '@src/components/CProductCard' import { IProduct } from '@src/model' @@ -27,12 +28,14 @@ export default defineComponent({ const search = ref('') + const cosa = ref(shared_consts.PROD.GAS) + function mounted() { // Inizializza productStore.loadProducts() } function getProducts() { - let arrprod = productStore.getProducts() + let arrprod = productStore.getProducts(cosa.value) if (!search.value) { return arrprod } @@ -54,6 +57,8 @@ export default defineComponent({ toolsext, getProducts, search, + cosa, + shared_consts, } } }) diff --git a/src/views/ecommerce/productsList/productsList.vue b/src/views/ecommerce/productsList/productsList.vue index e6aff2bd..61c4ff87 100755 --- a/src/views/ecommerce/productsList/productsList.vue +++ b/src/views/ecommerce/productsList/productsList.vue @@ -1,29 +1,43 @@