-
-
+
-
- {{ t('Close contract') }}
-
-
+
{{ t('Close contract') }}
+
-
-
-
- {{ t('Since') }}:
-
-
- {{ toDate(item.started) }}
-
-
-
-
- {{ t('To') }}:
-
-
- {{ toDate(item.finished) }}
-
-
+
+
+
-
+
-
-
- {{ t('Credit') }}:
-
-
- {{ item.insurances[0].credit }}
-
-
-
-
- {{ t('Grade') }}:
-
-
- {{ item.insurances[0].grade || '-' }}
-
-
-
-
- {{ t('Date') }}:
-
-
- {{ toDate(item.insurances[0].created) }}
-
-
-
-
- {{
- t('View credits')
- }}
-
+
+
+
+
+
@@ -187,11 +169,12 @@ const updateData = () => {
-
+
{
{{ t('New contract') }}
+
+
+
+
diff --git a/src/pages/Customer/Card/CustomerCreditContractsInsurance.vue b/src/pages/Customer/Card/CustomerCreditContractsInsurance.vue
new file mode 100644
index 000000000..aac195b36
--- /dev/null
+++ b/src/pages/Customer/Card/CustomerCreditContractsInsurance.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+es:
+ Created: Fecha creación
+ Grade: Grade
+ Credit: Crédito
+
diff --git a/src/pages/Customer/Card/CustomerFiscalData.vue b/src/pages/Customer/Card/CustomerFiscalData.vue
index f4efd03b6..aa5841ce2 100644
--- a/src/pages/Customer/Card/CustomerFiscalData.vue
+++ b/src/pages/Customer/Card/CustomerFiscalData.vue
@@ -99,7 +99,13 @@ async function acceptPropagate({ isEqualizated }) {
-
+
@@ -111,8 +117,6 @@ async function acceptPropagate({ isEqualizated }) {
option-value="id"
v-model="data.sageTaxTypeFk"
data-cy="sageTaxTypeFk"
- :required="data.isTaxDataChecked"
- :rules="[(val) => validations.required(data.isTaxDataChecked, val)]"
/>
diff --git a/src/pages/Customer/Card/CustomerUnpaid.vue b/src/pages/Customer/Card/CustomerUnpaid.vue
index f76e35821..4041e1efa 100644
--- a/src/pages/Customer/Card/CustomerUnpaid.vue
+++ b/src/pages/Customer/Card/CustomerUnpaid.vue
@@ -50,8 +50,11 @@ const filterClientFindOne = {
>
-
+
diff --git a/src/pages/Customer/Notifications/CustomerNotifications.vue b/src/pages/Customer/Notifications/CustomerNotifications.vue
index cbbd6d205..f19434904 100644
--- a/src/pages/Customer/Notifications/CustomerNotifications.vue
+++ b/src/pages/Customer/Notifications/CustomerNotifications.vue
@@ -26,6 +26,7 @@ const columns = computed(() => [
url: 'Clients',
fields: ['id', 'socialName'],
optionLabel: 'socialName',
+ optionValue: 'socialName',
},
},
columnClass: 'expand',
@@ -37,8 +38,11 @@ const columns = computed(() => [
name: 'city',
columnFilter: {
component: 'select',
+ inWhere: true,
attrs: {
url: 'Towns',
+ optionValue: 'name',
+ optionLabel: 'name',
},
},
cardVisible: true,
@@ -89,17 +93,19 @@ const columns = computed(() => [
{
- {{ t('Campaign consumption') }}
+ {{
+ t('Campaign consumption', { rows: $props.clients.length })
+ }}
{
valentinesDay: Valentine's Day
mothersDay: Mother's Day
allSaints: All Saints' Day
+ Campaign consumption: Campaign consumption - {rows} records
es:
params:
valentinesDay: Día de San Valentín
mothersDay: Día de la Madre
allSaints: Día de Todos los Santos
- Campaign consumption: Consumo campaña
+ Campaign consumption: Consumo campaña - {rows} registros
Campaign: Campaña
From: Desde
To: Hasta
diff --git a/src/pages/Customer/components/CustomerCreditContractsCreate.vue b/src/pages/Customer/components/CustomerCreditContractsCreate.vue
index c25e59e1a..f7d60ccb4 100644
--- a/src/pages/Customer/components/CustomerCreditContractsCreate.vue
+++ b/src/pages/Customer/components/CustomerCreditContractsCreate.vue
@@ -3,44 +3,29 @@ import { reactive, computed } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRoute, useRouter } from 'vue-router';
-import FormModel from 'components/FormModel.vue';
import VnRow from 'components/ui/VnRow.vue';
import VnInput from 'src/components/common/VnInput.vue';
import VnInputDate from 'src/components/common/VnInputDate.vue';
+import FormModelPopup from 'src/components/FormModelPopup.vue';
const { t } = useI18n();
const route = useRoute();
const routeId = computed(() => route.params.id);
-const router = useRouter();
const initialData = reactive({
started: Date.vnNew(),
clientFk: routeId.value,
});
-
-const toCustomerCreditContracts = () => {
- router.push({ name: 'CustomerCreditContracts' });
-};
-
-
-
-
-
-
+
{
-
+
diff --git a/src/pages/Customer/components/CustomerCreditContractsInsurance.vue b/src/pages/Customer/components/CustomerCreditContractsInsurance.vue
deleted file mode 100644
index 70f7cf046..000000000
--- a/src/pages/Customer/components/CustomerCreditContractsInsurance.vue
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-
-
-
-es:
- Created: Fecha creación
- Grade: Grade
- Credit: Crédito
-
diff --git a/src/pages/Customer/components/CustomerFileManagementActions.vue b/src/pages/Customer/components/CustomerFileManagementActions.vue
index 683f062ff..1fcafdccd 100644
--- a/src/pages/Customer/components/CustomerFileManagementActions.vue
+++ b/src/pages/Customer/components/CustomerFileManagementActions.vue
@@ -1,9 +1,9 @@
diff --git a/src/pages/Customer/composables/__tests__/getItemPackagingType.spec.js b/src/pages/Customer/composables/__tests__/getItemPackagingType.spec.js
new file mode 100644
index 000000000..0607f729f
--- /dev/null
+++ b/src/pages/Customer/composables/__tests__/getItemPackagingType.spec.js
@@ -0,0 +1,36 @@
+import { describe, it, expect } from 'vitest';
+import { getItemPackagingType } from '../getItemPackagingType';
+
+describe('getItemPackagingType', () => {
+ it('should return "-" if ticketSales is null or undefined', () => {
+ expect(getItemPackagingType(null)).toBe('-');
+ expect(getItemPackagingType(undefined)).toBe('-');
+ });
+
+ it('should return "-" if ticketSales does not have a length property', () => {
+ const ticketSales = { someKey: 'someValue' }; // No tiene propiedad length
+ expect(getItemPackagingType(ticketSales)).toBe('-');
+ });
+
+ it('should return unique packaging types as a comma-separated string', () => {
+ const ticketSales = [
+ { item: { itemPackingTypeFk: 'H' } },
+ { item: { itemPackingTypeFk: 'V' } },
+ { item: { itemPackingTypeFk: 'H' } },
+ ];
+ expect(getItemPackagingType(ticketSales)).toBe('H, V');
+ });
+ it('should return unique packaging types as a comma-separated string', () => {
+ const ticketSales = [
+ { item: { itemPackingTypeFk: 'H' } },
+ { item: { itemPackingTypeFk: 'V' } },
+ { item: { itemPackingTypeFk: 'H' } },
+ { item: { itemPackingTypeFk: 'A' } },
+ ];
+ expect(getItemPackagingType(ticketSales)).toBe('H, V, A');
+ });
+
+ it('should return "-" if ticketSales is an empty array', () => {
+ expect(getItemPackagingType([])).toBe('-');
+ });
+});
diff --git a/src/pages/Customer/composables/getClient.js b/src/pages/Customer/composables/getClient.js
index 3b9e811de..20b587a8f 100644
--- a/src/pages/Customer/composables/getClient.js
+++ b/src/pages/Customer/composables/getClient.js
@@ -13,4 +13,4 @@ export async function getClient(clientId, _filter = {}) {
};
const params = { filter: JSON.stringify(filter) };
return await axios.get('Clients', { params });
-};
\ No newline at end of file
+}
diff --git a/src/pages/Customer/composables/getItemPackagingType.js b/src/pages/Customer/composables/getItemPackagingType.js
new file mode 100644
index 000000000..eba4d62f5
--- /dev/null
+++ b/src/pages/Customer/composables/getItemPackagingType.js
@@ -0,0 +1,11 @@
+import { dashIfEmpty } from 'src/filters';
+
+export function getItemPackagingType(ticketSales) {
+ if (!ticketSales?.length) return '-';
+
+ const packagingTypes = Array.from(
+ new Set(ticketSales.map(({ item: { itemPackingTypeFk } }) => itemPackingTypeFk)),
+ );
+
+ return dashIfEmpty(packagingTypes.join(', '));
+}
diff --git a/src/pages/Customer/locale/en.yml b/src/pages/Customer/locale/en.yml
index fca3354e6..3c651e7f3 100644
--- a/src/pages/Customer/locale/en.yml
+++ b/src/pages/Customer/locale/en.yml
@@ -123,3 +123,4 @@ customer:
ticketFk: Ticket Id
description: Description
quantity: Quantity
+ ticketId: Ticket
diff --git a/src/pages/Customer/locale/es.yml b/src/pages/Customer/locale/es.yml
index 9b0009b36..ba80bd555 100644
--- a/src/pages/Customer/locale/es.yml
+++ b/src/pages/Customer/locale/es.yml
@@ -123,3 +123,4 @@ customer:
ticketFk: Id Ticket
description: Descripción
quantity: Cantidad
+ ticketId: Ticket
diff --git a/src/pages/Entry/Card/EntryBuysImport.vue b/src/pages/Entry/Card/EntryBuysImport.vue
index 726fec07d..9ed8340be 100644
--- a/src/pages/Entry/Card/EntryBuysImport.vue
+++ b/src/pages/Entry/Card/EntryBuysImport.vue
@@ -126,7 +126,7 @@ const fetchBuys = async (buys) => {
const params = { buys };
const { data } = await axios.post(
`Entries/${route.params.id}/importBuysPreview`,
- params
+ params,
);
importData.value.buys = data;
};
diff --git a/src/pages/Entry/EntryFilter.vue b/src/pages/Entry/EntryFilter.vue
index 19f4bca86..c4d47bb28 100644
--- a/src/pages/Entry/EntryFilter.vue
+++ b/src/pages/Entry/EntryFilter.vue
@@ -162,6 +162,9 @@ const entryFilterPanel = ref();
v-model="params.warehouseOutFk"
@update:model-value="searchFn()"
url="Warehouses"
+ :where="{
+ isOrigin: true,
+ }"
:fields="['id', 'name']"
sort-by="name ASC"
hide-selected
@@ -177,6 +180,9 @@ const entryFilterPanel = ref();
v-model="params.warehouseInFk"
@update:model-value="searchFn()"
url="Warehouses"
+ :where="{
+ isDestiny: true,
+ }"
:fields="['id', 'name']"
sort-by="name ASC"
hide-selected
diff --git a/src/pages/Entry/EntryPreAccount.vue b/src/pages/Entry/EntryPreAccount.vue
index cda2ffd5e..26683b6f4 100644
--- a/src/pages/Entry/EntryPreAccount.vue
+++ b/src/pages/Entry/EntryPreAccount.vue
@@ -133,6 +133,7 @@ const columns = computed(() => [
label: null,
name: 'supplierFk',
class: 'fit',
+ event: 'update',
},
},
{
@@ -472,6 +473,6 @@ en:
es:
IntraCommunity: Intracomunitaria
NonCommunity: Extracomunitaria
- CanaryIsland: Islas Canarias
+ CanaryIslands: Islas Canarias
National: Nacional
diff --git a/src/pages/InvoiceIn/composables/setRectificative.js b/src/pages/InvoiceIn/composables/setRectificative.js
index a1afb8fb0..01038d91a 100644
--- a/src/pages/InvoiceIn/composables/setRectificative.js
+++ b/src/pages/InvoiceIn/composables/setRectificative.js
@@ -3,7 +3,7 @@ import axios from 'axios';
export async function setRectificative(route) {
const card = route.matched.find((route) => route.name === 'InvoiceInCard');
const corrective = card.children.find(
- (route) => route.name === 'InvoiceInCorrective'
+ (route) => route.name === 'InvoiceInCorrective',
);
corrective.meta.hidden = !(
diff --git a/src/pages/Login/ResetPassword.vue b/src/pages/Login/ResetPassword.vue
index 081801e0e..58e10c390 100644
--- a/src/pages/Login/ResetPassword.vue
+++ b/src/pages/Login/ResetPassword.vue
@@ -37,7 +37,7 @@ async function onSubmit() {
await axios.post(
'VnUsers/reset-password',
{ newPassword: newPassword.value },
- { headers }
+ { headers },
);
router.push('Login');
quasar.notify({
diff --git a/src/pages/Order/Card/OrderVolume.vue b/src/pages/Order/Card/OrderVolume.vue
index fb104157e..a09be8c32 100644
--- a/src/pages/Order/Card/OrderVolume.vue
+++ b/src/pages/Order/Card/OrderVolume.vue
@@ -71,9 +71,7 @@ onMounted(async () => (stateStore.rightDrawer = false));
auto-load
/>
-
+
-
+
diff --git a/src/pages/Route/Agency/composables/getAgencies.js b/src/pages/Route/Agency/composables/getAgencies.js
index 180ac943e..7fc7c1997 100644
--- a/src/pages/Route/Agency/composables/getAgencies.js
+++ b/src/pages/Route/Agency/composables/getAgencies.js
@@ -9,7 +9,7 @@ export async function getAgencies(formData, client, _filter = {}) {
};
let agency = null;
- let params = {
+ const params = {
filter: JSON.stringify(filter),
warehouseFk: formData.warehouseId,
addressFk: formData.addressId,
diff --git a/src/pages/Route/Card/RouteDescriptorMenu.vue b/src/pages/Route/Card/RouteDescriptorMenu.vue
index d1a70c868..dabd38583 100644
--- a/src/pages/Route/Card/RouteDescriptorMenu.vue
+++ b/src/pages/Route/Card/RouteDescriptorMenu.vue
@@ -23,7 +23,7 @@ async function openRouteReport() {
const token = getTokenMultimedia();
window.open(
`${url}/api/Routes/${routeId}/driver-route-pdf?access_token=${token}`,
- '_blank'
+ '_blank',
);
}
diff --git a/src/pages/Route/Card/RouteListTicketsDialog.vue b/src/pages/Route/Card/RouteListTicketsDialog.vue
index b9b2ee36b..bf2c7d420 100644
--- a/src/pages/Route/Card/RouteListTicketsDialog.vue
+++ b/src/pages/Route/Card/RouteListTicketsDialog.vue
@@ -106,8 +106,8 @@ const setTicketsRoute = async () => {
(selectedRows.value || [])
.filter((ticket) => ticket?.id)
.map((ticket) =>
- axios.patch(`Routes/${$props.id}/insertTicket`, { ticketId: ticket.id })
- )
+ axios.patch(`Routes/${$props.id}/insertTicket`, { ticketId: ticket.id }),
+ ),
);
await axios.post(`Routes/${$props.id}/updateVolume`);
emit('ok');
diff --git a/src/pages/Route/Cmr/CmrList.vue b/src/pages/Route/Cmr/CmrList.vue
index 170f73bc0..98e1bda02 100644
--- a/src/pages/Route/Cmr/CmrList.vue
+++ b/src/pages/Route/Cmr/CmrList.vue
@@ -6,13 +6,18 @@ import { useRoute } from 'vue-router';
import { useSession } from 'src/composables/useSession';
import { toDateHourMin } from 'filters/index';
import { useStateStore } from 'src/stores/useStateStore';
+import { dashIfEmpty } from 'src/filters';
+import AgencyDescriptorProxy from '../Agency/Card/AgencyDescriptorProxy.vue';
+import CustomerDescriptorProxy from 'src/pages/Customer/Card/CustomerDescriptorProxy.vue';
+import RouteDescriptorProxy from '../Card/RouteDescriptorProxy.vue';
+import SupplierDescriptorProxy from 'src/pages/Supplier/Card/SupplierDescriptorProxy.vue';
import TicketDescriptorProxy from 'pages/Ticket/Card/TicketDescriptorProxy.vue';
-import CustomerDescriptorProxy from 'pages/Customer/Card/CustomerDescriptorProxy.vue';
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
import VnTable from 'components/VnTable/VnTable.vue';
import VnSearchbar from 'src/components/ui/VnSearchbar.vue';
+import VnInput from 'src/components/common/VnInput.vue';
const route = useRoute();
const { t } = useI18n();
@@ -30,39 +35,117 @@ const userParams = {
const columns = computed(() => [
{
- align: 'left',
+ align: 'right',
name: 'cmrFk',
- label: t('route.cmr.params.cmrFk'),
+ label: t('cmr.params.cmrFk'),
chip: {
condition: () => true,
},
isId: true,
},
{
- align: 'center',
- name: 'hasCmrDms',
- label: t('route.cmr.params.hasCmrDms'),
- component: 'checkbox',
- cardVisible: true,
- },
- {
- align: 'left',
- label: t('route.cmr.params.ticketFk'),
+ align: 'right',
+ label: t('cmr.params.ticketFk'),
name: 'ticketFk',
},
{
- align: 'left',
- label: t('route.cmr.params.routeFk'),
+ align: 'right',
+ label: t('cmr.params.routeFk'),
name: 'routeFk',
},
{
- align: 'left',
- label: t('route.cmr.params.clientFk'),
+ label: t('cmr.params.client'),
name: 'clientFk',
+ component: 'select',
+ attrs: {
+ url: 'Clients',
+ fields: ['id', 'name'],
+ },
+ columnFilter: {
+ name: 'clientFk',
+ attrs: {
+ url: 'Clients',
+ fields: ['id', 'name'],
+ },
+ },
},
{
- align: 'right',
- label: t('route.cmr.params.countryFk'),
+ label: t('cmr.params.agency'),
+ name: 'agencyModeFk',
+ component: 'select',
+ attrs: {
+ url: 'Agencies',
+ fields: ['id', 'name'],
+ },
+ columnFilter: {
+ name: 'agencyModeFk',
+ attrs: {
+ url: 'Agencies',
+ fields: ['id', 'name'],
+ },
+ },
+ format: ({ agencyName }) => agencyName,
+ },
+ {
+ label: t('cmr.params.supplier'),
+ name: 'supplierFk',
+ component: 'select',
+ attrs: {
+ url: 'suppliers',
+ fields: ['id', 'name'],
+ },
+ columnFilter: {
+ name: 'supplierFk',
+ attrs: {
+ url: 'suppliers',
+ fields: ['id', 'name'],
+ },
+ },
+ },
+ {
+ label: t('cmr.params.sender'),
+ name: 'addressFromFk',
+ component: 'select',
+ attrs: {
+ url: 'Addresses',
+ fields: ['id', 'nickname'],
+ optionValue: 'id',
+ optionLabel: 'nickname',
+ },
+ columnFilter: {
+ name: 'addressFromFk',
+ attrs: {
+ url: 'Addresses',
+ fields: ['id', 'nickname'],
+ optionValue: 'id',
+ optionLabel: 'nickname',
+ },
+ },
+ format: ({ origin }) => origin,
+ },
+ {
+ label: t('cmr.params.destination'),
+ name: 'addressToFk',
+ component: 'select',
+ attrs: {
+ url: 'addresses',
+ fields: ['id', 'nickname'],
+ optionValue: 'id',
+ optionLabel: 'nickname',
+ },
+ columnFilter: {
+ name: 'addressToFk',
+ attrs: {
+ url: 'addresses',
+ fields: ['id', 'nickname'],
+ optionValue: 'id',
+ optionLabel: 'nickname',
+ },
+ },
+ format: ({ destination }) => destination,
+ },
+ {
+ label: t('cmr.params.country'),
name: 'countryFk',
component: 'select',
attrs: {
@@ -79,16 +162,61 @@ const columns = computed(() => [
format: ({ countryName }) => countryName,
},
{
- align: 'right',
- label: t('route.cmr.params.shipped'),
- name: 'shipped',
- cardVisible: true,
+ label: t('cmr.params.created'),
+ name: 'created',
component: 'date',
- format: ({ shipped }) => toDateHourMin(shipped),
+ format: ({ created }) => dashIfEmpty(toDateHourMin(created)),
},
{
- align: 'right',
- label: t('route.cmr.params.warehouseFk'),
+ label: t('cmr.params.shipped'),
+ name: 'shipped',
+ component: 'date',
+ format: ({ shipped }) => dashIfEmpty(toDateHourMin(shipped)),
+ },
+ {
+ label: t('cmr.params.etd'),
+ name: 'ead',
+ component: 'date',
+ format: ({ ead }) => dashIfEmpty(toDateHourMin(ead)),
+ toolTip: t('cmr.params.etdTooltip'),
+ },
+ {
+ label: t('globals.landed'),
+ name: 'landed',
+ component: 'date',
+ format: ({ landed }) => dashIfEmpty(toDateHourMin(landed)),
+ },
+ {
+ align: 'left',
+ label: t('cmr.params.packageList'),
+ name: 'packagesList',
+ columnFilter: false,
+ },
+ {
+ align: 'left',
+ label: t('cmr.params.observation'),
+ name: 'observation',
+ columnFilter: false,
+ },
+ {
+ align: 'left',
+ label: t('cmr.params.senderInstructions'),
+ name: 'senderInstruccions',
+ columnFilter: false,
+ },
+ {
+ align: 'left',
+ label: t('cmr.params.paymentInstructions'),
+ name: 'paymentInstruccions',
+ columnFilter: false,
+ },
+ {
+ align: 'left',
+ label: t('cmr.params.vehiclePlate'),
+ name: 'truckPlate',
+ },
+ {
+ label: t('cmr.params.warehouse'),
name: 'warehouseFk',
component: 'select',
attrs: {
@@ -96,7 +224,6 @@ const columns = computed(() => [
fields: ['id', 'name'],
},
columnFilter: {
- inWhere: true,
name: 'warehouseFk',
attrs: {
url: 'warehouses',
@@ -105,12 +232,23 @@ const columns = computed(() => [
},
format: ({ warehouseName }) => warehouseName,
},
+ {
+ align: 'left',
+ name: 'specialAgreements',
+ label: t('cmr.params.specialAgreements'),
+ columnFilter: false,
+ },
+ {
+ name: 'hasCmrDms',
+ label: t('cmr.params.hasCmrDms'),
+ component: 'checkbox',
+ },
{
align: 'center',
name: 'tableActions',
actions: [
{
- title: t('route.cmr.params.viewCmr'),
+ title: t('cmr.params.viewCmr'),
icon: 'visibility',
isPrimary: true,
action: (row) => window.open(getCmrUrl(row?.cmrFk), '_blank'),
@@ -151,11 +289,7 @@ function downloadPdfs() {
}
-
+
- {{ t('route.cmr.params.downloadCmrs') }}
+ {{ t('cmr.params.downloadCmrs') }}
@@ -191,11 +325,72 @@ function downloadPdfs() {
+
+
+ {{ row.routeFk }}
+
+
+
- {{ row.clientFk }}
+ {{ row.clientName }}
+
+
+ {{ row.agencyName }}
+
+
+
+
+
+ {{ row.carrierName }}
+
+
+
+
+
+
+
+
+ {{ row.packagesList }}
+
+ {{ row.packagesList }}
+
+
+
+
+
+ {{ row.senderInstruccions }}
+
+ {{ row.senderInstruccions }}
+
+
+
+
+
+ {{ row.paymentInstruccions }}
+
+ {{ row.paymentInstruccions }}
+
+
+
+
+
+ {{ row.specialAgreements }}
+
+ {{ row.specialAgreements }}
+
+
+
diff --git a/src/pages/Route/Cmr/locale/en.yml b/src/pages/Route/Cmr/locale/en.yml
new file mode 100644
index 000000000..fc6f28373
--- /dev/null
+++ b/src/pages/Route/Cmr/locale/en.yml
@@ -0,0 +1,31 @@
+cmr:
+ search: Search Cmr
+ searchInfo: You can search Cmr by Id
+ params:
+ agency: Agency
+ client: Client
+ cmrFk: CMR id
+ country: Country
+ created: Created
+ destination: Destination
+ downloadCmrs: Download CMRs
+ etd: ETD
+ etdTooltip: Estimated Time Delivery
+ hasCmrDms: Attached in gestdoc
+ observation: Observation
+ packageList: Package List
+ paymentInstructions: Payment instructions
+ routeFk: Route id
+ results: results
+ search: General search
+ sender: Sender
+ senderInstructions: Sender instructions
+ shipped: Shipped
+ specialAgreements: Special agreements
+ supplier: Carrier
+ ticketFk: Ticket id
+ vehiclePlate: Vehicle plate
+ viewCmr: View CMR
+ warehouse: Warehouse
+ 'true': 'Yes'
+ 'false': 'No'
diff --git a/src/pages/Route/Cmr/locale/es.yml b/src/pages/Route/Cmr/locale/es.yml
new file mode 100644
index 000000000..417b50967
--- /dev/null
+++ b/src/pages/Route/Cmr/locale/es.yml
@@ -0,0 +1,31 @@
+cmr:
+ search: Buscar Cmr
+ searchInfo: Puedes buscar cmr por id
+ params:
+ agency: Agencia
+ client: Cliente
+ cmrFk: Id cmr
+ country: País
+ created: Creado
+ destination: Destinatario
+ downloadCmrs: Descargar CMRs
+ etd: ETD
+ etdTooltip: Fecha estimada de entrega
+ hasCmrDms: Adjunto en gestdoc
+ observation: Observaciones
+ packageList: Listado embalajes
+ paymentInstructions: Instrucciones de pago
+ routeFk: Id ruta
+ results: Resultados
+ search: Busqueda general
+ sender: Remitente
+ senderInstructions: Instrucciones de envío
+ shipped: F. envío
+ specialAgreements: Acuerdos especiales
+ supplier: Transportista
+ ticketFk: Id ticket
+ vehiclePlate: Matrícula
+ viewCmr: Ver CMR
+ warehouse: Almacén
+ 'true': 'Si'
+ 'false': 'No'
diff --git a/src/pages/Route/Vehicle/Card/VehicleEventInclusionForm.vue b/src/pages/Route/Vehicle/Card/VehicleEventInclusionForm.vue
new file mode 100644
index 000000000..fefd296e4
--- /dev/null
+++ b/src/pages/Route/Vehicle/Card/VehicleEventInclusionForm.vue
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ deleteVehicleEvent(),
+ )
+ "
+ />
+
+
+
+
+
+
+ es:
+ Started: Inicio
+ Finished: Fin
+ Add vehicle event: Agregar evento
+ Edit vehicle event: Editar evento
+
diff --git a/src/pages/Route/Vehicle/Card/VehicleEvents.vue b/src/pages/Route/Vehicle/Card/VehicleEvents.vue
new file mode 100644
index 000000000..e72a746c3
--- /dev/null
+++ b/src/pages/Route/Vehicle/Card/VehicleEvents.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('eventsInclusionForm.addEvent') }}
+
+
+
+
diff --git a/src/pages/Route/Vehicle/Card/VehicleEventsPanel.vue b/src/pages/Route/Vehicle/Card/VehicleEventsPanel.vue
new file mode 100644
index 000000000..eed455511
--- /dev/null
+++ b/src/pages/Route/Vehicle/Card/VehicleEventsPanel.vue
@@ -0,0 +1,199 @@
+
+
+
+
+
+ {{
+ t('eventsPanel.events')
+ }}
+
+
+
+
+ ({{ toDateFormat(event.started) }} -
+ {{ toDateFormat(event.finished) }})
+
+ {{ t('globals.description') }}:
+ {{
+ dashIfEmpty(event.description)
+ }}
+
+ {{ t('globals.state') }}:
+ {{
+ getVehicleStateName(event.vehicleStateFk).state
+ }}
+
+
+
+ deleteEvent(event.id),
+ )
+ "
+ >
+ {{ t('eventsPanel.delete') }}
+
+
+
+
+ {{ t('globals.noResults') }}
+
+
+
+
+
+
diff --git a/src/pages/Route/Vehicle/VehicleCalendar.vue b/src/pages/Route/Vehicle/VehicleCalendar.vue
new file mode 100644
index 000000000..6adb62dd0
--- /dev/null
+++ b/src/pages/Route/Vehicle/VehicleCalendar.vue
@@ -0,0 +1,9 @@
+
+
+
+ emit('onDateSelected', e)" />
+
diff --git a/src/pages/Route/Vehicle/VehicleCalendarGrid.vue b/src/pages/Route/Vehicle/VehicleCalendarGrid.vue
new file mode 100644
index 000000000..525809f7f
--- /dev/null
+++ b/src/pages/Route/Vehicle/VehicleCalendarGrid.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
diff --git a/src/pages/Route/Vehicle/locale/en.yml b/src/pages/Route/Vehicle/locale/en.yml
index af6f78fd1..aa1c6d185 100644
--- a/src/pages/Route/Vehicle/locale/en.yml
+++ b/src/pages/Route/Vehicle/locale/en.yml
@@ -15,6 +15,8 @@ vehicle:
remove: Vehicle removed
search: Search Vehicle
searchInfo: Search by id or number plate
+ deleteTitle: This item will be deleted
+ deleteSubtitle: Are you sure you want to continue?
params:
vehicleTypeFk: Type
vehicleStateFk: State
diff --git a/src/pages/Route/Vehicle/locale/es.yml b/src/pages/Route/Vehicle/locale/es.yml
index 9fd0d3e91..463784c55 100644
--- a/src/pages/Route/Vehicle/locale/es.yml
+++ b/src/pages/Route/Vehicle/locale/es.yml
@@ -15,6 +15,8 @@ vehicle:
remove: Vehículo eliminado
search: Buscar Vehículo
searchInfo: Buscar por id o matrícula
+ deleteTitle: Este elemento será eliminado
+ deleteSubtitle: ¿Seguro que quieres continuar?
params:
vehicleTypeFk: Tipo
vehicleStateFk: Estado
diff --git a/src/pages/Route/locale/en.yml b/src/pages/Route/locale/en.yml
index e7e2d691e..ca4a8ce9a 100644
--- a/src/pages/Route/locale/en.yml
+++ b/src/pages/Route/locale/en.yml
@@ -51,6 +51,11 @@ route:
agencyModeName: Agency route
isOwn: Own
isAnyVolumeAllowed: Any volume allowed
+ created: Created
+ addressFromFk: Sender
+ addressToFk: Destination
+ landed: Landed
+ ead: EAD
Worker: Worker
Agency: Agency
Vehicle: Vehicle
@@ -70,21 +75,3 @@ route:
searchInfo: You can search by route reference
dated: Dated
preview: Preview
- cmr:
- search: Search Cmr
- searchInfo: You can search Cmr by Id
- params:
- results: results
- cmrFk: CMR id
- hasCmrDms: Attached in gestdoc
- 'true': 'Yes'
- 'false': 'No'
- ticketFk: Ticketd id
- routeFk: Route id
- countryFk: Country
- clientFk: Client id
- warehouseFk: Warehouse
- shipped: Preparation date
- viewCmr: View CMR
- downloadCmrs: Download CMRs
- search: General search
diff --git a/src/pages/Route/locale/es.yml b/src/pages/Route/locale/es.yml
index 2785ded31..fe3ba08be 100644
--- a/src/pages/Route/locale/es.yml
+++ b/src/pages/Route/locale/es.yml
@@ -47,11 +47,16 @@ route:
routeFk: Id ruta
clientFk: Id cliente
countryFk: Pais
- shipped: Fecha preparación
+ shipped: F. envío
agencyModeName: Agencia Ruta
agencyAgreement: Agencia Acuerdo
isOwn: Propio
isAnyVolumeAllowed: Cualquier volumen
+ created: Creado
+ addressFromFk: Remitente
+ addressToFk: Destinatario
+ landed: F. entrega
+ ead: ETD
Worker: Trabajador
Agency: Agencia
Vehicle: Vehículo
diff --git a/src/pages/Shelving/Parking/Card/ParkingDescriptorProxy.vue b/src/pages/Shelving/Parking/Card/ParkingDescriptorProxy.vue
index e78a2b238..cff1f75c2 100644
--- a/src/pages/Shelving/Parking/Card/ParkingDescriptorProxy.vue
+++ b/src/pages/Shelving/Parking/Card/ParkingDescriptorProxy.vue
@@ -4,11 +4,6 @@ import ParkingSummary from './ParkingSummary.vue';
-
+
diff --git a/src/pages/Shelving/Parking/locale/en.yml b/src/pages/Shelving/Parking/locale/en.yml
index 2076f38b4..297d25993 100644
--- a/src/pages/Shelving/Parking/locale/en.yml
+++ b/src/pages/Shelving/Parking/locale/en.yml
@@ -2,4 +2,4 @@ parking:
pickingOrder: Picking order
sector: Sector
search: Search parking
- searchInfo: You can search by parking code
\ No newline at end of file
+ searchInfo: You can search by parking code
diff --git a/src/pages/Shelving/Parking/locale/es.yml b/src/pages/Shelving/Parking/locale/es.yml
index 17fe3af53..2cffdc5de 100644
--- a/src/pages/Shelving/Parking/locale/es.yml
+++ b/src/pages/Shelving/Parking/locale/es.yml
@@ -2,4 +2,4 @@ parking:
pickingOrder: Orden de recogida
sector: Sector
search: Buscar parking
- searchInfo: Puedes buscar por código de parking
\ No newline at end of file
+ searchInfo: Puedes buscar por código de parking
diff --git a/src/pages/Shelving/locale/en.yml b/src/pages/Shelving/locale/en.yml
index bd031f50c..47c571023 100644
--- a/src/pages/Shelving/locale/en.yml
+++ b/src/pages/Shelving/locale/en.yml
@@ -6,4 +6,4 @@ shelving:
summary:
recyclable: Recyclable
search: Search shelving
- searchInfo: You can search by shelving reference
\ No newline at end of file
+ searchInfo: You can search by shelving reference
diff --git a/src/pages/Shelving/locale/es.yml b/src/pages/Shelving/locale/es.yml
index 729485e70..4031c5326 100644
--- a/src/pages/Shelving/locale/es.yml
+++ b/src/pages/Shelving/locale/es.yml
@@ -6,4 +6,4 @@ shelving:
summary:
recyclable: Reciclable
search: Buscar carro
- searchInfo: Puedes buscar por referencia del carro
\ No newline at end of file
+ searchInfo: Puedes buscar por referencia del carro
diff --git a/src/pages/Supplier/Card/SupplierAccounts.vue b/src/pages/Supplier/Card/SupplierAccounts.vue
index 2e3acdfb6..d26151994 100644
--- a/src/pages/Supplier/Card/SupplierAccounts.vue
+++ b/src/pages/Supplier/Card/SupplierAccounts.vue
@@ -7,12 +7,11 @@ import FetchData from 'components/FetchData.vue';
import CrudModel from 'components/CrudModel.vue';
import VnRow from 'components/ui/VnRow.vue';
import VnInput from 'src/components/common/VnInput.vue';
-import CreateBankEntityForm from 'src/components/CreateBankEntityForm.vue';
-import VnSelectDialog from 'src/components/common/VnSelectDialog.vue';
import axios from 'axios';
import useNotify from 'src/composables/useNotify.js';
import { useQuasar } from 'quasar';
+import VnBankDetailsForm from 'src/components/common/VnBankDetailsForm.vue';
const { t } = useI18n();
const { notify } = useNotify();
@@ -26,11 +25,6 @@ const wireTransferFk = ref(null);
const bankEntitiesOptions = ref([]);
const filteredBankEntitiesOptions = ref([]);
-const onBankEntityCreated = async (dataSaved, rowData) => {
- await bankEntitiesRef.value.fetch();
- rowData.bankEntityFk = dataSaved.id;
-};
-
const onChangesSaved = async () => {
if (supplier.value.payMethodFk !== wireTransferFk.value)
quasar
@@ -56,23 +50,6 @@ const setWireTransfer = async () => {
await axios.patch(`Suppliers/${route.params.id}`, params);
notify('globals.dataSaved', 'positive');
};
-
-function findBankFk(value, row) {
- row.bankEntityFk = null;
- if (!value) return;
-
- const bankEntityFk = bankEntitiesOptions.value.find((b) => b.id == value.slice(4, 8));
- if (bankEntityFk) row.bankEntityFk = bankEntityFk.id;
-}
-
-function bankEntityFilter(val) {
- const needle = val.toLowerCase();
- filteredBankEntitiesOptions.value = bankEntitiesOptions.value.filter(
- (bank) =>
- bank.bic.toLowerCase().startsWith(needle) ||
- bank.name.toLowerCase().includes(needle),
- );
-}
- findBankFk(value, row)"
- :required="true"
- >
-
-
- {{ t('components.iban_tooltip') }}
-
-
-
-
-
-
- onBankEntityCreated(requestResponse, row)
- "
- />
-
-
-
-
- {{ scope.opt.bic }}
- {{ scope.opt.name }}
-
-
-
-
+ {
+ row.iban = iban;
+ row.bankEntityFk = bankEntityFk;
+ }
+ "
+ />
-import { useRoute } from 'vue-router';
import { computed, onMounted, onUnmounted, ref } from 'vue';
import { useI18n } from 'vue-i18n';
+import { useRoute } from 'vue-router';
import { useQuasar } from 'quasar';
-import FetchedTags from 'components/ui/FetchedTags.vue';
-import SendEmailDialog from 'components/common/SendEmailDialog.vue';
-import SupplierConsumptionFilter from './SupplierConsumptionFilter.vue';
-import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue';
-
-import { dateRange, toDate } from 'src/filters';
-import { dashIfEmpty } from 'src/filters';
-import { usePrintService } from 'composables/usePrintService';
-import useNotify from 'src/composables/useNotify.js';
import axios from 'axios';
+import { dateRange, toCurrency, toNumber, toDateHourMin } from 'src/filters';
+import { usePrintService } from 'composables/usePrintService';
+import useNotify from 'src/composables/useNotify';
import { useStateStore } from 'stores/useStateStore';
import { useState } from 'src/composables/useState';
import { useArrayData } from 'composables/useArrayData';
+import SendEmailDialog from 'components/common/SendEmailDialog.vue';
+import SupplierConsumptionFilter from './SupplierConsumptionFilter.vue';
import RightMenu from 'src/components/common/RightMenu.vue';
+import EntryDescriptorProxy from 'src/pages/Entry/Card/EntryDescriptorProxy.vue';
+import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue';
const state = useState();
const stateStore = useStateStore();
@@ -31,7 +29,86 @@ const arrayData = useArrayData('SupplierConsumption', {
order: ['itemTypeFk', 'itemName', 'itemSize'],
userFilter: { where: { supplierFk: route.params.id } },
});
+const headerColumns = computed(() => [
+ {
+ name: 'id',
+ label: t('globals.entry'),
+ align: 'left',
+ field: 'id',
+ sortable: true,
+ },
+ {
+ name: 'invoiceNumber',
+ label: t('globals.params.supplierRef'),
+ align: 'left',
+ field: 'invoiceNumber',
+ sortable: true,
+ },
+ {
+ name: 'shipped',
+ label: t('globals.shipped'),
+ align: 'center',
+ field: 'shipped',
+ format: toDateHourMin,
+ sortable: true,
+ },
+ {
+ name: 'quantity',
+ label: t('item.list.stems'),
+ align: 'center',
+ field: 'quantity',
+ format: (value) => toNumber(value),
+ sortable: true,
+ },
+ {
+ name: 'total',
+ label: t('globals.total'),
+ align: 'center',
+ field: 'total',
+ format: (value) => toCurrency(value),
+ sortable: true,
+ },
+]);
+const columns = computed(() => [
+ {
+ name: 'itemName',
+ label: t('globals.item'),
+ align: 'left',
+ field: 'itemName',
+ sortable: true,
+ },
+ {
+ name: 'subName',
+ align: 'left',
+ field: 'subName',
+ sortable: true,
+ },
+ {
+ name: 'quantity',
+ label: t('globals.quantity'),
+ align: 'right',
+ field: 'quantity',
+ format: (value) => toNumber(value),
+ sortable: true,
+ },
+ {
+ name: 'price',
+ label: t('globals.price'),
+ align: 'right',
+ field: 'price',
+ format: (value) => toCurrency(value),
+ sortable: true,
+ },
+ {
+ name: 'total',
+ label: t('globals.total'),
+ align: 'right',
+ field: 'total',
+ format: (value) => toCurrency(value),
+ sortable: true,
+ },
+]);
const store = arrayData.store;
onUnmounted(() => state.unset('SupplierConsumption'));
@@ -40,13 +117,11 @@ const dateRanges = computed(() => {
return { from, to };
});
-const reportParams = computed(() => {
- return {
- recipientId: Number(route.params.id),
- to: dateRange(dateRanges.value.to)[1],
- from: dateRange(dateRanges.value.from)[1],
- };
-});
+const reportParams = computed(() => ({
+ recipientId: Number(route.params.id),
+ from: dateRange(dateRanges.value.from)[0].toISOString(),
+ to: dateRange(dateRanges.value.to)[1].toISOString(),
+}));
async function getSupplierConsumptionData() {
await arrayData.fetch({ append: false });
@@ -102,33 +177,34 @@ const sendCampaignMetricsEmail = ({ address }) => {
};
const totalEntryPrice = (rows) => {
- let totalPrice = 0;
- let totalQuantity = 0;
- if (!rows) return totalPrice;
- for (const row of rows) {
- let total = 0;
- let quantity = 0;
-
- if (row.buys) {
- for (const buy of row.buys) {
- total = total + buy.total;
- quantity = quantity + buy.quantity;
+ if (!rows) return [];
+ totalRows.value = rows.reduce(
+ (acc, row) => {
+ if (Array.isArray(row.buys)) {
+ const { total, quantity } = row.buys.reduce(
+ (buyAcc, buy) => {
+ buyAcc.total += buy.total || 0;
+ buyAcc.quantity += buy.quantity || 0;
+ return buyAcc;
+ },
+ { total: 0, quantity: 0 },
+ );
+ row.total = total;
+ row.quantity = quantity;
+ acc.totalPrice += total;
+ acc.totalQuantity += quantity;
}
- }
-
- row.total = total;
- row.quantity = quantity;
- totalPrice = totalPrice + total;
- totalQuantity = totalQuantity + quantity;
- }
- totalRows.value = { totalPrice, totalQuantity };
+ return acc;
+ },
+ { totalPrice: 0, totalQuantity: 0 },
+ );
return rows;
};
-
onMounted(async () => {
stateStore.rightDrawer = true;
await getSupplierConsumptionData();
});
+const expanded = ref([]);
@@ -162,14 +238,14 @@ onMounted(async () => {
{{ t('Total entries') }}:
- {{ totalRows.totalPrice }} €
+ {{ toCurrency(totalRows.totalPrice) }}
{{ t('Total stems entries') }}:
- {{ totalRows.totalQuantity }}
+ {{ toNumber(totalRows.totalQuantity) }}
@@ -179,59 +255,111 @@ onMounted(async () => {
-
-
-
-
- {{ t('supplier.consumption.entry') }}:
- {{ row.id }}
-
-
- {{ t('globals.date') }}:
- {{ toDate(row.shipped) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- {{ t('globals.reference') }}:
- {{ row.invoiceNumber }}
-
-
-
-
- {{ buy.itemName }}
-
-
+
+
+
-
- {{ buy.subName }}
-
-
- {{ dashIfEmpty(buy.quantity) }}
- {{ dashIfEmpty(buy.price) }}
- {{ dashIfEmpty(buy.total) }}
-
-
-
- {{ t('Total entry') }}:
- {{ row.total }} €
-
-
- {{ t('Total stems') }}:
- {{ row.quantity }}
-
-
-
-
+
+
+ {{ col.value }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ col.value }}
+
+
+
+
+
+
+
+
+
+
+
+
-
diff --git a/src/pages/Supplier/Card/SupplierSummary.vue b/src/pages/Supplier/Card/SupplierSummary.vue
index b658ca5fb..cdb7d94e5 100644
--- a/src/pages/Supplier/Card/SupplierSummary.vue
+++ b/src/pages/Supplier/Card/SupplierSummary.vue
@@ -76,7 +76,7 @@ const getUrl = (section) => `#/supplier/${entityId.value}/${section}`;
{{
dashIfEmpty(
supplier.companySize &&
- t('globals.' + supplier.companySize)
+ t('globals.' + supplier.companySize),
)
}}
diff --git a/src/pages/Ticket/Card/BasicData/TicketBasicDataForm.vue b/src/pages/Ticket/Card/BasicData/TicketBasicDataForm.vue
index 61932468c..1d1ec7610 100644
--- a/src/pages/Ticket/Card/BasicData/TicketBasicDataForm.vue
+++ b/src/pages/Ticket/Card/BasicData/TicketBasicDataForm.vue
@@ -8,7 +8,6 @@ import VnRow from 'components/ui/VnRow.vue';
import VnSelect from 'src/components/common/VnSelect.vue';
import VnInput from 'src/components/common/VnInput.vue';
import VnInputDate from 'src/components/common/VnInputDate.vue';
-import VnInputTime from 'components/common/VnInputTime.vue';
import axios from 'axios';
import useNotify from 'src/composables/useNotify.js';
@@ -25,7 +24,9 @@ const { validate } = useValidator();
const { notify } = useNotify();
const router = useRouter();
const { t } = useI18n();
-const canEditZone = useAcl().hasAcl('Ticket', 'editZone', 'WRITE');
+const canEditZone = useAcl().hasAny([
+ { model: 'Ticket', props: 'editZone', accessType: 'WRITE' },
+]);
const agencyFetchRef = ref();
const warehousesOptions = ref([]);
@@ -57,26 +58,38 @@ const zoneWhere = computed(() => {
});
async function getLanded(params) {
- getDate(`Agencies/getLanded`, params);
+ const data = await getDate(`Agencies/getLanded`, params);
+ formData.value.landed = data.landed;
+ const shippedDate = new Date(params.shipped);
+ const landedDate = new Date(data.hour);
+ shippedDate.setHours(
+ landedDate.getHours(),
+ landedDate.getMinutes(),
+ landedDate.getSeconds(),
+ );
+ formData.value.shipped = shippedDate.toISOString();
}
async function getShipped(params) {
- getDate(`Agencies/getShipped`, params);
+ const data = await getDate(`Agencies/getShipped`, params);
+ formData.value.landed = params.landed;
+ const [hours, minutes, seconds] = data.hour.split(':').map(Number);
+ let shippedDate = new Date(data.shipped);
+ shippedDate.setHours(hours, minutes, seconds);
+ formData.value.shipped = shippedDate.toISOString();
}
async function getDate(query, params) {
for (const param in params) {
if (!params[param]) return;
}
-
- formData.value.zoneFk = null;
zonesOptions.value = [];
const { data } = await axios.get(query, { params });
if (!data) return notify(t('basicData.noDeliveryZoneAvailable'), 'negative');
formData.value.zoneFk = data.zoneFk;
- if (data.landed) formData.value.landed = data.landed;
- if (data.shipped) formData.value.shipped = data.shipped;
+
+ return data;
}
const onChangeZone = async (zoneId) => {
@@ -125,6 +138,7 @@ const addressId = computed({
formData.value.addressFk = val;
onChangeAddress(val);
getShipped({
+ shipped: formData.value?.shipped,
landed: formData.value?.landed,
addressFk: val,
agencyModeFk: formData.value?.agencyModeFk,
@@ -239,6 +253,9 @@ async function getZone(options) {
(warehousesOptions = data)"
+ :where="{
+ isForTicket: true,
+ }"
auto-load
/>
-
+
+
+
+
-
-import { reactive } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRouter } from 'vue-router';
@@ -30,31 +29,29 @@ const { t } = useI18n();
const router = useRouter();
const { notify } = useNotify();
-const newTicketFormData = reactive({});
const date = new Date();
-const createTicket = async () => {
+async function createTicket(formData) {
const expeditionIds = $props.selectedExpeditions.map((expedition) => expedition.id);
const params = {
clientId: $props.ticket.clientFk,
- landed: newTicketFormData.landed,
+ landed: formData.landed,
warehouseId: $props.ticket.warehouseFk,
addressId: $props.ticket.addressFk,
agencyModeId: $props.ticket.agencyModeFk,
- routeId: newTicketFormData.routeFk,
+ routeId: formData.routeFk,
expeditionIds: expeditionIds,
};
-
const { data } = await axios.post('Expeditions/moveExpeditions', params);
notify(t('globals.dataSaved'), 'positive');
router.push({ name: 'TicketSummary', params: { id: data.id } });
-};
+}
diff --git a/src/pages/Ticket/Card/TicketComponents.vue b/src/pages/Ticket/Card/TicketComponents.vue
index 5936ffc28..9a3a94ebb 100644
--- a/src/pages/Ticket/Card/TicketComponents.vue
+++ b/src/pages/Ticket/Card/TicketComponents.vue
@@ -38,7 +38,7 @@ watch(
if (ticketData.value?.zone && ticketData.value?.zone?.isVolumetric)
getTicketVolume();
},
- { immediate: true }
+ { immediate: true },
);
const salesFilter = computed(() => ({
diff --git a/src/pages/Ticket/Card/TicketDescriptor.vue b/src/pages/Ticket/Card/TicketDescriptor.vue
index c6c6e6c6b..3cab54b98 100644
--- a/src/pages/Ticket/Card/TicketDescriptor.vue
+++ b/src/pages/Ticket/Card/TicketDescriptor.vue
@@ -46,7 +46,9 @@ async function getClaims() {
originalTicket.value = data[0]?.originalTicketFk;
}
async function getProblems() {
- const { data } = await axios.get(`Tickets/getTicketProblems`, {params: { ids: [entityId.value] }});
+ const { data } = await axios.get(`Tickets/getTicketProblems`, {
+ params: { ids: [entityId.value] },
+ });
if (!data) return;
problems.value = data[0];
}
diff --git a/src/pages/Ticket/Card/TicketEditMana.vue b/src/pages/Ticket/Card/TicketEditMana.vue
index f8a72caf3..d463b1735 100644
--- a/src/pages/Ticket/Card/TicketEditMana.vue
+++ b/src/pages/Ticket/Card/TicketEditMana.vue
@@ -89,7 +89,7 @@ defineExpose({ save });