b2m-utils 0.0.284 → 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/index.js CHANGED
@@ -7896,13 +7896,128 @@ var setFormattedDatesInObjects = function (objectFormat) { return __awaiter(void
7896
7896
  });
7897
7897
  }); };
7898
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
+
7899
8010
  exports.EXPORT_CTE_COLUMN_LABELS = EXPORT_CTE_COLUMN_LABELS;
7900
8011
  exports.EXPORT_CTE_TYPE_LABELS = EXPORT_CTE_TYPE_LABELS;
8012
+ exports.TARIFF_MAPPING = TARIFF_MAPPING;
8013
+ exports.addTariffMapping = addTariffMapping;
7901
8014
  exports.applyRedeliveryMultiplier = applyRedeliveryMultiplier;
8015
+ exports.buildDynamicMapping = buildDynamicMapping;
7902
8016
  exports.calculateFee = calculateFee;
7903
8017
  exports.calculateIcms = calculateIcms;
7904
8018
  exports.convertNumberToCurrency = convertNumberToCurrency;
7905
8019
  exports.filterSiblingFees = filterSiblingFees;
8020
+ exports.findAuditedMatch = findAuditedMatch;
7906
8021
  exports.formatDateString = formatDateString;
7907
8022
  exports.getAllFeesForCalculation = getAllFeesForCalculation;
7908
8023
  exports.getAuditTotalFromCte = getAuditTotalFromCte;
@@ -7923,7 +8038,11 @@ exports.getNormalizedCityName = getNormalizedCityName;
7923
8038
  exports.getRatecardFromCte = getRatecardFromCte;
7924
8039
  exports.getRouteDeliveryTimeFromFreight = getRouteDeliveryTimeFromFreight;
7925
8040
  exports.getRouteOnTimeFromFreight = getRouteOnTimeFromFreight;
8041
+ exports.getTariffVariations = getTariffVariations;
8042
+ exports.isTariffMatch = isTariffMatch;
8043
+ exports.matchAllTariffs = matchAllTariffs;
7926
8044
  exports.normalizeString = normalizeString;
8045
+ exports.parseAliases = parseAliases;
7927
8046
  exports.setFormattedDatesInObjects = setFormattedDatesInObjects;
7928
8047
  exports.verifyConditionalFee = verifyConditionalFee;
7929
8048
  exports.verifyDefaultFees = verifyDefaultFees;
package/build/index.js.gz CHANGED
Binary file