b2m-utils 0.0.250 → 0.0.252

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
@@ -187,21 +187,6 @@ exports.RatecardFeeConfigKeyEnum = void 0;
187
187
  (function (RatecardFeeConfigKeyEnum) {
188
188
  // Configurações de fração de peso
189
189
  RatecardFeeConfigKeyEnum["MIN_WEIGHT_FOR_FRACTION"] = "min_weight_for_fraction";
190
- RatecardFeeConfigKeyEnum["FRACTION_UNIT"] = "fraction_unit";
191
- RatecardFeeConfigKeyEnum["MIN_VALUE"] = "min_value";
192
- // Configurações de peso
193
- RatecardFeeConfigKeyEnum["MIN_WEIGHT"] = "min_weight";
194
- RatecardFeeConfigKeyEnum["MAX_WEIGHT"] = "max_weight";
195
- // Configurações de arredondamento
196
- RatecardFeeConfigKeyEnum["ROUNDING_TYPE"] = "rounding_type";
197
- // Configurações de aplicação
198
- RatecardFeeConfigKeyEnum["APPLY_ONLY_IF_GREATER_THAN"] = "apply_only_if_greater_than";
199
- RatecardFeeConfigKeyEnum["MAX_APPLICATIONS"] = "max_applications";
200
- // Configurações de percentual
201
- RatecardFeeConfigKeyEnum["PERCENTAGE_VALUE"] = "percentage_value";
202
- // Configurações condicionais
203
- RatecardFeeConfigKeyEnum["APPLY_ONLY_WEEKENDS"] = "apply_only_weekends";
204
- RatecardFeeConfigKeyEnum["APPLY_ONLY_WEEKDAYS"] = "apply_only_weekdays";
205
190
  })(exports.RatecardFeeConfigKeyEnum || (exports.RatecardFeeConfigKeyEnum = {}));
206
191
 
207
192
  exports.RatecardFeeConfigTypeEnum = void 0;
@@ -450,9 +435,11 @@ var filterSiblingFees = function (fees) {
450
435
  };
451
436
 
