b2m-utils 0.0.295 → 0.0.297

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
@@ -1378,7 +1378,7 @@ var getLaneFromRatecard = function (cte) {
1378
1378
  };
1379
1379
 
1380
1380
  var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
1381
- var _a, _b, _c, _d;
1381
+ var _a, _b, _c, _d, _e, _f;
1382
1382
  var results = [];
1383
1383
  // Separar fees por tipo: normais, TOTAL_PERCENTAGE e ICMS
1384
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; });
@@ -1389,6 +1389,8 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
1389
1389
  f.feeId !== exports.FeeEnum.ICMS &&
1390
1390
  ((_b = f.fee) === null || _b === void 0 ? void 0 : _b.feeCalculationTypeId) !== exports.FeeCalculationTypeEnum.TOTAL_PERCENTAGE;
1391
1391
  });
1392
+ // PASSADA 1: Calcular fees normais (não TOTAL_PERCENTAGE, não ICMS)
1393
+ console.log("\n\uD83D\uDCE6 [getCtesFeesResult] Calculando ".concat(normalFees.length, " fees normais"));
1392
1394
  var _loop_1 = function (item) {
1393
1395
  var feeTotal = calculateFee(item, cte, feesToCalc, false, allFeesForCalc);
1394
1396
  if (feeTotal === null || feeTotal === void 0 ? void 0 : feeTotal.totalFee) {
@@ -1405,8 +1407,8 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
1405
1407
  });
1406
1408
  if (siblingFees && (siblingFees === null || siblingFees === void 0 ? void 0 : siblingFees.length) > 0) {
1407
1409
  var siblingFeesResults = [];
1408
- for (var _f = 0, siblingFees_1 = siblingFees; _f < siblingFees_1.length; _f++) {
1409
- var item_1 = siblingFees_1[_f];
1410
+ for (var _h = 0, siblingFees_1 = siblingFees; _h < siblingFees_1.length; _h++) {
1411
+ var item_1 = siblingFees_1[_h];
1410
1412
  var result = calculateFee(item_1, cte, feesToCalc, false, allFeesForCalc);
1411
1413
  siblingFeesResults.push(result);
1412
1414
  }
@@ -1418,12 +1420,14 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
1418
1420
  });
1419
1421
  if ((siblingFeesResults === null || siblingFeesResults === void 0 ? void 0 : siblingFeesResults.length) > 0) {
1420
1422
  if (((_b = siblingFeesResults[0]) === null || _b === void 0 ? void 0 : _b.totalFee) && ((_c = siblingFeesResults[0]) === null || _c === void 0 ? void 0 : _c.totalFee) > totalFee) {
1423
+ console.log(" \u26A0\uFE0F ".concat((_d = item.fee) === null || _d === void 0 ? void 0 : _d.name, ": R$ ").concat(totalFee.toFixed(2), " \u2192 R$ 0.00 (sibling maior)"));
1421
1424
  totalToPush = 0;
1422
1425
  }
1423
1426
  }
1424
1427
  }
1425
1428
  }
