b2m-utils 0.0.283 → 0.0.285

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.
@@ -27,3 +27,4 @@ export * from './getCookies';
27
27
  export * from './getDataFromToken';
28
28
  export * from './getFormattedFreightPlaceName';
29
29
  export * from './setFormattedDatesInObjects';
30
+ export * from './matchTariffs';
@@ -0,0 +1,29 @@
1
+ import { CteCost } from "../../types";
2
+ export declare const TARIFF_MAPPING: Record<string, string[]>;
3
+ export interface MatchedTariff {
4
+ chargedName: string;
5
+ chargedValue: number;
6
+ auditedName: string;
7
+ auditedValue: number;
8
+ difference: number;
9
+ status: 'MATCHED' | 'CHARGED_ONLY' | 'AUDITED_ONLY';
10
+ }
11
+ export interface AuditedTariff {
12
+ feeName: string;
13
+ total: number;
14
+ approvedValue?: number;
15
+ description?: string;
16
+ [key: string]: any;
17
+ }
18
+ export interface RatecardFeeAliasMapping {
19
+ feeId: number;
20
+ feeName: string;
21
+ aliases: string;
22
+ }
23
+ export declare const parseAliases: (aliasesString: string) => string[];
24
+ export declare const buildDynamicMapping: (ratecardAliases: RatecardFeeAliasMapping[]) => Record<string, string[]>;
25
+ export declare const findAuditedMatch: (chargedFee: CteCost, auditedFees: AuditedTariff[], dynamicMapping?: Record<string, string[]>) => AuditedTariff | null;
26
+ export declare const matchAllTariffs: (chargedFees: CteCost[], auditedFees: AuditedTariff[], dynamicMapping?: Record<string, string[]>) => MatchedTariff[];
27
+ export declare const addTariffMapping: (auditedTariffName: string, chargedTariffNames: string[]) => void;
28
+ export declare const getTariffVariations: (auditedTariffName: string) => string[];
29
+ export declare const isTariffMatch: (chargedName: string, auditedTariffName: string) => boolean;
@@ -588,11 +588,6 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
588
588
  }
589
589
  return 0;
590
590
  });
591
- console.log({
592
- filteredFees: filteredFees_1,
593
- filteredFeesResults: filteredFeesResults,
594
- totalFromAllFees: totalFromAllFees,
595
- });
596
591
  if (totalFromAllFees && (totalFromAllFees === null || totalFromAllFees === void 0 ? void 0 : totalFromAllFees.length) > 0) {
597
592
  var totalValueFromAllFees = totalFromAllFees.filter(function (i) { return !isNaN(+i) && +i > 0; }).reduce(function (previous, current) {
598
593
  if (!isNaN(+previous) && !isNaN(+current)) {
@@ -1277,7 +1272,7 @@ var getLaneFromRatecard = function (cte) {
1277
1272
  };
1278
1273
 
1279
1274
  var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
1280
- var _a, _b, _c, _d;
1275
+ var _a, _b, _c;
1281
1276
  var results = [];
1282
1277
  // Separar fees por tipo: normais, TOTAL_PERCENTAGE e ICMS
1283
1278
  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; });
@@ -1288,19 +1283,12 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
1288
1283
  f.feeId !== FeeEnum.ICMS &&
1289
1284
  ((_b = f.fee) === null || _b === void 0 ? void 0 : _b.feeCalculationTypeId) !== FeeCalculationTypeEnum.TOTAL_PERCENTAGE;
1290
1285
  });
