diff --git a/src/components/VnTable/VnTable.vue b/src/components/VnTable/VnTable.vue index 6c77d44df..83886991c 100644 --- a/src/components/VnTable/VnTable.vue +++ b/src/components/VnTable/VnTable.vue @@ -107,7 +107,7 @@ const orders = ref(parseOrder(routeQuery.filter?.order)); const CrudModelRef = ref({}); const showForm = ref(false); const splittedColumns = ref({ columns: [] }); -const columnsVisibilitySkiped = ref(); +const columnsVisibilitySkipped = ref(); const createForm = ref(); const tableModes = [ @@ -135,7 +135,7 @@ onMounted(() => { ? CARD_MODE : $props.defaultMode; stateStore.rightDrawer = true; - columnsVisibilitySkiped.value = [ + columnsVisibilitySkipped.value = [ ...splittedColumns.value.columns .filter((c) => c.visible == false) .map((c) => c.name), @@ -380,14 +380,14 @@ defineExpose({ v-if="isTableMode" v-model="splittedColumns.columns" :table-code="tableCode ?? route.name" - :skip="columnsVisibilitySkiped" + :skip="columnsVisibilitySkipped" /> + {{ + col.toolTip + }} - {{ title }} + {{ title }} - + diff --git a/src/composables/getDateQBadgeColor.js b/src/composables/getDateQBadgeColor.js index be9ef41b5..a91213a0a 100644 --- a/src/composables/getDateQBadgeColor.js +++ b/src/composables/getDateQBadgeColor.js @@ -7,5 +7,5 @@ export function getDateQBadgeColor(date) { let comparation = today - timeTicket; if (comparation == 0) return 'warning'; - if (comparation < 0) return 'negative'; + if (comparation < 0) return 'success'; } diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml index 2055846b2..30d92f0c1 100644 --- a/src/i18n/locale/en.yml +++ b/src/i18n/locale/en.yml @@ -455,6 +455,7 @@ entry: travelFk: Travel isExcludedFromAvailable: Inventory isRaid: Raid + invoiceAmount: Import summary: commission: Commission currency: Currency @@ -1123,9 +1124,12 @@ travel: agency: Agency shipped: Shipped landed: Landed + shipHour: Shipment Hour + landHour: Landing Hour warehouseIn: Warehouse in warehouseOut: Warehouse out totalEntries: Total entries + totalEntriesTooltip: Total entries summary: confirmed: Confirmed entryId: Entry Id diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml index 0159abd63..6a9c3294c 100644 --- a/src/i18n/locale/es.yml +++ b/src/i18n/locale/es.yml @@ -454,6 +454,7 @@ entry: travelFk: Envio isExcludedFromAvailable: Inventario isRaid: Redada + invoiceAmount: Importe summary: commission: Comisión currency: Moneda @@ -1100,11 +1101,14 @@ travel: id: Id ref: Referencia agency: Agencia - shipped: Enviado - landed: Llegada - warehouseIn: Almacén de salida - warehouseOut: Almacén de entrada - totalEntries: Total de entradas + shipped: F.envío + shipHour: Hora de envío + landHour: Hora de llegada + landed: F.entrega + warehouseIn: Alm.salida + warehouseOut: Alm.entrada + totalEntries: ∑ + totalEntriesTooltip: Entradas totales summary: confirmed: Confirmado entryId: Id entrada @@ -1269,6 +1273,7 @@ components: clone: Clonar openCard: Ficha openSummary: Detalles + viewSummary: Vista previa cardDescriptor: mainList: Listado principal summary: Resumen diff --git a/src/pages/Account/AccountAcls.vue b/src/pages/Account/AccountAcls.vue index 110358e7f..dd93a0cb5 100644 --- a/src/pages/Account/AccountAcls.vue +++ b/src/pages/Account/AccountAcls.vue @@ -141,6 +141,7 @@ const deleteAcl = async ({ id }) => { formInitialData: {}, }" order="id DESC" + :disable-option="{ card: true }" :columns="columns" default-mode="table" :right-search="true" diff --git a/src/pages/Account/AccountAliasList.vue b/src/pages/Account/AccountAliasList.vue index b6f7b219c..c67283297 100644 --- a/src/pages/Account/AccountAliasList.vue +++ b/src/pages/Account/AccountAliasList.vue @@ -21,24 +21,21 @@ const columns = computed(() => [ { align: 'left', name: 'id', - label: t('id'), + label: t('Id'), isId: true, - field: 'id', cardVisible: true, }, { align: 'left', name: 'alias', - label: t('alias'), - field: 'alias', + label: t('Alias'), cardVisible: true, create: true, }, { align: 'left', name: 'description', - label: t('description'), - field: 'description', + label: t('Description'), cardVisible: true, create: true, }, @@ -69,9 +66,17 @@ const columns = computed(() => [ }" order="id DESC" :columns="columns" + :disable-option="{ card: true }" default-mode="table" redirect="account/alias" :is-editable="true" :use-model="true" /> + + + es: + Id: Id + Alias: Alias + Description: Descripción + diff --git a/src/pages/Account/AccountList.vue b/src/pages/Account/AccountList.vue index cdd88551b..d698596b9 100644 --- a/src/pages/Account/AccountList.vue +++ b/src/pages/Account/AccountList.vue @@ -14,15 +14,23 @@ const columns = computed(() => [ { align: 'left', name: 'id', - label: t('id'), + label: t('Id'), isId: true, field: 'id', cardVisible: true, + columnFilter: { + component: 'select', + name: 'search', + attrs: { + url: 'VnUsers/preview', + fields: ['id', 'name'], + }, + }, }, { align: 'left', name: 'username', - label: t('nickname'), + label: t('Nickname'), isTitle: true, component: 'input', columnField: { @@ -37,7 +45,7 @@ const columns = computed(() => [ { align: 'left', name: 'name', - label: t('name'), + label: t('Name'), component: 'input', columnField: { component: null, @@ -65,6 +73,7 @@ const columns = computed(() => [ title: t('View Summary'), icon: 'preview', action: (row) => viewSummary(row.id, AccountSummary), + isPrimary: true, }, ], }, @@ -108,3 +117,10 @@ const exprBuilder = (param, value) => { :use-model="true" /> + + + es: + Id: Id + Nickname: Nickname + Name: Nombre + diff --git a/src/pages/Account/Card/AccountCard.vue b/src/pages/Account/Card/AccountCard.vue index a9857b283..67fa15898 100644 --- a/src/pages/Account/Card/AccountCard.vue +++ b/src/pages/Account/Card/AccountCard.vue @@ -15,7 +15,6 @@ const { t } = useI18n(); url: 'VnUsers/preview', label: t('account.search'), info: t('account.searchInfo'), - searchUrl: 'table', }" /> diff --git a/src/pages/Account/Role/AccountRoles.vue b/src/pages/Account/Role/AccountRoles.vue index 8f3372a6d..ea175d913 100644 --- a/src/pages/Account/Role/AccountRoles.vue +++ b/src/pages/Account/Role/AccountRoles.vue @@ -21,24 +21,30 @@ const columns = computed(() => [ { align: 'left', name: 'id', - label: t('id'), + label: t('Id'), isId: true, columnFilter: { inWhere: true, + component: 'select', + name: 'search', + attrs: { + url: 'VnRoles', + fields: ['id', 'name'], + }, }, cardVisible: true, }, { align: 'left', name: 'name', - label: t('name'), + label: t('Name'), cardVisible: true, create: true, }, { align: 'left', name: 'description', - label: t('description'), + label: t('Description'), cardVisible: true, create: true, }, @@ -51,6 +57,7 @@ const columns = computed(() => [ title: t('View Summary'), icon: 'preview', action: (row) => viewSummary(row.id, RoleSummary), + isPrimary: true, }, ], }, @@ -93,8 +100,16 @@ const exprBuilder = (param, value) => { }, }" order="id ASC" + :disable-option="{ card: true }" :columns="columns" default-mode="table" redirect="account/role" /> + + + es: + Id: Id + Description: Descripción + Name: Nombre + diff --git a/src/pages/Claim/ClaimList.vue b/src/pages/Claim/ClaimList.vue index b03dfb226..eae9721ab 100644 --- a/src/pages/Claim/ClaimList.vue +++ b/src/pages/Claim/ClaimList.vue @@ -79,7 +79,7 @@ const columns = computed(() => [ align: 'left', label: t('claim.state'), format: ({ stateCode }) => - claimFilterRef.value?.states.find(({code}) => code === stateCode) + claimFilterRef.value?.states.find(({ code }) => code === stateCode) ?.description, name: 'stateCode', chip: { @@ -100,7 +100,7 @@ const columns = computed(() => [ name: 'tableActions', actions: [ { - title: t('Client ticket list'), + title: t('components.smartCard.viewSummary'), icon: 'preview', action: (row) => viewSummary(row.id, ClaimSummary), }, diff --git a/src/pages/Customer/CustomerList.vue b/src/pages/Customer/CustomerList.vue index 82ad559ad..0dc7f09be 100644 --- a/src/pages/Customer/CustomerList.vue +++ b/src/pages/Customer/CustomerList.vue @@ -357,7 +357,7 @@ const columns = computed(() => [ isPrimary: true, }, { - title: t('Client ticket list'), + title: t('components.smartCard.viewSummary'), icon: 'preview', action: (row) => viewSummary(row.id, CustomerSummary), }, diff --git a/src/pages/Entry/EntryList.vue b/src/pages/Entry/EntryList.vue index bd5ace677..c03c67edb 100644 --- a/src/pages/Entry/EntryList.vue +++ b/src/pages/Entry/EntryList.vue @@ -7,11 +7,19 @@ import { useStateStore } from 'stores/useStateStore'; import VnTable from 'components/VnTable/VnTable.vue'; import RightMenu from 'src/components/common/RightMenu.vue'; import { toDate } from 'src/filters'; +import { useSummaryDialog } from 'src/composables/useSummaryDialog'; +import EntrySummary from './Card/EntrySummary.vue'; +import VnUserLink from 'components/ui/VnUserLink.vue'; +import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue'; +import CustomerDescriptorProxy from '../Customer/Card/CustomerDescriptorProxy.vue'; +import SupplierDescriptorProxy from 'src/pages/Supplier/Card/SupplierDescriptorProxy.vue'; +import TravelDescriptorProxy from 'src/pages/Travel/Card/TravelDescriptorProxy.vue'; const stateStore = useStateStore(); const { t } = useI18n(); const tableRef = ref(); +const { viewSummary } = useSummaryDialog(); const entryFilter = { include: [ { @@ -142,6 +150,12 @@ const columns = computed(() => [ create: true, format: (row, dashIfEmpty) => dashIfEmpty(row.travelRef), }, + { + align: 'left', + label: t('entry.list.tableVisibleColumns.invoiceAmount'), + name: 'invoiceAmount', + cardVisible: true, + }, { align: 'left', label: t('entry.list.tableVisibleColumns.isExcludedFromAvailable'), @@ -168,6 +182,18 @@ const columns = computed(() => [ inWhere: true, }, }, + { + align: 'right', + name: 'tableActions', + actions: [ + { + title: t('components.smartCard.viewSummary'), + icon: 'preview', + action: (row) => viewSummary(row.id, EntrySummary), + isPrimary: true, + }, + ], + }, ]); onMounted(async () => { stateStore.rightDrawer = true; @@ -201,7 +227,20 @@ onMounted(async () => { redirect="entry" auto-load :right-search="false" - /> + > + + + diff --git a/src/pages/InvoiceOut/InvoiceOutList.vue b/src/pages/InvoiceOut/InvoiceOutList.vue index c2fcd049e..d4c544c7d 100644 --- a/src/pages/InvoiceOut/InvoiceOutList.vue +++ b/src/pages/InvoiceOut/InvoiceOutList.vue @@ -122,7 +122,7 @@ const columns = computed(() => [ name: 'tableActions', actions: [ { - title: t('InvoiceOutSummary'), + title: t('components.smartCard.viewSummary'), icon: 'preview', action: (row) => viewSummary(row.id, InvoiceOutSummary), }, @@ -250,7 +250,7 @@ watchEffect(selectedRows); /> @@ -18,5 +18,5 @@ const { t } = useI18n(); es: Search order: Buscar orden - You can search orders by reference: Puedes buscar por referencia de la orden + Search orders by ticket id: Buscar pedido por id ticket diff --git a/src/pages/Route/RouteList.vue b/src/pages/Route/RouteList.vue index e24ed33ed..02b030145 100644 --- a/src/pages/Route/RouteList.vue +++ b/src/pages/Route/RouteList.vue @@ -185,7 +185,7 @@ const columns = computed(() => [ action: (row) => openTicketsDialog(row?.id), }, { - title: t('Preview'), + title: t('components.smartCard.viewSummary'), icon: 'preview', action: (row) => viewSummary(row?.id, RouteSummary), }, diff --git a/src/pages/Ticket/Card/TicketSaleMoreActions.vue b/src/pages/Ticket/Card/TicketSaleMoreActions.vue index f04a13c4e..94db67be2 100644 --- a/src/pages/Ticket/Card/TicketSaleMoreActions.vue +++ b/src/pages/Ticket/Card/TicketSaleMoreActions.vue @@ -131,7 +131,11 @@ const createClaim = () => { onCreateClaimAccepted ); else - openConfirmationModal(t('Do you want to create a claim?'), onCreateClaimAccepted); + openConfirmationModal( + t('Do you want to create a claim?'), + false, + onCreateClaimAccepted + ); }; const onCreateClaimAccepted = async () => { diff --git a/src/pages/Travel/TravelList.vue b/src/pages/Travel/TravelList.vue index 8989e485c..c7ad908f9 100644 --- a/src/pages/Travel/TravelList.vue +++ b/src/pages/Travel/TravelList.vue @@ -10,6 +10,7 @@ import { computed } from 'vue'; import TravelSummary from './Card/TravelSummary.vue'; import VnSearchbar from 'components/ui/VnSearchbar.vue'; import { toDate } from 'src/filters'; +import { getDateQBadgeColor } from 'src/composables/getDateQBadgeColor.js'; const { viewSummary } = useSummaryDialog(); const router = useRouter(); const { t } = useI18n(); @@ -46,14 +47,12 @@ const columns = computed(() => [ name: 'id', label: t('travel.travelList.tableVisibleColumns.id'), isId: true, - field: 'id', cardVisible: true, }, { align: 'left', name: 'ref', label: t('travel.travelList.tableVisibleColumns.ref'), - field: 'ref', component: 'input', columnField: { component: null, @@ -65,7 +64,6 @@ const columns = computed(() => [ align: 'left', name: 'agencyModeFk', label: t('travel.travelList.tableVisibleColumns.agency'), - field: 'agencyModeFk', component: 'select', attrs: { url: 'agencyModes', @@ -78,37 +76,10 @@ const columns = computed(() => [ cardVisible: true, create: true, }, - { - align: 'left', - name: 'shipped', - label: t('travel.travelList.tableVisibleColumns.shipped'), - field: 'shipped', - component: 'date', - columnField: { - component: null, - }, - cardVisible: true, - create: true, - format: (row, dashIfEmpty) => dashIfEmpty(toDate(row.shipped)), - }, - { - align: 'left', - name: 'landed', - label: t('travel.travelList.tableVisibleColumns.landed'), - field: 'landed', - component: 'date', - columnField: { - component: null, - }, - cardVisible: true, - create: true, - format: (row, dashIfEmpty) => dashIfEmpty(toDate(row.landed)), - }, { align: 'left', name: 'warehouseInFk', label: t('travel.travelList.tableVisibleColumns.warehouseIn'), - field: 'warehouseInFk', component: 'select', attrs: { url: 'warehouses', @@ -123,11 +94,28 @@ const columns = computed(() => [ cardVisible: true, create: true, }, + { + align: 'left', + name: 'shipped', + label: t('travel.travelList.tableVisibleColumns.shipped'), + component: 'date', + columnField: { + component: null, + }, + cardVisible: true, + create: true, + format: (row, dashIfEmpty) => dashIfEmpty(toDate(row.shipped)), + }, + { + align: 'left', + name: 'shipmentHour', + label: t('travel.travelList.tableVisibleColumns.shipHour'), + cardVisible: true, + }, { align: 'left', name: 'warehouseOutFk', label: t('travel.travelList.tableVisibleColumns.warehouseOut'), - field: 'warehouseOutFk', component: 'select', attrs: { url: 'warehouses', @@ -140,12 +128,30 @@ const columns = computed(() => [ cardVisible: true, create: true, }, + { + align: 'left', + name: 'landed', + label: t('travel.travelList.tableVisibleColumns.landed'), + component: 'date', + columnField: { + component: null, + }, + cardVisible: true, + create: true, + format: (row, dashIfEmpty) => dashIfEmpty(toDate(row.landed)), + }, + { + align: 'left', + name: 'landingHour', + label: t('travel.travelList.tableVisibleColumns.landHour'), + cardVisible: true, + }, { align: 'left', name: 'totalEntries', label: t('travel.travelList.tableVisibleColumns.totalEntries'), - field: 'totalEntries', component: 'input', + toolTip: t('travel.travelList.tableVisibleColumns.totalEntriesTooltip'), columnField: { component: null, }, @@ -165,13 +171,15 @@ const columns = computed(() => [ }, { title: t('Add entry'), - icon: 'contact_support', + icon: 'vn:ticket', action: redirectCreateEntryView, + isPrimary: true, }, { - title: t('View Summary'), + title: t('components.smartCard.viewSummary'), icon: 'preview', action: (row) => viewSummary(row.id, TravelSummary), + isPrimary: true, }, ], }, @@ -202,12 +210,43 @@ const columns = computed(() => [ redirect="travel" :is-editable="false" :use-model="true" - /> + > + + + en: - addEntry: Add entry + Add entry: Add entry searchByIdOrReference: Search by ID or reference es: @@ -215,4 +254,12 @@ es: searchByIdOrReference: Buscar por ID o por referencia You can search by travel id or name: Buscar por envio por id o nombre Search travel: Buscar envio + Clone: Clonar + Add entry: Añadir Entrada + + diff --git a/src/pages/Worker/WorkerList.vue b/src/pages/Worker/WorkerList.vue index 0ea094e23..91d96a162 100644 --- a/src/pages/Worker/WorkerList.vue +++ b/src/pages/Worker/WorkerList.vue @@ -77,7 +77,7 @@ const columns = computed(() => [ name: 'tableActions', actions: [ { - title: t('InvoiceOutSummary'), + title: t('components.smartCard.viewSummary'), icon: 'preview', action: (row) => viewSummary(row.id, WorkerSummary), },