diff --git a/src/components/05_quotation/ProductItem.vue b/src/components/05_quotation/ProductItem.vue index 6ef1544e..a8306058 100644 --- a/src/components/05_quotation/ProductItem.vue +++ b/src/components/05_quotation/ProductItem.vue @@ -54,9 +54,13 @@ function calcPrice(c: (typeof rows.value)[number]) { return precisionRound( c.pricePerUnit * c.amount - c.discount + - (c.product.calcVat - ? (c.pricePerUnit * c.amount - c.discount) * (config.value?.vat || 0.07) - : 0), + precisionRound( + c.product.calcVat + ? (c.pricePerUnit * (c.discount ? c.amount : 1) - c.discount) * + (config.value?.vat || 0.07) + : 0, + ) * + (!c.discount ? c.amount : 1), ); } diff --git a/src/pages/05_quotation/QuotationForm.vue b/src/pages/05_quotation/QuotationForm.vue index 0002ee10..a2155f36 100644 --- a/src/pages/05_quotation/QuotationForm.vue +++ b/src/pages/05_quotation/QuotationForm.vue @@ -214,9 +214,11 @@ function getPrice( } const price = precisionRound(c.pricePerUnit * c.amount); - const vat = precisionRound( - (c.pricePerUnit * c.amount - c.discount) * (config.value?.vat || 0.07), - ); + const vat = + precisionRound( + (c.pricePerUnit * (c.discount ? c.amount : 1) - c.discount) * + (config.value?.vat || 0.07), + ) * (!c.discount ? c.amount : 1); a.totalPrice = precisionRound(a.totalPrice + price); a.totalDiscount = precisionRound(a.totalDiscount + Number(c.discount));