fix: vat calc

This commit is contained in:
Methapon Metanipat 2024-10-07 14:51:16 +07:00
parent 1a9f7b6c2b
commit 4dfa63dd12

View file

@ -343,7 +343,7 @@ export class QuotationController extends Controller {
const list = body.productServiceList.map((v, i) => {
const p = product.find((p) => p.id === v.productId)!;
const price = body.agentPrice ? p.agentPrice : p.price;
const pricePerUnit = p.vatIncluded ? precisionRound(price / 1 + VAT_DEFAULT) : price;
const pricePerUnit = p.vatIncluded ? precisionRound(price / (1 + VAT_DEFAULT)) : price;
const vat = precisionRound(p.vatIncluded ? price - pricePerUnit : price * VAT_DEFAULT);
return {
@ -367,11 +367,9 @@ export class QuotationController extends Controller {
const price = list.reduce(
(a, c) => {
const multiply = precisionRound(c.pricePerUnit * c.amount);
a.totalPrice = precisionRound(a.totalPrice + multiply);
a.totalPrice = precisionRound(a.totalPrice + c.pricePerUnit * c.amount);
a.totalDiscount = precisionRound(a.totalDiscount + c.discount);
a.vat = precisionRound(a.vat + c.vat);
a.vat = precisionRound(a.vat + c.vat * c.amount);
a.finalPrice = precisionRound(a.totalPrice - a.totalDiscount + a.vat);
return a;
@ -576,11 +574,9 @@ export class QuotationController extends Controller {
const price = list?.reduce(
(a, c) => {
const multiply = precisionRound(c.pricePerUnit * c.amount);
a.totalPrice = precisionRound(a.totalPrice + multiply);
a.totalPrice = precisionRound(a.totalPrice + c.pricePerUnit * c.amount);
a.totalDiscount = precisionRound(a.totalDiscount + c.discount);
a.vat = precisionRound(a.vat + c.vat);
a.vat = precisionRound(a.vat + c.vat * c.amount);
a.finalPrice = precisionRound(a.totalPrice - a.totalDiscount + a.vat);
return a;