From a6ac9c9d3f21f39e81dcf6d04289ac4eccd78ef6 Mon Sep 17 00:00:00 2001
From: Jon <jon@verdnatura.es>
Date: Fri, 3 Jan 2025 08:12:50 +0100
Subject: [PATCH] refactor: item fixedPrice

---
 src/pages/Item/Card/ItemDiary.vue |  2 +-
 src/pages/Item/ItemFixedPrice.vue | 26 ++++++++------------------
 2 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/src/pages/Item/Card/ItemDiary.vue b/src/pages/Item/Card/ItemDiary.vue
index b94ff9255..96a003a09 100644
--- a/src/pages/Item/Card/ItemDiary.vue
+++ b/src/pages/Item/Card/ItemDiary.vue
@@ -233,7 +233,7 @@ async function updateWarehouse(warehouseFk) {
             </div>
         </template>
     </VnSubToolbar>
-    <QPage class="column items-center q-pa-md">
+    <QPage class="column items-center">
         <QTable
             :rows="itemBalances"
             :columns="columns"
diff --git a/src/pages/Item/ItemFixedPrice.vue b/src/pages/Item/ItemFixedPrice.vue
index 74403d471..422adf55b 100644
--- a/src/pages/Item/ItemFixedPrice.vue
+++ b/src/pages/Item/ItemFixedPrice.vue
@@ -53,7 +53,6 @@ const columns = computed(() => [
         name: 'itemFk',
         ...defaultColumnAttrs,
         isId: true,
-        cardVisible: true,
         columnField: {
             component: 'input',
             type: 'number',
@@ -65,14 +64,12 @@ const columns = computed(() => [
         name: 'name',
         ...defaultColumnAttrs,
         create: true,
-        cardVisible: true,
     },
     {
         label: t('item.fixedPrice.groupingPrice'),
         field: 'rate2',
         name: 'rate2',
         ...defaultColumnAttrs,
-        cardVisible: true,
         component: 'input',
         type: 'number',
     },
@@ -81,7 +78,6 @@ const columns = computed(() => [
         field: 'rate3',
         name: 'rate3',
         ...defaultColumnAttrs,
-        cardVisible: true,
         component: 'input',
         type: 'number',
     },
@@ -91,7 +87,6 @@ const columns = computed(() => [
         field: 'minPrice',
         name: 'minPrice',
         ...defaultColumnAttrs,
-        cardVisible: true,
         component: 'input',
         type: 'number',
     },
@@ -100,7 +95,6 @@ const columns = computed(() => [
         field: 'started',
         name: 'started',
         format: ({ started }) => toDate(started),
-        cardVisible: true,
         ...defaultColumnAttrs,
         columnField: {
             component: 'date',
@@ -116,7 +110,6 @@ const columns = computed(() => [
         field: 'ended',
         name: 'ended',
         ...defaultColumnAttrs,
-        cardVisible: true,
         columnField: {
             component: 'date',
             class: 'shrink',
@@ -251,11 +244,14 @@ const upsertPrice = async (props, resetMinPrice = false) => {
     }
     if (!changes.updates && !changes.creates) return;
     const data = await upsertFixedPrice(row);
-    tableRef.value.CrudModelRef.formData[props.rowIndex] = data;
+    Object.assign(tableRef.value.CrudModelRef.formData[props.rowIndex], data);
+    notify(t('globals.dataSaved'), 'positive');
+    tableRef.value.reload();
 };
 
 async function upsertFixedPrice(row) {
     const { data } = await axios.patch('FixedPrices/upsertFixedPrice', row);
+    data.hasMinPrice = data.hasMinPrice ? 1 : 0;
     return data;
 }
 
@@ -395,18 +391,11 @@ function handleOnDataSave({ CrudModelRef }) {
         </template>
     </VnSubToolbar>
     <VnTable
-        @on-fetch="
-            (data) =>
-                data.forEach((item) => {
-                    item.hasMinPrice = `${item.hasMinPrice !== 0}`;
-                })
-        "
         :default-remove="false"
         :default-reset="false"
         :default-save="false"
         data-key="ItemFixedPrices"
         url="FixedPrices/filter"
-        :order="['itemFk DESC', 'name DESC']"
         save-url="FixedPrices/crud"
         ref="tableRef"
         dense
@@ -498,14 +487,15 @@ function handleOnDataSave({ CrudModelRef }) {
                     <QCheckbox
                         :model-value="props.row.hasMinPrice"
                         @update:model-value="updateMinPrice($event, props)"
-                        :false-value="'false'"
-                        :true-value="'true'"
+                        :false-value="0"
+                        :true-value="1"
+                        :toggle-indeterminate="false"
                     />
                     <VnInput
                         class="col"
                         type="currency"
                         mask="###.##"
-                        :disable="props.row.hasMinPrice === 1"
+                        :disable="props.row.hasMinPrice === 0"
                         v-model.number="props.row.minPrice"
                         v-on="getRowUpdateInputEvents(props)"
                     >