b2m-utils 0.0.300 → 0.0.302

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.
@@ -21,6 +21,7 @@ export * from './getRatecardFromCte';
21
21
  export * from './getRouteDeliveryTimeFromFreight';
22
22
  export * from './getRouteOnTimeFromFreight';
23
23
  export * from './normalizeString';
24
+ export * from './renderChargedValue';
24
25
  export * from './verifyConditionalFee';
25
26
  export * from './verifyDefaultFees';
26
27
  export * from './formatDateString';
@@ -0,0 +1,20 @@
1
+ import { Cte } from "../../types";
2
+ /**
3
+ * Renderiza o valor cobrado por uma transportadora considerando configurações do ratecard
4
+ *
5
+ * @param value - Valor numérico a ser renderizado
6
+ * @param cte - Objeto CTE contendo informações do ratecard e suas configurações
7
+ * @param feeName - Nome da fee/tarifa (opcional, para lógicas específicas por tipo)
8
+ * @returns String formatada em moeda ou com informações adicionais baseadas nas configs
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * // Valor simples sem configurações especiais
13
+ * renderChargedValue(150.50, cte) // "R$ 150,50"
14
+ *
15
+ * // Valor com rateio de ICMS habilitado
16
+ * renderChargedValue(150.50, cteWithIcmsApportionment, 'ICMS') // "R$ 150,50 (rateado)"
17
+ * ```
18
+ */
19
+ export declare const renderChargedValue: (value: number | string, cte?: Cte, feeName?: string) => string;
20
+ export default renderChargedValue;
@@ -7971,6 +7971,80 @@ var normalizeString = function (str) {
7971
7971
  return String(str).normalize("NFD").replace(/[\u0300-\u036f]/g, "");
7972
7972
  };
7973
7973
 
