0
0
Fork 0

Merge pull request '#7671 - Fix minor bugs ItemFixedPrices' (!692) from 7671_dense_itemFixedPrices into dev

Reviewed-on: verdnatura/salix-front#692
Reviewed-by: Javi Gallego <jgallego@verdnatura.es>
This commit is contained in:
Javier Segarra 2024-09-10 05:19:47 +00:00
commit f4f8e83fea
2 changed files with 101 additions and 114 deletions

View File

@ -296,6 +296,7 @@ defineExpose({
reload, reload,
redirect: redirectFn, redirect: redirectFn,
selected, selected,
CrudModelRef,
}); });
function handleOnDataSaved(_, res) { function handleOnDataSaved(_, res) {

View File

@ -212,15 +212,6 @@ const editTableFieldsOptions = [
type: 'number', type: 'number',
}, },
}, },
{
field: 'hasMinPrice',
label: t('item.fixedPrice.hasMinPrice'),
component: 'checkbox',
attrs: {
'false-value': 0,
'true-value': 1,
},
},
{ {
field: 'started', field: 'started',
label: t('item.fixedPrice.started'), label: t('item.fixedPrice.started'),
@ -262,10 +253,13 @@ const updateMinPrice = async (value, props) => {
}); });
}; };
const upsertPrice = async ({ row }, resetMinPrice = false) => { const upsertPrice = async (props, resetMinPrice = false) => {
try { try {
const { row } = props;
if (tableRef.value.CrudModelRef.getChanges().updates.length > 0) {
if (resetMinPrice) row.hasMinPrice = 0; if (resetMinPrice) row.hasMinPrice = 0;
row = await upsertFixedPrice(row); await upsertFixedPrice(row);
}
} catch (err) { } catch (err) {
console.error('Error editing price', err); console.error('Error editing price', err);
} }
@ -283,8 +277,7 @@ async function upsertFixedPrice(row) {
async function saveOnRowChange(row) { async function saveOnRowChange(row) {
if (rowsSelected.value.length > 1) return; if (rowsSelected.value.length > 1) return;
if (rowsSelected.value[0]?.id === row.id) return; if (rowsSelected.value[0]?.id === row.id) return;
else if (rowsSelected.value.length === 1) else if (rowsSelected.value.length === 1) await upsertPrice(rowsSelected.value[0]);
await upsertFixedPrice(rowsSelected.value[0]);
rowsSelected.value = [row]; rowsSelected.value = [row];
} }
@ -454,12 +447,18 @@ function handleOnDataSave({ CrudModelRef }) {
</VnSubToolbar> </VnSubToolbar>
<QPage> <QPage>
<VnTable <VnTable
@on-fetch="
(data) =>
data.forEach((item) => {
item.hasMinPrice = `${item.hasMinPrice !== 0}`;
})
"
:default-remove="false" :default-remove="false"
:default-reset="false" :default-reset="false"
:default-save="false" :default-save="false"
data-key="ItemFixedPrices" data-key="ItemFixedPrices"
url="FixedPrices/filter" url="FixedPrices/filter"
:order="['name ASC', 'itemFk DESC']" :order="['itemFk ASC']"
save-url="FixedPrices/crud" save-url="FixedPrices/crud"
:user-params="{ warehouseFk: user.warehouseFk }" :user-params="{ warehouseFk: user.warehouseFk }"
ref="tableRef" ref="tableRef"
@ -494,7 +493,6 @@ function handleOnDataSave({ CrudModelRef }) {
</template> </template>
<template #column-itemId="props"> <template #column-itemId="props">
<QTd>
<VnSelect <VnSelect
style="max-width: 100px" style="max-width: 100px"
url="Items/withName" url="Items/withName"
@ -513,22 +511,16 @@ function handleOnDataSave({ CrudModelRef }) {
</QItem> </QItem>
</template> </template>
</VnSelect> </VnSelect>
</QTd>
</template> </template>
<template #column-description="{ row }"> <template #column-description="{ row }">
<QTd class="col">
<span class="link"> <span class="link">
{{ row.name }} {{ row.name }}
</span> </span>
<span class="subName">{{ row.subName }}</span>
<ItemDescriptorProxy :id="row.itemFk" /> <ItemDescriptorProxy :id="row.itemFk" />
<FetchedTags <FetchedTags style="width: max-content; max-width: 220px" :item="row" />
style="width: max-content; max-width: 220px"
:item="row"
/>
</QTd>
</template> </template>
<template #column-rate2="props"> <template #column-rate2="props">
<QTd class="col">
<VnInput <VnInput
mask="###.##" mask="###.##"
v-model.number="props.row.rate2" v-model.number="props.row.rate2"
@ -536,10 +528,8 @@ function handleOnDataSave({ CrudModelRef }) {
> >
<template #append></template> <template #append></template>
</VnInput> </VnInput>
</QTd>
</template> </template>
<template #column-rate3="props"> <template #column-rate3="props">
<QTd class="col">
<VnInput <VnInput
mask="###.##" mask="###.##"
v-model.number="props.row.rate3" v-model.number="props.row.rate3"
@ -547,7 +537,6 @@ function handleOnDataSave({ CrudModelRef }) {
> >
<template #append></template> <template #append></template>
</VnInput> </VnInput>
</QTd>
</template> </template>
<template #column-minPrice="props"> <template #column-minPrice="props">
<QTd class="col"> <QTd class="col">
@ -555,12 +544,11 @@ function handleOnDataSave({ CrudModelRef }) {
<QCheckbox <QCheckbox
:model-value="props.row.hasMinPrice" :model-value="props.row.hasMinPrice"
@update:model-value="updateMinPrice($event, props)" @update:model-value="updateMinPrice($event, props)"
:false-value="0" :false-value="'false'"
:true-value="1" :true-value="'true'"
/> />
<VnInput <VnInput
class="col" class="col"
mask="###.##"
:disable="props.row.hasMinPrice === 1" :disable="props.row.hasMinPrice === 1"
v-model.number="props.row.minPrice" v-model.number="props.row.minPrice"
v-on="getRowUpdateInputEvents(props)" v-on="getRowUpdateInputEvents(props)"
@ -571,7 +559,6 @@ function handleOnDataSave({ CrudModelRef }) {
</QTd> </QTd>
</template> </template>
<template #column-started="props"> <template #column-started="props">
<QTd class="col">
<VnInputDate <VnInputDate
class="vnInputDate" class="vnInputDate"
:show-event="true" :show-event="true"
@ -579,21 +566,17 @@ function handleOnDataSave({ CrudModelRef }) {
v-on="getRowUpdateInputEvents(props, false, 'date')" v-on="getRowUpdateInputEvents(props, false, 'date')"
v-bind="dateStyle(isBigger(props.row.started))" v-bind="dateStyle(isBigger(props.row.started))"
/> />
</QTd>
</template> </template>
<template #column-ended="props"> <template #column-ended="props">
<QTd class="col">
<VnInputDate <VnInputDate
class="vnInputDate" class="vnInputDate"
:show-event="true" :show-event="true"
v-model="props.row.ended" v-model="props.row.ended"
v-on="getRowUpdateInputEvents(props, false, 'date')" v-on="getRowUpdateInputEvents(props, false, 'date')"
v-bind="dateStyle(isLower(props.row.started))" v-bind="dateStyle(isLower(props.row.ended))"
/> />
</QTd>
</template> </template>
<template #column-warehouseFk="props"> <template #column-warehouseFk="props">
<QTd class="col">
<VnSelect <VnSelect
style="max-width: 150px" style="max-width: 150px"
:options="warehousesOptions" :options="warehousesOptions"
@ -603,10 +586,8 @@ function handleOnDataSave({ CrudModelRef }) {
v-model="props.row.warehouseFk" v-model="props.row.warehouseFk"
v-on="getRowUpdateInputEvents(props, false, 'select')" v-on="getRowUpdateInputEvents(props, false, 'select')"
/> />
</QTd>
</template> </template>
<template #column-deleteAction="{ row, rowIndex }"> <template #column-deleteAction="{ row, rowIndex }">
<QTd class="col">
<QIcon <QIcon
name="delete" name="delete"
size="sm" size="sm"
@ -624,7 +605,6 @@ function handleOnDataSave({ CrudModelRef }) {
{{ t('globals.delete') }} {{ t('globals.delete') }}
</QTooltip> </QTooltip>
</QIcon> </QIcon>
</QTd>
</template> </template>
</VnTable> </VnTable>
@ -679,6 +659,12 @@ tbody tr.highlight .q-td {
background-color: transparent; background-color: transparent;
} }
} }
.subName {
margin-left: 5%;
font-size: 0.75rem;
text-transform: uppercase;
color: var(--vn-label-color);
}
</style> </style>
<i18n> <i18n>
es: es: