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.
|
@@ -3,5 +3,6 @@ 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 preCalculatedValues - Opcional: Map de feeId -> valor já calculado (para valores alterados manualmente)
|
|
6
7
|
*/
|
|
7
|
-
export declare const calculateTotalPercentageFees: (allFees: RatecardLaneFee[], cte: Cte, allFeesForCalc?: RatecardLaneFee[]) => Map<number, RatecardLaneFeeWithFeeResult>;
|
|
8
|
+
export declare const calculateTotalPercentageFees: (allFees: RatecardLaneFee[], cte: Cte, allFeesForCalc?: RatecardLaneFee[], preCalculatedValues?: Map<number, number>) => Map<number, RatecardLaneFeeWithFeeResult>;
|
package/build/index.esm.js
CHANGED
|
@@ -1000,8 +1000,9 @@ var calculateIcms = function (totalFromAllFees, icmsRate) {
|
|
|
1000
1000
|
/**
|
|
1001
1001
|
* Calcula todas as fees do tipo TOTAL_PERCENTAGE de forma iterativa
|
|
1002
1002
|
* para resolver a interdependência entre elas (ex: TRT e GAC)
|
|
1003
|
+
* @param preCalculatedValues - Opcional: Map de feeId -> valor já calculado (para valores alterados manualmente)
|
|
1003
1004
|
*/
|
|
1004
|
-
var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc) {
|
|
1005
|
+
var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, preCalculatedValues) {
|
|
1005
1006
|
var results = new Map();
|
|
1006
1007
|
// Separar fees em dois grupos
|
|
1007
1008
|
// IMPORTANTE: ICMS não deve ser calculado aqui, ele tem tratamento especial no calculateFee
|
|
@@ -1022,11 +1023,27 @@ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc) {
|
|
|
1022
1023
|
console.log("\n\uD83D\uDD04 Calculando ".concat(percentageFees.length, " fees TOTAL_PERCENTAGE de forma iterativa"));
|
|
1023
1024
|
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(', ')));
|
|
1024
1025
|
// Calcular fees não-percentuais (base fixa)
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1026
|
+
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(', ')));
|
|
1027
|
+
var baseNonPercentage = 0;
|
|
1028
|
+
// Se temos valores pré-calculados, usar eles ao invés de recalcular
|
|
1029
|
+
if (preCalculatedValues) {
|
|
1030
|
+
baseNonPercentage = nonPercentageFees.reduce(function (sum, fee) {
|
|
1031
|
+
var _a;
|
|
1032
|
+
var value = ((_a = fee.fee) === null || _a === void 0 ? void 0 : _a.id) ? preCalculatedValues.get(fee.fee.id) : undefined;
|
|
1033
|
+
return sum + (value !== undefined ? value : 0);
|
|
1034
|
+
}, 0);
|
|
1035
|
+
}
|
|
1036
|
+
else {
|
|
1037
|
+
// Calcular normalmente
|
|
1038
|
+
var nonPercentageResults = filterSiblingFees(nonPercentageFees.map(function (it) {
|
|
1039
|
+
return calculateFee(it, cte, allFees, false, allFeesForCalc);
|
|
1040
|
+
}));
|
|
1041
|
+
baseNonPercentage = nonPercentageResults.reduce(function (sum, r) { return sum + (r.totalToCalc || 0); }, 0);
|
|
1042
|
+
}
|
|
1029
1043
|
console.log("\uD83D\uDCCA Base n\u00E3o-percentual: R$ ".concat(baseNonPercentage.toFixed(2)));
|
|
1044
|
+
if (!preCalculatedValues) {
|
|
1045
|
+
console.log("\uD83D\uDCCA Detalhamento calculado automaticamente");
|
|
1046
|
+
}
|
|
1030
1047
|
// Calcular fees percentuais iterativamente até convergir
|
|
1031
1048
|
var maxIterations = 10;
|
|
1032
1049
|
var tolerance = 0.01; // Tolerância de 1 centavo
|
package/build/index.esm.js.gz
CHANGED
|
Binary file
|