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.
- package/build/functions/index.d.ts +1 -0
- package/build/functions/matchTariffs/index.d.ts +29 -0
- package/build/index.esm.js +119 -26
- package/build/index.esm.js.gz +0 -0
- package/build/index.esm.js.map +1 -1
- package/build/index.js +126 -25
- package/build/index.js.gz +0 -0
- package/build/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -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;
|
package/build/index.esm.js
CHANGED
|
@@ -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
|
|
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 ((
|
|
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
|
|
1315
|
-
var item_1 = siblingFees_1[
|
|
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 (((
|
|
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
|
|
1349
|
-
var item = totalPercentageFees_1[
|
|
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
|
-
|
|
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
|
package/build/index.esm.js.gz
CHANGED
|
Binary file
|