diff --git a/src/composables/useArrayData.js b/src/composables/useArrayData.js index 0fcbbbb48..d1d708f9b 100644 --- a/src/composables/useArrayData.js +++ b/src/composables/useArrayData.js @@ -177,10 +177,20 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) { delete store.userParams[param]; delete params[param]; if (store.filter?.where) { - const key = Object.keys(exprBuilder ? exprBuilder(param) : param); - if (key[0]) delete store.filter.where[key[0]]; - if (Object.keys(store.filter.where).length === 0) { - delete store.filter.where; + let key; + if (exprBuilder) { + const result = exprBuilder(param); + if (result !== undefined && result !== null) + key = Object.keys(result); + } else { + if (typeof param === 'object' && param !== null) + key = Object.keys(param); + } + if (key && key[0]) { + delete store.filter.where[key[0]]; + if (Object.keys(store.filter.where).length === 0) { + delete store.filter.where; + } } } } diff --git a/src/pages/Ticket/TicketAdvance.vue b/src/pages/Ticket/TicketAdvance.vue index 8b0a426dd..bb9a8c8a8 100644 --- a/src/pages/Ticket/TicketAdvance.vue +++ b/src/pages/Ticket/TicketAdvance.vue @@ -9,6 +9,8 @@ import TicketDescriptorProxy from 'src/pages/Ticket/Card/TicketDescriptorProxy.v import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue'; import VnSearchbar from 'src/components/ui/VnSearchbar.vue'; import VnProgress from 'src/components/common/VnProgressModal.vue'; +import RightMenu from 'src/components/common/RightMenu.vue'; +import TicketAdvanceFilter from './TicketAdvanceFilter.vue'; import { dashIfEmpty, toCurrency } from 'src/filters'; import { useVnConfirm } from 'composables/useVnConfirm'; @@ -42,9 +44,9 @@ const exprBuilder = (param, value) => { case 'notMovableLines': case 'futureZoneFk': return { [param]: value }; - case 'ipt': + case 'iptColFilter': return { ipt: { like: `%${value}%` } }; - case 'futureIpt': + case 'futureIptColFilter': return { futureIpt: { like: `%${value}%` } }; } }; @@ -55,6 +57,7 @@ const arrayData = useArrayData('AdvanceTickets', { url: 'Tickets/getTicketsAdvance', userParams: userParams, exprBuilder: exprBuilder, + limit: 0, }); const { store } = arrayData; const tickets = computed(() => @@ -110,7 +113,7 @@ const ticketColumns = computed(() => [ sortable: true, columnFilter: { component: VnSelect, - filterParamKey: 'ipt', + filterParamKey: 'iptColFilter', type: 'select', filterValue: null, event: getInputEvents, @@ -194,7 +197,7 @@ const ticketColumns = computed(() => [ sortable: true, columnFilter: { component: VnSelect, - filterParamKey: 'futureIpt', + filterParamKey: 'futureIptColFilter', type: 'select', filterValue: null, event: getInputEvents, @@ -451,7 +454,8 @@ onMounted(async () => { userParams.dateFuture = tomorrow; userParams.dateToAdvance = today; userParams.warehouseFk = user.value.warehouseFk; - await arrayData.addFilter({ userParams }); + const filter = { limit: 0 }; + await arrayData.addFilter({ filter, userParams }); }); @@ -521,6 +525,11 @@ onMounted(async () => { + + + + + +import { ref } from 'vue'; +import { useI18n } from 'vue-i18n'; + +import FetchData from 'components/FetchData.vue'; +import VnFilterPanel from 'src/components/ui/VnFilterPanel.vue'; +import VnSelect from 'components/common/VnSelect.vue'; +import VnInputDate from 'src/components/common/VnInputDate.vue'; + +import axios from 'axios'; +import { onMounted } from 'vue'; + +const { t } = useI18n(); +const props = defineProps({ + dataKey: { + type: String, + required: true, + }, + exprBuilder: { + type: Function, + default: null, + }, +}); + +const warehousesOptions = ref([]); +const itemPackingTypes = ref([]); + +const getItemPackingTypes = async () => { + try { + const filter = { + where: { isActive: true }, + }; + const { data } = await axios.get('ItemPackingTypes', { + params: { filter: JSON.stringify(filter) }, + }); + itemPackingTypes.value = data.map((ipt) => ({ + description: t(ipt.description), + code: ipt.code, + })); + } catch (error) { + console.error(error); + } +}; + +onMounted(async () => await getItemPackingTypes()); + + + + (warehousesOptions = data)" + auto-load + /> + + + + {{ t(`params.${tag.label}`) }}: + {{ formatFn(tag.value) }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +en: + iptInfo: IPT + params: + dateFuture: Origin date + dateToAdvance: Destination date + futureIpt: Origin IPT + ipt: Destination IPT + itemPackingTypes: 100% movable + warehouseFk: Warehouse +es: + Horizontal: Horizontal + Vertical: Vertical + iptInfo: Encajado + params: + dateFuture: Origin date + dateToAdvance: Destination date + futureIpt: Origin IPT + ipt: Destination IPT + itemPackingTypes: 100% movable + warehouseFk: Warehouse +