b2m-utils 0.0.292 → 0.0.294

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -1004,8 +1004,9 @@ var calculateIcms = function (totalFromAllFees, icmsRate) {
1004
1004
  /**
1005
1005
  * Calcula todas as fees do tipo TOTAL_PERCENTAGE de forma iterativa
1006
1006
  * para resolver a interdependência entre elas (ex: TRT e GAC)
1007
+ * @param preCalculatedValues - Opcional: Map de feeId -> valor já calculado (para valores alterados manualmente)
1007
1008
  */
1008
- var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc) {
1009
+ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, preCalculatedValues) {
1009
1010
  var results = new Map();
1010
1011
  // Separar fees em dois grupos
1011
1012
  // IMPORTANTE: ICMS não deve ser calculado aqui, ele tem tratamento especial no calculateFee
@@ -1026,11 +1027,27 @@ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc) {
1026
1027
  console.log("\n\uD83D\uDD04 Calculando ".concat(percentageFees.length, " fees TOTAL_PERCENTAGE de forma iterativa"));
1027
1028
  console.log("\uD83D\uDCCB Fees: ".concat(percentageFees.map(function (f) { var _a; return "".concat((_a = f.fee) === null || _a === void 0 ? void 0 : _a.name, " (").concat(f.value, "%)"); }).join(', ')));
1028
1029
  // Calcular fees não-percentuais (base fixa)
1029
- var nonPercentageResults = filterSiblingFees(nonPercentageFees.map(function (it) {
1030
- return calculateFee(it, cte, allFees, false, allFeesForCalc);
1031
- }));
1032
- var baseNonPercentage = nonPercentageResults.reduce(function (sum, r) { return sum + (r.totalToCalc || 0); }, 0);
1030
+ console.log("\uD83D\uDCCB Fees n\u00E3o-percentuais: ".concat(nonPercentageFees.map(function (f) { var _a; return "".concat((_a = f.fee) === null || _a === void 0 ? void 0 : _a.name); }).join(', ')));
1031
+ var baseNonPercentage = 0;
1032
+ // Se temos valores pré-calculados, usar eles ao invés de recalcular
1033
+ if (preCalculatedValues) {
1034
+ baseNonPercentage = nonPercentageFees.reduce(function (sum, fee) {
1035
+ var _a;
1036
+ var value = ((_a = fee.fee) === null || _a === void 0 ? void 0 : _a.id) ? preCalculatedValues.get(fee.fee.id) : undefined;
1037
+ return sum + (value !== undefined ? value : 0);
1038
+ }, 0);
1039
+ }
1040
+ else {
1041
+ // Calcular normalmente
1042
+ var nonPercentageResults = filterSiblingFees(nonPercentageFees.map(function (it) {
1043
+ return calculateFee(it, cte, allFees, false, allFeesForCalc);
1044
+ }));
1045
+ baseNonPercentage = nonPercentageResults.reduce(function (sum, r) { return sum + (r.totalToCalc || 0); }, 0);
1046
+ }
1033
1047
  console.log("\uD83D\uDCCA Base n\u00E3o-percentual: R$ ".concat(baseNonPercentage.toFixed(2)));
1048
+ if (!preCalculatedValues) {
1049
+ console.log("\uD83D\uDCCA Detalhamento calculado automaticamente");
1050
+ }
1034
1051
  // Calcular fees percentuais iterativamente até convergir
1035
1052
  var maxIterations = 10;
1036
1053
  var tolerance = 0.01; // Tolerância de 1 centavo
package/build/index.js.gz CHANGED
Binary file