b2m-utils 0.0.299 → 0.0.301

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,62 @@ 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 numericValue = typeof value === 'string' ? parseFloat(value) : value;
7993
+ if (isNaN(numericValue)) {
7994
+ return 'R$ 0,00';
7995
+ }
7996
+ // Converter para moeda
7997
+ var formattedValue = convertNumberToCurrency(numericValue, 'pt-br');
7998
+ // Se não houver CTE ou ratecard, retornar apenas o valor formatado
7999
+ if (!cte) {
8000
+ return formattedValue;
8001
+ }
8002
+ // Buscar ratecard (pode estar em Ratecard ou ratecard)
8003
+ var ratecard = getRatecardFromCte(cte);
8004
+ if (!ratecard || !ratecard.ratecard_config_values) {
8005
+ return formattedValue;
8006
+ }
8007
+ // Buscar configurações do ratecard
8008
+ var configs = ratecard.ratecard_config_values;
8009
+ // Verificar se o rateio de ICMS está habilitado
8010
+ 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; });
8011
+ var isIcmsApportionmentEnabled = (icmsApportionmentConfig === null || icmsApportionmentConfig === void 0 ? void 0 : icmsApportionmentConfig.configValue) === 'true';
8012
+ // Se for ICMS e o rateio estiver habilitado, calcular e mostrar o rateio
8013
+ if (isIcmsApportionmentEnabled && (feeName === null || feeName === void 0 ? void 0 : feeName.toUpperCase().includes('ICMS'))) {
8014
+ // Obter a alíquota de ICMS do CTE (icmsIncidence já vem em decimal, ex: 0.12 para 12%)
8015
+ var icmsRate = cte.icmsIncidence ? Number(cte.icmsIncidence) : 0.12; // Default 12%
8016
+ // Calcular o ICMS baseado no valor cobrado
8017
+ // A função calculateIcms espera um array de valores e a alíquota
8018
+ var icmsResult = calculateIcms([numericValue], icmsRate);
8019
+ // Valor cobrado menos o ICMS calculado
8020
+ var valueAfterIcms = numericValue - icmsResult.total;
8021
+ var formattedValueAfterIcms = convertNumberToCurrency(valueAfterIcms, 'pt-br');
8022
+ var formattedIcms = convertNumberToCurrency(icmsResult.total, 'pt-br');
8023
+ return "".concat(formattedValue, " - ").concat(formattedIcms, " = ").concat(formattedValueAfterIcms, " (rateado)");
8024
+ }
8025
+ // Aqui você pode adicionar outras lógicas baseadas em outras configurações
8026
+ // Por exemplo, se houver configuração de arredondamento, aplicar aqui
8027
+ return formattedValue;
8028
+ };
8029
+
7974
8030
  var verifyDefaultFees = function (laneFee, conditionalFee) {
7975
8031
  var _a, _b;
7976
8032
  var defaultConditionalFees = [
@@ -8200,5 +8256,5 @@ var isTariffMatch = function (chargedName, auditedTariffName) {
8200
8256
  });
8201
8257
  };
8202
8258
 
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 };
8259
+ 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
8260
  //# sourceMappingURL=index.esm.js.map
Binary file