shareneus 1.3.8 → 1.4.0
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.
|
@@ -43,10 +43,10 @@ class PurchaseOrderPrintService {
|
|
|
43
43
|
PurchaseOrderPDFData.Items = this.GetQtyWithUoM(PurchaseOrderPDFData.Items);
|
|
44
44
|
let DetailedTotalsInfo;
|
|
45
45
|
if (IsFormPO) {
|
|
46
|
-
DetailedTotalsInfo = purchase_order_totals_service_1.PurchaseOrderTotalsService.GetTotalsValue(PurchaseOrderPDFData.Items, IsTaxable, true, TaxCodes, PurchaseOrderPDFData.Tax, true, PurchaseOrderPDFData.HasNoTax, false, 0, false, PurchaseOrderPDFData.Adjust);
|
|
46
|
+
DetailedTotalsInfo = purchase_order_totals_service_1.PurchaseOrderTotalsService.GetTotalsValue(PurchaseOrderPDFData.Ops, PurchaseOrderPDFData.Items, IsTaxable, true, TaxCodes, PurchaseOrderPDFData.Tax, true, PurchaseOrderPDFData.HasNoTax, false, 0, false, PurchaseOrderPDFData.Adjust);
|
|
47
47
|
}
|
|
48
48
|
else {
|
|
49
|
-
DetailedTotalsInfo = purchase_order_totals_service_1.PurchaseOrderTotalsService.GetTotalsValue(PurchaseOrderPDFData.Items, IsTaxable, true, TaxCodes, PurchaseOrderPDFData.Tax, true, PurchaseOrderPDFData.HasNoTax, true, PurchaseOrderData.Disc, PurchaseOrderData.Perc, PurchaseOrderPDFData.Adjust);
|
|
49
|
+
DetailedTotalsInfo = purchase_order_totals_service_1.PurchaseOrderTotalsService.GetTotalsValue(PurchaseOrderPDFData.Ops, PurchaseOrderPDFData.Items, IsTaxable, true, TaxCodes, PurchaseOrderPDFData.Tax, true, PurchaseOrderPDFData.HasNoTax, true, PurchaseOrderData.Disc, PurchaseOrderData.Perc, PurchaseOrderPDFData.Adjust);
|
|
50
50
|
}
|
|
51
51
|
PurchaseOrderPDFData = this.ConcatTotalsInfo(PurchaseOrderPDFData, DetailedTotalsInfo);
|
|
52
52
|
PurchaseOrderPDFData.Entity = shared_print_service_1.PrintSharedService.GetFormattedEntityDataForPrint(EntityData, code_enums_1.PrintTypesEnum.PurOrder, PurchaseOrderData);
|
|
@@ -5,22 +5,63 @@ const aggregation_1 = require("../aggregation/aggregation");
|
|
|
5
5
|
const code_enums_1 = require("../enums/code-enums");
|
|
6
6
|
const tr_utils_1 = require("../utils/tr-utils");
|
|
7
7
|
class PurchaseOrderTotalsService {
|
|
8
|
-
static GetTotalsValue(argPartsList, IsTaxable, DetailedTotalsInfo, TaxCodes, Tax, ReturnPartsAlso, HasNoTax, GetSubTotal, Discount, DiscInPerc, Adjust) {
|
|
8
|
+
static GetTotalsValue(opCodesList, argPartsList, IsTaxable, DetailedTotalsInfo, TaxCodes, Tax, ReturnPartsAlso, HasNoTax, GetSubTotal, Discount, DiscInPerc, Adjust) {
|
|
9
9
|
let PartsList = tr_utils_1.TrUtils.IsNull(argPartsList) ? [] : tr_utils_1.TrUtils.Stringify(argPartsList);
|
|
10
10
|
// PartsList = this.ResetPartValuesIfInvalid(PartsList);
|
|
11
11
|
// PartsList = this.GetPartsDiscountPrice(PartsList);
|
|
12
12
|
// PartsList = this.GetPartsAfterDiscount(PartsList);
|
|
13
|
+
if (tr_utils_1.TrUtils.IsNull(opCodesList)) {
|
|
14
|
+
opCodesList = [];
|
|
15
|
+
}
|
|
16
|
+
opCodesList = this.CalculateLaborValues(opCodesList, IsTaxable);
|
|
13
17
|
PartsList = this.GetPartsTaxAmount(PartsList, IsTaxable, TaxCodes);
|
|
14
18
|
// PartsList = this.GetPartsAfterTax(PartsList);
|
|
15
|
-
let finalTotalsData = this.GetTotalsInfo(PartsList, IsTaxable, TaxCodes, HasNoTax, GetSubTotal, Discount, DiscInPerc, Adjust);
|
|
19
|
+
let finalTotalsData = this.GetTotalsInfo(PartsList, opCodesList, IsTaxable, TaxCodes, HasNoTax, GetSubTotal, Discount, DiscInPerc, Adjust);
|
|
16
20
|
if (ReturnPartsAlso) {
|
|
21
|
+
finalTotalsData.Ops = opCodesList;
|
|
17
22
|
finalTotalsData.Items = PartsList;
|
|
18
23
|
}
|
|
19
24
|
if (DetailedTotalsInfo === true) {
|
|
20
|
-
finalTotalsData = this.GetDetailedTotalsData(finalTotalsData, IsTaxable, PartsList, TaxCodes, Tax, HasNoTax);
|
|
25
|
+
finalTotalsData = this.GetDetailedTotalsData(finalTotalsData, IsTaxable, PartsList, opCodesList, TaxCodes, Tax, HasNoTax);
|
|
21
26
|
}
|
|
22
27
|
return finalTotalsData;
|
|
23
28
|
}
|
|
29
|
+
static CalculateLaborValues(opCodesList, IsIndependentTax) {
|
|
30
|
+
opCodesList = this.ResetLaborValues(opCodesList, IsIndependentTax);
|
|
31
|
+
// opCodesList = this.GetOperationsDiscountPrice(opCodesList);
|
|
32
|
+
// opCodesList = this.GetOperationsAfterDiscount(opCodesList,IsIndependentTax);
|
|
33
|
+
// opCodesList = this.GetOperationsAfterTax(opCodesList, IsIndependentTax);
|
|
34
|
+
return opCodesList;
|
|
35
|
+
}
|
|
36
|
+
static ResetLaborValues(opCodesList, IsIndependentTax) {
|
|
37
|
+
opCodesList.forEach((Operation) => {
|
|
38
|
+
Operation = this.ResetLaborValueIfInvalid(Operation);
|
|
39
|
+
Operation.DiscountedPrice = (0, aggregation_1.addition)(Operation.Disc, Operation.RecDisc);
|
|
40
|
+
if (tr_utils_1.TrUtils.IsNull(Operation.Amt)) {
|
|
41
|
+
Operation.Amt = Operation.Pr;
|
|
42
|
+
}
|
|
43
|
+
Operation.GSTAmt = (0, aggregation_1.addition)(Operation.SGST, Operation.CGST, Operation.IGST);
|
|
44
|
+
if (IsIndependentTax) {
|
|
45
|
+
let NetAmt = (0, aggregation_1.subtraction)(Operation.Amt, Operation.Disc, Operation.RecDisc);
|
|
46
|
+
Operation.AfterLaborDisc = NetAmt;
|
|
47
|
+
Operation.AfterLaborTax = (0, aggregation_1.addition)(Operation.AfterLaborDisc, Operation.CGST, Operation.SGST, Operation.IGST);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
Operation.AfterLaborDisc = (0, aggregation_1.subtraction)(Operation.Amt, Operation.Disc);
|
|
51
|
+
Operation.AfterLaborTax = Operation.AfterLaborDisc;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return opCodesList;
|
|
55
|
+
}
|
|
56
|
+
static ResetLaborValueIfInvalid(Operation) {
|
|
57
|
+
Operation.Pr = tr_utils_1.TrUtils.SetValueToZeroIfNull(Operation.Pr);
|
|
58
|
+
Operation.RecDisc = tr_utils_1.TrUtils.SetValueToZeroIfNull(Operation.RecDisc);
|
|
59
|
+
Operation.Disc = tr_utils_1.TrUtils.SetValueToZeroIfNull(Operation.Disc);
|
|
60
|
+
Operation.CGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(Operation.CGST);
|
|
61
|
+
Operation.SGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(Operation.SGST);
|
|
62
|
+
Operation.IGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(Operation.IGST);
|
|
63
|
+
return Operation;
|
|
64
|
+
}
|
|
24
65
|
static CheckPartStatusAndReturn(PartsList) {
|
|
25
66
|
PartsList = PartsList.filter((Part) => {
|
|
26
67
|
return Part.Sts !== code_enums_1.POPartStatusEnum.Del && Part.Sts !== code_enums_1.POPartStatusEnum.Deleted;
|
|
@@ -107,13 +148,17 @@ class PurchaseOrderTotalsService {
|
|
|
107
148
|
return [0, 0, 0];
|
|
108
149
|
}
|
|
109
150
|
}
|
|
110
|
-
static GetTotalsInfo(PartsList, IsTaxable, TaxCodes, HasNoTax, GetSubTotal, Discount, DiscInPerc, Adjust) {
|
|
151
|
+
static GetTotalsInfo(PartsList, LaborList, IsTaxable, TaxCodes, HasNoTax, GetSubTotal, Discount, DiscInPerc, Adjust) {
|
|
111
152
|
let finalTotalsData = {};
|
|
112
153
|
let PartsInfo = this.GetPartsTotalTaxAndAfterDiscount(PartsList);
|
|
113
154
|
let PartsTotalAfterDisc = tr_utils_1.TrUtils.SetValueToZeroIfNull(PartsInfo[0]);
|
|
114
155
|
let PartsDiscTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(PartsInfo[1]);
|
|
115
156
|
let PartsTaxTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(PartsInfo[2]);
|
|
116
|
-
|
|
157
|
+
let ServicesInfo = this.GetServiceTotalTaxAndAfterDiscount(LaborList);
|
|
158
|
+
let ServicesTotalAfterDisc = tr_utils_1.TrUtils.SetValueToZeroIfNull(ServicesInfo[0]);
|
|
159
|
+
let ServicesDiscTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(ServicesInfo[1]);
|
|
160
|
+
let ServicesTaxTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(ServicesInfo[2]);
|
|
161
|
+
finalTotalsData.SubTotal = (0, aggregation_1.addition)(PartsTotalAfterDisc, PartsDiscTotal, ServicesTotalAfterDisc, ServicesDiscTotal);
|
|
117
162
|
finalTotalsData.Adj = tr_utils_1.TrUtils.FixPriceValue(Adjust);
|
|
118
163
|
// if (GetSubTotal) {
|
|
119
164
|
// finalTotalsData.SubTotal = this.GetTotalBasedOnTaxType(PartsTotalAfterDisc, PartsTaxTotal,
|
|
@@ -129,12 +174,23 @@ class PurchaseOrderTotalsService {
|
|
|
129
174
|
// }
|
|
130
175
|
// finalTotalsData.Total = Total;
|
|
131
176
|
// } else {
|
|
132
|
-
finalTotalsData.Total = this.GetTotalBasedOnTaxType(PartsTotalAfterDisc, PartsTaxTotal, IsTaxable, Adjust);
|
|
177
|
+
finalTotalsData.Total = this.GetTotalBasedOnTaxType(PartsTotalAfterDisc, PartsTaxTotal, ServicesTotalAfterDisc, ServicesTaxTotal, IsTaxable, Adjust);
|
|
133
178
|
// }
|
|
134
179
|
// finalTotalsData.Round = TrUtils.FixedTo(Math.round(finalTotalsData.Total) - finalTotalsData.Total);
|
|
135
180
|
// finalTotalsData.Total = Math.round(finalTotalsData.Total);
|
|
136
181
|
return finalTotalsData;
|
|
137
182
|
}
|
|
183
|
+
static GetServiceTotalTaxAndAfterDiscount(LaborList) {
|
|
184
|
+
let ServicesTotalAfterDisc = 0;
|
|
185
|
+
let ServicesDiscountedTotal = 0;
|
|
186
|
+
let TotalTaxAmt = 0;
|
|
187
|
+
LaborList.forEach((Part) => {
|
|
188
|
+
ServicesTotalAfterDisc = (0, aggregation_1.addition)(ServicesTotalAfterDisc, Part.AfterLaborDisc);
|
|
189
|
+
ServicesDiscountedTotal = (0, aggregation_1.addition)(ServicesDiscountedTotal, Part.DiscountedPrice);
|
|
190
|
+
TotalTaxAmt = (0, aggregation_1.addition)(TotalTaxAmt, Part.GSTAmt);
|
|
191
|
+
});
|
|
192
|
+
return [ServicesTotalAfterDisc, ServicesDiscountedTotal, TotalTaxAmt];
|
|
193
|
+
}
|
|
138
194
|
static GetPartsTotalTaxAndAfterDiscount(PartsList) {
|
|
139
195
|
let PartsTotalAfterDisc = 0;
|
|
140
196
|
let PartsDiscountedTotal = 0;
|
|
@@ -146,24 +202,29 @@ class PurchaseOrderTotalsService {
|
|
|
146
202
|
});
|
|
147
203
|
return [PartsTotalAfterDisc, PartsDiscountedTotal, TotalTaxAmt];
|
|
148
204
|
}
|
|
149
|
-
static GetTotalBasedOnTaxType(PartsTotalAfterDisc, PartsTaxAmount, IsTaxable, Adjust) {
|
|
205
|
+
static GetTotalBasedOnTaxType(PartsTotalAfterDisc, PartsTaxAmount, ServicesTotalAfterDisc, ServicesTaxTotal, IsTaxable, Adjust) {
|
|
150
206
|
let Total = 0;
|
|
151
207
|
if (IsTaxable) {
|
|
152
|
-
Total = (0, aggregation_1.addition)(PartsTotalAfterDisc, PartsTaxAmount);
|
|
208
|
+
Total = (0, aggregation_1.addition)(PartsTotalAfterDisc, PartsTaxAmount, ServicesTotalAfterDisc, ServicesTaxTotal);
|
|
153
209
|
}
|
|
154
210
|
else {
|
|
155
|
-
Total = PartsTotalAfterDisc;
|
|
211
|
+
Total = (0, aggregation_1.addition)(PartsTotalAfterDisc, ServicesTotalAfterDisc);
|
|
156
212
|
}
|
|
157
213
|
let finalTotal = (0, aggregation_1.addition)(Total, tr_utils_1.TrUtils.SetValueToZeroIfNull(Adjust));
|
|
158
214
|
return tr_utils_1.TrUtils.FixedTo(finalTotal);
|
|
159
215
|
}
|
|
160
|
-
static GetDetailedTotalsData(finalTotalsData, IsTaxable, PartsList, TaxCodes, Tax, HasNoTax) {
|
|
216
|
+
static GetDetailedTotalsData(finalTotalsData, IsTaxable, PartsList, LaborList, TaxCodes, Tax, HasNoTax) {
|
|
161
217
|
let PartsInfo = this.GetPartsTotalTaxAndAfterDiscount(PartsList);
|
|
218
|
+
let ServicesInfo = this.GetServiceTotalTaxAndAfterDiscount(LaborList);
|
|
162
219
|
finalTotalsData.PartsDiscTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(PartsInfo[1]);
|
|
163
220
|
finalTotalsData.PartsTotalAfterDisc = tr_utils_1.TrUtils.SetValueToZeroIfNull(PartsInfo[0]);
|
|
164
221
|
finalTotalsData.PartsTotalBeforeDisc = (0, aggregation_1.addition)(finalTotalsData.PartsTotalAfterDisc, finalTotalsData.PartsDiscTotal);
|
|
165
222
|
// finalTotalsData.TaxTotal = this.GetPartsTaxTotal(PartsList);
|
|
166
223
|
finalTotalsData.TaxTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(PartsInfo[2]);
|
|
224
|
+
finalTotalsData.ServiceTotalAfterDisc = tr_utils_1.TrUtils.SetValueToZeroIfNull(ServicesInfo[0]);
|
|
225
|
+
finalTotalsData.ServiceDiscTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(ServicesInfo[1]);
|
|
226
|
+
finalTotalsData.ServiceTaxTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(ServicesInfo[2]);
|
|
227
|
+
finalTotalsData.ServiceTotalBeforeDisc = (0, aggregation_1.addition)(finalTotalsData.ServiceTotalAfterDisc, finalTotalsData.ServiceDiscTotal);
|
|
167
228
|
let TaxAmt = this.GetPartGSTTaxTotal(PartsList);
|
|
168
229
|
// finalTotalsData.PartCGST = this.GetPartCGSTTaxTotal(PartsList);
|
|
169
230
|
// finalTotalsData.PartIGST = this.GetPartIGSTTaxTotal(PartsList);
|
|
@@ -171,7 +232,12 @@ class PurchaseOrderTotalsService {
|
|
|
171
232
|
finalTotalsData.PartCGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxAmt[0]);
|
|
172
233
|
finalTotalsData.PartSGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxAmt[1]);
|
|
173
234
|
finalTotalsData.PartIGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxAmt[2]);
|
|
235
|
+
let ServiceTaxAmt = this.GetServicesGSTTaxTotal(LaborList);
|
|
236
|
+
finalTotalsData.ServieCGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxAmt[0]);
|
|
237
|
+
finalTotalsData.ServieSGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxAmt[1]);
|
|
238
|
+
finalTotalsData.ServieIGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxAmt[2]);
|
|
174
239
|
finalTotalsData.PartAfterTax = (0, aggregation_1.addition)(finalTotalsData.PartsTotalAfterDisc, finalTotalsData.TaxTotal);
|
|
240
|
+
finalTotalsData.ServiceAfterTax = (0, aggregation_1.addition)(finalTotalsData.ServiceTotalAfterDisc, finalTotalsData.ServiceTaxTotal);
|
|
175
241
|
finalTotalsData.IsTaxable = IsTaxable;
|
|
176
242
|
finalTotalsData.Tax = Tax;
|
|
177
243
|
finalTotalsData.HasNoTax = HasNoTax;
|
|
@@ -193,6 +259,17 @@ class PurchaseOrderTotalsService {
|
|
|
193
259
|
});
|
|
194
260
|
return [CGSTAmt, SGSTAmt, IGSTAmt];
|
|
195
261
|
}
|
|
262
|
+
static GetServicesGSTTaxTotal(ServicesList) {
|
|
263
|
+
let CGSTAmt = 0;
|
|
264
|
+
let SGSTAmt = 0;
|
|
265
|
+
let IGSTAmt = 0;
|
|
266
|
+
ServicesList.forEach((labor) => {
|
|
267
|
+
CGSTAmt = (0, aggregation_1.addition)(CGSTAmt, labor.CGST);
|
|
268
|
+
SGSTAmt = (0, aggregation_1.addition)(SGSTAmt, labor.SGST);
|
|
269
|
+
IGSTAmt = (0, aggregation_1.addition)(IGSTAmt, labor.IGST);
|
|
270
|
+
});
|
|
271
|
+
return [CGSTAmt, SGSTAmt, IGSTAmt];
|
|
272
|
+
}
|
|
196
273
|
static GetPartsTaxGroupingFor(PartsList, TaxCodes) {
|
|
197
274
|
return this.GetTaxGroupingForPartsByHSN(tr_utils_1.TrUtils.Stringify(PartsList), TaxCodes);
|
|
198
275
|
}
|