diff --git a/src/components/common/VnLog.vue b/src/components/common/VnLog.vue
index 8a91d3c95..340a9e550 100644
--- a/src/components/common/VnLog.vue
+++ b/src/components/common/VnLog.vue
@@ -421,12 +421,13 @@ setLogTree();
>
-
+
diff --git a/src/pages/Claim/Card/ClaimAction.vue b/src/pages/Claim/Card/ClaimAction.vue
index 13cc211fe..367b5249c 100644
--- a/src/pages/Claim/Card/ClaimAction.vue
+++ b/src/pages/Claim/Card/ClaimAction.vue
@@ -2,7 +2,7 @@
import { ref, computed, onMounted } from 'vue';
import { useQuasar } from 'quasar';
import { useI18n } from 'vue-i18n';
-import { useRoute, useRouter } from 'vue-router';
+import { useRoute } from 'vue-router';
import axios from 'axios';
import { useStateStore } from 'src/stores/useStateStore';
import { toDate, toPercentage, toCurrency } from 'filters/index';
@@ -10,14 +10,13 @@ import { tMobile } from 'src/composables/tMobile';
import CrudModel from 'src/components/CrudModel.vue';
import FetchData from 'src/components/FetchData.vue';
import VnSelect from 'src/components/common/VnSelect.vue';
-import VnConfirm from 'src/components/ui/VnConfirm.vue';
+import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue';
import TicketDescriptorProxy from 'src/pages/Ticket/Card/TicketDescriptorProxy.vue';
import { useArrayData } from 'composables/useArrayData';
const { t } = useI18n();
const quasar = useQuasar();
const route = useRoute();
-const router = useRouter();
const stateStore = computed(() => useStateStore());
const claim = ref(null);
const claimRef = ref();
@@ -41,7 +40,7 @@ const multiplicatorValue = ref();
const columns = computed(() => [
{
- name: 'Id',
+ name: 'id',
label: t('Id item'),
field: (row) => row.itemFk,
},
@@ -292,6 +291,14 @@ async function importToNewRefundTicket() {
v-model:selected="selectedRows"
:grid="$q.screen.lt.md"
>
+
+
+
+ {{ value }}
+
+
+
+
diff --git a/src/pages/Claim/Card/ClaimLines.vue b/src/pages/Claim/Card/ClaimLines.vue
index c4a7db201..52fbfca98 100644
--- a/src/pages/Claim/Card/ClaimLines.vue
+++ b/src/pages/Claim/Card/ClaimLines.vue
@@ -45,20 +45,25 @@ async function onFetchClaim(data) {
const amount = ref();
const amountClaimed = ref();
-async function onFetch(rows) {
+async function onFetch(rows, newRows) {
+ if (newRows) rows = newRows;
amount.value = 0;
amountClaimed.value = 0;
if (!rows || !rows.length) return;
- amount.value = rows.reduce(
- (accumulator, { sale }) => accumulator + sale.price * sale.quantity,
- 0
- );
+ for (const row of rows) {
+ const { sale } = row;
+ amount.value = amount.value + totalRow(sale);
+ const price = row.quantity * sale.price;
+ const discount = (sale.discount * price) / 100;
+ amountClaimed.value = amountClaimed.value + (price - discount);
+ }
+}
- amountClaimed.value = rows.reduce(
- (accumulator, line) => accumulator + line.sale.price * line.quantity,
- 0
- );
+function totalRow({ price, quantity, discount }) {
+ const amount = price * quantity;
+ const appliedDiscount = (discount * amount) / 100;
+ return amount - appliedDiscount;
}
const columns = computed(() => [
@@ -102,12 +107,7 @@ const columns = computed(() => [
{
name: 'total',
label: t('Total'),
- field: ({ sale }) => {
- const amount = sale.price * sale.quantity;
- const appliedDiscount = (sale.discount * amount) / 100;
-
- return amount - appliedDiscount;
- },
+ field: ({ sale }) => totalRow(sale),
format: (value) => toCurrency(value),
sortable: true,
},
@@ -129,6 +129,7 @@ async function updateDiscount({ saleFk, discount, canceller }) {
await axios.post(query, body, {
signal: canceller.signal,
});
+ await claimLinesForm.value.reload();
}
function onUpdateDiscount(response) {
@@ -151,8 +152,11 @@ function showImportDialog() {
.onOk(() => claimLinesForm.value.reload());
}
-function saveWhenHasChanges() {
- claimLinesForm.value.getChanges().updates && claimLinesForm.value.onSubmit();
+async function saveWhenHasChanges() {
+ if (claimLinesForm.value.getChanges().updates) {
+ await claimLinesForm.value.onSubmit();
+ await claimLinesForm.value.reload();
+ }
}
@@ -188,7 +192,6 @@ function saveWhenHasChanges() {
save-url="ClaimBeginnings/crud"
:filter="linesFilter"
@on-fetch="onFetch"
- @save-changes="onFetch"
v-model:selected="selected"
:default-save="false"
:default-reset="false"