1426
- if (!isNaN(+totalToPush)) {
1429
+ if (!isNaN(+totalToPush) && totalToPush > 0) {
1430
+ console.log(" \u2705 ".concat((_e = item.fee) === null || _e === void 0 ? void 0 : _e.name, ": R$ ").concat(totalToPush.toFixed(2)));
1427
1431
  results.push({
1428
1432
  total: +(totalToPush).toFixed(2),
1429
1433
  resultFee: resultFee,
@@ -1433,20 +1437,30 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
1433
1437
  }
1434
1438
  }
1435
1439
  };
1436
- // PASSADA 1: Calcular fees normais (não TOTAL_PERCENTAGE, não ICMS)
1437
1440
  for (var _i = 0, normalFees_1 = normalFees; _i < normalFees_1.length; _i++) {
1438
1441
  var item = normalFees_1[_i];
1439
1442
  _loop_1(item);
1440
1443
  }
1444
+ console.log("\uD83D\uDCCA Total parcial (fees normais): R$ ".concat(results.reduce(function (sum, r) { return sum + r.total; }, 0).toFixed(2)));
1441
1445
  // PASSADA 2: Calcular fees TOTAL_PERCENTAGE de forma iterativa
1442
1446
  if (totalPercentageFees.length > 0) {
1443
1447
  console.log("\n\uD83D\uDD04 [getCtesFeesResult] Calculando ".concat(totalPercentageFees.length, " fees TOTAL_PERCENTAGE"));
1444
1448
  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);
1449
+ // Criar Map com valores já calculados das fees normais (respeitando lógica de siblings)
1450
+ var preCalculatedValues_1 = new Map();
1451
+ results.forEach(function (r) {
1452
+ var _a;
1453
+ var fee = feesToCalc.find(function (f) { return f.feeId === r.feeId; });
1454
+ if ((_a = fee === null || fee === void 0 ? void 0 : fee.fee) === null || _a === void 0 ? void 0 : _a.id) {
1455
+ preCalculatedValues_1.set(fee.fee.id, r.total);
1456
+ }
1457
+ });
1458
+ console.log("\uD83D\uDCCA Usando ".concat(preCalculatedValues_1.size, " valores pr\u00E9-calculados"));
1459
+ var percentageFeesCache = calculateTotalPercentageFees(feesToCalc, cte, allFeesForCalc, preCalculatedValues_1);
1446
1460
  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) {
1461
+ for (var _g = 0, totalPercentageFees_1 = totalPercentageFees; _g < totalPercentageFees_1.length; _g++) {
1462
+ var item = totalPercentageFees_1[_g];
1463
+ if ((_f = item.fee) === null || _f === void 0 ? void 0 : _f.id) {
1450
1464
  var cachedResult = percentageFeesCache.get(item.fee.id);
1451
1465
  if (cachedResult && cachedResult.totalFee && cachedResult.totalFee > 0) {
1452
1466
  console.log(" ".concat(item.fee.name, ": R$ ").concat(cachedResult.totalFee.toFixed(2)));
@@ -1462,15 +1476,20 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
1462
1476
  }
1463
1477
  // PASSADA 3: Calcular ICMS com base em todas as fees anteriores (normais + TOTAL_PERCENTAGE)
1464
1478
  if (icmsFee) {
1479
+ console.log("\n\uD83D\uDCB0 [getCtesFeesResult] Calculando ICMS");
1465
1480
  // Coletar apenas os valores das fees que realmente contam (total > 0)
1466
1481
  var valuesForIcms = results
1467
1482
  .filter(function (r) { return r.total > 0; })
1468
1483
  .map(function (r) { return r.total; });
1484
+ console.log("\uD83D\uDCCA Valores para ICMS: ".concat(valuesForIcms.map(function (v) { return "R$ ".concat(v.toFixed(2)); }).join(' + '), " = R$ ").concat(valuesForIcms.reduce(function (a, b) { return a + b; }, 0).toFixed(2)));
1469
1485
  var icmsRate = (cte.icmsIncidence !== undefined && cte.icmsIncidence !== null && !isNaN(+cte.icmsIncidence))
1470
1486
  ? +(cte.icmsIncidence) / 100
1471
1487
  : icmsFee.value || 0;
1488
+ console.log("\uD83D\uDCC8 Al\u00EDquota ICMS: ".concat((icmsRate * 100).toFixed(2), "%"));
1472
1489
  // Usar calculateIcms diretamente
1473
1490
  var icmsCalculation = calculateIcms(valuesForIcms, icmsRate);
1491
+ console.log("\u2705 ICMS calculado: R$ ".concat(icmsCalculation.total.toFixed(2)));
1492
+ console.log("\uD83D\uDCCB Total de fees no results antes do ICMS: ".concat(results.length));
1474
1493
  if (icmsCalculation.isValid && !isNaN(+icmsCalculation.total)) {
1475
1494
  results.push({
1476
1495
  total: +(icmsCalculation.total).toFixed(2),
@@ -1478,8 +1497,11 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
1478
1497
  feeValue: icmsRate,
1479
1498
  feeId: icmsFee.feeId,
1480
1499
  });
1500
+ console.log("\uD83D\uDCCB Total de fees no results depois do ICMS: ".concat(results.length));
1481
1501
  }
1482
1502
  }
1503
+ console.log("\n\uD83C\uDFAF [getCtesFeesResult] Total final: R$ ".concat(results.reduce(function (sum, r) { return sum + r.total; }, 0).toFixed(2)));
1504
+ console.log("\uD83D\uDCCB Breakdown: ".concat(results.map(function (r) { return "R$ ".concat(r.total.toFixed(2)); }).join(' + '), "\n"));
1483
1505
  return results;
1484
1506
  };
1485
1507
 
package/build/index.js.gz CHANGED
Binary file