1291
- console.log('DEBUG getCtesFeesResult - Separação de fees:', {
1292
- totalFees: feesToCalc.length,
1293
- icmsFee: icmsFee ? { feeId: icmsFee.feeId, 'fee.id': (_a = icmsFee.fee) === null || _a === void 0 ? void 0 : _a.id } : null,
1294
- totalPercentageCount: totalPercentageFees.length,
1295
- normalFeesCount: normalFees.length,
1296
- normalFeeIds: normalFees.map(function (f) { var _a; return ({ feeId: f.feeId, 'fee.id': (_a = f.fee) === null || _a === void 0 ? void 0 : _a.id }); })
1297
- });
1298
1286
  var _loop_1 = function (item) {
1299
1287
  var feeTotal = calculateFee(item, cte, feesToCalc, false, allFeesForCalc);
1300
1288
  if (feeTotal === null || feeTotal === void 0 ? void 0 : feeTotal.totalFee) {
1301
1289
  var totalFee = feeTotal.totalFee, resultFee = feeTotal.resultFee, feeValue = feeTotal.feeValue;
1302
1290
  var totalToPush = totalFee;
1303
- if ((_b = item.fee) === null || _b === void 0 ? void 0 : _b.parentId) {
1291
+ if ((_a = item.fee) === null || _a === void 0 ? void 0 : _a.parentId) {
1304
1292
  var fee_1 = item.fee;
1305
1293
  var siblingFees = feesToCalc === null || feesToCalc === void 0 ? void 0 : feesToCalc.filter(function (i) {
1306
1294
  var _a, _b, _c;
@@ -1311,8 +1299,8 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
1311
1299
  });
1312
1300
  if (siblingFees && (siblingFees === null || siblingFees === void 0 ? void 0 : siblingFees.length) > 0) {
1313
1301
  var siblingFeesResults = [];
1314
- for (var _f = 0, siblingFees_1 = siblingFees; _f < siblingFees_1.length; _f++) {
1315
- var item_1 = siblingFees_1[_f];
1302
+ for (var _e = 0, siblingFees_1 = siblingFees; _e < siblingFees_1.length; _e++) {
1303
+ var item_1 = siblingFees_1[_e];
1316
1304
  var result = calculateFee(item_1, cte, feesToCalc, false, allFeesForCalc);
1317
1305
  siblingFeesResults.push(result);
1318
1306
  }
@@ -1323,7 +1311,7 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
1323
1311
  return 0;
1324
1312
  });
1325
1313
  if ((siblingFeesResults === null || siblingFeesResults === void 0 ? void 0 : siblingFeesResults.length) > 0) {
1326
- if (((_c = siblingFeesResults[0]) === null || _c === void 0 ? void 0 : _c.totalFee) && ((_d = siblingFeesResults[0]) === null || _d === void 0 ? void 0 : _d.totalFee) > totalFee) {
1314
+ if (((_b = siblingFeesResults[0]) === null || _b === void 0 ? void 0 : _b.totalFee) && ((_c = siblingFeesResults[0]) === null || _c === void 0 ? void 0 : _c.totalFee) > totalFee) {
1327
1315
  totalToPush = 0;
1328
1316
  }
1329
1317
  }
@@ -1345,8 +1333,8 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
1345
1333
  _loop_1(item);
1346
1334
  }
1347
1335
  // PASSADA 2: Calcular fees TOTAL_PERCENTAGE usando a soma das fees normais já calculadas
1348
- for (var _e = 0, totalPercentageFees_1 = totalPercentageFees; _e < totalPercentageFees_1.length; _e++) {
1349
- var item = totalPercentageFees_1[_e];
1336
+ for (var _d = 0, totalPercentageFees_1 = totalPercentageFees; _d < totalPercentageFees_1.length; _d++) {
1337
+ var item = totalPercentageFees_1[_d];
1350
1338
  // Calcular soma das fees normais (excluindo TOTAL_PERCENTAGE e ICMS)
1351
1339
  var totalWithoutPercentageFees = results
1352
1340
  .filter(function (r) { return r.total > 0; })
@@ -1371,12 +1359,6 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
1371
1359
  var icmsRate = (cte.icmsIncidence !== undefined && cte.icmsIncidence !== null && !isNaN(+cte.icmsIncidence))
1372
1360
  ? +(cte.icmsIncidence) / 100
1373
1361
  : icmsFee.value || 0;
1374
- console.log('DEBUG ICMS getCtesFeesResult:', {
1375
- valuesForIcms: valuesForIcms,
1376
- icmsRate: icmsRate,
1377
- totalBeforeIcms: valuesForIcms.reduce(function (sum, val) { return sum + val; }, 0),
1378
- results: results.map(function (r) { return ({ feeId: r.feeId, total: r.total }); })
1379
- });
1380
1362
  // Usar calculateIcms diretamente
1381
1363
  var icmsCalculation = calculateIcms(valuesForIcms, icmsRate);
1382
1364
  if (icmsCalculation.isValid && !isNaN(+icmsCalculation.total)) {
@@ -7910,5 +7892,116 @@ var setFormattedDatesInObjects = function (objectFormat) { return __awaiter(void
7910
7892
  });
7911
7893
  }); };
7912
7894
 
7913
- export { ApplicationColumnNameEnum, ApplicationEnum, CarrierDocumentConfigTypeKeyEnum, CountryEnum, CteStatusEnum, CteVehicleTypeEnum, CurrencyEnum, DocumentTypeEnum, DomainConfigurationEnum, DomainTypeEnum, EXPORT_CTE_COLUMN_LABELS, EXPORT_CTE_TYPE_LABELS, ExportCteColumn, ExportCteTypeEnum, FeeCalculationTypeEnum, FeeCategoryEnum, FeeEnum, FreightRegionEnum, ImapHostsEnum, InputTypeEnum, ModalEnum, NotificationTypeEnum, PermissionEnum, RatecardConditionalFeeTypeEnum, RatecardFeeConfigKeyEnum, RatecardFeeConfigTypeEnum, RatecardModalEnum, SlaRegionEnum, SpotStatusEnum, TrackProcessProviderTypeEnum, applyRedeliveryMultiplier, calculateFee, calculateIcms, convertNumberToCurrency, filterSiblingFees, formatDateString, getAllFeesForCalculation, getAuditTotalFromCte, getConfigurationFromDomain, getContractFromFreight, getContractRouteFromFreight, getCookies, getCteDateRange, getCteLane, getCteLaneFeesTotal, getCtesFeesResult, getDataFromToken, getFilteredFeesToAudit, getFormattedFreightPlaceName, getLaneFeesToCalc, getLaneFromRatecard, getNormalizedCityName, getRatecardFromCte, getRouteDeliveryTimeFromFreight, getRouteOnTimeFromFreight, normalizeString, setFormattedDatesInObjects, verifyConditionalFee, verifyDefaultFees };
7895
+ var TARIFF_MAPPING = {
7896
+ "Frete Rodo LTL Valor fixo": ["Frete", "Frete peso", "Frete Rodo", "Frete LTL", "Frete Rodo LTL"],
7897
+ "Pedagio cada 100kg / fração": ["Pedagio", "Pedágio", "Pedagio cada 100kg", "Pedágio cada 100kg", "Valor pedagio"],
7898
+ "ICMS Alíquota": ["ICMS", "ICMS Alíquota", "Imposto ICMS", "ICMS Imposto", "IMP REPASSADO"],
7899
+ "AdValorem % Valor NF": ["AdValorem", "Ad valorem", "Advalorem", "AdValorem NF", "Ad Valorem NF"],
7900
+ "GRIS % Valor NF": ["GRIS", "GRIS NF", "Seguro GRIS", "Seguro", "GRIS Seguro"],
7901
+ "Taxa de despacho": ["Despacho", "Taxa despacho", "Despacho aduaneiro", "Despache"],
7902
+ "Taxa de armazenagem": ["Armazenagem", "Armazenagem", "Estocagem", "Armazém"],
7903
+ "Taxa de coleta": ["Coleta", "Taxa coleta", "Coleta e entrega"],
7904
+ "Taxa de entrega": ["Entrega", "Taxa entrega", "Entrega urbana"],
7905
+ "Taxa de embarque": ["Embarque", "Taxa embarque", "Embarque/desembarque"],
7906
+ "TRT % Frete": ["TRT %", "TRT Percentual", "TRT percentual"],
7907
+ "TRT Min": ["TRT", "TRT Min", "TRT mínimo", "TRT minimo"],
7908
+ "TDE % Frete": ["TDE %", "TDE Percentual", "TDE percentual"],
7909
+ "TDE Min": ["TDE", "TDE Min", "TDE mínimo", "TDE minimo"],
7910
+ "Frete % Valor NF": ["Valor frete", "Valor Frete", "Frete valor", "Frete Valor", "Valor do frete"],
7911
+ "Taxa por conhecimento Valor fixo": ["Taxa por conhecimento", "Despacho", "DESPACHO"],
7912
+ "TSO % Valor NF": ["POS", "TSO"],
7913
+ "TSO Min": ["POS", "TSO", "TSO mínimo", "TSO minimo"],
7914
+ "Suframa por CTE/CRT": ["Suframa", "Suframa por CTE"],
7915
+ };
7916
+ var parseAliases = function (aliasesString) {
7917
+ return aliasesString
7918
+ .split(';')
7919
+ .map(function (alias) { return alias.trim(); })
7920
+ .filter(function (alias) { return alias.length > 0; });
7921
+ };
7922
+ var buildDynamicMapping = function (ratecardAliases) {
7923
+ var mapping = {};
7924
+ for (var _i = 0, ratecardAliases_1 = ratecardAliases; _i < ratecardAliases_1.length; _i++) {
7925
+ var alias = ratecardAliases_1[_i];
7926
+ mapping[alias.feeName] = parseAliases(alias.aliases);
7927
+ }
7928
+ return mapping;
7929
+ };
7930
+ var findAuditedMatch = function (chargedFee, auditedFees, dynamicMapping) {
7931
+ var directMatch = auditedFees.find(function (audited) { var _a, _b; return ((_a = audited.feeName) === null || _a === void 0 ? void 0 : _a.toLowerCase().trim()) === ((_b = chargedFee.name) === null || _b === void 0 ? void 0 : _b.toLowerCase().trim()); });
7932
+ if (directMatch)
7933
+ return directMatch;
7934
+ for (var _i = 0, auditedFees_1 = auditedFees; _i < auditedFees_1.length; _i++) {
7935
+ var auditedFee = auditedFees_1[_i];
7936
+ var possibleChargedNames = (dynamicMapping === null || dynamicMapping === void 0 ? void 0 : dynamicMapping[auditedFee.feeName]) ||
7937
+ TARIFF_MAPPING[auditedFee.feeName];
7938
+ if (possibleChargedNames) {
7939
+ var isMatch = possibleChargedNames.some(function (possibleName) { var _a; return ((_a = chargedFee.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().trim()) === possibleName.toLowerCase().trim(); });
7940
+ if (isMatch) {
7941
+ return auditedFee;
7942
+ }
7943
+ }
7944
+ }
7945
+ return null;
7946
+ };
7947
+ var matchAllTariffs = function (chargedFees, auditedFees, dynamicMapping) {
7948
+ var results = [];
7949
+ var usedCharged = new Set();
7950
+ var usedAudited = new Set();
7951
+ chargedFees.forEach(function (charged) {
7952
+ var _a, _b;
7953
+ var auditedMatch = findAuditedMatch(charged, auditedFees, dynamicMapping);
7954
+ if (auditedMatch) {
7955
+ var difference = +charged.value - +((_a = auditedMatch.approvedValue) !== null && _a !== void 0 ? _a : auditedMatch.total);
7956
+ results.push({
7957
+ chargedName: charged.name,
7958
+ chargedValue: charged.value,
7959
+ auditedName: auditedMatch.feeName,
7960
+ auditedValue: (_b = auditedMatch.approvedValue) !== null && _b !== void 0 ? _b : auditedMatch.total,
7961
+ difference: Math.round(difference * 100) / 100,
7962
+ status: 'MATCHED'
7963
+ });
7964
+ usedCharged.add(charged.name);
7965
+ usedAudited.add(auditedMatch.feeName);
7966
+ }
7967
+ });
7968
+ chargedFees.filter(function (charged) { return !usedCharged.has(charged.name); })
7969
+ .forEach(function (charged) {
7970
+ results.push({
7971
+ chargedName: charged.name,
7972
+ chargedValue: charged.value,
7973
+ auditedName: 'NÃO AUDITADO',
7974
+ auditedValue: 0,
7975
+ difference: charged.value,
7976
+ status: 'CHARGED_ONLY'
7977
+ });
7978
+ });
7979
+ auditedFees.filter(function (audited) { return !usedAudited.has(audited.feeName); })
7980
+ .forEach(function (audited) {
7981
+ var _a, _b;
7982
+ results.push({
7983
+ chargedName: 'NÃO COBRADO',
7984
+ chargedValue: 0,
7985
+ auditedName: audited.feeName,
7986
+ auditedValue: (_a = audited.approvedValue) !== null && _a !== void 0 ? _a : audited.total,
7987
+ difference: -((_b = audited.approvedValue) !== null && _b !== void 0 ? _b : audited.total),
7988
+ status: 'AUDITED_ONLY'
7989
+ });
7990
+ });
7991
+ return results;
7992
+ };
7993
+ var addTariffMapping = function (auditedTariffName, chargedTariffNames) {
7994
+ TARIFF_MAPPING[auditedTariffName] = chargedTariffNames;
7995
+ };
7996
+ var getTariffVariations = function (auditedTariffName) {
7997
+ return TARIFF_MAPPING[auditedTariffName] || [auditedTariffName];
7998
+ };
7999
+ var isTariffMatch = function (chargedName, auditedTariffName) {
8000
+ var variations = getTariffVariations(auditedTariffName);
8001
+ return variations.some(function (variation) {
8002
+ return variation.toLowerCase().trim() === chargedName.toLowerCase().trim();
8003
+ });
8004
+ };
8005
+
8006
+ export { ApplicationColumnNameEnum, ApplicationEnum, CarrierDocumentConfigTypeKeyEnum, CountryEnum, CteStatusEnum, CteVehicleTypeEnum, CurrencyEnum, DocumentTypeEnum, DomainConfigurationEnum, DomainTypeEnum, EXPORT_CTE_COLUMN_LABELS, EXPORT_CTE_TYPE_LABELS, ExportCteColumn, ExportCteTypeEnum, FeeCalculationTypeEnum, FeeCategoryEnum, FeeEnum, FreightRegionEnum, ImapHostsEnum, InputTypeEnum, ModalEnum, NotificationTypeEnum, PermissionEnum, RatecardConditionalFeeTypeEnum, RatecardFeeConfigKeyEnum, RatecardFeeConfigTypeEnum, RatecardModalEnum, SlaRegionEnum, SpotStatusEnum, TARIFF_MAPPING, TrackProcessProviderTypeEnum, addTariffMapping, applyRedeliveryMultiplier, buildDynamicMapping, calculateFee, calculateIcms, convertNumberToCurrency, filterSiblingFees, findAuditedMatch, formatDateString, getAllFeesForCalculation, getAuditTotalFromCte, getConfigurationFromDomain, getContractFromFreight, getContractRouteFromFreight, getCookies, getCteDateRange, getCteLane, getCteLaneFeesTotal, getCtesFeesResult, getDataFromToken, getFilteredFeesToAudit, getFormattedFreightPlaceName, getLaneFeesToCalc, getLaneFromRatecard, getNormalizedCityName, getRatecardFromCte, getRouteDeliveryTimeFromFreight, getRouteOnTimeFromFreight, getTariffVariations, isTariffMatch, matchAllTariffs, normalizeString, parseAliases, setFormattedDatesInObjects, verifyConditionalFee, verifyDefaultFees };
7914
8007
  //# sourceMappingURL=index.esm.js.map
Binary file