diff --git a/src/components/ui/VnLinkPhone.vue b/src/components/ui/VnLinkPhone.vue
index 4c045968f..4068498cd 100644
--- a/src/components/ui/VnLinkPhone.vue
+++ b/src/components/ui/VnLinkPhone.vue
@@ -1,6 +1,7 @@
diff --git a/src/filters/index.js b/src/filters/index.js
index ce5c44706..1f7ac77dd 100644
--- a/src/filters/index.js
+++ b/src/filters/index.js
@@ -12,10 +12,12 @@ import dateRange from './dateRange';
import toHour from './toHour';
import dashOrCurrency from './dashOrCurrency';
import getParamWhere from './getParamWhere';
+import parsePhone from './parsePhone';
import isDialogOpened from './isDialogOpened';
export {
isDialogOpened,
+ parsePhone,
toLowerCase,
toLowerCamel,
toDate,
diff --git a/src/filters/parsePhone.js b/src/filters/parsePhone.js
new file mode 100644
index 000000000..696f55007
--- /dev/null
+++ b/src/filters/parsePhone.js
@@ -0,0 +1,12 @@
+export default function (phone, prefix = 34) {
+ if (phone.startsWith('+')) {
+ return `${phone.slice(1)}`;
+ }
+ if (phone.startsWith('00')) {
+ return `${phone.slice(2)}`;
+ }
+ if (phone.startsWith(prefix) && phone.length === prefix.length + 9) {
+ return `${prefix}${phone.slice(prefix.length)}`;
+ }
+ return `${prefix}${phone}`;
+}
diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml
index e2e0e4238..3e3df7a0f 100644
--- a/src/i18n/locale/en.yml
+++ b/src/i18n/locale/en.yml
@@ -861,7 +861,6 @@ components:
cardDescriptor:
mainList: Main list
summary: Summary
- moreOptions: More options
leftMenu:
addToPinned: Add to pinned
removeFromPinned: Remove from pinned
diff --git a/src/pages/Customer/CustomerFilter.vue b/src/pages/Customer/CustomerFilter.vue
index 79d48a667..cd567d415 100644
--- a/src/pages/Customer/CustomerFilter.vue
+++ b/src/pages/Customer/CustomerFilter.vue
@@ -101,8 +101,8 @@ const exprBuilder = (param, value) => {
-
+ {
/>
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{
outlined
rounded
auto-load
+ />
+
+
+
+
-
-
-
-
-
-
-
+
+
@@ -203,7 +201,6 @@ es:
Salesperson: Comercial
Province: Provincia
City: Ciudad
- More options: Más opciones
Phone: Teléfono
Email: Email
Zone: Zona
diff --git a/src/pages/InvoiceIn/InvoiceInFilter.vue b/src/pages/InvoiceIn/InvoiceInFilter.vue
index d1c0856b5..130a77960 100644
--- a/src/pages/InvoiceIn/InvoiceInFilter.vue
+++ b/src/pages/InvoiceIn/InvoiceInFilter.vue
@@ -184,5 +184,4 @@ es:
Amount: Importe
Issued: Fecha factura
Id or supplier: Id o proveedor
- More options: Más opciones
diff --git a/src/pages/InvoiceOut/InvoiceOutFilter.vue b/src/pages/InvoiceOut/InvoiceOutFilter.vue
index 9ce8cc254..dc1d833a2 100644
--- a/src/pages/InvoiceOut/InvoiceOutFilter.vue
+++ b/src/pages/InvoiceOut/InvoiceOutFilter.vue
@@ -83,36 +83,29 @@ const states = ref();
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -149,5 +142,4 @@ es:
Issued: Fecha emisión
Created: Fecha creación
Dued: Fecha vencimiento
- More options: Más opciones
diff --git a/src/pages/Order/OrderList.vue b/src/pages/Order/OrderList.vue
index ced3b9b30..c47a9b2ec 100644
--- a/src/pages/Order/OrderList.vue
+++ b/src/pages/Order/OrderList.vue
@@ -15,6 +15,7 @@ import CustomerDescriptorProxy from '../Customer/Card/CustomerDescriptorProxy.vu
import WorkerDescriptorProxy from '../Worker/Card/WorkerDescriptorProxy.vue';
import { toDateTimeFormat } from 'src/filters/date';
import { useRoute } from 'vue-router';
+import dataByOrder from 'src/utils/dataByOrder';
const { t } = useI18n();
const { viewSummary } = useSummaryDialog();
@@ -167,7 +168,7 @@ async function fetchAgencies({ landed, addressId }) {
const { data } = await axios.get('Agencies/landsThatDay', {
params: { addressFk: addressId, landed },
});
- agencyList.value = data;
+ agencyList.value = dataByOrder(data, 'agencyMode ASC');
}
const getDateColor = (date) => {
diff --git a/src/pages/Ticket/TicketFilter.vue b/src/pages/Ticket/TicketFilter.vue
index 6f1cac83b..bde27f30e 100644
--- a/src/pages/Ticket/TicketFilter.vue
+++ b/src/pages/Ticket/TicketFilter.vue
@@ -212,81 +212,78 @@ const getGroupedStates = (data) => {
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -340,7 +337,6 @@ es:
With problems: Con problemas
Invoiced: Facturado
Routed: Enrutado
- More options: Más opciones
Province: Provincia
Agency: Agencia
Warehouse: Almacén
diff --git a/test/vitest/__tests__/components/common/VnLinkPhone.spec.js b/test/vitest/__tests__/components/common/VnLinkPhone.spec.js
new file mode 100644
index 000000000..e460ab2fc
--- /dev/null
+++ b/test/vitest/__tests__/components/common/VnLinkPhone.spec.js
@@ -0,0 +1,29 @@
+import { describe, it, expect } from 'vitest';
+import parsePhone from 'src/filters/parsePhone';
+
+describe('parsePhone filter', () => {
+ it("adds prefix +34 if it doesn't have one", () => {
+ const resultado = parsePhone('123456789', '34');
+ expect(resultado).toBe('34123456789');
+ });
+
+ it('maintains prefix +34 if it is already correct', () => {
+ const resultado = parsePhone('+34123456789', '34');
+ expect(resultado).toBe('34123456789');
+ });
+
+ it('converts prefix 0034 to +34', () => {
+ const resultado = parsePhone('0034123456789', '34');
+ expect(resultado).toBe('34123456789');
+ });
+
+ it('converts prefix 34 without symbol to +34', () => {
+ const resultado = parsePhone('34123456789', '34');
+ expect(resultado).toBe('34123456789');
+ });
+
+ it('replaces incorrect prefix with the correct one', () => {
+ const resultado = parsePhone('+44123456789', '34');
+ expect(resultado).toBe('44123456789');
+ });
+});