diff --git a/src/pages/Customer/components/CustomerAddressEdit.vue b/src/pages/Customer/components/CustomerAddressEdit.vue
index 150ef3b84..6789ac56b 100644
--- a/src/pages/Customer/components/CustomerAddressEdit.vue
+++ b/src/pages/Customer/components/CustomerAddressEdit.vue
@@ -247,8 +247,14 @@ function handleLocation(data, location) {
:label="t('Longitude')"
clearable
v-model="data.longitude"
+ :decimal-places="7"
+ />
+
-
{{ t('Notes') }}
{
};
await axios.patch(`Sales/${request.saleFk}`, params);
- notify(t('globals.dataSaved'), 'positive');
- confirmRequest(request);
- } else confirmRequest(request);
+ }
+ await confirmRequest(request);
+ notify(t('globals.dataSaved'), 'positive');
};
const confirmRequest = async (request) => {
- if (request.itemFk && request.saleQuantity) {
- const params = {
- itemFk: request.itemFk,
- quantity: request.saleQuantity,
- attenderFk: request.attenderFk,
- };
+ if (!request.itemFk || !request.saleQuantity) return;
+ const params = {
+ itemFk: request.itemFk,
+ quantity: request.saleQuantity,
+ attenderFk: request.attenderFk,
+ };
- const { data } = await axios.post(`TicketRequests/${request.id}/confirm`, params);
- request.itemDescription = data.concept;
- request.isOk = true;
- notify(t('globals.dataSaved'), 'positive');
- }
+ const { data } = await axios.post(`TicketRequests/${request.id}/confirm`, params);
+ request.itemDescription = data.concept;
+ request.isOk = true;
};
const getState = (isOk) => {
diff --git a/src/stores/invoiceOutGlobal.js b/src/stores/invoiceOutGlobal.js
index cc8d86ea8..d8649753f 100644
--- a/src/stores/invoiceOutGlobal.js
+++ b/src/stores/invoiceOutGlobal.js
@@ -10,7 +10,6 @@ const { notify } = useNotify();
export const useInvoiceOutGlobalStore = defineStore({
id: 'invoiceOutGlobal',
-
state: () => ({
initialDataLoading: true,
formInitialData: {
@@ -33,6 +32,7 @@ export const useInvoiceOutGlobalStore = defineStore({
nRequests: 0,
nPdfs: 0,
totalPdfs: 0,
+ formData: null,
}),
actions: {
async init() {
@@ -93,8 +93,6 @@ export const useInvoiceOutGlobalStore = defineStore({
},
async makeInvoice(formData, clientsToInvoice) {
- this.invoicing = true;
- const promises = [];
try {
this.printer = formData.printer;
const params = {
@@ -119,11 +117,12 @@ export const useInvoiceOutGlobalStore = defineStore({
);
throw new Error("There aren't addresses to invoice");
}
+ this.invoicing = false;
this.status = 'invoicing';
- for (let index = 0; index < this.parallelism; index++) {
- promises.push(this.invoiceClient(formData, index));
- }
- await Promise.all(promises);
+ this.formData = formData;
+ this.addressIndex = 0;
+ this.errors = [];
+ await this.invoiceClient();
} catch (err) {
this.handleError(err);
}
@@ -182,45 +181,42 @@ export const useInvoiceOutGlobalStore = defineStore({
}
},
- async invoiceClient(formData, index) {
- const address = this.addresses[index];
+ async invoiceClient() {
+ if (this.invoicing || this.nRequests >= this.parallelism) return;
+ const address = this.addresses[this.addressIndex];
+
if (!address || !this.status || this.status == 'stopping') {
this.status = 'stopping';
this.invoicing = false;
return;
}
try {
+ this.invoicing = true;
const params = {
clientId: address.clientId,
addressId: address.id,
- invoiceDate: new Date(formData.invoiceDate),
- maxShipped: new Date(formData.maxShipped),
- companyFk: formData.companyFk,
- serialType: formData.serialType,
+ invoiceDate: new Date(this.formData.invoiceDate),
+ maxShipped: new Date(this.formData.maxShipped),
+ companyFk: this.formData.companyFk,
+ serialType: this.formData.serialType,
};
- this.invoicing = true;
-
const { data } = await axios.post('InvoiceOuts/invoiceClient', params);
-
- if (data) await this.makePdfAndNotify(data, address);
- this.isInvoicing = false;
+ if (data) this.makePdfAndNotify(data, address);
} catch (err) {
if (err?.response?.status >= 400 && err?.response?.status < 500) {
this.invoiceClientError(address, err.response?.data?.error?.message);
return;
} else {
- this.invoicing = false;
notify(
'invoiceOut.globalInvoices.errors.criticalInvoiceError',
'negative'
);
- throw new Error('Critical invoicing error, process stopped');
}
} finally {
+ this.invoicing = false;
this.addressIndex++;
- if (this.status != 'stopping')
- await this.invoiceClient(formData, this.addressIndex);
+ this.invoiceClient();
}
},
@@ -231,9 +227,11 @@ export const useInvoiceOutGlobalStore = defineStore({
const params = { printerFk: this.printer };
await axios.post(`InvoiceOuts/${invoiceId}/makePdfAndNotify`, params);
this.nPdfs++;
- this.nRequests--;
} catch (err) {
this.invoiceClientError(client, err.response?.data?.error?.message, true);
+ } finally {
+ this.nRequests--;
+ this.invoiceClient();
}
},