From b8f2df59cd9abcbe303e9bac5b2bad7972af2c97 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Thu, 6 Feb 2025 00:33:43 +0100 Subject: [PATCH] feat: refs #6321 updates requested --- src/pages/Item/components/ItemProposal.vue | 35 ++++++++++--------- .../Ticket/Negative/TicketLackDetail.vue | 10 ++++-- src/pages/Ticket/Negative/TicketLackTable.vue | 10 +++--- src/pages/Ticket/locale/en.yml | 2 +- src/pages/Ticket/locale/es.yml | 2 +- .../ticket/negative/TicketLackDetail.spec.js | 2 +- 6 files changed, 35 insertions(+), 26 deletions(-) diff --git a/src/pages/Item/components/ItemProposal.vue b/src/pages/Item/components/ItemProposal.vue index e899b4029..702791deb 100644 --- a/src/pages/Item/components/ItemProposal.vue +++ b/src/pages/Item/components/ItemProposal.vue @@ -30,6 +30,9 @@ const $props = defineProps({ }, }); const proposalSelected = ref([]); +const ticketConfig = ref({}); +const proposalTableRef = ref(null); + const sale = computed(() => $props.sales[0]); const saleFk = computed(() => sale.value.saleFk); const filter = computed(() => ({ @@ -37,11 +40,14 @@ const filter = computed(() => ({ sales: saleFk.value, })); -const proposalTableRef = ref(null); const defaultColumnAttrs = { align: 'center', sortable: false, }; +const emit = defineEmits(['onDialogClosed', 'itemReplaced']); + +const conditionalValuePrice = (price) => (price > 1.3 ? 'match' : 'not-match'); + const columns = computed(() => [ { ...defaultColumnAttrs, @@ -175,9 +181,17 @@ const statusConditionalValue = (row) => { return 100 * (value / matches.length); }; -const emit = defineEmits(['onDialogClosed', 'itemReplaced']); - -const conditionalValuePrice = (price) => (price > 1.3 ? 'match' : 'not-match'); +const isSelectionAvailable = (itemProposal) => { + const { price2 } = itemProposal; + const salePrice = sale.value.price; + const byPrice = (100 * price2) / salePrice > ticketConfig.value.lackAlertPrice; + if (byPrice) { + return byPrice; + } + const byQuantity = + (100 * itemProposal.available) / Math.abs($props.itemLack.lack) < 30; + return byQuantity; +}; async function change({ itemFk: substitutionFk }) { try { @@ -202,18 +216,7 @@ async function change({ itemFk: substitutionFk }) { console.error(error); } } -const ticketConfig = ref({}); -const isSelectionAvailable = (itemProposal) => { - const { price2 } = itemProposal; - const salePrice = sale.value.price; - const byPrice = (100 * price2) / salePrice > ticketConfig.value.lackAlertPrice; - if (byPrice) { - return byPrice; - } - const byQuantity = - (100 * itemProposal.available) / Math.abs($props.itemLack.lack) < 30; - return byQuantity; -}; + async function handleTicketConfig(data) { ticketConfig.value = data[0]; } diff --git a/src/pages/Ticket/Negative/TicketLackDetail.vue b/src/pages/Ticket/Negative/TicketLackDetail.vue index 1fe79c93e..9ff4c7e6f 100644 --- a/src/pages/Ticket/Negative/TicketLackDetail.vue +++ b/src/pages/Ticket/Negative/TicketLackDetail.vue @@ -14,7 +14,7 @@ import TicketLackTable from './TicketLackTable.vue'; import VnPopupProxy from 'src/components/common/VnPopupProxy.vue'; import ItemProposalProxy from 'src/pages/Item/components/ItemProposalProxy.vue'; -import { useQuasar } from 'quasar'; +import { date, useQuasar } from 'quasar'; const quasar = useQuasar(); const { t } = useI18n(); const editableStates = ref([]); @@ -65,7 +65,13 @@ const showItemProposal = () => { }) .onOk(itemProposalEvt); }; -const filterTable = { stateFk: 0, warehouseFk: useState().getUser().value.warehouseFk }; +const filterTable = { + scopeDays: 2, + showType: true, + alertLevelCode: 'FREE', + date: Date.vnNew(), + warehouseFk: useState().getUser().value.warehouseFk, +};