7974
+ /**
7975
+ * Renderiza o valor cobrado por uma transportadora considerando configurações do ratecard
7976
+ *
7977
+ * @param value - Valor numérico a ser renderizado
7978
+ * @param cte - Objeto CTE contendo informações do ratecard e suas configurações
7979
+ * @param feeName - Nome da fee/tarifa (opcional, para lógicas específicas por tipo)
7980
+ * @returns String formatada em moeda ou com informações adicionais baseadas nas configs
7981
+ *
7982
+ * @example
7983
+ * ```ts
7984
+ * // Valor simples sem configurações especiais
7985
+ * renderChargedValue(150.50, cte) // "R$ 150,50"
7986
+ *
7987
+ * // Valor com rateio de ICMS habilitado
7988
+ * renderChargedValue(150.50, cteWithIcmsApportionment, 'ICMS') // "R$ 150,50 (rateado)"
7989
+ * ```
7990
+ */
7991
+ var renderChargedValue = function (value, cte, feeName) {
7992
+ var _a;
7993
+ var numericValue = typeof value === 'string' ? parseFloat(value) : value;
7994
+ console.log('🔍 renderChargedValue - feeName:', feeName, 'value:', numericValue);
7995
+ if (isNaN(numericValue)) {
7996
+ return 'R$ 0,00';
7997
+ }
7998
+ // Converter para moeda
7999
+ var formattedValue = convertNumberToCurrency(numericValue, 'pt-br');
8000
+ // Se não houver CTE ou ratecard, retornar apenas o valor formatado
8001
+ if (!cte) {
8002
+ console.log('⚠️ CTE não fornecido');
8003
+ return formattedValue;
8004
+ }
8005
+ // Buscar ratecard (pode estar em Ratecard ou ratecard)
8006
+ var ratecard = getRatecardFromCte(cte);
8007
+ console.log('🔍 Ratecard encontrado:', ratecard ? 'SIM' : 'NÃO');
8008
+ if (!ratecard || !ratecard.ratecard_config_values) {
8009
+ console.log('⚠️ Ratecard ou ratecard_config_values não encontrado');
8010
+ console.log(' - ratecard:', !!ratecard);
8011
+ console.log(' - ratecard_config_values:', ratecard === null || ratecard === void 0 ? void 0 : ratecard.ratecard_config_values);
8012
+ return formattedValue;
8013
+ }
8014
+ // Buscar configurações do ratecard
8015
+ var configs = ratecard.ratecard_config_values;
8016
+ console.log('✅ Configurações encontradas:', configs.length);
8017
+ // Verificar se o rateio de ICMS está habilitado
8018
+ var icmsApportionmentConfig = configs.find(function (config) { var _a; return ((_a = config.ratecard_configs) === null || _a === void 0 ? void 0 : _a.configKey) === RatecardConfigKeyEnum.ICMS_APPORTIONMENT_ENABLED; });
8019
+ console.log('🔍 Config ICMS encontrada:', icmsApportionmentConfig);
8020
+ console.log(' - configKey:', (_a = icmsApportionmentConfig === null || icmsApportionmentConfig === void 0 ? void 0 : icmsApportionmentConfig.ratecard_configs) === null || _a === void 0 ? void 0 : _a.configKey);
8021
+ console.log(' - configValue:', icmsApportionmentConfig === null || icmsApportionmentConfig === void 0 ? void 0 : icmsApportionmentConfig.configValue);
8022
+ var isIcmsApportionmentEnabled = (icmsApportionmentConfig === null || icmsApportionmentConfig === void 0 ? void 0 : icmsApportionmentConfig.configValue) === 'true';
8023
+ console.log('🔍 ICMS rateio habilitado:', isIcmsApportionmentEnabled);
8024
+ console.log('🔍 feeName contém ICMS:', feeName === null || feeName === void 0 ? void 0 : feeName.toUpperCase().includes('ICMS'));
8025
+ // Se for ICMS e o rateio estiver habilitado, calcular e mostrar o rateio
8026
+ if (isIcmsApportionmentEnabled && (feeName === null || feeName === void 0 ? void 0 : feeName.toUpperCase().includes('ICMS'))) {
8027
+ console.log('✅ Aplicando rateio de ICMS');
8028
+ // Obter a alíquota de ICMS do CTE (icmsIncidence já vem em decimal, ex: 0.12 para 12%)
8029
+ var icmsRate = cte.icmsIncidence ? Number(cte.icmsIncidence) : 0.12; // Default 12%
8030
+ console.log(' - icmsRate:', icmsRate);
8031
+ // Calcular o ICMS baseado no valor cobrado
8032
+ // A função calculateIcms espera um array de valores e a alíquota
8033
+ var icmsResult = calculateIcms([numericValue], icmsRate);
8034
+ console.log(' - icmsResult.total:', icmsResult.total);
8035
+ // Valor cobrado menos o ICMS calculado
8036
+ var valueAfterIcms = numericValue - icmsResult.total;
8037
+ var formattedValueAfterIcms = convertNumberToCurrency(valueAfterIcms, 'pt-br');
8038
+ var formattedIcms = convertNumberToCurrency(icmsResult.total, 'pt-br');
8039
+ var result = "".concat(formattedValue, " - ").concat(formattedIcms, " = ").concat(formattedValueAfterIcms, " (rateado)");
8040
+ console.log(' - resultado:', result);
8041
+ return result;
8042
+ }
8043
+ // Aqui você pode adicionar outras lógicas baseadas em outras configurações
8044
+ // Por exemplo, se houver configuração de arredondamento, aplicar aqui
8045
+ return formattedValue;
8046
+ };
8047
+
7974
8048
  var verifyDefaultFees = function (laneFee, conditionalFee) {
7975
8049
  var _a, _b;
7976
8050
  var defaultConditionalFees = [
@@ -8200,5 +8274,5 @@ var isTariffMatch = function (chargedName, auditedTariffName) {
8200
8274
  });
8201
8275
  };
8202
8276
 
8203
- 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, RatecardConfigKeyEnum, RatecardFeeConfigKeyEnum, RatecardFeeConfigTypeEnum, RatecardModalEnum, SlaRegionEnum, SpotStatusEnum, TARIFF_MAPPING, TrackProcessProviderTypeEnum, addTariffMapping, applyRedeliveryMultiplier, buildDynamicMapping, calculateFee, calculateFeesTotal, calculateIcms, calculateTotalPercentageFees, 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 };
8277
+ 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, RatecardConfigKeyEnum, RatecardFeeConfigKeyEnum, RatecardFeeConfigTypeEnum, RatecardModalEnum, SlaRegionEnum, SpotStatusEnum, TARIFF_MAPPING, TrackProcessProviderTypeEnum, addTariffMapping, applyRedeliveryMultiplier, buildDynamicMapping, calculateFee, calculateFeesTotal, calculateIcms, calculateTotalPercentageFees, 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, renderChargedValue, setFormattedDatesInObjects, verifyConditionalFee, verifyDefaultFees };
8204
8278
  //# sourceMappingURL=index.esm.js.map
Binary file