b2m-utils 0.0.217 → 0.0.218

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.
@@ -1,2 +1,23 @@
1
1
  import { Cte } from '../../types';
2
- export declare const getLaneFromRatecard: (cte: Cte) => import("../../types").RatecardLane | undefined;
2
+ export declare const getLaneFromRatecard: (cte: Cte) => import("../../types").RatecardLane | {
3
+ city: import("../../types").City | undefined;
4
+ ufDestination: string;
5
+ ratecardRegion: import("../../types").RatecardRegion | {
6
+ name: string;
7
+ };
8
+ id: number;
9
+ ratecardId: number;
10
+ originLocation?: string | undefined;
11
+ cityOriginId?: number | undefined;
12
+ cityOriginName?: string | undefined;
13
+ ufOriginName?: string | undefined;
14
+ ratecardRegionId?: number | undefined;
15
+ regionId?: number | undefined;
16
+ regionName?: string | undefined;
17
+ RatecardLaneFee?: import("../../types").RatecardLaneFee[] | undefined;
18
+ ratecard?: import("../../types").Ratecard | undefined;
19
+ freightRegion?: import("../../types").FreightRegion | undefined;
20
+ createdAt?: string | undefined;
21
+ updatedAt?: string | undefined;
22
+ deletedAt?: string | undefined;
23
+ } | undefined;
@@ -7155,33 +7155,85 @@ var getFilteredFeesToAudit = function (_a) {
7155
7155
  };
7156
7156
 
7157
7157
  var getLaneFromRatecard = function (cte) {
7158
- var _a, _b, _c, _d, _e, _f, _g, _h;
7158
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
7159
7159
  var ratecard = getRatecardFromCte(cte);
7160
7160
  var cityOriginId = cte.cityOriginId, cityDestination = cte.cityDestination;
7161
7161
  var destinationUf = (_a = cityDestination === null || cityDestination === void 0 ? void 0 : cityDestination.state) === null || _a === void 0 ? void 0 : _a.uf;
7162
7162
  // Encontrar a ratecardRegion da cidade de destino
7163
7163
  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;
7164
- 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) {
7165
- // Primeiro, buscar rota direta (Origem -> Destino)
7166
- var directLane = ratecard.RatecardLane.find(function (i) {
7167
- return i.cityOriginId === cityOriginId && i.ufDestination === destinationUf && i.ratecardRegionId === destinationRatecardRegionId;
7168
- });
7169
- if (directLane) {
7170
- return directLane;
7171
- }
7172
- // Se não encontrar rota direta, buscar rota inversa (Destino -> Origem)
7173
- // Para isso, precisamos encontrar a UF da origem e sua ratecardRegion
7174
- var originUf_1 = (_f = (_e = cte.cityOrigin) === null || _e === void 0 ? void 0 : _e.state) === null || _f === void 0 ? void 0 : _f.uf;
7175
- // Encontrar a ratecardRegion da cidade de origem
7176
- 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;
7177
- if (originUf_1) {
7178
- var reverseLane = ratecard.RatecardLane.find(function (i) {
7179
- return i.cityOriginId === (cityDestination === null || cityDestination === void 0 ? void 0 : cityDestination.id) && i.ufDestination === originUf_1 && i.ratecardRegionId === originRatecardRegionId_1;
7180
- });
7181
- if (reverseLane) {
7182
- return reverseLane;
7164
+ 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) {
7165
+ return undefined;
7166
+ }
7167
+ // Lógica diferenciada por modal
7168
+ switch (ratecard.modalId) {
7169
+ case RatecardModalEnum.ROAD_DOMESTIC_FTL:
7170
+ // FTL: Verificar rota por UF de destino
7171
+ if (destinationUf) {
7172
+ var directLane = ratecard.RatecardLane.find(function (i) {
7173
+ return i.ufDestination === destinationUf && i.ratecardRegionId === destinationRatecardRegionId;
7174
+ });
7175
+ if (directLane) {
7176
+ return directLane;
7177
+ }
7178
+ // Fallback: Verificar se existe lane única com fees de KM e cidade origem no ratecard_origin_cities
7179
+ var uniqueLane = ratecard.RatecardLane[0];
7180
+ // Verificar se a lane tem fees com intervalo de KM
7181
+ 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; });
7182
+ // Verificar se a cidade de origem está no ratecard_origin_cities
7183
+ var hasOriginCity = (_f = ratecard.ratecard_origin_cities) === null || _f === void 0 ? void 0 : _f.some(function (originCity) { return originCity.cityId === cityOriginId; });
7184
+ if (hasKmFees && hasOriginCity) {
7185
+ // Mockar informações para exibição no frontend
7186
+ return __assign(__assign({}, uniqueLane), { city: cte.cityOrigin, ufDestination: destinationUf, ratecardRegion: uniqueLane.ratecardRegion || { name: destinationUf } });
7187
+ }
7188
+ // Rota inversa FTL: Verificar se cidade de destino está em ratecard_origin_cities
7189
+ var originUf_1 = (_h = (_g = cte.cityOrigin) === null || _g === void 0 ? void 0 : _g.state) === null || _h === void 0 ? void 0 : _h.uf;
7190
+ if (originUf_1) {
7191
+ // Verificar se existe lane com ufDestination = originUf
7192
+ var reverseLane = ratecard.RatecardLane.find(function (i) {
7193
+ return i.ufDestination === originUf_1;
7194
+ });
7195
+ if (reverseLane) {
7196
+ // Verificar se a cidade de destino está no ratecard_origin_cities
7197
+ 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); });
7198
+ if (hasDestinationCity) {
7199
+ return reverseLane;
7200
+ }
7201
+ }
7202
+ // Fallback inverso: Lane única com cidade de destino em ratecard_origin_cities
7203
+ 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); });
7204
+ if (hasKmFees && hasDestinationCityInOrigins) {
7205
+ // Mockar informações para exibição no frontend (rota inversa)
7206
+ return __assign(__assign({}, uniqueLane), { city: cityDestination, ufDestination: originUf_1, ratecardRegion: uniqueLane.ratecardRegion || { name: originUf_1 } });
7207
+ }
7208
+ }
7183
7209
  }
