b2m-utils 0.0.217 → 0.0.219

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
@@ -7159,33 +7159,85 @@ var getFilteredFeesToAudit = function (_a) {
7159
7159
  };
7160
7160
 
7161
7161
  var getLaneFromRatecard = function (cte) {
7162
- var _a, _b, _c, _d, _e, _f, _g, _h;
7162
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
7163
7163
  var ratecard = getRatecardFromCte(cte);
7164
7164
  var cityOriginId = cte.cityOriginId, cityDestination = cte.cityDestination;
7165
7165
  var destinationUf = (_a = cityDestination === null || cityDestination === void 0 ? void 0 : cityDestination.state) === null || _a === void 0 ? void 0 : _a.uf;
7166
7166
  // Encontrar a ratecardRegion da cidade de destino
7167
7167
  var destinationRatecardRegionId = (_c = (_b = ratecard === null || ratecard === void 0 ? void 0 : ratecard.RatecardRegionCity) === null || _b === void 0 ? void 0 : _b.find(function (regionCity) { return regionCity.cityId === (cityDestination === null || cityDestination === void 0 ? void 0 : cityDestination.id); })) === null || _c === void 0 ? void 0 : _c.ratecardRegionId;
7168
- if ((ratecard === null || ratecard === void 0 ? void 0 : ratecard.RatecardLane) && ((_d = ratecard === null || ratecard === void 0 ? void 0 : ratecard.RatecardLane) === null || _d === void 0 ? void 0 : _d.length) > 0 && cityOriginId && destinationUf) {
7169
- // Primeiro, buscar rota direta (Origem -> Destino)
7170
- var directLane = ratecard.RatecardLane.find(function (i) {
7171
- return i.cityOriginId === cityOriginId && i.ufDestination === destinationUf && i.ratecardRegionId === destinationRatecardRegionId;
7172
- });
7173
- if (directLane) {
7174
- return directLane;
7175
- }
7176
- // Se não encontrar rota direta, buscar rota inversa (Destino -> Origem)
7177
- // Para isso, precisamos encontrar a UF da origem e sua ratecardRegion
7178
- var originUf_1 = (_f = (_e = cte.cityOrigin) === null || _e === void 0 ? void 0 : _e.state) === null || _f === void 0 ? void 0 : _f.uf;
7179
- // Encontrar a ratecardRegion da cidade de origem
7180
- var originRatecardRegionId_1 = (_h = (_g = ratecard === null || ratecard === void 0 ? void 0 : ratecard.RatecardRegionCity) === null || _g === void 0 ? void 0 : _g.find(function (regionCity) { return regionCity.cityId === cityOriginId; })) === null || _h === void 0 ? void 0 : _h.ratecardRegionId;
7181
- if (originUf_1) {
7182
- var reverseLane = ratecard.RatecardLane.find(function (i) {
7183
- return i.cityOriginId === (cityDestination === null || cityDestination === void 0 ? void 0 : cityDestination.id) && i.ufDestination === originUf_1 && i.ratecardRegionId === originRatecardRegionId_1;
7184
- });
7185
- if (reverseLane) {
7186
- return reverseLane;
7168
+ if (!(ratecard === null || ratecard === void 0 ? void 0 : ratecard.RatecardLane) || ((_d = ratecard === null || ratecard === void 0 ? void 0 : ratecard.RatecardLane) === null || _d === void 0 ? void 0 : _d.length) === 0) {
7169
+ return undefined;
7170
+ }
7171
+ // Lógica diferenciada por modal
7172
+ switch (ratecard.modalId) {
7173
+ case exports.RatecardModalEnum.ROAD_DOMESTIC_FTL:
7174
+ // FTL: Verificar rota por UF de destino
7175
+ if (destinationUf) {
7176
+ var directLane = ratecard.RatecardLane.find(function (i) {
7177
+ return i.ufDestination === destinationUf && i.ratecardRegionId === destinationRatecardRegionId;
7178
+ });
7179
+ if (directLane) {
7180
+ return directLane;
7181
+ }
7182
+ // Fallback: Verificar se existe lane única com fees de KM e cidade origem no ratecard_origin_cities
7183
+ var uniqueLane = ratecard.RatecardLane[0];
7184
+ // Verificar se a lane tem fees com intervalo de KM
7185
+ var hasKmFees = (_e = uniqueLane === null || uniqueLane === void 0 ? void 0 : uniqueLane.RatecardLaneFee) === null || _e === void 0 ? void 0 : _e.some(function (fee) { return fee.minKm !== null; });
7186
+ // Verificar se a cidade de origem está no ratecard_origin_cities
7187
+ var hasOriginCity = (_f = ratecard.ratecard_origin_cities) === null || _f === void 0 ? void 0 : _f.some(function (originCity) { return originCity.cityId === cityOriginId; });
7188
+ if (hasKmFees && hasOriginCity) {
7189
+ // Mockar informações para exibição no frontend
7190
+ return __assign(__assign({}, uniqueLane), { city: cte.cityOrigin, ufDestination: destinationUf, ratecardRegion: uniqueLane.ratecardRegion || { name: destinationUf } });
7191
+ }
7192
+ // Rota inversa FTL: Verificar se cidade de destino está em ratecard_origin_cities
7193
+ var originUf_1 = (_h = (_g = cte.cityOrigin) === null || _g === void 0 ? void 0 : _g.state) === null || _h === void 0 ? void 0 : _h.uf;
7194
+ if (originUf_1) {
7195
+ // Verificar se existe lane com ufDestination = originUf
7196
+ var reverseLane = ratecard.RatecardLane.find(function (i) {
7197
+ return i.ufDestination === originUf_1;
7198
+ });
7199
+ if (reverseLane) {
7200
+ // Verificar se a cidade de destino está no ratecard_origin_cities
7201
+ var hasDestinationCity = (_j = ratecard.ratecard_origin_cities) === null || _j === void 0 ? void 0 : _j.some(function (originCity) { return originCity.cityId === (cityDestination === null || cityDestination === void 0 ? void 0 : cityDestination.id); });
7202
+ if (hasDestinationCity) {
7203
+ return reverseLane;
7204
+ }
7205
+ }
7206
+ // Fallback inverso: Lane única com cidade de destino em ratecard_origin_cities
7207
+ var hasDestinationCityInOrigins = (_k = ratecard.ratecard_origin_cities) === null || _k === void 0 ? void 0 : _k.some(function (originCity) { return originCity.cityId === (cityDestination === null || cityDestination === void 0 ? void 0 : cityDestination.id); });
7208
+ if (hasKmFees && hasDestinationCityInOrigins) {
7209
+ // Mockar informações para exibição no frontend (rota inversa)
7210
+ return __assign(__assign({}, uniqueLane), { city: cityDestination, ufDestination: originUf_1, ratecardRegion: uniqueLane.ratecardRegion || { name: originUf_1 } });
7211
+ }
7212
+ }
7187
7213
  }
7188
- }
7214
+ break;
7215
+ case exports.RatecardModalEnum.ROAD_DOMESTIC_LTL:
7216
+ default:
7217
+ // LTL: Lógica original (rota direta + inversa)
7218
+ if (cityOriginId && destinationUf) {
7219
+ // Primeiro, buscar rota direta (Origem -> Destino)
7220
+ var directLane = ratecard.RatecardLane.find(function (i) {
7221
+ return i.cityOriginId === cityOriginId && i.ufDestination === destinationUf && i.ratecardRegionId === destinationRatecardRegionId;
7222
+ });
7223
+ if (directLane) {
7224
+ return directLane;
7225
+ }
7226
+ // Se não encontrar rota direta, buscar rota inversa (Destino -> Origem)
7227
+ // Para isso, precisamos encontrar a UF da origem e sua ratecardRegion
7228
+ var originUf_2 = (_m = (_l = cte.cityOrigin) === null || _l === void 0 ? void 0 : _l.state) === null || _m === void 0 ? void 0 : _m.uf;
7229
+ // Encontrar a ratecardRegion da cidade de origem
7230
+ var originRatecardRegionId_1 = (_p = (_o = ratecard === null || ratecard === void 0 ? void 0 : ratecard.RatecardRegionCity) === null || _o === void 0 ? void 0 : _o.find(function (regionCity) { return regionCity.cityId === cityOriginId; })) === null || _p === void 0 ? void 0 : _p.ratecardRegionId;
7231
+ if (originUf_2) {
7232
+ var reverseLane = ratecard.RatecardLane.find(function (i) {
7233
+ return i.cityOriginId === (cityDestination === null || cityDestination === void 0 ? void 0 : cityDestination.id) && i.ufDestination === originUf_2 && i.ratecardRegionId === originRatecardRegionId_1;
7234
+ });
7235
+ if (reverseLane) {
7236
+ return reverseLane;
7237
+ }
7238
+ }
7239
+ }
7240
+ break;
7189
7241
  }
7190
7242
  return undefined;
7191
7243
  };
package/build/index.js.gz CHANGED
Binary file