diff --git a/src/css/app.scss b/src/css/app.scss
index 770df8e01..2e524e693 100644
--- a/src/css/app.scss
+++ b/src/css/app.scss
@@ -141,15 +141,6 @@ select:-webkit-autofill {
background-color: var(--vn-section-color);
}
-.q-checkbox {
- & .q-checkbox__label {
- color: var(--vn-text-color);
- }
- & .q-checkbox__inner {
- color: var(--vn-label-color);
- }
-}
-
.tr-header {
color: var(--vn-label-color);
}
diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml
index 942018b84..7a341dded 100644
--- a/src/i18n/locale/en.yml
+++ b/src/i18n/locale/en.yml
@@ -1166,6 +1166,12 @@ item:
type: Type
intrastat: Intrastat
origin: Origin
+zone:
+ pageTitles:
+ zones: Zone
+ zonesList: Zones
+ deliveryList: Delivery days
+ upcomingList: Upcoming deliveries
components:
topbar: {}
itemsFilterPanel:
diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml
index 3de5af50c..9286cbccb 100644
--- a/src/i18n/locale/es.yml
+++ b/src/i18n/locale/es.yml
@@ -1165,6 +1165,12 @@ item:
type: Tipo
intrastat: Intrastat
origin: Origen
+zone:
+ pageTitles:
+ zones: Zona
+ zonesList: Zonas
+ deliveryList: Días de entrega
+ upcomingList: Próximos repartos
components:
topbar: {}
itemsFilterPanel:
diff --git a/src/pages/Claim/Card/ClaimDescriptor.vue b/src/pages/Claim/Card/ClaimDescriptor.vue
index 3b5dd82b8..aae999117 100644
--- a/src/pages/Claim/Card/ClaimDescriptor.vue
+++ b/src/pages/Claim/Card/ClaimDescriptor.vue
@@ -74,8 +74,9 @@ const filter = {
const STATE_COLOR = {
pending: 'warning',
- managed: 'info',
+ incomplete: 'info',
resolved: 'positive',
+ canceled: 'negative',
};
function stateColor(code) {
return STATE_COLOR[code];
@@ -142,7 +143,7 @@ onMounted(async () => {
{{ entity.ticket?.zone?.name }}
-
+
diff --git a/src/pages/Claim/Card/ClaimSummary.vue b/src/pages/Claim/Card/ClaimSummary.vue
index c4c2785d5..36a26008e 100644
--- a/src/pages/Claim/Card/ClaimSummary.vue
+++ b/src/pages/Claim/Card/ClaimSummary.vue
@@ -14,6 +14,7 @@ import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue';
import VnTitle from 'src/components/common/VnTitle.vue';
import CustomerDescriptorProxy from 'src/pages/Customer/Card/CustomerDescriptorProxy.vue';
import axios from 'axios';
+import dashIfEmpty from 'src/filters/dashIfEmpty';
const route = useRoute();
const router = useRouter();
@@ -101,8 +102,9 @@ const detailsColumns = ref([
const STATE_COLOR = {
pending: 'warning',
- managed: 'info',
+ incomplete: 'info',
resolved: 'positive',
+ canceled: 'negative',
};
function stateColor(code) {
return STATE_COLOR[code];
@@ -260,7 +262,7 @@ async function changeState(value) {
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
index 665cb6f0e..b56443c84 100644
--- a/src/pages/Zone/Card/ZoneDescriptor.vue
+++ b/src/pages/Zone/Card/ZoneDescriptor.vue
@@ -8,7 +8,6 @@ import VnLv from 'src/components/ui/VnLv.vue';
import ZoneDescriptorMenuItems from './ZoneDescriptorMenuItems.vue';
import useCardDescription from 'src/composables/useCardDescription';
-import { toDate } from 'src/filters';
const $props = defineProps({
id: {
@@ -22,28 +21,11 @@ const route = useRoute();
const { t } = useI18n();
const filter = {
- fields: [
- 'id',
- 'ref',
- 'shipped',
- 'landed',
- 'totalEntries',
- 'warehouseInFk',
- 'warehouseOutFk',
- 'cargoSupplierFk',
- 'agencyModeFk',
- ],
include: [
{
- relation: 'warehouseIn',
+ relation: 'agencyMode',
scope: {
- fields: ['name'],
- },
- },
- {
- relation: 'warehouseOut',
- scope: {
- fields: ['name'],
+ fields: ['name', 'id'],
},
},
],
@@ -58,6 +40,13 @@ 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}`;
+}
@@ -76,52 +65,39 @@ const setData = (entity) => {
flat
dense
size="md"
- icon="local_airport"
+ icon="preview"
color="white"
class="link"
:to="{ name: 'ZoneList' }"
>
- {{ t('Go to module index') }}
+ {{ t('Summary') }}
-
+
-
-
-
-
-
-
-
-
-
- {{ t('All travels with current agency') }}
-
-
+ {{ console.log('entity', entity) }}
+
+
+
+
+
es:
- Go to module index: Ir al índice del módulo
+ Summary: Detalles
The travel will be deleted: El envío será eliminado
Do you want to delete this travel?: ¿Quieres eliminar este envío?
All travels with current agency: Todos los envíos con la agencia actual
+ Agency: Agencia
+ Closing hour: Hora de cierre
+ traveling days: Días de viaje
+ Price: Precio
+ Bonus: Bonificación
diff --git a/src/router/modules/index.js b/src/router/modules/index.js
index 302ba7fe0..2fe40038f 100644
--- a/src/router/modules/index.js
+++ b/src/router/modules/index.js
@@ -15,6 +15,7 @@ import Department from './department';
import Entry from './entry';
import roadmap from './roadmap';
import Parking from './parking';
+import Zone from './zone';
export default [
Item,
@@ -34,4 +35,5 @@ export default [
Entry,
roadmap,
Parking,
+ Zone,
];
diff --git a/src/router/modules/zone.js b/src/router/modules/zone.js
new file mode 100644
index 000000000..bd74a76f3
--- /dev/null
+++ b/src/router/modules/zone.js
@@ -0,0 +1,158 @@
+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 51e726a62..14bf6665f 100644
--- a/src/router/routes.js
+++ b/src/router/routes.js
@@ -15,6 +15,7 @@ import order from 'src/router/modules/order';
import entry from 'src/router/modules/entry';
import roadmap from 'src/router/modules/roadmap';
import parking from 'src/router/modules/parking';
+import zone from 'src/router/modules/zone';
const routes = [
{
@@ -71,6 +72,7 @@ const routes = [
roadmap,
entry,
parking,
+ 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();