452
437
  var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCalc) {
453
- var _a, _b, _c, _d, _e, _f;
438
+ var _a, _b, _c, _d, _e, _f, _g;
454
439
  if (debug === void 0) { debug = false; }
455
440
  if (ratecardLaneFee.fee) {
441
+ // Buscar o ratecard correto do CTE usando getRatecardFromCte
442
+ var ratecard = getRatecardFromCte(cte);
456
443
  var value = ratecardLaneFee.value, fee_1 = ratecardLaneFee.fee;
457
444
  var totalFee = 0;
458
445
  var resultFee = '';
@@ -522,7 +509,7 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
522
509
  if (totalValueFromAllFees && !isNaN(+totalValueFromAllFees)) {
523
510
  var valueToMultiply = (+value / 100);
524
511
  var total_1 = +totalValueFromAllFees * valueToMultiply;
525
- var _g = applyRedeliveryMultiplier(total_1, cte), adjustedTotal_1 = _g.adjustedTotal, redeliveryInfo_1 = _g.redeliveryInfo;
512
+ var _h = applyRedeliveryMultiplier(total_1, cte), adjustedTotal_1 = _h.adjustedTotal, redeliveryInfo_1 = _h.redeliveryInfo;
526
513
  total_1 = adjustedTotal_1;
527
514
  var totalValueFromAllFeesCurrency = convertNumberToCurrency(+totalValueFromAllFees, 'pt-br');
528
515
  var resultCurrency_1 = (+total_1).toLocaleString('pt-BR', {
@@ -538,9 +525,14 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
538
525
  break;
539
526
  case exports.FeeCalculationTypeEnum.FRACTIONED:
540
527
  if ((cte === null || cte === void 0 ? void 0 : cte.taxedWeight) && !isNaN(+(cte === null || cte === void 0 ? void 0 : cte.taxedWeight))) {
541
- var fractions = Math.ceil(+cte.taxedWeight / 100);
528
+ // Buscar configuração de peso mínimo para aplicar fração
529
+ var minWeightConfig = (_a = ratecard === null || ratecard === void 0 ? void 0 : ratecard.RatecardFeeConfig) === null || _a === void 0 ? void 0 : _a.find(function (config) { var _a; return config.feeId === fee_1.id && ((_a = config.feeConfig) === null || _a === void 0 ? void 0 : _a.configKey) === exports.RatecardFeeConfigKeyEnum.MIN_WEIGHT_FOR_FRACTION; });
530
+ var minWeightForFraction = (minWeightConfig === null || minWeightConfig === void 0 ? void 0 : minWeightConfig.configValue) ? Number(minWeightConfig.configValue) : 0;
531
+ // Só aplica fração se o peso for maior que o mínimo configurado
532
+ var shouldApplyFraction = +cte.taxedWeight > minWeightForFraction;
533
+ var fractions = shouldApplyFraction ? Math.ceil(+cte.taxedWeight / 100) : 1;
542
534
  var total_2 = fractions * value;
543
- var _h = applyRedeliveryMultiplier(total_2, cte), adjustedTotal_2 = _h.adjustedTotal, redeliveryInfo_2 = _h.redeliveryInfo;
535
+ var _j = applyRedeliveryMultiplier(total_2, cte), adjustedTotal_2 = _j.adjustedTotal, redeliveryInfo_2 = _j.redeliveryInfo;
544
536
  total_2 = adjustedTotal_2;
545
537
  var valueCurrency_1 = (+value).toLocaleString('pt-br', {
546
538
  style: 'currency',
@@ -550,7 +542,9 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
550
542
  style: 'currency',
551
543
  currency: 'BRL',
552
544
  });
553
- var result_2 = "".concat(cte.taxedWeight, " kg = ").concat(fractions, " fra\u00E7\u00F5es x ").concat(valueCurrency_1).concat(redeliveryInfo_2, " = ").concat(resultCurrency_2);
545
+ var result_2 = shouldApplyFraction
546
+ ? "".concat(cte.taxedWeight, " kg = ").concat(fractions, " fra\u00E7\u00F5es x ").concat(valueCurrency_1).concat(redeliveryInfo_2, " = ").concat(resultCurrency_2)
547
+ : "".concat(cte.taxedWeight, " kg (abaixo do m\u00EDnimo ").concat(minWeightForFraction, " kg) = ").concat(valueCurrency_1).concat(redeliveryInfo_2, " = ").concat(resultCurrency_2);
554
548
  totalFee = total_2;
555
549
  resultFee = result_2;
556
550
  }
@@ -559,7 +553,7 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
559
553
  if (value && (cte === null || cte === void 0 ? void 0 : cte.freightValue)) {
560
554
  if (!isNaN(+value) && !isNaN(+cte.freightValue)) {
561
555
  var total_3 = +cte.freightValue * (+value / 100);
562
- var _j = applyRedeliveryMultiplier(total_3, cte), adjustedTotal_3 = _j.adjustedTotal, redeliveryInfo_3 = _j.redeliveryInfo;
556
+ var _k = applyRedeliveryMultiplier(total_3, cte), adjustedTotal_3 = _k.adjustedTotal, redeliveryInfo_3 = _k.redeliveryInfo;
563
557
  total_3 = adjustedTotal_3;
564
558
  var freightValueCurrency = (+cte.freightValue).toLocaleString('pt-br', {
565
559
  style: 'currency',
@@ -594,7 +588,7 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
594
588
  case exports.FeeCalculationTypeEnum.MIN_VALUE:
595
589
  case exports.FeeCalculationTypeEnum.FIXED:
596
590
  var total = +value;
597
- var _k = applyRedeliveryMultiplier(total, cte), adjustedTotal = _k.adjustedTotal, redeliveryInfo = _k.redeliveryInfo;
591
+ var _l = applyRedeliveryMultiplier(total, cte), adjustedTotal = _l.adjustedTotal, redeliveryInfo = _l.redeliveryInfo;
598
592
  total = adjustedTotal;
599
593
  var valueCurrency = (+value).toLocaleString('pt-br', {
600
594
  style: 'currency',
@@ -646,7 +640,7 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
646
640
  // Somar ao total
647
641
  total_4 += additionalValue;
648
642
  // Aplicar multiplicador de redelivery ao valor final
649
- var _l = applyRedeliveryMultiplier(total_4, cte), adjustedTotal_4 = _l.adjustedTotal, redeliveryInfo_4 = _l.redeliveryInfo;
643
+ var _m = applyRedeliveryMultiplier(total_4, cte), adjustedTotal_4 = _m.adjustedTotal, redeliveryInfo_4 = _m.redeliveryInfo;
650
644
  total_4 = adjustedTotal_4;
651
645
  var valueCurrency_2 = (+highestIntervalFee.value).toLocaleString('pt-br', {
652
646
  style: 'currency',
@@ -663,12 +657,10 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
663
657
  }
664
658
  // Lógica de intervalo de KM para FTL
665
659
  else if ((cte === null || cte === void 0 ? void 0 : cte.ratecardModalId) === exports.RatecardModalEnum.ROAD_DOMESTIC_FTL && (cte === null || cte === void 0 ? void 0 : cte.distance) && !ratecardLaneFee.maxKm && ratecardLaneFee.minKm && +cte.distance >= +ratecardLaneFee.minKm) {
666
- // Buscar o ratecard correto do CTE usando getRatecardFromCte
667
- var ratecard = getRatecardFromCte(cte);
668
- var lane = (_a = ratecard === null || ratecard === void 0 ? void 0 : ratecard.RatecardLane) === null || _a === void 0 ? void 0 : _a.find(function (l) { return l.id === ratecardLaneFee.laneId; });
660
+ var lane = (_b = ratecard === null || ratecard === void 0 ? void 0 : ratecard.RatecardLane) === null || _b === void 0 ? void 0 : _b.find(function (l) { return l.id === ratecardLaneFee.laneId; });
669
661
  // Não tem maxKm - é o último intervalo
670
662
  // Encontrar todas as taxas do mesmo tipo que têm maxKm no ratecard
671
- var feesWithMaxKm = (_b = lane === null || lane === void 0 ? void 0 : lane.RatecardLaneFee) === null || _b === void 0 ? void 0 : _b.filter(function (fee) {
663
+ var feesWithMaxKm = (_c = lane === null || lane === void 0 ? void 0 : lane.RatecardLaneFee) === null || _c === void 0 ? void 0 : _c.filter(function (fee) {
672
664
  var _a, _b;
673
665
  return ((_a = fee.fee) === null || _a === void 0 ? void 0 : _a.id) === ((_b = ratecardLaneFee.fee) === null || _b === void 0 ? void 0 : _b.id) &&
674
666
  (!fee.vehicleTypeId || fee.vehicleTypeId === cte.vehicleTypeId) &&
@@ -690,7 +682,7 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
690
682
  // Somar ao total
691
683
  total_5 += additionalValue;
692
684
  // Aplicar multiplicador de redelivery ao valor final
693
- var _m = applyRedeliveryMultiplier(total_5, cte), adjustedTotal_5 = _m.adjustedTotal, redeliveryInfo_5 = _m.redeliveryInfo;
685
+ var _o = applyRedeliveryMultiplier(total_5, cte), adjustedTotal_5 = _o.adjustedTotal, redeliveryInfo_5 = _o.redeliveryInfo;
694
686
  total_5 = adjustedTotal_5;
695
687
  var valueCurrency_3 = (+highestIntervalFee.value).toLocaleString('pt-br', {
696
688
  style: 'currency',
@@ -708,9 +700,9 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
708
700
  break;
709
701
  case exports.FeeCalculationTypeEnum.COMMODITY_VALUE:
710
702
  if (value) {
711
- var commodityValue = (_c = cte === null || cte === void 0 ? void 0 : cte.commodityValue) !== null && _c !== void 0 ? _c : 0;
703
+ var commodityValue = (_d = cte === null || cte === void 0 ? void 0 : cte.commodityValue) !== null && _d !== void 0 ? _d : 0;
712
704
  var total_6 = +commodityValue * (+value / 100);
713
- var _o = applyRedeliveryMultiplier(total_6, cte), adjustedTotal_6 = _o.adjustedTotal, redeliveryInfo_6 = _o.redeliveryInfo;
705
+ var _p = applyRedeliveryMultiplier(total_6, cte), adjustedTotal_6 = _p.adjustedTotal, redeliveryInfo_6 = _p.redeliveryInfo;
714
706
  total_6 = adjustedTotal_6;
715
707
  var resultCurrency_6 = (+total_6).toLocaleString('pt-br', {
716
708
  style: 'currency',
@@ -723,9 +715,9 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
723
715
  break;
724
716
  case exports.FeeCalculationTypeEnum.TAXED_WEIGHT:
725
717
  if (value) {
726
- var taxedWeight = (_d = cte === null || cte === void 0 ? void 0 : cte.taxedWeight) !== null && _d !== void 0 ? _d : 0;
718
+ var taxedWeight = (_e = cte === null || cte === void 0 ? void 0 : cte.taxedWeight) !== null && _e !== void 0 ? _e : 0;
727
719
  var total_7 = +taxedWeight * +value;
728
- var _p = applyRedeliveryMultiplier(total_7, cte), adjustedTotal_7 = _p.adjustedTotal, redeliveryInfo_7 = _p.redeliveryInfo;
720
+ var _q = applyRedeliveryMultiplier(total_7, cte), adjustedTotal_7 = _q.adjustedTotal, redeliveryInfo_7 = _q.redeliveryInfo;
729
721
  total_7 = adjustedTotal_7;
730
722
  var resultCurrency_7 = (+total_7).toLocaleString('pt-br', {
731
723
  style: 'currency',
@@ -841,7 +833,7 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
841
833
  return 0;
842
834
  });
843
835
  if ((siblingFeesResults === null || siblingFeesResults === void 0 ? void 0 : siblingFeesResults.length) > 0) {
844
- if (((_e = siblingFeesResults[0]) === null || _e === void 0 ? void 0 : _e.totalFee) && ((_f = siblingFeesResults[0]) === null || _f === void 0 ? void 0 : _f.totalFee) > totalFee) {
836
+ if (((_f = siblingFeesResults[0]) === null || _f === void 0 ? void 0 : _f.totalFee) && ((_g = siblingFeesResults[0]) === null || _g === void 0 ? void 0 : _g.totalFee) > totalFee) {
845
837
  totalToCalc = 0;
846
838
  }
847
839
  }
@@ -893,17 +885,22 @@ var calculateIcms = function (totalFromAllFees, icmsRate) {
893
885
  };
894
886
 
895
887
  var verifyConditionalFee = function (conditionalFeeToVerify, cte) {
896
- var _a;
888
+ var _a, _b;
897
889
  if (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.id) {
898
890
  switch (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.typeId) {
899
891
  case exports.RatecardConditionalFeeTypeEnum.CITY:
900
- return (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.cityId) && cte.cityDestinationId === (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.cityId);
892
+ var directLane = (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.cityId) && cte.cityDestinationId === (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.cityId);
893
+ if (!directLane) {
894
+ return (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.cityId) && cte.cityOriginId === (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.cityId);
895
+ }
896
+ return directLane;
901
897
  case exports.RatecardConditionalFeeTypeEnum.STATE:
902
- return (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.stateId) && ((_a = cte.cityDestination) === null || _a === void 0 ? void 0 : _a.stateId) === (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.stateId);
898
+ var directLaneState = (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.stateId) && ((_a = cte.cityDestination) === null || _a === void 0 ? void 0 : _a.stateId) === (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.stateId);
899
+ if (!directLaneState) {
900
+ return (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.stateId) && ((_b = cte.cityOrigin) === null || _b === void 0 ? void 0 : _b.stateId) === (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.stateId);
901
+ }
902
+ return directLaneState;
903
903
  case exports.RatecardConditionalFeeTypeEnum.CNPJ:
904
- console.log({
905
- conditionalFeeToVerify: conditionalFeeToVerify,
906
- });
907
904
  return (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.cnpj) && cte.recipientCNPJ === (conditionalFeeToVerify === null || conditionalFeeToVerify === void 0 ? void 0 : conditionalFeeToVerify.cnpj);
908
905
  default:
909
906
  return false;
package/build/index.js.gz CHANGED
Binary file