#6321 - Negative ticket #158

Open
jsegarra wants to merge 220 commits from 6321_negative_tickets into dev
2 changed files with 48 additions and 17 deletions
Showing only changes of commit cd5a64fcc6 - Show all commits

View File

@ -8,6 +8,7 @@ import { useSession } from 'src/composables/useSession';
import VnLv from 'src/components/ui/VnLv.vue';
import { toCurrency } from 'filters/index';
import VnStockValueDisplay from 'src/components/ui/VnStockValueDisplay.vue';
import { useDialogPluginComponent } from 'quasar';
jgallego marked this conversation as resolved Outdated

configuracion a tablas

configuracion a tablas

ya no hace falta

ya no hace falta
const MATCH_VALUES = [5, 6, 7, 8];
const { t } = useI18n();
@ -156,8 +157,7 @@ const columns = computed(() => [
},
]);
jgallego marked this conversation as resolved Outdated

Aqui no veo correcto usar las variables de colores definidos

Aqui no veo correcto usar las variables de colores definidos

yo lo que no veo correcto es usar el amarillo que nos de javascript sin saber cual és, creemos una variable amarillo porque tal vez en el dark o en el light lo queramos hacer amarillo pero no el mismo tono

yo lo que no veo correcto es usar el amarillo que nos de javascript sin saber cual és, creemos una variable amarillo porque tal vez en el dark o en el light lo queramos hacer amarillo pero no el mismo tono

ok, vale, cambio de style por class

ok, vale, cambio de style por class
async function confirm() {
console.log('');
quantity.value = 0;
// console.log('');
// const response = { address: address.value };
// if (props.promise) {
// isLoading.value = true;
@ -170,7 +170,18 @@ async function confirm() {
// isLoading.value = false;
// }
// }
// onDialogOK(response);
// onDialogOK({ data: true });
dialogRef.value.hide({ type: 'refresh', itemProposal: proposalSelected.value[0] });
}
const { dialogRef, onDialogOK, onDialogCancel } = useDialogPluginComponent();
// Definir el emisor de eventos
const emit = defineEmits(['dialogClosed']);
function onDialogClose() {
console.log('Dialog has been closed');
// Emitir el evento personalizado
emit('dialogClosed', { data: true });
}
</script>
<template>
@ -242,6 +253,7 @@ async function confirm() {
auto-load
:rows-per-page-options="[0]"
hide-pagination
hide-bottom
>
<template #top-row>
<!-- <QTr>

View File

@ -23,12 +23,7 @@ import { useStateStore } from 'stores/useStateStore';
import { useDialogPluginComponent } from 'quasar';
import { useSession } from 'src/composables/useSession';
import ZoneDescriptorProxy from 'pages/Zone/Card/ZoneDescriptorProxy.vue';
onMounted(() => {
stateStore.rightDrawer = false;
nextTick(() => {
componentIsRendered.value = true;
});
});
const { openConfirmationModal } = useVnConfirm();
const { t } = useI18n();
const URL_KEY = 'Tickets/ItemLack';
@ -53,7 +48,7 @@ import VnSelectDialog from 'src/components/common/VnSelectDialog.vue';
import VnRow from 'src/components/ui/VnRow.vue';
const route = useRoute();
const token = session.getTokenMultimedia();
const itemLack = ref(null);
const originalRowDataCopy = ref(null);
// const $props = defineProps({
// item: {
@ -68,13 +63,19 @@ const originalRowDataCopy = ref(null);
// },
// },
// });
onUnmounted(() => (stateStore.rightDrawer = true));
onMounted(() => {
stateStore.rightDrawer = false;
nextTick(() => {
componentIsRendered.value = true;
jsegarra marked this conversation as resolved Outdated

este lo tenias en la tabla

este lo tenias en la tabla

No, no lo tenia
He hecho, que si vienes desde el listado, pases el valor por parámetro al detalle, así evitamos un 2 a pelo

No, no lo tenia He hecho, que si vienes desde el listado, pases el valor por parámetro al detalle, así evitamos un 2 a pelo
});
});
onUnmounted(() => {
stateStore.rightDrawer = true;
});
const copyOriginalRowsData = (rows) => {
originalRowDataCopy.value = JSON.parse(JSON.stringify(rows));
};
const getInputEvents = (colField, props) => ({
'update:modelValue': () => saveChange(colField, props),
'keyup.enter': () => saveChange(colField, props),
@ -329,6 +330,20 @@ const split = async () => {
},
});
};
const itemProposalEvt = ({ itemProposal }) => {
itemProposalSelected.value = itemProposal;
replaceItem();
};
const itemProposalSelected = ref(null);
const replaceItem = () => {
const rows = handleRows(originalRowDataCopy.value).sort((row) => row.quantity);
for (const ticket of rows) {
if (ticket.quantity > itemProposalSelected.value.available) continue;
ticket.itemFk = itemProposalSelected.value.id;
selectedRows.value.push(ticket.ticketFk);
itemProposalSelected.value.available -= ticket.quantity;
}
};
</script>
<template>
@ -343,6 +358,12 @@ const split = async () => {
@on-fetch="(data) => (item = data)"
auto-load
/>
<FetchData
:url="`Tickets/itemLack`"
:filter="{ id: entityId }"
@on-fetch="(data) => (itemLack = data)"
auto-load
/>
<!-- <Teleport to="#st-actions" v-if="stateStore?.isSubToolbarShown()">
<QBtnGroup push style="column-gap: 1px"
><QBtn
@ -423,15 +444,13 @@ const split = async () => {
<div class="full-width q-pa-md">
<VnPaginate
:data-key="URL_KEY"
:url="`${URL_KEY}/${entityId}/detail`"
:url="`${URL_KEY}/${entityId}`"
ref="itemLackForm"
@on-fetch="copyOriginalRowsData($event)"
auto-load
>
<!-- :rows="rows" -->
<template #body="{ rows }">
{{ item }}
<VnLv class="image">
<template #label>
<QImg
@ -586,7 +605,7 @@ const split = async () => {
></HandleSplited>-->
<ItemProposal
ref="proposalDialogRef"
@hide="onDialogHide"
@hide="itemProposalEvt"
v-model="showProposalDialog"
:item="item"
:tickets="selectedRows"