From 94f613236142d4b86b73b120ad3b62cdea0718df Mon Sep 17 00:00:00 2001 From: Alexandro Uc Santos Date: Sat, 20 Jan 2024 20:01:56 -0600 Subject: [PATCH] add: crud completed of budgets --- src/components/CardBudget.vue | 17 ++- src/components/CreateBudgetModal.vue | 154 ++++++++++++++++--------- src/components/CreateLocationModal.vue | 1 - src/components/ui/Cities.vue | 5 + src/components/ui/Products.vue | 5 + src/components/ui/TruckTypes.vue | 5 + src/stores/company.js | 26 +++-- src/views/CalculatorView.vue | 14 ++- 8 files changed, 152 insertions(+), 75 deletions(-) diff --git a/src/components/CardBudget.vue b/src/components/CardBudget.vue index ae796ba..86d165c 100644 --- a/src/components/CardBudget.vue +++ b/src/components/CardBudget.vue @@ -1,8 +1,8 @@ @@ -223,34 +264,36 @@ type="text" :filled="false" name="client" - :required="true" - :error="(!budgetForm.client) ? 'Cliente es requerido' : null" + :error="errors.client" v-model:field="budgetForm.client" + :readonly="isPrint" />
+
+
+ + +
+
+ +
- -
@@ -280,6 +325,7 @@ :filled="false" name="tonnage" v-model:field="budgetForm.tonnage" + :readonly="isPrint" />
@@ -330,6 +380,7 @@ :filled="false" name="cost_per_liter" v-model:field="budgetForm.cost_per_liter" + :readonly="isPrint" />
@@ -374,6 +427,7 @@ :filled="false" name="driver_salary" v-model:field="budgetForm.driver_salary" + :readonly="isPrint" />
@@ -439,19 +495,13 @@
-
- +
+ +
-
diff --git a/src/components/CreateLocationModal.vue b/src/components/CreateLocationModal.vue index 18a3bc5..f9d7d03 100644 --- a/src/components/CreateLocationModal.vue +++ b/src/components/CreateLocationModal.vue @@ -126,7 +126,6 @@ icon: 'error' }) } - console.log(locationForm); } } diff --git a/src/components/ui/Cities.vue b/src/components/ui/Cities.vue index 5f96e65..7269e26 100644 --- a/src/components/ui/Cities.vue +++ b/src/components/ui/Cities.vue @@ -14,6 +14,10 @@ multiple: { type: Boolean, default: false + }, + disabled: { + type: Boolean, + default: false } }); defineEmits(['update:selectedCities', 'clear-option']) @@ -35,6 +39,7 @@ :searchable="true" :loading="isLoading" :close-on-select="true" + :disabled="disabled" @search-change="searchState" @remove="$emit('clear-option')" placeholder="Busca por ciudad" diff --git a/src/components/ui/Products.vue b/src/components/ui/Products.vue index fb7f96a..e943595 100644 --- a/src/components/ui/Products.vue +++ b/src/components/ui/Products.vue @@ -14,6 +14,10 @@ multiple: { type: Boolean, default: false + }, + disabled: { + type: Boolean, + default: false } }); defineEmits(['update:selectedProduct', 'clear-option']) @@ -36,6 +40,7 @@ :searchable="true" :loading="isLoading" :close-on-select="true" + :disabled="disabled" @search-change="searchProductFn" @remove="$emit('clear-option')" placeholder="Busca por producto" diff --git a/src/components/ui/TruckTypes.vue b/src/components/ui/TruckTypes.vue index 0ec56ff..ddcfb23 100644 --- a/src/components/ui/TruckTypes.vue +++ b/src/components/ui/TruckTypes.vue @@ -14,6 +14,10 @@ multiple: { type: Boolean, default: false + }, + disabled: { + type: Boolean, + default: false } }); defineEmits(['update:selectedTruckType', 'clear-option']) @@ -38,6 +42,7 @@ :multiple="multiple" :loading="isLoading" :searchable="true" + :disabled="disabled" :close-on-select="true" @search-change="getTruckTypesQuery" @remove="$emit('clear-option')" diff --git a/src/stores/company.js b/src/stores/company.js index f29939c..7dbabbf 100644 --- a/src/stores/company.js +++ b/src/stores/company.js @@ -147,38 +147,40 @@ export const useCompanyStore = defineStore('company', () => { } } - const updateBudgetCompany = async(id, formData) => { + const updateBudgetCompany = async(id, formData, localData) => { try { const data = await updateBudget(id, formData); - console.log(data); + console.log(localData); if(data) { const index = budgets.value.findIndex((budget) => budget._id === id); budgets.value[index] = { ...budgets.value[index], ...data, - material: udgets.value[index].material + ...localData }; - return data; + return 'success'; } else { - return null; + return 'No se pudo actualizar presupuesto, intente mas tarde'; } } catch (error) { - return null; + return 'Algo salio mal, intente más tarde'; } } - const createBudgetCompany = async(formData) => { + const createBudgetCompany = async(formData, localData) => { try { const data = await createBudget(formData); - console.log(data); if(data) { - budgets.value.push(data); - return data; + budgets.value.push({ + ...data, + ...localData + }); + return 'success'; } else { - return null; + return 'No se pudo agregar presupuesto, intente mas tarde'; } } catch (error) { - return null; + return 'Algo salio mal, intente más tarde'; } } diff --git a/src/views/CalculatorView.vue b/src/views/CalculatorView.vue index 9d374f6..9be3968 100644 --- a/src/views/CalculatorView.vue +++ b/src/views/CalculatorView.vue @@ -15,6 +15,7 @@ const query = ref(''); const currentBudget = ref(null); const openModal = ref(false); + const printOpen = ref(false); onMounted(() => { getInitData(); @@ -60,14 +61,18 @@ } } - const handleSetCurrentBudget = (budget) => { + const handleSetCurrentBudget = (data) => { openModal.value = true; - currentBudget.value = budget; + currentBudget.value = data.budget; + if(data.print) { + printOpen.value = true + } } const handleResetCurrentBudget = () => { openModal.value = false; currentBudget.value = null; + printOpen.value = false; } @@ -76,6 +81,7 @@
@@ -93,7 +99,7 @@
@@ -102,7 +108,7 @@ v-if="companyStore.budgets.length > 0" v-for="budget in companyStore.budgets" :budget="budget" - @set-budget="handleSetCurrentBudget(budget)" + @set-budget="handleSetCurrentBudget" />