shareneus 1.3.8 → 1.3.9
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,62 @@ 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
|
+
if (IsIndependentTax) {
|
|
44
|
+
let NetAmt = (0, aggregation_1.subtraction)(Operation.Amt, Operation.Disc, Operation.RecDisc);
|
|
45
|
+
Operation.AfterLaborDisc = NetAmt;
|
|
46
|
+
Operation.AfterLaborTax = (0, aggregation_1.addition)(Operation.AfterLaborDisc, Operation.CGST, Operation.SGST, Operation.IGST);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
Operation.AfterLaborDisc = (0, aggregation_1.subtraction)(Operation.Amt, Operation.Disc);
|
|
50
|
+
Operation.AfterLaborTax = Operation.AfterLaborDisc;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
return opCodesList;
|
|
54
|
+
}
|
|
55
|
+
static ResetLaborValueIfInvalid(Operation) {
|
|
56
|
+
Operation.Pr = tr_utils_1.TrUtils.SetValueToZeroIfNull(Operation.Pr);
|
|
57
|
+
Operation.RecDisc = tr_utils_1.TrUtils.SetValueToZeroIfNull(Operation.RecDisc);
|
|
58
|
+
Operation.Disc = tr_utils_1.TrUtils.SetValueToZeroIfNull(Operation.Disc);
|
|
59
|
+
Operation.CGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(Operation.CGST);
|
|
60
|
+
Operation.SGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(Operation.SGST);
|
|
61
|
+
Operation.IGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(Operation.IGST);
|
|
62
|
+
return Operation;
|
|
63
|
+
}
|
|
24
64
|
static CheckPartStatusAndReturn(PartsList) {
|
|
25
65
|
PartsList = PartsList.filter((Part) => {
|
|
26
66
|
return Part.Sts !== code_enums_1.POPartStatusEnum.Del && Part.Sts !== code_enums_1.POPartStatusEnum.Deleted;
|
|
@@ -107,13 +147,17 @@ class PurchaseOrderTotalsService {
|
|
|
107
147
|
return [0, 0, 0];
|
|
108
148
|
}
|
|
109
149
|
}
|
|
110
|
-
static GetTotalsInfo(PartsList, IsTaxable, TaxCodes, HasNoTax, GetSubTotal, Discount, DiscInPerc, Adjust) {
|
|
150
|
+
static GetTotalsInfo(PartsList, LaborList, IsTaxable, TaxCodes, HasNoTax, GetSubTotal, Discount, DiscInPerc, Adjust) {
|
|
111
151
|
let finalTotalsData = {};
|
|
112
152
|
let PartsInfo = this.GetPartsTotalTaxAndAfterDiscount(PartsList);
|
|
113
153
|
let PartsTotalAfterDisc = tr_utils_1.TrUtils.SetValueToZeroIfNull(PartsInfo[0]);
|
|
114
154
|
let PartsDiscTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(PartsInfo[1]);
|
|
115
155
|
let PartsTaxTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(PartsInfo[2]);
|
|
116
|
-
|
|
156
|
+
let ServicesInfo = this.GetServiceTotalTaxAndAfterDiscount(LaborList);
|
|
157
|
+
let ServicesTotalAfterDisc = tr_utils_1.TrUtils.SetValueToZeroIfNull(ServicesInfo[0]);
|
|
158
|
+
let ServicesDiscTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(ServicesInfo[1]);
|
|
159
|
+
let ServicesTaxTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(ServicesInfo[2]);
|
|
160
|
+
finalTotalsData.SubTotal = (0, aggregation_1.addition)(PartsTotalAfterDisc, PartsDiscTotal, ServicesTotalAfterDisc, ServicesDiscTotal);
|
|
117
161
|
finalTotalsData.Adj = tr_utils_1.TrUtils.FixPriceValue(Adjust);
|
|
118
162
|
// if (GetSubTotal) {
|
|
119
163
|
// finalTotalsData.SubTotal = this.GetTotalBasedOnTaxType(PartsTotalAfterDisc, PartsTaxTotal,
|
|
@@ -129,12 +173,23 @@ class PurchaseOrderTotalsService {
|
|
|
129
173
|
// }
|
|
130
174
|
// finalTotalsData.Total = Total;
|
|
131
175
|
// } else {
|
|
132
|
-
finalTotalsData.Total = this.GetTotalBasedOnTaxType(PartsTotalAfterDisc, PartsTaxTotal, IsTaxable, Adjust);
|
|
176
|
+
finalTotalsData.Total = this.GetTotalBasedOnTaxType(PartsTotalAfterDisc, PartsTaxTotal, ServicesTotalAfterDisc, ServicesTaxTotal, IsTaxable, Adjust);
|
|
133
177
|
// }
|
|
134
178
|
// finalTotalsData.Round = TrUtils.FixedTo(Math.round(finalTotalsData.Total) - finalTotalsData.Total);
|
|
135
179
|
// finalTotalsData.Total = Math.round(finalTotalsData.Total);
|
|
136
180
|
return finalTotalsData;
|
|
137
181
|
}
|
|
182
|
+
static GetServiceTotalTaxAndAfterDiscount(LaborList) {
|
|
183
|
+
let ServicesTotalAfterDisc = 0;
|
|
184
|
+
let ServicesDiscountedTotal = 0;
|
|
185
|
+
let TotalTaxAmt = 0;
|
|
186
|
+
LaborList.forEach((Part) => {
|
|
187
|
+
ServicesTotalAfterDisc = (0, aggregation_1.addition)(ServicesTotalAfterDisc, Part.AfterLaborDisc);
|
|
188
|
+
ServicesDiscountedTotal = (0, aggregation_1.addition)(ServicesDiscountedTotal, Part.DiscountedPrice);
|
|
189
|
+
TotalTaxAmt = (0, aggregation_1.addition)(TotalTaxAmt, Part.GSTAmt);
|
|
190
|
+
});
|
|
191
|
+
return [ServicesTotalAfterDisc, ServicesDiscountedTotal, TotalTaxAmt];
|
|
192
|
+
}
|
|
138
193
|
static GetPartsTotalTaxAndAfterDiscount(PartsList) {
|
|
139
194
|
let PartsTotalAfterDisc = 0;
|
|
140
195
|
let PartsDiscountedTotal = 0;
|
|
@@ -146,24 +201,29 @@ class PurchaseOrderTotalsService {
|
|
|
146
201
|
});
|
|
147
202
|
return [PartsTotalAfterDisc, PartsDiscountedTotal, TotalTaxAmt];
|
|
148
203
|
}
|
|
149
|
-
static GetTotalBasedOnTaxType(PartsTotalAfterDisc, PartsTaxAmount, IsTaxable, Adjust) {
|
|
204
|
+
static GetTotalBasedOnTaxType(PartsTotalAfterDisc, PartsTaxAmount, ServicesTotalAfterDisc, ServicesTaxTotal, IsTaxable, Adjust) {
|
|
150
205
|
let Total = 0;
|
|
151
206
|
if (IsTaxable) {
|
|
152
|
-
Total = (0, aggregation_1.addition)(PartsTotalAfterDisc, PartsTaxAmount);
|
|
207
|
+
Total = (0, aggregation_1.addition)(PartsTotalAfterDisc, PartsTaxAmount, ServicesTotalAfterDisc, ServicesTaxTotal);
|
|
153
208
|
}
|
|
154
209
|
else {
|
|
155
|
-
Total = PartsTotalAfterDisc;
|
|
210
|
+
Total = (0, aggregation_1.addition)(PartsTotalAfterDisc, ServicesTotalAfterDisc);
|
|
156
211
|
}
|
|
157
212
|
let finalTotal = (0, aggregation_1.addition)(Total, tr_utils_1.TrUtils.SetValueToZeroIfNull(Adjust));
|
|
158
213
|
return tr_utils_1.TrUtils.FixedTo(finalTotal);
|
|
159
214
|
}
|
|
160
|
-
static GetDetailedTotalsData(finalTotalsData, IsTaxable, PartsList, TaxCodes, Tax, HasNoTax) {
|
|
215
|
+
static GetDetailedTotalsData(finalTotalsData, IsTaxable, PartsList, LaborList, TaxCodes, Tax, HasNoTax) {
|
|
161
216
|
let PartsInfo = this.GetPartsTotalTaxAndAfterDiscount(PartsList);
|
|
217
|
+
let ServicesInfo = this.GetServiceTotalTaxAndAfterDiscount(LaborList);
|
|
162
218
|
finalTotalsData.PartsDiscTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(PartsInfo[1]);
|
|
163
219
|
finalTotalsData.PartsTotalAfterDisc = tr_utils_1.TrUtils.SetValueToZeroIfNull(PartsInfo[0]);
|
|
164
220
|
finalTotalsData.PartsTotalBeforeDisc = (0, aggregation_1.addition)(finalTotalsData.PartsTotalAfterDisc, finalTotalsData.PartsDiscTotal);
|
|
165
221
|
// finalTotalsData.TaxTotal = this.GetPartsTaxTotal(PartsList);
|
|
166
222
|
finalTotalsData.TaxTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(PartsInfo[2]);
|
|
223
|
+
finalTotalsData.ServiceTotalAfterDisc = tr_utils_1.TrUtils.SetValueToZeroIfNull(ServicesInfo[0]);
|
|
224
|
+
finalTotalsData.ServiceDiscTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(ServicesInfo[1]);
|
|
225
|
+
finalTotalsData.ServiceTaxTotal = tr_utils_1.TrUtils.SetValueToZeroIfNull(ServicesInfo[2]);
|
|
226
|
+
finalTotalsData.ServiceTotalBeforeDisc = (0, aggregation_1.addition)(finalTotalsData.ServiceTotalAfterDisc, finalTotalsData.ServiceDiscTotal);
|
|
167
227
|
let TaxAmt = this.GetPartGSTTaxTotal(PartsList);
|
|
168
228
|
// finalTotalsData.PartCGST = this.GetPartCGSTTaxTotal(PartsList);
|
|
169
229
|
// finalTotalsData.PartIGST = this.GetPartIGSTTaxTotal(PartsList);
|
|
@@ -171,7 +231,12 @@ class PurchaseOrderTotalsService {
|
|
|
171
231
|
finalTotalsData.PartCGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxAmt[0]);
|
|
172
232
|
finalTotalsData.PartSGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxAmt[1]);
|
|
173
233
|
finalTotalsData.PartIGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxAmt[2]);
|
|
234
|
+
let ServiceTaxAmt = this.GetServicesGSTTaxTotal(LaborList);
|
|
235
|
+
finalTotalsData.ServieCGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxAmt[0]);
|
|
236
|
+
finalTotalsData.ServieSGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxAmt[1]);
|
|
237
|
+
finalTotalsData.ServieIGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxAmt[2]);
|
|
174
238
|
finalTotalsData.PartAfterTax = (0, aggregation_1.addition)(finalTotalsData.PartsTotalAfterDisc, finalTotalsData.TaxTotal);
|
|
239
|
+
finalTotalsData.ServiceAfterTax = (0, aggregation_1.addition)(finalTotalsData.ServiceTotalAfterDisc, finalTotalsData.ServiceTaxTotal);
|
|
175
240
|
finalTotalsData.IsTaxable = IsTaxable;
|
|
176
241
|
finalTotalsData.Tax = Tax;
|
|
177
242
|
finalTotalsData.HasNoTax = HasNoTax;
|
|
@@ -193,6 +258,17 @@ class PurchaseOrderTotalsService {
|
|
|
193
258
|
});
|
|
194
259
|
return [CGSTAmt, SGSTAmt, IGSTAmt];
|
|
195
260
|
}
|
|
261
|
+
static GetServicesGSTTaxTotal(ServicesList) {
|
|
262
|
+
let CGSTAmt = 0;
|
|
263
|
+
let SGSTAmt = 0;
|
|
264
|
+
let IGSTAmt = 0;
|
|
265
|
+
ServicesList.forEach((labor) => {
|
|
266
|
+
CGSTAmt = (0, aggregation_1.addition)(CGSTAmt, labor.CGST);
|
|
267
|
+
SGSTAmt = (0, aggregation_1.addition)(SGSTAmt, labor.SGST);
|
|
268
|
+
IGSTAmt = (0, aggregation_1.addition)(IGSTAmt, labor.IGST);
|
|
269
|
+
});
|
|
270
|
+
return [CGSTAmt, SGSTAmt, IGSTAmt];
|
|
271
|
+
}
|
|
196
272
|
static GetPartsTaxGroupingFor(PartsList, TaxCodes) {
|
|
197
273
|
return this.GetTaxGroupingForPartsByHSN(tr_utils_1.TrUtils.Stringify(PartsList), TaxCodes);
|
|
198
274
|
}
|