diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml index 373773635..7ed52c3f3 100644 --- a/src/i18n/locale/en.yml +++ b/src/i18n/locale/en.yml @@ -46,6 +46,7 @@ globals: noPinnedModules: You don't have any pinned modules summary: basicData: Basic data + daysOnward: Days onward today: Today yesterday: Yesterday dateFormat: en-GB @@ -232,6 +233,7 @@ globals: formation: Formation locations: Locations warehouses: Warehouses + saleTracking: Sale tracking roles: Roles connections: Connections acls: ACLs @@ -553,6 +555,7 @@ ticket: expedition: Expedition purchaseRequest: Purchase request weeklyTickets: Weekly tickets + saleTracking: Sale tracking services: Service tracking: Tracking components: Components diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml index f8c6363c2..463a6f5f7 100644 --- a/src/i18n/locale/es.yml +++ b/src/i18n/locale/es.yml @@ -45,6 +45,7 @@ globals: noPinnedModules: No has fijado ningún módulo summary: basicData: Datos básicos + daysOnward: Días adelante today: Hoy yesterday: Ayer dateFormat: es-ES @@ -241,6 +242,7 @@ globals: privileges: Privilegios observation: Notas expedition: Expedición + saleTracking: Líneas preparadas services: Servicios tracking: Estados components: Componentes @@ -558,6 +560,7 @@ ticket: expedition: Expedición purchaseRequest: Petición de compra weeklyTickets: Tickets programados + saleTracking: Líneas preparadas services: Servicios tracking: Estados components: Componentes diff --git a/src/pages/Entry/MyEntries.vue b/src/pages/Entry/MyEntries.vue index 58a69f70c..d4b73b479 100644 --- a/src/pages/Entry/MyEntries.vue +++ b/src/pages/Entry/MyEntries.vue @@ -7,6 +7,7 @@ import { toDate } from 'src/filters/index'; import { useQuasar } from 'quasar'; import EntryBuysTableDialog from './EntryBuysTableDialog.vue'; import VnTable from 'components/VnTable/VnTable.vue'; +import VnInput from 'src/components/common/VnInput.vue'; const stateStore = useStateStore(); const { t } = useI18n(); @@ -34,6 +35,10 @@ const columns = computed(() => [ isTitle: false, create: true, cardVisible: true, + component: 'date', + columnField: { + component: null, + }, format: ({ shipped }) => toDate(shipped), }, { @@ -43,6 +48,10 @@ const columns = computed(() => [ isTitle: false, create: true, cardVisible: false, + component: 'date', + columnField: { + component: null, + }, format: ({ landed }) => toDate(landed), }, { @@ -93,14 +102,23 @@ const printBuys = (rowId) => { :columns="columns" default-mode="card" auto-load + :right-search="true" > + + + -es: - Search entries: Buscar entradas You can search by entry reference: Puedes buscar por referencia de la entrada diff --git a/src/pages/Item/ItemRequestFilter.vue b/src/pages/Item/ItemRequestFilter.vue index 2fbe849d1..c9340dc1f 100644 --- a/src/pages/Item/ItemRequestFilter.vue +++ b/src/pages/Item/ItemRequestFilter.vue @@ -209,7 +209,7 @@ const decrement = (paramsObj, key) => { ({ const columns = computed(() => [ { - label: t('components.item'), + label: t('ticketComponents.item'), name: 'item', align: 'left', }, { - label: t('components.description'), + label: t('ticketComponents.description'), name: 'description', align: 'left', }, { - label: t('components.quantity'), + label: t('ticketComponents.quantity'), name: 'quantity', field: 'quantity', align: 'left', format: (val) => dashIfEmpty(val), }, { - label: t('components.serie'), + label: t('ticketComponents.serie'), name: 'serie', align: 'left', }, { - label: t('components.components'), + label: t('ticketComponents.components'), name: 'components', align: 'left', }, { - label: t('components.import'), + label: t('ticketComponents.import'), name: 'import', align: 'left', }, { - label: t('components.total'), + label: t('ticketComponents.total'), name: 'total', align: 'left', }, @@ -111,7 +111,7 @@ const columns = computed(() => [ const getBase = computed(() => { let sum = 0; - for (let sale of components.value) { + for (let sale of ticketComponents.value) { for (let saleComponent of sale.components) { if (saleComponent.component.componentType.isBase) { sum += sale.quantity * saleComponent.value; @@ -123,7 +123,7 @@ const getBase = computed(() => { const getTotal = computed(() => { let total = 0; - for (let sale of components.value) { + for (let sale of ticketComponents.value) { for (let saleComponent of sale.components) { total += sale.quantity * saleComponent.value; } @@ -184,18 +184,18 @@ onUnmounted(() => (stateStore.rightDrawer = false)); > - {{ t('components.total') }} + {{ t('ticketComponents.total') }} {{ t('components.baseToCommission') }}: + >{{ t('ticketComponents.baseToCommission') }}: {{ toCurrency(getBase) }} {{ t('components.totalWithoutVat') }}: + >{{ t('ticketComponents.totalWithoutVat') }}: {{ toCurrency(getTotal) }} @@ -208,7 +208,7 @@ onUnmounted(() => (stateStore.rightDrawer = false)); > - {{ t('components.components') }} + {{ t('ticketComponents.components') }} (stateStore.rightDrawer = false)); > - {{ t('components.zoneBreakdown') }} + {{ t('ticketComponents.zoneBreakdown') }} - {{ t('components.price') }}: + {{ t('ticketComponents.price') }}: {{ toCurrency(ticketData?.zonePrice, 'EUR', 2) }} - {{ t('components.bonus') }}: + {{ t('ticketComponents.bonus') }}: {{ toCurrency(ticketData?.zoneBonus, 'EUR', 2) }} - {{ t('components.zone') }}: + {{ t('ticketComponents.zone') }}: {{ dashIfEmpty(ticketData?.zone?.name) }} @@ -258,13 +258,13 @@ onUnmounted(() => (stateStore.rightDrawer = false)); - {{ t('components.volume') }}: + {{ t('ticketComponents.volume') }}: {{ ticketVolume }} - {{ t('components.packages') }}: + {{ t('ticketComponents.packages') }}: {{ dashIfEmpty(ticketData?.packages) }} @@ -277,12 +277,12 @@ onUnmounted(() => (stateStore.rightDrawer = false)); > - {{ t('components.theoricalCost') }} + {{ t('ticketComponents.theoricalCost') }} - {{ t('components.totalPrice') }}: + {{ t('ticketComponents.totalPrice') }}: {{ toCurrency(theoricalCost, 'EUR', 2) }} diff --git a/src/pages/Ticket/Card/TicketSaleTracking.vue b/src/pages/Ticket/Card/TicketSaleTracking.vue new file mode 100644 index 000000000..d519bc2c6 --- /dev/null +++ b/src/pages/Ticket/Card/TicketSaleTracking.vue @@ -0,0 +1,549 @@ + + + + (sales = data)" + /> + (shelvingsOptions = data)" + /> + (parkingsOptions = data)" /> + + + + + + {{ t('ticketSaleTracking.saleGroupDetail') }} + + + + + {{ t('ticketSaleTracking.previousSelected') }} + + + + + {{ t('ticketSaleTracking.previous') }} + + + + + {{ t('ticketSaleTracking.prepared') }} + + + + + {{ t('ticketSaleTracking.checked') }} + + + + + + + + + {{ row.itemFk }} + + + + + + + + + {{ row.concept }} + + {{ row.subName }} + + + + + + + + + + {{ t('ticketSaleTracking.historyAction') }} + + + + + {{ t('ticketSaleTracking.shelvingAction') }} + + + + + + + + + + {{ row.name }} + + + + + + + + + + + + + + + {{ row.name }} + + + + + + + + + + + + + + + + + + diff --git a/src/pages/Ticket/TicketList.vue b/src/pages/Ticket/TicketList.vue index 6090bdbef..1ac671bec 100644 --- a/src/pages/Ticket/TicketList.vue +++ b/src/pages/Ticket/TicketList.vue @@ -12,6 +12,7 @@ import VnLv from 'src/components/ui/VnLv.vue'; import CardList from 'src/components/ui/CardList.vue'; import { useSummaryDialog } from 'src/composables/useSummaryDialog'; import RightMenu from 'src/components/common/RightMenu.vue'; +import { toDate, toCurrency } from 'src/filters'; const router = useRouter(); const { t } = useI18n(); diff --git a/src/pages/Ticket/locale/en.yml b/src/pages/Ticket/locale/en.yml index ede5480ff..d5530926f 100644 --- a/src/pages/Ticket/locale/en.yml +++ b/src/pages/Ticket/locale/en.yml @@ -168,6 +168,24 @@ weeklyTickets: salesperson: Salesperson search: Search weekly tickets searchInfo: Search weekly tickets by id or client id +ticketSaleTracking: + isChecked: Is checked + item: Item + description: Description + quantity: Quantity + parking: Parking + historyAction: Log states + shelvingAction: Shelvings sale + original: Original + worker: Worker + state: State + created: Created + shelving: Shelving + saleGroupDetail: sale group detail + previousSelected: previous selected + previous: previous + prepared: prepared + checked: checked service: pay: Pay description: Description @@ -178,7 +196,7 @@ service: addService: Add service quantityInfo: To create services with negative amounts mark the service on the source ticket and press the pay button. createRefundSuccess: 'The following refund ticket have been created: { ticketId }' -components: +ticketComponents: item: Item description: Description quantity: Quantity diff --git a/src/pages/Ticket/locale/es.yml b/src/pages/Ticket/locale/es.yml index 1b97cd66f..132c61928 100644 --- a/src/pages/Ticket/locale/es.yml +++ b/src/pages/Ticket/locale/es.yml @@ -164,7 +164,7 @@ ticketSale: shipped: F. Envío agency: Agencia address: Consignatario -components: +ticketComponents: item: Artículo description: Descripción quantity: Cantidad @@ -207,6 +207,24 @@ package: added: Añadido addPackage: Añadir embalaje removePackage: Quitar embalaje +ticketSaleTracking: + isChecked: Comprobado + item: Artículo + description: Descripción + quantity: Cantidad + parking: Parking + historyAction: Historial estados + shelvingAction: Carros línea + original: Original + worker: Trabajador + state: Estado + created: Fecha creación + shelving: Matrícula + saleGroupDetail: detalle grupo líneas + previousSelected: previa seleccionado + previous: previa + prepared: preparado + checked: revisado Search ticket: Buscar tickets You can search by ticket id or alias: Puedes buscar por id o alias del ticket Select lines to see the options: Selecciona líneas para ver las opciones diff --git a/src/pages/Travel/TravelFilter.vue b/src/pages/Travel/TravelFilter.vue deleted file mode 100644 index 77f7ec112..000000000 --- a/src/pages/Travel/TravelFilter.vue +++ /dev/null @@ -1,225 +0,0 @@ - - - - (warehousesOptions = data)" - auto-load - /> - (continentsOptions = data)" - auto-load - /> - (agenciesOptions = data)" - auto-load - /> - - - - - {{ t(`params.${tag.label}`) }}: - {{ formatFn(tag.value) }} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -en: - params: - search: Id/Reference - landedFrom: Landed from - landedTo: Landed to - continent: Continent out - totalEntries: Total entries -es: - params: - search: Id/Referencia - landedFrom: Llegada desde - landedTo: Llegada hasta - continent: Cont. Salida - totalEntries: Ent. totales - - diff --git a/src/pages/Travel/locale/en.yml b/src/pages/Travel/locale/en.yml deleted file mode 100644 index c67eddce0..000000000 --- a/src/pages/Travel/locale/en.yml +++ /dev/null @@ -1,6 +0,0 @@ -travelFilter: - filter: - warehouseOutFk: Warehouse Out - warehouseInFk: Warehouse In - agencyModeFk: Agency - scopeDays: Days onward diff --git a/src/pages/Travel/locale/es.yml b/src/pages/Travel/locale/es.yml deleted file mode 100644 index 8e958c074..000000000 --- a/src/pages/Travel/locale/es.yml +++ /dev/null @@ -1,6 +0,0 @@ -travelFilter: - filter: - warehouseInFk: Alm. entrada - warehouseOutFk: Alm. salida - agencyModeFk: Agencia - scopeDays: Días adelante diff --git a/src/router/modules/ticket.js b/src/router/modules/ticket.js index c70d354ab..449798704 100644 --- a/src/router/modules/ticket.js +++ b/src/router/modules/ticket.js @@ -14,19 +14,17 @@ export default { main: ['TicketList', 'TicketAdvance', 'TicketWeekly', 'TicketFuture'], card: [ 'TicketBasicData', - 'TicketPurchaseRequest', 'TicketSale', 'TicketLog', 'TicketExpedition', - 'TicketService', - 'TicketVolume', - 'TicketNotes', + 'TicketPurchaseRequest', 'TicketTracking', + 'TicketNotes', + 'TicketVolume', + 'TicketService', + 'TicketSaleTracking', 'TicketBoxing', 'TicketSms', - 'TicketPicture', - 'TicketComponents', - 'TicketPackage', ], }, children: [ @@ -147,41 +145,13 @@ export default { component: () => import('src/pages/Ticket/Card/TicketLog.vue'), }, { - path: 'observation', - name: 'TicketNotes', + path: 'boxing', + name: 'TicketBoxing', meta: { - title: 'notes', - icon: 'vn:notes', - }, - component: () => import('src/pages/Ticket/Card/TicketNotes.vue'), - }, - { - path: 'picture', - name: 'TicketPicture', - meta: { - title: 'pictures', - icon: 'vn:photo', - }, - component: () => import('src/pages/Ticket/Card/TicketPicture.vue'), - }, - { - path: 'volume', - name: 'TicketVolume', - meta: { - title: 'volume', - icon: 'vn:volume', - }, - component: () => import('src/pages/Ticket/Card/TicketVolume.vue'), - }, - - { - path: 'expedition', - name: 'TicketExpedition', - meta: { - title: 'expedition', + title: 'boxing', icon: 'vn:package', }, - component: () => import('src/pages/Ticket/Card/TicketExpedition.vue'), + component: () => import('src/pages/Ticket/Card/TicketBoxing.vue'), }, { path: 'service', @@ -193,31 +163,32 @@ export default { component: () => import('src/pages/Ticket/Card/TicketService.vue'), }, { - path: 'package', - name: 'TicketPackage', + path: 'volume', + name: 'TicketVolume', meta: { - title: 'packages', - icon: 'vn:bucket', + title: 'volume', + icon: 'vn:volume', }, - component: () => import('src/pages/Ticket/Card/TicketPackage.vue'), + component: () => import('src/pages/Ticket/Card/TicketVolume.vue'), }, { - path: 'components', - name: 'TicketComponents', + path: 'observation', + name: 'TicketNotes', meta: { - title: 'components', - icon: 'vn:components', + title: 'notes', + icon: 'vn:notes', }, - component: () => import('src/pages/Ticket/Card/TicketComponents.vue'), + component: () => import('src/pages/Ticket/Card/TicketNotes.vue'), }, { - path: 'boxing', - name: 'TicketBoxing', + path: 'sale-tracking', + name: 'TicketSaleTracking', meta: { - title: 'boxing', - icon: 'science', + title: 'saleTracking', + icon: 'vn:buyrequest', }, - component: () => import('src/pages/Ticket/Card/TicketBoxing.vue'), + component: () => + import('src/pages/Ticket/Card/TicketSaleTracking.vue'), }, { path: 'sms',