b2m-utils 0.0.288 → 0.0.289

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.
@@ -593,31 +593,42 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
593
593
  // Inicializar com valores zerados
594
594
  var previousValues_1 = new Map();
595
595
  percentageFees_1.forEach(function (pf) { return previousValues_1.set(pf.fee.id, 0); });
596
+ console.log("\n\uD83D\uDD04 Iniciando c\u00E1lculo iterativo para fee ".concat(fee_1.id, " (").concat(fee_1.name, ")"));
597
+ console.log("\uD83D\uDCCA Base n\u00E3o-percentual: R$ ".concat(nonPercentageResults_1.reduce(function (sum, r) { return sum + (r.totalToCalc || 0); }, 0).toFixed(2)));
598
+ console.log("\uD83D\uDCCB Fees percentuais a calcular: ".concat(percentageFees_1.map(function (f) { var _a; return "".concat((_a = f.fee) === null || _a === void 0 ? void 0 : _a.name, " (").concat(f.value, "%)"); }).join(', ')));
596
599
  var _loop_1 = function (iteration) {
600
+ console.log("\n--- Itera\u00E7\u00E3o ".concat(iteration + 1, " ---"));
597
601
  // Calcular cada fee percentual com base nos valores atuais das outras
598
602
  var currentResults = percentageFees_1.map(function (pf) {
603
+ var _a;
599
604
  // Criar uma lista temporária com os valores já calculados das outras fees percentuais
600
605
  var tempFees = percentageFees_1
601
606
  .filter(function (f) { return f.fee.id !== pf.fee.id; })
602
607
  .map(function (f) { return (__assign(__assign({}, f), { totalFee: previousValues_1.get(f.fee.id) || 0, totalToCalc: previousValues_1.get(f.fee.id) || 0 })); });
603
608
  // Calcular base: fees não-percentuais + outras fees percentuais
604
- var baseValue = nonPercentageResults_1.reduce(function (sum, r) { return sum + (r.totalToCalc || 0); }, 0) +
605
- tempFees.reduce(function (sum, f) { return sum + (f.totalFee || 0); }, 0);
609
+ var baseNonPercentage = nonPercentageResults_1.reduce(function (sum, r) { return sum + (r.totalToCalc || 0); }, 0);
610
+ var basePercentage = tempFees.reduce(function (sum, f) { return sum + (f.totalFee || 0); }, 0);
611
+ var baseValue = baseNonPercentage + basePercentage;
606
612
  var percentValue = (+pf.value / 100);
607
613
  var calculatedValue = baseValue * percentValue;
614
+ console.log(" ".concat((_a = pf.fee) === null || _a === void 0 ? void 0 : _a.name, ": base=").concat(baseValue.toFixed(2), " (").concat(baseNonPercentage.toFixed(2), " + ").concat(basePercentage.toFixed(2), ") \u00D7 ").concat(pf.value, "% = ").concat(calculatedValue.toFixed(2)));
608
615
  return __assign(__assign({}, pf), { totalFee: calculatedValue, totalToCalc: calculatedValue, fee: pf.fee, feeValue: pf.value, resultFee: "".concat(convertNumberToCurrency(baseValue, 'pt-br'), " x ").concat(+pf.value, "% = ").concat(convertNumberToCurrency(calculatedValue, 'pt-br')) });
609
616
  });
610
617
  // Verificar convergência
611
618
  var hasConverged = true;
612
619
  currentResults.forEach(function (result) {
620
+ var _a;
613
621
  var prevValue = previousValues_1.get(result.feeId) || 0;
614
- if (Math.abs(result.totalFee - prevValue) > tolerance_1) {
622
+ var diff = Math.abs(result.totalFee - prevValue);
623
+ if (diff > tolerance_1) {
615
624
  hasConverged = false;
616
625
  }
626
+ console.log(" ".concat((_a = result.fee) === null || _a === void 0 ? void 0 : _a.name, ": anterior=").concat(prevValue.toFixed(2), ", atual=").concat(result.totalFee.toFixed(2), ", diff=").concat(diff.toFixed(4)));
617
627
  previousValues_1.set(result.feeId, result.totalFee);
618
628
  });
619
629
  percentageResults = currentResults;
620
630
  if (hasConverged) {
631
+ console.log("\u2705 Convergiu na itera\u00E7\u00E3o ".concat(iteration + 1, "!"));
621
632
  return "break";
622
633
  }
623
634
  };
@@ -626,6 +637,11 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
626
637
  if (state_1 === "break")
627
638
  break;
628
639
  }
640
+ console.log("\n\uD83D\uDCC8 Resultado final das fees percentuais:");
641
+ percentageResults.forEach(function (r) {
642
+ var _a;
643
+ console.log(" ".concat((_a = r.fee) === null || _a === void 0 ? void 0 : _a.name, ": R$ ").concat((r.totalFee || 0).toFixed(2)));
644
+ });
629
645
  // Combinar resultados
630
646
  var filteredFeesResults = __spreadArray(__spreadArray([], nonPercentageResults_1, true), percentageResults, true);
631
647
  var totalFromAllFees = filteredFeesResults.map(function (result) {
Binary file