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
package/build/index.js
CHANGED
|
@@ -592,11 +592,6 @@ var calculateFee = function (ratecardLaneFee, cte, allFees, debug, allFeesForCal
|
|
|
592
592
|
}
|
|
593
593
|
return 0;
|
|
594
594
|
});
|
|
595
|
-
console.log({
|
|
596
|
-
filteredFees: filteredFees_1,
|
|
597
|
-
filteredFeesResults: filteredFeesResults,
|
|
598
|
-
totalFromAllFees: totalFromAllFees,
|
|
599
|
-
});
|
|
600
595
|
if (totalFromAllFees && (totalFromAllFees === null || totalFromAllFees === void 0 ? void 0 : totalFromAllFees.length) > 0) {
|
|
601
596
|
var totalValueFromAllFees = totalFromAllFees.filter(function (i) { return !isNaN(+i) && +i > 0; }).reduce(function (previous, current) {
|
|
602
597
|
if (!isNaN(+previous) && !isNaN(+current)) {
|
|
@@ -1281,7 +1276,7 @@ var getLaneFromRatecard = function (cte) {
|
|
|
1281
1276
|
};
|
|
1282
1277
|
|
|
1283
1278
|
var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
|
|
1284
|
-
var _a, _b, _c
|
|
1279
|
+
var _a, _b, _c;
|
|
1285
1280
|
var results = [];
|
|
1286
1281
|
// Separar fees por tipo: normais, TOTAL_PERCENTAGE e ICMS
|
|
1287
1282
|
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; });
|
|
@@ -1292,19 +1287,12 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
|
|
|
1292
1287
|
f.feeId !== exports.FeeEnum.ICMS &&
|
|
1293
1288
|
((_b = f.fee) === null || _b === void 0 ? void 0 : _b.feeCalculationTypeId) !== exports.FeeCalculationTypeEnum.TOTAL_PERCENTAGE;
|
|
1294
1289
|
});
|
|
1295
|
-
console.log('DEBUG getCtesFeesResult - Separação de fees:', {
|
|
1296
|
-
totalFees: feesToCalc.length,
|
|
1297
|
-
icmsFee: icmsFee ? { feeId: icmsFee.feeId, 'fee.id': (_a = icmsFee.fee) === null || _a === void 0 ? void 0 : _a.id } : null,
|
|
1298
|
-
totalPercentageCount: totalPercentageFees.length,
|
|
1299
|
-
normalFeesCount: normalFees.length,
|
|
1300
|
-
normalFeeIds: normalFees.map(function (f) { var _a; return ({ feeId: f.feeId, 'fee.id': (_a = f.fee) === null || _a === void 0 ? void 0 : _a.id }); })
|
|
1301
|
-
});
|
|
1302
1290
|
var _loop_1 = function (item) {
|
|
1303
1291
|
var feeTotal = calculateFee(item, cte, feesToCalc, false, allFeesForCalc);
|
|
1304
1292
|
if (feeTotal === null || feeTotal === void 0 ? void 0 : feeTotal.totalFee) {
|
|
1305
1293
|
var totalFee = feeTotal.totalFee, resultFee = feeTotal.resultFee, feeValue = feeTotal.feeValue;
|
|
1306
1294
|
var totalToPush = totalFee;
|
|
1307
|
-
if ((
|
|
1295
|
+
if ((_a = item.fee) === null || _a === void 0 ? void 0 : _a.parentId) {
|
|
1308
1296
|
var fee_1 = item.fee;
|
|
1309
1297
|
var siblingFees = feesToCalc === null || feesToCalc === void 0 ? void 0 : feesToCalc.filter(function (i) {
|
|
1310
1298
|
var _a, _b, _c;
|
|
@@ -1315,8 +1303,8 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
|
|
|
1315
1303
|
});
|
|
1316
1304
|
if (siblingFees && (siblingFees === null || siblingFees === void 0 ? void 0 : siblingFees.length) > 0) {
|
|
1317
1305
|
var siblingFeesResults = [];
|
|
1318
|
-
for (var
|
|
1319
|
-
var item_1 = siblingFees_1[
|
|
1306
|
+
for (var _e = 0, siblingFees_1 = siblingFees; _e < siblingFees_1.length; _e++) {
|
|
1307
|
+
var item_1 = siblingFees_1[_e];
|
|
1320
1308
|
var result = calculateFee(item_1, cte, feesToCalc, false, allFeesForCalc);
|
|
1321
1309
|
siblingFeesResults.push(result);
|
|
1322
1310
|
}
|
|
@@ -1327,7 +1315,7 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
|
|
|
1327
1315
|
return 0;
|
|
1328
1316
|
});
|
|
1329
1317
|
if ((siblingFeesResults === null || siblingFeesResults === void 0 ? void 0 : siblingFeesResults.length) > 0) {
|
|
1330
|
-
if (((
|
|
1318
|
+
if (((_b = siblingFeesResults[0]) === null || _b === void 0 ? void 0 : _b.totalFee) && ((_c = siblingFeesResults[0]) === null || _c === void 0 ? void 0 : _c.totalFee) > totalFee) {
|
|
1331
1319
|
totalToPush = 0;
|
|
1332
1320
|
}
|
|
1333
1321
|
}
|
|
@@ -1349,8 +1337,8 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
|
|
|
1349
1337
|
_loop_1(item);
|
|
1350
1338
|
}
|
|
1351
1339
|
// PASSADA 2: Calcular fees TOTAL_PERCENTAGE usando a soma das fees normais já calculadas
|
|
1352
|
-
for (var
|
|
1353
|
-
var item = totalPercentageFees_1[
|
|
1340
|
+
for (var _d = 0, totalPercentageFees_1 = totalPercentageFees; _d < totalPercentageFees_1.length; _d++) {
|
|
1341
|
+
var item = totalPercentageFees_1[_d];
|
|
1354
1342
|
// Calcular soma das fees normais (excluindo TOTAL_PERCENTAGE e ICMS)
|
|
1355
1343
|
var totalWithoutPercentageFees = results
|
|
1356
1344
|
.filter(function (r) { return r.total > 0; })
|
|
@@ -1375,12 +1363,6 @@ var getCtesFeesResult = function (feesToCalc, cte, allFeesForCalc) {
|
|
|
1375
1363
|
var icmsRate = (cte.icmsIncidence !== undefined && cte.icmsIncidence !== null && !isNaN(+cte.icmsIncidence))
|
|
1376
1364
|
? +(cte.icmsIncidence) / 100
|
|
1377
1365
|
: icmsFee.value || 0;
|
|
1378
|
-
console.log('DEBUG ICMS getCtesFeesResult:', {
|
|
1379
|
-
valuesForIcms: valuesForIcms,
|
|
1380
|
-
icmsRate: icmsRate,
|
|
1381
|
-
totalBeforeIcms: valuesForIcms.reduce(function (sum, val) { return sum + val; }, 0),
|
|
1382
|
-
results: results.map(function (r) { return ({ feeId: r.feeId, total: r.total }); })
|
|
1383
|
-
});
|
|
1384
1366
|
// Usar calculateIcms diretamente
|
|
1385
1367
|
var icmsCalculation = calculateIcms(valuesForIcms, icmsRate);
|
|
1386
1368
|
if (icmsCalculation.isValid && !isNaN(+icmsCalculation.total)) {
|
|
@@ -7914,13 +7896,128 @@ var setFormattedDatesInObjects = function (objectFormat) { return __awaiter(void
|
|
|
7914
7896
|
});
|
|
7915
7897
|
}); };
|
|
7916
7898
|
|
|
7899
|
+
var TARIFF_MAPPING = {
|
|
7900
|
+
"Frete Rodo LTL Valor fixo": ["Frete", "Frete peso", "Frete Rodo", "Frete LTL", "Frete Rodo LTL"],
|
|
7901
|
+
"Pedagio cada 100kg / fração": ["Pedagio", "Pedágio", "Pedagio cada 100kg", "Pedágio cada 100kg", "Valor pedagio"],
|
|
7902
|
+
"ICMS Alíquota": ["ICMS", "ICMS Alíquota", "Imposto ICMS", "ICMS Imposto", "IMP REPASSADO"],
|
|
7903
|
+
"AdValorem % Valor NF": ["AdValorem", "Ad valorem", "Advalorem", "AdValorem NF", "Ad Valorem NF"],
|
|
7904
|
+
"GRIS % Valor NF": ["GRIS", "GRIS NF", "Seguro GRIS", "Seguro", "GRIS Seguro"],
|
|
7905
|
+
"Taxa de despacho": ["Despacho", "Taxa despacho", "Despacho aduaneiro", "Despache"],
|
|
7906
|
+
"Taxa de armazenagem": ["Armazenagem", "Armazenagem", "Estocagem", "Armazém"],
|
|
7907
|
+
"Taxa de coleta": ["Coleta", "Taxa coleta", "Coleta e entrega"],
|
|
7908
|
+
"Taxa de entrega": ["Entrega", "Taxa entrega", "Entrega urbana"],
|
|
7909
|
+
"Taxa de embarque": ["Embarque", "Taxa embarque", "Embarque/desembarque"],
|
|
7910
|
+
"TRT % Frete": ["TRT %", "TRT Percentual", "TRT percentual"],
|
|
7911
|
+
"TRT Min": ["TRT", "TRT Min", "TRT mínimo", "TRT minimo"],
|
|
7912
|
+
"TDE % Frete": ["TDE %", "TDE Percentual", "TDE percentual"],
|
|
7913
|
+
"TDE Min": ["TDE", "TDE Min", "TDE mínimo", "TDE minimo"],
|
|
7914
|
+
"Frete % Valor NF": ["Valor frete", "Valor Frete", "Frete valor", "Frete Valor", "Valor do frete"],
|
|
7915
|
+
"Taxa por conhecimento Valor fixo": ["Taxa por conhecimento", "Despacho", "DESPACHO"],
|
|
7916
|
+
"TSO % Valor NF": ["POS", "TSO"],
|
|
7917
|
+
"TSO Min": ["POS", "TSO", "TSO mínimo", "TSO minimo"],
|
|
7918
|
+
"Suframa por CTE/CRT": ["Suframa", "Suframa por CTE"],
|
|
7919
|
+
};
|
|
7920
|
+
var parseAliases = function (aliasesString) {
|
|
7921
|
+
return aliasesString
|
|
7922
|
+
.split(';')
|
|
7923
|
+
.map(function (alias) { return alias.trim(); })
|
|
7924
|
+
.filter(function (alias) { return alias.length > 0; });
|
|
7925
|
+
};
|
|
7926
|
+
var buildDynamicMapping = function (ratecardAliases) {
|
|
7927
|
+
var mapping = {};
|
|
7928
|
+
for (var _i = 0, ratecardAliases_1 = ratecardAliases; _i < ratecardAliases_1.length; _i++) {
|
|
7929
|
+
var alias = ratecardAliases_1[_i];
|
|
7930
|
+
mapping[alias.feeName] = parseAliases(alias.aliases);
|
|
7931
|
+
}
|
|
7932
|
+
return mapping;
|
|
7933
|
+
};
|
|
7934
|
+
var findAuditedMatch = function (chargedFee, auditedFees, dynamicMapping) {
|
|
7935
|
+
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()); });
|
|
7936
|
+
if (directMatch)
|
|
7937
|
+
return directMatch;
|
|
7938
|
+
for (var _i = 0, auditedFees_1 = auditedFees; _i < auditedFees_1.length; _i++) {
|
|
7939
|
+
var auditedFee = auditedFees_1[_i];
|
|
7940
|
+
var possibleChargedNames = (dynamicMapping === null || dynamicMapping === void 0 ? void 0 : dynamicMapping[auditedFee.feeName]) ||
|
|
7941
|
+
TARIFF_MAPPING[auditedFee.feeName];
|
|
7942
|
+
if (possibleChargedNames) {
|
|
7943
|
+
var isMatch = possibleChargedNames.some(function (possibleName) { var _a; return ((_a = chargedFee.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().trim()) === possibleName.toLowerCase().trim(); });
|
|
7944
|
+
if (isMatch) {
|
|
7945
|
+
return auditedFee;
|
|
7946
|
+
}
|
|
7947
|
+
}
|
|
7948
|
+
}
|
|
7949
|
+
return null;
|
|
7950
|
+
};
|
|
7951
|
+
var matchAllTariffs = function (chargedFees, auditedFees, dynamicMapping) {
|
|
7952
|
+
var results = [];
|
|
7953
|
+
var usedCharged = new Set();
|
|
7954
|
+
var usedAudited = new Set();
|
|
7955
|
+
chargedFees.forEach(function (charged) {
|
|
7956
|
+
var _a, _b;
|
|
7957
|
+
var auditedMatch = findAuditedMatch(charged, auditedFees, dynamicMapping);
|
|
7958
|
+
if (auditedMatch) {
|
|
7959
|
+
var difference = +charged.value - +((_a = auditedMatch.approvedValue) !== null && _a !== void 0 ? _a : auditedMatch.total);
|
|
7960
|
+
results.push({
|
|
7961
|
+
chargedName: charged.name,
|
|
7962
|
+
chargedValue: charged.value,
|
|
7963
|
+
auditedName: auditedMatch.feeName,
|
|
7964
|
+
auditedValue: (_b = auditedMatch.approvedValue) !== null && _b !== void 0 ? _b : auditedMatch.total,
|
|
7965
|
+
difference: Math.round(difference * 100) / 100,
|
|
7966
|
+
status: 'MATCHED'
|
|
7967
|
+
});
|
|
7968
|
+
usedCharged.add(charged.name);
|
|
7969
|
+
usedAudited.add(auditedMatch.feeName);
|
|
7970
|
+
}
|
|
7971
|
+
});
|
|
7972
|
+
chargedFees.filter(function (charged) { return !usedCharged.has(charged.name); })
|
|
7973
|
+
.forEach(function (charged) {
|
|
7974
|
+
results.push({
|
|
7975
|
+
chargedName: charged.name,
|
|
7976
|
+
chargedValue: charged.value,
|
|
7977
|
+
auditedName: 'NÃO AUDITADO',
|
|
7978
|
+
auditedValue: 0,
|
|
7979
|
+
difference: charged.value,
|
|
7980
|
+
status: 'CHARGED_ONLY'
|
|
7981
|
+
});
|
|
7982
|
+
});
|
|
7983
|
+
auditedFees.filter(function (audited) { return !usedAudited.has(audited.feeName); })
|
|
7984
|
+
.forEach(function (audited) {
|
|
7985
|
+
var _a, _b;
|
|
7986
|
+
results.push({
|
|
7987
|
+
chargedName: 'NÃO COBRADO',
|
|
7988
|
+
chargedValue: 0,
|
|
7989
|
+
auditedName: audited.feeName,
|
|
7990
|
+
auditedValue: (_a = audited.approvedValue) !== null && _a !== void 0 ? _a : audited.total,
|
|
7991
|
+
difference: -((_b = audited.approvedValue) !== null && _b !== void 0 ? _b : audited.total),
|
|
7992
|
+
status: 'AUDITED_ONLY'
|
|
7993
|
+
});
|
|
7994
|
+
});
|
|
7995
|
+
return results;
|
|
7996
|
+
};
|
|
7997
|
+
var addTariffMapping = function (auditedTariffName, chargedTariffNames) {
|
|
7998
|
+
TARIFF_MAPPING[auditedTariffName] = chargedTariffNames;
|
|
7999
|
+
};
|
|
8000
|
+
var getTariffVariations = function (auditedTariffName) {
|
|
8001
|
+
return TARIFF_MAPPING[auditedTariffName] || [auditedTariffName];
|
|
8002
|
+
};
|
|
8003
|
+
var isTariffMatch = function (chargedName, auditedTariffName) {
|
|
8004
|
+
var variations = getTariffVariations(auditedTariffName);
|
|
8005
|
+
return variations.some(function (variation) {
|
|
8006
|
+
return variation.toLowerCase().trim() === chargedName.toLowerCase().trim();
|
|
8007
|
+
});
|
|
8008
|
+
};
|
|
8009
|
+
|
|
7917
8010
|
exports.EXPORT_CTE_COLUMN_LABELS = EXPORT_CTE_COLUMN_LABELS;
|
|
7918
8011
|
exports.EXPORT_CTE_TYPE_LABELS = EXPORT_CTE_TYPE_LABELS;
|
|
8012
|
+
exports.TARIFF_MAPPING = TARIFF_MAPPING;
|
|
8013
|
+
exports.addTariffMapping = addTariffMapping;
|
|
7919
8014
|
exports.applyRedeliveryMultiplier = applyRedeliveryMultiplier;
|
|
8015
|
+
exports.buildDynamicMapping = buildDynamicMapping;
|
|
7920
8016
|
exports.calculateFee = calculateFee;
|
|
7921
8017
|
exports.calculateIcms = calculateIcms;
|
|
7922
8018
|
exports.convertNumberToCurrency = convertNumberToCurrency;
|
|
7923
8019
|
exports.filterSiblingFees = filterSiblingFees;
|
|
8020
|
+
exports.findAuditedMatch = findAuditedMatch;
|
|
7924
8021
|
exports.formatDateString = formatDateString;
|
|
7925
8022
|
exports.getAllFeesForCalculation = getAllFeesForCalculation;
|
|
7926
8023
|
exports.getAuditTotalFromCte = getAuditTotalFromCte;
|
|
@@ -7941,7 +8038,11 @@ exports.getNormalizedCityName = getNormalizedCityName;
|
|
|
7941
8038
|
exports.getRatecardFromCte = getRatecardFromCte;
|
|
7942
8039
|
exports.getRouteDeliveryTimeFromFreight = getRouteDeliveryTimeFromFreight;
|
|
7943
8040
|
exports.getRouteOnTimeFromFreight = getRouteOnTimeFromFreight;
|
|
8041
|
+
exports.getTariffVariations = getTariffVariations;
|
|
8042
|
+
exports.isTariffMatch = isTariffMatch;
|
|
8043
|
+
exports.matchAllTariffs = matchAllTariffs;
|
|
7944
8044
|
exports.normalizeString = normalizeString;
|
|
8045
|
+
exports.parseAliases = parseAliases;
|
|
7945
8046
|
exports.setFormattedDatesInObjects = setFormattedDatesInObjects;
|
|
7946
8047
|
exports.verifyConditionalFee = verifyConditionalFee;
|
|
7947
8048
|
exports.verifyDefaultFees = verifyDefaultFees;
|
package/build/index.js.gz
CHANGED
|
Binary file
|