shareneus 1.0.5

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.
Files changed (125) hide show
  1. package/dist/aggregation/aggregation.js +60 -0
  2. package/dist/enums/cache-enums.js +37 -0
  3. package/dist/enums/code-enums.js +288 -0
  4. package/dist/enums/enums.js +362 -0
  5. package/dist/enums/industry-enums.js +24 -0
  6. package/dist/excel-files/GSTR-RO-excel.service.js +935 -0
  7. package/dist/excel-files/GSTR1-excel.service.js +295 -0
  8. package/dist/excel-files/GSTR2-excel.service.js +295 -0
  9. package/dist/excel-files/analysis-excel.service.js +297 -0
  10. package/dist/excel-files/category-wise-item-excel.service.js +274 -0
  11. package/dist/excel-files/cust-balance-excel.service.js +287 -0
  12. package/dist/excel-files/cust-wise-sales-details.js +320 -0
  13. package/dist/excel-files/cust-wise-sales-summary-excel.service.js +302 -0
  14. package/dist/excel-files/expiring-drugs-excel.service.js +292 -0
  15. package/dist/excel-files/insurance-expire-excel.service.js +301 -0
  16. package/dist/excel-files/invoice-wise-excel.service.js +857 -0
  17. package/dist/excel-files/item-wise-doctor-sale-excel.service.js +258 -0
  18. package/dist/excel-files/item-wise-mout-details.js +292 -0
  19. package/dist/excel-files/item-wise-mout-summary.js +286 -0
  20. package/dist/excel-files/items-wise-sales-excel.service.js +314 -0
  21. package/dist/excel-files/manf-wise-sales-excel.service.js +276 -0
  22. package/dist/excel-files/operator-wise-details.js +265 -0
  23. package/dist/excel-files/operator-wise-summary.js +266 -0
  24. package/dist/excel-files/payment-receive-excel.service.js +225 -0
  25. package/dist/excel-files/payments-made-excel.service.js +302 -0
  26. package/dist/excel-files/repair-orders-excel.service.js +255 -0
  27. package/dist/excel-files/sa-wise-labor-sales-excel.service.js +232 -0
  28. package/dist/excel-files/sa-wise-part-sales-excel.service.js +232 -0
  29. package/dist/excel-files/sale-summary-excel.service.js +326 -0
  30. package/dist/excel-files/sales-by-service-details-excel.service.js +1 -0
  31. package/dist/excel-files/sales-by-service-summary-excel.service.js +422 -0
  32. package/dist/excel-files/scheduled-drug-summary-excel.service.js +367 -0
  33. package/dist/excel-files/scheduled-drugs-excel.service.js +366 -0
  34. package/dist/excel-files/spares-issue-excel.service.js +492 -0
  35. package/dist/excel-files/stock-excel.service.js +283 -0
  36. package/dist/excel-files/tally-sales-import.service.js +765 -0
  37. package/dist/excel-files/ven-balance-excel.service.js +293 -0
  38. package/dist/index.js +237 -0
  39. package/dist/services/analysis-pdf.service.js +105 -0
  40. package/dist/services/appointment-total.service.js +253 -0
  41. package/dist/services/auto-sales-receipt-pdf.service.js +539 -0
  42. package/dist/services/category-wise-item-pdf.service.js +98 -0
  43. package/dist/services/checklist-pdf.js +140 -0
  44. package/dist/services/checklists-pdf.js +124 -0
  45. package/dist/services/cn-print.service.js +211 -0
  46. package/dist/services/consultation-fee-receipt.service.js +378 -0
  47. package/dist/services/consultation-full-pdf.service.js +220 -0
  48. package/dist/services/consultation-pdf.service.js +360 -0
  49. package/dist/services/credit-note-pdf.service.js +578 -0
  50. package/dist/services/credit-note-totals.service.js +328 -0
  51. package/dist/services/cust-wise-sales-details-pdf.service.js +118 -0
  52. package/dist/services/cust-wise-sales-summary-pdf.service.js +111 -0
  53. package/dist/services/customer-balances-pdf.service.js +169 -0
  54. package/dist/services/dc-landscape-pdf.service.js +903 -0
  55. package/dist/services/dc-landscape-without-price-pdf.service.js +853 -0
  56. package/dist/services/dc-without-price-pdf.service.js +489 -0
  57. package/dist/services/debit-note-pdf.service.js +673 -0
  58. package/dist/services/debit-note-print.service.js +234 -0
  59. package/dist/services/debit-note-totals.service.js +293 -0
  60. package/dist/services/delivery-challan-pdf.service.js +434 -0
  61. package/dist/services/delivery-challan-print.service.js +177 -0
  62. package/dist/services/delivery-challan-totals.js +339 -0
  63. package/dist/services/equipment-design-pdf.service.js +144 -0
  64. package/dist/services/est.print-service.js +1053 -0
  65. package/dist/services/expiring-drugs-pdf.service.js +156 -0
  66. package/dist/services/hc-inv-pdf.service.js +837 -0
  67. package/dist/services/insurance-expire-pdf.service.js +99 -0
  68. package/dist/services/inv-pdf.service.js +785 -0
  69. package/dist/services/inv-print.service.js +415 -0
  70. package/dist/services/invoice-landscape-pdf.service.js +909 -0
  71. package/dist/services/invoice-total.service.js +659 -0
  72. package/dist/services/issue-parts-pdf.service.js +763 -0
  73. package/dist/services/item-detais-pdf.js +136 -0
  74. package/dist/services/item-wise-doctor-sale-pdf.service.js +164 -0
  75. package/dist/services/item-wise-mout-details-pdf.js +107 -0
  76. package/dist/services/item-wise-mout-summary-pdf.js +99 -0
  77. package/dist/services/item-wise-sales-pdf.service.js +178 -0
  78. package/dist/services/manf-wise-sales-pdf.service.js +173 -0
  79. package/dist/services/meeting-pdf.js +369 -0
  80. package/dist/services/mout-pdf.service.js +503 -0
  81. package/dist/services/operator-wise-details-pdf.service.js +103 -0
  82. package/dist/services/operator-wise-summary-pdf.js +101 -0
  83. package/dist/services/pack-ship-pdf.service.js +105 -0
  84. package/dist/services/pack-ship-print.service.js +167 -0
  85. package/dist/services/payment-pdf.service.js +373 -0
  86. package/dist/services/payment-report-pdf.service.js +106 -0
  87. package/dist/services/po-totals.service.js +279 -0
  88. package/dist/services/pos-receipt-pdf.js +438 -0
  89. package/dist/services/purchase-order-pdf.service.js +924 -0
  90. package/dist/services/purchase-order-print.service.js +150 -0
  91. package/dist/services/purchase-order-totals.service.js +280 -0
  92. package/dist/services/receipt-print.service.js +50 -0
  93. package/dist/services/reorder-point-pdf.service.js +151 -0
  94. package/dist/services/repair-orders-pdf.service.js +172 -0
  95. package/dist/services/ro-pdf.service.js +1764 -0
  96. package/dist/services/ro-print-service.js +737 -0
  97. package/dist/services/ro-totals.service.js +1241 -0
  98. package/dist/services/sales-by-service-pdf.service.js +116 -0
  99. package/dist/services/sales-pdf.service.js +630 -0
  100. package/dist/services/sales-print.service.js +305 -0
  101. package/dist/services/sales-receipt-pdf.service.js +611 -0
  102. package/dist/services/sales-receipt-print.service.js +425 -0
  103. package/dist/services/sales-totals.service.js +339 -0
  104. package/dist/services/scheduled-drug-pdf.service.js +176 -0
  105. package/dist/services/scheduled-drug-summary-pdf.service.js +188 -0
  106. package/dist/services/separate-wo-print.service.js +351 -0
  107. package/dist/services/shared-inv-pdf.service.js +763 -0
  108. package/dist/services/shared-pdf.service.js +2569 -0
  109. package/dist/services/shared-print.service.js +885 -0
  110. package/dist/services/task-pdf.service.js +220 -0
  111. package/dist/services/task-reports-pdf.service.js +296 -0
  112. package/dist/services/technician-pdf.service.js +238 -0
  113. package/dist/services/technician-print.service.js +87 -0
  114. package/dist/services/transfer-order-pdf.service.js +139 -0
  115. package/dist/services/vendor-balances-pdf.service.js +101 -0
  116. package/dist/services/vendor-credit-note-pdf.service.js +1007 -0
  117. package/dist/services/vendor-credit-note-print.service.js +104 -0
  118. package/dist/services/vendor-credit-note-totals.service.js +327 -0
  119. package/dist/services/vendor-debit-note-pdf.service.js +561 -0
  120. package/dist/services/vendor-debit-note-print.service.js +245 -0
  121. package/dist/services/vendor-debit-note-totals.service.js +305 -0
  122. package/dist/utils/my-date.js +652 -0
  123. package/dist/utils/tr-utils.js +354 -0
  124. package/package.json +24 -0
  125. package/tsconfig.json +109 -0
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VendorCreditNotePrintService = void 0;
4
+ const code_enums_1 = require("../enums/code-enums");
5
+ const my_date_1 = require("../utils/my-date");
6
+ const tr_utils_1 = require("../utils/tr-utils");
7
+ const shared_print_service_1 = require("./shared-print.service");
8
+ const vendor_credit_note_totals_service_1 = require("./vendor-credit-note-totals.service");
9
+ class VendorCreditNotePrintService {
10
+ //Prepare Pdf Data For Purchase Order And Bill
11
+ static GetDataForVendorCreditNotesPrint(argCNData, EntityData, image, IncludeGST, ConsolidateGST, TaxCodes) {
12
+ let CNData = tr_utils_1.TrUtils.Stringify(argCNData);
13
+ let creditNotePDFData = {};
14
+ creditNotePDFData.Settings = tr_utils_1.TrUtils.Stringify(argCNData.Settings);
15
+ // let IsTaxable: boolean = (CNData.Tax === 3) ? true : false;
16
+ let IsTaxable = true;
17
+ // PurchaseOrderPDFData.ShowTaxColumn = (CNData.Tax === 3) ? true : false;
18
+ // PurchaseOrderPDFData.HasTaxIncluded = (CNData.Tax === 2) ? true : false;
19
+ // PurchaseOrderPDFData.HideDiscountColumn = (CNData.Tax === 2) ? true : false;
20
+ creditNotePDFData.ShowTaxColumn = true;
21
+ creditNotePDFData.ShowTaxColumn = (IncludeGST && !ConsolidateGST) ? true : false;
22
+ creditNotePDFData.HasTaxIncluded = false;
23
+ creditNotePDFData.ShowDiscountColumn = (creditNotePDFData.Settings.DiscLvl === 'ITM' || creditNotePDFData.Settings.DiscLvl === 'RECITM') ? true : false;
24
+ // PurchaseOrderPDFData.HasNoTax = (CNData.Tax === 1) ? true : false;
25
+ creditNotePDFData.HasNoTax = false;
26
+ let SType;
27
+ if (!tr_utils_1.TrUtils.IsNull(argCNData.Settings) && !tr_utils_1.TrUtils.IsNull(argCNData.Settings.PoS)) {
28
+ SType = argCNData.Settings.PoS.SType;
29
+ }
30
+ creditNotePDFData.ShowIGST = (tr_utils_1.TrUtils.IsNull(CNData.SType) || (CNData.SType === 'Intra')) ? false : true;
31
+ creditNotePDFData.Id = CNData.BNo;
32
+ creditNotePDFData.CrDate = my_date_1.MyDate.ConvertUTCDateToReadable(CNData.CrDate);
33
+ creditNotePDFData.DeDate = my_date_1.MyDate.ConvertUTCDateToReadable(CNData.DeDate);
34
+ creditNotePDFData.Items = tr_utils_1.TrUtils.Stringify(CNData.Items);
35
+ // creditNotePDFData.Items = this.GetPartsDescription(creditNotePDFData.Items);
36
+ let DetailedTotalsInfo;
37
+ DetailedTotalsInfo = vendor_credit_note_totals_service_1.VendorCreditNoteTotalsService.GetTotalsValue([], creditNotePDFData.Items, IsTaxable, true, creditNotePDFData.Disc, creditNotePDFData.Perc, TaxCodes, true, creditNotePDFData.Settings);
38
+ creditNotePDFData = this.ConcatTotalsInfo(creditNotePDFData, DetailedTotalsInfo);
39
+ creditNotePDFData.Entity = shared_print_service_1.PrintSharedService.GetFormattedEntityDataForPrint(EntityData, code_enums_1.PrintTypesEnum.PurOrder, CNData);
40
+ creditNotePDFData = shared_print_service_1.PrintSharedService.GetEntityHeaderStyles(creditNotePDFData, EntityData, image);
41
+ creditNotePDFData.HeaderName = 'Vendor Credit Note';
42
+ creditNotePDFData.Vendor = this.GetVendorDataForPrint(tr_utils_1.TrUtils.Stringify(CNData.BFrom));
43
+ creditNotePDFData = this.FixPriceValuesForPrint(creditNotePDFData, TaxCodes);
44
+ return creditNotePDFData;
45
+ }
46
+ static GetVendorDataForPrint(argVendorData) {
47
+ let VendorPDFData = {};
48
+ let VendorData = tr_utils_1.TrUtils.Stringify(argVendorData);
49
+ // VendorPDFData.VendorType = VendorData.Type;
50
+ // if (VendorData.Type === CustomerTypesEnum.Individual) {
51
+ VendorPDFData.Name = VendorData.Name;
52
+ VendorPDFData.Contact = [
53
+ { Type: 'M', No: VendorData.Ph }
54
+ ];
55
+ // } else {
56
+ // VendorPDFData.Name = VendorData.CName;
57
+ // VendorPDFData.Contact = [
58
+ // { Type: 'M', No: VendorData.MPhone }
59
+ // ]
60
+ // }
61
+ VendorPDFData.Address = [];
62
+ if (!tr_utils_1.TrUtils.IsNull(VendorData.Adrs)) {
63
+ VendorPDFData.Address.push(VendorData.Adrs.A1);
64
+ if (!tr_utils_1.TrUtils.IsEmpty(VendorData.Adrs.A2)) {
65
+ VendorPDFData.Address.push(VendorData.Adrs.A2);
66
+ }
67
+ VendorPDFData.Address.push(VendorData.Adrs.Ct);
68
+ }
69
+ return VendorPDFData;
70
+ }
71
+ static ConcatTotalsInfo(creditNotePDFData, DetailedTotalsInfo) {
72
+ creditNotePDFData = tr_utils_1.TrUtils.ConcatObjects(creditNotePDFData, DetailedTotalsInfo);
73
+ return creditNotePDFData;
74
+ }
75
+ static FixPriceValuesForPrint(PrintData, TaxCodes) {
76
+ PrintData.ShowDetailedPartTaxInfo = false;
77
+ PrintData.Items.forEach((Part) => {
78
+ Part.UnPr = tr_utils_1.TrUtils.FixPriceValue(Part.Pr);
79
+ Part.DiscountedPrice = tr_utils_1.TrUtils.FixPriceValue(Part.DiscountedPrice);
80
+ Part.AfterTax = tr_utils_1.TrUtils.FixPriceValue(Part.AfterTax);
81
+ Part.CGSTAmt = tr_utils_1.TrUtils.FixPriceValue(Part.CGST);
82
+ Part.IGSTAmt = tr_utils_1.TrUtils.FixPriceValue(Part.IGST);
83
+ Part.SGSTAmt = tr_utils_1.TrUtils.FixPriceValue(Part.SGST);
84
+ if (!tr_utils_1.TrUtils.CheckInvalidSelect(Part.TCode)) {
85
+ PrintData.ShowDetailedPartTaxInfo = true;
86
+ }
87
+ Part.CGSTPerc = shared_print_service_1.PrintSharedService.GetCGSTValueBasedOnTaxCode(Part.TCode, TaxCodes);
88
+ Part.SGSTPerc = shared_print_service_1.PrintSharedService.GetSGSTValueBasedOnTaxCode(Part.TCode, TaxCodes);
89
+ Part.IGSTPerc = shared_print_service_1.PrintSharedService.GetIGSTValueBasedOnTaxCode(Part.TCode, TaxCodes);
90
+ });
91
+ PrintData.PartsDiscTotal = tr_utils_1.TrUtils.FixPriceValue(PrintData.CustItemsDiscTotal);
92
+ PrintData.PartsTotalAfterDisc = tr_utils_1.TrUtils.FixPriceValue(PrintData.CustItemsTotalAfterDisc);
93
+ PrintData.PartsTotalBeforeDisc = tr_utils_1.TrUtils.FixPriceValue(PrintData.CustItemsTotalBeforeDisc);
94
+ PrintData.TaxTotal = tr_utils_1.TrUtils.FixPriceValue(PrintData.TaxTotal);
95
+ PrintData.PartCGST = tr_utils_1.TrUtils.FixPriceValue(PrintData.CustItemCGST);
96
+ PrintData.PartIGST = tr_utils_1.TrUtils.FixPriceValue(PrintData.CustItemIGST);
97
+ PrintData.PartSGST = tr_utils_1.TrUtils.FixPriceValue(PrintData.CustItemSGST);
98
+ PrintData.PartAfterTax = tr_utils_1.TrUtils.FixPriceValue(PrintData.CustItemAfterTax);
99
+ PrintData.TotalRoundedBy = tr_utils_1.TrUtils.FixPriceValue(PrintData.CustTotalRoundedBy);
100
+ PrintData.RoundedTotal = tr_utils_1.TrUtils.FixPriceValue(PrintData.CustRoundedTotal);
101
+ return PrintData;
102
+ }
103
+ }
104
+ exports.VendorCreditNotePrintService = VendorCreditNotePrintService;
@@ -0,0 +1,327 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VendorCreditNoteTotalsService = void 0;
4
+ const aggregation_1 = require("../aggregation/aggregation");
5
+ const tr_utils_1 = require("../utils/tr-utils");
6
+ class VendorCreditNoteTotalsService {
7
+ static GetTotalsValue(opCodesList, ItemsList, IsIndependentTax, DetailedInfo, Disc, Perc, TaxCodes, WithItems, Settings) {
8
+ // LPerc = TrUtils.SetPercToStringIfNull(LPerc);
9
+ // PPerc = TrUtils.SetPercToStringIfNull(PPerc);
10
+ Perc = tr_utils_1.TrUtils.SetPercToStringIfNull(Perc);
11
+ // LDisc = TrUtils.SetValueToZeroIfNull(LDisc);
12
+ // PDisc = TrUtils.SetValueToZeroIfNull(PDisc);
13
+ Disc = tr_utils_1.TrUtils.SetValueToZeroIfNull(Disc);
14
+ // opCodesList = this.CalculateLaborValues(opCodesList, IsIndependentTax);
15
+ ItemsList = this.CalculateLaborItemValues(ItemsList, IsIndependentTax);
16
+ let finalTotalsData = this.GetFinalCNDataForSave(opCodesList, ItemsList, IsIndependentTax, Disc, Perc, DetailedInfo, Settings);
17
+ if (DetailedInfo) {
18
+ finalTotalsData = this.GetDetailedTotalsData(finalTotalsData, IsIndependentTax, opCodesList, ItemsList, TaxCodes);
19
+ }
20
+ if (WithItems) {
21
+ // finalTotalsData.Ops = opCodesList;
22
+ finalTotalsData.Items = ItemsList;
23
+ }
24
+ return finalTotalsData;
25
+ }
26
+ static CalculateLaborItemValues(ItemsList, IsIndependentTax) {
27
+ ItemsList = this.ResetLaborItemValues(ItemsList, IsIndependentTax);
28
+ // ItemsList = this.GetLaborItemsDiscountPrice(ItemsList);
29
+ // ItemsList = this.GetLaborItemsAfterDiscount(ItemsList);
30
+ // ItemsList = this.GetItemsAfterTax(ItemsList, IsIndependentTax);
31
+ return ItemsList;
32
+ }
33
+ static ResetLaborItemValues(ItemsList, IsIndependentTax) {
34
+ ItemsList.forEach((Item) => {
35
+ Item = this.ResetLaborItemValueIfInvalid(Item);
36
+ Item.DiscountedPrice = (0, aggregation_1.addition)(Item.Disc, Item.RecDisc);
37
+ Item.AfterItemDisc = Item.NetAmt;
38
+ if (IsIndependentTax) {
39
+ Item.AfterItemTax = (0, aggregation_1.addition)(Item.AfterItemDisc, Item.CGST, Item.SGST, Item.IGST);
40
+ }
41
+ else {
42
+ Item.AfterItemTax = Item.AfterItemDisc;
43
+ }
44
+ });
45
+ return ItemsList;
46
+ }
47
+ static ResetLaborItemValueIfInvalid(Item) {
48
+ Item.UnPr = tr_utils_1.TrUtils.SetValueToZeroIfNull(Item.UnPr);
49
+ Item.Disc = tr_utils_1.TrUtils.SetValueToZeroIfNull(Item.Disc);
50
+ Item.RecDisc = tr_utils_1.TrUtils.SetValueToZeroIfNull(Item.RecDisc);
51
+ Item.CGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(Item.CGST);
52
+ Item.SGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(Item.SGST);
53
+ Item.IGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(Item.IGST);
54
+ return Item;
55
+ }
56
+ static GetFinalCNDataForSave(LaborList, ItemsList, IsIndependentTax, Disc, Perc, DetailedInfo, Settings) {
57
+ let finalTotalsData = {};
58
+ finalTotalsData = this.SetMainDiscountValues(Disc, Perc, finalTotalsData, DetailedInfo);
59
+ finalTotalsData.Settings = Settings;
60
+ finalTotalsData = this.GetFinalCustomerTotalsData(finalTotalsData, [], ItemsList, IsIndependentTax, DetailedInfo);
61
+ return finalTotalsData;
62
+ }
63
+ static SetMainDiscountValues(Disc, Perc, finalTotalsData, DetailedInfo) {
64
+ // finalTotalsData.LDisc = LDisc;
65
+ // finalTotalsData.LPerc = LPerc;
66
+ // finalTotalsData.PDisc = PDisc;
67
+ // finalTotalsData.PPerc = PPerc;
68
+ finalTotalsData.Disc = Disc;
69
+ finalTotalsData.Perc = Perc;
70
+ if (DetailedInfo) {
71
+ // finalTotalsData.FixedLDisc = LDisc;
72
+ // finalTotalsData.FixedPDisc = PDisc;
73
+ finalTotalsData.FixedDisc = Disc;
74
+ }
75
+ return finalTotalsData;
76
+ }
77
+ static GetFinalCustomerTotalsData(finalTotalsData, LaborList, ItemsList, IsIndependentTax, DetailedInfo) {
78
+ let CustomerAfterDiscTotals = this.GetSubTotalFor([], ItemsList);
79
+ let CustLaborTaxTotal = this.GetLaborTaxTotalFor([], IsIndependentTax);
80
+ let CustItemTaxTotal = this.GetItemsTaxTotalFor(ItemsList, IsIndependentTax);
81
+ finalTotalsData.SubTotal = tr_utils_1.TrUtils.FixedTo(CustomerAfterDiscTotals);
82
+ // let CustLaborDiscTotal = this.GetLaborDiscountedTotal(LaborList, IsIndependentTax, finalTotalsData);
83
+ let CustItemsDiscTotal = this.GetItemDiscountedTotal(ItemsList, IsIndependentTax, finalTotalsData);
84
+ // let CustLaborTotalAfterDisc = this.GetLaborTotalAfterDiscount(LaborList);
85
+ let CustItemsTotalAfterDisc = this.GetItemsTotalAfterDiscount(ItemsList);
86
+ finalTotalsData.STotal = tr_utils_1.TrUtils.FixedTo(CustItemsDiscTotal + CustItemsTotalAfterDisc);
87
+ let CustTotal = this.GetCustomerTotalBasedOnTaxType(finalTotalsData, CustLaborTaxTotal, CustItemTaxTotal, [], ItemsList, IsIndependentTax);
88
+ finalTotalsData.Round = tr_utils_1.TrUtils.FixedTo(Math.round(CustTotal) - CustTotal);
89
+ finalTotalsData.Total = Math.round(CustTotal);
90
+ if (DetailedInfo) {
91
+ finalTotalsData.FixedSubTotal = tr_utils_1.TrUtils.FixedTo(CustomerAfterDiscTotals);
92
+ finalTotalsData.FixedTotal = tr_utils_1.TrUtils.FixedTo(CustTotal);
93
+ }
94
+ return finalTotalsData;
95
+ }
96
+ static GetSubTotalFor(LaborList, ItemsList) {
97
+ // let LaborTotalAfterDisc: any = this.GetLaborTotalAfterDiscount(LaborList);
98
+ let ItemsTotalAfterDisc = this.GetItemsTotalAfterDiscount(ItemsList);
99
+ return ItemsTotalAfterDisc;
100
+ }
101
+ static GetItemsTotalAfterDiscount(ItemsList) {
102
+ let ItemsTotalAfterDisc = 0;
103
+ ItemsList.forEach((Item) => {
104
+ ItemsTotalAfterDisc += Item.AfterItemDisc;
105
+ });
106
+ return ItemsTotalAfterDisc;
107
+ }
108
+ static GetDetailedTotalsData(finalTotalsData, IsIndependentTax, opCodesList, ItemsList, TaxCodes) {
109
+ // finalTotalsData.CustLaborDiscTotal = this.GetLaborDiscountedTotal(opCodesList, IsIndependentTax, finalTotalsData);
110
+ finalTotalsData.CustItemsDiscTotal = this.GetItemDiscountedTotal(ItemsList, IsIndependentTax, finalTotalsData);
111
+ // finalTotalsData.CustLaborTotalAfterDisc = this.GetLaborTotalAfterDiscount(opCodesList);
112
+ finalTotalsData.CustItemsTotalAfterDisc = this.GetItemsTotalAfterDiscount(ItemsList);
113
+ // finalTotalsData.CustLaborTotalBeforeDisc = TrUtils.FixedTo(finalTotalsData.CustLaborTotalAfterDisc
114
+ // + finalTotalsData.CustLaborDiscTotal);
115
+ finalTotalsData.CustItemsTotalBeforeDisc = tr_utils_1.TrUtils.FixedTo(finalTotalsData.CustItemsTotalAfterDisc
116
+ + finalTotalsData.CustItemsDiscTotal);
117
+ // finalTotalsData.CustLaborITax = this.GetLaborTaxTotalFor(opCodesList, IsIndependentTax);
118
+ // finalTotalsData.CustLaborSGST = this.GetLaborSGSTTaxTotal(opCodesList, IsIndependentTax);
119
+ // finalTotalsData.CustLaborCGST = this.GetLaborCGSTTaxTotal(opCodesList, IsIndependentTax);
120
+ // finalTotalsData.CustLaborIGST = this.GetLaborIGSTTaxTotal(opCodesList, IsIndependentTax);
121
+ let TaxInfo = this.GetItemGSTTaxTotal(ItemsList, IsIndependentTax);
122
+ finalTotalsData.CustItemITax = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxInfo[3]);
123
+ finalTotalsData.CustItemCGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxInfo[0]);
124
+ finalTotalsData.CustItemIGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxInfo[2]);
125
+ finalTotalsData.CustItemSGST = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxInfo[1]);
126
+ // finalTotalsData.CustItemITax = this.GetItemsTaxTotalFor(ItemsList, IsIndependentTax);
127
+ // finalTotalsData.CustItemCGST = this.GetItemCGSTTaxTotal(ItemsList, IsIndependentTax);
128
+ // finalTotalsData.CustItemIGST = this.GetItemIGSTTaxTotal(ItemsList, IsIndependentTax);
129
+ // finalTotalsData.CustItemSGST = this.GetItemSGSTTaxTotal(ItemsList, IsIndependentTax);
130
+ // finalTotalsData.CustLaborAfterTax = TrUtils.FixedTo(finalTotalsData.CustLaborITax + finalTotalsData.CustLaborTotalAfterDisc);
131
+ finalTotalsData.CustItemAfterTax = tr_utils_1.TrUtils.FixedTo(finalTotalsData.CustItemITax + finalTotalsData.CustItemsTotalAfterDisc);
132
+ finalTotalsData.CustTaxGroupData = this.GetTaxGroupingForItemsByHSN(ItemsList, TaxCodes);
133
+ finalTotalsData.CustTotalRoundedBy = tr_utils_1.TrUtils.FixedTo(finalTotalsData.Round);
134
+ finalTotalsData.CustRoundedTotal = tr_utils_1.TrUtils.FixedTo(finalTotalsData.Total);
135
+ for (var key in finalTotalsData) {
136
+ if (key !== 'Total' && key !== 'SubTotal' &&
137
+ key !== 'LDisc' && key !== 'LPerc' && key !== 'PDisc' &&
138
+ key !== 'PPerc' && key !== 'Disc' && key !== 'Perc' && key !== 'Tax'
139
+ && typeof finalTotalsData[key] === 'number') {
140
+ finalTotalsData[key] = tr_utils_1.TrUtils.FixPriceValue(finalTotalsData[key]);
141
+ }
142
+ }
143
+ return finalTotalsData;
144
+ }
145
+ static GetItemDiscountedTotal(ItemsList, isTaxable, finalTotalsData) {
146
+ let ItemsDiscountedTotal = 0;
147
+ let overallItemDisc = 0;
148
+ if (!isTaxable) {
149
+ overallItemDisc = tr_utils_1.TrUtils.SetValueToZeroIfNull(finalTotalsData.PDisc);
150
+ }
151
+ ItemsList.forEach((Item) => {
152
+ ItemsDiscountedTotal += Item.DiscountedPrice;
153
+ });
154
+ return tr_utils_1.TrUtils.FixedTo(ItemsDiscountedTotal + overallItemDisc);
155
+ }
156
+ static GetLaborTaxTotalFor(opCodesList, IsIndependentTax) {
157
+ let TotalTaxAmt = 0;
158
+ if (IsIndependentTax) {
159
+ opCodesList.forEach((Labor) => {
160
+ TotalTaxAmt = TotalTaxAmt + Labor.CGST + Labor.SGST + Labor.IGST;
161
+ });
162
+ }
163
+ return TotalTaxAmt;
164
+ }
165
+ static GetItemsTaxTotalFor(ItemsList, IsIndependentTax) {
166
+ let TotalTaxAmt = 0;
167
+ if (IsIndependentTax) {
168
+ ItemsList.forEach((Item) => {
169
+ TotalTaxAmt = TotalTaxAmt + Item.CGST + Item.SGST + Item.IGST;
170
+ });
171
+ }
172
+ return TotalTaxAmt;
173
+ }
174
+ static GetCustomerTotalBasedOnTaxType(finalTotalsData, LaborTaxAmount, ItemsTaxAmount, LaborList, ItemsList, IsIndependentTax) {
175
+ // let LaborTotalAfterDisc: any = this.GetLaborTotalAfterDiscount(LaborList);
176
+ let ItemsTotalAfterDisc = this.GetItemsTotalAfterDiscount(ItemsList);
177
+ if (IsIndependentTax) {
178
+ return ItemsTotalAfterDisc + LaborTaxAmount + ItemsTaxAmount;
179
+ }
180
+ else {
181
+ return tr_utils_1.TrUtils.FixedTo(ItemsTotalAfterDisc - finalTotalsData.Disc);
182
+ }
183
+ }
184
+ static LaborTotalAfterDiscount(LaborTotalAfterDisc, LaborTaxAmount, MainLDisc, LDiscInPerc) {
185
+ let LaborTotal = LaborTotalAfterDisc + LaborTaxAmount;
186
+ if (!tr_utils_1.TrUtils.IsZero(MainLDisc)) {
187
+ if (!tr_utils_1.TrUtils.IsEmpty(LDiscInPerc)) {
188
+ LaborTotal = (LaborTotal - (LaborTotal * Number(LDiscInPerc)) / 100);
189
+ }
190
+ else {
191
+ LaborTotal = LaborTotal - MainLDisc;
192
+ }
193
+ }
194
+ return LaborTotal;
195
+ }
196
+ static ItemsTotalAfterDiscount(ItemsTotalAfterDisc, ItemsTaxAmount, MainPDisc, PDiscInPerc) {
197
+ let ItemsTotal = ItemsTotalAfterDisc + ItemsTaxAmount;
198
+ if (!tr_utils_1.TrUtils.IsZero(MainPDisc)) {
199
+ if (!tr_utils_1.TrUtils.IsEmpty(PDiscInPerc)) {
200
+ ItemsTotal = (ItemsTotal - (ItemsTotal * Number(PDiscInPerc)) / 100);
201
+ }
202
+ else {
203
+ ItemsTotal = ItemsTotal - MainPDisc;
204
+ }
205
+ }
206
+ return ItemsTotal;
207
+ }
208
+ static GetItemGSTTaxTotal(ItemsList, IsIndependentTax) {
209
+ let TotalCGSTAmt = 0;
210
+ let TotalSGSTAmt = 0;
211
+ let TotalIGSTAmt = 0;
212
+ let TotalTaxAmt = 0;
213
+ if (IsIndependentTax) {
214
+ ItemsList.forEach((Item) => {
215
+ TotalCGSTAmt = (0, aggregation_1.addition)(TotalCGSTAmt, Item.CGST);
216
+ TotalSGSTAmt = (0, aggregation_1.addition)(TotalSGSTAmt, Item.SGST);
217
+ TotalIGSTAmt = (0, aggregation_1.addition)(TotalIGSTAmt, Item.IGST);
218
+ TotalTaxAmt = (0, aggregation_1.addition)(TotalTaxAmt, Item.CGST, Item.SGST, Item.IGST);
219
+ });
220
+ }
221
+ return [TotalCGSTAmt, TotalSGSTAmt, TotalIGSTAmt, TotalTaxAmt];
222
+ }
223
+ static GetTaxGroupingForItemsByHSN(Items, TaxCodes) {
224
+ Items = this.GetCombinedTaxPercentage(Items, TaxCodes);
225
+ // Items = this.ResetItemsHSNIfInvalid(Items);
226
+ let FinalMatchedItems = this.CompareItemsByHSN(Items, TaxCodes);
227
+ return this.GetTaxGroupingInfoByHSN(FinalMatchedItems, TaxCodes);
228
+ }
229
+ static GetCombinedTaxPercentage(Items, TaxCodes) {
230
+ Items.forEach((Item) => {
231
+ if (tr_utils_1.TrUtils.IsNull(Item.HSN)) {
232
+ Item.HSN = '';
233
+ }
234
+ let TaxInfo = this.GetGSTValueBasedOnTaxCode(Item.TCode, TaxCodes);
235
+ Item.CGSTAmt = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxInfo[0]);
236
+ Item.SGSTAmt = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxInfo[1]);
237
+ Item.IGSTAmt = tr_utils_1.TrUtils.SetValueToZeroIfNull(TaxInfo[2]);
238
+ Item.CombinedTaxPercentage = (0, aggregation_1.addition)(Item.CGSTAmt, Item.SGSTAmt, Item.IGSTAmt);
239
+ });
240
+ return Items;
241
+ }
242
+ static CompareItemsByHSN(Items, TaxCodes) {
243
+ let FinalMatchedItems = [];
244
+ Items.forEach((Item) => {
245
+ let MatchedItemsBasedOnHSN = Items.filter((argItem) => {
246
+ let ItemFound = false;
247
+ FinalMatchedItems.forEach((FinalArgItems) => {
248
+ let ItemIndex = FinalArgItems.findIndex((FinalArgItem) => {
249
+ return FinalArgItem._id === argItem._id;
250
+ });
251
+ if (ItemIndex !== -1) {
252
+ ItemFound = true;
253
+ }
254
+ });
255
+ // let argGSTValues: any[] = this.GetGSTValueBasedOnTaxCode(argItem.TCode, TaxCodes);
256
+ // let argCGST = argGSTValues[0];
257
+ // let argSGST = argGSTValues[1];
258
+ // let argIGST = argGSTValues[2];
259
+ // let ItemGSTValues: any[] = this.GetGSTValueBasedOnTaxCode(Item.TCode, TaxCodes);
260
+ // let ItemCGST = ItemGSTValues[0];
261
+ // let ItemSGST = ItemGSTValues[1];
262
+ // let ItemIGST = ItemGSTValues[2];
263
+ return (argItem.HSN === Item.HSN) && (!ItemFound) &&
264
+ (argItem.CGSTAmt === Item.CGSTAmt) && (argItem.IGSTAmt === Item.IGSTAmt) &&
265
+ (argItem.SGSTAmt === Item.SGSTAmt);
266
+ });
267
+ if (MatchedItemsBasedOnHSN.length !== 0) {
268
+ FinalMatchedItems.push(MatchedItemsBasedOnHSN);
269
+ }
270
+ });
271
+ return FinalMatchedItems;
272
+ }
273
+ static GetTaxGroupingInfoByHSN(FinalMatchedItems, TaxCodes) {
274
+ let HSNTaxInfo = [];
275
+ FinalMatchedItems.forEach((MatchedItem) => {
276
+ let TaxInfo = {};
277
+ let TaxOnAmount = 0;
278
+ let TaxAmount = 0;
279
+ let HSN = MatchedItem[0].HSN;
280
+ TaxInfo.CombinedTaxPercentage = MatchedItem[0].CombinedTaxPercentage;
281
+ MatchedItem.forEach((argMatchedGSTItem) => {
282
+ TaxOnAmount = (0, aggregation_1.addition)(TaxOnAmount, argMatchedGSTItem.AfterItemDisc);
283
+ TaxAmount = (0, aggregation_1.addition)(TaxAmount, argMatchedGSTItem.CGST);
284
+ TaxAmount = (0, aggregation_1.addition)(TaxAmount, argMatchedGSTItem.IGST);
285
+ TaxAmount = (0, aggregation_1.addition)(TaxAmount, argMatchedGSTItem.SGST);
286
+ });
287
+ TaxInfo.HSN = HSN;
288
+ TaxInfo.TotalTaxableAmount = tr_utils_1.TrUtils.FixPriceValue(TaxOnAmount);
289
+ TaxInfo.TotalTaxAmount = tr_utils_1.TrUtils.FixPriceValue(TaxAmount);
290
+ TaxInfo.ItemsCount = MatchedItem.length;
291
+ // let GSTValues: any[] = this.GetGSTValueBasedOnTaxCode(MatchedItem[0].TCode, TaxCodes);
292
+ // TaxInfo.CGST = GSTValues[0];
293
+ // TaxInfo.SGST = GSTValues[1];
294
+ // TaxInfo.IGST = GSTValues[2];
295
+ TaxInfo.CGST = MatchedItem[0].CGSTAmt;
296
+ TaxInfo.IGST = MatchedItem[0].IGSTAmt;
297
+ TaxInfo.SGST = MatchedItem[0].SGSTAmt;
298
+ if (TaxOnAmount !== 0) {
299
+ HSNTaxInfo.push(TaxInfo);
300
+ }
301
+ });
302
+ return HSNTaxInfo;
303
+ }
304
+ static GetGSTValueBasedOnTaxCode(TCode, TaxCodes) {
305
+ let CGST = 0;
306
+ let SGST = 0;
307
+ let IGST = 0;
308
+ if (tr_utils_1.TrUtils.IsNull(TCode)) {
309
+ return [CGST, SGST, IGST];
310
+ }
311
+ let TCodeIndex = TaxCodes.findIndex((TaxCode) => {
312
+ return TaxCode._id === Number(TCode);
313
+ });
314
+ if (TCodeIndex !== -1) {
315
+ if (TaxCodes[TCodeIndex].Type === 'Intra') {
316
+ return [TaxCodes[TCodeIndex].CGST, TaxCodes[TCodeIndex].SGST, 0];
317
+ }
318
+ else {
319
+ return [0, 0, TaxCodes[TCodeIndex].IGST];
320
+ }
321
+ }
322
+ else {
323
+ return [CGST, SGST, IGST];
324
+ }
325
+ }
326
+ }
327
+ exports.VendorCreditNoteTotalsService = VendorCreditNoteTotalsService;