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