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/components/ui/VnPaginate.vue b/src/components/ui/VnPaginate.vue index f3f6d64f1..3649ba8f5 100644 --- a/src/components/ui/VnPaginate.vue +++ b/src/components/ui/VnPaginate.vue @@ -133,7 +133,7 @@ const addFilter = async (filter, params) => { async function fetch(params) { useArrayData(props.dataKey, params); arrayData.reset(['filter.skip', 'skip', 'page']); - await arrayData.fetch({ append: false }); + await arrayData.fetch({ append: false, updateRouter: mounted.value }); return emitStoreData(); } 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 a823a57d4..98e443b6a 100644 --- a/src/i18n/locale/en.yml +++ b/src/i18n/locale/en.yml @@ -864,7 +864,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/Entry/EntryBuysTableDialog.vue b/src/pages/Entry/EntryBuysTableDialog.vue index c885c2485..77b31aaa3 100644 --- a/src/pages/Entry/EntryBuysTableDialog.vue +++ b/src/pages/Entry/EntryBuysTableDialog.vue @@ -86,7 +86,7 @@ const entriesTableColumns = computed(() => [ color="primary" icon="print" :loading="isLoading" - @click="openReport(`Entries/${entityId}/print`)" + @click="openReport(`Entries/${entityId}/buy-label-supplier`)" unelevated autofocus /> 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/InvoiceOut/InvoiceOutList.vue b/src/pages/InvoiceOut/InvoiceOutList.vue index 8edb78732..c8fffb0ef 100644 --- a/src/pages/InvoiceOut/InvoiceOutList.vue +++ b/src/pages/InvoiceOut/InvoiceOutList.vue @@ -60,8 +60,15 @@ const columns = computed(() => [ label: t('globals.reference'), isTitle: true, component: 'select', - attrs: { url: MODEL, optionLabel: 'ref', optionValue: 'id' }, + attrs: { + url: MODEL, + optionLabel: 'ref', + optionValue: 'ref', + }, columnField: { component: null }, + columnFilter: { + inWhere: true, + }, }, { align: 'left', @@ -139,25 +146,22 @@ function openPdf(id) { } function downloadPdf() { - if (selectedRows.value.size === 0) return; - const selectedCardsArray = Array.from(selectedRows.value.values()); + if (selectedRows.value.size === 0) return; + const selectedCardsArray = Array.from(selectedRows.value.values()); - if (selectedRows.value.size === 1) { - const [invoiceOut] = selectedCardsArray; - openPdf(invoiceOut.id); - } else { - const invoiceOutIdsArray = selectedCardsArray.map( - (invoiceOut) => invoiceOut.id - ); - const invoiceOutIds = invoiceOutIdsArray.join(','); + if (selectedRows.value.size === 1) { + const [invoiceOut] = selectedCardsArray; + openPdf(invoiceOut.id); + } else { + const invoiceOutIdsArray = selectedCardsArray.map((invoiceOut) => invoiceOut.id); + const invoiceOutIds = invoiceOutIdsArray.join(','); - const params = { - ids: invoiceOutIds, - }; - - openReport(`${MODEL}/downloadZip`, params); - } + const params = { + ids: invoiceOutIds, + }; + openReport(`${MODEL}/downloadZip`, params); + } } watchEffect(selectedRows); diff --git a/src/pages/Order/OrderList.vue b/src/pages/Order/OrderList.vue index cb59d7c4a..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(); @@ -149,7 +150,12 @@ onMounted(() => { }); async function fetchClientAddress(id, formData = {}) { const { data } = await axios.get(`Clients/${id}`, { - params: { filter: { include: { relation: 'addresses' } } }, + params: { + filter: { + order: ['isDefaultAddress DESC', 'isActive DESC', 'nickname ASC'], + include: { relation: 'addresses' }, + }, + }, }); addressesList.value = data.addresses; formData.addressId = data.defaultAddressFk; @@ -162,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) => { @@ -191,7 +197,7 @@ const getDateColor = (date) => { urlCreate: 'Orders/new', title: t('module.cerateOrder'), onDataSaved: (url) => { - tableRef.redirect(`${url}/catalog`); + tableRef.redirect(`${url}/catalog`); }, formInitialData: { active: true, @@ -253,22 +259,27 @@ const getDateColor = (date) => { @update:model-value="() => fetchAgencies(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/src/pages/Ticket/TicketList.vue b/src/pages/Ticket/TicketList.vue index 149a794a9..2fe4fcddc 100644 --- a/src/pages/Ticket/TicketList.vue +++ b/src/pages/Ticket/TicketList.vue @@ -274,7 +274,7 @@ const fetchAddresses = async (formData) => { const filter = { fields: ['nickname', 'street', 'city', 'id', 'isActive'], - order: 'nickname ASC', + order: ['isDefaultAddress DESC', 'isActive DESC', 'nickname ASC'], }; const params = { filter: JSON.stringify(filter) }; const { data } = await axios.get(`Clients/${formData.clientId}/addresses`, { @@ -590,7 +590,22 @@ function setReference(data) { @update:model-value="() => fetchAvailableAgencies(data)" >