@senior-gestao-empresarial/erpx-components 4.3.0 → 4.5.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.
Files changed (33) hide show
  1. package/bundles/senior-gestao-empresarial-erpx-components.umd.js +331 -184
  2. package/bundles/senior-gestao-empresarial-erpx-components.umd.js.map +1 -1
  3. package/bundles/senior-gestao-empresarial-erpx-components.umd.min.js +2 -2
  4. package/bundles/senior-gestao-empresarial-erpx-components.umd.min.js.map +1 -1
  5. package/components/tributos/calculators/gross-amount-calculator.d.ts +5 -0
  6. package/components/tributos/calculators/tax-amount-calculator.d.ts +5 -1
  7. package/components/tributos/erp-tributos.component.d.ts +13 -3
  8. package/components/tributos/services/tax-rounding.service.d.ts +5 -0
  9. package/components/tributos/stores/tax.store.d.ts +10 -0
  10. package/components/utils/loading-context.d.ts +7 -0
  11. package/esm2015/components/tributos/calculators/gross-amount-calculator.js +18 -3
  12. package/esm2015/components/tributos/calculators/tax-amount-calculator.js +26 -7
  13. package/esm2015/components/tributos/erp-tributos.component.js +82 -16
  14. package/esm2015/components/tributos/rules/calculation/rules/gross-amount-calculation-rule.js +2 -4
  15. package/esm2015/components/tributos/services/tax-rounding.service.js +18 -0
  16. package/esm2015/components/tributos/stores/tax.store.js +19 -0
  17. package/esm2015/components/utils/loading-context.js +20 -0
  18. package/esm2015/senior-gestao-empresarial-erpx-components.js +46 -43
  19. package/esm5/components/tributos/calculators/gross-amount-calculator.js +17 -4
  20. package/esm5/components/tributos/calculators/tax-amount-calculator.js +26 -7
  21. package/esm5/components/tributos/erp-tributos.component.js +83 -16
  22. package/esm5/components/tributos/rules/calculation/rules/gross-amount-calculation-rule.js +2 -4
  23. package/esm5/components/tributos/services/tax-rounding.service.js +23 -0
  24. package/esm5/components/tributos/stores/tax.store.js +26 -0
  25. package/esm5/components/utils/loading-context.js +22 -0
  26. package/esm5/senior-gestao-empresarial-erpx-components.js +46 -43
  27. package/fesm2015/senior-gestao-empresarial-erpx-components.js +264 -131
  28. package/fesm2015/senior-gestao-empresarial-erpx-components.js.map +1 -1
  29. package/fesm5/senior-gestao-empresarial-erpx-components.js +287 -142
  30. package/fesm5/senior-gestao-empresarial-erpx-components.js.map +1 -1
  31. package/package.json +1 -1
  32. package/senior-gestao-empresarial-erpx-components.d.ts +45 -42
  33. package/senior-gestao-empresarial-erpx-components.metadata.json +1 -1
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('primeng/breadcrumb'), require('@angular/router'), require('rxjs'), require('rxjs/operators'), require('@ngx-translate/core'), require('@senior-gestao-empresarial/angular-components'), require('@seniorsistemas/angular-components'), require('primeng/accordion'), require('@angular/forms'), require('@seniorsistemas/platform-utils'), require('bignumber.js'), require('primeng/api'), require('@angular/common/http'), require('primeng'), require('moment'), require('primeng/confirmdialog'), require('primeng/messages'), require('primeng/panel'), require('primeng/table'), require('primeng/tabview'), require('@seniorsistemas/platform-components')) :
3
- typeof define === 'function' && define.amd ? define('@senior-gestao-empresarial/erpx-components', ['exports', '@angular/core', '@angular/common', 'primeng/breadcrumb', '@angular/router', 'rxjs', 'rxjs/operators', '@ngx-translate/core', '@senior-gestao-empresarial/angular-components', '@seniorsistemas/angular-components', 'primeng/accordion', '@angular/forms', '@seniorsistemas/platform-utils', 'bignumber.js', 'primeng/api', '@angular/common/http', 'primeng', 'moment', 'primeng/confirmdialog', 'primeng/messages', 'primeng/panel', 'primeng/table', 'primeng/tabview', '@seniorsistemas/platform-components'], factory) :
4
- (global = global || self, factory((global['senior-gestao-empresarial'] = global['senior-gestao-empresarial'] || {}, global['senior-gestao-empresarial']['erpx-components'] = {}), global.ng.core, global.ng.common, global.breadcrumb, global.ng.router, global.rxjs, global.rxjs.operators, global.core$1, global.angularComponents, global.angularComponents$1, global.accordion, global.ng.forms, global.platformUtils, global.BigNumber, global.api, global.ng.common.http, global.primeng, global.moment, global.confirmdialog, global.messages, global.panel, global.table, global.tabview, global.platformComponents));
5
- }(this, (function (exports, core, common, breadcrumb, router, rxjs, operators, core$1, angularComponents, angularComponents$1, accordion, forms, platformUtils, BigNumber, api, http, primeng, moment, confirmdialog, messages, panel, table, tabview, platformComponents) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('primeng/breadcrumb'), require('@angular/router'), require('rxjs'), require('rxjs/operators'), require('@ngx-translate/core'), require('@senior-gestao-empresarial/angular-components'), require('@seniorsistemas/angular-components'), require('primeng/accordion'), require('@angular/forms'), require('@seniorsistemas/platform-components'), require('@seniorsistemas/platform-utils'), require('bignumber.js'), require('primeng/api'), require('@ngrx/component-store'), require('@angular/common/http'), require('primeng'), require('moment'), require('primeng/confirmdialog'), require('primeng/messages'), require('primeng/panel'), require('primeng/table'), require('primeng/tabview')) :
3
+ typeof define === 'function' && define.amd ? define('@senior-gestao-empresarial/erpx-components', ['exports', '@angular/core', '@angular/common', 'primeng/breadcrumb', '@angular/router', 'rxjs', 'rxjs/operators', '@ngx-translate/core', '@senior-gestao-empresarial/angular-components', '@seniorsistemas/angular-components', 'primeng/accordion', '@angular/forms', '@seniorsistemas/platform-components', '@seniorsistemas/platform-utils', 'bignumber.js', 'primeng/api', '@ngrx/component-store', '@angular/common/http', 'primeng', 'moment', 'primeng/confirmdialog', 'primeng/messages', 'primeng/panel', 'primeng/table', 'primeng/tabview'], factory) :
4
+ (global = global || self, factory((global['senior-gestao-empresarial'] = global['senior-gestao-empresarial'] || {}, global['senior-gestao-empresarial']['erpx-components'] = {}), global.ng.core, global.ng.common, global.breadcrumb, global.ng.router, global.rxjs, global.rxjs.operators, global.core$1, global.angularComponents, global.angularComponents$1, global.accordion, global.ng.forms, global.platformComponents, global.platformUtils, global.BigNumber, global.api, global.componentStore, global.ng.common.http, global.primeng, global.moment, global.confirmdialog, global.messages, global.panel, global.table, global.tabview));
5
+ }(this, (function (exports, core, common, breadcrumb, router, rxjs, operators, core$1, angularComponents, angularComponents$1, accordion, forms, platformComponents, platformUtils, BigNumber, api, componentStore, http, primeng, moment, confirmdialog, messages, panel, table, tabview) { 'use strict';
6
6
 
7
7
  BigNumber = BigNumber && Object.prototype.hasOwnProperty.call(BigNumber, 'default') ? BigNumber['default'] : BigNumber;
8
8
 
@@ -536,6 +536,199 @@
536
536
  EnumIndicativoPadrao["INDIFERENTE"] = "INDIFERENTE";
537
537
  })(EnumIndicativoPadrao || (EnumIndicativoPadrao = {}));
538
538
 
539
+ var LoadingContext = /** @class */ (function () {
540
+ function LoadingContext() {
541
+ this.contexts = [];
542
+ }
543
+ LoadingContext.prototype.push = function (context) {
544
+ if (!context)
545
+ context = 'default context';
546
+ this.contexts.push(context);
547
+ };
548
+ LoadingContext.prototype.pop = function () {
549
+ this.contexts.pop();
550
+ };
551
+ LoadingContext.prototype.isLoading = function () {
552
+ return this.contexts.length > 0;
553
+ };
554
+ LoadingContext.prototype.getContext = function () {
555
+ return this.contexts;
556
+ };
557
+ return LoadingContext;
558
+ }());
559
+
560
+ var EffectiveTaxRateCalculator = /** @class */ (function () {
561
+ function EffectiveTaxRateCalculator() {
562
+ }
563
+ /**
564
+ * Calculates the effective tax rate by applying both the tax rate reduction and the governmental tax rate reduction factors.
565
+ *
566
+ * @param params - An object containing the following properties:
567
+ * @param params.taxRate - The base tax rate as a BigNumber.
568
+ * @param params.taxRateReduction - The tax rate reduction percentage as a BigNumber.
569
+ * @param params.governamentalTaxRateReduction - The governmental tax rate reduction percentage as a BigNumber.
570
+ * @returns The effective tax rate as a BigNumber after applying the reduction factors.
571
+ */
572
+ EffectiveTaxRateCalculator.prototype.calculateEffectiveTaxRate = function (_a) {
573
+ var taxRate = _a.taxRate, taxRateReduction = _a.taxRateReduction, governamentalTaxRateReduction = _a.governamentalTaxRateReduction;
574
+ var taxRateReductionFactor = taxRateReduction.isGreaterThan(0)
575
+ ? new BigNumber(1).minus(new BigNumber(taxRateReduction).dividedBy(100))
576
+ : new BigNumber(1);
577
+ var governamentalTaxRateReductionFactor = governamentalTaxRateReduction.isGreaterThan(0)
578
+ ? new BigNumber(1).minus(new BigNumber(governamentalTaxRateReduction).dividedBy(100))
579
+ : new BigNumber(1);
580
+ return taxRateReductionFactor
581
+ .multipliedBy(taxRate)
582
+ .multipliedBy(governamentalTaxRateReductionFactor);
583
+ };
584
+ /**
585
+ * Calculates the effective tax rate by applying a reduction factor to the given tax rate,
586
+ * excluding any governmental tax rate reductions.
587
+ *
588
+ * If the `taxRateReduction` is not a valid number, it defaults to zero.
589
+ * The reduction factor is computed as (1 - taxRateReduction / 100) if `taxRateReduction` is greater than zero,
590
+ * otherwise it is 1 (no reduction).
591
+ *
592
+ * @param params - An object containing:
593
+ * - taxRate: The original tax rate as a BigNumber.
594
+ * - taxRateReduction: The tax rate reduction percentage as a BigNumber.
595
+ * @returns The effective tax rate as a BigNumber after applying the reduction factor.
596
+ */
597
+ EffectiveTaxRateCalculator.prototype.calculateEffectiveTaxRateWithoutGovernamentalTaxRateReduction = function (_a) {
598
+ var taxRate = _a.taxRate, taxRateReduction = _a.taxRateReduction;
599
+ if (taxRateReduction.isNaN())
600
+ taxRateReduction = new BigNumber(0);
601
+ var taxRateReductionFactor = taxRateReduction.isGreaterThan(0)
602
+ ? new BigNumber(1).minus(new BigNumber(taxRateReduction).dividedBy(100))
603
+ : new BigNumber(1);
604
+ return taxRateReductionFactor.multipliedBy(taxRate);
605
+ };
606
+ EffectiveTaxRateCalculator.ɵprov = core.ɵɵdefineInjectable({ factory: function EffectiveTaxRateCalculator_Factory() { return new EffectiveTaxRateCalculator(); }, token: EffectiveTaxRateCalculator, providedIn: "root" });
607
+ EffectiveTaxRateCalculator = __decorate([
608
+ core.Injectable({ providedIn: 'root' })
609
+ ], EffectiveTaxRateCalculator);
610
+ return EffectiveTaxRateCalculator;
611
+ }());
612
+
613
+ var TaxRoundingService = /** @class */ (function () {
614
+ function TaxRoundingService() {
615
+ }
616
+ TaxRoundingService.prototype.halfEven = function (value, decimalPlaces) {
617
+ if (decimalPlaces === void 0) { decimalPlaces = 2; }
618
+ return new BigNumber(value).decimalPlaces(decimalPlaces, BigNumber.ROUND_HALF_EVEN);
619
+ };
620
+ TaxRoundingService.prototype.halfUp = function (value, decimalPlaces) {
621
+ if (decimalPlaces === void 0) { decimalPlaces = 2; }
622
+ return new BigNumber(value).decimalPlaces(decimalPlaces, BigNumber.ROUND_HALF_UP);
623
+ };
624
+ TaxRoundingService.ɵprov = core.ɵɵdefineInjectable({ factory: function TaxRoundingService_Factory() { return new TaxRoundingService(); }, token: TaxRoundingService, providedIn: "root" });
625
+ TaxRoundingService = __decorate([
626
+ core.Injectable({ providedIn: 'root' })
627
+ ], TaxRoundingService);
628
+ return TaxRoundingService;
629
+ }());
630
+
631
+ var TaxStore = /** @class */ (function (_super) {
632
+ __extends(TaxStore, _super);
633
+ function TaxStore() {
634
+ var _this = _super.call(this, {
635
+ arredondamentoAbnt: false
636
+ }) || this;
637
+ _this.getArredondamentoAbnt = function () {
638
+ return _this.get(function (state) { return state.arredondamentoAbnt; });
639
+ };
640
+ _this.setArredondamentoAbnt = function (arredondamentoAbnt) {
641
+ return _this.setState(function (state) { return (__assign(__assign({}, state), { arredondamentoAbnt: arredondamentoAbnt })); });
642
+ };
643
+ return _this;
644
+ }
645
+ TaxStore.ɵprov = core.ɵɵdefineInjectable({ factory: function TaxStore_Factory() { return new TaxStore(); }, token: TaxStore, providedIn: "root" });
646
+ TaxStore = __decorate([
647
+ core.Injectable({ providedIn: 'root' })
648
+ ], TaxStore);
649
+ return TaxStore;
650
+ }(componentStore.ComponentStore));
651
+
652
+ var TaxAmountCalculator = /** @class */ (function () {
653
+ function TaxAmountCalculator(effectiveTaxRateCalculator, taxRoundingService, taxStore) {
654
+ this.effectiveTaxRateCalculator = effectiveTaxRateCalculator;
655
+ this.taxRoundingService = taxRoundingService;
656
+ this.taxStore = taxStore;
657
+ }
658
+ /**
659
+ * Calculates the tax amount based on a taxable base and a tax rate.
660
+ *
661
+ * @param params - An object containing:
662
+ * @param params.taxableBase - The base amount on which the tax is calculated (as a BigNumber).
663
+ * @param params.taxRate - The tax rate to apply (as a BigNumber, representing a percentage).
664
+ * @returns The calculated tax amount as a BigNumber.
665
+ */
666
+ TaxAmountCalculator.prototype.calculateTaxAmount = function (_a) {
667
+ var taxableBase = _a.taxableBase, taxRate = _a.taxRate;
668
+ var taxAmount = new BigNumber(taxableBase)
669
+ .multipliedBy(taxRate)
670
+ .dividedBy(100);
671
+ return this.taxStore.getArredondamentoAbnt()
672
+ ? this.taxRoundingService.halfEven(taxAmount)
673
+ : this.taxRoundingService.halfUp(taxAmount.toNumber());
674
+ };
675
+ /**
676
+ * Calculates the tax amount considering a deferred tax value.
677
+ *
678
+ * @param params - The parameters for the calculation.
679
+ * @param params.taxableBase - The base amount on which tax is calculated.
680
+ * @param params.taxRate - The tax rate as a percentage.
681
+ * @param params.deferredTaxAmount - The amount of tax that is deferred and should be subtracted from the result.
682
+ * @returns The calculated tax amount after subtracting the deferred tax.
683
+ */
684
+ TaxAmountCalculator.prototype.calculateTaxAmountWithDeferredTax = function (_a) {
685
+ var taxableBase = _a.taxableBase, taxRate = _a.taxRate, deferredTaxAmount = _a.deferredTaxAmount;
686
+ var taxAmount = new BigNumber(taxableBase)
687
+ .multipliedBy(taxRate)
688
+ .dividedBy(100)
689
+ .minus(deferredTaxAmount);
690
+ return this.taxStore.getArredondamentoAbnt()
691
+ ? this.taxRoundingService.halfEven(taxAmount)
692
+ : this.taxRoundingService.halfUp(taxAmount.toNumber());
693
+ };
694
+ /**
695
+ * Calculates the tax amount based on the provided tax base, tax rate, and tax rate reduction,
696
+ * excluding deferred tax and governamental tax rate reductions.
697
+ *
698
+ * This method uses the effective tax rate calculated without considering governamental tax rate reductions,
699
+ * and applies it to the tax base to determine the final tax amount.
700
+ *
701
+ * @param params - The parameters for tax calculation.
702
+ * @param params.taxBase - The base amount on which the tax is calculated.
703
+ * @param params.taxRate - The initial tax rate before any reductions.
704
+ * @param params.taxRateReduction - The reduction applied to the tax rate.
705
+ * @returns The calculated tax amount as a BigNumber.
706
+ */
707
+ TaxAmountCalculator.prototype.calculateTaxAmountWithoutDeferredTaxAndWithoutGovernamentalTaxRate = function (_a) {
708
+ var taxBase = _a.taxBase, taxRate = _a.taxRate, taxRateReduction = _a.taxRateReduction;
709
+ var effectiveTaxRate = this.effectiveTaxRateCalculator.calculateEffectiveTaxRateWithoutGovernamentalTaxRateReduction({
710
+ taxRate: taxRate,
711
+ taxRateReduction: taxRateReduction
712
+ });
713
+ var taxAmount = new BigNumber(taxBase)
714
+ .multipliedBy(effectiveTaxRate)
715
+ .dividedBy(100);
716
+ return this.taxStore.getArredondamentoAbnt()
717
+ ? this.taxRoundingService.halfEven(taxAmount)
718
+ : this.taxRoundingService.halfUp(taxAmount.toNumber());
719
+ };
720
+ TaxAmountCalculator.ctorParameters = function () { return [
721
+ { type: EffectiveTaxRateCalculator },
722
+ { type: TaxRoundingService },
723
+ { type: TaxStore }
724
+ ]; };
725
+ TaxAmountCalculator.ɵprov = core.ɵɵdefineInjectable({ factory: function TaxAmountCalculator_Factory() { return new TaxAmountCalculator(core.ɵɵinject(EffectiveTaxRateCalculator), core.ɵɵinject(TaxRoundingService), core.ɵɵinject(TaxStore)); }, token: TaxAmountCalculator, providedIn: "root" });
726
+ TaxAmountCalculator = __decorate([
727
+ core.Injectable({ providedIn: 'root' })
728
+ ], TaxAmountCalculator);
729
+ return TaxAmountCalculator;
730
+ }());
731
+
539
732
  var ErpTributosService = /** @class */ (function () {
540
733
  function ErpTributosService(http, messageService) {
541
734
  this.http = http;
@@ -1086,59 +1279,6 @@
1086
1279
  return group.item.find(function (item) { return item.name === getGovernamentalTaxByBaseTax(baseTax); });
1087
1280
  };
1088
1281
 
1089
- var EffectiveTaxRateCalculator = /** @class */ (function () {
1090
- function EffectiveTaxRateCalculator() {
1091
- }
1092
- /**
1093
- * Calculates the effective tax rate by applying both the tax rate reduction and the governmental tax rate reduction factors.
1094
- *
1095
- * @param params - An object containing the following properties:
1096
- * @param params.taxRate - The base tax rate as a BigNumber.
1097
- * @param params.taxRateReduction - The tax rate reduction percentage as a BigNumber.
1098
- * @param params.governamentalTaxRateReduction - The governmental tax rate reduction percentage as a BigNumber.
1099
- * @returns The effective tax rate as a BigNumber after applying the reduction factors.
1100
- */
1101
- EffectiveTaxRateCalculator.prototype.calculateEffectiveTaxRate = function (_a) {
1102
- var taxRate = _a.taxRate, taxRateReduction = _a.taxRateReduction, governamentalTaxRateReduction = _a.governamentalTaxRateReduction;
1103
- var taxRateReductionFactor = taxRateReduction.isGreaterThan(0)
1104
- ? new BigNumber(1).minus(new BigNumber(taxRateReduction).dividedBy(100))
1105
- : new BigNumber(1);
1106
- var governamentalTaxRateReductionFactor = governamentalTaxRateReduction.isGreaterThan(0)
1107
- ? new BigNumber(1).minus(new BigNumber(governamentalTaxRateReduction).dividedBy(100))
1108
- : new BigNumber(1);
1109
- return taxRateReductionFactor
1110
- .multipliedBy(taxRate)
1111
- .multipliedBy(governamentalTaxRateReductionFactor);
1112
- };
1113
- /**
1114
- * Calculates the effective tax rate by applying a reduction factor to the given tax rate,
1115
- * excluding any governmental tax rate reductions.
1116
- *
1117
- * If the `taxRateReduction` is not a valid number, it defaults to zero.
1118
- * The reduction factor is computed as (1 - taxRateReduction / 100) if `taxRateReduction` is greater than zero,
1119
- * otherwise it is 1 (no reduction).
1120
- *
1121
- * @param params - An object containing:
1122
- * - taxRate: The original tax rate as a BigNumber.
1123
- * - taxRateReduction: The tax rate reduction percentage as a BigNumber.
1124
- * @returns The effective tax rate as a BigNumber after applying the reduction factor.
1125
- */
1126
- EffectiveTaxRateCalculator.prototype.calculateEffectiveTaxRateWithoutGovernamentalTaxRateReduction = function (_a) {
1127
- var taxRate = _a.taxRate, taxRateReduction = _a.taxRateReduction;
1128
- if (taxRateReduction.isNaN())
1129
- taxRateReduction = new BigNumber(0);
1130
- var taxRateReductionFactor = taxRateReduction.isGreaterThan(0)
1131
- ? new BigNumber(1).minus(new BigNumber(taxRateReduction).dividedBy(100))
1132
- : new BigNumber(1);
1133
- return taxRateReductionFactor.multipliedBy(taxRate);
1134
- };
1135
- EffectiveTaxRateCalculator.ɵprov = core.ɵɵdefineInjectable({ factory: function EffectiveTaxRateCalculator_Factory() { return new EffectiveTaxRateCalculator(); }, token: EffectiveTaxRateCalculator, providedIn: "root" });
1136
- EffectiveTaxRateCalculator = __decorate([
1137
- core.Injectable({ providedIn: 'root' })
1138
- ], EffectiveTaxRateCalculator);
1139
- return EffectiveTaxRateCalculator;
1140
- }());
1141
-
1142
1282
  var EffectiveTaxRateCalculationRule = /** @class */ (function () {
1143
1283
  function EffectiveTaxRateCalculationRule(effectiveTaxRateCalculator) {
1144
1284
  this.effectiveTaxRateCalculator = effectiveTaxRateCalculator;
@@ -1222,7 +1362,9 @@
1222
1362
  }());
1223
1363
 
1224
1364
  var GrossAmountCalculator = /** @class */ (function () {
1225
- function GrossAmountCalculator() {
1365
+ function GrossAmountCalculator(taxRoundingService, taxStore) {
1366
+ this.taxRoundingService = taxRoundingService;
1367
+ this.taxStore = taxStore;
1226
1368
  }
1227
1369
  /**
1228
1370
  * Calculates the gross amount based on the provided taxable base and tax rate.
@@ -1234,9 +1376,16 @@
1234
1376
  */
1235
1377
  GrossAmountCalculator.prototype.calculateGrossAmount = function (_a) {
1236
1378
  var taxableBase = _a.taxableBase, taxRate = _a.taxRate;
1237
- return taxableBase.multipliedBy(taxRate).dividedBy(100);
1379
+ var taxAmount = taxableBase.multipliedBy(taxRate).dividedBy(100);
1380
+ return this.taxStore.getArredondamentoAbnt()
1381
+ ? this.taxRoundingService.halfEven(taxAmount)
1382
+ : this.taxRoundingService.halfUp(taxAmount.toNumber());
1238
1383
  };
1239
- GrossAmountCalculator.ɵprov = core.ɵɵdefineInjectable({ factory: function GrossAmountCalculator_Factory() { return new GrossAmountCalculator(); }, token: GrossAmountCalculator, providedIn: "root" });
1384
+ GrossAmountCalculator.ctorParameters = function () { return [
1385
+ { type: TaxRoundingService },
1386
+ { type: TaxStore }
1387
+ ]; };
1388
+ GrossAmountCalculator.ɵprov = core.ɵɵdefineInjectable({ factory: function GrossAmountCalculator_Factory() { return new GrossAmountCalculator(core.ɵɵinject(TaxRoundingService), core.ɵɵinject(TaxStore)); }, token: GrossAmountCalculator, providedIn: "root" });
1240
1389
  GrossAmountCalculator = __decorate([
1241
1390
  core.Injectable({ providedIn: 'root' })
1242
1391
  ], GrossAmountCalculator);
@@ -1285,9 +1434,7 @@
1285
1434
  taxableBase: taxableBase,
1286
1435
  taxRate: taxRate
1287
1436
  });
1288
- return grossAmount
1289
- .decimalPlaces(2)
1290
- .toNumber();
1437
+ return grossAmount.toNumber();
1291
1438
  }), operators.filter(function (grossAmount) {
1292
1439
  return grossAmount !==
1293
1440
  formGroup.get('valorBrutoImposto').value;
@@ -1396,71 +1543,6 @@
1396
1543
  return ManualTaxCalculationRule;
1397
1544
  }());
1398
1545
 
1399
- var TaxAmountCalculator = /** @class */ (function () {
1400
- function TaxAmountCalculator(effectiveTaxRateCalculator) {
1401
- this.effectiveTaxRateCalculator = effectiveTaxRateCalculator;
1402
- }
1403
- /**
1404
- * Calculates the tax amount based on a taxable base and a tax rate.
1405
- *
1406
- * @param params - An object containing:
1407
- * @param params.taxableBase - The base amount on which the tax is calculated (as a BigNumber).
1408
- * @param params.taxRate - The tax rate to apply (as a BigNumber, representing a percentage).
1409
- * @returns The calculated tax amount as a BigNumber.
1410
- */
1411
- TaxAmountCalculator.prototype.calculateTaxAmount = function (_a) {
1412
- var taxableBase = _a.taxableBase, taxRate = _a.taxRate;
1413
- return new BigNumber(taxableBase).multipliedBy(taxRate).dividedBy(100);
1414
- };
1415
- /**
1416
- * Calculates the tax amount considering a deferred tax value.
1417
- *
1418
- * @param params - The parameters for the calculation.
1419
- * @param params.taxableBase - The base amount on which tax is calculated.
1420
- * @param params.taxRate - The tax rate as a percentage.
1421
- * @param params.deferredTaxAmount - The amount of tax that is deferred and should be subtracted from the result.
1422
- * @returns The calculated tax amount after subtracting the deferred tax.
1423
- */
1424
- TaxAmountCalculator.prototype.calculateTaxAmountWithDeferredTax = function (_a) {
1425
- var taxableBase = _a.taxableBase, taxRate = _a.taxRate, deferredTaxAmount = _a.deferredTaxAmount;
1426
- return new BigNumber(taxableBase)
1427
- .multipliedBy(taxRate)
1428
- .dividedBy(100)
1429
- .minus(deferredTaxAmount);
1430
- };
1431
- /**
1432
- * Calculates the tax amount based on the provided tax base, tax rate, and tax rate reduction,
1433
- * excluding deferred tax and governamental tax rate reductions.
1434
- *
1435
- * This method uses the effective tax rate calculated without considering governamental tax rate reductions,
1436
- * and applies it to the tax base to determine the final tax amount.
1437
- *
1438
- * @param params - The parameters for tax calculation.
1439
- * @param params.taxBase - The base amount on which the tax is calculated.
1440
- * @param params.taxRate - The initial tax rate before any reductions.
1441
- * @param params.taxRateReduction - The reduction applied to the tax rate.
1442
- * @returns The calculated tax amount as a BigNumber.
1443
- */
1444
- TaxAmountCalculator.prototype.calculateTaxAmountWithoutDeferredTaxAndWithoutGovernamentalTaxRate = function (_a) {
1445
- var taxBase = _a.taxBase, taxRate = _a.taxRate, taxRateReduction = _a.taxRateReduction;
1446
- var effectiveTaxRate = this.effectiveTaxRateCalculator.calculateEffectiveTaxRateWithoutGovernamentalTaxRateReduction({
1447
- taxRate: taxRate,
1448
- taxRateReduction: taxRateReduction
1449
- });
1450
- return new BigNumber(taxBase)
1451
- .multipliedBy(effectiveTaxRate)
1452
- .dividedBy(100);
1453
- };
1454
- TaxAmountCalculator.ctorParameters = function () { return [
1455
- { type: EffectiveTaxRateCalculator }
1456
- ]; };
1457
- TaxAmountCalculator.ɵprov = core.ɵɵdefineInjectable({ factory: function TaxAmountCalculator_Factory() { return new TaxAmountCalculator(core.ɵɵinject(EffectiveTaxRateCalculator)); }, token: TaxAmountCalculator, providedIn: "root" });
1458
- TaxAmountCalculator = __decorate([
1459
- core.Injectable({ providedIn: 'root' })
1460
- ], TaxAmountCalculator);
1461
- return TaxAmountCalculator;
1462
- }());
1463
-
1464
1546
  var TaxAmountCalculationRule = /** @class */ (function () {
1465
1547
  function TaxAmountCalculationRule(taxAmountCalculator) {
1466
1548
  this.taxAmountCalculator = taxAmountCalculator;
@@ -25641,7 +25723,8 @@
25641
25723
  }());
25642
25724
 
25643
25725
  var ErpTributosComponent = /** @class */ (function () {
25644
- function ErpTributosComponent(messageService, formBuilder, changeDetector, translate, e027StrLookup, beneficioFiscalLookup, e027eqiLookup, naturezaReceitaLookup, classificacaoTributariaLookup, lookupUtils, erpTributosService, gtag, rulesService, localeService) {
25726
+ function ErpTributosComponent(loadingContext, messageService, formBuilder, changeDetector, translate, e027StrLookup, beneficioFiscalLookup, e027eqiLookup, naturezaReceitaLookup, classificacaoTributariaLookup, lookupUtils, erpTributosService, gtag, rulesService, localeService, taxRoundingService, taxAmountCalculator, featureToggleService, taxStore) {
25727
+ this.loadingContext = loadingContext;
25645
25728
  this.messageService = messageService;
25646
25729
  this.formBuilder = formBuilder;
25647
25730
  this.changeDetector = changeDetector;
@@ -25656,6 +25739,10 @@
25656
25739
  this.gtag = gtag;
25657
25740
  this.rulesService = rulesService;
25658
25741
  this.localeService = localeService;
25742
+ this.taxRoundingService = taxRoundingService;
25743
+ this.taxAmountCalculator = taxAmountCalculator;
25744
+ this.featureToggleService = featureToggleService;
25745
+ this.taxStore = taxStore;
25659
25746
  this.camposBloqueados = false;
25660
25747
  this.currencyLocaleOptions = {
25661
25748
  currencySymbol: '',
@@ -25671,7 +25758,6 @@
25671
25758
  this.tributosValue = [];
25672
25759
  this.reload = true;
25673
25760
  this.indexAccordion = [];
25674
- this.isLoading = false;
25675
25761
  this.menuItemPis = false;
25676
25762
  this.menuItemCofins = false;
25677
25763
  this.menuItemIpi = false;
@@ -25765,6 +25851,7 @@
25765
25851
  decimalSeparator: this.currencyLocaleOptions.decimalSeparator,
25766
25852
  thousandsSeparator: this.currencyLocaleOptions.thousandsSeparator
25767
25853
  };
25854
+ this.getArredondamentoAbnt();
25768
25855
  };
25769
25856
  ErpTributosComponent.prototype.ngOnChanges = function (changes) {
25770
25857
  var variaveisAlteradas = Object.keys(changes);
@@ -28892,10 +28979,6 @@
28892
28979
  imposto != exports.EnumTipoTributo.FCP_ST_RETIDO_ANT &&
28893
28980
  imposto != exports.EnumTipoTributo.FUNRURAL_TOTAL);
28894
28981
  };
28895
- ErpTributosComponent.prototype.roundImposto = function (number, decimals) {
28896
- var x = Math.pow(10, Number(decimals) + 1);
28897
- return (Number(number) + 1 / x).toFixed(decimals);
28898
- };
28899
28982
  ErpTributosComponent.prototype.addMessageErrorBaseDiferente = function (impostos, grupo, summaryMessage, detailMessage) {
28900
28983
  var impostoFiltrado = impostos.filter(function (imposto) {
28901
28984
  return ![
@@ -28949,7 +29032,12 @@
28949
29032
  .value;
28950
29033
  if (base != undefined &&
28951
29034
  aliquota != undefined)
28952
- it.formGroup.controls.valor.patchValue(_this.roundImposto((base * aliquota) / 100, 2));
29035
+ it.formGroup.controls.valor.patchValue(_this.taxAmountCalculator
29036
+ .calculateTaxAmount({
29037
+ taxableBase: new BigNumber(Number(base)),
29038
+ taxRate: new BigNumber(Number(aliquota))
29039
+ })
29040
+ .toNumber());
28953
29041
  }
28954
29042
  else if (tributo == exports.EnumTipoTributo.ICMS &&
28955
29043
  it.formGroup.controls.situacaoTributaria
@@ -28960,7 +29048,12 @@
28960
29048
  .value;
28961
29049
  if (base != undefined &&
28962
29050
  aliquota != undefined)
28963
- it.formGroup.controls.valor.patchValue(_this.roundImposto((base * aliquota) / 100, 2));
29051
+ it.formGroup.controls.valor.patchValue(_this.taxAmountCalculator
29052
+ .calculateTaxAmount({
29053
+ taxableBase: new BigNumber(Number(base)),
29054
+ taxRate: new BigNumber(Number(aliquota))
29055
+ })
29056
+ .toNumber());
28964
29057
  }
28965
29058
  else if (tributo ===
28966
29059
  exports.EnumTipoTributo.FUNRURAL_INSS ||
@@ -28981,7 +29074,12 @@
28981
29074
  .value;
28982
29075
  if (base != undefined &&
28983
29076
  aliquota != undefined) {
28984
- it.formGroup.controls.valor.patchValue(_this.roundImposto((base * aliquota) / 100, 2));
29077
+ it.formGroup.controls.valor.patchValue(_this.taxAmountCalculator
29078
+ .calculateTaxAmount({
29079
+ taxableBase: new BigNumber(Number(base)),
29080
+ taxRate: new BigNumber(Number(aliquota))
29081
+ })
29082
+ .toNumber());
28985
29083
  }
28986
29084
  else {
28987
29085
  it.formGroup.controls.valor.reset(null);
@@ -29037,8 +29135,10 @@
29037
29135
  : valores.base;
29038
29136
  }
29039
29137
  if (!angularComponents$1.isNullOrUndefined(imposto === null || imposto === void 0 ? void 0 : imposto.formGroup.value.valor)) {
29040
- valores.valor = Number(this_1.roundImposto(Number(valores.valor) +
29041
- Number(imposto.formGroup.value.valor), 2));
29138
+ valores.valor = this_1.taxRoundingService
29139
+ .halfUp(Number(valores.valor) +
29140
+ Number(imposto.formGroup.value.valor), 2)
29141
+ .toNumber();
29042
29142
  }
29043
29143
  };
29044
29144
  var this_1 = this;
@@ -30501,7 +30601,7 @@
30501
30601
  };
30502
30602
  ErpTributosComponent.prototype.initializeValueChanges = function (_a) {
30503
30603
  var _this = this;
30504
- var item = _a.item;
30604
+ var item = _a.item, group = _a.group;
30505
30605
  item.formGroup.valueChanges
30506
30606
  .pipe(operators.startWith(item.formGroup.getRawValue()),
30507
30607
  // We are using debounceTime here because our Lookup Component is emitting two events unfortunately.
@@ -30537,6 +30637,7 @@
30537
30637
  item.formGroup
30538
30638
  .get('impostoManual')
30539
30639
  .setValue(true, { emitEvent: false });
30640
+ _this.markICMSSimplesAsManual(item.name, group, exports.EnumCampoTributo.ImpostoManual);
30540
30641
  }
30541
30642
  }
30542
30643
  if (startingValue[exports.EnumCampoTributo.TipoCalculoImposto] !==
@@ -30565,6 +30666,7 @@
30565
30666
  .setValue(EnumTipoCalculoImposto.MANUAL, {
30566
30667
  emitEvent: false
30567
30668
  });
30669
+ _this.markICMSSimplesAsManual(item.name, group, exports.EnumCampoTributo.TipoCalculoImposto);
30568
30670
  }
30569
30671
  }
30570
30672
  _this.updateTwoWayDataBinding();
@@ -30659,7 +30761,44 @@
30659
30761
  .item.find(function (item) { return item.name === taxType; });
30660
30762
  return (_c = (_b = (_a = item.formGroup.get(field)).validator) === null || _b === void 0 ? void 0 : _b.call(_a, {})) === null || _c === void 0 ? void 0 : _c.required;
30661
30763
  };
30764
+ // Work-around pra resolver a #ERPPEQ-20595.
30765
+ // No futuro mover para o ManualTaxCalculationRule e TaxCalculationTypeCalculationRule
30766
+ // quando os impostos legados forem migrados para o novo padrão.
30767
+ ErpTributosComponent.prototype.markICMSSimplesAsManual = function (tax, group, field) {
30768
+ if (tax !== exports.EnumTipoTributo.ICMS)
30769
+ return;
30770
+ var ICMS_SIMPLES_ITEM = group.item.find(function (item) { return item.name === exports.EnumTipoTributo.ICMS_SIMPLES; });
30771
+ if (!ICMS_SIMPLES_ITEM)
30772
+ return;
30773
+ if (field === exports.EnumCampoTributo.ImpostoManual) {
30774
+ ICMS_SIMPLES_ITEM.formGroup
30775
+ .get('impostoManual')
30776
+ .setValue(true, { emitEvent: false });
30777
+ }
30778
+ else if (field === exports.EnumCampoTributo.TipoCalculoImposto) {
30779
+ ICMS_SIMPLES_ITEM.formGroup
30780
+ .get(field)
30781
+ .setValue(EnumTipoCalculoImposto.MANUAL, { emitEvent: false });
30782
+ }
30783
+ };
30784
+ ErpTributosComponent.prototype.getArredondamentoAbnt = function () {
30785
+ var _this = this;
30786
+ this.loadingContext.push();
30787
+ this.featureToggleService
30788
+ .isEnabled({
30789
+ domain: 'erpx_cpl_imp',
30790
+ service: 'calculo_impostos',
30791
+ name: 'arredondamentoAbnt'
30792
+ })
30793
+ .pipe(operators.first(), operators.finalize(function () { return _this.loadingContext.pop(); }))
30794
+ .subscribe({
30795
+ next: function (arredondamentoAbnt) {
30796
+ _this.taxStore.setArredondamentoAbnt(arredondamentoAbnt);
30797
+ }
30798
+ });
30799
+ };
30662
30800
  ErpTributosComponent.ctorParameters = function () { return [
30801
+ { type: LoadingContext },
30663
30802
  { type: api.MessageService },
30664
30803
  { type: forms.FormBuilder },
30665
30804
  { type: core.ChangeDetectorRef },
@@ -30673,7 +30812,11 @@
30673
30812
  { type: ErpTributosService },
30674
30813
  { type: platformUtils.GTagService },
30675
30814
  { type: RulesService },
30676
- { type: angularComponents$1.LocaleService }
30815
+ { type: angularComponents$1.LocaleService },
30816
+ { type: TaxRoundingService },
30817
+ { type: TaxAmountCalculator },
30818
+ { type: platformComponents.FeatureToggleService },
30819
+ { type: TaxStore }
30677
30820
  ]; };
30678
30821
  __decorate([
30679
30822
  core.Input()
@@ -30708,7 +30851,8 @@
30708
30851
  ErpTributosComponent = __decorate([
30709
30852
  core.Component({
30710
30853
  selector: 'erp-tributos',
30711
- template: "<s-loading-state [loading]=\"isLoading\">\n <div class=\"ui-fluid\">\n <div class=\"ui-g\">\n <div class=\"ui-g-3\">\n <s-button\n [priority]=\"ButtonPriority.Default\"\n [model]=\"getActions()\"\n [auxiliary]=\"false\"\n [label]=\"'erpx.tributos.actions_label' | translate\"\n [disabled]=\"camposBloqueados == true\"\n >\n </s-button>\n </div>\n </div>\n </div>\n\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <p-accordion [(activeIndex)]=\"indexAccordion\" [multiple]=\"true\">\n <p-accordionTab *ngFor=\"let grupo of grupos\">\n <p-header>\n <span\n *ngIf=\"isGroupInvalid(grupo)\"\n class=\"sds-badge-error\"\n >\n </span>\n {{ grupo.grupo | translate }}\n </p-header>\n\n <div *ngFor=\"let item of grupo.item\">\n <div\n class=\"flex flex-wrap justify-between items-center mt-8\"\n >\n <div class=\"flex items-center flex-wrap\">\n <h3>{{ item.label | translate }}</h3>\n\n <s-button\n *ngIf=\"\n permissionMemoriaCalculo &&\n hideButton(item.name)\n \"\n [priority]=\"ButtonPriority.Link\"\n [label]=\"\n getTranslateButton(item.name)\n | translate\n \"\n (onClick)=\"memoriaCalculo(item)\"\n [size]=\"ButtonSize.Small\"\n [disabled]=\"disabledButton(item)\"\n iconClass=\"far fa-cog\"\n [slide]=\"true\"\n [animation]=\"ButtonAnimation.Rotate\"\n ></s-button>\n </div>\n\n <s-badge\n *ngIf=\"isBadgeVisible(item)\"\n [color]=\"getBadgeColor(item)\"\n [text]=\"getBadgeText(item)\"\n [infoSign]=\"getBadgeInfoSign(item)\"\n >\n </s-badge>\n </div>\n\n <hr />\n\n <form novalidate [formGroup]=\"item.formGroup\">\n <s-dynamic-form\n [form]=\"item.formGroup\"\n [fields]=\"item.formField\"\n [errorMessages]=\"{\n required:\n 'erpx.tributos.fields_required_validator'\n | translate\n }\"\n >\n </s-dynamic-form>\n </form>\n </div>\n </p-accordionTab>\n </p-accordion>\n </div>\n </div>\n</s-loading-state>\n",
30854
+ template: "<s-loading-state [loading]=\"loadingContext.isLoading()\">\n <div class=\"ui-fluid\">\n <div class=\"ui-g\">\n <div class=\"ui-g-3\">\n <s-button\n [priority]=\"ButtonPriority.Default\"\n [model]=\"getActions()\"\n [auxiliary]=\"false\"\n [label]=\"'erpx.tributos.actions_label' | translate\"\n [disabled]=\"camposBloqueados == true\"\n >\n </s-button>\n </div>\n </div>\n </div>\n\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <p-accordion [(activeIndex)]=\"indexAccordion\" [multiple]=\"true\">\n <p-accordionTab *ngFor=\"let grupo of grupos\">\n <p-header>\n <span\n *ngIf=\"isGroupInvalid(grupo)\"\n class=\"sds-badge-error\"\n >\n </span>\n {{ grupo.grupo | translate }}\n </p-header>\n\n <div *ngFor=\"let item of grupo.item\">\n <div\n class=\"flex flex-wrap justify-between items-center mt-8\"\n >\n <div class=\"flex items-center flex-wrap\">\n <h3>{{ item.label | translate }}</h3>\n\n <s-button\n *ngIf=\"\n permissionMemoriaCalculo &&\n hideButton(item.name)\n \"\n [priority]=\"ButtonPriority.Link\"\n [label]=\"\n getTranslateButton(item.name)\n | translate\n \"\n (onClick)=\"memoriaCalculo(item)\"\n [size]=\"ButtonSize.Small\"\n [disabled]=\"disabledButton(item)\"\n iconClass=\"far fa-cog\"\n [slide]=\"true\"\n [animation]=\"ButtonAnimation.Rotate\"\n ></s-button>\n </div>\n\n <s-badge\n *ngIf=\"isBadgeVisible(item)\"\n [color]=\"getBadgeColor(item)\"\n [text]=\"getBadgeText(item)\"\n [infoSign]=\"getBadgeInfoSign(item)\"\n >\n </s-badge>\n </div>\n\n <hr />\n\n <form novalidate [formGroup]=\"item.formGroup\">\n <s-dynamic-form\n [form]=\"item.formGroup\"\n [fields]=\"item.formField\"\n [errorMessages]=\"{\n required:\n 'erpx.tributos.fields_required_validator'\n | translate\n }\"\n >\n </s-dynamic-form>\n </form>\n </div>\n </p-accordionTab>\n </p-accordion>\n </div>\n </div>\n</s-loading-state>\n",
30855
+ providers: [LoadingContext],
30712
30856
  styles: [".flex{display:-ms-flexbox;display:flex}.items-center{-ms-flex-align:center;align-items:center}.justify-between{-ms-flex-pack:justify;justify-content:space-between}.mt-8{margin-top:1rem}.flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}"]
30713
30857
  })
30714
30858
  ], ErpTributosComponent);
@@ -32844,48 +32988,51 @@
32844
32988
  exports.nonNullish = nonNullish;
32845
32989
  exports.ɵa = ErpResumoComponent;
32846
32990
  exports.ɵb = ErpResumoService;
32847
- exports.ɵba = TaxRateCalculationRule;
32848
- exports.ɵbb = EffectiveTaxRateCalculationRule;
32849
- exports.ɵbc = TaxAmountCalculationRule;
32850
- exports.ɵbd = GrossAmountCalculationRule;
32851
- exports.ɵbe = GrossAmountCalculator;
32852
- exports.ɵbf = TaxSituationCalculationRule;
32853
- exports.ɵbg = TaxClassificationCalculationRule;
32854
- exports.ɵbh = TaxCalculationTypeCalculationRule;
32855
- exports.ɵbi = ManualTaxCalculationRule;
32856
- exports.ɵbj = OutgoingInvoiceCalculationRulesRegistry;
32857
- exports.ɵbk = AssessmentPeriodCalculationRule;
32858
- exports.ɵbl = SaleOrderCalculationRulesRegistry;
32859
- exports.ɵbm = PurchaseOrderCalculationRulesRegistry;
32860
- exports.ɵbn = FocusService;
32861
- exports.ɵbo = ErpLoteSeriesService;
32862
- exports.ɵbp = QuantidadeDisponivelDemandaService;
32863
- exports.ɵbq = EntityService;
32864
- exports.ɵbr = QuantidadeDisponivelDemandaModule;
32865
- exports.ɵc = ErpTributosService;
32866
- exports.ɵd = RulesService;
32867
- exports.ɵe = StatusRulesRegistry;
32868
- exports.ɵf = IncomingInvoiceStatusRulesRegistry;
32869
- exports.ɵg = TaxClassificationStatusRule;
32870
- exports.ɵh = OutgoingInvoiceStatusRulesRegistry;
32871
- exports.ɵi = SaleOrderStatusRulesRegistry;
32872
- exports.ɵj = PurchaseOrderStatusRulesRegistry;
32873
- exports.ɵk = ValidationRulesRegistry;
32874
- exports.ɵl = IncomingInvoiceValidationRulesRegistry;
32875
- exports.ɵm = TaxableBaseRequiredValidationRule;
32876
- exports.ɵn = TaxRateRequiredValidationRule;
32877
- exports.ɵo = TaxClassificationRequiredValidationRule;
32878
- exports.ɵp = TaxAmountRequiredValidationRule;
32879
- exports.ɵq = TaxSituationRequiredValidationRule;
32880
- exports.ɵr = OutgoingInvoiceValidationRulesRegistry;
32881
- exports.ɵs = AssessmentPeriodRequiredValidationRule;
32882
- exports.ɵt = SaleOrderValidationRulesRegistry;
32883
- exports.ɵu = PurchaseOrderValidationRulesRegistry;
32884
- exports.ɵv = CalculationRulesRegistry;
32885
- exports.ɵw = IncomingInvoiceCalculationRulesRegistry;
32886
- exports.ɵx = TaxableBaseCalculationRule;
32887
- exports.ɵy = TaxAmountCalculator;
32888
- exports.ɵz = EffectiveTaxRateCalculator;
32991
+ exports.ɵba = EffectiveTaxRateCalculator;
32992
+ exports.ɵbb = TaxRoundingService;
32993
+ exports.ɵbc = TaxStore;
32994
+ exports.ɵbd = TaxRateCalculationRule;
32995
+ exports.ɵbe = EffectiveTaxRateCalculationRule;
32996
+ exports.ɵbf = TaxAmountCalculationRule;
32997
+ exports.ɵbg = GrossAmountCalculationRule;
32998
+ exports.ɵbh = GrossAmountCalculator;
32999
+ exports.ɵbi = TaxSituationCalculationRule;
33000
+ exports.ɵbj = TaxClassificationCalculationRule;
33001
+ exports.ɵbk = TaxCalculationTypeCalculationRule;
33002
+ exports.ɵbl = ManualTaxCalculationRule;
33003
+ exports.ɵbm = OutgoingInvoiceCalculationRulesRegistry;
33004
+ exports.ɵbn = AssessmentPeriodCalculationRule;
33005
+ exports.ɵbo = SaleOrderCalculationRulesRegistry;
33006
+ exports.ɵbp = PurchaseOrderCalculationRulesRegistry;
33007
+ exports.ɵbq = FocusService;
33008
+ exports.ɵbr = ErpLoteSeriesService;
33009
+ exports.ɵbs = QuantidadeDisponivelDemandaService;
33010
+ exports.ɵbt = EntityService;
33011
+ exports.ɵbu = QuantidadeDisponivelDemandaModule;
33012
+ exports.ɵc = LoadingContext;
33013
+ exports.ɵd = ErpTributosService;
33014
+ exports.ɵe = RulesService;
33015
+ exports.ɵf = StatusRulesRegistry;
33016
+ exports.ɵg = IncomingInvoiceStatusRulesRegistry;
33017
+ exports.ɵh = TaxClassificationStatusRule;
33018
+ exports.ɵi = OutgoingInvoiceStatusRulesRegistry;
33019
+ exports.ɵj = SaleOrderStatusRulesRegistry;
33020
+ exports.ɵk = PurchaseOrderStatusRulesRegistry;
33021
+ exports.ɵl = ValidationRulesRegistry;
33022
+ exports.ɵm = IncomingInvoiceValidationRulesRegistry;
33023
+ exports.ɵn = TaxableBaseRequiredValidationRule;
33024
+ exports.ɵo = TaxRateRequiredValidationRule;
33025
+ exports.ɵp = TaxClassificationRequiredValidationRule;
33026
+ exports.ɵq = TaxAmountRequiredValidationRule;
33027
+ exports.ɵr = TaxSituationRequiredValidationRule;
33028
+ exports.ɵs = OutgoingInvoiceValidationRulesRegistry;
33029
+ exports.ɵt = AssessmentPeriodRequiredValidationRule;
33030
+ exports.ɵu = SaleOrderValidationRulesRegistry;
33031
+ exports.ɵv = PurchaseOrderValidationRulesRegistry;
33032
+ exports.ɵw = CalculationRulesRegistry;
33033
+ exports.ɵx = IncomingInvoiceCalculationRulesRegistry;
33034
+ exports.ɵy = TaxableBaseCalculationRule;
33035
+ exports.ɵz = TaxAmountCalculator;
32889
33036
 
32890
33037
  Object.defineProperty(exports, '__esModule', { value: true });
32891
33038