forked from verdnatura/salix-front
feat: refs #7346 add seriaType option
This commit is contained in:
parent
895441a8e4
commit
06c0f49128
|
@ -20,20 +20,18 @@ const { initialDataLoading, formInitialData, invoicing, status } =
|
|||
const { makeInvoice, setStatusValue } = invoiceOutGlobalStore;
|
||||
|
||||
const clientsToInvoice = ref('all');
|
||||
|
||||
const companiesOptions = ref([]);
|
||||
|
||||
const printersOptions = ref([]);
|
||||
|
||||
const clientsOptions = ref([]);
|
||||
|
||||
const serialTypesOptions = ref([]);
|
||||
const formData = ref({});
|
||||
|
||||
const optionsInitialData = computed(() => {
|
||||
return (
|
||||
companiesOptions.value.length > 0 &&
|
||||
printersOptions.value.length > 0 &&
|
||||
clientsOptions.value.length > 0
|
||||
clientsOptions.value.length > 0 &&
|
||||
serialTypesOptions.value.length > 0
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -60,7 +58,22 @@ onMounted(async () => {
|
|||
/>
|
||||
<FetchData url="Printers" @on-fetch="(data) => (printersOptions = data)" auto-load />
|
||||
<FetchData url="Clients" @on-fetch="(data) => (clientsOptions = data)" auto-load />
|
||||
|
||||
<FetchData
|
||||
url="invoiceOutSerials"
|
||||
@on-fetch="
|
||||
(data) => {
|
||||
const uniqueTypes = new Set();
|
||||
serialTypesOptions = data.filter((item) => {
|
||||
if (item.type === null || uniqueTypes.has(item.type)) {
|
||||
return false;
|
||||
}
|
||||
uniqueTypes.add(item.type);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
"
|
||||
auto-load
|
||||
/>
|
||||
<QForm
|
||||
v-if="!initialDataLoading && optionsInitialData"
|
||||
@submit="makeInvoice(formData, clientsToInvoice)"
|
||||
|
@ -95,6 +108,17 @@ onMounted(async () => {
|
|||
outlined
|
||||
rounded
|
||||
/>
|
||||
<VnSelect
|
||||
:label="t('invoiceOutSerialType')"
|
||||
v-model="formData.invoiceType"
|
||||
:options="serialTypesOptions"
|
||||
option-value="type"
|
||||
option-label="type"
|
||||
hide-selected
|
||||
dense
|
||||
outlined
|
||||
rounded
|
||||
/>
|
||||
<VnInputDate
|
||||
v-model="formData.invoiceDate"
|
||||
:label="t('invoiceDate')"
|
||||
|
@ -168,6 +192,7 @@ en:
|
|||
printer: Printer
|
||||
invoiceOut: Invoice out
|
||||
client: Client
|
||||
invoiceOutSerialType: Serial Type
|
||||
stop: Stop
|
||||
|
||||
es:
|
||||
|
@ -179,5 +204,6 @@ es:
|
|||
printer: Impresora
|
||||
invoiceOut: Facturar
|
||||
client: Cliente
|
||||
invoiceOutSerialType: Tipo de Serie
|
||||
stop: Parar
|
||||
</i18n>
|
||||
|
|
|
@ -198,7 +198,7 @@ watchEffect(selectedRows);
|
|||
:url="`${MODEL}/filter`"
|
||||
:create="{
|
||||
urlCreate: 'InvoiceOuts/createManualInvoice',
|
||||
title: t('Create Manual Invoice'),
|
||||
title: t('Create manual invoice'),
|
||||
onDataSaved: ({ id }) => tableRef.redirect(id),
|
||||
formInitialData: {
|
||||
active: true,
|
||||
|
@ -275,10 +275,12 @@ en:
|
|||
fileAllowed: Successful download of CSV file
|
||||
youCanSearchByInvoiceReference: You can search by invoice reference
|
||||
createInvoice: Make invoice
|
||||
Create manual invoice: Create manual invoice
|
||||
es:
|
||||
searchInvoice: Buscar factura emitida
|
||||
fileDenied: El navegador denegó la descarga de archivos...
|
||||
fileAllowed: Descarga exitosa de archivo CSV
|
||||
youCanSearchByInvoiceReference: Puedes buscar por referencia de la factura
|
||||
createInvoice: Crear factura
|
||||
Create manual invoice: Crear factura manual
|
||||
</i18n>
|
||||
|
|
|
@ -19,6 +19,7 @@ export const useInvoiceOutGlobalStore = defineStore({
|
|||
maxShipped: null,
|
||||
clientId: null,
|
||||
printer: null,
|
||||
invoiceType: null,
|
||||
},
|
||||
addresses: [],
|
||||
minInvoicingDate: null,
|
||||
|
@ -100,6 +101,7 @@ export const useInvoiceOutGlobalStore = defineStore({
|
|||
maxShipped: new Date(formData.maxShipped),
|
||||
clientId: formData.clientId ? formData.clientId : null,
|
||||
companyFk: formData.companyFk,
|
||||
invoiceType: formData.invoiceType,
|
||||
};
|
||||
|
||||
this.validateMakeInvoceParams(params, clientsToInvoice);
|
||||
|
@ -152,7 +154,13 @@ export const useInvoiceOutGlobalStore = defineStore({
|
|||
);
|
||||
throw new Error('Invoice date in the future');
|
||||
}
|
||||
|
||||
if (!params.invoiceType) {
|
||||
notify(
|
||||
'invoiceOut.globalInvoices.errors.chooseValidinvoiceType',
|
||||
'negative'
|
||||
);
|
||||
throw new Error('Invalid Serial Type');
|
||||
}
|
||||
if (!params.companyFk) {
|
||||
notify('invoiceOut.globalInvoices.errors.chooseValidCompany', 'negative');
|
||||
throw new Error('Invalid company');
|
||||
|
@ -180,6 +188,7 @@ export const useInvoiceOutGlobalStore = defineStore({
|
|||
invoiceDate: new Date(formData.invoiceDate),
|
||||
maxShipped: new Date(formData.maxShipped),
|
||||
companyFk: formData.companyFk,
|
||||
invoiceType: formData.invoiceType,
|
||||
};
|
||||
|
||||
this.status = 'invoicing';
|
||||
|
|
Loading…
Reference in New Issue