b2m-utils 0.0.294 → 0.0.295
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/getCtesFeesResult/index.d.ts +1 -1
- package/build/index.esm.js +23 -36
- package/build/index.esm.js.gz +0 -0
- package/build/index.esm.js.map +1 -1
- package/build/index.js +23 -36
- package/build/index.js.gz +0 -0
- package/build/index.js.map +1 -1
- package/package.json +1 -1
package/build/index.js
CHANGED
|
@@ -1024,10 +1024,6 @@ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, preCa
|
|
|
1024
1024
|
if (percentageFees.length === 0) {
|
|
1025
1025
|
return results;
|
|
1026
1026
|
}
|
|
1027
|
-
console.log("\n\uD83D\uDD04 Calculando ".concat(percentageFees.length, " fees TOTAL_PERCENTAGE de forma iterativa"));
|
|
1028
|
-
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(', ')));
|
|
1029
|
-
// Calcular fees não-percentuais (base fixa)
|
|
1030
|
-
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(', ')));
|
|
1031
1027
|
var baseNonPercentage = 0;
|
|
1032
1028
|
// Se temos valores pré-calculados, usar eles ao invés de recalcular
|
|
1033
1029
|
if (preCalculatedValues) {
|
|
@@ -1044,10 +1040,6 @@ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, preCa
|
|
|
1044
1040
|
}));
|
|
1045
1041
|
baseNonPercentage = nonPercentageResults.reduce(function (sum, r) { return sum + (r.totalToCalc || 0); }, 0);
|
|
1046
1042
|
}
|
|
1047
|
-
console.log("\uD83D\uDCCA Base n\u00E3o-percentual: R$ ".concat(baseNonPercentage.toFixed(2)));
|
|
1048
|
-
if (!preCalculatedValues) {
|
|
1049
|
-
console.log("\uD83D\uDCCA Detalhamento calculado automaticamente");
|
|
1050
|
-
}
|
|
1051
1043
|
// Calcular fees percentuais iterativamente até convergir
|
|
1052
1044
|
var maxIterations = 10;
|
|
1053
1045
|
var tolerance = 0.01; // Tolerância de 1 centavo
|
|
@@ -1055,10 +1047,8 @@ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, preCa
|
|
|
1055
1047
|
var previousValues = new Map();
|
|
1056
1048
|
percentageFees.forEach(function (pf) { return previousValues.set(pf.fee.id, 0); });
|
|
1057
1049
|
var _loop_1 = function (iteration) {
|
|
1058
|
-
console.log("\n--- Itera\u00E7\u00E3o ".concat(iteration + 1, " ---"));
|
|
1059
1050
|
// Calcular cada fee percentual com base nos valores atuais das outras
|
|
1060
1051
|
percentageFees.forEach(function (pf) {
|
|
1061
|
-
var _a;
|
|
1062
1052
|
// Calcular base: fees não-percentuais + outras fees percentuais (exceto ela mesma)
|
|
1063
1053
|
var basePercentage = Array.from(previousValues.entries())
|
|
1064
1054
|
.filter(function (_a) {
|
|
@@ -1072,7 +1062,6 @@ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, preCa
|
|
|
1072
1062
|
var baseValue = baseNonPercentage + basePercentage;
|
|
1073
1063
|
var percentValue = (+pf.value / 100);
|
|
1074
1064
|
var calculatedValue = baseValue * percentValue;
|
|
1075
|
-
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)));
|
|
1076
1065
|
previousValues.set(pf.fee.id, calculatedValue);
|
|
1077
1066
|
// Armazenar resultado
|
|
1078
1067
|
results.set(pf.fee.id, __assign(__assign({}, pf), { totalFee: calculatedValue, totalToCalc: calculatedValue, resultFee: "".concat(convertNumberToCurrency(baseValue, 'pt-br'), " x ").concat(+pf.value, "% = ").concat(convertNumberToCurrency(calculatedValue, 'pt-br')) }));
|
|
@@ -1095,7 +1084,6 @@ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, preCa
|
|
|
1095
1084
|
hasConverged = false;
|
|
1096
1085
|
}
|
|
1097
1086
|
if (hasConverged) {
|
|
1098
|
-
console.log("\u2705 Convergiu na itera\u00E7\u00E3o ".concat(iteration + 1, "!"));
|
|
1099
1087
|
return "break";
|
|
1100
1088
|
}
|
|
1101
1089
|
};
|
|
@@ -1104,11 +1092,6 @@ var calculateTotalPercentageFees = function (allFees, cte, allFeesForCalc, preCa
|
|
|
1104
1092
|
if (state_1 === "break")
|
|
1105
1093
|
break;
|
|
1106
1094
|
}
|
|
1107
|
-
console.log("\n\uD83D\uDCC8 Resultado final das fees percentuais:");
|
|
1108
|
-
results.forEach(function (result, feeId) {
|
|
1109
|
-
var _a;
|
|
1110
|
-
console.log(" ".concat((_a = result.fee) === null || _a === void 0 ? void 0 : _a.name, " (").concat(feeId, "): R$ ").concat((result.totalFee || 0).toFixed(2)));
|
|
1111
|
-
});
|
|
1112
1095
|
return results;
|
|
1113
1096
|
};
|
|
1114
1097
|
|
|
@@ -1395,7 +1378,7 @@ var getLaneFromRatecard = function (cte) {
|
|
|
1395
1378
|
};
|
|
1396
1379
|
|
|
1397
1380
|
var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
|
|
1398
|
-
var _a, _b, _c;
|
|
1381
|
+
var _a, _b, _c, _d;
|
|
1399
1382
|
var results = [];
|
|
1400
1383
|
// Separar fees por tipo: normais, TOTAL_PERCENTAGE e ICMS
|
|
1401
1384
|
var icmsFee = feesToCalc.find(function (f) { var _a; return ((_a = f.fee) === null || _a === void 0 ? void 0 : _a.id) === exports.FeeEnum.ICMS || f.feeId === exports.FeeEnum.ICMS; });
|
|
@@ -1422,8 +1405,8 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
|
|
|
1422
1405
|
});
|
|
1423
1406
|
if (siblingFees && (siblingFees === null || siblingFees === void 0 ? void 0 : siblingFees.length) > 0) {
|
|
1424
1407
|
var siblingFeesResults = [];
|
|
1425
|
-
for (var
|
|
1426
|
-
var item_1 = siblingFees_1[
|
|
1408
|
+
for (var _f = 0, siblingFees_1 = siblingFees; _f < siblingFees_1.length; _f++) {
|
|
1409
|
+
var item_1 = siblingFees_1[_f];
|
|
1427
1410
|
var result = calculateFee(item_1, cte, feesToCalc, false, allFeesForCalc);
|
|
1428
1411
|
siblingFeesResults.push(result);
|
|
1429
1412
|
}
|
|
@@ -1455,22 +1438,26 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
|
|
|
1455
1438
|
var item = normalFees_1[_i];
|
|
1456
1439
|
_loop_1(item);
|
|
1457
1440
|
}
|
|
1458
|
-
// PASSADA 2: Calcular fees TOTAL_PERCENTAGE
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
var
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1441
|
+
// PASSADA 2: Calcular fees TOTAL_PERCENTAGE de forma iterativa
|
|
1442
|
+
if (totalPercentageFees.length > 0) {
|
|
1443
|
+
console.log("\n\uD83D\uDD04 [getCtesFeesResult] Calculando ".concat(totalPercentageFees.length, " fees TOTAL_PERCENTAGE"));
|
|
1444
|
+
console.log("\uD83D\uDCCB Fees: ".concat(totalPercentageFees.map(function (f) { var _a; return "".concat((_a = f.fee) === null || _a === void 0 ? void 0 : _a.name, " (").concat(f.value, "%)"); }).join(', ')));
|
|
1445
|
+
var percentageFeesCache = calculateTotalPercentageFees(feesToCalc, cte, allFeesForCalc);
|
|
1446
|
+
console.log("\u2705 Cache gerado com ".concat(percentageFeesCache.size, " fees"));
|
|
1447
|
+
for (var _e = 0, totalPercentageFees_1 = totalPercentageFees; _e < totalPercentageFees_1.length; _e++) {
|
|
1448
|
+
var item = totalPercentageFees_1[_e];
|
|
1449
|
+
if ((_d = item.fee) === null || _d === void 0 ? void 0 : _d.id) {
|
|
1450
|
+
var cachedResult = percentageFeesCache.get(item.fee.id);
|
|
1451
|
+
if (cachedResult && cachedResult.totalFee && cachedResult.totalFee > 0) {
|
|
1452
|
+
console.log(" ".concat(item.fee.name, ": R$ ").concat(cachedResult.totalFee.toFixed(2)));
|
|
1453
|
+
results.push({
|
|
1454
|
+
total: Number(cachedResult.totalFee.toFixed(2)),
|
|
1455
|
+
resultFee: cachedResult.resultFee || '',
|
|
1456
|
+
feeValue: item.value || 0,
|
|
1457
|
+
feeId: item.feeId,
|
|
1458
|
+
});
|
|
1459
|
+
}
|
|
1460
|
+
}
|
|
1474
1461
|
}
|
|
1475
1462
|
}
|
|
1476
1463
|
// PASSADA 3: Calcular ICMS com base em todas as fees anteriores (normais + TOTAL_PERCENTAGE)
|
package/build/index.js.gz
CHANGED
|
Binary file
|