fix: calc vat after discount only
This commit is contained in:
parent
66444bfdc5
commit
68a3e7dffd
1 changed files with 5 additions and 5 deletions
|
|
@ -130,7 +130,7 @@ type QuotationUpdate = {
|
|||
* @maximum 1
|
||||
* @minimum 0
|
||||
*/
|
||||
discount: number;
|
||||
discount?: number;
|
||||
workerIndex?: number[];
|
||||
}[];
|
||||
};
|
||||
|
|
@ -344,7 +344,7 @@ export class QuotationController extends Controller {
|
|||
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 vat = precisionRound(p.vatIncluded ? price - pricePerUnit : price * VAT_DEFAULT);
|
||||
const vat = precisionRound((pricePerUnit * v.amount - (v.discount || 0)) * VAT_DEFAULT);
|
||||
|
||||
return {
|
||||
order: i + 1,
|
||||
|
|
@ -369,7 +369,7 @@ export class QuotationController extends Controller {
|
|||
(a, c) => {
|
||||
a.totalPrice = precisionRound(a.totalPrice + c.pricePerUnit * c.amount);
|
||||
a.totalDiscount = precisionRound(a.totalDiscount + c.discount);
|
||||
a.vat = precisionRound(a.vat + c.vat * c.amount);
|
||||
a.vat = precisionRound(a.vat + c.vat);
|
||||
a.finalPrice = precisionRound(a.totalPrice - a.totalDiscount + a.vat);
|
||||
|
||||
return a;
|
||||
|
|
@ -550,7 +550,7 @@ export class QuotationController extends Controller {
|
|||
const p = product.find((p) => p.id === v.productId)!;
|
||||
const price = record.agentPrice ? p.agentPrice : p.price;
|
||||
const pricePerUnit = p.vatIncluded ? precisionRound(price / 1 + VAT_DEFAULT) : price;
|
||||
const vat = precisionRound(p.vatIncluded ? price - pricePerUnit : price * VAT_DEFAULT);
|
||||
const vat = precisionRound((pricePerUnit * v.amount - (v.discount || 0)) * VAT_DEFAULT);
|
||||
|
||||
return {
|
||||
order: i + 1,
|
||||
|
|
@ -576,7 +576,7 @@ export class QuotationController extends Controller {
|
|||
(a, c) => {
|
||||
a.totalPrice = precisionRound(a.totalPrice + c.pricePerUnit * c.amount);
|
||||
a.totalDiscount = precisionRound(a.totalDiscount + c.discount);
|
||||
a.vat = precisionRound(a.vat + c.vat * c.amount);
|
||||
a.vat = precisionRound(a.vat + c.vat);
|
||||
a.finalPrice = precisionRound(a.totalPrice - a.totalDiscount + a.vat);
|
||||
|
||||
return a;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue