@@ -181,7 +200,7 @@ watch([year, businessFk], () => refreshData());
-
+
{{ t('Autonomous worker') }}
diff --git a/src/pages/Worker/Card/WorkerCard.vue b/src/pages/Worker/Card/WorkerCard.vue
index e0047bf9e..d76ef6f59 100644
--- a/src/pages/Worker/Card/WorkerCard.vue
+++ b/src/pages/Worker/Card/WorkerCard.vue
@@ -1,15 +1,12 @@
{
});
const worker = ref();
-const filter = computed(() => {
- return { where: { id: entityId.value } };
-});
+const filter = {
+ include: [
+ {
+ relation: 'user',
+ scope: {
+ fields: ['email', 'name', 'nickname'],
+ },
+ },
+ {
+ relation: 'department',
+ scope: {
+ include: [
+ {
+ relation: 'department',
+ },
+ ],
+ },
+ },
+ {
+ relation: 'sip',
+ },
+ ],
+};
const sip = ref(null);
-
watch(
() => [worker.value?.sip?.extension, state.get('extension')],
([newWorkerSip, newStateExtension], [oldWorkerSip, oldStateExtension]) => {
@@ -62,7 +81,7 @@ const setData = (entity) => {
{
workerUrl.value = (await getUrl('')) + `worker/${entityId.value}/`;
});
-const filter = computed(() => {
- return { where: { id: entityId.value } };
-});
+const filter = {
+ include: [
+ {
+ relation: 'user',
+ scope: {
+ fields: ['email', 'name', 'nickname', 'roleFk'],
+ include: {
+ relation: 'role',
+ scope: {
+ fields: ['name'],
+ },
+ },
+ },
+ },
+ {
+ relation: 'department',
+ scope: {
+ include: {
+ relation: 'department',
+ scope: {
+ fields: ['name'],
+ },
+ },
+ },
+ },
+ {
+ relation: 'boss',
+ },
+ {
+ relation: 'client',
+ },
+ {
+ relation: 'sip',
+ },
+ ],
+};
-
+
{{ entity.id }} - {{ entity.firstName }} {{ entity.lastName }}
@@ -75,6 +103,12 @@ const filter = computed(() => {
+
+
+ {{ t('worker.summary.personalPhone') }}
+
+
+
diff --git a/src/pages/Zone/Card/ZoneBasicData.vue b/src/pages/Zone/Card/ZoneBasicData.vue
new file mode 100644
index 000000000..5d57b920e
--- /dev/null
+++ b/src/pages/Zone/Card/ZoneBasicData.vue
@@ -0,0 +1,103 @@
+
+
+
+ (agencyOptions = data)"
+ auto-load
+ url="agencies"
+ />
+ (zoneOptions = data)"
+ auto-load
+ url="zones"
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+es:
+ Name: Nombre
+ Agency: Agencia
+ Max m³: Medida máxima
+ Maximum m³: M³ maximo
+ Traveling days: Dias de viaje
+ Closing: Cierre
+ Price: Precio
+ Bonus: Bonificación
+ Inflation: Inflación
+ Volumetric: Volumétrico
+
diff --git a/src/pages/Zone/Card/ZoneCalendar.vue b/src/pages/Zone/Card/ZoneCalendar.vue
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/pages/Zone/Card/ZoneDescriptor.vue b/src/pages/Zone/Card/ZoneDescriptor.vue
index 486e4f063..93e951801 100644
--- a/src/pages/Zone/Card/ZoneDescriptor.vue
+++ b/src/pages/Zone/Card/ZoneDescriptor.vue
@@ -5,7 +5,7 @@ import { useI18n } from 'vue-i18n';
import CardDescriptor from 'components/ui/CardDescriptor.vue';
import VnLv from 'src/components/ui/VnLv.vue';
-import ZoneDescriptorMenuItems from './ZoneDescriptorMenuItems.vue';
+import { toTimeFormat } from 'src/filters/date';
import useCardDescription from 'src/composables/useCardDescription';
@@ -40,13 +40,6 @@ const data = ref(useCardDescription());
const setData = (entity) => {
data.value = useCardDescription(entity.ref, entity.id);
};
-
-function extractHour(dateTime) {
- const date = new Date(dateTime);
- const hours = date.getHours().toString().padStart(2, '0');
- const minutes = date.getMinutes().toString().padStart(2, '0');
- return `${hours}:${minutes}`;
-}
@@ -81,7 +74,7 @@ function extractHour(dateTime) {
{{ console.log('entity', entity) }}
-
+
diff --git a/src/pages/Zone/Card/ZoneLocations.vue b/src/pages/Zone/Card/ZoneLocations.vue
new file mode 100644
index 000000000..e4305c898
--- /dev/null
+++ b/src/pages/Zone/Card/ZoneLocations.vue
@@ -0,0 +1 @@
+Zone Locations
diff --git a/src/pages/Zone/Card/ZoneLog.vue b/src/pages/Zone/Card/ZoneLog.vue
new file mode 100644
index 000000000..373d210b5
--- /dev/null
+++ b/src/pages/Zone/Card/ZoneLog.vue
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/src/pages/Zone/Card/ZoneWarehouses.vue b/src/pages/Zone/Card/ZoneWarehouses.vue
new file mode 100644
index 000000000..7ff73a5e9
--- /dev/null
+++ b/src/pages/Zone/Card/ZoneWarehouses.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('Remove row') }}
+
+
+
+
+
+
+
+
+
+
+
+ es:
+ Remove row: Eliminar fila
+
diff --git a/src/pages/Zone/Delivery/ZoneDeliveryCreate.vue b/src/pages/Zone/Delivery/ZoneDeliveryCreate.vue
new file mode 100644
index 000000000..a48eaf278
--- /dev/null
+++ b/src/pages/Zone/Delivery/ZoneDeliveryCreate.vue
@@ -0,0 +1,432 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ t('zone.warnings.minHeightBetweenTrays') +
+ zoneConfig.minHeightBetweenTrays +
+ ' cm'
+ }}
+
+ {{
+ t('zone.warnings.maxZoneHeight') +
+ zoneConfig.maxZoneHeight +
+ ' cm'
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('zone.delivery.trayColor') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/Zone/Delivery/ZoneDeliveryList.vue b/src/pages/Zone/Delivery/ZoneDeliveryList.vue
new file mode 100644
index 000000000..695388a9b
--- /dev/null
+++ b/src/pages/Zone/Delivery/ZoneDeliveryList.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/Zone/Upcoming/ZoneUpcomingCreate.vue b/src/pages/Zone/Upcoming/ZoneUpcomingCreate.vue
new file mode 100644
index 000000000..6bc04c428
--- /dev/null
+++ b/src/pages/Zone/Upcoming/ZoneUpcomingCreate.vue
@@ -0,0 +1,432 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ t('zone.warnings.minHeightBetweenTrays') +
+ zoneConfig.minHeightBetweenTrays +
+ ' cm'
+ }}
+
+ {{
+ t('zone.warnings.maxZoneHeight') +
+ zoneConfig.maxZoneHeight +
+ ' cm'
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('zone.upcoming.trayColor') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/Zone/Upcoming/ZoneUpcomingList.vue b/src/pages/Zone/Upcoming/ZoneUpcomingList.vue
new file mode 100644
index 000000000..2d3016f25
--- /dev/null
+++ b/src/pages/Zone/Upcoming/ZoneUpcomingList.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/Zone/ZoneCreate.vue b/src/pages/Zone/ZoneCreate.vue
new file mode 100644
index 000000000..93ea9589b
--- /dev/null
+++ b/src/pages/Zone/ZoneCreate.vue
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('zone.warnings.noData') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/Zone/ZoneDeliveryDays.vue b/src/pages/Zone/ZoneDeliveryDays.vue
new file mode 100644
index 000000000..485500dba
--- /dev/null
+++ b/src/pages/Zone/ZoneDeliveryDays.vue
@@ -0,0 +1 @@
+Zone Delivery days
diff --git a/src/pages/Zone/ZoneFilterPanel.vue b/src/pages/Zone/ZoneFilterPanel.vue
new file mode 100644
index 000000000..94765919d
--- /dev/null
+++ b/src/pages/Zone/ZoneFilterPanel.vue
@@ -0,0 +1,55 @@
+
+
+
+ (agencies = data)"
+ auto-load
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/Zone/ZoneList.vue b/src/pages/Zone/ZoneList.vue
new file mode 100644
index 000000000..f260eb134
--- /dev/null
+++ b/src/pages/Zone/ZoneList.vue
@@ -0,0 +1,112 @@
+
+
+
+ (agencyOptions = data)"
+ :filter="{ fields: ['id', 'name'] }"
+ auto-load
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('zone.list.create') }}
+
+
+
+
diff --git a/src/pages/Zone/ZoneMain.vue b/src/pages/Zone/ZoneMain.vue
new file mode 100644
index 000000000..66ce78f23
--- /dev/null
+++ b/src/pages/Zone/ZoneMain.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/Zone/ZoneUpcoming.vue b/src/pages/Zone/ZoneUpcoming.vue
new file mode 100644
index 000000000..d405c95f6
--- /dev/null
+++ b/src/pages/Zone/ZoneUpcoming.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ t(`${getWeekDay(/*detail.shipped*/)}`) }} -
+ {{ t /*'detail.shipped'*/() }}
+
+
+
+
diff --git a/src/pages/Zone/locale/en.yml b/src/pages/Zone/locale/en.yml
new file mode 100644
index 000000000..e62111d57
--- /dev/null
+++ b/src/pages/Zone/locale/en.yml
@@ -0,0 +1,19 @@
+zone:
+ list:
+ volume: Volume
+ clone: Clone
+ id: Id
+ name: Name
+ agency: Agency
+ close: Close
+ price: Price
+ create: Create zone
+ openSummary: Details
+ create:
+ name: Name
+ agency: Agency
+ close: Close
+ price: Price
+ type:
+ submit: Save
+ reset: Reset
diff --git a/src/pages/Zone/locale/es.yml b/src/pages/Zone/locale/es.yml
new file mode 100644
index 000000000..5d7a265bf
--- /dev/null
+++ b/src/pages/Zone/locale/es.yml
@@ -0,0 +1,19 @@
+zone:
+ list:
+ volume: Volumen
+ clone: Clonar
+ id: Id
+ name: Nombre
+ agency: Agencia
+ close: Cierre
+ price: Precio
+ create: Crear zona
+ openSummary: Detalles
+ create:
+ name: Nombre
+ agency: Agencia
+ close: Cierre
+ price: Precio
+ type:
+ submit: Guardar
+ reset: Reiniciar
diff --git a/src/router/modules/item.js b/src/router/modules/item.js
index f0c68f0e7..6e8659747 100644
--- a/src/router/modules/item.js
+++ b/src/router/modules/item.js
@@ -26,7 +26,9 @@ export default {
'ItemTax',
'ItemBotanical',
'ItemBarcode',
+ 'ItemShelving',
'ItemLastEntries',
+ 'ItemTags',
],
},
children: [
@@ -163,6 +165,15 @@ export default {
},
component: () => import('src/pages/Item/Card/ItemBotanical.vue'),
},
+ {
+ path: 'shelving',
+ name: 'ItemShelving',
+ meta: {
+ title: 'shelving',
+ icon: 'vn:inventory',
+ },
+ component: () => import('src/pages/Item/Card/ItemShelving.vue'),
+ },
{
path: 'barcode',
name: 'ItemBarcode',
@@ -190,6 +201,15 @@ 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/test/cypress/support/commands.js b/test/cypress/support/commands.js
index 28a8aa979..e7f8cb9d9 100755
--- a/test/cypress/support/commands.js
+++ b/test/cypress/support/commands.js
@@ -38,6 +38,15 @@ Cypress.Commands.add('login', (user) => {
},
}).then((response) => {
window.localStorage.setItem('token', response.body.token);
+ cy.request({
+ method: 'GET',
+ url: '/api/VnUsers/ShareToken',
+ headers: {
+ Authorization: window.localStorage.getItem('token'),
+ },
+ }).then(({ body }) => {
+ window.localStorage.setItem('tokenMultimedia', body.multimediaToken.id);
+ });
});
});