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