From cfda06380a3697628a397e84473a901d1c9f8703 Mon Sep 17 00:00:00 2001 From: carlossa <carlossa@verdnatura.es> Date: Mon, 20 Jan 2025 10:46:12 +0100 Subject: [PATCH] fix: refs #7351 claim summary --- src/pages/Claim/Card/ClaimSummary.vue | 60 +++++++++++++++++---------- src/pages/Claim/locale/en.yml | 1 + src/pages/Claim/locale/es.yml | 1 + 3 files changed, 41 insertions(+), 21 deletions(-) diff --git a/src/pages/Claim/Card/ClaimSummary.vue b/src/pages/Claim/Card/ClaimSummary.vue index a4b3f62dc..077de9fb7 100644 --- a/src/pages/Claim/Card/ClaimSummary.vue +++ b/src/pages/Claim/Card/ClaimSummary.vue @@ -1,6 +1,6 @@ <script setup> import axios from 'axios'; -import { ref, computed } from 'vue'; +import { ref, computed, onMounted } from 'vue'; import { useRoute, useRouter } from 'vue-router'; import { useI18n } from 'vue-i18n'; import { toDate, toCurrency } from 'src/filters'; @@ -48,24 +48,31 @@ const claimDmsFilter = ref({ }, ], }); -function onFetch(rows, newRows) { - console.log('rows: ', rows); - console.log('newRows: ', newRows); +async function totalClaim(rows, newRows) { if (newRows) rows = newRows; - amount.value = 0; - console.log('amount.value: ', amount.value); - amountClaimed.value = 0; - console.log('amountClaimed.value: ', amountClaimed.value); - if (!rows || !rows.length) return; + const { data } = await axios.get(`Claims/${entityId.value}/getSummary`); - for (const row of rows) { - const { sale } = row; + const lines = data.salesClaimed; + + totalRow(lines); + amount.value = 0; + amountClaimed.value = 0; + for (const line of lines) { + const { sale } = line; + console.log('sale: ', sale); amount.value = amount.value + totalRow(sale); - const price = row.quantity * sale.price; + console.log('amount: ', amount.value); + const price = line.quantity * sale.price; const discount = (sale.discount * price) / 100; amountClaimed.value = amountClaimed.value + (price - discount); + console.log('amountClaimed: ', amountClaimed.value); } } +function totalRow(lines) { + const amount = lines.price * lines.quantity; + const appliedDiscount = (lines.discount * amount) / 100; + return amount - appliedDiscount; +} const detailsColumns = ref([ { name: 'item', @@ -118,11 +125,7 @@ const detailsColumns = ref([ sortable: true, }, ]); -function totalRow({ price, quantity, discount }) { - const amount = price * quantity; - const appliedDiscount = (discount * amount) / 100; - return amount - appliedDiscount; -} + const markerLabels = [ { value: 1, label: t('claim.company') }, { value: 5, label: t('claim.person') }, @@ -201,6 +204,10 @@ async function changeState(value) { function claimUrl(section) { return '#/claim/' + entityId.value + '/' + section; } + +onMounted(() => { + totalClaim(); +}); </script> <template> @@ -255,7 +262,7 @@ function claimUrl(section) { <ClaimDescriptorMenu :claim="entity.claim" /> </template> <template #body="{ entity: { claim, salesClaimed, developments } }"> - <QCard class="vn-one" v-if="$route.name != 'ClaimSummary'"> + <QCard class="vn-two" v-if="$route.name != 'ClaimSummary'"> <VnTitle :url="claimUrl('basic-data')" :text="t('globals.pageTitles.basicData')" @@ -306,7 +313,7 @@ function claimUrl(section) { order="created ASC" /> </QCard> - <QCard class="vn-two" v-if="claimDms?.length"> + <QCard class="vn-one" v-if="claimDms?.length"> <VnTitle :url="claimUrl('photos')" :text="t('claim.photos')" /> <div class="container max-container-height" style="overflow: auto"> <div @@ -348,10 +355,21 @@ function claimUrl(section) { </div> </div> </QCard> + <QCard class="vn-one"> + <VnTitle :text="t('claim.resume')" /> + <div class="container max-container-height"> + <VnLv :label="t('Amount')" :value="toCurrency(amount)" /> + <VnLv :label="t('Amount Claimed')"> + <template #value> + <QChip color="positive"> + {{ toCurrency(amountClaimed) }} + </QChip> + </template> + </VnLv> + </div> + </QCard> <QCard class="vn-max" v-if="salesClaimed.length > 0" @on-fetch="onFetch"> <VnTitle :url="claimUrl('lines')" :text="t('claim.details')" /> - {{ salesClaimed }} - <QTable :columns="detailsColumns" :rows="salesClaimed" diff --git a/src/pages/Claim/locale/en.yml b/src/pages/Claim/locale/en.yml index 11b4a2ca4..dce59528a 100644 --- a/src/pages/Claim/locale/en.yml +++ b/src/pages/Claim/locale/en.yml @@ -46,3 +46,4 @@ claim: dragDrop: Drag and drop it here search: Search claims searchInfo: You can search by claim id or customer name + resume: Resume diff --git a/src/pages/Claim/locale/es.yml b/src/pages/Claim/locale/es.yml index d35d2c8e7..fd5de4032 100644 --- a/src/pages/Claim/locale/es.yml +++ b/src/pages/Claim/locale/es.yml @@ -46,3 +46,4 @@ claim: dragDrop: Arrastra y suelta aquí search: Buscar reclamación searchInfo: Puedes buscar por ID de la reclamación o nombre del cliente + resume: Resumen