7184
- }
7210
+ break;
7211
+ case RatecardModalEnum.ROAD_DOMESTIC_LTL:
7212
+ default:
7213
+ // LTL: Lógica original (rota direta + inversa)
7214
+ if (cityOriginId && destinationUf) {
7215
+ // Primeiro, buscar rota direta (Origem -> Destino)
7216
+ var directLane = ratecard.RatecardLane.find(function (i) {
7217
+ return i.cityOriginId === cityOriginId && i.ufDestination === destinationUf && i.ratecardRegionId === destinationRatecardRegionId;
7218
+ });
7219
+ if (directLane) {
7220
+ return directLane;
7221
+ }
7222
+ // Se não encontrar rota direta, buscar rota inversa (Destino -> Origem)
7223
+ // Para isso, precisamos encontrar a UF da origem e sua ratecardRegion
7224
+ var originUf_2 = (_m = (_l = cte.cityOrigin) === null || _l === void 0 ? void 0 : _l.state) === null || _m === void 0 ? void 0 : _m.uf;
7225
+ // Encontrar a ratecardRegion da cidade de origem
7226
+ 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;
7227
+ if (originUf_2) {
7228
+ var reverseLane = ratecard.RatecardLane.find(function (i) {
7229
+ return i.cityOriginId === (cityDestination === null || cityDestination === void 0 ? void 0 : cityDestination.id) && i.ufDestination === originUf_2 && i.ratecardRegionId === originRatecardRegionId_1;
7230
+ });
7231
+ if (reverseLane) {
7232
+ return reverseLane;
7233
+ }
7234
+ }
7235
+ }
7236
+ break;
7185
7237
  }
7186
7238
  return undefined;
7187
7239
  };
Binary file