b2m-utils 0.0.306 → 0.0.308

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
@@ -974,9 +974,10 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
974
974
  /**
975
975
  * Calcula todas as fees do tipo TOTAL_PERCENTAGE de forma iterativa
976
976
  * para resolver a interdependência entre elas (ex: TRT e GAC)
977
- * @param preCalculatedValues - Opcional: Map de feeId -> valor calculado (para valores alterados manualmente)
977
+ * @param currentValues - Opcional: Map de feeId -> valor atual (para usar valores calculados/editados)
978
+ * @param manuallyEditedFeeIds - Opcional: Set de feeIds que foram editadas manualmente e não devem ser recalculadas
978
979
  */
979
- var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, preCalculatedValues) {
980
+ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, currentValues, manuallyEditedFeeIds) {
980
981
  var results = new Map();
981
982
  // Separar fees em dois grupos
982
983
  // IMPORTANTE: ICMS não deve ser calculado aqui, ele tem tratamento especial no calculateFee
@@ -994,13 +995,20 @@ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, preCa
994
995
  if (percentageFees.length === 0) {
995
996
  return results;
996
997
  }
998
+ // Calcular base das fees não-percentuais
999
+ // Se temos currentValues, usar eles; senão calcular normalmente
997
1000
  var baseNonPercentage = 0;
998
- // Se temos valores pré-calculados, usar eles ao invés de recalcular
999
- if (preCalculatedValues) {
1001
+ if (currentValues) {
1002
+ // Usar valores atuais das fees não-percentuais
1000
1003
  baseNonPercentage = nonPercentageFees.reduce(function (sum, fee) {
1001
1004
  var _a;
1002
- var value = ((_a = fee.fee) === null || _a === void 0 ? void 0 : _a.id) ? preCalculatedValues.get(fee.fee.id) : undefined;
1003
- return sum + (value !== undefined ? value : 0);
1005
+ var value = ((_a = fee.fee) === null || _a === void 0 ? void 0 : _a.id) ? currentValues.get(fee.fee.id) : undefined;
1006
+ if (value !== undefined) {
1007
+ return sum + value;
1008
+ }
1009
+ // Se não tem valor atual, calcular
1010
+ var calculated = calculateFee(fee, cte, allFees, false, allFeesForCalc);
1011
+ return sum + ((calculated === null || calculated === void 0 ? void 0 : calculated.totalToCalc) || 0);
1004
1012
  }, 0);
1005
1013
  }
1006
1014
  else {
@@ -1013,23 +1021,21 @@ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, preCa
1013
1021
  // Calcular fees percentuais iterativamente até convergir
1014
1022
  var maxIterations = 10;
1015
1023
  var tolerance = 0.01; // Tolerância de 1 centavo
1016
- // Inicializar com valores zerados ou pré-calculados
1024
+ // Inicializar com valores atuais ou zerados
1017
1025
  var previousValues = new Map();
1018
1026
  percentageFees.forEach(function (pf) {
1019
- // Se existe valor pré-calculado (editado manualmente), usar ele
1020
- var preCalcValue = preCalculatedValues === null || preCalculatedValues === void 0 ? void 0 : preCalculatedValues.get(pf.fee.id);
1021
- previousValues.set(pf.fee.id, preCalcValue !== undefined ? preCalcValue : 0);
1027
+ var currentValue = currentValues === null || currentValues === void 0 ? void 0 : currentValues.get(pf.fee.id);
1028
+ previousValues.set(pf.fee.id, currentValue !== undefined ? currentValue : 0);
1022
1029
  });
1023
1030
  var _loop_1 = function (iteration) {
1024
1031
  // Calcular cada fee percentual com base nos valores atuais das outras
1025
1032
  percentageFees.forEach(function (pf) {
1026
- // Se esta fee tem valor pré-calculado (foi editada manualmente), não recalcular
1027
- var preCalcValue = preCalculatedValues === null || preCalculatedValues === void 0 ? void 0 : preCalculatedValues.get(pf.fee.id);
1028
- if (preCalcValue !== undefined) {
1029
- // Manter o valor editado manualmente
1030
- previousValues.set(pf.fee.id, preCalcValue);
1033
+ // Se esta fee foi editada manualmente, não recalcular
1034
+ if (manuallyEditedFeeIds === null || manuallyEditedFeeIds === void 0 ? void 0 : manuallyEditedFeeIds.has(pf.fee.id)) {
1035
+ var manualValue = (currentValues === null || currentValues === void 0 ? void 0 : currentValues.get(pf.fee.id)) || 0;
1036
+ previousValues.set(pf.fee.id, manualValue);
1031
1037
  // Armazenar resultado com valor editado
1032
- results.set(pf.fee.id, __assign(__assign({}, pf), { totalFee: preCalcValue, totalToCalc: preCalcValue, resultFee: "".concat(convertNumberToCurrency(preCalcValue, 'pt-br'), " (editado manualmente)") }));
1038
+ results.set(pf.fee.id, __assign(__assign({}, pf), { totalFee: manualValue, totalToCalc: manualValue, resultFee: "".concat(convertNumberToCurrency(manualValue, 'pt-br'), " (editado manualmente)") }));
1033
1039
  return;
1034
1040
  }
1035
1041
  // Calcular base: fees não-percentuais + outras fees percentuais (exceto ela mesma)
package/build/index.js.gz CHANGED
Binary file