@qrwise/pos-calculations 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +36 -24
- package/dist/index.d.cts +37 -25
- package/dist/index.d.ts +37 -25
- package/dist/index.js +36 -24
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -104,36 +104,48 @@ function calculateTotals(input) {
|
|
|
104
104
|
}
|
|
105
105
|
if (totalAmount < 0) totalAmount = 0;
|
|
106
106
|
return {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
net: subtotal,
|
|
112
|
-
vatNet: voucherVatNet,
|
|
113
|
-
vat: voucherVat,
|
|
114
|
-
forBirDiscount: -(input.voucherType === "FIXED" ? voucherVatNet - Number(voucherRate.toFixed(2)) : voucherVatNet * Number(voucherRate.toFixed(2)))
|
|
115
|
-
},
|
|
116
|
-
hasDiscount: discountRate > 0,
|
|
117
|
-
discount: {
|
|
118
|
-
discount: discounted,
|
|
119
|
-
net: vatNet
|
|
120
|
-
},
|
|
121
|
-
netOfVat: vatNet + Math.abs(discounted),
|
|
107
|
+
quantity: input.quantity,
|
|
108
|
+
subtotal,
|
|
109
|
+
isAddVat,
|
|
110
|
+
vatNet,
|
|
122
111
|
vat,
|
|
112
|
+
discounted,
|
|
113
|
+
voucherDiscounted,
|
|
123
114
|
serviceCharge,
|
|
124
115
|
togoCharge,
|
|
125
|
-
totalAmount:
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
116
|
+
totalAmount: Number(totalAmount.toFixed(2)),
|
|
117
|
+
receipt: {
|
|
118
|
+
gross: subtotal + Math.abs(voucherDiscounted),
|
|
119
|
+
hasVoucher: voucherRate > 0,
|
|
120
|
+
voucher: {
|
|
121
|
+
discount: voucherDiscounted,
|
|
122
|
+
net: subtotal,
|
|
123
|
+
vatNet: voucherVatNet,
|
|
124
|
+
vat: voucherVat,
|
|
125
|
+
forBirDiscount: -(input.voucherType === "FIXED" ? voucherVatNet - Number(voucherRate.toFixed(2)) : voucherVatNet * Number(voucherRate.toFixed(2)))
|
|
126
|
+
},
|
|
127
|
+
hasDiscount: discountRate > 0,
|
|
128
|
+
discount: {
|
|
129
|
+
discount: discounted,
|
|
130
|
+
net: vatNet
|
|
131
|
+
},
|
|
132
|
+
netOfVat: vatNet + Math.abs(discounted),
|
|
131
133
|
vat,
|
|
132
|
-
totalSales: vat > 0 ? subtotal : vatNet + Math.abs(discounted),
|
|
133
|
-
discount: discounted,
|
|
134
134
|
serviceCharge,
|
|
135
135
|
togoCharge,
|
|
136
|
-
|
|
136
|
+
totalAmount: format2(totalAmount),
|
|
137
|
+
bir: {
|
|
138
|
+
vatSales: vat > 0 ? vatNet + Math.abs(discounted) : 0,
|
|
139
|
+
vatExemptSales: vat > 0 ? 0 : vatNet + Math.abs(discounted),
|
|
140
|
+
vatZeroRatedSales: 0,
|
|
141
|
+
nonTaxableSales: 0,
|
|
142
|
+
vat,
|
|
143
|
+
totalSales: vat > 0 ? subtotal : vatNet + Math.abs(discounted),
|
|
144
|
+
discount: discounted,
|
|
145
|
+
serviceCharge,
|
|
146
|
+
togoCharge,
|
|
147
|
+
amountPayable: format2(totalAmount)
|
|
148
|
+
}
|
|
137
149
|
}
|
|
138
150
|
};
|
|
139
151
|
}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
type DiningOption = "FOR_HERE" | "TO_GO";
|
|
2
1
|
type VoucherType = "FIXED" | "PERCENTAGE";
|
|
3
2
|
type DiscountType = "SENIOR" | "PWD" | "NAAC" | "SOLO" | "MOV";
|
|
4
3
|
interface CalculateTotalsInput {
|
|
4
|
+
quantity: number;
|
|
5
5
|
discountableTotalAmount: number;
|
|
6
6
|
nonDiscountableTotalAmount: number;
|
|
7
7
|
serviceChargeableTotalAmount: number;
|
|
@@ -15,36 +15,48 @@ interface CalculateTotalsInput {
|
|
|
15
15
|
togoCharge: number;
|
|
16
16
|
}
|
|
17
17
|
interface CalculateTotalsResult {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
net: number;
|
|
23
|
-
vatNet: number;
|
|
24
|
-
vat: number;
|
|
25
|
-
forBirDiscount: number;
|
|
26
|
-
};
|
|
27
|
-
hasDiscount: boolean;
|
|
28
|
-
discount: {
|
|
29
|
-
discount: number;
|
|
30
|
-
net: number;
|
|
31
|
-
};
|
|
32
|
-
netOfVat: number;
|
|
18
|
+
quantity: number;
|
|
19
|
+
subtotal: number;
|
|
20
|
+
isAddVat: boolean;
|
|
21
|
+
vatNet: number;
|
|
33
22
|
vat: number;
|
|
23
|
+
discounted: number;
|
|
24
|
+
voucherDiscounted: number;
|
|
34
25
|
serviceCharge: number;
|
|
35
26
|
togoCharge: number;
|
|
36
27
|
totalAmount: number;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
28
|
+
receipt: {
|
|
29
|
+
gross: number;
|
|
30
|
+
hasVoucher: boolean;
|
|
31
|
+
voucher: {
|
|
32
|
+
discount: number;
|
|
33
|
+
net: number;
|
|
34
|
+
vatNet: number;
|
|
35
|
+
vat: number;
|
|
36
|
+
forBirDiscount: number;
|
|
37
|
+
};
|
|
38
|
+
hasDiscount: boolean;
|
|
39
|
+
discount: {
|
|
40
|
+
discount: number;
|
|
41
|
+
net: number;
|
|
42
|
+
};
|
|
43
|
+
netOfVat: number;
|
|
42
44
|
vat: number;
|
|
43
|
-
totalSales: number;
|
|
44
|
-
discount: number;
|
|
45
45
|
serviceCharge: number;
|
|
46
46
|
togoCharge: number;
|
|
47
|
-
|
|
47
|
+
totalAmount: number;
|
|
48
|
+
bir: {
|
|
49
|
+
vatSales: number;
|
|
50
|
+
vatExemptSales: number;
|
|
51
|
+
vatZeroRatedSales: number;
|
|
52
|
+
nonTaxableSales: number;
|
|
53
|
+
vat: number;
|
|
54
|
+
totalSales: number;
|
|
55
|
+
discount: number;
|
|
56
|
+
serviceCharge: number;
|
|
57
|
+
togoCharge: number;
|
|
58
|
+
amountPayable: number;
|
|
59
|
+
};
|
|
48
60
|
};
|
|
49
61
|
}
|
|
50
62
|
|
|
@@ -62,4 +74,4 @@ declare function getDiscountBreakdown(discountType: string | null | undefined, d
|
|
|
62
74
|
};
|
|
63
75
|
declare function calculateTotals(input: CalculateTotalsInput): CalculateTotalsResult;
|
|
64
76
|
|
|
65
|
-
export { type CalculateTotalsInput, type CalculateTotalsResult, type
|
|
77
|
+
export { type CalculateTotalsInput, type CalculateTotalsResult, type DiscountType, type VoucherType, calculateTotals, clamp, format2, getDiscountBreakdown, isAddVatAfterDiscount, isVatExemptDiscount, toMoneyNumber };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
type DiningOption = "FOR_HERE" | "TO_GO";
|
|
2
1
|
type VoucherType = "FIXED" | "PERCENTAGE";
|
|
3
2
|
type DiscountType = "SENIOR" | "PWD" | "NAAC" | "SOLO" | "MOV";
|
|
4
3
|
interface CalculateTotalsInput {
|
|
4
|
+
quantity: number;
|
|
5
5
|
discountableTotalAmount: number;
|
|
6
6
|
nonDiscountableTotalAmount: number;
|
|
7
7
|
serviceChargeableTotalAmount: number;
|
|
@@ -15,36 +15,48 @@ interface CalculateTotalsInput {
|
|
|
15
15
|
togoCharge: number;
|
|
16
16
|
}
|
|
17
17
|
interface CalculateTotalsResult {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
net: number;
|
|
23
|
-
vatNet: number;
|
|
24
|
-
vat: number;
|
|
25
|
-
forBirDiscount: number;
|
|
26
|
-
};
|
|
27
|
-
hasDiscount: boolean;
|
|
28
|
-
discount: {
|
|
29
|
-
discount: number;
|
|
30
|
-
net: number;
|
|
31
|
-
};
|
|
32
|
-
netOfVat: number;
|
|
18
|
+
quantity: number;
|
|
19
|
+
subtotal: number;
|
|
20
|
+
isAddVat: boolean;
|
|
21
|
+
vatNet: number;
|
|
33
22
|
vat: number;
|
|
23
|
+
discounted: number;
|
|
24
|
+
voucherDiscounted: number;
|
|
34
25
|
serviceCharge: number;
|
|
35
26
|
togoCharge: number;
|
|
36
27
|
totalAmount: number;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
28
|
+
receipt: {
|
|
29
|
+
gross: number;
|
|
30
|
+
hasVoucher: boolean;
|
|
31
|
+
voucher: {
|
|
32
|
+
discount: number;
|
|
33
|
+
net: number;
|
|
34
|
+
vatNet: number;
|
|
35
|
+
vat: number;
|
|
36
|
+
forBirDiscount: number;
|
|
37
|
+
};
|
|
38
|
+
hasDiscount: boolean;
|
|
39
|
+
discount: {
|
|
40
|
+
discount: number;
|
|
41
|
+
net: number;
|
|
42
|
+
};
|
|
43
|
+
netOfVat: number;
|
|
42
44
|
vat: number;
|
|
43
|
-
totalSales: number;
|
|
44
|
-
discount: number;
|
|
45
45
|
serviceCharge: number;
|
|
46
46
|
togoCharge: number;
|
|
47
|
-
|
|
47
|
+
totalAmount: number;
|
|
48
|
+
bir: {
|
|
49
|
+
vatSales: number;
|
|
50
|
+
vatExemptSales: number;
|
|
51
|
+
vatZeroRatedSales: number;
|
|
52
|
+
nonTaxableSales: number;
|
|
53
|
+
vat: number;
|
|
54
|
+
totalSales: number;
|
|
55
|
+
discount: number;
|
|
56
|
+
serviceCharge: number;
|
|
57
|
+
togoCharge: number;
|
|
58
|
+
amountPayable: number;
|
|
59
|
+
};
|
|
48
60
|
};
|
|
49
61
|
}
|
|
50
62
|
|
|
@@ -62,4 +74,4 @@ declare function getDiscountBreakdown(discountType: string | null | undefined, d
|
|
|
62
74
|
};
|
|
63
75
|
declare function calculateTotals(input: CalculateTotalsInput): CalculateTotalsResult;
|
|
64
76
|
|
|
65
|
-
export { type CalculateTotalsInput, type CalculateTotalsResult, type
|
|
77
|
+
export { type CalculateTotalsInput, type CalculateTotalsResult, type DiscountType, type VoucherType, calculateTotals, clamp, format2, getDiscountBreakdown, isAddVatAfterDiscount, isVatExemptDiscount, toMoneyNumber };
|
package/dist/index.js
CHANGED
|
@@ -72,36 +72,48 @@ function calculateTotals(input) {
|
|
|
72
72
|
}
|
|
73
73
|
if (totalAmount < 0) totalAmount = 0;
|
|
74
74
|
return {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
net: subtotal,
|
|
80
|
-
vatNet: voucherVatNet,
|
|
81
|
-
vat: voucherVat,
|
|
82
|
-
forBirDiscount: -(input.voucherType === "FIXED" ? voucherVatNet - Number(voucherRate.toFixed(2)) : voucherVatNet * Number(voucherRate.toFixed(2)))
|
|
83
|
-
},
|
|
84
|
-
hasDiscount: discountRate > 0,
|
|
85
|
-
discount: {
|
|
86
|
-
discount: discounted,
|
|
87
|
-
net: vatNet
|
|
88
|
-
},
|
|
89
|
-
netOfVat: vatNet + Math.abs(discounted),
|
|
75
|
+
quantity: input.quantity,
|
|
76
|
+
subtotal,
|
|
77
|
+
isAddVat,
|
|
78
|
+
vatNet,
|
|
90
79
|
vat,
|
|
80
|
+
discounted,
|
|
81
|
+
voucherDiscounted,
|
|
91
82
|
serviceCharge,
|
|
92
83
|
togoCharge,
|
|
93
|
-
totalAmount:
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
84
|
+
totalAmount: Number(totalAmount.toFixed(2)),
|
|
85
|
+
receipt: {
|
|
86
|
+
gross: subtotal + Math.abs(voucherDiscounted),
|
|
87
|
+
hasVoucher: voucherRate > 0,
|
|
88
|
+
voucher: {
|
|
89
|
+
discount: voucherDiscounted,
|
|
90
|
+
net: subtotal,
|
|
91
|
+
vatNet: voucherVatNet,
|
|
92
|
+
vat: voucherVat,
|
|
93
|
+
forBirDiscount: -(input.voucherType === "FIXED" ? voucherVatNet - Number(voucherRate.toFixed(2)) : voucherVatNet * Number(voucherRate.toFixed(2)))
|
|
94
|
+
},
|
|
95
|
+
hasDiscount: discountRate > 0,
|
|
96
|
+
discount: {
|
|
97
|
+
discount: discounted,
|
|
98
|
+
net: vatNet
|
|
99
|
+
},
|
|
100
|
+
netOfVat: vatNet + Math.abs(discounted),
|
|
99
101
|
vat,
|
|
100
|
-
totalSales: vat > 0 ? subtotal : vatNet + Math.abs(discounted),
|
|
101
|
-
discount: discounted,
|
|
102
102
|
serviceCharge,
|
|
103
103
|
togoCharge,
|
|
104
|
-
|
|
104
|
+
totalAmount: format2(totalAmount),
|
|
105
|
+
bir: {
|
|
106
|
+
vatSales: vat > 0 ? vatNet + Math.abs(discounted) : 0,
|
|
107
|
+
vatExemptSales: vat > 0 ? 0 : vatNet + Math.abs(discounted),
|
|
108
|
+
vatZeroRatedSales: 0,
|
|
109
|
+
nonTaxableSales: 0,
|
|
110
|
+
vat,
|
|
111
|
+
totalSales: vat > 0 ? subtotal : vatNet + Math.abs(discounted),
|
|
112
|
+
discount: discounted,
|
|
113
|
+
serviceCharge,
|
|
114
|
+
togoCharge,
|
|
115
|
+
amountPayable: format2(totalAmount)
|
|
116
|
+
}
|
|
105
117
|
}
|
|
106
118
|
};
|
|
107
119
|
}
|