@@ -30,6 +26,7 @@ onMounted(() => {
model="CustomerContacts"
ref="customerContactsRef"
url="ClientContacts"
+ auto-load
>
diff --git a/src/pages/Entry/Card/EntryNotes.vue b/src/pages/Entry/Card/EntryNotes.vue
index b9683578c..f07d0b233 100644
--- a/src/pages/Entry/Card/EntryNotes.vue
+++ b/src/pages/Entry/Card/EntryNotes.vue
@@ -1,5 +1,5 @@
diff --git a/src/pages/Item/Card/ItemBarcode.vue b/src/pages/Item/Card/ItemBarcode.vue
index 26254ba84..b353d67c7 100644
--- a/src/pages/Item/Card/ItemBarcode.vue
+++ b/src/pages/Item/Card/ItemBarcode.vue
@@ -1,5 +1,5 @@
@@ -42,6 +38,7 @@ onMounted(async () => {
model="ItemBarcodes"
ref="itemBarcodeRef"
url="ItemBarcodes"
+ auto-load
>
diff --git a/src/pages/Item/Card/ItemLastEntries.vue b/src/pages/Item/Card/ItemLastEntries.vue
new file mode 100644
index 000000000..5200db239
--- /dev/null
+++ b/src/pages/Item/Card/ItemLastEntries.vue
@@ -0,0 +1,317 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.entryFk }}
+
+
+
+
+
+
+ {{ dashIfEmpty(row.packing) }}
+ {{ t('lastEntries.packing') }}
+
+
+
+
+ {{ value }}
+
+ {{ t('lastEntries.grouping') }}/{{ t('lastEntries.packing') }}
+
+
+
+
+
+ {{ dashIfEmpty(row.grouping) }}
+ {{ t('lastEntries.grouping') }}
+
+
+
+
+
+
+ {{ toCurrency(row.cost, 'EUR', 3) }}
+
+ {{ t('lastEntries.cost') }}:
+ {{ toCurrency(dashIfEmpty(row.buyingValue), 'EUR', 3) }}
+ {{ t('lastEntries.package') }}:
+ {{ toCurrency(dashIfEmpty(row.packageValue), 'EUR', 3)
+ }}
+ {{ $t('lastEntries.freight') }}:
+ {{ toCurrency(dashIfEmpty(row.freightValue), 'EUR', 3)
+ }}
+ {{ t('lastEntries.comission') }}:
+ {{ toCurrency(dashIfEmpty(row.comissionValue), 'EUR', 3) }}
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/Item/Card/ItemTax.vue b/src/pages/Item/Card/ItemTax.vue
index 76663932c..489a2c7b2 100644
--- a/src/pages/Item/Card/ItemTax.vue
+++ b/src/pages/Item/Card/ItemTax.vue
@@ -1 +1,91 @@
-Item tax
+
+
+ (taxesOptions = data)"
+ auto-load
+ />
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/Item/locale/en.yml b/src/pages/Item/locale/en.yml
index 35d65b2da..c125dca1c 100644
--- a/src/pages/Item/locale/en.yml
+++ b/src/pages/Item/locale/en.yml
@@ -35,3 +35,26 @@ createIntrastatForm:
title: New intrastat
identifier: Identifier
description: Description
+tax:
+ country: Country
+ class: Class
+lastEntries:
+ since: Since
+ to: To
+ ig: Ig
+ warehouse: Warehouse
+ landed: Landed
+ entry: Entry
+ pvp: PVP
+ label: Label
+ packing: Packing
+ grouping: Grouping
+ stems: Stems
+ quantity: Quantity
+ cost: Cost
+ kg: Kg.
+ cube: Cube
+ supplier: Supplier
+ package: Package
+ freight: Freight
+ comission: Comission
diff --git a/src/pages/Item/locale/es.yml b/src/pages/Item/locale/es.yml
index 498520c26..e7ee3245e 100644
--- a/src/pages/Item/locale/es.yml
+++ b/src/pages/Item/locale/es.yml
@@ -35,3 +35,26 @@ createIntrastatForm:
title: Nuevo intrastat
identifier: Identificador
description: Descripción
+tax:
+ country: País
+ class: Clase
+lastEntries:
+ since: Desde
+ to: Hasta
+ ig: Ig
+ warehouse: Almacén
+ landed: F. Entrega
+ entry: Entrada
+ pvp: PVP
+ label: Etiquetas
+ packing: Packing
+ grouping: Grouping
+ stems: Tallos
+ quantity: Cantidad
+ cost: Coste
+ kg: Kg.
+ cube: Cubo
+ supplier: Proveedor
+ package: Embalaje
+ freight: Porte
+ comission: Comisión
diff --git a/src/pages/Route/Roadmap/RoadmapStops.vue b/src/pages/Route/Roadmap/RoadmapStops.vue
index 10d6e6066..5c3bd51e7 100644
--- a/src/pages/Route/Roadmap/RoadmapStops.vue
+++ b/src/pages/Route/Roadmap/RoadmapStops.vue
@@ -3,9 +3,9 @@ import { useI18n } from 'vue-i18n';
import { useRoute } from 'vue-router';
import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
import FetchData from 'components/FetchData.vue';
-import { onMounted, ref } from 'vue';
+import { ref } from 'vue';
import CrudModel from 'components/CrudModel.vue';
-import RoadmapAddStopForm from "pages/Route/Roadmap/RoadmapAddStopForm.vue";
+import RoadmapAddStopForm from 'pages/Route/Roadmap/RoadmapAddStopForm.vue';
const { t } = useI18n();
const route = useRoute();
@@ -21,10 +21,6 @@ const updateDefaultStop = (data) => {
eta.setDate(eta.getDate() + 1);
defaultStop.value.eta = eta.toISOString();
};
-
-onMounted(() => {
- if (roadmapStopsCrudRef.value) roadmapStopsCrudRef.value.reload();
-});
@@ -43,6 +39,7 @@ onMounted(() => {
:filter="{ where: { roadmapFk: route.params?.id } }"
:default-remove="false"
:data-required="defaultStop"
+ auto-load
>
@@ -51,7 +48,10 @@ onMounted(() => {
:key="index"
class="row no-wrap"
>
-
+
-import { ref, onMounted } from 'vue';
+import { ref } from 'vue';
import { useRoute } from 'vue-router';
import { useI18n } from 'vue-i18n';
@@ -59,10 +59,6 @@ const setWireTransfer = async () => {
console.error('Error setting wire transfer', err);
}
};
-
-onMounted(() => {
- if (supplierAccountRef.value) supplierAccountRef.value.reload();
-});
{
:default-remove="false"
:data-required="{ supplierFk: route.params.id }"
@save-changes="onChangesSaved()"
+ auto-load
>
diff --git a/src/pages/Supplier/Card/SupplierAgencyTerm.vue b/src/pages/Supplier/Card/SupplierAgencyTerm.vue
index 769ff4dad..50a4f7adc 100644
--- a/src/pages/Supplier/Card/SupplierAgencyTerm.vue
+++ b/src/pages/Supplier/Card/SupplierAgencyTerm.vue
@@ -1,5 +1,5 @@
{
:data-required="{
supplierFk: route.params.id,
}"
+ auto-load
>
diff --git a/src/pages/Supplier/Card/SupplierContacts.vue b/src/pages/Supplier/Card/SupplierContacts.vue
index a78c376a9..92ba1c1fc 100644
--- a/src/pages/Supplier/Card/SupplierContacts.vue
+++ b/src/pages/Supplier/Card/SupplierContacts.vue
@@ -1,5 +1,5 @@
@@ -36,6 +32,7 @@ onMounted(() => {
ref="supplierContactRef"
:default-remove="false"
:data-required="{ supplierFk: route.params.id }"
+ auto-load
>
diff --git a/src/pages/Ticket/Card/TicketSummary.vue b/src/pages/Ticket/Card/TicketSummary.vue
index 364ae04a6..af501240b 100644
--- a/src/pages/Ticket/Card/TicketSummary.vue
+++ b/src/pages/Ticket/Card/TicketSummary.vue
@@ -188,7 +188,7 @@ async function changeState(value) {
:label="t('ticket.summary.landed')"
:value="toDate(ticket.landed)"
/>
-
+
{{ t('ticket.summary.consigneePhone') }}
diff --git a/src/pages/Zone/Card/ZoneCard.vue b/src/pages/Zone/Card/ZoneCard.vue
new file mode 100644
index 000000000..948636c55
--- /dev/null
+++ b/src/pages/Zone/Card/ZoneCard.vue
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/src/pages/Zone/Card/ZoneDescriptor.vue b/src/pages/Zone/Card/ZoneDescriptor.vue
new file mode 100644
index 000000000..486e4f063
--- /dev/null
+++ b/src/pages/Zone/Card/ZoneDescriptor.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+ {{ t('Summary') }}
+
+
+
+
+
+ {{ console.log('entity', entity) }}
+
+
+
+
+
+
+
+
+
+
+es:
+ Summary: Detalles
+ The zone will be deleted: El envío será eliminado
+ Do you want to delete this zone?: ¿Quieres eliminar este envío?
+ All zones with current agency: Todos los envíos con la agencia actual
+ Agency: Agencia
+ Closing hour: Hora de cierre
+ zoneing days: Días de viaje
+ Price: Precio
+ Bonus: Bonificación
+
diff --git a/src/pages/Zone/Card/ZoneDescriptorMenuItems.vue b/src/pages/Zone/Card/ZoneDescriptorMenuItems.vue
new file mode 100644
index 000000000..b6c7f28b3
--- /dev/null
+++ b/src/pages/Zone/Card/ZoneDescriptorMenuItems.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+ {{ t('To clone zone') }}
+
+
+
+
+
+ {{ t('deleteOrder') }}
+
+
+
+
+en:
+ deleteOrder: Delete order
+ confirmDeletion: Confirm deletion
+ confirmDeletionMessage: Are you sure you want to delete this order?
+
+es:
+ To clone zone: Clonar zone
+ deleteOrder: Eliminar pedido
+ confirmDeletion: Confirmar eliminación
+ confirmDeletionMessage: Seguro que quieres eliminar este pedido?
+
+
diff --git a/src/pages/Zone/Card/ZoneDescriptorProxy.vue b/src/pages/Zone/Card/ZoneDescriptorProxy.vue
new file mode 100644
index 000000000..15c5fb0e5
--- /dev/null
+++ b/src/pages/Zone/Card/ZoneDescriptorProxy.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/src/pages/Zone/Card/ZoneSummary.vue b/src/pages/Zone/Card/ZoneSummary.vue
new file mode 100644
index 000000000..00df03cb0
--- /dev/null
+++ b/src/pages/Zone/Card/ZoneSummary.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+ {{ entity.id }} - {{ entity.firstName }} {{ entity.lastName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('zone.summary.phoneExtension') }}
+
+
+
+
+
+ {{ t('zone.summary.entPhone') }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('zone.summary.sipExtension') }}
+
+
+
+
+
+
+
diff --git a/src/router/modules/index.js b/src/router/modules/index.js
index 941358d26..7fff2f2e5 100644
--- a/src/router/modules/index.js
+++ b/src/router/modules/index.js
@@ -17,6 +17,7 @@ import roadmap from './roadmap';
import Parking from './parking';
import Agency from './agency';
import ItemType from './itemType';
+import Zone from './zone';
export default [
Item,
@@ -38,4 +39,5 @@ export default [
Parking,
Agency,
ItemType,
+ Zone,
];
diff --git a/src/router/modules/item.js b/src/router/modules/item.js
index d79ac3071..f0c68f0e7 100644
--- a/src/router/modules/item.js
+++ b/src/router/modules/item.js
@@ -26,6 +26,7 @@ export default {
'ItemTax',
'ItemBotanical',
'ItemBarcode',
+ 'ItemLastEntries',
],
},
children: [
@@ -135,6 +136,15 @@ export default {
},
component: () => import('src/pages/Item/Card/ItemTags.vue'),
},
+ {
+ path: 'last-entries',
+ name: 'ItemLastEntries',
+ meta: {
+ title: 'lastEntries',
+ icon: 'vn:regentry',
+ },
+ component: () => import('src/pages/Item/Card/ItemLastEntries.vue'),
+ },
{
path: 'tax',
name: 'ItemTax',
@@ -144,6 +154,15 @@ export default {
},
component: () => import('src/pages/Item/Card/ItemTax.vue'),
},
+ {
+ path: 'botanical',
+ name: 'ItemBotanical',
+ meta: {
+ title: 'botanical',
+ icon: 'local_florist',
+ },
+ component: () => import('src/pages/Item/Card/ItemBotanical.vue'),
+ },
{
path: 'barcode',
name: 'ItemBarcode',
@@ -171,15 +190,6 @@ export default {
},
component: () => import('src/pages/Item/Card/ItemLog.vue'),
},
- {
- path: 'botanical',
- name: 'ItemBotanical',
- meta: {
- title: 'botanical',
- icon: 'vn:botanical',
- },
- component: () => import('src/pages/Item/Card/ItemBotanical.vue'),
- },
],
},
],
diff --git a/src/router/modules/zone.js b/src/router/modules/zone.js
new file mode 100644
index 000000000..079dfaa84
--- /dev/null
+++ b/src/router/modules/zone.js
@@ -0,0 +1,160 @@
+import { RouterView } from 'vue-router';
+
+export default {
+ path: '/zone',
+ name: 'Zone',
+ meta: {
+ title: 'zones',
+ icon: 'vn:zone',
+ moduleName: 'Zone',
+ },
+ component: RouterView,
+ redirect: { name: 'ZoneMain' },
+ menus: {
+ main: [
+ /*'ZoneList', 'ZoneDeliveryList', 'ZoneUpcomingList'*/
+ ],
+ card: [
+ //
+ ],
+ },
+ children: [
+ // {
+ // path: '/zone',
+ // name: 'ZoneMain',
+ // component: () => import('src/pages/Zone/ZoneMain.vue'),
+ // redirect: { name: 'ZoneList' },
+ // children: [
+ // {
+ // path: 'list',
+ // name: 'ZoneList',
+ // meta: {
+ // title: 'zonesList',
+ // icon: 'vn:zone',
+ // },
+ // component: () => import('src/pages/Zone/ZoneList.vue'),
+ // },
+ // {
+ // path: 'create',
+ // name: 'ZoneCreate',
+ // meta: {
+ // title: 'zoneCreate',
+ // icon: 'create',
+ // },
+ // component: () => import('src/pages/Zone/ZoneCreate.vue'),
+ // },
+ // {
+ // path: ':id/edit',
+ // name: 'ZoneEdit',
+ // meta: {
+ // title: 'zoneEdit',
+ // icon: 'edit',
+ // },
+ // component: () => import('src/pages/Zone/ZoneCreate.vue'),
+ // },
+ // {
+ // path: 'counter',
+ // name: 'ZoneCounter',
+ // meta: {
+ // title: 'zoneCounter',
+ // icon: 'add_circle',
+ // },
+ // component: () => import('src/pages/Zone/ZoneCounter.vue'),
+ // },
+ // ],
+ // },
+ {
+ name: 'ZoneCard',
+ path: ':id',
+ component: () => import('src/pages/Zone/Card/ZoneCard.vue'),
+ redirect: { name: 'ZoneSummary' },
+ children: [
+ {
+ name: 'ZoneSummary',
+ path: 'summary',
+ meta: {
+ title: 'summary',
+ icon: 'launch',
+ },
+ component: () => import('src/pages/Zone/Card/ZoneSummary.vue'),
+ },
+ // {
+ // path: '/zone/delivery',
+ // name: 'ZoneDeliveryMain',
+ // component: () => import('src/pages/Zone/ZoneMain.vue'),
+ // redirect: { name: 'ZoneDeliveryList' },
+ // children: [
+ // {
+ // path: 'list',
+ // name: 'ZoneDeliveryList',
+ // meta: {
+ // title: 'deliveryList',
+ // icon: 'today',
+ // },
+ // component: () =>
+ // import('src/pages/Zone/Delivery/ZoneDeliveryList.vue'),
+ // },
+ // {
+ // path: 'create',
+ // name: 'ZoneDeliveryCreate',
+ // meta: {
+ // title: 'deliveryCreate',
+ // icon: 'create',
+ // },
+ // component: () =>
+ // import('src/pages/Zone/Delivery/ZoneDeliveryCreate.vue'),
+ // },
+ // {
+ // path: ':id/edit',
+ // name: 'ZoneDeliveryEdit',
+ // meta: {
+ // title: 'deliveryEdit',
+ // icon: 'edit',
+ // },
+ // component: () =>
+ // import('src/pages/Zone/Delivery/ZoneDeliveryCreate.vue'),
+ // },
+ // ],
+ // },
+ // {
+ // path: '/zone/upcoming',
+ // name: 'ZoneUpcomingMain',
+ // component: () => import('src/pages/Zone/ZoneMain.vue'),
+ // redirect: { name: 'ZoneUpcomingList' },
+ // children: [
+ // {
+ // path: 'list',
+ // name: 'ZoneUpcomingList',
+ // meta: {
+ // title: 'upcomingList',
+ // icon: 'today',
+ // },
+ // component: () =>
+ // import('src/pages/Zone/Upcoming/ZoneUpcomingList.vue'),
+ // },
+ // {
+ // path: 'create',
+ // name: 'ZoneUpcomingCreate',
+ // meta: {
+ // title: 'upcomingCreate',
+ // icon: 'create',
+ // },
+ // component: () =>
+ // import('src/pages/Zone/Upcoming/ZoneUpcomingCreate.vue'),
+ // },
+ // {
+ // path: ':id/edit',
+ // name: 'ZoneUpcomingEdit',
+ // meta: {
+ // title: 'upcomingEdit',
+ // icon: 'edit',
+ // },
+ // component: () =>
+ // import('src/pages/Zone/Upcoming/ZoneUpcomingCreate.vue'),
+ // },
+ // ],
+ // },
+ ],
+ },
+ ],
+};
diff --git a/src/router/routes.js b/src/router/routes.js
index 92145d44e..04780ee17 100644
--- a/src/router/routes.js
+++ b/src/router/routes.js
@@ -17,6 +17,7 @@ import entry from 'src/router/modules/entry';
import roadmap from 'src/router/modules/roadmap';
import parking from 'src/router/modules/parking';
import agency from 'src/router/modules/agency';
+import zone from 'src/router/modules/zone';
const routes = [
{
@@ -75,6 +76,7 @@ const routes = [
parking,
agency,
ItemType,
+ zone,
{
path: '/:catchAll(.*)*',
name: 'NotFound',
diff --git a/src/stores/useNavigationStore.js b/src/stores/useNavigationStore.js
index f075301f6..ee1e04e9b 100644
--- a/src/stores/useNavigationStore.js
+++ b/src/stores/useNavigationStore.js
@@ -21,6 +21,7 @@ export const useNavigationStore = defineStore('navigationStore', () => {
'ticket',
'worker',
'wagon',
+ 'zone',
];
const pinnedModules = ref([]);
const role = useRole();