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/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/build/types/Cte/index.d.ts +4 -0
- package/build/types/CteInvoice/index.d.ts +23 -0
- package/package.json +1 -1
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
|
|
977
|
+
* @param currentValues - Opcional: Map de feeId -> valor atual (para usar valores já 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,
|
|
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
|
-
|
|
999
|
-
|
|
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) ?
|
|
1003
|
-
|
|
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
|
|
1024
|
+
// Inicializar com valores atuais ou zerados
|
|
1017
1025
|
var previousValues = new Map();
|
|
1018
1026
|
percentageFees.forEach(function (pf) {
|
|
1019
|
-
|
|
1020
|
-
|
|
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
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
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:
|
|
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
|