[Home] [Help]
PACKAGE BODY: APPS.FTE_TL_COST_ALLOCATION
Source
1 PACKAGE BODY FTE_TL_COST_ALLOCATION AS
2 /* $Header: FTEVTLAB.pls 120.0 2005/05/26 17:46:04 appldev noship $ */
3
4
5
6 --Structure used to store outputs for bulk inserts into WSH_FREIGHT_COSTS
7
8 TYPE delivery_detail_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
9 TYPE delivery_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
10 TYPE delivery_leg_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
11 TYPE reprice_required_typ IS TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER;
12 TYPE parent_delivery_detail_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
13 TYPE customer_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
14 TYPE sold_to_contact_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
15 TYPE inventory_item_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
16 TYPE item_description_typ IS TABLE OF VARCHAR2(250) INDEX BY BINARY_INTEGER;
17 TYPE hazard_class_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
18 TYPE country_of_origin_typ IS TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER;
19 TYPE classification_typ IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
20 TYPE requested_quantity_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
21 TYPE requested_quantity_uom_typ IS TABLE OF VARCHAR2(3) INDEX BY BINARY_INTEGER;
22 TYPE master_container_item_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
23 TYPE detail_container_item_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
24 TYPE customer_item_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
25 TYPE net_weight_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
26 TYPE organization_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
27 TYPE container_flag_typ IS TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER;
28 TYPE container_type_code_typ IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
29 TYPE container_name_typ IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
30 TYPE fill_percent_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
31 TYPE gross_weight_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
32 TYPE currency_code_typ IS TABLE OF VARCHAR2(15) INDEX BY BINARY_INTEGER;
33 TYPE freight_class_cat_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
34 TYPE commodity_code_cat_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
35 TYPE weight_uom_code_typ IS TABLE OF VARCHAR2(3) INDEX BY BINARY_INTEGER;
36 TYPE volume_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
37 TYPE volume_uom_code_typ IS TABLE OF VARCHAR2(3) INDEX BY BINARY_INTEGER;
38 TYPE tp_attribute_category_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
39 TYPE tp_attribute1_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
40 TYPE tp_attribute2_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
41 TYPE tp_attribute3_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
42 TYPE tp_attribute4_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
43 TYPE tp_attribute5_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
44 TYPE tp_attribute6_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
45 TYPE tp_attribute7_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
46 TYPE tp_attribute8_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
47 TYPE tp_attribute9_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
48 TYPE tp_attribute10_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
49 TYPE tp_attribute11_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
50 TYPE tp_attribute12_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
51 TYPE tp_attribute13_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
52 TYPE tp_attribute14_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
53 TYPE tp_attribute15_typ IS TABLE OF VARCHAR2(240) INDEX BY BINARY_INTEGER;
54 TYPE attribute_category_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
55 TYPE attribute1_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
56 TYPE attribute2_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
57 TYPE attribute3_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
58 TYPE attribute4_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
59 TYPE attribute5_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
60 TYPE attribute6_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
61 TYPE attribute7_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
62 TYPE attribute8_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
63 TYPE attribute9_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
64 TYPE attribute10_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
65 TYPE attribute11_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
66 TYPE attribute12_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
67 TYPE attribute13_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
68 TYPE attribute14_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
69 TYPE attribute15_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
70 TYPE source_type_typ IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER; --new for om estimation
71 TYPE source_line_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; --new for om estimation
72 TYPE source_header_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; --new for om estimation
73 TYPE source_consolidation_id_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; --new for om estimation
74 TYPE ship_date_typ IS TABLE OF DATE INDEX BY BINARY_INTEGER; --new for om estimation
75 TYPE arrival_date_typ IS TABLE OF DATE INDEX BY BINARY_INTEGER; --new for om estimation
76
77
78
79
80 G_B_delivery_detail_id delivery_detail_id_typ;
81 G_B_delivery_id delivery_id_typ;
82 G_B_delivery_leg_id delivery_leg_id_typ;
83 G_B_reprice_required reprice_required_typ;
84 G_B_parent_delivery_detail_id parent_delivery_detail_id_typ;
85 G_B_customer_id customer_id_typ;
86 G_B_sold_to_contact_id sold_to_contact_id_typ;
87 G_B_inventory_item_id inventory_item_id_typ;
88 G_B_item_description item_description_typ;
89 G_B_hazard_class_id hazard_class_id_typ;
90 G_B_country_of_origin country_of_origin_typ;
91 G_B_classification classification_typ;
92 G_B_requested_quantity requested_quantity_typ;
93 G_B_requested_quantity_uom requested_quantity_uom_typ;
94 G_B_master_container_item_id master_container_item_id_typ;
95 G_B_detail_container_item_id detail_container_item_id_typ;
96 G_B_customer_item_id customer_item_id_typ;
97 G_B_net_weight net_weight_typ;
98 G_B_organization_id organization_id_typ;
99 G_B_container_flag container_flag_typ;
100 G_B_container_type_code container_type_code_typ;
101 G_B_container_name container_name_typ;
102 G_B_fill_percent fill_percent_typ;
103 G_B_gross_weight gross_weight_typ;
104 G_B_currency_code currency_code_typ;
105 G_B_freight_class_cat_id freight_class_cat_id_typ;
106 G_B_commodity_code_cat_id commodity_code_cat_id_typ;
107 G_B_weight_uom_code weight_uom_code_typ;
108 G_B_volume volume_typ;
109 G_B_volume_uom_code volume_uom_code_typ;
110 G_B_tp_attribute_category tp_attribute_category_typ;
111 G_B_tp_attribute1 tp_attribute1_typ;
112 G_B_tp_attribute2 tp_attribute2_typ;
113 G_B_tp_attribute3 tp_attribute3_typ;
114 G_B_tp_attribute4 tp_attribute4_typ;
115 G_B_tp_attribute5 tp_attribute5_typ;
116 G_B_tp_attribute6 tp_attribute6_typ;
117 G_B_tp_attribute7 tp_attribute7_typ;
118 G_B_tp_attribute8 tp_attribute8_typ;
119 G_B_tp_attribute9 tp_attribute9_typ;
120 G_B_tp_attribute10 tp_attribute10_typ;
121 G_B_tp_attribute11 tp_attribute11_typ;
122 G_B_tp_attribute12 tp_attribute12_typ;
123 G_B_tp_attribute13 tp_attribute13_typ;
124 G_B_tp_attribute14 tp_attribute14_typ;
125 G_B_tp_attribute15 tp_attribute15_typ;
126 G_B_attribute_category attribute_category_typ;
127 G_B_attribute1 attribute1_typ;
128 G_B_attribute2 attribute2_typ;
129 G_B_attribute3 attribute3_typ;
130 G_B_attribute4 attribute4_typ;
131 G_B_attribute5 attribute5_typ;
132 G_B_attribute6 attribute6_typ;
133 G_B_attribute7 attribute7_typ;
134 G_B_attribute8 attribute8_typ;
135 G_B_attribute9 attribute9_typ;
136 G_B_attribute10 attribute10_typ;
137 G_B_attribute11 attribute11_typ;
138 G_B_attribute12 attribute12_typ;
139 G_B_attribute13 attribute13_typ;
140 G_B_attribute14 attribute14_typ;
141 G_B_attribute15 attribute15_typ;
142 G_B_source_type source_type_typ;
143 G_B_source_line_id source_line_id_typ;
144 G_B_source_header_id source_header_id_typ;
145 G_B_source_consolidation_id source_consolidation_id_typ;
146 G_B_ship_date ship_date_typ;
147 G_B_arrival_date arrival_date_typ;
148
149
150
151
152
153
154
155 --Index for arrays
156 G_B_index NUMBER;
157
158 --Structures used to store outputs for bulk inserts into FTE_FREIGHT_COSTS_TEMP
159
160 TYPE T_FREIGHT_COST_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
161 TYPE T_FREIGHT_COST_TYPE_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
162 TYPE T_UNIT_AMOUNT_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
163 TYPE T_CALCULATION_METHOD_typ IS TABLE OF VARCHAR2(15) INDEX BY BINARY_INTEGER;
164 TYPE T_UOM_typ IS TABLE OF VARCHAR2(15) INDEX BY BINARY_INTEGER;
165 TYPE T_QUANTITY_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
166 TYPE T_TOTAL_AMOUNT_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
167 TYPE T_CURRENCY_CODE_typ IS TABLE OF VARCHAR2(15) INDEX BY BINARY_INTEGER;
168 TYPE T_CONVERSION_DATE_typ IS TABLE OF DATE INDEX BY BINARY_INTEGER;
169 TYPE T_CONVERSION_RATE_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
170 TYPE T_CONVERSION_TYPE_CODE_typ IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
171 TYPE T_TRIP_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
172 TYPE T_STOP_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
173 TYPE T_DELIVERY_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
174 TYPE T_DELIVERY_LEG_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
175 TYPE T_DELIVERY_DETAIL_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
176 TYPE T_ATTRIBUTE_CATEGORY_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
177 TYPE T_ATTRIBUTE1_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
178 TYPE T_ATTRIBUTE2_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
179 TYPE T_ATTRIBUTE3_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
180 TYPE T_ATTRIBUTE4_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
181 TYPE T_ATTRIBUTE5_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
182 TYPE T_ATTRIBUTE6_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
183 TYPE T_ATTRIBUTE7_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
184 TYPE T_ATTRIBUTE8_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
185 TYPE T_ATTRIBUTE9_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
186 TYPE T_ATTRIBUTE10_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
187 TYPE T_ATTRIBUTE11_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
188 TYPE T_ATTRIBUTE12_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
189 TYPE T_ATTRIBUTE13_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
190 TYPE T_ATTRIBUTE14_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
191 TYPE T_ATTRIBUTE15_typ IS TABLE OF VARCHAR2(150) INDEX BY BINARY_INTEGER;
192 TYPE T_CREATION_DATE_typ IS TABLE OF DATE INDEX BY BINARY_INTEGER;
193 TYPE T_CREATED_BY_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
194 TYPE T_LAST_UPDATE_DATE_typ IS TABLE OF DATE INDEX BY BINARY_INTEGER;
195 TYPE T_LAST_UPDATED_BY_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
196 TYPE T_LAST_UPDATE_LOGIN_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
197 TYPE T_PROGRAM_APPLICATION_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
198 TYPE T_PROGRAM_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
199 TYPE T_PROGRAM_UPDATE_DATE_typ IS TABLE OF DATE INDEX BY BINARY_INTEGER;
200 TYPE T_REQUEST_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
201 TYPE T_LINE_TYPE_CODE_typ IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
202 TYPE T_PRICING_LIST_HEADER_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
203 TYPE T_PRICING_LIST_LINE_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
204 TYPE T_APPLIED_TO_CHARGE_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
205 TYPE T_CHARGE_UNIT_VALUE_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
206 TYPE T_CHARGE_SOURCE_CODE_typ IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
207 TYPE T_ESTIMATED_FLAG_typ IS TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER;
208 TYPE T_COMPARISON_REQUEST_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
209 TYPE T_LANE_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
210 TYPE T_SCHEDULE_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
211 TYPE T_MOVED_TO_MAIN_FLAG_typ IS TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER;
212 TYPE T_SERVICE_TYPE_CODE_typ IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
213 TYPE T_COMMODITY_CATEGORY_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
214 TYPE T_VEHICLE_TYPE_ID_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
215 TYPE T_BILLABLE_QUANTITY_typ IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
216 TYPE T_BILLABLE_UOM_typ IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
217 TYPE T_BILLABLE_BASIS_typ IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
218
219
220
221 G_B_T_FREIGHT_COST_ID T_FREIGHT_COST_ID_typ;
222 G_B_T_FREIGHT_COST_TYPE_ID T_FREIGHT_COST_TYPE_ID_typ;
223 G_B_T_UNIT_AMOUNT T_UNIT_AMOUNT_typ;
224 G_B_T_CALCULATION_METHOD T_CALCULATION_METHOD_typ;
225 G_B_T_UOM T_UOM_typ;
226 G_B_T_QUANTITY T_QUANTITY_typ;
227 G_B_T_TOTAL_AMOUNT T_TOTAL_AMOUNT_typ;
228 G_B_T_CURRENCY_CODE T_CURRENCY_CODE_typ;
229 G_B_T_CONVERSION_DATE T_CONVERSION_DATE_typ;
230 G_B_T_CONVERSION_RATE T_CONVERSION_RATE_typ;
231 G_B_T_CONVERSION_TYPE_CODE T_CONVERSION_TYPE_CODE_typ;
232 G_B_T_TRIP_ID T_TRIP_ID_typ;
233 G_B_T_STOP_ID T_STOP_ID_typ;
234 G_B_T_DELIVERY_ID T_DELIVERY_ID_typ;
235 G_B_T_DELIVERY_LEG_ID T_DELIVERY_LEG_ID_typ;
236 G_B_T_DELIVERY_DETAIL_ID T_DELIVERY_DETAIL_ID_typ;
237 G_B_T_ATTRIBUTE_CATEGORY T_ATTRIBUTE_CATEGORY_typ;
238 G_B_T_ATTRIBUTE1 T_ATTRIBUTE1_typ;
239 G_B_T_ATTRIBUTE2 T_ATTRIBUTE2_typ;
240 G_B_T_ATTRIBUTE3 T_ATTRIBUTE3_typ;
241 G_B_T_ATTRIBUTE4 T_ATTRIBUTE4_typ;
242 G_B_T_ATTRIBUTE5 T_ATTRIBUTE5_typ;
243 G_B_T_ATTRIBUTE6 T_ATTRIBUTE6_typ;
244 G_B_T_ATTRIBUTE7 T_ATTRIBUTE7_typ;
245 G_B_T_ATTRIBUTE8 T_ATTRIBUTE8_typ;
246 G_B_T_ATTRIBUTE9 T_ATTRIBUTE9_typ;
247 G_B_T_ATTRIBUTE10 T_ATTRIBUTE10_typ;
248 G_B_T_ATTRIBUTE11 T_ATTRIBUTE11_typ;
249 G_B_T_ATTRIBUTE12 T_ATTRIBUTE12_typ;
250 G_B_T_ATTRIBUTE13 T_ATTRIBUTE13_typ;
251 G_B_T_ATTRIBUTE14 T_ATTRIBUTE14_typ;
252 G_B_T_ATTRIBUTE15 T_ATTRIBUTE15_typ;
253 G_B_T_CREATION_DATE T_CREATION_DATE_typ;
254 G_B_T_CREATED_BY T_CREATED_BY_typ;
255 G_B_T_LAST_UPDATE_DATE T_LAST_UPDATE_DATE_typ;
256 G_B_T_LAST_UPDATED_BY T_LAST_UPDATED_BY_typ;
257 G_B_T_LAST_UPDATE_LOGIN T_LAST_UPDATE_LOGIN_typ;
258 G_B_T_PROGRAM_APPLICATION_ID T_PROGRAM_APPLICATION_ID_typ;
259 G_B_T_PROGRAM_ID T_PROGRAM_ID_typ;
260 G_B_T_PROGRAM_UPDATE_DATE T_PROGRAM_UPDATE_DATE_typ;
261 G_B_T_REQUEST_ID T_REQUEST_ID_typ;
262 G_B_T_LINE_TYPE_CODE T_LINE_TYPE_CODE_typ;
263 G_B_T_PRICING_LIST_HEADER_ID T_PRICING_LIST_HEADER_ID_typ;
264 G_B_T_PRICING_LIST_LINE_ID T_PRICING_LIST_LINE_ID_typ;
265 G_B_T_APPLIED_TO_CHARGE_ID T_APPLIED_TO_CHARGE_ID_typ;
266 G_B_T_CHARGE_UNIT_VALUE T_CHARGE_UNIT_VALUE_typ;
267 G_B_T_CHARGE_SOURCE_CODE T_CHARGE_SOURCE_CODE_typ;
268 G_B_T_ESTIMATED_FLAG T_ESTIMATED_FLAG_typ;
269 G_B_T_COMPARISON_REQUEST_ID T_COMPARISON_REQUEST_ID_typ;
270 G_B_T_LANE_ID T_LANE_ID_typ;
271 G_B_T_SCHEDULE_ID T_SCHEDULE_ID_typ;
272 G_B_T_MOVED_TO_MAIN_FLAG T_MOVED_TO_MAIN_FLAG_typ;
273 G_B_T_SERVICE_TYPE_CODE T_SERVICE_TYPE_CODE_typ;
274 G_B_T_COMMODITY_CATEGORY_ID T_COMMODITY_CATEGORY_ID_typ;
275 G_B_T_VEHICLE_TYPE_ID T_VEHICLE_TYPE_ID_typ;
276 G_B_T_BILLABLE_QUANTITY T_BILLABLE_QUANTITY_typ;
277 G_B_T_BILLABLE_UOM T_BILLABLE_UOM_typ;
278 G_B_T_BILLABLE_BASIS T_BILLABLE_BASIS_typ;
279
280
281
282
283 --Index for arrays
284 G_B_T_index NUMBER;
285
286 TYPE stop_id_tbl_type IS TABLE of wsh_trip_stops.stop_id%type INDEX BY BINARY_INTEGER;
287 TYPE distance_to_next_stop_tbl_type IS TABLE of wsh_trip_stops.distance_to_next_stop%type INDEX BY BINARY_INTEGER;
288
289 g_stop_id_tbl stop_id_tbl_type;
290 g_distance_to_next_stop_tbl distance_to_next_stop_tbl_type;
291
292 --Structure used to store charges when
293 --they are allocated to the dleg
294
295 TYPE TL_dleg_alloc_rec_type IS RECORD(
296
297 delivery_leg_id NUMBER,
298 delivery_id NUMBER,
299 base_dist_load_chrg NUMBER,
300 base_dist_load_unit_chrg NUMBER,
301 base_dist_unload_chrg NUMBER,
302 base_dist_unload_unit_chrg NUMBER,
303 base_unit_chrg NUMBER,
304 base_unit_unit_chrg NUMBER,
305 base_time_chrg NUMBER,
306 base_time_unit_chrg NUMBER,
307 base_flat_chrg NUMBER,
308 stop_off_chrg NUMBER,
309 out_of_route_chrg NUMBER,
310 document_chrg NUMBER,
311 handling_chrg NUMBER,
312 fuel_chrg NUMBER,
313 weekday_layover_chrg NUMBER,
314 weekend_layover_chrg NUMBER,
315 loading_chrg NUMBER,
316 ast_loading_chrg NUMBER,
317 unloading_chrg NUMBER,
318 origin_surchrg NUMBER,
319 destination_surchrg NUMBER,
320 ast_unloading_chrg NUMBER,
321 fac_handling_chrg NUMBER,
322 fac_loading_chrg NUMBER,
323 fac_ast_loading_chrg NUMBER,
324 fac_unloading_chrg NUMBER,
325 fac_ast_unloading_chrg NUMBER,
326 fac_loading_currency VARCHAR2(30),
327 fac_unloading_currency VARCHAR2(30),
328 fac_handling_currency VARCHAR2(30),
329 total_dleg_charge NUMBER--FOR MDC
330 );
331
332
333
334 TYPE TL_dleg_alloc_TAB_TYPE IS TABLE OF TL_dleg_alloc_rec_type INDEX BY
335 BINARY_INTEGER;
336
337 TYPE TL_detail_alloc_rec_type IS RECORD(
338 total_detail_charge NUMBER
339 );
340
341 --This will be indexed by the delivery detail id
342 TYPE TL_detail_alloc_TAB_TYPE IS TABLE OF TL_detail_alloc_rec_type INDEX BY
343 BINARY_INTEGER;
344
345
346
347 PROCEDURE Clear_Bulk_Arrays(
348 x_return_status OUT NOCOPY Varchar2) IS
349
350 l_return_status VARCHAR2(1);
351
352 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
353
354 l_warning_count NUMBER:=0;
355 BEGIN
356
357 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
358 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Clear_Bulk_Arrays','start');
359
360 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
361
362
363 G_B_delivery_detail_id.delete;
364 G_B_delivery_id.delete;
365 G_B_delivery_leg_id.delete;
366 G_B_reprice_required.delete;
367 G_B_parent_delivery_detail_id.delete;
368 G_B_customer_id.delete;
369 G_B_sold_to_contact_id.delete;
370 G_B_inventory_item_id.delete;
371 G_B_item_description.delete;
372 G_B_hazard_class_id.delete;
373 G_B_country_of_origin.delete;
374 G_B_classification.delete;
375 G_B_requested_quantity.delete;
376 G_B_requested_quantity_uom.delete;
377 G_B_master_container_item_id.delete;
378 G_B_detail_container_item_id.delete;
379 G_B_customer_item_id.delete;
380 G_B_net_weight.delete;
381 G_B_organization_id.delete;
382 G_B_container_flag.delete;
383 G_B_container_type_code.delete;
384 G_B_container_name.delete;
385 G_B_fill_percent.delete;
386 G_B_gross_weight.delete;
387 G_B_currency_code.delete;
388 G_B_freight_class_cat_id.delete;
389 G_B_commodity_code_cat_id.delete;
390 G_B_weight_uom_code.delete;
391 G_B_volume.delete;
392 G_B_volume_uom_code.delete;
393 G_B_tp_attribute_category.delete;
394 G_B_tp_attribute1.delete;
395 G_B_tp_attribute2.delete;
396 G_B_tp_attribute3.delete;
397 G_B_tp_attribute4.delete;
398 G_B_tp_attribute5.delete;
399 G_B_tp_attribute6.delete;
400 G_B_tp_attribute7.delete;
401 G_B_tp_attribute8.delete;
402 G_B_tp_attribute9.delete;
403 G_B_tp_attribute10.delete;
404 G_B_tp_attribute11.delete;
405 G_B_tp_attribute12.delete;
406 G_B_tp_attribute13.delete;
407 G_B_tp_attribute14.delete;
408 G_B_tp_attribute15.delete;
409 G_B_attribute_category.delete;
410 G_B_attribute1.delete;
411 G_B_attribute2.delete;
412 G_B_attribute3.delete;
413 G_B_attribute4.delete;
414 G_B_attribute5.delete;
415 G_B_attribute6.delete;
416 G_B_attribute7.delete;
417 G_B_attribute8.delete;
418 G_B_attribute9.delete;
419 G_B_attribute10.delete;
420 G_B_attribute11.delete;
421 G_B_attribute12.delete;
422 G_B_attribute13.delete;
423 G_B_attribute14.delete;
424 G_B_attribute15.delete;
425 G_B_source_type.delete;
426 G_B_source_line_id.delete;
427 G_B_source_header_id.delete;
428 G_B_source_consolidation_id.delete;
429 G_B_ship_date.delete;
430 G_B_arrival_date.delete;
431
432
433
434
435
436 G_B_index:=1;
437
438
439 G_B_T_FREIGHT_COST_ID.delete;
440 G_B_T_FREIGHT_COST_TYPE_ID.delete;
441 G_B_T_UNIT_AMOUNT.delete;
442 G_B_T_CALCULATION_METHOD.delete;
443 G_B_T_UOM.delete;
444 G_B_T_QUANTITY.delete;
445 G_B_T_TOTAL_AMOUNT.delete;
446 G_B_T_CURRENCY_CODE.delete;
447 G_B_T_CONVERSION_DATE.delete;
448 G_B_T_CONVERSION_RATE.delete;
449 G_B_T_CONVERSION_TYPE_CODE.delete;
450 G_B_T_TRIP_ID.delete;
451 G_B_T_STOP_ID.delete;
452 G_B_T_DELIVERY_ID.delete;
453 G_B_T_DELIVERY_LEG_ID.delete;
454 G_B_T_DELIVERY_DETAIL_ID.delete;
455 G_B_T_ATTRIBUTE_CATEGORY.delete;
456 G_B_T_ATTRIBUTE1.delete;
457 G_B_T_ATTRIBUTE2.delete;
458 G_B_T_ATTRIBUTE3.delete;
459 G_B_T_ATTRIBUTE4.delete;
460 G_B_T_ATTRIBUTE5.delete;
461 G_B_T_ATTRIBUTE6.delete;
462 G_B_T_ATTRIBUTE7.delete;
463 G_B_T_ATTRIBUTE8.delete;
464 G_B_T_ATTRIBUTE9.delete;
465 G_B_T_ATTRIBUTE10.delete;
466 G_B_T_ATTRIBUTE11.delete;
467 G_B_T_ATTRIBUTE12.delete;
468 G_B_T_ATTRIBUTE13.delete;
469 G_B_T_ATTRIBUTE14.delete;
470 G_B_T_ATTRIBUTE15.delete;
471 G_B_T_CREATION_DATE.delete;
472 G_B_T_CREATED_BY.delete;
473 G_B_T_LAST_UPDATE_DATE.delete;
474 G_B_T_LAST_UPDATED_BY.delete;
475 G_B_T_LAST_UPDATE_LOGIN.delete;
476 G_B_T_PROGRAM_APPLICATION_ID.delete;
477 G_B_T_PROGRAM_ID.delete;
478 G_B_T_PROGRAM_UPDATE_DATE.delete;
479 G_B_T_REQUEST_ID.delete;
480 G_B_T_LINE_TYPE_CODE.delete;
481 G_B_T_PRICING_LIST_HEADER_ID.delete;
482 G_B_T_PRICING_LIST_LINE_ID.delete;
483 G_B_T_APPLIED_TO_CHARGE_ID.delete;
484 G_B_T_CHARGE_UNIT_VALUE.delete;
485 G_B_T_CHARGE_SOURCE_CODE.delete;
486 G_B_T_ESTIMATED_FLAG.delete;
487 G_B_T_COMPARISON_REQUEST_ID.delete;
488 G_B_T_LANE_ID.delete;
489 G_B_T_SCHEDULE_ID.delete;
490 G_B_T_MOVED_TO_MAIN_FLAG.delete;
491 G_B_T_SERVICE_TYPE_CODE.delete;
492 G_B_T_COMMODITY_CATEGORY_ID.delete;
493
494 G_B_T_index:=1;
495
496 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Clear_Bulk_Arrays');
497
498 IF (l_warning_count > 0)
499 THEN
500 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
501 END IF;
502
503 EXCEPTION
504
505
506 WHEN others THEN
507 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
508 FTE_FREIGHT_PRICING_UTIL.set_exception('Clear_Bulk_Arrays',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
509 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
510 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Clear_Bulk_Arrays');
511
512 END Clear_Bulk_Arrays;
513
514
515 PROCEDURE Insert_Into_Bulk_Array(
516 p_freight_cost_rec IN FTE_FREIGHT_PRICING.shipment_line_rec_type,
517 x_return_status OUT NOCOPY Varchar2) IS
518
519 l_return_status VARCHAR2(1);
520
521 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
522
523 l_warning_count NUMBER:=0;
524 BEGIN
525
526 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
527 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Insert_Into_Bulk_Array','start');
528
529 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
530
531
532 G_B_index:=G_B_index+1;
533
534 G_B_delivery_detail_id(G_B_index):=p_freight_cost_rec.delivery_detail_id;
535 G_B_delivery_id(G_B_index):=p_freight_cost_rec.delivery_id;
536 G_B_delivery_leg_id(G_B_index):=p_freight_cost_rec.delivery_leg_id;
537 G_B_reprice_required(G_B_index):=p_freight_cost_rec.reprice_required;
538 G_B_parent_delivery_detail_id(G_B_index):=p_freight_cost_rec.parent_delivery_detail_id;
539 G_B_customer_id(G_B_index):=p_freight_cost_rec.customer_id;
540 G_B_sold_to_contact_id(G_B_index):=p_freight_cost_rec.sold_to_contact_id;
541 G_B_inventory_item_id(G_B_index):=p_freight_cost_rec.inventory_item_id;
542 G_B_item_description(G_B_index):=p_freight_cost_rec.item_description;
543 G_B_hazard_class_id(G_B_index):=p_freight_cost_rec.hazard_class_id;
544 G_B_country_of_origin(G_B_index):=p_freight_cost_rec.country_of_origin;
545 G_B_classification(G_B_index):=p_freight_cost_rec.classification;
546 G_B_requested_quantity(G_B_index):=p_freight_cost_rec.requested_quantity;
547 G_B_requested_quantity_uom(G_B_index):=p_freight_cost_rec.requested_quantity_uom;
548 G_B_master_container_item_id(G_B_index):=p_freight_cost_rec.master_container_item_id;
549 G_B_detail_container_item_id(G_B_index):=p_freight_cost_rec.detail_container_item_id;
550 G_B_customer_item_id(G_B_index):=p_freight_cost_rec.customer_item_id;
551 G_B_net_weight(G_B_index):=p_freight_cost_rec.net_weight;
552 G_B_organization_id(G_B_index):=p_freight_cost_rec.organization_id;
553 G_B_container_flag(G_B_index):=p_freight_cost_rec.container_flag;
554 G_B_container_type_code(G_B_index):=p_freight_cost_rec.container_type_code;
555 G_B_container_name(G_B_index):=p_freight_cost_rec.container_name;
556 G_B_fill_percent(G_B_index):=p_freight_cost_rec.fill_percent;
557 G_B_gross_weight(G_B_index):=p_freight_cost_rec.gross_weight;
558 G_B_currency_code(G_B_index):=p_freight_cost_rec.currency_code;
559 G_B_freight_class_cat_id(G_B_index):=p_freight_cost_rec.freight_class_cat_id;
560 G_B_commodity_code_cat_id(G_B_index):=p_freight_cost_rec.commodity_code_cat_id;
561 G_B_weight_uom_code(G_B_index):=p_freight_cost_rec.weight_uom_code;
562 G_B_volume(G_B_index):=p_freight_cost_rec.volume;
563 G_B_volume_uom_code(G_B_index):=p_freight_cost_rec.volume_uom_code;
564 G_B_tp_attribute_category(G_B_index):=p_freight_cost_rec.tp_attribute_category;
565 G_B_tp_attribute1(G_B_index):=p_freight_cost_rec.tp_attribute1;
566 G_B_tp_attribute2(G_B_index):=p_freight_cost_rec.tp_attribute2;
567 G_B_tp_attribute3(G_B_index):=p_freight_cost_rec.tp_attribute3;
568 G_B_tp_attribute4(G_B_index):=p_freight_cost_rec.tp_attribute4;
569 G_B_tp_attribute5(G_B_index):=p_freight_cost_rec.tp_attribute5;
570 G_B_tp_attribute6(G_B_index):=p_freight_cost_rec.tp_attribute6;
571 G_B_tp_attribute7(G_B_index):=p_freight_cost_rec.tp_attribute7;
572 G_B_tp_attribute8(G_B_index):=p_freight_cost_rec.tp_attribute8;
573 G_B_tp_attribute9(G_B_index):=p_freight_cost_rec.tp_attribute9;
574 G_B_tp_attribute10(G_B_index):=p_freight_cost_rec.tp_attribute10;
575 G_B_tp_attribute11(G_B_index):=p_freight_cost_rec.tp_attribute11;
576 G_B_tp_attribute12(G_B_index):=p_freight_cost_rec.tp_attribute12;
577 G_B_tp_attribute13(G_B_index):=p_freight_cost_rec.tp_attribute13;
578 G_B_tp_attribute14(G_B_index):=p_freight_cost_rec.tp_attribute14;
579 G_B_tp_attribute15(G_B_index):=p_freight_cost_rec.tp_attribute15;
580 G_B_attribute_category(G_B_index):=p_freight_cost_rec.attribute_category;
581 G_B_attribute1(G_B_index):=p_freight_cost_rec.attribute1;
582 G_B_attribute2(G_B_index):=p_freight_cost_rec.attribute2;
583 G_B_attribute3(G_B_index):=p_freight_cost_rec.attribute3;
584 G_B_attribute4(G_B_index):=p_freight_cost_rec.attribute4;
585 G_B_attribute5(G_B_index):=p_freight_cost_rec.attribute5;
586 G_B_attribute6(G_B_index):=p_freight_cost_rec.attribute6;
587 G_B_attribute7(G_B_index):=p_freight_cost_rec.attribute7;
588 G_B_attribute8(G_B_index):=p_freight_cost_rec.attribute8;
589 G_B_attribute9(G_B_index):=p_freight_cost_rec.attribute9;
590 G_B_attribute10(G_B_index):=p_freight_cost_rec.attribute10;
591 G_B_attribute11(G_B_index):=p_freight_cost_rec.attribute11;
592 G_B_attribute12(G_B_index):=p_freight_cost_rec.attribute12;
593 G_B_attribute13(G_B_index):=p_freight_cost_rec.attribute13;
594 G_B_attribute14(G_B_index):=p_freight_cost_rec.attribute14;
595 G_B_attribute15(G_B_index):=p_freight_cost_rec.attribute15;
596 G_B_source_type(G_B_index):=p_freight_cost_rec.source_type;
597 G_B_source_line_id(G_B_index):=p_freight_cost_rec.source_line_id;
598 G_B_source_header_id(G_B_index):=p_freight_cost_rec.source_header_id;
599 G_B_source_consolidation_id(G_B_index):=p_freight_cost_rec.source_consolidation_id;
600 G_B_ship_date(G_B_index):=p_freight_cost_rec.ship_date;
601 G_B_arrival_date(G_B_index):=p_freight_cost_rec.arrival_date;
602
603
604
605
606
607
608
609 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Into_Bulk_Array');
610
611 IF (l_warning_count > 0)
612 THEN
613 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
614 END IF;
615
616 EXCEPTION
617
618
619 WHEN others THEN
620 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
621 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Into_Bulk_Array',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
622 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
623 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Into_Bulk_Array');
624
625 END Insert_Into_Bulk_Array;
626
627
628 PROCEDURE Insert_Into_Temp_Bulk_Array(
629 p_freight_cost_rec IN FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type,
630 x_return_status OUT NOCOPY Varchar2) IS
631
632
633 CURSOR C_Next_Freight_Cost_Id
634 IS
635 SELECT fte_freight_costs_temp_s.nextval
636 FROM sys.dual;
637
638 l_return_status VARCHAR2(1);
639
640 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
641
642 l_warning_count NUMBER:=0;
643 BEGIN
644
645 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
646 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Insert_Into_Temp_Bulk_Array','start');
647
648 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
649
650 G_B_T_index:=G_B_T_index+1;
651
652 OPEN C_Next_Freight_Cost_Id;
653 FETCH C_Next_Freight_Cost_Id INTO G_B_T_FREIGHT_COST_ID(G_B_T_index);
654 CLOSE C_Next_Freight_Cost_Id;
655
656
657 --G_B_T_FREIGHT_COST_ID(G_B_T_index):=p_freight_cost_rec.FREIGHT_COST_ID;
658 G_B_T_FREIGHT_COST_TYPE_ID(G_B_T_index):=p_freight_cost_rec.FREIGHT_COST_TYPE_ID;
659 G_B_T_UNIT_AMOUNT(G_B_T_index):=p_freight_cost_rec.UNIT_AMOUNT;
660 G_B_T_CALCULATION_METHOD(G_B_T_index):=p_freight_cost_rec.CALCULATION_METHOD;
661 G_B_T_UOM(G_B_T_index):=p_freight_cost_rec.UOM;
662 G_B_T_QUANTITY(G_B_T_index):=p_freight_cost_rec.QUANTITY;
663 G_B_T_TOTAL_AMOUNT(G_B_T_index):=p_freight_cost_rec.TOTAL_AMOUNT;
664 G_B_T_CURRENCY_CODE(G_B_T_index):=p_freight_cost_rec.CURRENCY_CODE;
665 G_B_T_CONVERSION_DATE(G_B_T_index):=p_freight_cost_rec.CONVERSION_DATE;
666 G_B_T_CONVERSION_RATE(G_B_T_index):=p_freight_cost_rec.CONVERSION_RATE;
667 G_B_T_CONVERSION_TYPE_CODE(G_B_T_index):=p_freight_cost_rec.CONVERSION_TYPE_CODE;
668 G_B_T_TRIP_ID(G_B_T_index):=p_freight_cost_rec.TRIP_ID;
669 G_B_T_STOP_ID(G_B_T_index):=p_freight_cost_rec.STOP_ID;
670 G_B_T_DELIVERY_ID(G_B_T_index):=p_freight_cost_rec.DELIVERY_ID;
671 G_B_T_DELIVERY_LEG_ID(G_B_T_index):=p_freight_cost_rec.DELIVERY_LEG_ID;
672 G_B_T_DELIVERY_DETAIL_ID(G_B_T_index):=p_freight_cost_rec.DELIVERY_DETAIL_ID;
673 G_B_T_ATTRIBUTE_CATEGORY(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE_CATEGORY;
674 G_B_T_ATTRIBUTE1(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE1;
675 G_B_T_ATTRIBUTE2(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE2;
676 G_B_T_ATTRIBUTE3(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE3;
677 G_B_T_ATTRIBUTE4(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE4;
678 G_B_T_ATTRIBUTE5(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE5;
679 G_B_T_ATTRIBUTE6(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE6;
680 G_B_T_ATTRIBUTE7(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE7;
681 G_B_T_ATTRIBUTE8(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE8;
682 G_B_T_ATTRIBUTE9(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE9;
683 G_B_T_ATTRIBUTE10(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE10;
684 G_B_T_ATTRIBUTE11(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE11;
685 G_B_T_ATTRIBUTE12(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE12;
686 G_B_T_ATTRIBUTE13(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE13;
687 G_B_T_ATTRIBUTE14(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE14;
688 G_B_T_ATTRIBUTE15(G_B_T_index):=p_freight_cost_rec.ATTRIBUTE15;
689 G_B_T_CREATION_DATE(G_B_T_index):=p_freight_cost_rec.CREATION_DATE;
690 G_B_T_CREATED_BY(G_B_T_index):=p_freight_cost_rec.CREATED_BY;
691 G_B_T_LAST_UPDATE_DATE(G_B_T_index):=p_freight_cost_rec.LAST_UPDATE_DATE;
692 G_B_T_LAST_UPDATED_BY(G_B_T_index):=p_freight_cost_rec.LAST_UPDATED_BY;
693 G_B_T_LAST_UPDATE_LOGIN(G_B_T_index):=p_freight_cost_rec.LAST_UPDATE_LOGIN;
694 G_B_T_PROGRAM_APPLICATION_ID(G_B_T_index):=p_freight_cost_rec.PROGRAM_APPLICATION_ID;
695 G_B_T_PROGRAM_ID(G_B_T_index):=p_freight_cost_rec.PROGRAM_ID;
696 G_B_T_PROGRAM_UPDATE_DATE(G_B_T_index):=p_freight_cost_rec.PROGRAM_UPDATE_DATE;
697 G_B_T_REQUEST_ID(G_B_T_index):=p_freight_cost_rec.REQUEST_ID;
698 G_B_T_LINE_TYPE_CODE(G_B_T_index):=p_freight_cost_rec.LINE_TYPE_CODE;
699 G_B_T_PRICING_LIST_HEADER_ID(G_B_T_index):=p_freight_cost_rec.PRICING_LIST_HEADER_ID;
700 G_B_T_PRICING_LIST_LINE_ID(G_B_T_index):=p_freight_cost_rec.PRICING_LIST_LINE_ID;
701 G_B_T_APPLIED_TO_CHARGE_ID(G_B_T_index):=p_freight_cost_rec.APPLIED_TO_CHARGE_ID;
702 G_B_T_CHARGE_UNIT_VALUE(G_B_T_index):=p_freight_cost_rec.CHARGE_UNIT_VALUE;
703 G_B_T_CHARGE_SOURCE_CODE(G_B_T_index):=p_freight_cost_rec.CHARGE_SOURCE_CODE;
704 G_B_T_ESTIMATED_FLAG(G_B_T_index):=p_freight_cost_rec.ESTIMATED_FLAG;
705 G_B_T_COMPARISON_REQUEST_ID(G_B_T_index):=p_freight_cost_rec.COMPARISON_REQUEST_ID;
706 G_B_T_LANE_ID(G_B_T_index):=p_freight_cost_rec.LANE_ID;
707 G_B_T_SCHEDULE_ID(G_B_T_index):=p_freight_cost_rec.SCHEDULE_ID;
708 G_B_T_MOVED_TO_MAIN_FLAG(G_B_T_index):=p_freight_cost_rec.MOVED_TO_MAIN_FLAG;
709 G_B_T_SERVICE_TYPE_CODE(G_B_T_index):=p_freight_cost_rec.SERVICE_TYPE_CODE;
710 G_B_T_COMMODITY_CATEGORY_ID(G_B_T_index):=p_freight_cost_rec.COMMODITY_CATEGORY_ID;
711
712 G_B_T_VEHICLE_TYPE_ID(G_B_T_index):=p_freight_cost_rec.VEHICLE_TYPE_ID;
713 G_B_T_BILLABLE_QUANTITY(G_B_T_index):=p_freight_cost_rec.BILLABLE_QUANTITY;
714 G_B_T_BILLABLE_UOM(G_B_T_index):=p_freight_cost_rec.BILLABLE_UOM;
715 G_B_T_BILLABLE_BASIS(G_B_T_index):=p_freight_cost_rec.BILLABLE_BASIS;
716
717
718
719
720
721
722 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Into_Temp_Bulk_Array');
723
724 IF (l_warning_count > 0)
725 THEN
726 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
727 END IF;
728
729 EXCEPTION
730
731
732 WHEN others THEN
733 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
734 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Into_Temp_Bulk_Array',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
735 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
736 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Into_Temp_Bulk_Array');
737
738 END Insert_Into_Temp_Bulk_Array;
739
740
741 PROCEDURE Bulk_Insert_Temp(
742 x_return_status OUT NOCOPY Varchar2) IS
743
744 l_return_status VARCHAR2(1);
745
746 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
747
748 l_warning_count NUMBER:=0;
749 i NUMBER;
750 BEGIN
751
752 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
753 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Bulk_Insert_Temp','start');
754
755 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
756
757 SAVEPOINT Bulk_Insert_Temp;
758
759 IF (G_B_T_FREIGHT_COST_ID.first IS NOT NULL)
760 THEN
761
762 FORALL i IN G_B_T_FREIGHT_COST_ID.first .. G_B_T_FREIGHT_COST_ID.last
763 INSERT INTO FTE_FREIGHT_COSTS_TEMP (
764 freight_cost_id,
765 freight_cost_type_id,
766 unit_amount,
767 calculation_method,
768 uom,
769 quantity,
770 total_amount,
771 currency_code,
772 conversion_date,
773 conversion_rate,
774 conversion_type_code,
775 trip_id,
776 stop_id,
777 delivery_id,
778 delivery_leg_id,
779 delivery_detail_id,
780 attribute_category,
781 attribute1,
782 attribute2,
783 attribute3,
784 attribute4,
785 attribute5,
786 attribute6,
787 attribute7,
788 attribute8,
789 attribute9,
790 attribute10,
791 attribute11,
792 attribute12,
793 attribute13,
794 attribute14,
795 attribute15,
796 creation_date,
797 created_by,
798 last_update_date,
799 last_updated_by,
800 last_update_login,
801 program_application_id,
802 program_id,
803 program_update_date,
804 request_id,
805 line_type_code,
806 charge_unit_value,
807 charge_source_code,
808 estimated_flag,
809 comparison_request_id,
810 lane_id,
811 schedule_id,
812 moved_to_main_flag,
813 service_type_code, -- bug2741467
814 commodity_category_id,
815 vehicle_type_id,
816 billable_quantity,
817 billable_uom,
818 billable_basis
819
820 )
821 VALUES
822 (
823 G_B_T_FREIGHT_COST_ID(i),
824 G_B_T_FREIGHT_COST_TYPE_ID(i),
825 G_B_T_UNIT_AMOUNT(i),
826 G_B_T_CALCULATION_METHOD(i),
827 G_B_T_UOM(i),
828 G_B_T_QUANTITY(i),
829 G_B_T_TOTAL_AMOUNT(i),
830 G_B_T_CURRENCY_CODE(i),
831 G_B_T_CONVERSION_DATE(i),
832 G_B_T_CONVERSION_RATE(i),
833 G_B_T_CONVERSION_TYPE_CODE(i),
834 G_B_T_TRIP_ID(i),
835 G_B_T_STOP_ID(i),
836 G_B_T_DELIVERY_ID(i),
837 G_B_T_DELIVERY_LEG_ID(i),
838 G_B_T_DELIVERY_DETAIL_ID(i),
839 G_B_T_ATTRIBUTE_CATEGORY(i),
840 G_B_T_ATTRIBUTE1(i),
841 G_B_T_ATTRIBUTE2(i),
842 G_B_T_ATTRIBUTE3(i),
843 G_B_T_ATTRIBUTE4(i),
844 G_B_T_ATTRIBUTE5(i),
845 G_B_T_ATTRIBUTE6(i),
846 G_B_T_ATTRIBUTE7(i),
847 G_B_T_ATTRIBUTE8(i),
848 G_B_T_ATTRIBUTE9(i),
849 G_B_T_ATTRIBUTE10(i),
850 G_B_T_ATTRIBUTE11(i),
851 G_B_T_ATTRIBUTE12(i),
852 G_B_T_ATTRIBUTE13(i),
853 G_B_T_ATTRIBUTE14(i),
854 G_B_T_ATTRIBUTE15(i),
855 G_B_T_CREATION_DATE(i),
856 G_B_T_CREATED_BY(i),
857 G_B_T_LAST_UPDATE_DATE(i),
858 G_B_T_LAST_UPDATED_BY(i),
859 G_B_T_LAST_UPDATE_LOGIN(i),
860 G_B_T_PROGRAM_APPLICATION_ID(i),
861 G_B_T_PROGRAM_ID(i),
862 G_B_T_PROGRAM_UPDATE_DATE(i),
863 G_B_T_REQUEST_ID(i),
864 G_B_T_LINE_TYPE_CODE(i),
865 --G_B_T_PRICING_LIST_HEADER_ID(i),
866 --G_B_T_PRICING_LIST_LINE_ID(i),
867 --G_B_T_APPLIED_TO_CHARGE_ID(i),
868 G_B_T_CHARGE_UNIT_VALUE(i),
869 G_B_T_CHARGE_SOURCE_CODE(i),
870 G_B_T_ESTIMATED_FLAG(i),
871 G_B_T_COMPARISON_REQUEST_ID(i),
872 G_B_T_LANE_ID(i),
873 G_B_T_SCHEDULE_ID(i),
874 G_B_T_MOVED_TO_MAIN_FLAG(i),
875 G_B_T_SERVICE_TYPE_CODE(i),
876 G_B_T_COMMODITY_CATEGORY_ID(i),
877 G_B_T_VEHICLE_TYPE_ID(i),
878 G_B_T_BILLABLE_QUANTITY(i),
879 G_B_T_BILLABLE_UOM(i),
880 G_B_T_BILLABLE_BASIS(i)
881 );
882 END IF;
883
884
885
886 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Bulk_Insert_Temp');
887
888 IF (l_warning_count > 0)
889 THEN
890 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
891 END IF;
892
893 EXCEPTION
894
895
896 WHEN others THEN
897 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
898 ROLLBACK TO Bulk_Insert_Temp;
899 FTE_FREIGHT_PRICING_UTIL.set_exception('Bulk_Insert_Temp',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
900 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
901 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Bulk_Insert_Temp');
902
903 END Bulk_Insert_Temp;
904
905
906
907 PROCEDURE Bulk_Insert(
908 x_return_status OUT NOCOPY Varchar2) IS
909
910 l_return_status VARCHAR2(1);
911
912 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
913
914 l_warning_count NUMBER:=0;
915 BEGIN
916
917 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
918 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Bulk_Insert','start');
919
920 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
921
922
923
924
925
926 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Bulk_Insert');
927
928 IF (l_warning_count > 0)
929 THEN
930 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
931 END IF;
932
933 EXCEPTION
934
935
936 WHEN others THEN
937 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
938 FTE_FREIGHT_PRICING_UTIL.set_exception('Bulk_Insert',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
939 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
940 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Bulk_Insert');
941
942 END Bulk_Insert;
943
944
945 PROCEDURE Get_Cost_Allocation_Parameters(
946 x_cost_allocation_parameters IN OUT NOCOPY TL_allocation_params_rec_type,
947 x_return_status OUT NOCOPY Varchar2) IS
948
949 l_return_status VARCHAR2(1);
950 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
951
952 CURSOR get_cost_alloc_params IS
953 SELECT TL_PRIN_COST_ALLOC_BASIS,TL_DISTANCE_ALLOC_BASIS,TL_STOP_COST_ALLOC_BASIS
954 FROM WSH_GLOBAL_PARAMETERS;
955
956 l_warning_count NUMBER:=0;
957 BEGIN
958
959 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
960 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Get_Cost_Allocation_Parameters','start');
961 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
962
963
964 OPEN get_cost_alloc_params;
965 FETCH get_cost_alloc_params
966 INTO x_cost_allocation_parameters.principal_alloc_basis,
967 x_cost_allocation_parameters.distance_alloc_method,
968 x_cost_allocation_parameters.tl_stop_alloc_method;
969
970 IF get_cost_alloc_params%NOTFOUND
971 THEN
972
973 FTE_FREIGHT_PRICING_UTIL.setmsg (
974 p_api=>'Get_Cost_Allocation_Parameters',
975 p_exc=>'g_tl_fetch_alloc_param_fail');
976
977 raise FTE_FREIGHT_PRICING_UTIL.g_tl_fetch_alloc_param_fail;
978 END IF;
979
980 IF ( (x_cost_allocation_parameters.principal_alloc_basis IS NULL)
981 OR ((x_cost_allocation_parameters.principal_alloc_basis <> FTE_RTG_GLOBALS.G_CA_WEIGHT_BASIS)
982 AND (x_cost_allocation_parameters.principal_alloc_basis <> FTE_RTG_GLOBALS.G_CA_VOLUME_BASIS))
983 OR (x_cost_allocation_parameters.distance_alloc_method IS NULL)
984 OR ((x_cost_allocation_parameters.distance_alloc_method <> FTE_RTG_GLOBALS.G_CA_DIRECT_DISTANCE )
985 AND (x_cost_allocation_parameters.distance_alloc_method <> FTE_RTG_GLOBALS.G_CA_TOTAL_DISTANCE ))
986 OR (x_cost_allocation_parameters.tl_stop_alloc_method IS NULL)
987 OR ( (x_cost_allocation_parameters.tl_stop_alloc_method <> FTE_RTG_GLOBALS.G_CA_PICKUP_STOP)
988 AND (x_cost_allocation_parameters.tl_stop_alloc_method <> FTE_RTG_GLOBALS.G_CA_DELIVERY_STOP))
989
990 )
991 THEN
992
993 FTE_FREIGHT_PRICING_UTIL.setmsg (
994 p_api=>'Get_Cost_Allocation_Parameters',
995 p_exc=>'g_tl_fetch_alloc_param_fail');
996
997 raise FTE_FREIGHT_PRICING_UTIL.g_tl_fetch_alloc_param_fail;
998
999 END IF;
1000
1001
1002 --x_cost_allocation_parameters.distance_alloc_method:=FTE_RTG_GLOBALS.G_CA_TOTAL_DISTANCE;
1003 --x_cost_allocation_parameters.tl_stop_alloc_method:=FTE_RTG_GLOBALS.G_CA_PICKUP_STOP;
1004 --x_cost_allocation_parameters.output_type:='T';
1005 --x_cost_allocation_parameters.comparison_request_id:=102;
1006
1007 FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'x_cost_allocation_parameters.principal_alloc_basis='||x_cost_allocation_parameters.principal_alloc_basis);
1008 FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'x_cost_allocation_parameters.distance_alloc_method='||x_cost_allocation_parameters.distance_alloc_method);
1009 FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'x_cost_allocation_parameters.tl_stop_alloc_method='||x_cost_allocation_parameters.tl_stop_alloc_method);
1010
1011 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Cost_Allocation_Parameters');
1012
1013 IF (l_warning_count > 0)
1014 THEN
1015 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
1016 END IF;
1017 EXCEPTION
1018
1019 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_fetch_alloc_param_fail THEN
1020 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1021 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Cost_Allocation_Parameters',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_fetch_alloc_param_fail');
1022 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Cost_Allocation_Parameters');
1023
1024 WHEN others THEN
1025 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1026 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Cost_Allocation_Parameters',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
1027 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1028 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Cost_Allocation_Parameters');
1029
1030 END Get_Cost_Allocation_Parameters;
1031
1032
1033
1034 PROCEDURE DisplayCostRec(
1035 p_output_cost_rec IN FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type) IS
1036
1037
1038 l_warning_count NUMBER:=0;
1039 BEGIN
1040
1041
1042
1043 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,
1044 'FREIGHT_REC Freight_cost_id:'||p_output_cost_rec.freight_cost_id||
1045 'Freight_Cost_type:'||p_output_cost_rec.freight_cost_type_id||
1046 ' UnitAmount:'||p_output_cost_rec.unit_amount||
1047 'Calculation_Method:'||p_output_cost_rec.calculation_method||
1048 'UOM:'||p_output_cost_rec.uom||
1049 'Quantity:'||p_output_cost_rec.quantity||
1050 'Total_Amount:'||p_output_cost_rec.total_amount||
1051 ' CurrencyCode:'||p_output_cost_rec.currency_code||
1052 'Conversion_Date:'||p_output_cost_rec.conversion_date||
1053 ' ConversionRate:'||p_output_cost_rec.conversion_rate||
1054 ' Conversion TypeCode:'||p_output_cost_rec.conversion_type_code||
1055 ' TripID:'||p_output_cost_rec.trip_id||
1056 ' StopID:'||p_output_cost_rec.stop_id||
1057 ' DeliveryID:'||p_output_cost_rec.delivery_id||
1058 ' Delivery LegID:'||p_output_cost_rec.delivery_leg_id||
1059 ' Delivery detailID:'||p_output_cost_rec.delivery_detail_id||
1060 ' requestID:'||p_output_cost_rec.request_id||
1061 ' line typecode:'||p_output_cost_rec.line_type_code||
1062 ' Charge unitvalue:'||p_output_cost_rec.charge_unit_value||
1063 ' Charge SourceCode:'||p_output_cost_rec.charge_source_code||
1064 ' EstiamtedFlag:'||p_output_cost_rec.estimated_flag||
1065 ' Comparison RequestID:'||p_output_cost_rec.comparison_request_id||
1066 ' LaneID:'||p_output_cost_rec.lane_id||
1067 ' ScheduleID:'||p_output_cost_rec.schedule_id||
1068 ' Move to mainFlag:'||p_output_cost_rec.moved_to_main_flag);
1069
1070
1071 END DisplayCostRec;
1072
1073 -- Caches in all the freight codes so that they dont have to be queried
1074 -- repeatedly when the price records are created
1075
1076 PROCEDURE Initialize_Freight_Codes(
1077 x_return_status OUT NOCOPY Varchar2)IS
1078
1079 l_freight_code_rec TL_freight_code_rec_type;
1080 i NUMBER;
1081
1082 CURSOR get_fc_price_codes(c_name IN VARCHAR2) IS
1083 SELECT f.freight_cost_type_id
1084 FROM WSH_FREIGHT_COST_TYPES f
1085 WHERE f.freight_cost_type_code='FTEPRICE' AND f.name=c_name;
1086
1087 CURSOR get_fc_charge_codes(c_name IN VARCHAR2) IS
1088 SELECT f.freight_cost_type_id
1089 FROM WSH_FREIGHT_COST_TYPES f
1090 WHERE f.freight_cost_type_code='FTECHARGE' AND f.name=c_name;
1091
1092 CURSOR get_fc_summary_codes(c_name IN VARCHAR2) IS
1093 SELECT f.freight_cost_type_id
1094 FROM WSH_FREIGHT_COST_TYPES f
1095 WHERE f.freight_cost_type_code='FTESUMMARY'AND f.name=c_name;
1096
1097 CURSOR get_fc_discount_codes(c_name IN VARCHAR2) IS
1098 SELECT f.freight_cost_type_id
1099 FROM WSH_FREIGHT_COST_TYPES f
1100 WHERE f.freight_cost_type_code='FTEDISCOUNT'AND f.name=c_name;
1101
1102
1103 l_return_status VARCHAR2(1);
1104
1105 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
1106
1107 l_warning_count NUMBER:=0;
1108 BEGIN
1109
1110 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
1111 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Initialize_Freight_Codes','start');
1112 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1113
1114 g_tl_freight_codes(C_LOADED_DISTANCE_RT):=
1115 l_freight_code_rec;
1116 g_tl_freight_codes(C_LOADED_DISTANCE_RT).name:=
1117 'LOADED DISTANCE RATE';
1118
1119 g_tl_freight_codes(C_LOADED_DISTANCE_RT).summary_name:=
1120 'LOADED DISTANCE RATE SUMMARY';
1121
1122 g_tl_freight_codes(C_UNLOADED_DISTANCE_RT):=l_freight_code_rec;
1123
1124 g_tl_freight_codes(C_UNLOADED_DISTANCE_RT).name:=
1125 'UNLOADED DISTANCE RATE';
1126
1127 g_tl_freight_codes(C_UNLOADED_DISTANCE_RT).summary_name:=
1128 'UNLOADED DISTANCE RATE SUMMARY';
1129
1130 g_tl_freight_codes(C_UNIT_WEIGHT_RT):=l_freight_code_rec;
1131 g_tl_freight_codes(C_UNIT_WEIGHT_RT).name:='UNIT WEIGHT RATE';
1132
1133 g_tl_freight_codes(C_UNIT_WEIGHT_RT).summary_name:=
1134 'UNIT WEIGHT RATE SUMMARY';
1135
1136 g_tl_freight_codes(C_UNIT_VOLUME_RT):=l_freight_code_rec;
1137 g_tl_freight_codes(C_UNIT_VOLUME_RT).name:='UNIT VOLUME RATE';
1138
1139 g_tl_freight_codes(C_UNIT_VOLUME_RT).summary_name:=
1140 'UNIT VOLUME RATE SUMMARY';
1141
1142 g_tl_freight_codes(C_UNIT_CONTAINER_RT):=l_freight_code_rec;
1143 -- g_tl_freight_codes(C_UNIT_CONTAINER_RT).name:='UNIT CONTAINER RATE';
1144 g_tl_freight_codes(C_UNIT_CONTAINER_RT).name:='UNIT PIECE RATE';
1145
1146 -- g_tl_freight_codes(C_UNIT_CONTAINER_RT).summary_name:=
1147 -- 'UNIT CONTAINER RATE SUMMARY';
1148 g_tl_freight_codes(C_UNIT_CONTAINER_RT).summary_name:=
1149 'UNIT PIECE RATE SUMMARY';
1150
1151
1152 g_tl_freight_codes(C_UNIT_PALLET_RT):=l_freight_code_rec;
1153 g_tl_freight_codes(C_UNIT_PALLET_RT).name:='UNIT PALLET RATE';
1154
1155 g_tl_freight_codes(C_UNIT_PALLET_RT).summary_name:=
1156 'UNIT PALLET RATE SUMMARY';
1157
1158 g_tl_freight_codes(C_TIME_RT):=l_freight_code_rec;
1159 g_tl_freight_codes(C_TIME_RT).name:='TIME RATE';
1160 g_tl_freight_codes(C_TIME_RT).summary_name:='TIME RATE SUMMARY';
1161
1162 g_tl_freight_codes(C_FLAT_RT):=l_freight_code_rec;
1163 g_tl_freight_codes(C_FLAT_RT).name:='FLAT RATE';
1164 g_tl_freight_codes(C_FLAT_RT).summary_name:='FLAT RATE SUMMARY';
1165
1166
1167 g_tl_freight_codes(C_CONTINUOUS_MOVE_DISTANCE_RT):=l_freight_code_rec;
1168
1169 g_tl_freight_codes(C_CONTINUOUS_MOVE_DISTANCE_RT).name:=
1170 'CONTINUOUS MOVE DISTANCE RATE';
1171
1172 g_tl_freight_codes(C_CONTINUOUS_MOVE_DISTANCE_RT).summary_name:=
1173 'CONTINUOUS MOVE DISTANCE RATE SUMMARY';
1174
1175 -- g_tl_freight_codes(C_MIN_DISTANCE_CHRG):=l_freight_code_rec;
1176 -- g_tl_freight_codes(C_MIN_DISTANCE_CHRG).name:='C_MIN_DISTANCE_CHRG';
1177
1178 -- g_tl_freight_codes(C_MIN_DISTANCE_CHRG).summary_name:=
1179 -- 'C_MIN_DISTANCE_CHRG_SUM';
1180
1181 -- g_tl_freight_codes(C_MIN_UNIT_CHRG):=l_freight_code_rec;
1182 -- g_tl_freight_codes(C_MIN_UNIT_CHRG).name:='C_MIN_UNIT_CHRG';
1183 -- g_tl_freight_codes(C_MIN_UNIT_CHRG).summary_name:='C_MIN_UNIT_CHRG_SUM';
1184
1185
1186 -- g_tl_freight_codes(C_MIN_TIME_CHRG):=l_freight_code_rec;
1187 -- g_tl_freight_codes(C_MIN_TIME_CHRG).name:='C_MIN_TIME_CHRG';
1188 -- g_tl_freight_codes(C_MIN_TIME_CHRG).summary_name:='C_MIN_TIME_CHRG_SUM';
1189
1190 g_tl_freight_codes(C_STOP_OFF_CHRG):=l_freight_code_rec;
1191 g_tl_freight_codes(C_STOP_OFF_CHRG).name:='STOP OFF CHARGE';
1192 g_tl_freight_codes(C_STOP_OFF_CHRG).summary_name:='STOP OFF CHARGE SUMMARY';
1193
1194 g_tl_freight_codes(C_OUT_OF_ROUTE_CHRG):=l_freight_code_rec;
1195 g_tl_freight_codes(C_OUT_OF_ROUTE_CHRG).name:='OUT OF ROUTE CHARGE';
1196
1197 g_tl_freight_codes(C_OUT_OF_ROUTE_CHRG).summary_name:=
1198 'OUT OF ROUTE CHARGE SUMMARY';
1199
1200 -- g_tl_freight_codes(C_DOCUMENT_CHRG):=l_freight_code_rec;
1201 -- g_tl_freight_codes(C_DOCUMENT_CHRG).name:='C_DOCUMENT_CHRG';
1202 -- g_tl_freight_codes(C_DOCUMENT_CHRG).summary_name:='C_DOCUMENT_CHRG_SUM';
1203
1204 g_tl_freight_codes(C_HANDLING_CHRG):=l_freight_code_rec;
1205 g_tl_freight_codes(C_HANDLING_CHRG).name:='HANDLING CHARGE';
1206 g_tl_freight_codes(C_HANDLING_CHRG).summary_name:='HANDLING CHARGE SUMMARY';
1207
1208 g_tl_freight_codes(C_LOADING_CHRG):=l_freight_code_rec;
1209 g_tl_freight_codes(C_LOADING_CHRG).name:='LOADING CHARGE';
1210 g_tl_freight_codes(C_LOADING_CHRG).summary_name:='LOADING CHARGE SUMMARY';
1211
1212 g_tl_freight_codes(C_AST_LOADING_CHRG):=l_freight_code_rec;
1213 g_tl_freight_codes(C_AST_LOADING_CHRG).name:='ASSISTED LOADING CHARGE';
1214
1215 g_tl_freight_codes(C_AST_LOADING_CHRG).summary_name:=
1216 'ASSISTED LOADING CHARGE SUMMARY';
1217
1218 g_tl_freight_codes(C_UNLOADING_CHRG):=l_freight_code_rec;
1219 g_tl_freight_codes(C_UNLOADING_CHRG).name:='UNLOADING CHARGE';
1220
1221 g_tl_freight_codes(C_UNLOADING_CHRG).summary_name:=
1222 'UNLOADING CHARGE SUMMARY';
1223
1224 g_tl_freight_codes(C_AST_UNLOADING_CHRG):=l_freight_code_rec;
1225 g_tl_freight_codes(C_AST_UNLOADING_CHRG).name:='ASSISTED UNLOADING CHARGE';
1226
1227 g_tl_freight_codes(C_AST_UNLOADING_CHRG).summary_name:=
1228 'ASSISTED UNLOADING CHARGE SUMMARY';
1229
1230 g_tl_freight_codes(C_WEEKEND_LAYOVER_CHRG):=l_freight_code_rec;
1231
1232 g_tl_freight_codes(C_WEEKEND_LAYOVER_CHRG).name:=
1233 'WEEKEND LAYOVER CHARGE';
1234
1235 g_tl_freight_codes(C_WEEKEND_LAYOVER_CHRG).summary_name:=
1236 'WEEKEND LAYOVER CHARGE SUMMARY';
1237
1238 g_tl_freight_codes(C_WEEKDAY_LAYOVER_CHRG):=l_freight_code_rec;
1239
1240 g_tl_freight_codes(C_WEEKDAY_LAYOVER_CHRG).name:=
1241 'WEEKDAY LAYOVER CHARGE';
1242
1243 g_tl_freight_codes(C_WEEKDAY_LAYOVER_CHRG).summary_name:=
1244 'WEEKDAY LAYOVER CHARGE SUMMARY';
1245
1246 g_tl_freight_codes(C_ORIGIN_SURCHRG):=l_freight_code_rec;
1247 g_tl_freight_codes(C_ORIGIN_SURCHRG).name:='ORIGIN SURCHARGE';
1248
1249 g_tl_freight_codes(C_ORIGIN_SURCHRG).summary_name:=
1250 'ORIGIN SURCHARGE SUMMARY';
1251
1252 g_tl_freight_codes(C_DESTINATION_SURCHRG):=l_freight_code_rec;
1253 g_tl_freight_codes(C_DESTINATION_SURCHRG).name:='DESTINATION SURCHARGE';
1254
1255 g_tl_freight_codes(C_DESTINATION_SURCHRG).summary_name:=
1256 'DESTINATION SURCHARGE SUMMARY';
1257
1258 g_tl_freight_codes(C_CONTINUOUS_MOVE_DISCOUNT):=l_freight_code_rec;
1259
1260 g_tl_freight_codes(C_CONTINUOUS_MOVE_DISCOUNT).name:=
1261 'CONTINUOUS MOVE DISCOUNT';
1262 g_tl_freight_codes(C_CONTINUOUS_MOVE_DISCOUNT).summary_name:=
1263 'CONTINUOUS MOVE DISCOUNT';
1264
1265 g_tl_freight_codes(F_LOADING_CHRG):=l_freight_code_rec;
1266 g_tl_freight_codes(F_LOADING_CHRG).name:='FACILITY LOADING CHARGE';
1267 g_tl_freight_codes(F_LOADING_CHRG).summary_name:='FACILITY LOADING CHARGE SUMMARY';
1268
1269 g_tl_freight_codes(F_AST_LOADING_CHRG):=l_freight_code_rec;
1270 g_tl_freight_codes(F_AST_LOADING_CHRG).name:='FACILITY ASSISTED LOADING CHARGE';
1271
1272 g_tl_freight_codes(F_AST_LOADING_CHRG).summary_name:=
1273 'FACILITY ASSISTED LOADING CHARGE SUMMARY';
1274
1275 g_tl_freight_codes(F_UNLOADING_CHRG):=l_freight_code_rec;
1276 g_tl_freight_codes(F_UNLOADING_CHRG).name:='FACILITY UNLOADING CHARGE';
1277
1278 g_tl_freight_codes(F_UNLOADING_CHRG).summary_name:=
1279 'FACILITY UNLOADING CHARGE SUMMARY';
1280
1281 g_tl_freight_codes(F_AST_UNLOADING_CHRG):=l_freight_code_rec;
1282 g_tl_freight_codes(F_AST_UNLOADING_CHRG).name:='FACILITY ASSISTED UNLOADING CHARGE';
1283
1284 g_tl_freight_codes(F_AST_UNLOADING_CHRG).summary_name:=
1285 'FACILITY ASSISTED UNLOADING CHARGE SUMMARY';
1286
1287 g_tl_freight_codes(F_HANDLING_CHRG):=l_freight_code_rec;
1288 g_tl_freight_codes(F_HANDLING_CHRG).name:='FACILITY HANDLING CHARGE';
1289 g_tl_freight_codes(F_HANDLING_CHRG).summary_name:='FACILITY HANDLING CHARGE SUMMARY';
1290
1291
1292 g_tl_freight_codes(C_FUEL_CHRG):=l_freight_code_rec;
1293 g_tl_freight_codes(C_FUEL_CHRG).name:='FUEL SURCHARGE';
1294 g_tl_freight_codes(C_FUEL_CHRG).summary_name:='FUEL SURCHARGE SUMMARY';
1295
1296
1297 g_tl_freight_codes(C_SUMMARY):=l_freight_code_rec;
1298 g_tl_freight_codes(C_SUMMARY).name:='SUMMARY';
1299 g_tl_freight_codes(C_SUMMARY).summary_name:='SUMMARY';
1300
1301 i:=g_tl_freight_codes.FIRST;
1302 WHILE (i IS NOT NULL)
1303 LOOP
1304
1305 OPEN get_fc_price_codes(g_tl_freight_codes(i).name);
1306 FETCH get_fc_price_codes INTO
1307 g_tl_freight_codes(i).fte_price_code_id;
1308 CLOSE get_fc_price_codes;
1309
1310
1311 OPEN get_fc_charge_codes(g_tl_freight_codes(i).name);
1312 FETCH get_fc_charge_codes INTO
1313 g_tl_freight_codes(i).fte_charge_code_id;
1314 CLOSE get_fc_charge_codes;
1315
1316
1317 IF (g_tl_freight_codes(i).summary_name IS NOT NULL)
1318 THEN
1319 OPEN
1320 get_fc_summary_codes(g_tl_freight_codes(i).summary_name)
1321 ;
1322 FETCH get_fc_summary_codes INTO
1323 g_tl_freight_codes(i).fte_summary_code_id;
1324 CLOSE get_fc_summary_codes;
1325 END IF;
1326 i:=g_tl_freight_codes.NEXT(i);
1327
1328 END LOOP;
1329
1330 OPEN get_fc_discount_codes(g_tl_freight_codes(C_CONTINUOUS_MOVE_DISCOUNT).name);
1331 FETCH get_fc_discount_codes INTO g_tl_freight_codes(C_CONTINUOUS_MOVE_DISCOUNT).fte_summary_code_id;
1332 CLOSE get_fc_discount_codes;
1333
1334 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Initialize_Freight_Codes');
1335
1336 IF (l_warning_count > 0)
1337 THEN
1338 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
1339 END IF;
1340 EXCEPTION
1341 WHEN others THEN
1342 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1343 FTE_FREIGHT_PRICING_UTIL.set_exception('Initialize_Freight_Codes',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
1344 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1345 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Initialize_Freight_Codes');
1346
1347
1348
1349 END Initialize_Freight_Codes;
1350
1351
1352 --Multiplies all the charges by the discount factor
1353
1354 PROCEDURE Scale_Trip_Charges(
1355 p_discount IN NUMBER,
1356 x_trip_charges_rec IN OUT NOCOPY FTE_TL_CACHE.TL_TRIP_OUTPUT_REC_TYPE,
1357 x_return_status OUT NOCOPY VARCHAR2) IS
1358
1359 l_return_status VARCHAR2(1);
1360
1361 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
1362
1363 l_warning_count NUMBER:=0;
1364 BEGIN
1365
1366 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
1367 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Scale_Trip_Charges','start');
1368
1369 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1370
1371
1372 x_trip_charges_rec.base_dist_load_chrg:=x_trip_charges_rec.base_dist_load_chrg *p_discount;
1373 x_trip_charges_rec.base_dist_load_unit_chrg:=x_trip_charges_rec.base_dist_load_unit_chrg *p_discount;
1374 x_trip_charges_rec.base_dist_unload_chrg:=x_trip_charges_rec.base_dist_unload_chrg *p_discount;
1375 x_trip_charges_rec.base_dist_unload_unit_chrg:=x_trip_charges_rec.base_dist_unload_unit_chrg *p_discount;
1376 x_trip_charges_rec.base_unit_chrg:=x_trip_charges_rec.base_unit_chrg *p_discount;
1377 x_trip_charges_rec.base_unit_unit_chrg:=x_trip_charges_rec.base_unit_unit_chrg *p_discount;
1378 x_trip_charges_rec.base_time_chrg:=x_trip_charges_rec.base_time_chrg *p_discount;
1379 x_trip_charges_rec.base_time_unit_chrg:=x_trip_charges_rec.base_time_unit_chrg *p_discount;
1380 x_trip_charges_rec.base_flat_chrg:=x_trip_charges_rec.base_flat_chrg *p_discount;
1381 x_trip_charges_rec.stop_off_chrg:=x_trip_charges_rec.stop_off_chrg *p_discount;
1382 x_trip_charges_rec.out_of_route_chrg:=x_trip_charges_rec.out_of_route_chrg *p_discount;
1383 x_trip_charges_rec.document_chrg:=x_trip_charges_rec.document_chrg *p_discount;
1384 x_trip_charges_rec.handling_chrg:=x_trip_charges_rec.handling_chrg *p_discount;
1385
1386 x_trip_charges_rec.fuel_chrg:=x_trip_charges_rec.fuel_chrg *p_discount;
1387
1388 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Scale_Trip_Charges');
1389
1390 IF (l_warning_count > 0)
1391 THEN
1392 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
1393 END IF;
1394 EXCEPTION
1395 WHEN others THEN
1396 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1397 FTE_FREIGHT_PRICING_UTIL.set_exception('Scale_Trip_Charges',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
1398 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1399 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Scale_Trip_Charges');
1400
1401
1402 END Scale_Trip_Charges;
1403
1404
1405 --Multiplies all the stop charges by the discount factor
1406
1407 PROCEDURE Scale_Stop_Charges(
1408 p_discount IN NUMBER,
1409 x_stop_charges_rec IN OUT NOCOPY FTE_TL_CACHE.TL_trip_stop_OUTPUT_REC_TYPE,
1410 x_return_status OUT NOCOPY VARCHAR2) IS
1411
1412 l_return_status VARCHAR2(1);
1413
1414 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
1415
1416 l_warning_count NUMBER:=0;
1417 BEGIN
1418
1419 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
1420 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Scale_Stop_Charges','start');
1421
1422 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1423
1424
1425 x_stop_charges_rec.weekday_layover_chrg :=x_stop_charges_rec.weekday_layover_chrg *p_discount;
1426 x_stop_charges_rec.weekend_layover_chrg :=x_stop_charges_rec.weekend_layover_chrg *p_discount;
1427 x_stop_charges_rec.loading_chrg :=x_stop_charges_rec.loading_chrg *p_discount;
1428 x_stop_charges_rec.ast_loading_chrg :=x_stop_charges_rec.ast_loading_chrg *p_discount;
1429 x_stop_charges_rec.unloading_chrg :=x_stop_charges_rec.unloading_chrg *p_discount;
1430 x_stop_charges_rec.ast_unloading_chrg :=x_stop_charges_rec.ast_unloading_chrg *p_discount;
1431 x_stop_charges_rec.origin_surchrg :=x_stop_charges_rec.origin_surchrg *p_discount;
1432 x_stop_charges_rec.destination_surchrg :=x_stop_charges_rec.destination_surchrg *p_discount;
1433 x_stop_charges_rec.fac_loading_chrg :=x_stop_charges_rec.fac_loading_chrg *p_discount;
1434 x_stop_charges_rec.fac_ast_loading_chrg :=x_stop_charges_rec.fac_ast_loading_chrg *p_discount;
1435 x_stop_charges_rec.fac_unloading_chrg :=x_stop_charges_rec.fac_unloading_chrg *p_discount;
1436 x_stop_charges_rec.fac_ast_unloading_chrg :=x_stop_charges_rec.fac_ast_unloading_chrg *p_discount;
1437 x_stop_charges_rec.fac_handling_chrg :=x_stop_charges_rec.fac_handling_chrg *p_discount;
1438
1439 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Scale_Stop_Charges');
1440
1441 IF (l_warning_count > 0)
1442 THEN
1443 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
1444 END IF;
1445 EXCEPTION
1446 WHEN others THEN
1447 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1448 FTE_FREIGHT_PRICING_UTIL.set_exception('Scale_Stop_Charges',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
1449 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1450 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Scale_Stop_Charges');
1451
1452
1453 END Scale_Stop_Charges;
1454
1455
1456
1457
1458
1459 --Determines the fraction of the stop level loading(carrier,ast,fac) charge to
1460 --be allocated to a delivery leg
1461
1462 PROCEDURE Get_Loading_Fraction(
1463 p_dleg_rec IN FTE_TL_CACHE.TL_delivery_leg_rec_type,
1464 p_stop_rec IN FTE_TL_CACHE.TL_TRIP_STOP_INPUT_REC_TYPE,
1465 p_basis IN NUMBER,
1466 p_alloc_params TL_allocation_params_rec_type,
1467 x_fraction IN OUT NOCOPY NUMBER,
1468 x_return_status OUT NOCOPY Varchar2) IS
1469
1470 l_return_status VARCHAR2(1);
1471
1472 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
1473
1474 l_warning_count NUMBER:=0;
1475 BEGIN
1476
1477 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
1478 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Get_Loading_Fraction','start');
1479
1480 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1481 x_fraction:=0;
1482
1483 IF ((p_basis = FTE_RTG_GLOBALS.G_WEIGHT_BASIS) AND
1484 (p_stop_rec.pickup_weight>0))
1485 THEN
1486 x_fraction:=p_dleg_rec.weight/p_stop_rec.pickup_weight;
1487
1488 ELSIF ((p_basis =FTE_RTG_GLOBALS.G_VOLUME_BASIS)
1489 AND(p_stop_rec.pickup_volume>0))
1490 THEN
1491 x_fraction:=p_dleg_rec.volume/p_stop_rec.pickup_volume;
1492
1493 ELSIF ((p_basis =FTE_RTG_GLOBALS.G_CONTAINER_BASIS)AND
1494 (p_stop_rec.pickup_containers>0))
1495 THEN
1496 x_fraction:=p_dleg_rec.containers/p_stop_rec.pickup_containers;
1497
1498 ELSIF ((p_basis = FTE_RTG_GLOBALS.G_PALLET_BASIS)
1499 AND(p_stop_rec.pickup_pallets>0))
1500 THEN
1501 x_fraction:=p_dleg_rec.pallets/p_stop_rec.pickup_pallets;
1502
1503 ELSIF ((p_basis = FTE_RTG_GLOBALS.G_TIME_BASIS) OR (p_basis =
1504 FTE_RTG_GLOBALS.G_FLAT_BASIS))
1505 THEN
1506 -- if basis is not wt/vol/container/pallet then use cost allocation
1507 --basis(Step 3 of CA algorithm)
1508
1509 IF((p_alloc_params.principal_alloc_basis=FTE_RTG_GLOBALS.G_CA_WEIGHT_BASIS)
1510 AND(p_stop_rec.pickup_weight>0))
1511 THEN
1512 x_fraction:=p_dleg_rec.weight/p_stop_rec.pickup_weight;
1513
1514 ELSIF((p_alloc_params.principal_alloc_basis=FTE_RTG_GLOBALS.G_CA_VOLUME_BASIS)
1515 AND(p_stop_rec.pickup_volume>0))
1516 THEN
1517
1518 x_fraction:=p_dleg_rec.volume/p_stop_rec.pickup_volume;
1519
1520 ELSE
1521
1522 x_fraction:=0;
1523 END IF;
1524
1525
1526 ELSE
1527 x_fraction:=0;
1528 --raise FTE_FREIGHT_PRICING_UTIL.g_tl_invalid_basis;
1529
1530
1531 END IF;
1532 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Loading_Fraction');
1533 IF (l_warning_count > 0)
1534 THEN
1535 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
1536 END IF;
1537 EXCEPTION
1538 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_invalid_basis THEN
1539 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1540 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Loading_Fraction',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_invalid_basis');
1541 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Loading_Fraction');
1542
1543
1544 WHEN others THEN
1545 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1546 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Loading_Fraction',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
1547 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1548 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Loading_Fraction');
1549
1550
1551
1552 END Get_Loading_Fraction;
1553
1554 --Determines the fraction of the stop level loading(carrier,ast,fac) charge to
1555 --be allocated to a delivery leg. As per Step 1 and Step 3 of the Cost
1556 --allocation algorithm
1557
1558 PROCEDURE Get_Unloading_Fraction(
1559 p_dleg_rec IN FTE_TL_CACHE.TL_delivery_leg_rec_type,
1560 p_stop_rec IN FTE_TL_CACHE.TL_TRIP_STOP_INPUT_REC_TYPE,
1561 p_basis IN NUMBER,
1562 p_alloc_params TL_allocation_params_rec_type,
1563 x_fraction IN OUT NOCOPY NUMBER,
1564 x_return_status OUT NOCOPY Varchar2) IS
1565
1566 l_return_status VARCHAR2(1);
1567
1568 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
1569
1570 l_warning_count NUMBER:=0;
1571 BEGIN
1572
1573 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
1574 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Get_Unloading_Fraction','start');
1575
1576 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1577
1578 x_fraction:=0;
1579 IF ((p_basis = FTE_RTG_GLOBALS.G_WEIGHT_BASIS)
1580 AND(p_stop_rec.dropoff_weight>0))
1581 THEN
1582 x_fraction:=p_dleg_rec.weight/p_stop_rec.dropoff_weight;
1583
1584 ELSIF ((p_basis =FTE_RTG_GLOBALS.G_VOLUME_BASIS)
1585 AND(p_stop_rec.dropoff_volume>0))
1586 THEN
1587 x_fraction:=p_dleg_rec.volume/p_stop_rec.dropoff_volume;
1588
1589 ELSIF ((p_basis =FTE_RTG_GLOBALS.G_CONTAINER_BASIS)
1590 AND(p_stop_rec.dropoff_containers>0))
1591 THEN
1592 x_fraction:=p_dleg_rec.containers/p_stop_rec.dropoff_containers;
1593
1594 ELSIF ((p_basis = FTE_RTG_GLOBALS.G_PALLET_BASIS)
1595 AND(p_stop_rec.dropoff_pallets>0))
1596 THEN
1597 x_fraction:=p_dleg_rec.pallets/p_stop_rec.dropoff_pallets;
1598
1599 ELSIF ((p_basis = FTE_RTG_GLOBALS.G_TIME_BASIS) OR (p_basis =
1600 FTE_RTG_GLOBALS.G_FLAT_BASIS))
1601 THEN
1602 --Step 3 of the CA algorithm
1603
1604 IF((p_alloc_params.principal_alloc_basis=FTE_RTG_GLOBALS.G_CA_WEIGHT_BASIS)
1605 AND(p_stop_rec.dropoff_weight>0))
1606 THEN
1607 x_fraction:=p_dleg_rec.weight/p_stop_rec.dropoff_weight;
1608
1609 ELSIF((p_alloc_params.principal_alloc_basis=FTE_RTG_GLOBALS.G_CA_VOLUME_BASIS)
1610 AND(p_stop_rec.dropoff_volume>0))
1611 THEN
1612
1613 x_fraction:=p_dleg_rec.volume/p_stop_rec.dropoff_volume;
1614
1615 ELSE
1616
1617 x_fraction:=0;
1618 END IF;
1619 ELSE
1620 x_fraction:=0;
1621 --throw an exception
1622 --raise FTE_FREIGHT_PRICING_UTIL.g_tl_invalid_basis;
1623
1624
1625
1626 END IF;
1627 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Unloading_Fraction');
1628 IF (l_warning_count > 0)
1629 THEN
1630 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
1631 END IF;
1632 EXCEPTION
1633
1634 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_invalid_basis THEN
1635 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1636 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Unloading_Fraction',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_invalid_basis');
1637 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Unloading_Fraction');
1638
1639
1640 WHEN others THEN
1641 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1642 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Unloading_Fraction',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
1643 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1644 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Unloading_Fraction');
1645
1646
1647
1648 END Get_Unloading_Fraction;
1649
1650
1651
1652 --Determines the fraction of the stop level loading+unloading (only used for fac handling) charge to
1653 --be allocated to a delivery leg. As per Step 1 and Step 3 of the Cost
1654 --allocation algorithm
1655 --4045314
1656
1657 PROCEDURE Get_Total_Stop_Fraction(
1658 p_dleg_rec IN FTE_TL_CACHE.TL_delivery_leg_rec_type,
1659 p_stop_rec IN FTE_TL_CACHE.TL_TRIP_STOP_INPUT_REC_TYPE,
1660 p_basis IN NUMBER,
1661 p_alloc_params TL_allocation_params_rec_type,
1662 x_fraction IN OUT NOCOPY NUMBER,
1663 x_return_status OUT NOCOPY Varchar2) IS
1664
1665 l_return_status VARCHAR2(1);
1666
1667 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
1668
1669 l_warning_count NUMBER:=0;
1670 BEGIN
1671
1672 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
1673 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Get_Total_Stop_Fraction','start');
1674
1675 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1676
1677 x_fraction:=0;
1678 IF ((p_basis = FTE_RTG_GLOBALS.G_WEIGHT_BASIS)
1679 AND((p_stop_rec.dropoff_weight+p_stop_rec.pickup_weight)>0))
1680 THEN
1681 x_fraction:=p_dleg_rec.weight/(p_stop_rec.dropoff_weight+p_stop_rec.pickup_weight);
1682
1683 ELSIF ((p_basis =FTE_RTG_GLOBALS.G_VOLUME_BASIS)
1684 AND((p_stop_rec.dropoff_volume+p_stop_rec.pickup_volume)>0))
1685 THEN
1686 x_fraction:=p_dleg_rec.volume/(p_stop_rec.dropoff_volume+p_stop_rec.pickup_volume);
1687
1688 ELSIF ((p_basis =FTE_RTG_GLOBALS.G_CONTAINER_BASIS)
1689 AND((p_stop_rec.dropoff_containers+p_stop_rec.pickup_containers)>0))
1690 THEN
1691 x_fraction:=p_dleg_rec.containers/(p_stop_rec.dropoff_containers+p_stop_rec.pickup_containers);
1692
1693 ELSIF ((p_basis = FTE_RTG_GLOBALS.G_PALLET_BASIS)
1694 AND((p_stop_rec.dropoff_pallets+p_stop_rec.pickup_pallets)>0))
1695 THEN
1696 x_fraction:=p_dleg_rec.pallets/(p_stop_rec.dropoff_pallets+p_stop_rec.pickup_pallets);
1697
1698 ELSIF ((p_basis = FTE_RTG_GLOBALS.G_TIME_BASIS) OR (p_basis =
1699 FTE_RTG_GLOBALS.G_FLAT_BASIS))
1700 THEN
1701 --Step 3 of the CA algorithm
1702
1703 IF((p_alloc_params.principal_alloc_basis=FTE_RTG_GLOBALS.G_CA_WEIGHT_BASIS)
1704 AND((p_stop_rec.dropoff_weight+p_stop_rec.pickup_weight)>0))
1705 THEN
1706 x_fraction:=p_dleg_rec.weight/(p_stop_rec.dropoff_weight+p_stop_rec.pickup_weight);
1707
1708 ELSIF((p_alloc_params.principal_alloc_basis=FTE_RTG_GLOBALS.G_CA_VOLUME_BASIS)
1709 AND((p_stop_rec.dropoff_volume+p_stop_rec.pickup_volume)>0))
1710 THEN
1711
1712 x_fraction:=p_dleg_rec.volume/(p_stop_rec.dropoff_volume+p_stop_rec.pickup_volume);
1713
1714 ELSE
1715
1716 x_fraction:=0;
1717 END IF;
1718 ELSE
1719 x_fraction:=0;
1720 --throw an exception
1721 --raise FTE_FREIGHT_PRICING_UTIL.g_tl_invalid_basis;
1722
1723
1724
1725 END IF;
1726 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Total_Stop_Fraction');
1727 IF (l_warning_count > 0)
1728 THEN
1729 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
1730 END IF;
1731 EXCEPTION
1732
1733 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_invalid_basis THEN
1734 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1735 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Total_Stop_Fraction',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_invalid_basis');
1736 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Total_Stop_Fraction');
1737
1738
1739 WHEN others THEN
1740 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1741 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Total_Stop_Fraction',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
1742 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1743 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Total_Stop_Fraction');
1744
1745
1746
1747 END Get_Total_Stop_Fraction;
1748
1749
1750 --Populates 2 hash structures so that the stop cache records and the stop charge
1751 --records can be accesed using the stop_id
1752 --The hashes hold index into the stop cache and the stop charges table
1753
1754 PROCEDURE Create_Stop_Hashes(
1755 p_trip_index IN NUMBER,
1756 p_stop_charges_tab IN FTE_TL_CACHE.TL_trip_stop_output_tab_type,
1757 x_stop_input_hash IN OUT NOCOPY DBMS_UTILITY.NUMBER_ARRAY,
1758 x_stop_output_hash IN OUT NOCOPY DBMS_UTILITY.NUMBER_ARRAY,
1759 x_return_status OUT NOCOPY Varchar2) IS
1760
1761 i NUMBER;
1762 l_stop_index_first NUMBER;
1763 l_stop_index_last NUMBER;
1764
1765 l_return_status VARCHAR2(1);
1766
1767 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
1768
1769 l_warning_count NUMBER:=0;
1770 BEGIN
1771
1772 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
1773 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Create_Stop_Hashes','start');
1774
1775 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1776
1777 --Create hash to look up stop charges from stop id
1778 l_stop_index_first:=
1779 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).stop_reference;
1780 IF (FTE_TL_CACHE.g_tl_trip_rows.EXISTS(p_trip_index+1))
1781 THEN
1782
1783 l_stop_index_last:=
1784 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index+1).stop_reference;
1785
1786 ELSE
1787
1788 l_stop_index_last:=FTE_TL_CACHE.g_tl_trip_stop_rows.LAST+1;
1789
1790 END IF;
1791
1792 i:=p_stop_charges_tab.FIRST;
1793
1794 WHILE(i IS NOT NULL )
1795 LOOP
1796 x_stop_output_hash(p_stop_charges_tab(i).stop_id):=i;
1797
1798 i:=p_stop_charges_tab.NEXT(i);
1799 END LOOP;
1800
1801
1802 --Create hash to look up cached stops from stop id
1803
1804 i:=l_stop_index_first;
1805
1806 WHILE(( FTE_TL_CACHE.g_tl_trip_stop_rows.EXISTS(i)) AND
1807 (FTE_TL_CACHE.g_tl_trip_stop_rows(i).trip_id=
1808 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).trip_id) AND (i <l_stop_index_last))
1809 LOOP
1810 x_stop_input_hash(FTE_TL_CACHE.g_tl_trip_stop_rows(i).stop_id):=
1811 i;
1812
1813 i:=i+1;
1814 END LOOP;
1815 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Hashes');
1816 IF (l_warning_count > 0)
1817 THEN
1818 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
1819 END IF;
1820 EXCEPTION
1821 WHEN others THEN
1822 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1823 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Hashes',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
1824 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1825 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Hashes');
1826
1827
1828 END Create_Stop_Hashes;
1829
1830 -- Allocates stop-off charge assigned to a stop to the delivery legs using that
1831 --Stop
1832 --As per Step 3 of the cost allocation algorithm
1833
1834 PROCEDURE Assign_StopOff_Charge(
1835 p_stopoff_charge IN NUMBER,p_alloc_params IN TL_allocation_params_rec_type,
1836 p_pickup_stop_rec IN FTE_TL_CACHE.TL_TRIP_STOP_INPUT_REC_TYPE,
1837 p_dropoff_stop_rec IN FTE_TL_CACHE.TL_TRIP_STOP_INPUT_REC_TYPE,
1838 p_dleg_rec IN FTE_TL_CACHE.TL_delivery_leg_rec_type,
1839 x_dleg_alloc_rec IN OUT NOCOPY TL_dleg_alloc_rec_type,
1840 x_return_status OUT NOCOPY Varchar2) IS
1841
1842 l_return_status VARCHAR2(1);
1843
1844 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
1845
1846 l_warning_count NUMBER:=0;
1847 BEGIN
1848
1849 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
1850 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Assign_StopOff_Charge','start');
1851
1852 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1853 x_dleg_alloc_rec.stop_off_chrg:=0;
1854
1855 IF ((p_alloc_params.tl_stop_alloc_method=FTE_RTG_GLOBALS.G_CA_PICKUP_STOP) AND
1856 (p_pickup_stop_rec.pickup_weight>0))
1857 THEN
1858 IF ((p_alloc_params.principal_alloc_basis=FTE_RTG_GLOBALS.G_CA_WEIGHT_BASIS)
1859 AND(p_pickup_stop_rec.pickup_weight>0))
1860 THEN
1861 x_dleg_alloc_rec.stop_off_chrg:=
1862 p_stopoff_charge*p_dleg_rec.weight/
1863 p_pickup_stop_rec.pickup_weight;
1864 ELSIF ((p_alloc_params.principal_alloc_basis=FTE_RTG_GLOBALS.G_CA_VOLUME_BASIS)
1865 AND(p_pickup_stop_rec.pickup_volume>0))
1866 THEN
1867 x_dleg_alloc_rec.stop_off_chrg:=
1868 p_stopoff_charge*p_dleg_rec.volume/
1869 p_pickup_stop_rec.pickup_volume;
1870
1871 END IF;
1872
1873 ELSIF ((p_alloc_params.tl_stop_alloc_method=FTE_RTG_GLOBALS.G_CA_DELIVERY_STOP) AND
1874 (p_dropoff_stop_rec.dropoff_weight>0))
1875 THEN
1876 IF ((p_alloc_params.principal_alloc_basis=FTE_RTG_GLOBALS.G_CA_WEIGHT_BASIS)
1877 AND(p_dropoff_stop_rec.dropoff_weight>0))
1878 THEN
1879 x_dleg_alloc_rec.stop_off_chrg:=
1880 p_stopoff_charge*p_dleg_rec.weight/
1881 p_dropoff_stop_rec.dropoff_weight;
1882 ELSIF ((p_alloc_params.principal_alloc_basis=FTE_RTG_GLOBALS.G_CA_VOLUME_BASIS)
1883 AND(p_dropoff_stop_rec.dropoff_volume>0))
1884 THEN
1885 x_dleg_alloc_rec.stop_off_chrg:=
1886 p_stopoff_charge*p_dleg_rec.volume/
1887 p_dropoff_stop_rec.dropoff_volume;
1888 END IF;
1889
1890
1891 END IF;
1892 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Assign_StopOff_Charge');
1893 IF (l_warning_count > 0)
1894 THEN
1895 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
1896 END IF;
1897 EXCEPTION
1898 WHEN others THEN
1899 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1900 FTE_FREIGHT_PRICING_UTIL.set_exception('Assign_StopOff_Charge',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
1901 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1902 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Assign_StopOff_Charge');
1903
1904
1905
1906 END Assign_StopOff_Charge;
1907
1908 --Divides the Stop-off charge evenly to get a per stop charge
1909 --Step 2 of CA algorithm
1910
1911 PROCEDURE Get_StopOff_Chrg_Per_Stop(
1912 p_stopoff_charge IN NUMBER,
1913 p_stop_charges_tab IN FTE_TL_CACHE.TL_trip_stop_output_tab_type,
1914 p_alloc_params IN TL_allocation_params_rec_type,
1915 p_stop_input_hash IN DBMS_UTILITY.NUMBER_ARRAY,
1916 p_stop_output_hash IN DBMS_UTILITY.NUMBER_ARRAY,
1917 x_stopoff_charge IN OUT NOCOPY NUMBER,
1918 x_return_status OUT NOCOPY Varchar2) IS
1919
1920 l_stop_count NUMBER;
1921 i NUMBER;
1922
1923 l_cache_index NUMBER;
1924
1925 l_return_status VARCHAR2(1);
1926
1927 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
1928
1929 l_warning_count NUMBER:=0;
1930 BEGIN
1931
1932 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
1933 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Get_StopOff_Chrg_Per_Stop','start');
1934
1935 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1936
1937 i:=p_stop_charges_tab.FIRST;
1938 l_stop_count:=0;
1939 WHILE(i IS NOT NULL )
1940 LOOP
1941
1942 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,' Loop stop id'||p_stop_charges_tab(i).stop_id|| ' i'||i);
1943
1944 l_cache_index:=p_stop_input_hash(p_stop_charges_tab(i).stop_id);
1945
1946 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,' cache index'||l_cache_index);
1947
1948 IF ((p_alloc_params.tl_stop_alloc_method=FTE_RTG_GLOBALS.G_CA_PICKUP_STOP) AND
1949 (FTE_TL_CACHE.g_tl_trip_stop_rows(l_cache_index).pickup_weight>
1950 0))
1951 THEN
1952
1953 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,' Pickup');
1954 l_stop_count:=l_stop_count+1;
1955
1956 ELSIF((p_alloc_params.tl_stop_alloc_method=FTE_RTG_GLOBALS.G_CA_DELIVERY_STOP)
1957 AND
1958 (FTE_TL_CACHE.g_tl_trip_stop_rows(l_cache_index).dropoff_weight>
1959 0))
1960 THEN
1961 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,' Dropoff');
1962 l_stop_count:=l_stop_count+1;
1963
1964 END IF;
1965
1966
1967 i:=p_stop_charges_tab.NEXT(i);
1968 END LOOP;
1969
1970 IF (l_stop_count>0)
1971 THEN
1972 x_stopoff_charge:=p_stopoff_charge/l_stop_count;
1973 ELSE
1974 x_stopoff_charge:=0;
1975 END IF;
1976 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_StopOff_Chrg_Per_Stop');
1977 IF (l_warning_count > 0)
1978 THEN
1979 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
1980 END IF;
1981 EXCEPTION
1982 WHEN others THEN
1983 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1984 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_StopOff_Chrg_Per_Stop',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
1985 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1986 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_StopOff_Chrg_Per_Stop');
1987
1988
1989
1990 END Get_StopOff_Chrg_Per_Stop;
1991
1992
1993 --Calculates the trip level carrier handling charge for a given delivery leg
1994
1995 PROCEDURE Allocate_Handling_Charges(
1996 p_trip_index IN NUMBER,
1997 p_dleg_row IN FTE_TL_CACHE.TL_delivery_leg_rec_type,
1998 p_trip_rec_charges IN FTE_TL_CACHE.TL_TRIP_OUTPUT_REC_TYPE,
1999 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
2000 x_handling_chrg IN OUT NOCOPY NUMBER,
2001 x_return_status OUT NOCOPY Varchar2) IS
2002
2003 l_factor NUMBER;
2004 l_return_status VARCHAR2(1);
2005
2006 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
2007
2008 l_warning_count NUMBER:=0;
2009 BEGIN
2010
2011 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
2012 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Allocate_Handling_Charges','start');
2013
2014 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2015
2016 l_factor:=0;
2017
2018 IF ((p_trip_rec_charges.handling_chrg_basis =
2019 FTE_RTG_GLOBALS.G_WEIGHT_BASIS )
2020 AND(FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).total_weight>0))
2021 THEN
2022 l_factor:=p_dleg_row.weight/
2023 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).total_weight;
2024
2025 ELSIF((p_trip_rec_charges.handling_chrg_basis =
2026 FTE_RTG_GLOBALS.G_VOLUME_BASIS)
2027 AND(FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).total_volume>0))
2028 THEN
2029 l_factor:=p_dleg_row.volume/
2030 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).total_volume;
2031
2032
2033 ELSIF((p_trip_rec_charges.handling_chrg_basis =
2034 FTE_RTG_GLOBALS.G_CONTAINER_BASIS)
2035 AND(FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).number_of_containers>0))
2036 THEN
2037 l_factor:=p_dleg_row.containers/
2038 FTE_TL_CACHE.g_tl_trip_rows(
2039 p_trip_index).number_of_containers;
2040
2041 ELSIF((p_trip_rec_charges.handling_chrg_basis =
2042 FTE_RTG_GLOBALS.G_PALLET_BASIS)
2043 AND(FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).number_of_pallets>0))
2044 THEN
2045 l_factor:=p_dleg_row.pallets/
2046 FTE_TL_CACHE.g_tl_trip_rows(
2047 p_trip_index).number_of_pallets;
2048
2049 ELSIF (p_trip_rec_charges.handling_chrg_basis = FTE_RTG_GLOBALS.G_FLAT_BASIS)
2050 THEN
2051 IF ((p_cost_allocation_parameters.principal_alloc_basis =
2052 FTE_RTG_GLOBALS.G_CA_WEIGHT_BASIS)
2053 AND(FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).total_weight>0))
2054 THEN
2055 l_factor:=p_dleg_row.weight/
2056 FTE_TL_CACHE.g_tl_trip_rows(
2057 p_trip_index).total_weight;
2058
2059 ELSIF((p_cost_allocation_parameters.principal_alloc_basis =
2060 FTE_RTG_GLOBALS.G_CA_VOLUME_BASIS)
2061 AND(FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).total_volume>0))
2062 THEN
2063 l_factor:=p_dleg_row.volume/
2064 FTE_TL_CACHE.g_tl_trip_rows(
2065 p_trip_index).total_volume;
2066 ELSE
2067 l_factor:=0;
2068 END IF;
2069
2070 ELSE
2071 l_factor:=0;
2072 END IF;
2073
2074 x_handling_chrg:=p_trip_rec_charges.handling_chrg*l_factor;
2075 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Allocate_Handling_Charges');
2076 IF (l_warning_count > 0)
2077 THEN
2078 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
2079 END IF;
2080 EXCEPTION
2081 WHEN others THEN
2082 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2083 FTE_FREIGHT_PRICING_UTIL.set_exception('Allocate_Handling_Charges',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
2084 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2085 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Allocate_Handling_Charges');
2086
2087
2088
2089 END Allocate_Handling_Charges;
2090
2091
2092 --Allocates all loading/unloading/handling charges, stop-off charges as well as
2093 --origin/destination charges
2094 --to all the dlegs . As per Step 1,2,3 of the CA algorithm
2095
2096 PROCEDURE Alloc_Loading_Stopoff_To_Dlegs(
2097 p_trip_index IN NUMBER,
2098 p_trip_charges_rec IN FTE_TL_CACHE.TL_trip_output_rec_type ,
2099 p_stop_charges_tab IN
2100 FTE_TL_CACHE.TL_trip_stop_output_tab_type,
2101 p_stop_input_hash IN DBMS_UTILITY.NUMBER_ARRAY,
2102 p_stop_output_hash IN DBMS_UTILITY.NUMBER_ARRAY,
2103 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
2104 x_dleg_alloc_tab IN OUT NOCOPY TL_dleg_alloc_TAB_TYPE ,
2105 x_return_status OUT NOCOPY Varchar2) IS
2106
2107 l_dleg_index_first NUMBER;
2108 l_dleg_index_last NUMBER;
2109
2110 i NUMBER;
2111
2112
2113 l_stop_level_charge NUMBER;
2114
2115 --Index to FTE_TL_CACHE.g_tl_trip_stop_rows/stop input hash
2116 --Used for pickup/loading
2117
2118 l_pickup_stop_ip_index NUMBER;
2119
2120 --Index to the stop charges tab/stop output hash
2121 --Used for pickup/loading
2122
2123 l_pickup_stop_op_index NUMBER;
2124
2125 --Index to FTE_TL_CACHE.g_tl_trip_stop_rows/stop input hash
2126 --Used for dropoff/unloading
2127
2128 l_dropoff_stop_ip_index NUMBER;
2129
2130 --Index to the stop charges tab/stop output hash
2131 --Used for dropoff/unloading
2132
2133 l_dropoff_stop_op_index NUMBER;
2134
2135
2136 l_dleg_alloc_rec TL_dleg_alloc_rec_type;
2137
2138 l_fraction NUMBER;
2139
2140 l_stopoff_charge NUMBER;
2141
2142 l_fac_handling_chrg NUMBER;
2143
2144 l_fac_handling_currency VARCHAR2(30);
2145
2146
2147 l_return_status VARCHAR2(1);
2148
2149 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
2150
2151 l_warning_count NUMBER:=0;
2152 BEGIN
2153
2154 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
2155 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs','start');
2156
2157
2158 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2159
2160
2161
2162 Get_StopOff_Chrg_Per_Stop(
2163 p_stopoff_charge=> p_trip_charges_rec.stop_off_chrg,
2164 p_stop_charges_tab=> p_stop_charges_tab,
2165 p_alloc_params=> p_cost_allocation_parameters,
2166 p_stop_input_hash=> p_stop_input_hash,
2167 p_stop_output_hash=> p_stop_output_hash,
2168 x_stopoff_charge=> l_stopoff_charge,
2169 x_return_status=> l_return_status);
2170
2171 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2172 THEN
2173 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2174 THEN
2175 raise FTE_FREIGHT_PRICING_UTIL.g_tl_get_stpff_per_stop_fail;
2176 END IF;
2177 END IF;
2178
2179
2180 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Getting indices for dleg');
2181
2182 --get indexes for all the dlegs,stops belonging to the trip
2183
2184 l_dleg_index_first:=
2185 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).delivery_leg_reference;
2186
2187 IF (FTE_TL_CACHE.g_tl_trip_rows.EXISTS(p_trip_index+1))
2188 THEN
2189 l_dleg_index_last:=
2190 FTE_TL_CACHE.g_tl_trip_rows(
2191 p_trip_index+1
2192 ).delivery_leg_reference;
2193
2194
2195 ELSE
2196 l_dleg_index_last:=FTE_TL_CACHE.g_tl_delivery_leg_rows.LAST+1;
2197
2198 END IF;
2199
2200 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Done Getting indices for dleg');
2201
2202
2203 i:=l_dleg_index_first;
2204 WHILE (( FTE_TL_CACHE.g_tl_delivery_leg_rows.EXISTS(i)) AND
2205 (FTE_TL_CACHE.g_tl_delivery_leg_rows(i).trip_id=
2206 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).trip_id) AND (i< l_dleg_index_last))
2207 LOOP
2208
2209
2210 --Get reference to pickup/dropoff stop in input/output tables
2211 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Getting indices for Stops,dleg index'||i);
2212
2213 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Getting index for pickup op');
2214
2215 l_pickup_stop_op_index:=
2216 p_stop_output_hash(FTE_TL_CACHE.g_tl_delivery_leg_rows(
2217 i).pickup_stop_id);
2218
2219 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Getting indices for pickup ip');
2220
2221 l_pickup_stop_ip_index:=p_stop_input_hash(
2222 FTE_TL_CACHE.g_tl_delivery_leg_rows(
2223 i).pickup_stop_id);
2224
2225 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Getting indices for dropoff op');
2226 l_dropoff_stop_op_index:=
2227 p_stop_output_hash(FTE_TL_CACHE.g_tl_delivery_leg_rows(
2228 i).dropoff_stop_id);
2229
2230 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Getting indices for dropoff ip');
2231 l_dropoff_stop_ip_index:=
2232 p_stop_input_hash(FTE_TL_CACHE.g_tl_delivery_leg_rows(
2233 i).dropoff_stop_id);
2234
2235 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Done Getting indices for Stops'||l_pickup_stop_op_index||':'||l_pickup_stop_ip_index||':'||l_dropoff_stop_op_index||':'||l_dropoff_stop_ip_index);
2236 -------LOADING Charges
2237
2238
2239 l_stop_level_charge:=
2240 p_stop_charges_tab(l_pickup_stop_op_index).loading_chrg;
2241
2242 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Got loading charges');
2243
2244 Get_Loading_Fraction(
2245 p_dleg_rec=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2246 p_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(l_pickup_stop_ip_index),
2247 p_basis=> p_stop_charges_tab(l_pickup_stop_op_index).loading_chrg_basis,
2248 p_alloc_params=> p_cost_allocation_parameters,
2249 x_fraction=> l_fraction,
2250 x_return_status => l_return_status);
2251
2252 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2253 THEN
2254 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2255 THEN
2256 raise FTE_FREIGHT_PRICING_UTIL.g_tl_loading_chrg_fr_fail;
2257 END IF;
2258 END IF;
2259
2260
2261
2262 l_dleg_alloc_rec.loading_chrg:=l_stop_level_charge*l_fraction;
2263
2264 ----Assisted Loading
2265
2266 l_stop_level_charge:=
2267 p_stop_charges_tab(l_pickup_stop_op_index).ast_loading_chrg;
2268
2269
2270
2271
2272 Get_Loading_Fraction(
2273 p_dleg_rec=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2274 p_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(l_pickup_stop_ip_index),
2275 p_basis=> p_stop_charges_tab(
2276 l_pickup_stop_op_index).ast_loading_chrg_basis,
2277 p_alloc_params=> p_cost_allocation_parameters,
2278 x_fraction=> l_fraction,
2279 x_return_status => l_return_status);
2280
2281 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2282 THEN
2283 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2284 THEN
2285 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ast_ld_chrg_fr_fail;
2286 END IF;
2287 END IF;
2288
2289 l_dleg_alloc_rec.ast_loading_chrg:=
2290 l_stop_level_charge*l_fraction;
2291
2292 ----Facility Loading
2293
2294 l_stop_level_charge:=
2295 p_stop_charges_tab(l_pickup_stop_op_index).fac_loading_chrg;
2296
2297
2298 Get_Loading_Fraction(
2299 p_dleg_rec=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2300 p_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(l_pickup_stop_ip_index),
2301 p_basis=> p_stop_charges_tab(
2302 l_pickup_stop_op_index).fac_loading_chrg_basis,
2303 p_alloc_params=> p_cost_allocation_parameters,
2304 x_fraction=> l_fraction,
2305 x_return_status => l_return_status);
2306
2307 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2308 THEN
2309 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2310 THEN
2311 raise FTE_FREIGHT_PRICING_UTIL.g_tl_fac_ld_chrg_fr_fail;
2312 END IF;
2313 END IF;
2314
2315
2316
2317 l_dleg_alloc_rec.fac_loading_chrg:=
2318 l_stop_level_charge*l_fraction;
2319 l_dleg_alloc_rec.fac_loading_currency:=
2320 FTE_TL_CACHE.g_tl_trip_stop_rows(
2321 l_pickup_stop_ip_index).fac_currency;
2322
2323 ----Facility Assisted Loading
2324
2325 l_stop_level_charge:=
2326 p_stop_charges_tab(
2327 l_pickup_stop_op_index).fac_ast_loading_chrg;
2328
2329 Get_Loading_Fraction(
2330 p_dleg_rec=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2331 p_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(l_pickup_stop_ip_index),
2332 p_basis=> p_stop_charges_tab(
2333 l_pickup_stop_op_index).fac_ast_loading_chrg_basis,
2334 p_alloc_params=> p_cost_allocation_parameters,
2335 x_fraction=> l_fraction,
2336 x_return_status => l_return_status);
2337
2338 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2339 THEN
2340 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2341 THEN
2342 raise FTE_FREIGHT_PRICING_UTIL.g_tl_fac_ast_ld_chrg_fr_fail;
2343 END IF;
2344 END IF;
2345
2346
2347 l_dleg_alloc_rec.fac_ast_loading_chrg:=
2348 l_stop_level_charge*l_fraction;
2349
2350 l_dleg_alloc_rec.fac_loading_currency:=
2351 FTE_TL_CACHE.g_tl_trip_stop_rows(
2352 l_pickup_stop_ip_index).fac_currency;
2353
2354
2355 ---UNLOADING CHARGES
2356
2357
2358 l_stop_level_charge:=
2359 p_stop_charges_tab(l_dropoff_stop_op_index).unloading_chrg;
2360
2361 Get_Unloading_Fraction(
2362 p_dleg_rec=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2363 p_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(l_dropoff_stop_ip_index),
2364 p_basis=> p_stop_charges_tab(l_dropoff_stop_op_index).unloading_chrg_basis,
2365 p_alloc_params=> p_cost_allocation_parameters,
2366 x_fraction=> l_fraction,
2367 x_return_status => l_return_status);
2368
2369 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2370 THEN
2371 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2372 THEN
2373 raise FTE_FREIGHT_PRICING_UTIL.g_tl_unld_chrg_fr_fail;
2374 END IF;
2375 END IF;
2376
2377
2378 l_dleg_alloc_rec.unloading_chrg:=
2379 l_stop_level_charge*l_fraction;
2380
2381
2382 ----Assisted Unloading
2383
2384 l_stop_level_charge:=
2385 p_stop_charges_tab(l_dropoff_stop_op_index).ast_unloading_chrg;
2386
2387
2388 Get_Unloading_Fraction(
2389 p_dleg_rec=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2390 p_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(l_dropoff_stop_ip_index),
2391 p_basis=> p_stop_charges_tab(
2392 l_dropoff_stop_op_index).ast_unloading_chrg_basis,
2393 p_alloc_params=> p_cost_allocation_parameters,
2394 x_fraction=> l_fraction,
2395 x_return_status => l_return_status);
2396
2397 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2398 THEN
2399 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2400 THEN
2401 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ast_unld_chrg_fr_fail;
2402 END IF;
2403 END IF;
2404
2405
2406 l_dleg_alloc_rec.ast_unloading_chrg:=
2407 l_stop_level_charge*l_fraction;
2408
2409 ----Facility Unloading
2410
2411 l_stop_level_charge:=
2412 p_stop_charges_tab(l_dropoff_stop_op_index).fac_unloading_chrg;
2413
2414
2415 Get_Unloading_Fraction(
2416 p_dleg_rec=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2417 p_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(l_dropoff_stop_ip_index),
2418 p_basis=> p_stop_charges_tab(
2419 l_dropoff_stop_op_index).fac_unloading_chrg_basis,
2420 p_alloc_params=> p_cost_allocation_parameters,
2421 x_fraction=> l_fraction,
2422 x_return_status => l_return_status);
2423
2424 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2425 THEN
2426 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2427 THEN
2428 raise FTE_FREIGHT_PRICING_UTIL.g_tl_fac_unld_chrg_fr_fail;
2429 END IF;
2430 END IF;
2431
2432
2433 l_dleg_alloc_rec.fac_unloading_chrg:=
2434 l_stop_level_charge*l_fraction;
2435 l_dleg_alloc_rec.fac_unloading_currency:=
2436 FTE_TL_CACHE.g_tl_trip_stop_rows(l_dropoff_stop_ip_index
2437 ).fac_currency;
2438
2439 ----Facility Assisted Unloading
2440
2441 l_stop_level_charge:=
2442 p_stop_charges_tab(l_dropoff_stop_op_index
2443 ).fac_ast_unloading_chrg;
2444
2445 Get_Unloading_Fraction(
2446 p_dleg_rec=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2447 p_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(l_dropoff_stop_ip_index),
2448 p_basis=> p_stop_charges_tab(l_dropoff_stop_op_index
2449 ).fac_ast_unloading_chrg_basis,
2450 p_alloc_params=> p_cost_allocation_parameters,
2451 x_fraction=> l_fraction,
2452 x_return_status => l_return_status);
2453
2454
2455 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2456 THEN
2457 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2458 THEN
2459 raise FTE_FREIGHT_PRICING_UTIL.g_tl_fac_ast_unld_chrg_fr_fail;
2460 END IF;
2461 END IF;
2462
2463
2464 l_dleg_alloc_rec.fac_ast_unloading_chrg:=
2465 l_stop_level_charge*l_fraction;
2466 l_dleg_alloc_rec.fac_unloading_currency:=
2467 FTE_TL_CACHE.g_tl_trip_stop_rows(
2468 l_dropoff_stop_ip_index).fac_currency;
2469
2470 --StopOFF Charge
2471
2472
2473 Assign_StopOff_Charge(
2474 p_stopoff_charge=> l_stopoff_charge,
2475 p_alloc_params=> p_cost_allocation_parameters ,
2476 p_pickup_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(l_pickup_stop_ip_index),
2477 p_dropoff_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(l_dropoff_stop_ip_index),
2478 p_dleg_rec=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2479 x_dleg_alloc_rec=> l_dleg_alloc_rec,
2480 x_return_status => l_return_status);
2481
2482 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2483 THEN
2484 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2485 THEN
2486 raise FTE_FREIGHT_PRICING_UTIL.g_tl_assgn_stpff_chrg_fail;
2487 END IF;
2488 END IF;
2489
2490
2491 --Facility Handling Charge
2492
2493
2494 --Handling charges at a stop are allocated to all picked up deliveries,
2495 --however if there are no picked up deliveries they are allocated to droppped of
2496 --deliveries. It is possible to have a delivery leg which has handling charges from
2497 --more than one facility. In which case the charge is in the currency of the
2498 --pickup facility
2499 --Added condition for volume 3958974
2500 --Above assumption is altered with 4045314 , the handling charge is allocated to
2501 --both pickup and dropoff deliveries at a stop
2502
2503 l_fraction:=0;
2504 --IF
2505 --((FTE_TL_CACHE.g_tl_trip_stop_rows(
2506 -- l_pickup_stop_ip_index).pickup_weight>0) OR (FTE_TL_CACHE.g_tl_trip_stop_rows(
2507 -- l_pickup_stop_ip_index).pickup_volume>0))
2508
2509 IF ((FTE_TL_CACHE.g_tl_trip_stop_rows(l_pickup_stop_ip_index).stop_type='PU')
2510 OR (FTE_TL_CACHE.g_tl_trip_stop_rows(l_pickup_stop_ip_index).stop_type='PD'))
2511 THEN
2512 --4045314
2513 Get_Total_Stop_Fraction(
2514 p_dleg_rec=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2515 p_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(l_pickup_stop_ip_index),
2516 p_basis=> p_stop_charges_tab(l_pickup_stop_op_index
2517 ).fac_handling_chrg_basis,
2518 p_alloc_params=> p_cost_allocation_parameters,
2519 x_fraction=> l_fraction,
2520 x_return_status => l_return_status);
2521
2522
2523 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2524 THEN
2525 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2526 THEN
2527 raise FTE_FREIGHT_PRICING_UTIL.g_tl_fac_hnd_chrg_pu_fr_fail;
2528 END IF;
2529 END IF;
2530
2531
2532 l_dleg_alloc_rec.fac_handling_chrg:=
2533 p_stop_charges_tab(l_pickup_stop_op_index
2534 ).fac_handling_chrg*l_fraction;
2535 l_dleg_alloc_rec.fac_handling_currency:=
2536 FTE_TL_CACHE.g_tl_trip_stop_rows(l_pickup_stop_ip_index)
2537 .fac_currency;
2538 END IF;
2539
2540 --If at the dropoff stop no other deliveries are picked up
2541 --allocate the fac handling charge to his delivery
2542 --Added condition for volume 3958974
2543 --IF((FTE_TL_CACHE.g_tl_trip_stop_rows(
2544 -- l_dropoff_stop_ip_index).pickup_weight=0) AND (FTE_TL_CACHE.g_tl_trip_stop_rows(
2545 -- l_dropoff_stop_ip_index).pickup_volume=0))
2546
2547 --4045314
2548 IF((FTE_TL_CACHE.g_tl_trip_stop_rows(l_dropoff_stop_ip_index).stop_type='DO')
2549 OR ((FTE_TL_CACHE.g_tl_trip_stop_rows(l_dropoff_stop_ip_index).stop_type='PD')))
2550 THEN
2551
2552 Get_Total_Stop_Fraction(
2553 p_dleg_rec=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2554 p_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(
2555 l_dropoff_stop_ip_index),
2556 p_basis=> p_stop_charges_tab(l_dropoff_stop_op_index
2557 ).fac_handling_chrg_basis,
2558 p_alloc_params=> p_cost_allocation_parameters,
2559 x_fraction=> l_fraction,
2560 x_return_status => l_return_status);
2561
2562 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2563 THEN
2564 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2565 THEN
2566 raise FTE_FREIGHT_PRICING_UTIL.g_tl_fac_hnd_chrg_do_fr_fail;
2567 END IF;
2568 END IF;
2569
2570
2571 l_fac_handling_chrg:=
2572 p_stop_charges_tab(l_dropoff_stop_op_index
2573 ).fac_handling_chrg*l_fraction;
2574 l_fac_handling_currency:=
2575 FTE_TL_CACHE.g_tl_trip_stop_rows(l_dropoff_stop_ip_index
2576 ).fac_currency;
2577
2578
2579 IF (l_fac_handling_chrg > 0)
2580 THEN
2581
2582 l_fac_handling_chrg:=GL_CURRENCY_API.convert_amount(
2583 l_fac_handling_currency,
2584 l_dleg_alloc_rec.fac_handling_currency,
2585 SYSDATE,
2586 'Corporate',
2587 l_fac_handling_chrg
2588 );
2589 END IF;
2590
2591 IF (l_fac_handling_chrg IS NULL)
2592 THEN
2593 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
2594
2595
2596 END IF;
2597
2598 l_dleg_alloc_rec.fac_handling_chrg:=l_dleg_alloc_rec.fac_handling_chrg
2599 +l_fac_handling_chrg;
2600
2601
2602 END IF;
2603
2604
2605
2606
2607
2608 --Handling Charge
2609
2610
2611 Allocate_Handling_Charges(
2612 p_trip_index=> p_trip_index,
2613 p_dleg_row=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2614 p_trip_rec_charges=> p_trip_charges_rec,
2615 p_cost_allocation_parameters=> p_cost_allocation_parameters,
2616 x_handling_chrg=> l_dleg_alloc_rec.handling_chrg,
2617 x_return_status => l_return_status);
2618
2619 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2620 THEN
2621 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2622 THEN
2623 raise FTE_FREIGHT_PRICING_UTIL.g_tl_alloc_hndl_chrg_fail;
2624 END IF;
2625 END IF;
2626
2627
2628 --Origin Surcharge
2629
2630 l_stop_level_charge:=
2631 p_stop_charges_tab(l_pickup_stop_op_index).origin_surchrg;
2632
2633
2634
2635 Get_Loading_Fraction(
2636 p_dleg_rec=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2637 p_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(l_pickup_stop_ip_index),
2638 p_basis=> FTE_RTG_GLOBALS.G_FLAT_BASIS,
2639 p_alloc_params=> p_cost_allocation_parameters,
2640 x_fraction=> l_fraction,
2641 x_return_status => l_return_status);
2642
2643 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2644 THEN
2645 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2646 THEN
2647 raise FTE_FREIGHT_PRICING_UTIL.g_tl_org_chrg_fr_fail;
2648 END IF;
2649 END IF;
2650
2651
2652 l_dleg_alloc_rec.origin_surchrg:=
2653 l_stop_level_charge*l_fraction;
2654
2655 --Destination Surcharge
2656
2657
2658 l_stop_level_charge:=
2659 p_stop_charges_tab(l_dropoff_stop_op_index
2660 ).destination_surchrg;
2661
2662
2663
2664 Get_Unloading_Fraction(
2665 p_dleg_rec=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i),
2666 p_stop_rec=> FTE_TL_CACHE.g_tl_trip_stop_rows(l_dropoff_stop_ip_index),
2667 p_basis=> FTE_RTG_GLOBALS.G_FLAT_BASIS,
2668 p_alloc_params=> p_cost_allocation_parameters,
2669 x_fraction=> l_fraction,
2670 x_return_status => l_return_status);
2671
2672 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
2673 THEN
2674 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
2675 THEN
2676 raise FTE_FREIGHT_PRICING_UTIL.g_tl_dst_chrg_fr_fail;
2677 END IF;
2678 END IF;
2679
2680 l_dleg_alloc_rec.destination_surchrg:=
2681 l_stop_level_charge*l_fraction;
2682
2683
2684 --Add to output structure
2685 l_dleg_alloc_rec.delivery_leg_id:=
2686 FTE_TL_CACHE.g_tl_delivery_leg_rows(i).delivery_leg_id;
2687
2688 l_dleg_alloc_rec.delivery_id:=
2689 FTE_TL_CACHE.g_tl_delivery_leg_rows(i).delivery_id;
2690
2691 x_dleg_alloc_tab(FTE_TL_CACHE.g_tl_delivery_leg_rows(
2692 i).delivery_leg_id):=l_dleg_alloc_rec;
2693
2694 i:=i+1;
2695
2696 END LOOP;
2697 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2698 IF (l_warning_count > 0)
2699 THEN
2700 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
2701 END IF;
2702 EXCEPTION
2703
2704
2705 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail THEN
2706 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2707 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_conv_currency_fail');
2708 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2709
2710
2711 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_get_stpff_per_stop_fail THEN
2712 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2713 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_get_stpff_per_stop_fail');
2714 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2715
2716 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_loading_chrg_fr_fail THEN
2717 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2718 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_loading_chrg_fr_fail');
2719 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2720
2721 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ast_ld_chrg_fr_fail THEN
2722 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2723 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ast_ld_chrg_fr_fail');
2724 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2725
2726 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_fac_ld_chrg_fr_fail THEN
2727 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2728 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_fac_ld_chrg_fr_fail');
2729 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2730
2731 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_fac_ast_ld_chrg_fr_fail THEN
2732 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2733 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_fac_ast_ld_chrg_fr_fail');
2734 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2735
2736 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_unld_chrg_fr_fail THEN
2737 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2738 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_unld_chrg_fr_fail');
2739 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2740
2741 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ast_unld_chrg_fr_fail THEN
2742 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2743 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ast_unld_chrg_fr_fail');
2744 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2745
2746 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_fac_unld_chrg_fr_fail THEN
2747 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2748 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_fac_unld_chrg_fr_fail');
2749 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2750
2751 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_fac_ast_unld_chrg_fr_fail THEN
2752 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2753 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_fac_ast_unld_chrg_fr_fail');
2754 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2755
2756 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_assgn_stpff_chrg_fail THEN
2757 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2758 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_assgn_stpff_chrg_fail');
2759 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2760
2761 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_fac_hnd_chrg_pu_fr_fail THEN
2762 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2763 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_fac_hnd_chrg_pu_fr_fail');
2764 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2765
2766 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_fac_hnd_chrg_do_fr_fail THEN
2767 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2768 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_fac_hnd_chrg_do_fr_fail');
2769 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2770
2771 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_alloc_hndl_chrg_fail THEN
2772 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2773 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_alloc_hndl_chrg_fail');
2774 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2775
2776 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_org_chrg_fr_fail THEN
2777 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2778 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_org_chrg_fr_fail');
2779 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2780
2781 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_dst_chrg_fr_fail THEN
2782 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2783 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_dst_chrg_fr_fail');
2784 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2785
2786
2787 WHEN others THEN
2788 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2789 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Loading_Stopoff_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
2790 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2791 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Loading_Stopoff_To_Dlegs');
2792
2793
2794
2795 END Alloc_Loading_Stopoff_To_Dlegs;
2796
2797
2798 PROCEDURE Get_Top_Most_Dleg(
2799 p_child_dleg_id IN NUMBER,
2800 p_child_dleg_hash IN DBMS_UTILITY.NUMBER_ARRAY,
2801 p_dleg_alloc_tab IN TL_dleg_alloc_TAB_TYPE,
2802 x_top_dleg_id OUT NOCOPY NUMBER,
2803 x_return_status OUT NOCOPY Varchar2)
2804 IS
2805
2806 l_parent_dleg_id NUMBER;
2807 l_dleg_id NUMBER;
2808 l_dleg_index NUMBER;
2809 l_parent_in_cache VARCHAR2(1);
2810
2811 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
2812
2813
2814 BEGIN
2815
2816 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
2817 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Get_Top_Most_Dleg','start');
2818
2819
2820 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2821
2822 x_top_dleg_id:=NULL;
2823
2824 -- top most child dleg
2825 --In case of multiple levels of parent deliveries
2826
2827 l_dleg_id:=p_child_dleg_id;
2828 WHILE(p_child_dleg_hash.EXISTS(l_dleg_id))
2829 LOOP
2830 l_dleg_index:=p_child_dleg_hash(l_dleg_id);
2831
2832 l_parent_dleg_id:=FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(l_dleg_index).parent_dleg_id;
2833
2834 l_dleg_id:=l_parent_dleg_id;
2835
2836 END LOOP;
2837
2838 --top parent dleg
2839
2840 IF((l_dleg_id IS NOT NULL) AND (l_dleg_id <> p_child_dleg_id) AND (p_dleg_alloc_tab.EXISTS(l_dleg_id)))
2841 THEN
2842
2843 x_top_dleg_id:=l_dleg_id;
2844
2845 END IF;
2846
2847
2848 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Top_Most_Dleg');
2849
2850 EXCEPTION
2851
2852 WHEN others THEN
2853 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2854 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Top_Most_Dleg',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
2855 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2856 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Top_Most_Dleg');
2857
2858
2859
2860 END Get_Top_Most_Dleg;
2861
2862 --GEts the SUMMARY cost associated with a given dleg
2863
2864 PROCEDURE Get_Total_Dleg_Cost(
2865 p_trip_index IN NUMBER,
2866 p_dleg_alloc_rec IN TL_dleg_alloc_rec_type,
2867 x_charge IN OUT NOCOPY NUMBER,
2868 x_return_status OUT NOCOPY Varchar2) IS
2869
2870 l_currency VARCHAR2(30);
2871 l_charge NUMBER;
2872
2873 l_return_status VARCHAR2(1);
2874
2875 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
2876
2877 l_warning_count NUMBER:=0;
2878 BEGIN
2879
2880 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
2881 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Get_Total_Dleg_Cost','start');
2882
2883 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2884
2885 l_currency:=FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).currency;
2886 x_charge:=0;
2887 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.base_dist_load_chrg,0);
2888 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.base_dist_unload_chrg,0);
2889 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.base_unit_chrg,0);
2890 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.base_time_chrg,0);
2891 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.base_flat_chrg,0);
2892 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.stop_off_chrg,0);
2893 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.out_of_route_chrg,0);
2894 --x_charge:=x_charge+ NVL(p_dleg_alloc_rec.document_chrg,0);
2895 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.handling_chrg,0);
2896 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.fuel_chrg,0);
2897
2898
2899 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.weekday_layover_chrg,0);
2900 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.weekend_layover_chrg,0);
2901 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.loading_chrg,0);
2902 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.ast_loading_chrg,0);
2903 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.unloading_chrg,0);
2904 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.ast_unloading_chrg,0);
2905 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.origin_surchrg,0);
2906 x_charge:=x_charge+ NVL(p_dleg_alloc_rec.destination_surchrg,0);
2907
2908 IF (p_dleg_alloc_rec.fac_loading_chrg = 0)
2909 THEN
2910 l_charge:=0;
2911 ELSE
2912 l_charge:=GL_CURRENCY_API.convert_amount(
2913 p_dleg_alloc_rec.fac_loading_currency,
2914 l_currency,
2915 SYSDATE,
2916 'Corporate',
2917 p_dleg_alloc_rec.fac_loading_chrg
2918 );
2919
2920 END IF;
2921 IF (l_charge IS NULL)
2922 THEN
2923 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
2924
2925 END IF;
2926
2927 x_charge:=x_charge+ NVL(l_charge,0);
2928
2929 IF (p_dleg_alloc_rec.fac_ast_loading_chrg = 0)
2930 THEN
2931 l_charge:=0;
2932 ELSE
2933 l_charge:=GL_CURRENCY_API.convert_amount(
2934 p_dleg_alloc_rec.fac_loading_currency,
2935 l_currency,
2936 SYSDATE,
2937 'Corporate',
2938 p_dleg_alloc_rec.fac_ast_loading_chrg
2939 );
2940 END IF;
2941 IF (l_charge IS NULL)
2942 THEN
2943 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
2944
2945 END IF;
2946
2947 x_charge:=x_charge+ NVL(l_charge,0);
2948
2949 IF ( p_dleg_alloc_rec.fac_unloading_chrg = 0)
2950 THEN
2951 l_charge:=0;
2952 ELSE
2953 l_charge:=GL_CURRENCY_API.convert_amount(
2954 p_dleg_alloc_rec.fac_unloading_currency,
2955 l_currency,
2956 SYSDATE,
2957 'Corporate',
2958 p_dleg_alloc_rec.fac_unloading_chrg
2959 );
2960 END IF;
2961 IF (l_charge IS NULL)
2962 THEN
2963 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
2964
2965 END IF;
2966 x_charge:=x_charge+ NVL(l_charge,0);
2967
2968 IF (p_dleg_alloc_rec.fac_ast_unloading_chrg = 0)
2969 THEN
2970 l_charge:=0;
2971 ELSE
2972 l_charge:=GL_CURRENCY_API.convert_amount(
2973 p_dleg_alloc_rec.fac_unloading_currency,
2974 l_currency,
2975 SYSDATE,
2976 'Corporate',
2977 p_dleg_alloc_rec.fac_ast_unloading_chrg
2978 );
2979
2980 END IF;
2981 IF (l_charge IS NULL)
2982 THEN
2983 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
2984
2985 END IF;
2986 x_charge:=x_charge+ NVL(l_charge,0);
2987
2988 IF (p_dleg_alloc_rec.fac_handling_chrg = 0)
2989 THEN
2990 l_charge:=0;
2991 ELSE
2992 l_charge:=GL_CURRENCY_API.convert_amount(
2993 p_dleg_alloc_rec.fac_handling_currency,
2994 l_currency,
2995 SYSDATE,
2996 'Corporate',
2997 p_dleg_alloc_rec.fac_handling_chrg
2998 );
2999
3000 END IF;
3001
3002 IF (l_charge IS NULL)
3003 THEN
3004 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
3005
3006 END IF;
3007 x_charge:=x_charge+ NVL(l_charge,0);
3008
3009 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Total_Dleg_Cost');
3010
3011 IF (l_warning_count > 0)
3012 THEN
3013 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
3014 END IF;
3015 EXCEPTION
3016 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail THEN
3017 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3018 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Total_Dleg_Cost',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_conv_currency_fail');
3019 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Total_Dleg_Cost');
3020
3021 WHEN others THEN
3022 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3023 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Total_Dleg_Cost',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
3024 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3025 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Total_Dleg_Cost');
3026
3027
3028
3029 END Get_Total_Dleg_Cost;
3030
3031
3032 PROCEDURE Alloc_Charges_To_Chld_Dlegs(
3033 p_trip_index IN NUMBER,
3034 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
3035 x_dleg_alloc_tab IN OUT NOCOPY TL_dleg_alloc_TAB_TYPE ,
3036 x_return_status OUT NOCOPY Varchar2)
3037 IS
3038
3039 l_parent_dleg_hash DBMS_UTILITY.NUMBER_ARRAY;
3040 l_child_dleg_hash DBMS_UTILITY.NUMBER_ARRAY;
3041 l_child_dleg_index_first NUMBER;
3042 l_child_dleg_index_last NUMBER;
3043 l_dleg_index_first NUMBER;
3044 l_dleg_index_last NUMBER;
3045 i NUMBER;
3046 l_top_dleg_id NUMBER;
3047 l_parent_dleg_index NUMBER;
3048 l_factor NUMBER;
3049
3050 l_child_dleg_alloc_rec TL_dleg_alloc_rec_TYPE;
3051 l_parent_dleg_alloc_rec TL_dleg_alloc_rec_TYPE;
3052
3053 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
3054 l_return_status VARCHAR2(1);
3055
3056 BEGIN
3057
3058 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
3059 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Alloc_Charges_To_Chld_Dlegs','start');
3060
3061 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3062
3063
3064 l_child_dleg_index_first:=
3065 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).child_dleg_reference;
3066
3067 IF(l_child_dleg_index_first IS NOT NULL)
3068 THEN
3069
3070 IF (FTE_TL_CACHE.g_tl_trip_rows.EXISTS(p_trip_index+1))
3071 THEN
3072 l_child_dleg_index_last:=
3073 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index+1
3074 ).child_dleg_reference;
3075
3076
3077 ELSE
3078 l_child_dleg_index_last:=FTE_TL_CACHE.g_tl_chld_delivery_leg_rows.LAST+1;
3079
3080 END IF;
3081
3082
3083 i:=l_child_dleg_index_first;
3084 WHILE (( FTE_TL_CACHE.g_tl_chld_delivery_leg_rows.EXISTS(i)) AND
3085 (FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).trip_id=
3086 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).trip_id) AND (i < l_child_dleg_index_last))
3087 LOOP
3088
3089 l_child_dleg_hash(FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).delivery_leg_id):=i;
3090
3091 i:=i+1;
3092 END LOOP;
3093
3094
3095 l_dleg_index_first:=
3096 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).delivery_leg_reference;
3097
3098 IF (FTE_TL_CACHE.g_tl_trip_rows.EXISTS(p_trip_index+1))
3099 THEN
3100 l_dleg_index_last:=
3101 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index+1
3102 ).delivery_leg_reference;
3103
3104
3105 ELSE
3106 l_dleg_index_last:=FTE_TL_CACHE.g_tl_delivery_leg_rows.LAST+1;
3107
3108 END IF;
3109
3110
3111 i:=l_dleg_index_first;
3112 WHILE (( FTE_TL_CACHE.g_tl_delivery_leg_rows.EXISTS(i)) AND
3113 (FTE_TL_CACHE.g_tl_delivery_leg_rows(i).trip_id=
3114 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).trip_id) AND (i < l_dleg_index_last))
3115 LOOP
3116
3117 l_parent_dleg_hash(FTE_TL_CACHE.g_tl_delivery_leg_rows(i).delivery_leg_id):=i;
3118
3119 i:=i+1;
3120 END LOOP;
3121
3122
3123
3124 i:=l_child_dleg_index_first;
3125 WHILE (( FTE_TL_CACHE.g_tl_chld_delivery_leg_rows.EXISTS(i)) AND
3126 (FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).trip_id=
3127 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).trip_id) AND (i < l_child_dleg_index_last))
3128 LOOP
3129
3130
3131 Get_Top_Most_Dleg(
3132 p_child_dleg_id=>FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).delivery_leg_id,
3133 p_child_dleg_hash=>l_child_dleg_hash,
3134 p_dleg_alloc_tab=>x_dleg_alloc_tab,
3135 x_top_dleg_id=>l_top_dleg_id,
3136 x_return_status=>l_return_status);
3137
3138 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
3139 THEN
3140 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
3141 THEN
3142 raise FTE_FREIGHT_PRICING_UTIL.g_tl_mdc_top_dleg_fail;
3143 END IF;
3144 END IF;
3145 IF (l_top_dleg_id IS NULL)
3146 THEN
3147
3148 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'No top dleg for :'||FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).delivery_leg_id);
3149 raise FTE_FREIGHT_PRICING_UTIL.g_tl_mdc_top_dleg_fail;
3150 END IF;
3151
3152 l_parent_dleg_index:=l_parent_dleg_hash(l_top_dleg_id);
3153
3154
3155 --Calculate allocation factor
3156
3157 l_factor:=0;
3158
3159 IF(p_cost_allocation_parameters.principal_alloc_basis=
3160 FTE_RTG_GLOBALS.G_CA_WEIGHT_BASIS)
3161 THEN
3162 IF (FTE_TL_CACHE.g_tl_delivery_leg_rows(l_parent_dleg_index).children_weight > 0)
3163 THEN
3164 l_factor:=FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).weight/
3165 FTE_TL_CACHE.g_tl_delivery_leg_rows(l_parent_dleg_index).children_weight;
3166 END IF;
3167
3168 ELSIF(p_cost_allocation_parameters.principal_alloc_basis=
3169 FTE_RTG_GLOBALS.G_CA_VOLUME_BASIS)
3170 THEN
3171 IF (FTE_TL_CACHE.g_tl_delivery_leg_rows(l_parent_dleg_index).children_volume > 0)
3172 THEN
3173 l_factor:=FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).volume/
3174 FTE_TL_CACHE.g_tl_delivery_leg_rows(l_parent_dleg_index).children_volume;
3175 END IF;
3176
3177
3178 END IF;
3179
3180
3181 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Alloc factor for child dleg:'||
3182 FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).delivery_leg_id||' factor:'||l_factor);
3183
3184
3185 l_parent_dleg_alloc_rec:=x_dleg_alloc_tab(l_top_dleg_id);
3186 l_child_dleg_alloc_rec.delivery_leg_id:=FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).delivery_leg_id;
3187 l_child_dleg_alloc_rec.delivery_id:=FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).delivery_id;
3188
3189 l_child_dleg_alloc_rec.base_dist_load_chrg:=
3190 l_parent_dleg_alloc_rec.base_dist_load_chrg * l_factor;
3191
3192 l_child_dleg_alloc_rec.base_dist_load_unit_chrg:=
3193 l_parent_dleg_alloc_rec.base_dist_load_unit_chrg * l_factor;
3194
3195 l_child_dleg_alloc_rec.base_dist_unload_chrg:=
3196 l_parent_dleg_alloc_rec.base_dist_unload_chrg * l_factor;
3197
3198 l_child_dleg_alloc_rec.base_dist_unload_unit_chrg:=
3199 l_parent_dleg_alloc_rec.base_dist_unload_unit_chrg *
3200 l_factor;
3201
3202 l_child_dleg_alloc_rec.base_unit_chrg:=
3203 l_parent_dleg_alloc_rec.base_unit_chrg*l_factor;
3204
3205 l_child_dleg_alloc_rec.base_unit_unit_chrg:=
3206 l_parent_dleg_alloc_rec.base_unit_unit_chrg*l_factor;
3207
3208 l_child_dleg_alloc_rec.base_time_chrg:=
3209 l_parent_dleg_alloc_rec.base_time_chrg*l_factor;
3210
3211 l_child_dleg_alloc_rec.base_time_unit_chrg:=
3212 l_parent_dleg_alloc_rec.base_time_unit_chrg*l_factor;
3213
3214 l_child_dleg_alloc_rec.base_flat_chrg:=
3215 l_parent_dleg_alloc_rec.base_flat_chrg*l_factor;
3216
3217
3218 l_child_dleg_alloc_rec.stop_off_chrg:=
3219 l_parent_dleg_alloc_rec.stop_off_chrg*l_factor;
3220
3221
3222 l_child_dleg_alloc_rec.out_of_route_chrg:=
3223 l_parent_dleg_alloc_rec.out_of_route_chrg*l_factor;
3224
3225
3226 l_child_dleg_alloc_rec.document_chrg:=
3227 l_parent_dleg_alloc_rec.document_chrg*l_factor;
3228
3229
3230 l_child_dleg_alloc_rec.handling_chrg:=
3231 l_parent_dleg_alloc_rec.handling_chrg*l_factor;
3232
3233 l_child_dleg_alloc_rec.fuel_chrg:=
3234 l_parent_dleg_alloc_rec.fuel_chrg*l_factor;
3235
3236 l_child_dleg_alloc_rec.weekday_layover_chrg:=
3237 l_parent_dleg_alloc_rec.weekday_layover_chrg*l_factor;
3238
3239 l_child_dleg_alloc_rec.weekend_layover_chrg:=
3240 l_parent_dleg_alloc_rec.weekend_layover_chrg*l_factor;
3241
3242
3243 l_child_dleg_alloc_rec.loading_chrg:=
3244 l_parent_dleg_alloc_rec.loading_chrg*l_factor;
3245
3246
3247 l_child_dleg_alloc_rec.ast_loading_chrg:=
3248 l_parent_dleg_alloc_rec.ast_loading_chrg*l_factor;
3249
3250
3251 l_child_dleg_alloc_rec.unloading_chrg:=
3252 l_parent_dleg_alloc_rec.unloading_chrg*l_factor;
3253
3254 l_child_dleg_alloc_rec.origin_surchrg:=
3255 l_parent_dleg_alloc_rec.origin_surchrg*l_factor;
3256
3257 l_child_dleg_alloc_rec.destination_surchrg:=
3258 l_parent_dleg_alloc_rec.destination_surchrg*l_factor;
3259
3260
3261 l_child_dleg_alloc_rec.ast_unloading_chrg:=
3262 l_parent_dleg_alloc_rec.ast_unloading_chrg*l_factor;
3263
3264 l_child_dleg_alloc_rec.fac_handling_chrg:=
3265 l_parent_dleg_alloc_rec.fac_handling_chrg*l_factor;
3266
3267 l_child_dleg_alloc_rec.fac_loading_chrg:=
3268 l_parent_dleg_alloc_rec.fac_loading_chrg*l_factor;
3269
3270
3271 l_child_dleg_alloc_rec.fac_ast_loading_chrg:=
3272 l_parent_dleg_alloc_rec.fac_ast_loading_chrg*l_factor;
3273
3274 l_child_dleg_alloc_rec.fac_unloading_chrg:=
3275 l_parent_dleg_alloc_rec.fac_unloading_chrg*l_factor;
3276
3277 l_child_dleg_alloc_rec.fac_ast_unloading_chrg:=
3278 l_parent_dleg_alloc_rec.fac_ast_unloading_chrg*l_factor;
3279
3280 l_child_dleg_alloc_rec.fac_loading_currency:=
3281 l_parent_dleg_alloc_rec.fac_loading_currency;
3282
3283 l_child_dleg_alloc_rec.fac_unloading_currency:=
3284 l_parent_dleg_alloc_rec.fac_unloading_currency;
3285
3286 l_child_dleg_alloc_rec.fac_handling_currency:=
3287 l_parent_dleg_alloc_rec.fac_handling_currency;
3288
3289
3290 Get_Total_Dleg_Cost(
3291 p_trip_index=>p_trip_index,
3292 p_dleg_alloc_rec=>l_child_dleg_alloc_rec,
3293 x_charge=>l_child_dleg_alloc_rec.total_dleg_charge,
3294 x_return_status=>l_return_status);
3295
3296 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
3297 THEN
3298 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
3299 THEN
3300 raise FTE_FREIGHT_PRICING_UTIL.g_tl_get_to_dleg_cost_fail;
3301 END IF;
3302 END IF;
3303
3304
3305
3306 x_dleg_alloc_tab(l_child_dleg_alloc_rec.delivery_leg_id):=
3307 l_child_dleg_alloc_rec;
3308
3309 i:=i+1;
3310 END LOOP;
3311
3312
3313 END IF;
3314
3315
3316 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Charges_To_Chld_Dlegs');
3317
3318 EXCEPTION
3319
3320 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_mdc_top_dleg_fail THEN
3321 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3322 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Charges_To_Chld_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_mdc_top_dleg_fail');
3323 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Charges_To_Chld_Dlegs');
3324
3325
3326 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_get_to_dleg_cost_fail THEN
3327 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3328 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Charges_To_Chld_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_get_to_dleg_cost_fail');
3329 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Charges_To_Chld_Dlegs');
3330
3331
3332 WHEN others THEN
3333 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3334 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Charges_To_Chld_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
3335 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3336 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Charges_To_Chld_Dlegs');
3337
3338
3339 END Alloc_Charges_To_Chld_Dlegs;
3340
3341
3342
3343
3344 --Allocate all remaining charges (besides stopoff,unloading/loading,handling,
3345 --origin/dest) to delivery legs
3346 --As per Step 4 of the CA algorithm
3347
3348 PROCEDURE Alloc_Charges_To_Dlegs(
3349 p_trip_index IN NUMBER,
3350 p_trip_charges_rec IN FTE_TL_CACHE.TL_trip_output_rec_type ,
3351 p_stop_charges_tab IN
3352 FTE_TL_CACHE.TL_trip_stop_output_tab_type,
3353 p_stop_input_hash IN DBMS_UTILITY.NUMBER_ARRAY,
3354 p_stop_output_hash IN DBMS_UTILITY.NUMBER_ARRAY,
3355 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
3356 x_dleg_alloc_tab IN OUT NOCOPY TL_dleg_alloc_TAB_TYPE ,
3357 x_return_status OUT NOCOPY Varchar2) IS
3358
3359
3360 l_weekday_layover NUMBER;
3361 l_weekend_layover NUMBER;
3362 l_origin_chrg NUMBER;
3363 l_destination_chrg NUMBER;
3364
3365 l_fac_handling_chrg NUMBER;
3366
3367 i NUMBER;
3368 l_sum NUMBER;
3369 l_dleg_index_first NUMBER;
3370 l_dleg_index_last NUMBER;
3371 l_factor NUMBER;
3372 l_dleg_id NUMBER;
3373 l_distance NUMBER;
3374 l_value NUMBER;
3375 l_dtl_charges_tab TL_detail_alloc_tab_type;
3376 l_dtl_charges_rec TL_detail_alloc_rec_type;
3377 l_return_status VARCHAR2(1);
3378
3379 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
3380
3381 l_warning_count NUMBER:=0;
3382 BEGIN
3383
3384 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
3385 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Alloc_Charges_To_Dlegs','start');
3386
3387
3388 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3389
3390 l_weekday_layover:=0;
3391 l_weekend_layover:=0;
3392
3393 --Sum up all the stop level charges to the trip level
3394 i:=p_stop_charges_tab.FIRST;
3395 WHILE (i IS NOT NULL)
3396 LOOP
3397
3398 l_weekday_layover:=l_weekday_layover+
3399 NVL(p_stop_charges_tab(i).weekday_layover_chrg,0);
3400
3401 l_weekend_layover:=l_weekend_layover+
3402 NVL(p_stop_charges_tab(i).weekend_layover_chrg,0);
3403
3404 i:=p_stop_charges_tab.NEXT(i);
3405 END LOOP;
3406
3407
3408 --Find Sum of delivery* distance
3409
3410
3411 l_dleg_index_first:=
3412 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).delivery_leg_reference;
3413
3414 IF (FTE_TL_CACHE.g_tl_trip_rows.EXISTS(p_trip_index+1))
3415 THEN
3416 l_dleg_index_last:=
3417 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index+1
3418 ).delivery_leg_reference;
3419
3420
3421 ELSE
3422 l_dleg_index_last:=FTE_TL_CACHE.g_tl_delivery_leg_rows.LAST+1;
3423
3424 END IF;
3425 l_sum:=0;
3426 i:=l_dleg_index_first;
3427
3428 WHILE (( FTE_TL_CACHE.g_tl_delivery_leg_rows.EXISTS(i)) AND
3429 (FTE_TL_CACHE.g_tl_delivery_leg_rows(i).trip_id=
3430 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).trip_id) AND (i < l_dleg_index_last))
3431 LOOP
3432 IF(p_cost_allocation_parameters.principal_alloc_basis=
3433 FTE_RTG_GLOBALS.G_CA_WEIGHT_BASIS)
3434 THEN
3435 l_value:=FTE_TL_CACHE.g_tl_delivery_leg_rows(i).weight;
3436
3437 ELSIF(p_cost_allocation_parameters.principal_alloc_basis=
3438 FTE_RTG_GLOBALS.G_CA_VOLUME_BASIS)
3439 THEN
3440 l_value:=FTE_TL_CACHE.g_tl_delivery_leg_rows(i).volume;
3441
3442 END IF;
3443
3444 IF(p_cost_allocation_parameters.distance_alloc_method=
3445 FTE_RTG_GLOBALS.G_CA_DIRECT_DISTANCE)
3446 THEN
3447 l_distance:=
3448 FTE_TL_CACHE.g_tl_delivery_leg_rows(i).direct_distance;
3449
3450 ELSIF(p_cost_allocation_parameters.distance_alloc_method=
3451 FTE_RTG_GLOBALS.G_CA_TOTAL_DISTANCE)
3452 THEN
3453 l_distance:=
3454 FTE_TL_CACHE.g_tl_delivery_leg_rows(i).distance;
3455
3456 END IF;
3457
3458 l_sum:=l_sum+l_distance*l_value;
3459
3460
3461
3462 i:=i+1;
3463 END LOOP;
3464
3465 --Allocate to each dleg
3466
3467 IF (l_sum >0 )
3468 THEN
3469
3470
3471
3472 i:=l_dleg_index_first;
3473 WHILE (( FTE_TL_CACHE.g_tl_delivery_leg_rows.EXISTS(i)) AND
3474 (FTE_TL_CACHE.g_tl_delivery_leg_rows(i).trip_id=
3475 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).trip_id) AND i < l_dleg_index_last)
3476 LOOP
3477 IF(p_cost_allocation_parameters.principal_alloc_basis=
3478 FTE_RTG_GLOBALS.G_CA_WEIGHT_BASIS)
3479 THEN
3480 l_value:=
3481 FTE_TL_CACHE.g_tl_delivery_leg_rows(i).weight;
3482
3483 ELSIF(p_cost_allocation_parameters.principal_alloc_basis
3484 =FTE_RTG_GLOBALS.G_CA_VOLUME_BASIS)
3485 THEN
3486
3487 l_value:=
3488 FTE_TL_CACHE.g_tl_delivery_leg_rows(i).volume;
3489 ELSE
3490 l_value:=0;
3491
3492 END IF;
3493
3494 IF(p_cost_allocation_parameters.distance_alloc_method=
3495 FTE_RTG_GLOBALS.G_CA_DIRECT_DISTANCE)
3496 THEN
3497 l_distance:=
3498 FTE_TL_CACHE.g_tl_delivery_leg_rows(i
3499 ).direct_distance;
3500
3501 ELSIF(p_cost_allocation_parameters.distance_alloc_method
3502 =FTE_RTG_GLOBALS.G_CA_TOTAL_DISTANCE)
3503 THEN
3504
3505 l_distance:=
3506 FTE_TL_CACHE.g_tl_delivery_leg_rows(i).distance;
3507 ELSE
3508 l_distance:=0;
3509
3510 END IF;
3511
3512 IF (l_sum>0)
3513 THEN
3514 l_factor:=l_value*l_distance/l_sum;
3515 ELSE
3516 l_factor:=0;
3517 END IF;
3518
3519 l_dleg_id:=
3520 FTE_TL_CACHE.g_tl_delivery_leg_rows(i).delivery_leg_id;
3521
3522 x_dleg_alloc_tab(l_dleg_id).base_dist_load_chrg:=
3523 p_trip_charges_rec.base_dist_load_chrg * l_factor;
3524 x_dleg_alloc_tab(l_dleg_id).base_dist_load_unit_chrg:=
3525 p_trip_charges_rec.base_dist_load_unit_chrg * l_factor;
3526
3527 x_dleg_alloc_tab(l_dleg_id).base_dist_unload_chrg:=
3528 p_trip_charges_rec.base_dist_unload_chrg * l_factor;
3529 x_dleg_alloc_tab(l_dleg_id).base_dist_unload_unit_chrg:=
3530 p_trip_charges_rec.base_dist_unload_unit_chrg *
3531 l_factor;
3532
3533 x_dleg_alloc_tab(l_dleg_id).base_unit_chrg:=
3534 p_trip_charges_rec.base_unit_chrg*l_factor;
3535 x_dleg_alloc_tab(l_dleg_id).base_unit_unit_chrg:=
3536 p_trip_charges_rec.base_unit_unit_chrg*l_factor;
3537
3538 x_dleg_alloc_tab(l_dleg_id).base_time_chrg:=
3539 p_trip_charges_rec.base_time_chrg*l_factor;
3540 x_dleg_alloc_tab(l_dleg_id).base_time_unit_chrg:=
3541 p_trip_charges_rec.base_time_unit_chrg*l_factor;
3542
3543 x_dleg_alloc_tab(l_dleg_id).base_flat_chrg:=
3544 p_trip_charges_rec.base_flat_chrg*l_factor;
3545 x_dleg_alloc_tab(l_dleg_id).out_of_route_chrg:=
3546 p_trip_charges_rec.out_of_route_chrg*l_factor;
3547 x_dleg_alloc_tab(l_dleg_id).document_chrg:=
3548 p_trip_charges_rec.document_chrg*l_factor;
3549
3550
3551 x_dleg_alloc_tab(l_dleg_id).weekday_layover_chrg:=
3552 l_weekday_layover*l_factor;
3553 x_dleg_alloc_tab(l_dleg_id).weekend_layover_chrg:=
3554 l_weekend_layover*l_factor;
3555
3556 x_dleg_alloc_tab(l_dleg_id).fuel_chrg:=
3557 p_trip_charges_rec.fuel_chrg*l_factor;
3558
3559
3560
3561 Get_Total_Dleg_Cost(
3562 p_trip_index=>p_trip_index,
3563 p_dleg_alloc_rec=>x_dleg_alloc_tab(l_dleg_id),
3564 x_charge=>x_dleg_alloc_tab(l_dleg_id).total_dleg_charge,
3565 x_return_status=>l_return_status);
3566
3567 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
3568 THEN
3569 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
3570 THEN
3571 raise FTE_FREIGHT_PRICING_UTIL.g_tl_get_to_dleg_cost_fail;
3572 END IF;
3573 END IF;
3574
3575
3576
3577 i:=i+1;
3578 END LOOP;
3579
3580 Alloc_Charges_To_Chld_Dlegs(
3581 p_trip_index=>p_trip_index,
3582 p_cost_allocation_parameters=>p_cost_allocation_parameters,
3583 x_dleg_alloc_tab=>x_dleg_alloc_tab,
3584 x_return_status=>l_return_status);
3585
3586 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
3587 THEN
3588 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
3589 THEN
3590 raise FTE_FREIGHT_PRICING_UTIL.g_tl_mdc_alloc_chld_dleg_fail;
3591 END IF;
3592 END IF;
3593
3594
3595
3596 END IF;
3597
3598
3599
3600 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Charges_To_Dlegs');
3601 IF (l_warning_count > 0)
3602 THEN
3603 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
3604 END IF;
3605 EXCEPTION
3606
3607
3608
3609 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_mdc_alloc_chld_dleg_fail THEN
3610 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3611 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Charges_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_mdc_alloc_chld_dleg_fail');
3612 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Charges_To_Dlegs');
3613
3614
3615 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_get_to_dleg_cost_fail THEN
3616 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3617 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Charges_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_get_to_dleg_cost_fail');
3618 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Charges_To_Dlegs');
3619
3620
3621 WHEN others THEN
3622 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3623 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Charges_To_Dlegs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
3624 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3625 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Charges_To_Dlegs');
3626
3627
3628
3629 END Alloc_Charges_To_Dlegs;
3630
3631 -- Copies the same information into a different record type
3632 --
3633 PROCEDURE Copy_Freight_Rec_Temp_To_Main(
3634 p_freight_rec IN FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type,
3635 x_freight_rec IN OUT NOCOPY WSH_FREIGHT_COSTS_PVT.Freight_Cost_Rec_Type,
3636 x_return_status OUT NOCOPY Varchar2) IS
3637
3638 l_return_status VARCHAR2(1);
3639
3640 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
3641
3642 l_warning_count NUMBER:=0;
3643 BEGIN
3644
3645 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
3646 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Copy_Freight_Rec_Temp_To_Main','start');
3647
3648 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3649
3650 x_freight_rec.freight_cost_id:=p_freight_rec.freight_cost_id;
3651 x_freight_rec.freight_cost_type_id:=p_freight_rec.freight_cost_type_id;
3652 x_freight_rec.unit_amount:=p_freight_rec.unit_amount;
3653 x_freight_rec.calculation_method:=p_freight_rec.calculation_method;
3654 x_freight_rec.uom:=p_freight_rec.uom;
3655 x_freight_rec.quantity:=p_freight_rec.quantity;
3656 x_freight_rec.total_amount:=p_freight_rec.total_amount;
3657 x_freight_rec.currency_code:=p_freight_rec.currency_code;
3658 x_freight_rec.conversion_date:=p_freight_rec.conversion_date;
3659 x_freight_rec.conversion_rate:=p_freight_rec.conversion_rate;
3660 x_freight_rec.conversion_type_code:=p_freight_rec.conversion_type_code;
3661 x_freight_rec.trip_id:=p_freight_rec.trip_id;
3662
3663 x_freight_rec.stop_id:=p_freight_rec.stop_id;
3664 x_freight_rec.delivery_id:=p_freight_rec.delivery_id;
3665 x_freight_rec.delivery_leg_id:=p_freight_rec.delivery_leg_id;
3666 x_freight_rec.delivery_detail_id:=p_freight_rec.delivery_detail_id;
3667 x_freight_rec.request_id:=p_freight_rec.request_id;
3668 x_freight_rec.line_type_code:=p_freight_rec.line_type_code;
3669 x_freight_rec.pricing_list_header_id:=
3670 p_freight_rec.pricing_list_header_id;
3671 x_freight_rec.pricing_list_line_id:=p_freight_rec.pricing_list_line_id;
3672 x_freight_rec.applied_to_charge_id:=p_freight_rec.applied_to_charge_id;
3673 x_freight_rec.charge_unit_value:=p_freight_rec.charge_unit_value;
3674 x_freight_rec.charge_source_code:=p_freight_rec.charge_source_code;
3675 x_freight_rec.estimated_flag:=p_freight_rec.estimated_flag;
3676 x_freight_rec.creation_date:=p_freight_rec.creation_date;
3677 x_freight_rec.created_by:= p_freight_rec.created_by;
3678 x_freight_rec.last_update_date:= p_freight_rec.last_update_date;
3679 x_freight_rec.last_updated_by:=p_freight_rec.last_updated_by;
3680 x_freight_rec.last_update_login:= p_freight_rec.last_update_login;
3681 x_freight_rec.program_application_id:=
3682 p_freight_rec.program_application_id;
3683 x_freight_rec.program_id:= p_freight_rec.program_id;
3684 x_freight_rec.program_update_date:= p_freight_rec.program_update_date;
3685
3686
3687 --Dimension parameters
3688
3689 x_freight_rec.billable_quantity:=p_freight_rec.billable_quantity;
3690 x_freight_rec.billable_uom:=p_freight_rec.billable_uom;
3691 x_freight_rec.billable_basis:=p_freight_rec.billable_basis;
3692
3693
3694 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Copy_Freight_Rec_Temp_To_Main');
3695 IF (l_warning_count > 0)
3696 THEN
3697 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
3698 END IF;
3699 EXCEPTION
3700 WHEN others THEN
3701 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3702 FTE_FREIGHT_PRICING_UTIL.set_exception('Copy_Freight_Rec_Temp_To_Main',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
3703 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3704 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Copy_Freight_Rec_Temp_To_Main');
3705
3706
3707
3708 END Copy_Freight_Rec_Temp_To_Main;
3709
3710
3711 -- Inserts a record for a specific charge at a specific level into the temp
3712 --table, the main table or the pl/sql table
3713 --
3714 PROCEDURE Insert_Charge_Rec(
3715 p_freight_rec IN FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type,
3716 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
3717 x_output_cost_tab IN OUT NOCOPY
3718 FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type,
3719 x_freight_cost_id IN OUT NOCOPY NUMBER,
3720 x_return_status IN OUT NOCOPY VARCHAR2) IS
3721
3722 l_freight_rec_main WSH_FREIGHT_COSTS_PVT.Freight_Cost_Rec_Type;
3723 l_rowid VARCHAR2(30);
3724 l_freight_rec FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type;
3725 l_return_status VARCHAR2(1);
3726
3727 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
3728
3729 l_warning_count NUMBER:=0;
3730 BEGIN
3731
3732 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
3733 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Insert_Charge_Rec','start');
3734
3735
3736 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3737
3738 SAVEPOINT Insert_Charge_Rec;
3739
3740 IF (p_cost_allocation_parameters.output_type='T')
3741 THEN
3742 l_freight_rec:=p_freight_rec;
3743 l_freight_rec.comparison_request_id:=
3744 p_cost_allocation_parameters.comparison_request_id;
3745
3746 DisplayCostRec(l_freight_rec);
3747 --3756411
3748 Insert_Into_Temp_Bulk_Array(
3749 p_freight_cost_rec =>l_freight_rec,
3750 x_return_status=>x_return_status);
3751
3752 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
3753 THEN
3754 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
3755 THEN
3756 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_tmp_bulk_arr_fail;
3757 END IF;
3758 END IF;
3759
3760
3761 /*
3762 FTE_FREIGHT_PRICING.Create_Freight_Cost_Temp(
3763 l_freight_rec,
3764 x_freight_cost_id,
3765 x_return_status);
3766
3767 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
3768 THEN
3769 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
3770 THEN
3771 raise FTE_FREIGHT_PRICING_UTIL.g_tl_cr_fr_cost_temp_fail;
3772 END IF;
3773 END IF;
3774 */
3775
3776
3777 ELSIF(p_cost_allocation_parameters.output_type='M')
3778 THEN
3779
3780 Copy_Freight_Rec_Temp_To_Main(
3781 p_freight_rec=> p_freight_rec,
3782 x_freight_rec=> l_freight_rec_main,
3783 x_return_status => l_return_status);
3784
3785 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
3786 THEN
3787 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
3788 THEN
3789 raise FTE_FREIGHT_PRICING_UTIL.g_tl_copy_fr_rec_fail;
3790 END IF;
3791 END IF;
3792
3793 --delivery leg summary always exists, just update it
3794
3795 IF ((l_freight_rec_main.delivery_leg_id IS NOT NULL)
3796 AND(l_freight_rec_main.delivery_detail_id IS NULL)
3797 AND (l_freight_rec_main.line_type_code='SUMMARY'))
3798 THEN
3799 l_freight_rec_main.freight_cost_id:=FTE_FREIGHT_PRICING.get_fc_id_from_dleg(l_freight_rec_main.delivery_leg_id);
3800 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
3801 THEN
3802 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
3803 THEN
3804 raise FTE_FREIGHT_PRICING_UTIL.g_tl_get_fc_id_fail;
3805 END IF;
3806 END IF;
3807
3808
3809 WSH_FREIGHT_COSTS_PVT.Update_Freight_Cost(
3810 p_rowid => l_rowid,
3811 p_freight_cost_info => l_freight_rec_main,
3812 x_return_status => l_return_status);
3813
3814 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
3815 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
3816 FTE_FREIGHT_PRICING_UTIL.set_location(p_loc => 'Update_Freight_Cost');
3817 raise FTE_FREIGHT_PRICING_UTIL.g_update_freight_cost_failed;
3818 ELSE
3819 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_WRN,'Update_Freight_Cost returned warning ');
3820 END IF;
3821 END IF;
3822
3823 ELSE
3824
3825 WSH_FREIGHT_COSTS_PVT.Create_Freight_Cost(
3826 p_freight_cost_info => l_freight_rec_main,
3827 x_rowid => l_rowid,
3828 x_freight_cost_id => x_freight_cost_id,
3829 x_return_status => l_return_status);
3830
3831 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
3832 THEN
3833 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
3834 THEN
3835 raise FTE_FREIGHT_PRICING_UTIL.g_tl_cr_fr_cost_fail;
3836 END IF;
3837 END IF;
3838
3839 END IF;
3840
3841 ELSIF(p_cost_allocation_parameters.output_type='P')
3842 THEN
3843 IF(x_output_cost_tab.LAST IS NULL)
3844 THEN
3845 x_freight_cost_id:=1;
3846 ELSE
3847 x_freight_cost_id:=x_output_cost_tab.LAST+1;
3848 END IF;
3849 x_output_cost_tab(x_freight_cost_id):=p_freight_rec;
3850 x_output_cost_tab(x_freight_cost_id).freight_cost_id:=
3851 x_freight_cost_id;
3852 x_return_status:=WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3853 ELSE
3854 --throw an exception
3855 raise FTE_FREIGHT_PRICING_UTIL.g_tl_invalid_output_type;
3856
3857 END IF;
3858
3859 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Charge_Rec');
3860
3861 IF (l_warning_count > 0)
3862 THEN
3863 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
3864 END IF;
3865 EXCEPTION
3866
3867 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_tmp_bulk_arr_fail THEN
3868 ROLLBACK TO Insert_Charge_Rec;
3869 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3870 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Charge_Rec',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_tmp_bulk_arr_fail');
3871 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Charge_Rec');
3872
3873
3874 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_get_fc_id_fail THEN
3875 ROLLBACK TO Insert_Charge_Rec;
3876 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3877 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Charge_Rec',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_get_fc_id_fail');
3878 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Charge_Rec');
3879
3880 WHEN FTE_FREIGHT_PRICING_UTIL.g_update_freight_cost_failed THEN
3881 ROLLBACK TO Insert_Charge_Rec;
3882 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3883 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Charge_Rec',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_update_freight_cost_failed');
3884 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Charge_Rec');
3885
3886 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_cr_fr_cost_temp_fail THEN
3887 ROLLBACK TO Insert_Charge_Rec;
3888 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3889 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Charge_Rec',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_cr_fr_cost_temp_fail');
3890 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Charge_Rec');
3891
3892 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_copy_fr_rec_fail THEN
3893 ROLLBACK TO Insert_Charge_Rec;
3894 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3895 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Charge_Rec',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_copy_fr_rec_fail');
3896 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Charge_Rec');
3897
3898 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_cr_fr_cost_fail THEN
3899 ROLLBACK TO Insert_Charge_Rec;
3900 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3901 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Charge_Rec',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_cr_fr_cost_fail');
3902 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Charge_Rec');
3903
3904 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_invalid_output_type THEN
3905 ROLLBACK TO Insert_Charge_Rec;
3906 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3907 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Charge_Rec',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_invalid_output_type');
3908 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Charge_Rec');
3909
3910 WHEN others THEN
3911 ROLLBACK TO Insert_Charge_Rec;
3912 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3913 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Charge_Rec',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
3914 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3915 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Charge_Rec');
3916
3917
3918
3919 END Insert_Charge_Rec;
3920
3921 --Inserts a delivery detail level charge record
3922
3923 PROCEDURE Insert_Dlv_Dtl_Level_Charge(
3924 p_charge_type IN NUMBER,
3925 p_line_type_code IN VARCHAR2,
3926 p_charge IN NUMBER,
3927 p_unit_charge IN NUMBER,
3928 p_freight_rec IN FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type,
3929 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
3930 x_output_cost_tab IN OUT NOCOPY
3931 FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type ,
3932 x_return_status OUT NOCOPY Varchar2) IS
3933
3934 l_freight_rec FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type;
3935 l_freight_cost_type_id NUMBER;
3936 l_freight_cost_id NUMBER;
3937 l_return_status VARCHAR2(1);
3938
3939
3940 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
3941
3942 l_warning_count NUMBER:=0;
3943 BEGIN
3944
3945 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
3946 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Insert_Dlv_Dtl_Level_Charge','start');
3947
3948 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3949
3950 l_freight_rec:=p_freight_rec;
3951 l_freight_rec.freight_cost_type_id:=p_charge_type;
3952 l_freight_rec.unit_amount:=p_charge;
3953 l_freight_rec.total_amount:=p_charge;
3954 l_freight_rec.line_type_code:=p_line_type_code;
3955 l_freight_rec.charge_unit_value:=p_unit_charge;
3956
3957 Insert_Charge_Rec(
3958 p_freight_rec=> l_freight_rec,
3959 p_cost_allocation_parameters=> p_cost_allocation_parameters,
3960 x_output_cost_tab=> x_output_cost_tab ,
3961 x_freight_cost_id=> l_freight_cost_id,
3962 x_return_status=> l_return_status);
3963
3964 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
3965 THEN
3966 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
3967 THEN
3968 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_charge_rec_fail;
3969 END IF;
3970 END IF;
3971
3972
3973 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Dlv_Dtl_Level_Charge');
3974
3975 IF (l_warning_count > 0)
3976 THEN
3977 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
3978 END IF;
3979 EXCEPTION
3980 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_charge_rec_fail THEN
3981 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3982 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Dlv_Dtl_Level_Charge',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_charge_rec_fail');
3983 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Dlv_Dtl_Level_Charge');
3984
3985
3986 WHEN others THEN
3987 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3988 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Dlv_Dtl_Level_Charge',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
3989 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3990 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Dlv_Dtl_Level_Charge');
3991
3992
3993
3994 END Insert_Dlv_Dtl_Level_Charge;
3995
3996 --Inserts a trip level charge record
3997
3998 PROCEDURE Insert_Trip_Level_Charge(
3999 p_charge_type IN NUMBER,
4000 p_line_type_code IN VARCHAR2,
4001 p_charge IN NUMBER,
4002 p_unit_charge IN NUMBER,
4003 p_freight_rec IN FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type,
4004 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
4005 x_output_cost_tab IN OUT NOCOPY
4006 FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type,
4007 x_return_status OUT NOCOPY Varchar2) IS
4008
4009 l_freight_rec FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type;
4010 l_freight_cost_type_id NUMBER;
4011 l_freight_cost_id NUMBER;
4012 l_return_status VARCHAR2(1);
4013
4014
4015 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
4016
4017 l_warning_count NUMBER:=0;
4018 BEGIN
4019
4020 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
4021 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Insert_Trip_Level_Charge','start');
4022
4023
4024 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4025
4026 l_freight_rec:=p_freight_rec;
4027 l_freight_rec.freight_cost_type_id:=p_charge_type;
4028 l_freight_rec.unit_amount:=p_charge;
4029 l_freight_rec.total_amount:=p_charge;
4030 l_freight_rec.line_type_code:=p_line_type_code;
4031 l_freight_rec.charge_unit_value:=p_unit_charge;
4032
4033 Insert_Charge_Rec(
4034 p_freight_rec=> l_freight_rec,
4035 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4036 x_output_cost_tab=> x_output_cost_tab ,
4037 x_freight_cost_id=> l_freight_cost_id,
4038 x_return_status=> l_return_status);
4039
4040 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4041 THEN
4042 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4043 THEN
4044 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_charge_rec_fail;
4045 END IF;
4046 END IF;
4047
4048 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Trip_Level_Charge');
4049
4050 IF (l_warning_count > 0)
4051 THEN
4052 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
4053 END IF;
4054 EXCEPTION
4055 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_charge_rec_fail THEN
4056 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4057 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Trip_Level_Charge',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_charge_rec_fail');
4058 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Trip_Level_Charge');
4059
4060
4061 WHEN others THEN
4062 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4063 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Trip_Level_Charge',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
4064 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4065 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Trip_Level_Charge');
4066
4067
4068
4069 END Insert_Trip_Level_Charge;
4070
4071 -- Inserta a stop level charge record
4072
4073 PROCEDURE Insert_Stop_Level_Charge(
4074 p_charge_type IN NUMBER,
4075 p_line_type_code IN VARCHAR2,
4076 p_charge IN NUMBER,
4077 p_unit_charge IN NUMBER,
4078 p_freight_rec IN FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type,
4079 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
4080 x_output_cost_tab IN OUT NOCOPY
4081 FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type ,
4082 x_return_status OUT NOCOPY Varchar2) IS
4083
4084 l_freight_rec FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type;
4085 l_freight_cost_type_id NUMBER;
4086 l_freight_cost_id NUMBER;
4087 l_return_status VARCHAR2(1);
4088
4089
4090 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
4091
4092 l_warning_count NUMBER:=0;
4093 BEGIN
4094
4095 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
4096 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Insert_Stop_Level_Charge','start');
4097
4098
4099 l_freight_rec:=p_freight_rec;
4100 l_freight_rec.freight_cost_type_id:=p_charge_type;
4101 l_freight_rec.unit_amount:=p_charge;
4102 l_freight_rec.total_amount:=p_charge;
4103 l_freight_rec.line_type_code:=p_line_type_code;
4104 l_freight_rec.charge_unit_value:=p_unit_charge;
4105
4106 Insert_Charge_Rec(
4107 p_freight_rec=> l_freight_rec,
4108 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4109 x_output_cost_tab=> x_output_cost_tab ,
4110 x_freight_cost_id=> l_freight_cost_id,
4111 x_return_status=> l_return_status);
4112
4113 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4114 THEN
4115 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4116 THEN
4117 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_charge_rec_fail;
4118 END IF;
4119 END IF;
4120
4121 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Stop_Level_Charge');
4122
4123 IF (l_warning_count > 0)
4124 THEN
4125 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
4126 END IF;
4127 EXCEPTION
4128 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_charge_rec_fail THEN
4129 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4130 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Stop_Level_Charge',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_charge_rec_fail');
4131 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Stop_Level_Charge');
4132
4133 WHEN others THEN
4134 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4135 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Stop_Level_Charge',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
4136 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4137 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Stop_Level_Charge');
4138
4139
4140
4141 END Insert_Stop_Level_Charge;
4142
4143
4144 --Inserts a delivery leg level charge record
4145
4146 PROCEDURE Insert_Dleg_Level_Charge(
4147 p_charge_type IN NUMBER,
4148 p_line_type_code IN VARCHAR2,
4149 p_charge IN NUMBER,
4150 p_unit_charge IN NUMBER,
4151 p_freight_rec IN FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type,
4152 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
4153 x_output_cost_tab IN OUT NOCOPY FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type,
4154 x_return_status OUT NOCOPY Varchar2) IS
4155
4156 l_freight_rec FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type;
4157 l_freight_cost_type_id NUMBER;
4158 l_freight_cost_id NUMBER;
4159 l_return_status VARCHAR2(1);
4160
4161
4162 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
4163
4164 l_warning_count NUMBER:=0;
4165 BEGIN
4166
4167 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
4168 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Insert_Dleg_Level_Charge','start');
4169
4170
4171 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4172
4173 l_freight_rec:=p_freight_rec;
4174 l_freight_rec.freight_cost_type_id:=p_charge_type;
4175 l_freight_rec.unit_amount:=p_charge;
4176 l_freight_rec.total_amount:=p_charge;
4177 l_freight_rec.line_type_code:=p_line_type_code;
4178 l_freight_rec.charge_unit_value:=p_unit_charge;
4179
4180 Insert_Charge_Rec(
4181 p_freight_rec=> l_freight_rec,
4182 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4183 x_output_cost_tab=> x_output_cost_tab ,
4184 x_freight_cost_id=> l_freight_cost_id,
4185 x_return_status=> l_return_status);
4186
4187 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4188 THEN
4189 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4190 THEN
4191 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_charge_rec_fail;
4192 END IF;
4193 END IF;
4194
4195 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Dleg_Level_Charge');
4196
4197 IF (l_warning_count > 0)
4198 THEN
4199 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
4200 END IF;
4201 EXCEPTION
4202 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_charge_rec_fail THEN
4203 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4204 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Dleg_Level_Charge',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_charge_rec_fail');
4205 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Dleg_Level_Charge');
4206
4207
4208 WHEN others THEN
4209 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4210 FTE_FREIGHT_PRICING_UTIL.set_exception('Insert_Dleg_Level_Charge',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
4211 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4212 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Insert_Dleg_Level_Charge');
4213
4214
4215
4216 END Insert_Dleg_Level_Charge;
4217
4218 --Gets the SUMMARY cost associated with a given stop
4219
4220 PROCEDURE Get_Total_Stop_Cost(
4221 p_stop_charges_rec IN FTE_TL_CACHE.TL_TRIP_STOP_OUTPUT_REC_TYPE,
4222 p_currency IN VARCHAR2,
4223 x_charge IN OUT NOCOPY NUMBER,
4224 x_return_status OUT NOCOPY Varchar2) IS
4225
4226 l_charge NUMBER;
4227 l_return_status VARCHAR2(1);
4228
4229 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
4230
4231 l_warning_count NUMBER:=0;
4232 BEGIN
4233
4234 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
4235 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Get_Total_Stop_Cost','start');
4236
4237
4238 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4239
4240 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'DBG-1');
4241 x_charge:=0;
4242 x_charge:=x_charge+
4243 NVL(p_stop_charges_rec.weekday_layover_chrg,0);
4244 x_charge:=x_charge+
4245 NVL(p_stop_charges_rec.weekend_layover_chrg,0);
4246 x_charge:=x_charge+ NVL(p_stop_charges_rec.loading_chrg,0);
4247 x_charge:=x_charge+ NVL(p_stop_charges_rec.ast_loading_chrg,0);
4248 x_charge:=x_charge+ NVL(p_stop_charges_rec.unloading_chrg,0);
4249 x_charge:=x_charge+
4250 NVL(p_stop_charges_rec.ast_unloading_chrg,0);
4251 x_charge:=x_charge+ NVL(p_stop_charges_rec.origin_surchrg,0);
4252 x_charge:=x_charge+
4253 NVL(p_stop_charges_rec.destination_surchrg,0);
4254
4255 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'DBG-2');
4256 IF (p_stop_charges_rec.fac_loading_chrg = 0)
4257 THEN
4258 l_charge:=0;
4259 ELSE
4260 l_charge:=GL_CURRENCY_API.convert_amount(
4261 p_stop_charges_rec.fac_currency,
4262 p_currency,
4263 SYSDATE,
4264 'Corporate',
4265 p_stop_charges_rec.fac_loading_chrg
4266 );
4267 END IF;
4268
4269 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'DBG-3');
4270 IF (l_charge IS NULL)
4271 THEN
4272 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
4273
4274
4275 END IF;
4276 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'DBG-4');
4277 x_charge:=x_charge+ NVL(l_charge,0);
4278
4279 IF (p_stop_charges_rec.fac_ast_loading_chrg =0)
4280 THEN
4281 l_charge:=0;
4282 ELSE
4283 l_charge:=GL_CURRENCY_API.convert_amount(
4284 p_stop_charges_rec.fac_currency,
4285 p_currency,
4286 SYSDATE,
4287 'Corporate',
4288 p_stop_charges_rec.fac_ast_loading_chrg
4289 );
4290 END IF;
4291 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'DBG-5');
4292 IF (l_charge IS NULL)
4293 THEN
4294 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
4295
4296
4297 END IF;
4298 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'DBG-6');
4299 x_charge:=x_charge+ NVL(l_charge,0);
4300
4301 IF (p_stop_charges_rec.fac_unloading_chrg = 0)
4302 THEN
4303 l_charge:=0;
4304 ELSE
4305 l_charge:=GL_CURRENCY_API.convert_amount(
4306 p_stop_charges_rec.fac_currency,
4307 p_currency,
4308 SYSDATE,
4309 'Corporate',
4310 p_stop_charges_rec.fac_unloading_chrg
4311 );
4312 END IF;
4313 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'DBG-7');
4314 IF (l_charge IS NULL)
4315 THEN
4316 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
4317
4318
4319 END IF;
4320 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'DBG-8');
4321 x_charge:=x_charge+ NVL(l_charge,0);
4322
4323 IF (p_stop_charges_rec.fac_ast_unloading_chrg = 0)
4324 THEN
4325 l_charge:=0;
4326 ELSE
4327 l_charge:=GL_CURRENCY_API.convert_amount(
4328 p_stop_charges_rec.fac_currency,
4329 p_currency,
4330 SYSDATE,
4331 'Corporate',
4332 p_stop_charges_rec.fac_ast_unloading_chrg
4333 );
4334
4335 END IF;
4336 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'DBG-9');
4337 IF (l_charge IS NULL)
4338 THEN
4339 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
4340
4341 END IF;
4342 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'DBG-10');
4343 x_charge:=x_charge+ NVL(l_charge,0);
4344
4345 IF ( p_stop_charges_rec.fac_handling_chrg = 0)
4346 THEN
4347 l_charge:=0;
4348
4349 ELSE
4350
4351 l_charge:=GL_CURRENCY_API.convert_amount(
4352 p_stop_charges_rec.fac_currency,
4353 p_currency,
4354 SYSDATE,
4355 'Corporate',
4356 p_stop_charges_rec.fac_handling_chrg
4357 );
4358
4359 END IF;
4360 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'DBG-11');
4361 IF (l_charge IS NULL)
4362 THEN
4363 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
4364
4365 END IF;
4366 x_charge:=x_charge+ NVL(l_charge,0);
4367
4368 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Total_Stop_Cost');
4369
4370 IF (l_warning_count > 0)
4371 THEN
4372 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
4373 END IF;
4374 EXCEPTION
4375 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail THEN
4376 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4377 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Total_Stop_Cost',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_conv_currency_fail');
4378 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Total_Stop_Cost');
4379
4380
4381 WHEN others THEN
4382 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4383 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Total_Stop_Cost',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
4384 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4385 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Total_Stop_Cost');
4386
4387
4388 END Get_Total_Stop_Cost;
4389
4390 --Gets the SUMMARY cost associated with a given trip
4391
4392 PROCEDURE Get_Total_Trip_Cost(
4393 p_trip_index IN NUMBER,
4394 p_trip_charges_rec IN FTE_TL_CACHE.TL_TRIP_OUTPUT_REC_TYPE,
4395 p_stop_charges_tab IN FTE_TL_CACHE.TL_TRIP_STOP_OUTPUT_TAB_TYPE,
4396 x_charge IN OUT NOCOPY NUMBER,
4397 x_return_status OUT NOCOPY Varchar2) IS
4398
4399 i NUMBER;
4400 l_charge NUMBER;
4401 l_currency VARCHAR2(30);
4402 l_stop_charge NUMBER;
4403
4404 l_return_status VARCHAR2(1);
4405
4406 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
4407
4408 l_warning_count NUMBER:=0;
4409 BEGIN
4410
4411 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
4412 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Get_Total_Trip_Cost','start');
4413
4414
4415 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4416
4417 l_currency:=FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).currency;
4418
4419 x_charge:=0;
4420
4421 x_charge:=x_charge+ NVL(p_trip_charges_rec.base_dist_load_chrg,0);
4422 x_charge:=x_charge+ NVL(p_trip_charges_rec.base_dist_unload_chrg,0);
4423 x_charge:=x_charge+ NVL(p_trip_charges_rec.base_unit_chrg,0);
4424 x_charge:=x_charge+ NVL(p_trip_charges_rec.base_time_chrg,0);
4425 x_charge:=x_charge+ NVL(p_trip_charges_rec.base_flat_chrg,0);
4426 x_charge:=x_charge+ NVL(p_trip_charges_rec.stop_off_chrg,0);
4427 x_charge:=x_charge+ NVL(p_trip_charges_rec.out_of_route_chrg,0);
4428 --x_charge:=x_charge+ NVL(p_trip_charges_rec.document_chrg,0);
4429 x_charge:=x_charge+ NVL(p_trip_charges_rec.handling_chrg,0);
4430
4431 x_charge:=x_charge+ NVL(p_trip_charges_rec.fuel_chrg,0);
4432
4433 i:=p_stop_charges_tab.FIRST;
4434 WHILE(i IS NOT NULL)
4435 LOOP
4436
4437
4438 Get_Total_Stop_Cost(
4439 p_stop_charges_rec=> p_stop_charges_tab(i),
4440 p_currency=> l_currency,
4441 x_charge=> l_stop_charge,
4442 x_return_status=> l_return_status);
4443
4444
4445 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4446 THEN
4447 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4448 THEN
4449 raise FTE_FREIGHT_PRICING_UTIL.g_tl_get_tot_stop_cost_fail;
4450 END IF;
4451 END IF;
4452
4453 x_charge:=x_charge+l_stop_charge;
4454 i:=p_stop_charges_tab.NEXT(i);
4455
4456 END LOOP;
4457
4458 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Total_Trip_Cost');
4459
4460 IF (l_warning_count > 0)
4461 THEN
4462 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
4463 END IF;
4464 EXCEPTION
4465 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_get_tot_stop_cost_fail THEN
4466 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4467 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Total_Trip_Cost',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_get_tot_stop_cost_fail');
4468 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Total_Trip_Cost');
4469
4470
4471 WHEN others THEN
4472 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4473 FTE_FREIGHT_PRICING_UTIL.set_exception('Get_Total_Trip_Cost',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
4474 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4475 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Get_Total_Trip_Cost');
4476
4477
4478 END Get_Total_Trip_Cost;
4479
4480
4481 --Creates Charges at the trip level once cost allocation is complete
4482
4483 PROCEDURE Create_Trip_Level_Price_Recs(
4484 p_trip_index IN NUMBER,
4485 p_trip_charges_rec IN FTE_TL_CACHE.TL_TRIP_OUTPUT_REC_TYPE,
4486 p_stop_charges_tab IN FTE_TL_CACHE.TL_TRIP_STOP_OUTPUT_TAB_TYPE,
4487 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
4488 x_output_cost_tab IN OUT NOCOPY
4489 FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type,
4490 x_return_status OUT NOCOPY Varchar2) IS
4491
4492 l_total_trip_charge NUMBER;
4493 l_unit_freight_code NUMBER;
4494
4495 l_freight_rec_common FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type;
4496
4497 l_return_status VARCHAR2(1);
4498
4499 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
4500
4501 l_warning_count NUMBER:=0;
4502 BEGIN
4503
4504 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
4505 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Create_Trip_Level_Price_Recs','start');
4506
4507
4508 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4509 IF (p_trip_charges_rec.total_trip_rate IS NOT NULL)
4510 THEN
4511
4512 Get_Total_Trip_Cost(
4513 p_trip_index=> p_trip_index,
4514 p_trip_charges_rec=> p_trip_charges_rec,
4515 p_stop_charges_tab=> p_stop_charges_tab,
4516 x_charge=> l_total_trip_charge,
4517 x_return_status=> l_return_status);
4518
4519 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4520 THEN
4521 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4522 THEN
4523 raise FTE_FREIGHT_PRICING_UTIL.g_tl_get_tot_trp_cost_fail;
4524 END IF;
4525 END IF;
4526 ELSE
4527
4528 l_total_trip_charge:=p_trip_charges_rec.total_trip_rate;
4529
4530 END IF;
4531
4532
4533 --Populate values that are common for all pricing records
4534
4535 l_freight_rec_common.currency_code:=
4536 FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).currency;
4537 l_freight_rec_common.trip_id:=p_trip_charges_rec.trip_id;
4538 l_freight_rec_common.charge_source_code:='PRICING_ENGINE';
4539 IF (p_cost_allocation_parameters.output_type='T')
4540 THEN
4541 l_freight_rec_common.estimated_flag:='Y';
4542 ELSE
4543 l_freight_rec_common.estimated_flag:='N';
4544 END IF;
4545 l_freight_rec_common.lane_id:=
4546 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).lane_id;
4547 l_freight_rec_common.schedule_id:=
4548 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).schedule_id;
4549 l_freight_rec_common.service_type_code:=
4550 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).service_type;
4551 l_freight_rec_common.creation_date := SYSDATE;
4552 l_freight_rec_common.created_by := FND_GLOBAL.USER_ID;
4553 l_freight_rec_common.last_update_date := sysdate;
4554 l_freight_rec_common.last_updated_by := FND_GLOBAL.USER_ID;
4555 l_freight_rec_common.last_update_login := FND_GLOBAL.LOGIN_ID;
4556
4557 l_freight_rec_common.vehicle_type_id:=FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).vehicle_type;
4558
4559 --All the common values for the records are now populated;
4560
4561 --Total trip charge
4562
4563 Insert_Trip_Level_Charge(
4564 p_charge_type=> g_tl_freight_codes(C_SUMMARY).fte_summary_code_id,
4565 p_line_type_code=> 'SUMMARY',
4566 p_charge=> l_total_trip_charge,
4567 p_unit_charge=> NULL,
4568 p_freight_rec=> l_freight_rec_common,
4569 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4570 x_output_cost_tab=> x_output_cost_tab,
4571 x_return_status=> l_return_status);
4572
4573 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4574 THEN
4575 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4576 THEN
4577 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_tot_trp_chrg_fail;
4578 END IF;
4579 END IF;
4580
4581
4582 --base_dist_load_chrg
4583
4584
4585 Insert_Trip_Level_Charge(
4586 p_charge_type=> g_tl_freight_codes(C_LOADED_DISTANCE_RT).fte_summary_code_id,
4587 p_line_type_code=> 'SUMMARY',
4588 p_charge=> p_trip_charges_rec.base_dist_load_chrg,
4589 p_unit_charge=> p_trip_charges_rec.base_dist_load_unit_chrg,
4590 p_freight_rec=> l_freight_rec_common,
4591 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4592 x_output_cost_tab=> x_output_cost_tab,
4593 x_return_status=> x_return_status);
4594
4595 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4596 THEN
4597 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4598 THEN
4599 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dist_ld_trp_chrg_fail;
4600 END IF;
4601 END IF;
4602
4603
4604
4605 --base_dist_unload_chrg
4606
4607
4608 Insert_Trip_Level_Charge(
4609 p_charge_type=> g_tl_freight_codes(C_UNLOADED_DISTANCE_RT).fte_summary_code_id,
4610 p_line_type_code=> 'SUMMARY',
4611 p_charge=> p_trip_charges_rec.base_dist_unload_chrg,
4612 p_unit_charge=> p_trip_charges_rec.base_dist_unload_unit_chrg,
4613 p_freight_rec=> l_freight_rec_common,
4614 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4615 x_output_cost_tab=> x_output_cost_tab,
4616 x_return_status=> l_return_status);
4617
4618 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4619 THEN
4620 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4621 THEN
4622 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dist_ud_trp_chrg_fail;
4623 END IF;
4624 END IF;
4625
4626
4627 --base_unit_chrg
4628
4629 IF(FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).unit_basis=FTE_RTG_GLOBALS.G_CARRIER_WEIGHT_BASIS
4630 )
4631 THEN
4632 l_unit_freight_code:=
4633 g_tl_freight_codes(C_UNIT_WEIGHT_RT).fte_summary_code_id;
4634
4635 ELSIF
4636 (FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).unit_basis=FTE_RTG_GLOBALS.G_CARRIER_VOLUME_BASIS)
4637 THEN
4638 l_unit_freight_code:=
4639 g_tl_freight_codes(C_UNIT_VOLUME_RT).fte_summary_code_id;
4640
4641 ELSIF
4642 (FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).unit_basis=FTE_RTG_GLOBALS.G_CARRIER_CONTAINER_BASIS)
4643 THEN
4644 l_unit_freight_code:=
4645 g_tl_freight_codes(C_UNIT_CONTAINER_RT).fte_summary_code_id;
4646
4647 ELSIF
4648 (FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).unit_basis=FTE_RTG_GLOBALS.G_CARRIER_PALLET_BASIS)
4649 THEN
4650 l_unit_freight_code:=
4651 g_tl_freight_codes(C_UNIT_PALLET_RT).fte_summary_code_id;
4652
4653 ELSE
4654 FTE_FREIGHT_PRICING_UTIL.setmsg (
4655 p_api=>'Create_Trip_Level_Price_Recs',
4656 p_exc=>'g_tl_no_carr_unit_basis',
4657 p_carrier_id=> FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).carrier_id);
4658
4659 raise FTE_FREIGHT_PRICING_UTIL.g_tl_no_carr_unit_basis;
4660
4661 END IF;
4662
4663
4664 Insert_Trip_Level_Charge(
4665 p_charge_type=> l_unit_freight_code,
4666 p_line_type_code=> 'SUMMARY',
4667 p_charge=> p_trip_charges_rec.base_unit_chrg,
4668 p_unit_charge=> p_trip_charges_rec.base_unit_unit_chrg,
4669 p_freight_rec=> l_freight_rec_common,
4670 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4671 x_output_cost_tab=> x_output_cost_tab,
4672 x_return_status=> l_return_status
4673 );
4674
4675
4676 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4677 THEN
4678 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4679 THEN
4680 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_unit_trp_chrg_fail;
4681 END IF;
4682 END IF;
4683
4684 --base_time_chrg
4685
4686 Insert_Trip_Level_Charge(
4687 p_charge_type=> g_tl_freight_codes(C_TIME_RT).fte_summary_code_id,
4688 p_line_type_code=> 'SUMMARY',
4689 p_charge=> p_trip_charges_rec.base_time_chrg,
4690 p_unit_charge=> p_trip_charges_rec.base_time_unit_chrg,
4691 p_freight_rec=> l_freight_rec_common,
4692 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4693 x_output_cost_tab=> x_output_cost_tab,
4694 x_return_status=> l_return_status);
4695
4696 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4697 THEN
4698 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4699 THEN
4700 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_time_trp_chrg_fail;
4701 END IF;
4702 END IF;
4703
4704
4705 --base_flat_chrg
4706
4707
4708 Insert_Trip_Level_Charge(
4709 p_charge_type=> g_tl_freight_codes(C_FLAT_RT).fte_summary_code_id,
4710 p_line_type_code=> 'SUMMARY',
4711 p_charge=> p_trip_charges_rec.base_flat_chrg,
4712 p_unit_charge=> NULL,
4713 p_freight_rec=> l_freight_rec_common,
4714 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4715 x_output_cost_tab=> x_output_cost_tab,
4716 x_return_status=> l_return_status);
4717
4718 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4719 THEN
4720 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4721 THEN
4722 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_flat_trp_chrg_fail;
4723 END IF;
4724 END IF;
4725
4726 --stop_off_chrg
4727
4728 Insert_Trip_Level_Charge(
4729 p_charge_type=> g_tl_freight_codes(C_STOP_OFF_CHRG).fte_summary_code_id,
4730 p_line_type_code=> 'SUMMARY',
4731 p_charge=> p_trip_charges_rec.stop_off_chrg,
4732 p_unit_charge=> NULL,
4733 p_freight_rec=> l_freight_rec_common,
4734 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4735 x_output_cost_tab=> x_output_cost_tab,
4736 x_return_status=> l_return_status);
4737
4738 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4739 THEN
4740 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4741 THEN
4742 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_stpoff_trp_chrg_fail;
4743 END IF;
4744 END IF;
4745
4746
4747 --out_of_route_chrg
4748
4749
4750
4751
4752
4753 Insert_Trip_Level_Charge(
4754 p_charge_type=> g_tl_freight_codes(C_OUT_OF_ROUTE_CHRG).fte_summary_code_id,
4755 p_line_type_code=> 'SUMMARY',
4756 p_charge=> p_trip_charges_rec.out_of_route_chrg,
4757 p_unit_charge=> NULL,
4758 p_freight_rec=> l_freight_rec_common,
4759 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4760 x_output_cost_tab=> x_output_cost_tab,
4761 x_return_status=> l_return_status);
4762
4763 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4764 THEN
4765 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4766 THEN
4767 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_outrt_trp_chrg_fail;
4768 END IF;
4769 END IF;
4770
4771
4772 --document_chrg
4773 --
4774 /*
4775 Insert_Trip_Level_Charge(
4776 g_tl_freight_codes(C_DOCUMENT_CHRG).fte_summary_code_id,
4777 'SUMMARY',
4778 p_trip_charges_rec.document_chrg,
4779 NULL,
4780 l_freight_rec_common,
4781 p_cost_allocation_parameters,
4782 x_output_cost_tab);
4783 */
4784 --handling_chrg
4785
4786
4787
4788 Insert_Trip_Level_Charge(
4789 p_charge_type=> g_tl_freight_codes(C_HANDLING_CHRG).fte_summary_code_id,
4790 p_line_type_code=>'SUMMARY',
4791 p_charge=> p_trip_charges_rec.handling_chrg,
4792 p_unit_charge=> NULL,
4793 p_freight_rec=> l_freight_rec_common,
4794 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4795 x_output_cost_tab=> x_output_cost_tab,
4796 x_return_status=> l_return_status);
4797
4798 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4799 THEN
4800 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4801 THEN
4802 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_hndl_trp_chrg_fail;
4803 END IF;
4804 END IF;
4805
4806 --fuel_chrg
4807
4808 Insert_Trip_Level_Charge(
4809 p_charge_type=> g_tl_freight_codes(C_FUEL_CHRG).fte_summary_code_id,
4810 p_line_type_code=>'SUMMARY',
4811 p_charge=> p_trip_charges_rec.fuel_chrg,
4812 p_unit_charge=> NULL,
4813 p_freight_rec=> l_freight_rec_common,
4814 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4815 x_output_cost_tab=> x_output_cost_tab,
4816 x_return_status=> l_return_status);
4817
4818 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4819 THEN
4820 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4821 THEN
4822 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_fuel_trp_chrg_fail;
4823 END IF;
4824 END IF;
4825
4826
4827
4828
4829 --cm_discount_percent
4830 --cm_discount_value
4831
4832
4833 Insert_Trip_Level_Charge(
4834 p_charge_type=> g_tl_freight_codes(C_CONTINUOUS_MOVE_DISCOUNT).fte_summary_code_id,
4835 p_line_type_code=> 'DISCOUNT',
4836 p_charge=> p_trip_charges_rec.cm_discount_value,
4837 p_unit_charge=> NULL,
4838 p_freight_rec=> l_freight_rec_common,
4839 p_cost_allocation_parameters=> p_cost_allocation_parameters,
4840 x_output_cost_tab=> x_output_cost_tab,
4841 x_return_status=> l_return_status);
4842
4843 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
4844 THEN
4845 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
4846 THEN
4847 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_cmdisc_trp_chrg_fail;
4848 END IF;
4849 END IF;
4850
4851 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4852
4853 IF (l_warning_count > 0)
4854 THEN
4855 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
4856 END IF;
4857 EXCEPTION
4858 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_get_tot_trp_cost_fail THEN
4859 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4860 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_get_tot_trp_cost_fail');
4861 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4862
4863 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_fuel_trp_chrg_fail THEN
4864 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4865 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_fuel_trp_chrg_fail');
4866 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4867
4868
4869
4870 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_tot_trp_chrg_fail THEN
4871 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4872 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_tot_trp_chrg_fail');
4873 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4874
4875 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dist_ld_trp_chrg_fail THEN
4876 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4877 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_dist_ld_trp_chrg_fail');
4878 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4879
4880 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dist_ud_trp_chrg_fail THEN
4881 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4882 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_dist_ud_trp_chrg_fail');
4883 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4884
4885 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_no_carr_unit_basis THEN
4886 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4887 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_no_carr_unit_basis');
4888 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4889
4890 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_unit_trp_chrg_fail THEN
4891 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4892 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_unit_trp_chrg_fail');
4893 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4894
4895 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_time_trp_chrg_fail THEN
4896 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4897 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_time_trp_chrg_fail');
4898 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4899
4900 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_flat_trp_chrg_fail THEN
4901 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4902 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_flat_trp_chrg_fail');
4903 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4904
4905 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_stpoff_trp_chrg_fail THEN
4906 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4907 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_stpoff_trp_chrg_fail');
4908 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4909
4910 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_outrt_trp_chrg_fail THEN
4911 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4912 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_outrt_trp_chrg_fail');
4913 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4914
4915
4916 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_hndl_trp_chrg_fail THEN
4917 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4918 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_hndl_trp_chrg_fail');
4919 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4920
4921 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_cmdisc_trp_chrg_fail THEN
4922 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4923 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_cmdisc_trp_chrg_fail');
4924 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4925
4926 WHEN others THEN
4927 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4928 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Trip_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
4929 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4930 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Trip_Level_Price_Recs');
4931
4932
4933 END Create_Trip_Level_Price_Recs;
4934
4935 --Charges at the stop level once cost allocation is complete
4936
4937 PROCEDURE Create_Stop_Level_Price_Recs(
4938 p_trip_index IN NUMBER,
4939 p_stop_charges_rec IN FTE_TL_CACHE.TL_TRIP_STOP_OUTPUT_REC_TYPE,
4940 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
4941 x_output_cost_tab IN OUT NOCOPY FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type,
4942 x_return_status OUT NOCOPY Varchar2) IS
4943
4944 l_currency VARCHAR2(30);
4945 l_freight_rec_common FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type;
4946 l_total_stop_charge NUMBER;
4947 l_charge NUMBER;
4948
4949 l_return_status VARCHAR2(1);
4950
4951 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
4952
4953 l_warning_count NUMBER:=0;
4954 BEGIN
4955
4956 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
4957 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Create_Stop_Level_Price_Recs','start');
4958
4959
4960 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4961
4962 l_currency:=FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).currency;
4963
4964 --Populate values that are common for all pricing records
4965
4966 l_freight_rec_common.currency_code:=
4967 FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).currency;
4968 l_freight_rec_common.stop_id:=p_stop_charges_rec.stop_id;
4969 l_freight_rec_common.charge_source_code:='PRICING_ENGINE';
4970 IF (p_cost_allocation_parameters.output_type='T')
4971 THEN
4972 l_freight_rec_common.estimated_flag:='Y';
4973 ELSE
4974 l_freight_rec_common.estimated_flag:='N';
4975 END IF;
4976 l_freight_rec_common.lane_id:=
4977 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).lane_id;
4978 l_freight_rec_common.schedule_id:=
4979 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).schedule_id;
4980 l_freight_rec_common.service_type_code:=
4981 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).service_type;
4982 l_freight_rec_common.creation_date := SYSDATE;
4983 l_freight_rec_common.created_by := FND_GLOBAL.USER_ID;
4984 l_freight_rec_common.last_update_date := sysdate;
4985 l_freight_rec_common.last_updated_by := FND_GLOBAL.USER_ID;
4986 l_freight_rec_common.last_update_login := FND_GLOBAL.LOGIN_ID;
4987
4988 l_freight_rec_common.vehicle_type_id:=FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).vehicle_type;
4989
4990 --All the common values for the records are now populated;
4991
4992 --Total Stop charges
4993
4994 Get_Total_Stop_Cost(
4995 p_stop_charges_rec=> p_stop_charges_rec ,
4996 p_currency=> l_currency,
4997 x_charge=> l_total_stop_charge,
4998 x_return_status=> l_return_status);
4999
5000 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5001 THEN
5002 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5003 THEN
5004 raise FTE_FREIGHT_PRICING_UTIL.g_tl_get_tot_stop_cost_fail;
5005 END IF;
5006 END IF;
5007
5008 Insert_Stop_Level_Charge(
5009 p_charge_type=> g_tl_freight_codes(C_SUMMARY).fte_summary_code_id,
5010 p_line_type_code=> 'SUMMARY',
5011 p_charge=> l_total_stop_charge,
5012 p_unit_charge=>NULL,
5013 p_freight_rec=>l_freight_rec_common,
5014 p_cost_allocation_parameters=> p_cost_allocation_parameters,
5015 x_output_cost_tab=> x_output_cost_tab,
5016 x_return_status=> l_return_status);
5017
5018 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5019 THEN
5020 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5021 THEN
5022 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_tot_stp_chrg_fail;
5023 END IF;
5024 END IF;
5025
5026
5027 --weekday_layover_chrg
5028
5029 Insert_Stop_Level_Charge(
5030 p_charge_type=> g_tl_freight_codes(C_WEEKDAY_LAYOVER_CHRG).fte_summary_code_id,
5031 p_line_type_code=>'SUMMARY',
5032 p_charge=>p_stop_charges_rec.weekday_layover_chrg,
5033 p_unit_charge=> NULL,
5034 p_freight_rec=> l_freight_rec_common,
5035 p_cost_allocation_parameters=> p_cost_allocation_parameters,
5036 x_output_cost_tab=> x_output_cost_tab,
5037 x_return_status=> l_return_status);
5038
5039 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5040 THEN
5041 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5042 THEN
5043 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_wkdayl_stp_chrg_fail;
5044 END IF;
5045 END IF;
5046
5047
5048 --weekend_layover_chrg
5049
5050
5051 Insert_Stop_Level_Charge(
5052 p_charge_type=> g_tl_freight_codes(C_WEEKEND_LAYOVER_CHRG).fte_summary_code_id,
5053 p_line_type_code=> 'SUMMARY',
5054 p_charge=> p_stop_charges_rec.weekend_layover_chrg,
5055 p_unit_charge=> NULL,
5056 p_freight_rec=> l_freight_rec_common,
5057 p_cost_allocation_parameters=> p_cost_allocation_parameters,
5058 x_output_cost_tab=> x_output_cost_tab,
5059 x_return_status=> l_return_status);
5060
5061 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5062 THEN
5063 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5064 THEN
5065 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_wkendl_stp_chrg_fail;
5066 END IF;
5067 END IF;
5068
5069
5070
5071
5072 --loading_chrg
5073
5074
5075 Insert_Stop_Level_Charge(
5076 p_charge_type=> g_tl_freight_codes(C_LOADING_CHRG).fte_summary_code_id,
5077 p_line_type_code=>'SUMMARY',
5078 p_charge=>p_stop_charges_rec.loading_chrg,
5079 p_unit_charge=> NULL,
5080 p_freight_rec=> l_freight_rec_common,
5081 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5082 x_output_cost_tab=> x_output_cost_tab,
5083 x_return_status=> l_return_status);
5084
5085 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5086 THEN
5087 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5088 THEN
5089 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ld_stp_chrg_fail;
5090 END IF;
5091 END IF;
5092
5093
5094 --ast_loading_chrg
5095
5096 Insert_Stop_Level_Charge(
5097 p_charge_type=> g_tl_freight_codes(C_AST_LOADING_CHRG).fte_summary_code_id,
5098 p_line_type_code=> 'SUMMARY',
5099 p_charge=> p_stop_charges_rec.ast_loading_chrg,
5100 p_unit_charge=> NULL,
5101 p_freight_rec=> l_freight_rec_common,
5102 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5103 x_output_cost_tab=> x_output_cost_tab,
5104 x_return_status=> l_return_status);
5105
5106 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5107 THEN
5108 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5109 THEN
5110 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ast_ld_stp_chrg_fail;
5111 END IF;
5112 END IF;
5113
5114
5115 --unloading_chrg
5116
5117
5118
5119
5120
5121 Insert_Stop_Level_Charge(
5122 p_charge_type=> g_tl_freight_codes(C_UNLOADING_CHRG).fte_summary_code_id,
5123 p_line_type_code=> 'SUMMARY',
5124 p_charge=> p_stop_charges_rec.unloading_chrg,
5125 p_unit_charge=> NULL,
5126 p_freight_rec=> l_freight_rec_common,
5127 p_cost_allocation_parameters=> p_cost_allocation_parameters,
5128 x_output_cost_tab=> x_output_cost_tab,
5129 x_return_status=> l_return_status);
5130
5131 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5132 THEN
5133 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5134 THEN
5135 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ud_stp_chrg_fail;
5136 END IF;
5137 END IF;
5138
5139
5140 --ast_unloading_chrg
5141
5142 Insert_Stop_Level_Charge(
5143 p_charge_type=> g_tl_freight_codes(C_AST_UNLOADING_CHRG).fte_summary_code_id,
5144 p_line_type_code=> 'SUMMARY',
5145 p_charge=> p_stop_charges_rec.ast_unloading_chrg,
5146 p_unit_charge=> NULL,
5147 p_freight_rec=> l_freight_rec_common,
5148 p_cost_allocation_parameters=> p_cost_allocation_parameters,
5149 x_output_cost_tab=> x_output_cost_tab,
5150 x_return_status=> l_return_status);
5151
5152 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5153 THEN
5154 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5155 THEN
5156 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ast_ud_stp_chrg_fail;
5157 END IF;
5158 END IF;
5159
5160
5161
5162 --origin_surchrg
5163
5164
5165 Insert_Stop_Level_Charge(
5166 p_charge_type=> g_tl_freight_codes(C_ORIGIN_SURCHRG).fte_summary_code_id,
5167 p_line_type_code=> 'SUMMARY',
5168 p_charge=> p_stop_charges_rec.origin_surchrg,
5169 p_unit_charge=> NULL,
5170 p_freight_rec=> l_freight_rec_common,
5171 p_cost_allocation_parameters=> p_cost_allocation_parameters,
5172 x_output_cost_tab=> x_output_cost_tab,
5173 x_return_status=> l_return_status);
5174
5175 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5176 THEN
5177 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5178 THEN
5179 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_org_stp_chrg_fail;
5180 END IF;
5181 END IF;
5182
5183
5184
5185 --destination_surchrg
5186
5187
5188 Insert_Stop_Level_Charge(
5189 p_charge_type=> g_tl_freight_codes(C_DESTINATION_SURCHRG).fte_summary_code_id,
5190 p_line_type_code=> 'SUMMARY',
5191 p_charge=> p_stop_charges_rec.destination_surchrg,
5192 p_unit_charge=> NULL,
5193 p_freight_rec=> l_freight_rec_common,
5194 p_cost_allocation_parameters=> p_cost_allocation_parameters,
5195 x_output_cost_tab=> x_output_cost_tab,
5196 x_return_status=> l_return_status);
5197
5198 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5199 THEN
5200 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5201 THEN
5202 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dst_stp_chrg_fail;
5203 END IF;
5204 END IF;
5205
5206
5207
5208 --fac_loading_chrg
5209
5210 IF ( p_stop_charges_rec.fac_loading_chrg=0)
5211 THEN
5212 l_charge:=0;
5213 ELSE
5214 l_charge:=GL_CURRENCY_API.convert_amount(
5215 p_stop_charges_rec.fac_currency,
5216 l_currency,
5217 SYSDATE,
5218 'Corporate',
5219 p_stop_charges_rec.fac_loading_chrg
5220 );
5221 END IF;
5222
5223 IF (l_charge IS NULL)
5224 THEN
5225 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
5226
5227 END IF;
5228
5229 Insert_Stop_Level_Charge(
5230 p_charge_type=>g_tl_freight_codes(F_LOADING_CHRG).fte_summary_code_id,
5231 p_line_type_code=>'SUMMARY',
5232 p_charge=>l_charge,
5233 p_unit_charge=>NULL,
5234 p_freight_rec=>l_freight_rec_common,
5235 p_cost_allocation_parameters=>p_cost_allocation_parameters ,
5236 x_output_cost_tab=>x_output_cost_tab,
5237 x_return_status=> l_return_status);
5238
5239
5240 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5241 THEN
5242 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5243 THEN
5244 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_ld_stp_chrg_fail;
5245 END IF;
5246 END IF;
5247
5248
5249 --fac_ast_loading_chrg
5250 IF (p_stop_charges_rec.fac_ast_loading_chrg = 0)
5251 THEN
5252 l_charge:=0;
5253 ELSE
5254 l_charge:=GL_CURRENCY_API.convert_amount(
5255 p_stop_charges_rec.fac_currency,
5256 l_currency,
5257 SYSDATE,
5258 'Corporate',
5259 p_stop_charges_rec.fac_ast_loading_chrg
5260 );
5261 END IF;
5262 IF (l_charge IS NULL)
5263 THEN
5264 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
5265
5266 END IF;
5267
5268 Insert_Stop_Level_Charge(
5269 p_charge_type=>g_tl_freight_codes(F_AST_LOADING_CHRG).fte_summary_code_id,
5270 p_line_type_code=>'SUMMARY',
5271 p_charge=>l_charge,
5272 p_unit_charge=>NULL,
5273 p_freight_rec=>l_freight_rec_common,
5274 p_cost_allocation_parameters=>p_cost_allocation_parameters ,
5275 x_output_cost_tab=>x_output_cost_tab,
5276 x_return_status=> l_return_status);
5277
5278 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5279 THEN
5280 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5281 THEN
5282 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_as_ld_stp_chrg_fail;
5283 END IF;
5284 END IF;
5285
5286
5287 --fac_unloading_chrg
5288 IF (p_stop_charges_rec.fac_unloading_chrg = 0)
5289 THEN
5290 l_charge:=0;
5291 ELSE
5292 l_charge:=GL_CURRENCY_API.convert_amount(
5293 p_stop_charges_rec.fac_currency,
5294 l_currency,
5295 SYSDATE,
5296 'Corporate',
5297 p_stop_charges_rec.fac_unloading_chrg
5298 );
5299 END IF;
5300 IF (l_charge IS NULL)
5301 THEN
5302 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
5303
5304 END IF;
5305
5306 Insert_Stop_Level_Charge(
5307 p_charge_type=>g_tl_freight_codes(F_UNLOADING_CHRG).fte_summary_code_id,
5308 p_line_type_code=>'SUMMARY',
5309 p_charge=>l_charge,
5310 p_unit_charge=>NULL,
5311 p_freight_rec=>l_freight_rec_common,
5312 p_cost_allocation_parameters=>p_cost_allocation_parameters ,
5313 x_output_cost_tab=>x_output_cost_tab,
5314 x_return_status=> l_return_status);
5315
5316 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5317 THEN
5318 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5319 THEN
5320 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_ud_stp_chrg_fail;
5321 END IF;
5322 END IF;
5323
5324 --fac_ast_unloading_chrg
5325 IF ( p_stop_charges_rec.fac_ast_unloading_chrg = 0)
5326 THEN
5327 l_charge:=0;
5328 ELSE
5329 l_charge:=GL_CURRENCY_API.convert_amount(
5330 p_stop_charges_rec.fac_currency,
5331 l_currency,
5332 SYSDATE,
5333 'Corporate',
5334 p_stop_charges_rec.fac_ast_unloading_chrg
5335 );
5336 END IF;
5337 IF (l_charge IS NULL)
5338 THEN
5339 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
5340
5341 END IF;
5342
5343 Insert_Stop_Level_Charge(
5344 p_charge_type=>g_tl_freight_codes(F_AST_UNLOADING_CHRG).fte_summary_code_id,
5345 p_line_type_code=>'SUMMARY',
5346 p_charge=>l_charge,
5347 p_unit_charge=>NULL,
5348 p_freight_rec=>l_freight_rec_common,
5349 p_cost_allocation_parameters=>p_cost_allocation_parameters ,
5350 x_output_cost_tab=>x_output_cost_tab,
5351 x_return_status=> l_return_status);
5352
5353 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5354 THEN
5355 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5356 THEN
5357 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_as_ud_stp_chrg_fail;
5358 END IF;
5359 END IF;
5360
5361
5362 --fac_handling_chrg
5363 IF (p_stop_charges_rec.fac_handling_chrg=0)
5364 THEN
5365 l_charge:=0;
5366 ELSE
5367 l_charge:=GL_CURRENCY_API.convert_amount(
5368 p_stop_charges_rec.fac_currency,
5369 l_currency,
5370 SYSDATE,
5371 'Corporate',
5372 p_stop_charges_rec.fac_handling_chrg
5373 );
5374 END IF;
5375 IF (l_charge IS NULL)
5376 THEN
5377 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
5378 END IF;
5379
5380 Insert_Stop_Level_Charge(
5381 p_charge_type=>g_tl_freight_codes(F_HANDLING_CHRG).fte_summary_code_id,
5382 p_line_type_code=>'SUMMARY',
5383 p_charge=>l_charge,
5384 p_unit_charge=>NULL,
5385 p_freight_rec=>l_freight_rec_common,
5386 p_cost_allocation_parameters=>p_cost_allocation_parameters ,
5387 x_output_cost_tab=>x_output_cost_tab,
5388 x_return_status=> l_return_status);
5389
5390 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5391 THEN
5392 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5393 THEN
5394 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_hndl_stp_chrg_fail;
5395 END IF;
5396 END IF;
5397
5398
5399 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5400 IF (l_warning_count > 0)
5401 THEN
5402 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
5403 END IF;
5404 EXCEPTION
5405 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_get_tot_stop_cost_fail THEN
5406 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5407 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_get_tot_stop_cost_fail');
5408 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5409
5410 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_tot_stp_chrg_fail THEN
5411 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5412 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_tot_stp_chrg_fail');
5413 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5414
5415 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_wkdayl_stp_chrg_fail THEN
5416 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5417 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_wkdayl_stp_chrg_fail');
5418 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5419
5420 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_wkendl_stp_chrg_fail THEN
5421 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5422 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_wkendl_stp_chrg_fail');
5423 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5424
5425 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ld_stp_chrg_fail THEN
5426 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5427 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_ld_stp_chrg_fail');
5428 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5429
5430 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ast_ld_stp_chrg_fail THEN
5431 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5432 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_ast_ld_stp_chrg_fail');
5433 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5434
5435 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ud_stp_chrg_fail THEN
5436 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5437 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_ud_stp_chrg_fail');
5438 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5439
5440 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ast_ud_stp_chrg_fail THEN
5441 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5442 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_ast_ud_stp_chrg_fail');
5443 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5444
5445 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_org_stp_chrg_fail THEN
5446 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5447 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_org_stp_chrg_fail');
5448 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5449
5450 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dst_stp_chrg_fail THEN
5451 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5452 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_dst_stp_chrg_fail');
5453 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5454
5455 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail THEN
5456 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5457 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_conv_currency_fail');
5458 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5459
5460 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_ld_stp_chrg_fail THEN
5461 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5462 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_ld_stp_chrg_fail');
5463 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5464
5465
5466 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_as_ld_stp_chrg_fail THEN
5467 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5468 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_as_ld_stp_chrg_fail');
5469 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5470
5471 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_ud_stp_chrg_fail THEN
5472 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5473 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_ud_stp_chrg_fail');
5474 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5475
5476 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_as_ud_stp_chrg_fail THEN
5477 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5478 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_as_ud_stp_chrg_fail');
5479 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5480
5481 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_hndl_stp_chrg_fail THEN
5482 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5483 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_hndl_stp_chrg_fail');
5484 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5485
5486
5487
5488
5489 WHEN others THEN
5490 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5491 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Stop_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5492 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
5493 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Stop_Level_Price_Recs');
5494
5495
5496
5497 END Create_Stop_Level_Price_Recs;
5498
5499 --Creates stop level charge recs once cost allocation is complete
5500
5501 PROCEDURE Create_Dleg_Level_Price_Recs(
5502 p_trip_index IN NUMBER,
5503 p_dleg_alloc_rec IN TL_dleg_alloc_rec_type,
5504 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
5505 x_output_cost_tab IN OUT NOCOPY
5506 FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type,
5507 x_return_status OUT NOCOPY Varchar2) IS
5508
5509 l_currency VARCHAR2(30);
5510 l_freight_rec_common FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type;
5511 l_unit_freight_code NUMBER;
5512 l_total_dleg_charge NUMBER;
5513 l_charge NUMBER;
5514
5515 l_return_status VARCHAR2(1);
5516
5517 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
5518
5519 l_warning_count NUMBER:=0;
5520 BEGIN
5521
5522 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
5523 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Create_Dleg_Level_Price_Recs','start');
5524
5525
5526 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5527
5528 --Populate values that are common for all pricing records
5529 l_currency:=FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).currency;
5530
5531 l_freight_rec_common.currency_code:=
5532 FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).currency;
5533 l_freight_rec_common.delivery_leg_id:=p_dleg_alloc_rec.delivery_leg_id;
5534 l_freight_rec_common.delivery_id:=p_dleg_alloc_rec.delivery_id;
5535 l_freight_rec_common.charge_source_code:='PRICING_ENGINE';
5536 IF (p_cost_allocation_parameters.output_type='T')
5537 THEN
5538 l_freight_rec_common.estimated_flag:='Y';
5539 ELSE
5540 l_freight_rec_common.estimated_flag:='N';
5541 END IF;
5542 l_freight_rec_common.lane_id:=
5543 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).lane_id;
5544 l_freight_rec_common.schedule_id:=
5545 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).schedule_id;
5546 l_freight_rec_common.service_type_code:=
5547 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).service_type;
5548 l_freight_rec_common.creation_date := SYSDATE;
5549 l_freight_rec_common.created_by := FND_GLOBAL.USER_ID;
5550 l_freight_rec_common.last_update_date := sysdate;
5551 l_freight_rec_common.last_updated_by := FND_GLOBAL.USER_ID;
5552 l_freight_rec_common.last_update_login := FND_GLOBAL.LOGIN_ID;
5553
5554 l_freight_rec_common.vehicle_type_id:=FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).vehicle_type;
5555
5556 --All the common values for the records are now populated;
5557
5558 --Total Dleg charges
5559
5560 Get_Total_Dleg_Cost(
5561 p_trip_index=> p_trip_index,
5562 p_dleg_alloc_rec=> p_dleg_alloc_rec ,
5563 x_charge=> l_total_dleg_charge,
5564 x_return_status=> l_return_status);
5565
5566 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5567 THEN
5568 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5569 THEN
5570 raise FTE_FREIGHT_PRICING_UTIL.g_tl_get_to_dleg_cost_fail;
5571 END IF;
5572 END IF;
5573
5574 Insert_Dleg_Level_Charge(
5575 p_charge_type=>g_tl_freight_codes(C_SUMMARY).fte_summary_code_id,
5576 p_line_type_code=> 'SUMMARY',
5577 p_charge=> l_total_dleg_charge,
5578 p_unit_charge=> NULL,
5579 p_freight_rec=> l_freight_rec_common,
5580 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5581 x_output_cost_tab=> x_output_cost_tab,
5582 x_return_status=> l_return_status);
5583
5584 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5585 THEN
5586 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5587 THEN
5588 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_tot_dlg_chrg_fail;
5589 END IF;
5590 END IF;
5591
5592 /*
5593 --base_dist_load_chrg
5594
5595 Insert_Dleg_Level_Charge(
5596 p_charge_type=>g_tl_freight_codes(C_LOADED_DISTANCE_RT).fte_summary_code_id,
5597 p_line_type_code=> 'SUMMARY',
5598 p_charge=> p_dleg_alloc_rec.base_dist_load_chrg,
5599 p_unit_charge=> p_dleg_alloc_rec.base_dist_load_unit_chrg,
5600 p_freight_rec=> l_freight_rec_common,
5601 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5602 x_output_cost_tab=> x_output_cost_tab,
5603 x_return_status=> l_return_status);
5604
5605
5606 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5607 THEN
5608 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5609 THEN
5610 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dist_ld_dlg_chrg_fail;
5611 END IF;
5612 END IF;
5613
5614
5615
5616 --base_dist_unload_chrg
5617
5618
5619 Insert_Dleg_Level_Charge(
5620 p_charge_type=>g_tl_freight_codes(C_UNLOADED_DISTANCE_RT).fte_summary_code_id,
5621 p_line_type_code=> 'SUMMARY',
5622 p_charge=> p_dleg_alloc_rec.base_dist_unload_chrg,
5623 p_unit_charge=> p_dleg_alloc_rec.base_dist_unload_unit_chrg,
5624 p_freight_rec=> l_freight_rec_common,
5625 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5626 x_output_cost_tab=> x_output_cost_tab,
5627 x_return_status=> l_return_status);
5628
5629 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5630 THEN
5631 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5632 THEN
5633 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dist_ld_dlg_chrg_fail;
5634 END IF;
5635 END IF;
5636
5637
5638
5639 --base_unit_chrg
5640
5641 IF(FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).unit_basis=FTE_RTG_GLOBALS.G_CARRIER_WEIGHT_BASIS
5642 )
5643 THEN
5644 l_unit_freight_code:=
5645 g_tl_freight_codes(C_UNIT_WEIGHT_RT).fte_price_code_id;
5646
5647 ELSIF
5648 (FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).unit_basis=FTE_RTG_GLOBALS.G_CARRIER_VOLUME_BASIS)
5649 THEN
5650 l_unit_freight_code:=
5651 g_tl_freight_codes(C_UNIT_VOLUME_RT).fte_price_code_id;
5652
5653 ELSIF
5654 (FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).unit_basis=FTE_RTG_GLOBALS.G_CARRIER_CONTAINER_BASIS)
5655 THEN
5656 l_unit_freight_code:=
5657 g_tl_freight_codes(C_UNIT_CONTAINER_RT).fte_price_code_id;
5658
5659 ELSIF
5660 (FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).unit_basis=FTE_RTG_GLOBALS.G_CARRIER_PALLET_BASIS)
5661 THEN
5662 l_unit_freight_code:=
5663 g_tl_freight_codes(C_UNIT_PALLET_RT).fte_price_code_id;
5664
5665 ELSE
5666 FTE_FREIGHT_PRICING_UTIL.setmsg (
5667 p_api=>'Create_Trip_Level_Price_Recs',
5668 p_exc=>'g_tl_no_carr_unit_basis',
5669 p_carrier_id=> FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).carrier_id);
5670
5671
5672 raise FTE_FREIGHT_PRICING_UTIL.g_tl_no_carr_unit_basis;
5673
5674 END IF;
5675
5676 Insert_Dleg_Level_Charge(
5677 p_charge_type=>l_unit_freight_code,
5678 p_line_type_code=> 'SUMMARY',
5679 p_charge=> p_dleg_alloc_rec.base_unit_chrg,
5680 p_unit_charge=> p_dleg_alloc_rec.base_unit_unit_chrg,
5681 p_freight_rec=> l_freight_rec_common,
5682 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5683 x_output_cost_tab=> x_output_cost_tab,
5684 x_return_status=> l_return_status);
5685
5686
5687 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5688 THEN
5689 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5690 THEN
5691 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_unit_dlg_chrg_fail;
5692 END IF;
5693 END IF;
5694
5695
5696 --base_time_chrg
5697
5698
5699 Insert_Dleg_Level_Charge(
5700 p_charge_type=>g_tl_freight_codes(C_TIME_RT).fte_summary_code_id,
5701 p_line_type_code=> 'SUMMARY',
5702 p_charge=> p_dleg_alloc_rec.base_time_chrg,
5703 p_unit_charge=> p_dleg_alloc_rec.base_time_unit_chrg,
5704 p_freight_rec=> l_freight_rec_common,
5705 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5706 x_output_cost_tab=> x_output_cost_tab,
5707 x_return_status=> l_return_status);
5708
5709 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5710 THEN
5711 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5712 THEN
5713 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_time_dlg_chrg_fail;
5714 END IF;
5715
5716 END IF;
5717
5718
5719
5720 --base_flat_chrg
5721
5722 Insert_Dleg_Level_Charge(
5723 p_charge_type=>g_tl_freight_codes(C_FLAT_RT).fte_summary_code_id,
5724 p_line_type_code=> 'SUMMARY',
5725 p_charge=> p_dleg_alloc_rec.base_flat_chrg,
5726 p_unit_charge=> NULL,
5727 p_freight_rec=> l_freight_rec_common,
5728 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5729 x_output_cost_tab=> x_output_cost_tab,
5730 x_return_status=> l_return_status);
5731
5732 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5733 THEN
5734 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5735 THEN
5736 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_flat_dlg_chrg_fail;
5737 END IF;
5738
5739 END IF;
5740
5741
5742 --stop_off_chrg
5743
5744
5745 Insert_Dleg_Level_Charge(
5746 p_charge_type=>g_tl_freight_codes(C_STOP_OFF_CHRG).fte_summary_code_id,
5747 p_line_type_code=> 'SUMMARY',
5748 p_charge=> p_dleg_alloc_rec.stop_off_chrg,
5749 p_unit_charge=> NULL,
5750 p_freight_rec=> l_freight_rec_common,
5751 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5752 x_output_cost_tab=> x_output_cost_tab,
5753 x_return_status=> l_return_status);
5754
5755 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5756 THEN
5757 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5758 THEN
5759 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_stpoff_dlg_chrg_fail;
5760 END IF;
5761
5762 END IF;
5763
5764
5765 --out_of_route_chrg
5766
5767 Insert_Dleg_Level_Charge(
5768 p_charge_type=>g_tl_freight_codes(C_OUT_OF_ROUTE_CHRG).fte_summary_code_id,
5769 p_line_type_code=> 'SUMMARY',
5770 p_charge=> p_dleg_alloc_rec.out_of_route_chrg,
5771 p_unit_charge=> NULL,
5772 p_freight_rec=> l_freight_rec_common,
5773 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5774 x_output_cost_tab=> x_output_cost_tab,
5775 x_return_status=> l_return_status);
5776
5777 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5778 THEN
5779 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5780 THEN
5781 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_outrt_dlg_chrg_fail;
5782 END IF;
5783
5784 END IF;
5785
5786
5787
5788 --document_chrg
5789 --
5790
5791 Insert_Dleg_Level_Charge(
5792 g_tl_freight_codes(C_DOCUMENT_CHRG).fte_summary_code_id,
5793 'SUMMARY',
5794 p_dleg_alloc_rec.document_chrg,
5795 NULL,
5796 l_freight_rec_common,
5797 p_cost_allocation_parameters ,
5798 x_output_cost_tab);
5799
5800 --handling_chrg
5801
5802 Insert_Dleg_Level_Charge(
5803 p_charge_type=>g_tl_freight_codes(C_HANDLING_CHRG).fte_summary_code_id,
5804 p_line_type_code=> 'SUMMARY',
5805 p_charge=> p_dleg_alloc_rec.handling_chrg,
5806 p_unit_charge=> NULL,
5807 p_freight_rec=> l_freight_rec_common,
5808 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5809 x_output_cost_tab=> x_output_cost_tab,
5810 x_return_status=> l_return_status);
5811
5812
5813 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5814 THEN
5815 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5816 THEN
5817 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_hndl_dlg_chrg_fail;
5818 END IF;
5819
5820 END IF;
5821
5822
5823 --fuel_chrg
5824
5825 Insert_Dleg_Level_Charge(
5826 p_charge_type=>g_tl_freight_codes(C_FUEL_CHRG).fte_summary_code_id,
5827 p_line_type_code=> 'SUMMARY',
5828 p_charge=> p_dleg_alloc_rec.fuel_chrg,
5829 p_unit_charge=> NULL,
5830 p_freight_rec=> l_freight_rec_common,
5831 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5832 x_output_cost_tab=> x_output_cost_tab,
5833 x_return_status=> l_return_status);
5834
5835
5836 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5837 THEN
5838 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5839 THEN
5840 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_fuel_dlg_chrg_fail;
5841 END IF;
5842
5843 END IF;
5844
5845
5846
5847
5848 --weekday_layover_chrg
5849
5850 Insert_Dleg_Level_Charge(
5851 p_charge_type=>g_tl_freight_codes(C_WEEKDAY_LAYOVER_CHRG).fte_summary_code_id,
5852 p_line_type_code=> 'SUMMARY',
5853 p_charge=> p_dleg_alloc_rec.weekday_layover_chrg,
5854 p_unit_charge=> NULL,
5855 p_freight_rec=> l_freight_rec_common,
5856 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5857 x_output_cost_tab=> x_output_cost_tab,
5858 x_return_status=> l_return_status);
5859
5860 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5861 THEN
5862 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5863 THEN
5864 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_wkdayl_dlg_chrg_fail;
5865 END IF;
5866
5867 END IF;
5868
5869
5870 --weekend_layover_chrg
5871
5872 Insert_Dleg_Level_Charge(
5873 p_charge_type=>g_tl_freight_codes(C_WEEKEND_LAYOVER_CHRG).fte_summary_code_id,
5874 p_line_type_code=> 'SUMMARY',
5875 p_charge=> p_dleg_alloc_rec.weekend_layover_chrg,
5876 p_unit_charge=> NULL,
5877 p_freight_rec=> l_freight_rec_common,
5878 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5879 x_output_cost_tab=> x_output_cost_tab,
5880 x_return_status=> l_return_status);
5881
5882 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5883 THEN
5884 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5885 THEN
5886 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_wkendl_dlg_chrg_fail;
5887 END IF;
5888
5889 END IF;
5890
5891
5892
5893 --loading_chrg
5894
5895 Insert_Dleg_Level_Charge(
5896 p_charge_type=>g_tl_freight_codes(C_LOADING_CHRG).fte_summary_code_id,
5897 p_line_type_code=> 'SUMMARY',
5898 p_charge=> p_dleg_alloc_rec.loading_chrg,
5899 p_unit_charge=> NULL,
5900 p_freight_rec=> l_freight_rec_common,
5901 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5902 x_output_cost_tab=> x_output_cost_tab,
5903 x_return_status=> l_return_status);
5904
5905 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5906 THEN
5907 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5908 THEN
5909 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ld_dlg_chrg_fail;
5910 END IF;
5911
5912 END IF;
5913
5914 --ast_loading_chrg
5915
5916 Insert_Dleg_Level_Charge(
5917 p_charge_type=>g_tl_freight_codes(C_AST_LOADING_CHRG).fte_summary_code_id,
5918 p_line_type_code=> 'SUMMARY',
5919 p_charge=> p_dleg_alloc_rec.ast_loading_chrg,
5920 p_unit_charge=> NULL,
5921 p_freight_rec=> l_freight_rec_common,
5922 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5923 x_output_cost_tab=> x_output_cost_tab,
5924 x_return_status=> l_return_status);
5925
5926
5927 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5928 THEN
5929 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5930 THEN
5931 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_as_ld_dlg_chrg_fail;
5932 END IF;
5933
5934 END IF;
5935
5936
5937 --unloading_chrg
5938
5939 Insert_Dleg_Level_Charge(
5940 p_charge_type=>g_tl_freight_codes(C_UNLOADING_CHRG).fte_summary_code_id,
5941 p_line_type_code=> 'SUMMARY',
5942 p_charge=> p_dleg_alloc_rec.unloading_chrg,
5943 p_unit_charge=> NULL,
5944 p_freight_rec=> l_freight_rec_common,
5945 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5946 x_output_cost_tab=> x_output_cost_tab,
5947 x_return_status=> l_return_status);
5948
5949 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5950 THEN
5951 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5952 THEN
5953 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ud_dlg_chrg_fail;
5954 END IF;
5955
5956 END IF;
5957
5958
5959 --ast_unloading_chrg
5960
5961 Insert_Dleg_Level_Charge(
5962 p_charge_type=>g_tl_freight_codes(C_AST_UNLOADING_CHRG).fte_summary_code_id,
5963 p_line_type_code=> 'SUMMARY',
5964 p_charge=> p_dleg_alloc_rec.ast_unloading_chrg,
5965 p_unit_charge=> NULL,
5966 p_freight_rec=> l_freight_rec_common,
5967 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5968 x_output_cost_tab=> x_output_cost_tab,
5969 x_return_status=> l_return_status);
5970
5971 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5972 THEN
5973 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5974 THEN
5975 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_as_ud_dlg_chrg_fail;
5976 END IF;
5977
5978 END IF;
5979
5980
5981 --origin_surchrg
5982
5983 Insert_Dleg_Level_Charge(
5984 p_charge_type=>g_tl_freight_codes(C_ORIGIN_SURCHRG).fte_summary_code_id,
5985 p_line_type_code=> 'SUMMARY',
5986 p_charge=> p_dleg_alloc_rec.origin_surchrg,
5987 p_unit_charge=> NULL,
5988 p_freight_rec=> l_freight_rec_common,
5989 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
5990 x_output_cost_tab=> x_output_cost_tab,
5991 x_return_status=> l_return_status);
5992
5993
5994 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
5995 THEN
5996 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
5997 THEN
5998 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_org_dlg_chrg_fail;
5999 END IF;
6000
6001 END IF;
6002
6003
6004 --destination_surchrg
6005
6006 Insert_Dleg_Level_Charge(
6007 p_charge_type=>g_tl_freight_codes(C_DESTINATION_SURCHRG).fte_summary_code_id,
6008 p_line_type_code=> 'SUMMARY',
6009 p_charge=> p_dleg_alloc_rec.destination_surchrg,
6010 p_unit_charge=> NULL,
6011 p_freight_rec=> l_freight_rec_common,
6012 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
6013 x_output_cost_tab=> x_output_cost_tab,
6014 x_return_status=> l_return_status);
6015
6016 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6017 THEN
6018 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6019 THEN
6020 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dst_dlg_chrg_fail;
6021 END IF;
6022
6023 END IF;
6024
6025
6026 --fac_loading_chrg
6027 IF (p_dleg_alloc_rec.fac_loading_chrg = 0)
6028 THEN
6029 l_charge:=0;
6030 ELSE
6031 l_charge:=GL_CURRENCY_API.convert_amount(
6032 p_dleg_alloc_rec.fac_loading_currency,
6033 l_currency,
6034 SYSDATE,
6035 'Corporate',
6036 p_dleg_alloc_rec.fac_loading_chrg
6037 );
6038 END IF;
6039 IF (l_charge IS NULL)
6040 THEN
6041 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
6042 END IF;
6043
6044 Insert_Dleg_Level_Charge(
6045 p_charge_type=>g_tl_freight_codes(F_LOADING_CHRG).fte_summary_code_id,
6046 p_line_type_code=> 'SUMMARY',
6047 p_charge=> l_charge,
6048 p_unit_charge=> NULL,
6049 p_freight_rec=> l_freight_rec_common,
6050 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
6051 x_output_cost_tab=> x_output_cost_tab,
6052 x_return_status=> l_return_status);
6053
6054
6055 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6056 THEN
6057 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6058 THEN
6059 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_ld_dlg_chrg_fail;
6060 END IF;
6061
6062 END IF;
6063
6064
6065 --fac_ast_loading_chrg
6066 IF (p_dleg_alloc_rec.fac_ast_loading_chrg = 0)
6067 THEN
6068 l_charge:=0;
6069 ELSE
6070 l_charge:=GL_CURRENCY_API.convert_amount(
6071 p_dleg_alloc_rec.fac_loading_currency,
6072 l_currency,
6073 SYSDATE,
6074 'Corporate',
6075 p_dleg_alloc_rec.fac_ast_loading_chrg
6076 );
6077 END IF;
6078 IF (l_charge IS NULL)
6079 THEN
6080 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
6081 END IF;
6082
6083 Insert_Dleg_Level_Charge(
6084 p_charge_type=>g_tl_freight_codes(F_AST_LOADING_CHRG).fte_summary_code_id,
6085 p_line_type_code=> 'SUMMARY',
6086 p_charge=> l_charge,
6087 p_unit_charge=> NULL,
6088 p_freight_rec=> l_freight_rec_common,
6089 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
6090 x_output_cost_tab=> x_output_cost_tab,
6091 x_return_status=> l_return_status);
6092
6093
6094 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6095 THEN
6096 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6097 THEN
6098 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_as_ld_dlg_chrg_fail;
6099 END IF;
6100
6101 END IF;
6102
6103
6104 --fac_unloading_chrg
6105 IF (p_dleg_alloc_rec.fac_unloading_chrg = 0)
6106 THEN
6107 l_charge:=0;
6108 ELSE
6109
6110 l_charge:=GL_CURRENCY_API.convert_amount(
6111 p_dleg_alloc_rec.fac_unloading_currency,
6112 l_currency,
6113 SYSDATE,
6114 'Corporate',
6115 p_dleg_alloc_rec.fac_unloading_chrg
6116 );
6117 END IF;
6118 IF (l_charge IS NULL)
6119 THEN
6120 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
6121 END IF;
6122
6123 Insert_Dleg_Level_Charge(
6124 p_charge_type=>g_tl_freight_codes(F_UNLOADING_CHRG).fte_summary_code_id,
6125 p_line_type_code=> 'SUMMARY',
6126 p_charge=> l_charge,
6127 p_unit_charge=> NULL,
6128 p_freight_rec=> l_freight_rec_common,
6129 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
6130 x_output_cost_tab=> x_output_cost_tab,
6131 x_return_status=> l_return_status);
6132
6133
6134 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6135 THEN
6136 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6137 THEN
6138 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_ud_dlg_chrg_fail;
6139 END IF;
6140
6141 END IF;
6142
6143
6144 --fac_ast_unloading_chrg
6145 IF (p_dleg_alloc_rec.fac_ast_unloading_chrg = 0)
6146 THEN
6147 l_charge:=0;
6148 ELSE
6149
6150 l_charge:=GL_CURRENCY_API.convert_amount(
6151 p_dleg_alloc_rec.fac_unloading_currency,
6152 l_currency,
6153 SYSDATE,
6154 'Corporate',
6155 p_dleg_alloc_rec.fac_ast_unloading_chrg
6156 );
6157 END IF;
6158 IF (l_charge IS NULL)
6159 THEN
6160 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
6161 END IF;
6162
6163
6164 Insert_Dleg_Level_Charge(
6165 p_charge_type=>g_tl_freight_codes(F_AST_UNLOADING_CHRG).fte_summary_code_id,
6166 p_line_type_code=> 'SUMMARY',
6167 p_charge=> l_charge,
6168 p_unit_charge=> NULL,
6169 p_freight_rec=> l_freight_rec_common,
6170 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
6171 x_output_cost_tab=> x_output_cost_tab,
6172 x_return_status=> l_return_status);
6173
6174
6175 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6176 THEN
6177 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6178 THEN
6179 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_as_ud_dlg_chrg_fail;
6180 END IF;
6181
6182 END IF;
6183
6184
6185 --fac_handling_chrg
6186 IF (p_dleg_alloc_rec.fac_handling_chrg= 0)
6187 THEN
6188 l_charge:=0;
6189 ELSE
6190 l_charge:=GL_CURRENCY_API.convert_amount(
6191 p_dleg_alloc_rec.fac_handling_currency,
6192 l_currency,
6193 SYSDATE,
6194 'Corporate',
6195 p_dleg_alloc_rec.fac_handling_chrg
6196 );
6197 END IF;
6198 IF (l_charge IS NULL)
6199 THEN
6200 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
6201 END IF;
6202
6203 Insert_Dleg_Level_Charge(
6204 p_charge_type=>g_tl_freight_codes(F_HANDLING_CHRG).fte_summary_code_id,
6205 p_line_type_code=> 'SUMMARY',
6206 p_charge=> l_charge,
6207 p_unit_charge=> NULL,
6208 p_freight_rec=> l_freight_rec_common,
6209 p_cost_allocation_parameters=> p_cost_allocation_parameters ,
6210 x_output_cost_tab=> x_output_cost_tab,
6211 x_return_status=> l_return_status);
6212
6213 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6214 THEN
6215 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6216 THEN
6217 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_hndl_dlg_chrg_fail;
6218 END IF;
6219
6220 END IF;
6221 */
6222
6223 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6224 IF (l_warning_count > 0)
6225 THEN
6226 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
6227 END IF;
6228 EXCEPTION
6229 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_get_to_dleg_cost_fail THEN
6230 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6231 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_get_to_dleg_cost_fail');
6232 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6233
6234 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_fuel_dlg_chrg_fail THEN
6235 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6236 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_fuel_dlg_chrg_fail');
6237 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6238
6239
6240 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_tot_dlg_chrg_fail THEN
6241 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6242 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_tot_dlg_chrg_fail');
6243 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6244
6245 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dist_ld_dlg_chrg_fail THEN
6246 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6247 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_dist_ld_dlg_chrg_fail');
6248 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6249
6250 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_no_carr_unit_basis THEN
6251 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6252 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_no_carr_unit_basis');
6253 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6254
6255 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_unit_dlg_chrg_fail THEN
6256 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6257 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_unit_dlg_chrg_fail');
6258 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6259
6260 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_time_dlg_chrg_fail THEN
6261 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6262 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_time_dlg_chrg_fail');
6263 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6264
6265 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_flat_dlg_chrg_fail THEN
6266 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6267 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_flat_dlg_chrg_fail');
6268 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6269
6270 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_stpoff_dlg_chrg_fail THEN
6271 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6272 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_stpoff_dlg_chrg_fail');
6273 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6274
6275 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_outrt_dlg_chrg_fail THEN
6276 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6277 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_outrt_dlg_chrg_fail');
6278 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6279
6280 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_hndl_dlg_chrg_fail THEN
6281 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6282 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_hndl_dlg_chrg_fail');
6283 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6284
6285 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_wkdayl_dlg_chrg_fail THEN
6286 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6287 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_wkdayl_dlg_chrg_fail');
6288 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6289
6290 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_wkendl_dlg_chrg_fail THEN
6291 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6292 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_wkendl_dlg_chrg_fail');
6293 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6294
6295 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ld_dlg_chrg_fail THEN
6296 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6297 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_ld_dlg_chrg_fail');
6298 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6299
6300 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_as_ld_dlg_chrg_fail THEN
6301 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6302 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_as_ld_dlg_chrg_fail');
6303 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6304
6305 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ud_dlg_chrg_fail THEN
6306 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6307 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_ud_dlg_chrg_fail');
6308 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6309
6310 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_as_ud_dlg_chrg_fail THEN
6311 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6312 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_as_ud_dlg_chrg_fail');
6313 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6314
6315 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_org_dlg_chrg_fail THEN
6316 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6317 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_org_dlg_chrg_fail');
6318 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6319
6320 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dst_dlg_chrg_fail THEN
6321 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6322 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_dst_dlg_chrg_fail');
6323 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6324
6325 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail THEN
6326 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6327 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_conv_currency_fail');
6328 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6329
6330 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_ld_dlg_chrg_fail THEN
6331 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6332 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_ld_dlg_chrg_fail');
6333 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6334
6335 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_as_ld_dlg_chrg_fail THEN
6336 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6337 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_as_ld_dlg_chrg_fail');
6338 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6339
6340 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_ud_dlg_chrg_fail THEN
6341 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6342 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_ud_dlg_chrg_fail');
6343 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6344
6345 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_as_ud_dlg_chrg_fail THEN
6346 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6347 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_as_ud_dlg_chrg_fail');
6348 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6349
6350 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_hndl_dlg_chrg_fail THEN
6351 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6352 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_hndl_dlg_chrg_fail');
6353 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6354
6355
6356
6357 WHEN others THEN
6358 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6359 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dleg_Level_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
6360 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
6361 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dleg_Level_Price_Recs');
6362
6363
6364
6365 END Create_Dleg_Level_Price_Recs;
6366
6367 --Creates the delivery detail level records once cost allocation is done
6368
6369 PROCEDURE Create_Dlv_Dtl_Price_Recs(
6370 p_trip_index IN NUMBER,
6371 p_factor IN NUMBER,
6372 p_dtl_rec IN FTE_FREIGHT_PRICING.shipment_line_rec_type,
6373 p_dleg_alloc_rec IN TL_dleg_alloc_rec_type,
6374 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
6375 p_dim_weight IN NUMBER,
6376 p_only_summary_flag IN VARCHAR2,
6377 x_output_cost_tab IN OUT NOCOPY
6378 FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type,
6379 x_return_status OUT NOCOPY Varchar2) IS
6380
6381 l_freight_rec_common FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type;
6382 l_freight_rec FTE_FREIGHT_PRICING.Freight_Cost_Temp_Rec_Type;
6383 l_freight_cost_id NUMBER;
6384 l_return_status VARCHAR2(1);
6385 l_charge NUMBER;
6386 l_unit_freight_code NUMBER;
6387 l_sum NUMBER;
6388
6389 l_billable_basis VARCHAR2(30);
6390 l_billable_quantity NUMBER;
6391 l_billable_uom VARCHAR2(30);
6392
6393 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
6394
6395 l_warning_count NUMBER:=0;
6396 BEGIN
6397
6398 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
6399 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Create_Dlv_Dtl_Price_Recs','start');
6400
6401 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6402
6403
6404 l_billable_basis:=NULL;
6405 l_billable_quantity:=NULL;
6406 l_billable_uom:=NULL;
6407
6408 --Populate values that are common for all pricing records
6409
6410 l_freight_rec_common.currency_code:=
6411 FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).currency;
6412 l_freight_rec_common.delivery_id:=p_dtl_rec.delivery_id;
6413 l_freight_rec_common.delivery_leg_id:=p_dtl_rec.delivery_leg_id;
6414 l_freight_rec_common.delivery_detail_id:=p_dtl_rec.delivery_detail_id;
6415 l_freight_rec_common.charge_source_code:='PRICING_ENGINE';
6416 IF (p_cost_allocation_parameters.output_type='T')
6417 THEN
6418 l_freight_rec_common.estimated_flag:='Y';
6419 ELSE
6420 l_freight_rec_common.estimated_flag:='N';
6421 END IF;
6422 l_freight_rec_common.lane_id:=
6423 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).lane_id;
6424 l_freight_rec_common.schedule_id:=
6425 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).schedule_id;
6426 l_freight_rec_common.service_type_code:=
6427 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).service_type;
6428 l_freight_rec_common.creation_date := SYSDATE;
6429 l_freight_rec_common.created_by := FND_GLOBAL.USER_ID;
6430 l_freight_rec_common.last_update_date := sysdate;
6431 l_freight_rec_common.last_updated_by := FND_GLOBAL.USER_ID;
6432 l_freight_rec_common.last_update_login := FND_GLOBAL.LOGIN_ID;
6433
6434 l_freight_rec_common.vehicle_type_id:=FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).vehicle_type;
6435
6436 --All the common values for the records are now populated;
6437
6438
6439
6440 --base_unit_chrg
6441
6442
6443
6444 IF(FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).unit_basis=FTE_RTG_GLOBALS.G_CARRIER_WEIGHT_BASIS
6445 )
6446 THEN
6447 l_unit_freight_code:=
6448 g_tl_freight_codes(C_UNIT_WEIGHT_RT).fte_price_code_id;
6449
6450 IF (p_dim_weight IS NOT NULL)
6451 THEN
6452 l_billable_basis:='WEIGHT';
6453 l_billable_uom:=FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).weight_uom;
6454 l_billable_quantity:=p_dim_weight;
6455 END IF;
6456
6457 ELSIF
6458 (FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).unit_basis=FTE_RTG_GLOBALS.G_CARRIER_VOLUME_BASIS)
6459 THEN
6460 l_unit_freight_code:=
6461 g_tl_freight_codes(C_UNIT_VOLUME_RT).fte_price_code_id;
6462
6463 --l_billable_basis:='VOLUME';
6464 --l_billable_uom:=FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).volume_uom;
6465 --l_billable_quantity:=p_volume;
6466
6467
6468 ELSIF
6469 (FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).unit_basis=FTE_RTG_GLOBALS.G_CARRIER_CONTAINER_BASIS)
6470 THEN
6471 l_unit_freight_code:=
6472 g_tl_freight_codes(C_UNIT_CONTAINER_RT).fte_price_code_id;
6473
6474 --l_billable_basis:='CONTAINER';
6475 --l_billable_uom:= ??? Each;
6476 --l_billable_quantity:=p_volume;
6477
6478
6479
6480
6481 ELSIF
6482 (FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).unit_basis=FTE_RTG_GLOBALS.G_CARRIER_PALLET_BASIS)
6483 THEN
6484 l_unit_freight_code:=
6485 g_tl_freight_codes(C_UNIT_PALLET_RT).fte_price_code_id;
6486
6487 ELSE
6488
6489 FTE_FREIGHT_PRICING_UTIL.setmsg (
6490 p_api=>'Create_Dlv_Dtl_Price_Recs',
6491 p_exc=>'g_tl_no_carr_unit_basis',
6492 p_carrier_id=>FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).carrier_id);
6493
6494 raise FTE_FREIGHT_PRICING_UTIL.g_tl_no_carr_unit_basis;
6495
6496 END IF;
6497
6498 IF ((p_only_summary_flag IS NULL ) OR (p_only_summary_flag='N'))
6499 THEN
6500
6501
6502
6503 Insert_Dlv_Dtl_Level_Charge(
6504 p_charge_type=>l_unit_freight_code,
6505 p_line_type_code=> 'TLPRICE',
6506 p_charge=>p_factor*p_dleg_alloc_rec.base_unit_chrg,
6507 p_unit_charge=>p_factor*p_dleg_alloc_rec.base_unit_unit_chrg,
6508 p_freight_rec=>l_freight_rec_common,
6509 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6510 x_output_cost_tab=> x_output_cost_tab,
6511 x_return_status=> l_return_status);
6512
6513 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6514 THEN
6515 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6516 THEN
6517 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_unit_dtl_chrg_fail;
6518 END IF;
6519 END IF;
6520
6521
6522 --base_dist_load_chrg
6523
6524 IF ((FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).continuous_move='Y') AND
6525 (FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).cm_rate_variant='DISC
6526 OUNT'))
6527 THEN
6528
6529 Insert_Dlv_Dtl_Level_Charge(
6530 p_charge_type=> g_tl_freight_codes(C_CONTINUOUS_MOVE_DISTANCE_RT
6531 ).fte_price_code_id,
6532 p_line_type_code=> 'TLPRICE',
6533 p_charge=>p_factor*p_dleg_alloc_rec.base_dist_load_chrg,
6534 p_unit_charge=>p_factor*p_dleg_alloc_rec.base_dist_load_unit_chrg,
6535 p_freight_rec=>l_freight_rec_common,
6536 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6537 x_output_cost_tab=> x_output_cost_tab,
6538 x_return_status=> l_return_status);
6539
6540 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6541 THEN
6542 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6543 THEN
6544 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_cm_dist_dtl_chrg_fail;
6545 END IF;
6546 END IF;
6547
6548
6549 ELSE
6550
6551
6552 Insert_Dlv_Dtl_Level_Charge(
6553 p_charge_type=>g_tl_freight_codes(C_LOADED_DISTANCE_RT).fte_price_code_id,
6554 p_line_type_code=> 'TLPRICE',
6555 p_charge=>p_factor*p_dleg_alloc_rec.base_dist_load_chrg,
6556 p_unit_charge=>p_factor*p_dleg_alloc_rec.base_dist_load_unit_chrg,
6557 p_freight_rec=>l_freight_rec_common,
6558 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6559 x_output_cost_tab=> x_output_cost_tab,
6560 x_return_status=> l_return_status);
6561
6562
6563 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6564 THEN
6565 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6566 THEN
6567 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dist_ld_dtl_chrg_fail;
6568 END IF;
6569 END IF;
6570
6571
6572
6573 END IF;
6574
6575 --base_dist_unload_chrg
6576
6577
6578 Insert_Dlv_Dtl_Level_Charge(
6579 p_charge_type=>g_tl_freight_codes(C_UNLOADED_DISTANCE_RT).fte_price_code_id,
6580 p_line_type_code=> 'TLPRICE',
6581 p_charge=>p_factor*p_dleg_alloc_rec.base_dist_unload_chrg,
6582 p_unit_charge=>p_factor*p_dleg_alloc_rec.base_dist_unload_unit_chrg,
6583 p_freight_rec=>l_freight_rec_common,
6584 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6585 x_output_cost_tab=> x_output_cost_tab,
6586 x_return_status=> l_return_status);
6587
6588 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6589 THEN
6590 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6591 THEN
6592 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dist_ud_dtl_chrg_fail;
6593 END IF;
6594 END IF;
6595
6596
6597
6598
6599 --base_time_chrg
6600
6601
6602
6603 Insert_Dlv_Dtl_Level_Charge(
6604 p_charge_type=>g_tl_freight_codes(C_TIME_RT).fte_price_code_id,
6605 p_line_type_code=> 'TLPRICE',
6606 p_charge=>p_factor*p_dleg_alloc_rec.base_time_chrg,
6607 p_unit_charge=>p_factor*p_dleg_alloc_rec.base_time_unit_chrg,
6608 p_freight_rec=>l_freight_rec_common,
6609 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6610 x_output_cost_tab=> x_output_cost_tab,
6611 x_return_status=> l_return_status);
6612
6613 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6614 THEN
6615 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6616 THEN
6617 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_time_dtl_chrg_fail;
6618 END IF;
6619 END IF;
6620
6621
6622 --base_flat_chrg
6623
6624
6625
6626 Insert_Dlv_Dtl_Level_Charge(
6627 p_charge_type=>g_tl_freight_codes(C_FLAT_RT).fte_price_code_id,
6628 p_line_type_code=> 'TLPRICE',
6629 p_charge=>p_factor*p_dleg_alloc_rec.base_flat_chrg,
6630 p_unit_charge=>NULL,
6631 p_freight_rec=>l_freight_rec_common,
6632 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6633 x_output_cost_tab=> x_output_cost_tab,
6634 x_return_status=> l_return_status);
6635
6636 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6637 THEN
6638 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6639 THEN
6640 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_flat_dtl_chrg_fail;
6641 END IF;
6642 END IF;
6643
6644
6645 --stop_off_chrg
6646
6647
6648
6649 Insert_Dlv_Dtl_Level_Charge(
6650 p_charge_type=>g_tl_freight_codes(C_STOP_OFF_CHRG).fte_charge_code_id,
6651 p_line_type_code=> 'TLCHARGE',
6652 p_charge=>p_factor*p_dleg_alloc_rec.stop_off_chrg,
6653 p_unit_charge=>NULL,
6654 p_freight_rec=>l_freight_rec_common,
6655 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6656 x_output_cost_tab=> x_output_cost_tab,
6657 x_return_status=> l_return_status);
6658
6659
6660 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6661 THEN
6662 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6663 THEN
6664 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_stpoff_dtl_chrg_fail;
6665 END IF;
6666 END IF;
6667
6668
6669 --out_of_route_chrg
6670
6671
6672
6673 Insert_Dlv_Dtl_Level_Charge(
6674 p_charge_type=>g_tl_freight_codes(C_OUT_OF_ROUTE_CHRG).fte_charge_code_id,
6675 p_line_type_code=> 'TLCHARGE',
6676 p_charge=>p_factor*p_dleg_alloc_rec.out_of_route_chrg,
6677 p_unit_charge=>NULL,
6678 p_freight_rec=>l_freight_rec_common,
6679 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6680 x_output_cost_tab=> x_output_cost_tab,
6681 x_return_status=> l_return_status);
6682
6683 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6684 THEN
6685 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6686 THEN
6687 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_outrt_dtl_chrg_fail;
6688 END IF;
6689 END IF;
6690
6691
6692 --handling_chrg
6693
6694
6695
6696 Insert_Dlv_Dtl_Level_Charge(
6697 p_charge_type=>g_tl_freight_codes(C_HANDLING_CHRG).fte_charge_code_id,
6698 p_line_type_code=> 'TLCHARGE',
6699 p_charge=>p_factor*p_dleg_alloc_rec.handling_chrg,
6700 p_unit_charge=>NULL,
6701 p_freight_rec=>l_freight_rec_common,
6702 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6703 x_output_cost_tab=> x_output_cost_tab,
6704 x_return_status=> l_return_status);
6705
6706
6707 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6708 THEN
6709 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6710 THEN
6711 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_hndl_dtl_chrg_fail;
6712 END IF;
6713 END IF;
6714
6715
6716 --fuel_chrg
6717
6718
6719
6720 Insert_Dlv_Dtl_Level_Charge(
6721 p_charge_type=>g_tl_freight_codes(C_FUEL_CHRG).fte_charge_code_id,
6722 p_line_type_code=> 'TLCHARGE',
6723 p_charge=>p_factor*p_dleg_alloc_rec.fuel_chrg,
6724 p_unit_charge=>NULL,
6725 p_freight_rec=>l_freight_rec_common,
6726 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6727 x_output_cost_tab=> x_output_cost_tab,
6728 x_return_status=> l_return_status);
6729
6730
6731 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6732 THEN
6733 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6734 THEN
6735 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_fuel_dtl_chrg_fail;
6736 END IF;
6737 END IF;
6738
6739
6740 --weekday_layover_chrg
6741
6742
6743
6744 Insert_Dlv_Dtl_Level_Charge(
6745 p_charge_type=>g_tl_freight_codes(C_WEEKDAY_LAYOVER_CHRG).fte_charge_code_id,
6746 p_line_type_code=> 'TLCHARGE',
6747 p_charge=>p_factor*p_dleg_alloc_rec.weekday_layover_chrg,
6748 p_unit_charge=>NULL,
6749 p_freight_rec=>l_freight_rec_common,
6750 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6751 x_output_cost_tab=> x_output_cost_tab,
6752 x_return_status=> l_return_status);
6753
6754 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6755 THEN
6756 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6757 THEN
6758 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_wkday_dtl_chrg_fail;
6759 END IF;
6760 END IF;
6761
6762
6763
6764 --weekend_layover_chrg
6765
6766
6767
6768 Insert_Dlv_Dtl_Level_Charge(
6769 p_charge_type=>g_tl_freight_codes(C_WEEKEND_LAYOVER_CHRG).fte_charge_code_id,
6770 p_line_type_code=> 'TLCHARGE',
6771 p_charge=>p_factor*p_dleg_alloc_rec.weekend_layover_chrg,
6772 p_unit_charge=>NULL,
6773 p_freight_rec=>l_freight_rec_common,
6774 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6775 x_output_cost_tab=> x_output_cost_tab,
6776 x_return_status=> l_return_status);
6777
6778
6779 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6780 THEN
6781 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6782 THEN
6783 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_wkend_dtl_chrg_fail;
6784 END IF;
6785 END IF;
6786
6787
6788 --loading_chrg
6789
6790
6791 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,
6792 ' BEFORE INSERTING loading charge '|| g_tl_freight_codes(C_LOADING_CHRG).fte_charge_code_id|| '*');
6793
6794
6795
6796 Insert_Dlv_Dtl_Level_Charge(
6797 p_charge_type=>g_tl_freight_codes(C_LOADING_CHRG).fte_charge_code_id,
6798 p_line_type_code=> 'TLCHARGE',
6799 p_charge=>p_factor*p_dleg_alloc_rec.loading_chrg,
6800 p_unit_charge=>NULL,
6801 p_freight_rec=>l_freight_rec_common,
6802 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6803 x_output_cost_tab=> x_output_cost_tab,
6804 x_return_status=> l_return_status);
6805
6806 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6807 THEN
6808 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6809 THEN
6810 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ld_dtl_chrg_fail;
6811 END IF;
6812 END IF;
6813
6814
6815
6816 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,
6817 ' AFTER INSERTING loading charge '|| g_tl_freight_codes(C_LOADING_CHRG).fte_charge_code_id|| '*');
6818 --ast_loading_chrg
6819
6820
6821
6822 Insert_Dlv_Dtl_Level_Charge(
6823 p_charge_type=>g_tl_freight_codes(C_AST_LOADING_CHRG).fte_charge_code_id,
6824 p_line_type_code=> 'TLCHARGE',
6825 p_charge=>p_factor*p_dleg_alloc_rec.ast_loading_chrg,
6826 p_unit_charge=>NULL,
6827 p_freight_rec=>l_freight_rec_common,
6828 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6829 x_output_cost_tab=> x_output_cost_tab,
6830 x_return_status=> l_return_status);
6831
6832 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6833 THEN
6834 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6835 THEN
6836 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_as_ld_dtl_chrg_fail;
6837 END IF;
6838 END IF;
6839
6840
6841 --unloading_chrg
6842
6843
6844
6845 Insert_Dlv_Dtl_Level_Charge(
6846 p_charge_type=>g_tl_freight_codes(C_UNLOADING_CHRG).fte_charge_code_id,
6847 p_line_type_code=> 'TLCHARGE',
6848 p_charge=>p_factor*p_dleg_alloc_rec.unloading_chrg,
6849 p_unit_charge=>NULL,
6850 p_freight_rec=>l_freight_rec_common,
6851 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6852 x_output_cost_tab=> x_output_cost_tab,
6853 x_return_status=> l_return_status);
6854
6855
6856 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6857 THEN
6858 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6859 THEN
6860 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ud_dtl_chrg_fail;
6861 END IF;
6862 END IF;
6863
6864
6865 --ast_unloading_chrg
6866
6867
6868
6869 Insert_Dlv_Dtl_Level_Charge(
6870 p_charge_type=>g_tl_freight_codes(C_AST_UNLOADING_CHRG).fte_charge_code_id,
6871 p_line_type_code=> 'TLCHARGE',
6872 p_charge=>p_factor*p_dleg_alloc_rec.ast_unloading_chrg,
6873 p_unit_charge=>NULL,
6874 p_freight_rec=>l_freight_rec_common,
6875 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6876 x_output_cost_tab=> x_output_cost_tab,
6877 x_return_status=> l_return_status);
6878
6879
6880 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6881 THEN
6882 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6883 THEN
6884 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_as_ud_dtl_chrg_fail;
6885 END IF;
6886 END IF;
6887
6888
6889
6890 --origin_surchrg
6891
6892 l_sum:=l_sum+p_dleg_alloc_rec.origin_surchrg;
6893
6894 Insert_Dlv_Dtl_Level_Charge(
6895 p_charge_type=>g_tl_freight_codes(C_ORIGIN_SURCHRG).fte_charge_code_id,
6896 p_line_type_code=> 'TLCHARGE',
6897 p_charge=>p_factor*p_dleg_alloc_rec.origin_surchrg,
6898 p_unit_charge=>NULL,
6899 p_freight_rec=>l_freight_rec_common,
6900 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6901 x_output_cost_tab=> x_output_cost_tab,
6902 x_return_status=> l_return_status);
6903
6904
6905 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6906 THEN
6907 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6908 THEN
6909 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_org_dtl_chrg_fail;
6910 END IF;
6911 END IF;
6912
6913
6914 --destination_surchrg
6915
6916
6917
6918 Insert_Dlv_Dtl_Level_Charge(
6919 p_charge_type=>g_tl_freight_codes(C_DESTINATION_SURCHRG).fte_charge_code_id,
6920 p_line_type_code=> 'TLCHARGE',
6921 p_charge=>p_factor*p_dleg_alloc_rec.destination_surchrg,
6922 p_unit_charge=>NULL,
6923 p_freight_rec=>l_freight_rec_common,
6924 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6925 x_output_cost_tab=> x_output_cost_tab,
6926 x_return_status=> l_return_status);
6927
6928
6929 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6930 THEN
6931 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6932 THEN
6933 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dst_dtl_chrg_fail;
6934 END IF;
6935 END IF;
6936
6937
6938 --fac_loading_chrg
6939
6940
6941
6942 IF (p_dleg_alloc_rec.fac_loading_chrg=0)
6943 THEN
6944 l_charge:=0;
6945 ELSE
6946
6947
6948 l_charge := GL_CURRENCY_API.convert_amount(
6949 p_dleg_alloc_rec.fac_loading_currency,
6950 l_freight_rec_common.currency_code,
6951 SYSDATE,
6952 'Corporate',
6953 p_dleg_alloc_rec.fac_loading_chrg
6954 );
6955 END IF;
6956 IF (l_charge IS NULL)
6957 THEN
6958 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
6959 END IF;
6960
6961
6962
6963 Insert_Dlv_Dtl_Level_Charge(
6964 p_charge_type=>g_tl_freight_codes(F_LOADING_CHRG).fte_charge_code_id,
6965 p_line_type_code=> 'TLCHARGE',
6966 p_charge=>p_factor*l_charge,
6967 p_unit_charge=>NULL,
6968 p_freight_rec=>l_freight_rec_common,
6969 p_cost_allocation_parameters=> p_cost_allocation_parameters,
6970 x_output_cost_tab=> x_output_cost_tab,
6971 x_return_status=> l_return_status);
6972
6973 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
6974 THEN
6975 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
6976 THEN
6977 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_ld_dtl_chrg_fail;
6978 END IF;
6979 END IF;
6980
6981
6982 --fac_ast_loading_chrg
6983
6984 IF (p_dleg_alloc_rec.fac_ast_loading_chrg= 0)
6985 THEN
6986 l_charge:=0;
6987 ELSE
6988 l_charge := GL_CURRENCY_API.convert_amount(
6989 p_dleg_alloc_rec.fac_loading_currency,
6990 l_freight_rec_common.currency_code,
6991 SYSDATE,
6992 'Corporate',
6993 p_dleg_alloc_rec.fac_ast_loading_chrg
6994 );
6995 END IF;
6996 IF (l_charge IS NULL)
6997 THEN
6998 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
6999 END IF;
7000
7001
7002
7003 Insert_Dlv_Dtl_Level_Charge(
7004 p_charge_type=>g_tl_freight_codes(F_AST_LOADING_CHRG).fte_charge_code_id,
7005 p_line_type_code=> 'TLCHARGE',
7006 p_charge=>p_factor*l_charge,
7007 p_unit_charge=>NULL,
7008 p_freight_rec=>l_freight_rec_common,
7009 p_cost_allocation_parameters=> p_cost_allocation_parameters,
7010 x_output_cost_tab=> x_output_cost_tab,
7011 x_return_status=> l_return_status);
7012
7013 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
7014 THEN
7015 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
7016 THEN
7017 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_as_ld_dtl_chrg_fail;
7018 END IF;
7019 END IF;
7020
7021
7022 --fac_unloading_chrg
7023
7024 IF ( p_dleg_alloc_rec.fac_unloading_chrg = 0)
7025 THEN
7026 l_charge:=0;
7027 ELSE
7028
7029 l_charge := GL_CURRENCY_API.convert_amount(
7030 p_dleg_alloc_rec.fac_unloading_currency,
7031 l_freight_rec_common.currency_code,
7032 SYSDATE,
7033 'Corporate',
7034 p_dleg_alloc_rec.fac_unloading_chrg
7035 );
7036 END IF;
7037 IF (l_charge IS NULL)
7038 THEN
7039 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
7040 END IF;
7041
7042 l_sum:=l_sum+l_charge;
7043
7044 Insert_Dlv_Dtl_Level_Charge(
7045 p_charge_type=>g_tl_freight_codes(F_UNLOADING_CHRG).fte_charge_code_id,
7046 p_line_type_code=> 'TLCHARGE',
7047 p_charge=>p_factor*l_charge,
7048 p_unit_charge=>NULL,
7049 p_freight_rec=>l_freight_rec_common,
7050 p_cost_allocation_parameters=> p_cost_allocation_parameters,
7051 x_output_cost_tab=> x_output_cost_tab,
7052 x_return_status=> l_return_status);
7053
7054 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
7055 THEN
7056 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
7057 THEN
7058 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_ud_dtl_chrg_fail;
7059 END IF;
7060 END IF;
7061
7062
7063 --fac_ast_unloading_chrg
7064
7065 IF (p_dleg_alloc_rec.fac_ast_unloading_chrg = 0)
7066 THEN
7067 l_charge:=0;
7068 ELSE
7069 l_charge := GL_CURRENCY_API.convert_amount(
7070 p_dleg_alloc_rec.fac_unloading_currency,
7071 l_freight_rec_common.currency_code,
7072 SYSDATE,
7073 'Corporate',
7074 p_dleg_alloc_rec.fac_ast_unloading_chrg
7075 );
7076 END IF;
7077 IF (l_charge IS NULL)
7078 THEN
7079 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
7080 END IF;
7081
7082
7083
7084 Insert_Dlv_Dtl_Level_Charge(
7085 p_charge_type=>g_tl_freight_codes(F_AST_UNLOADING_CHRG).fte_charge_code_id,
7086 p_line_type_code=> 'TLCHARGE',
7087 p_charge=>p_factor*l_charge,
7088 p_unit_charge=>NULL,
7089 p_freight_rec=>l_freight_rec_common,
7090 p_cost_allocation_parameters=> p_cost_allocation_parameters,
7091 x_output_cost_tab=> x_output_cost_tab,
7092 x_return_status=> l_return_status);
7093
7094 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
7095 THEN
7096 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
7097 THEN
7098 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_as_ud_dtl_chrg_fail;
7099 END IF;
7100 END IF;
7101
7102
7103 --fac_handling_chrg
7104
7105 IF ( p_dleg_alloc_rec.fac_handling_chrg = 0)
7106 THEN
7107
7108 l_charge:=0;
7109 ELSE
7110
7111 l_charge := GL_CURRENCY_API.convert_amount(
7112 p_dleg_alloc_rec.fac_handling_currency,
7113 l_freight_rec_common.currency_code,
7114 SYSDATE,
7115 'Corporate',
7116 p_dleg_alloc_rec.fac_handling_chrg
7117 );
7118
7119 END IF;
7120 IF (l_charge IS NULL)
7121 THEN
7122
7123 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
7124 END IF;
7125
7126
7127
7128 Insert_Dlv_Dtl_Level_Charge(
7129 p_charge_type=>g_tl_freight_codes(F_HANDLING_CHRG).fte_charge_code_id,
7130 p_line_type_code=> 'TLCHARGE',
7131 p_charge=>p_factor*l_charge,
7132 p_unit_charge=>NULL,
7133 p_freight_rec=>l_freight_rec_common,
7134 p_cost_allocation_parameters=> p_cost_allocation_parameters,
7135 x_output_cost_tab=> x_output_cost_tab,
7136 x_return_status=> l_return_status);
7137
7138 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
7139 THEN
7140 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
7141 THEN
7142 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_hndl_dtl_chrg_fail;
7143 END IF;
7144 END IF;
7145
7146 END IF;
7147
7148 l_freight_rec_common.billable_basis:=l_billable_basis;
7149 l_freight_rec_common.billable_uom:=l_billable_uom;
7150 l_freight_rec_common.billable_quantity:=l_billable_quantity;
7151
7152 Insert_Dlv_Dtl_Level_Charge(
7153 p_charge_type=> g_tl_freight_codes(C_SUMMARY).fte_summary_code_id,
7154 p_line_type_code=> 'SUMMARY',
7155 p_charge=> p_factor*p_dleg_alloc_rec.total_dleg_charge,
7156 p_unit_charge=>NULL,
7157 p_freight_rec=>l_freight_rec_common,
7158 p_cost_allocation_parameters=> p_cost_allocation_parameters,
7159 x_output_cost_tab=> x_output_cost_tab,
7160 x_return_status=> l_return_status);
7161
7162 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
7163 THEN
7164 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
7165 THEN
7166 raise FTE_FREIGHT_PRICING_UTIL.g_tl_ins_sum_dtl_chrg_fail;
7167 END IF;
7168 END IF;
7169
7170
7171
7172 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7173
7174 IF (l_warning_count > 0)
7175 THEN
7176 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
7177 END IF;
7178 EXCEPTION
7179
7180 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_sum_dtl_chrg_fail THEN
7181 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7182 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_sum_dtl_chrg_fail');
7183 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7184
7185 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_fuel_dtl_chrg_fail THEN
7186 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7187 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_cm_dist_dtl_chrg_fail');
7188 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7189
7190
7191 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_cm_dist_dtl_chrg_fail THEN
7192 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7193 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_cm_dist_dtl_chrg_fail');
7194 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7195
7196 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dist_ld_dtl_chrg_fail THEN
7197 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7198 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_dist_ld_dtl_chrg_fail');
7199 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7200
7201 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dist_ud_dtl_chrg_fail THEN
7202 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7203 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_dist_ud_dtl_chrg_fail');
7204 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7205
7206 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_no_carr_unit_basis THEN
7207 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7208 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_no_carr_unit_basis');
7209 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7210
7211 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_unit_dtl_chrg_fail THEN
7212 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7213 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_unit_dtl_chrg_fail');
7214 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7215
7216 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_time_dtl_chrg_fail THEN
7217 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7218 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_time_dtl_chrg_fail');
7219 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7220
7221 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_flat_dtl_chrg_fail THEN
7222 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7223 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_flat_dtl_chrg_fail');
7224 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7225
7226 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_stpoff_dtl_chrg_fail THEN
7227 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7228 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_stpoff_dtl_chrg_fail');
7229 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7230
7231 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_outrt_dtl_chrg_fail THEN
7232 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7233 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_outrt_dtl_chrg_fail');
7234 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7235
7236 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_hndl_dtl_chrg_fail THEN
7237 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7238 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_hndl_dtl_chrg_fail');
7239 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7240
7241 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_wkday_dtl_chrg_fail THEN
7242 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7243 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_wkday_dtl_chrg_fail');
7244 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7245
7246 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_wkend_dtl_chrg_fail THEN
7247 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7248 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_wkend_dtl_chrg_fail');
7249 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7250
7251 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ld_dtl_chrg_fail THEN
7252 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7253 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_ld_dtl_chrg_fail');
7254 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7255
7256 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_as_ld_dtl_chrg_fail THEN
7257 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7258 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_as_ld_dtl_chrg_fail');
7259 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7260
7261 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_ud_dtl_chrg_fail THEN
7262 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7263 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_ud_dtl_chrg_fail');
7264 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7265
7266 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_as_ud_dtl_chrg_fail THEN
7267 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7268 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_as_ud_dtl_chrg_fail');
7269 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7270
7271 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_org_dtl_chrg_fail THEN
7272 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7273 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_org_dtl_chrg_fail');
7274 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7275
7276 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_dst_dtl_chrg_fail THEN
7277 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7278 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_dst_dtl_chrg_fail');
7279 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7280
7281 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_ld_dtl_chrg_fail THEN
7282 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7283 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_ld_dtl_chrg_fail');
7284 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7285
7286 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail THEN
7287 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7288 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_conv_currency_fail');
7289 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7290
7291 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_as_ld_dtl_chrg_fail THEN
7292 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7293 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_as_ld_dtl_chrg_fail');
7294 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7295
7296 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_ud_dtl_chrg_fail THEN
7297 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7298 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_ud_dtl_chrg_fail');
7299 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7300
7301 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_as_ud_dtl_chrg_fail THEN
7302 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7303 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_as_ud_dtl_chrg_fail');
7304 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7305
7306 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_ins_f_hndl_dtl_chrg_fail THEN
7307 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7308 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_ins_f_hndl_dtl_chrg_fail');
7309 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7310
7311 WHEN others THEN
7312 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
7313 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Dlv_Dtl_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
7314 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
7315 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Dlv_Dtl_Price_Recs');
7316
7317
7318 END Create_Dlv_Dtl_Price_Recs;
7319
7320
7321 PROCEDURE Alloc_Charges_To_Int_Details(
7322 p_trip_index IN NUMBER,
7323 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
7324 p_detail_alloc_tab IN OUT NOCOPY TL_detail_alloc_TAB_TYPE ,
7325 x_output_cost_tab IN OUT NOCOPY
7326 FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type,
7327 x_return_status OUT NOCOPY Varchar2)
7328 IS
7329
7330 i NUMBER;
7331 l_dummy_dleg_alloc_rec TL_dleg_alloc_rec_type;
7332 l_return_status VARCHAR2(1);
7333
7334 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
7335
7336 l_warning_count NUMBER:=0;
7337 BEGIN
7338
7339 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
7340 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Alloc_Charges_To_Int_Details','start');
7341
7342
7343 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
7344
7345
7346 i:=p_detail_alloc_tab.FIRST;
7347 WHILE( i IS NOT NULL)
7348 LOOP
7349
7350 l_dummy_dleg_alloc_rec.total_dleg_charge:=p_detail_alloc_tab(i).total_detail_charge;
7351
7352 Create_Dlv_Dtl_Price_Recs(
7353 p_trip_index=>p_trip_index,
7354 p_factor=>1,
7355 p_dtl_rec=>FTE_TL_CACHE.g_tl_int_shipment_line_rows(i),
7356 p_dleg_alloc_rec=>l_dummy_dleg_alloc_rec,
7357 p_cost_allocation_parameters=>p_cost_allocation_parameters,
7358 p_dim_weight=>NULL,
7359 p_only_summary_flag=>'Y',
7360 x_output_cost_tab=>x_output_cost_tab,
7361 x_return_status=>l_return_status);
7362
7363 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
7364 THEN
7365 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
7366 THEN
7367 raise FTE_FREIGHT_PRICING_UTIL.g_tl_cr_dlv_dtl_fail;
7368 END IF;
7369 END IF;
7370
7371 i:=p_detail_alloc_tab.NEXT(i);
7372
7373 END LOOP;
7374
7375 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Charges_To_Int_Details');
7376
7377 EXCEPTION
7378
7379 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_cr_dlv_dtl_fail THEN
7380 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7381 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Charges_To_Int_Details',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_cr_dlv_dtl_fail');
7382 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Charges_To_Int_Details');
7383
7384
7385 WHEN others THEN
7386 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
7387 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_Charges_To_Int_Details',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
7388 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
7389 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_Charges_To_Int_Details');
7390
7391 END Alloc_Charges_To_Int_Details;
7392
7393
7394 --Allocates charges from the dleg down to the delivery details ,a s per CA
7395 --algorithm
7396
7397 PROCEDURE Alloc_To_Details(
7398 p_trip_index IN NUMBER,
7399 p_dleg_alloc_tab IN TL_dleg_alloc_TAB_TYPE ,
7400 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
7401 x_output_cost_tab IN OUT NOCOPY
7402 FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type,
7403 x_return_status OUT NOCOPY Varchar2) IS
7404
7405
7406 l_dleg_index_first NUMBER;
7407 l_dleg_index_last NUMBER;
7408 i NUMBER;
7409 l_factor NUMBER;
7410 l_map_index NUMBER;
7411 l_carrier_weight_uom VARCHAR2(30);
7412 l_carrier_volume_uom VARCHAR2(30);
7413 l_quantity NUMBER;
7414
7415 l_weight NUMBER;
7416 l_volume NUMBER;
7417 l_dim_weight NUMBER;
7418 l_detail_summary NUMBER;
7419 l_parent_detail_summary NUMBER;
7420 l_uom VARCHAR2(30);
7421
7422 l_detail_alloc_tab TL_detail_alloc_TAB_TYPE;
7423 l_detail_id NUMBER;
7424 l_parent_detail_id NUMBER;
7425 l_dtl_summary_only_flag VARCHAR2(1);
7426 l_child_dleg_index_first NUMBER;
7427 l_child_dleg_index_last NUMBER;
7428
7429 l_return_status VARCHAR2(1);
7430
7431 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
7432
7433 l_warning_count NUMBER:=0;
7434 BEGIN
7435
7436 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
7437 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Alloc_To_Details','start');
7438
7439
7440 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
7441
7442 l_dleg_index_first:=
7443 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).delivery_leg_reference;
7444 l_carrier_weight_uom:=
7445 FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).weight_uom;
7446 l_carrier_volume_uom:=
7447 FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).volume_uom;
7448
7449 IF (FTE_TL_CACHE.g_tl_trip_rows.EXISTS(p_trip_index+1))
7450 THEN
7451 l_dleg_index_last:=
7452 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index+1
7453 ).delivery_leg_reference;
7454
7455
7456 ELSE
7457 l_dleg_index_last:=FTE_TL_CACHE.g_tl_delivery_leg_rows.LAST + 1;
7458
7459 END IF;
7460
7461 i:=l_dleg_index_first;
7462 WHILE (( FTE_TL_CACHE.g_tl_delivery_leg_rows.EXISTS(i)) AND
7463 (FTE_TL_CACHE.g_tl_delivery_leg_rows(i).trip_id=
7464 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).trip_id) AND (i <l_dleg_index_last))
7465 LOOP
7466
7467 IF(NOT(FTE_TL_CACHE.g_tl_delivery_detail_hash.EXISTS(
7468 FTE_TL_CACHE.g_tl_delivery_leg_rows(i).delivery_id)))
7469 THEN
7470
7471 --FTE_FREIGHT_PRICING_UTIL.setmsg (
7472 -- p_api=>'Alloc_To_Details',
7473 -- p_exc=>'g_tl_no_dtl_on_dleg',
7474 -- p_delivery_leg_id=> FTE_TL_CACHE.g_tl_delivery_leg_rows(i).delivery_leg_id);
7475
7476 --raise FTE_FREIGHT_PRICING_UTIL.g_tl_no_dtl_on_dleg;
7477
7478 l_map_index:=NULL;
7479
7480 ELSE
7481
7482 l_map_index:=
7483 FTE_TL_CACHE.g_tl_delivery_detail_hash(
7484 FTE_TL_CACHE.g_tl_delivery_leg_rows(i).delivery_id);
7485
7486
7487 END IF;
7488
7489
7490
7491 WHILE((l_map_index IS NOT NULL) AND (FTE_TL_CACHE.g_tl_delivery_detail_map.EXISTS(l_map_index))
7492 AND(FTE_TL_CACHE.g_tl_delivery_detail_map(
7493 l_map_index).delivery_id=
7494 FTE_TL_CACHE.g_tl_delivery_leg_rows(i).delivery_id))
7495 LOOP
7496 l_dim_weight:=NULL;
7497
7498 IF((p_cost_allocation_parameters.principal_alloc_basis=
7499 FTE_RTG_GLOBALS.G_CA_WEIGHT_BASIS)
7500 AND(FTE_TL_CACHE.g_tl_delivery_leg_rows(i).weight>0))
7501 THEN
7502
7503 l_quantity:=
7504 FTE_TL_CACHE.g_tl_shipment_line_rows(
7505 FTE_TL_CACHE.g_tl_delivery_detail_map(
7506 l_map_index).delivery_detail_id
7507 ).gross_weight;
7508 l_uom:=
7509 FTE_TL_CACHE.g_tl_shipment_line_rows(
7510 FTE_TL_CACHE.g_tl_delivery_detail_map(
7511 l_map_index).delivery_detail_id).weight_uom_code;
7512
7513 l_quantity:=
7514 FTE_FREIGHT_PRICING_UTIL.convert_uom(
7515 l_uom,
7516 l_carrier_weight_uom,
7517 l_quantity,
7518 0);
7519
7520 IF (l_quantity IS NULL)
7521 THEN
7522 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
7523 END IF;
7524
7525 l_weight:=l_quantity;
7526
7527 l_quantity:=FTE_TL_CACHE.g_tl_shipment_line_rows(
7528 FTE_TL_CACHE.g_tl_delivery_detail_map(
7529 l_map_index).delivery_detail_id).volume;
7530 l_uom:=
7531 FTE_TL_CACHE.g_tl_shipment_line_rows(
7532 FTE_TL_CACHE.g_tl_delivery_detail_map(
7533 l_map_index).delivery_detail_id
7534 ).volume_uom_code;
7535
7536 l_quantity:=
7537 FTE_FREIGHT_PRICING_UTIL.convert_uom(
7538 l_uom,
7539 l_carrier_volume_uom,
7540 l_quantity,
7541 0);
7542
7543 IF (l_quantity IS NULL)
7544 THEN
7545 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
7546 END IF;
7547
7548 l_volume:=l_quantity;
7549
7550
7551
7552 FTE_TL_CACHE.Calculate_Dimensional_Weight(
7553 p_carrier_pref_rec=>FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index),
7554 p_weight=>l_weight,
7555 p_volume=>l_volume,
7556 x_dim_weight=>l_dim_weight,
7557 x_return_status=>l_return_status);
7558
7559 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
7560 THEN
7561 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
7562 THEN
7563 raise FTE_FREIGHT_PRICING_UTIL.g_tl_calc_dim_weight_fail;
7564 END IF;
7565 END IF;
7566
7567
7568 l_factor:=l_dim_weight/
7569 FTE_TL_CACHE.g_tl_delivery_leg_rows(i).weight;
7570
7571 ELSIF((
7572 p_cost_allocation_parameters.principal_alloc_basis
7573 =FTE_RTG_GLOBALS.G_CA_VOLUME_BASIS)
7574 AND(FTE_TL_CACHE.g_tl_delivery_leg_rows(i).volume>0))
7575 THEN
7576
7577 l_quantity:=
7578 FTE_TL_CACHE.g_tl_shipment_line_rows(
7579 FTE_TL_CACHE.g_tl_delivery_detail_map(
7580 l_map_index).delivery_detail_id).volume;
7581 l_uom:=
7582 FTE_TL_CACHE.g_tl_shipment_line_rows(
7583 FTE_TL_CACHE.g_tl_delivery_detail_map(
7584 l_map_index).delivery_detail_id
7585 ).volume_uom_code;
7586
7587 l_quantity:=
7588 FTE_FREIGHT_PRICING_UTIL.convert_uom(
7589 l_uom,
7590 l_carrier_volume_uom,
7591 l_quantity,
7592 0);
7593
7594 IF (l_quantity IS NULL)
7595 THEN
7596 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
7597 END IF;
7598 l_factor:=l_quantity/
7599 FTE_TL_CACHE.g_tl_delivery_leg_rows(i).volume;
7600
7601 ELSE
7602 l_factor:=0;
7603
7604 END IF;
7605
7606
7607 IF ((FTE_TL_CACHE.g_tl_delivery_leg_rows(i).is_parent_dleg IS NULL)
7608 OR (FTE_TL_CACHE.g_tl_delivery_leg_rows(i).is_parent_dleg='N'))
7609 THEN
7610 l_dtl_summary_only_flag:='N';
7611
7612 ELSE
7613 l_dtl_summary_only_flag:='Y';
7614 END IF;
7615
7616 Create_Dlv_Dtl_Price_Recs(
7617 p_trip_index=> p_trip_index,
7618 p_factor=> l_factor,
7619 p_dtl_rec=> FTE_TL_CACHE.g_tl_shipment_line_rows(
7620 FTE_TL_CACHE.g_tl_delivery_detail_map(
7621 l_map_index).delivery_detail_id),
7622 p_dleg_alloc_rec=> p_dleg_alloc_tab(FTE_TL_CACHE.g_tl_delivery_leg_rows(
7623 i).delivery_leg_id) ,
7624 p_cost_allocation_parameters=> p_cost_allocation_parameters,
7625 p_dim_weight=>l_dim_weight,
7626 p_only_summary_flag=>l_dtl_summary_only_flag,
7627 x_output_cost_tab=> x_output_cost_tab,
7628 x_return_status=> l_return_status);
7629
7630 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
7631 THEN
7632 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
7633 THEN
7634 raise FTE_FREIGHT_PRICING_UTIL.g_tl_cr_dlv_dtl_fail;
7635 END IF;
7636 END IF;
7637
7638 l_detail_summary:=l_factor * p_dleg_alloc_tab(FTE_TL_CACHE.g_tl_delivery_leg_rows(
7639 i).delivery_leg_id).total_dleg_charge;
7640
7641 l_detail_id:=FTE_TL_CACHE.g_tl_delivery_detail_map(
7642 l_map_index).delivery_detail_id;
7643
7644
7645
7646 l_parent_detail_id:=FTE_TL_CACHE.g_tl_shipment_line_rows(l_detail_id).parent_delivery_detail_id;
7647
7648 IF ((l_parent_detail_id IS NOT NULL) AND
7649 (FTE_TL_CACHE.g_tl_int_shipment_line_rows.EXISTS(l_parent_detail_id)))
7650 THEN
7651
7652 IF(l_detail_alloc_tab.EXISTS(l_parent_detail_id))
7653 THEN
7654 l_detail_alloc_tab(l_parent_detail_id).total_detail_charge:=
7655 l_detail_alloc_tab(l_parent_detail_id).total_detail_charge+l_detail_summary;
7656 ELSE
7657 l_detail_alloc_tab(l_parent_detail_id).total_detail_charge:=l_detail_summary;
7658
7659 END IF;
7660
7661 END IF;
7662
7663 l_map_index:=l_map_index+1;
7664
7665 END LOOP;
7666
7667
7668
7669 i:=i+1;
7670 END LOOP;
7671
7672 -- Details of Child dlegs
7673
7674 l_child_dleg_index_first:=
7675 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).child_dleg_reference;
7676 IF (l_child_dleg_index_first IS NOT NULL)
7677 THEN
7678
7679 IF (FTE_TL_CACHE.g_tl_trip_rows.EXISTS(p_trip_index+1))
7680 THEN
7681 l_child_dleg_index_last:=
7682 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index+1
7683 ).child_dleg_reference;
7684
7685
7686 ELSE
7687 l_child_dleg_index_last:=FTE_TL_CACHE.g_tl_chld_delivery_leg_rows.LAST + 1;
7688
7689 END IF;
7690
7691 i:=l_child_dleg_index_first;
7692 WHILE (( FTE_TL_CACHE.g_tl_chld_delivery_leg_rows.EXISTS(i)) AND
7693 (FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).trip_id=
7694 FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).trip_id) AND (i <l_child_dleg_index_last))
7695 LOOP
7696
7697 IF(NOT(FTE_TL_CACHE.g_tl_delivery_detail_hash.EXISTS(
7698 FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).delivery_id)))
7699 THEN
7700
7701 --FTE_FREIGHT_PRICING_UTIL.setmsg (
7702 -- p_api=>'Alloc_To_Details',
7703 -- p_exc=>'g_tl_no_dtl_on_dleg',
7704 -- p_delivery_leg_id=> FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).delivery_leg_id);
7705
7706
7707 --raise FTE_FREIGHT_PRICING_UTIL.g_tl_no_dtl_on_dleg;
7708
7709 l_map_index:=NULL;
7710 ELSE
7711
7712 l_map_index:=
7713 FTE_TL_CACHE.g_tl_delivery_detail_hash(
7714 FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).delivery_id);
7715
7716
7717 END IF;
7718
7719
7720
7721 WHILE((l_map_index IS NOT NULL) AND (FTE_TL_CACHE.g_tl_delivery_detail_map.EXISTS(l_map_index)
7722 )
7723 AND(FTE_TL_CACHE.g_tl_delivery_detail_map(
7724 l_map_index).delivery_id=
7725 FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).delivery_id))
7726 LOOP
7727 l_dim_weight:=NULL;
7728
7729 IF((p_cost_allocation_parameters.principal_alloc_basis=
7730 FTE_RTG_GLOBALS.G_CA_WEIGHT_BASIS)
7731 AND(FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).weight>0))
7732 THEN
7733
7734 l_quantity:=
7735 FTE_TL_CACHE.g_tl_shipment_line_rows(
7736 FTE_TL_CACHE.g_tl_delivery_detail_map(
7737 l_map_index).delivery_detail_id
7738 ).gross_weight;
7739 l_uom:=
7740 FTE_TL_CACHE.g_tl_shipment_line_rows(
7741 FTE_TL_CACHE.g_tl_delivery_detail_map(
7742 l_map_index).delivery_detail_id).weight_uom_code;
7743
7744 l_quantity:=
7745 FTE_FREIGHT_PRICING_UTIL.convert_uom(
7746 l_uom,
7747 l_carrier_weight_uom,
7748 l_quantity,
7749 0);
7750
7751 IF (l_quantity IS NULL)
7752 THEN
7753 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
7754 END IF;
7755
7756 l_weight:=l_quantity;
7757
7758 l_quantity:=FTE_TL_CACHE.g_tl_shipment_line_rows(
7759 FTE_TL_CACHE.g_tl_delivery_detail_map(
7760 l_map_index).delivery_detail_id).volume;
7761 l_uom:=
7762 FTE_TL_CACHE.g_tl_shipment_line_rows(
7763 FTE_TL_CACHE.g_tl_delivery_detail_map(
7764 l_map_index).delivery_detail_id
7765 ).volume_uom_code;
7766
7767 l_quantity:=
7768 FTE_FREIGHT_PRICING_UTIL.convert_uom(
7769 l_uom,
7770 l_carrier_volume_uom,
7771 l_quantity,
7772 0);
7773
7774 IF (l_quantity IS NULL)
7775 THEN
7776 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
7777 END IF;
7778
7779 l_volume:=l_quantity;
7780
7781
7782
7783 FTE_TL_CACHE.Calculate_Dimensional_Weight(
7784 p_carrier_pref_rec=>FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index),
7785 p_weight=>l_weight,
7786 p_volume=>l_volume,
7787 x_dim_weight=>l_dim_weight,
7788 x_return_status=>l_return_status);
7789
7790 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
7791 THEN
7792 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
7793 THEN
7794 raise FTE_FREIGHT_PRICING_UTIL.g_tl_calc_dim_weight_fail;
7795 END IF;
7796 END IF;
7797
7798
7799 l_factor:=l_dim_weight/
7800 FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).weight;
7801
7802 ELSIF((
7803 p_cost_allocation_parameters.principal_alloc_basis
7804 =FTE_RTG_GLOBALS.G_CA_VOLUME_BASIS)
7805 AND(FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).volume>0))
7806 THEN
7807
7808 l_quantity:=
7809 FTE_TL_CACHE.g_tl_shipment_line_rows(
7810 FTE_TL_CACHE.g_tl_delivery_detail_map(
7811 l_map_index).delivery_detail_id).volume;
7812 l_uom:=
7813 FTE_TL_CACHE.g_tl_shipment_line_rows(
7814 FTE_TL_CACHE.g_tl_delivery_detail_map(
7815 l_map_index).delivery_detail_id
7816 ).volume_uom_code;
7817
7818 l_quantity:=
7819 FTE_FREIGHT_PRICING_UTIL.convert_uom(
7820 l_uom,
7821 l_carrier_volume_uom,
7822 l_quantity,
7823 0);
7824
7825 IF (l_quantity IS NULL)
7826 THEN
7827 raise FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail;
7828 END IF;
7829 l_factor:=l_quantity/
7830 FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).volume;
7831
7832 ELSE
7833 l_factor:=0;
7834
7835 END IF;
7836
7837
7838 IF ((FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).is_parent_dleg IS NULL)
7839 OR (FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(i).is_parent_dleg='N'))
7840 THEN
7841 l_dtl_summary_only_flag:='N';
7842
7843 ELSE
7844 l_dtl_summary_only_flag:='Y';
7845 END IF;
7846
7847 Create_Dlv_Dtl_Price_Recs(
7848 p_trip_index=> p_trip_index,
7849 p_factor=> l_factor,
7850 p_dtl_rec=> FTE_TL_CACHE.g_tl_shipment_line_rows(
7851 FTE_TL_CACHE.g_tl_delivery_detail_map(
7852 l_map_index).delivery_detail_id),
7853 p_dleg_alloc_rec=> p_dleg_alloc_tab(FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(
7854 i).delivery_leg_id) ,
7855 p_cost_allocation_parameters=> p_cost_allocation_parameters,
7856 p_dim_weight=>l_dim_weight,
7857 p_only_summary_flag=>l_dtl_summary_only_flag,
7858 x_output_cost_tab=> x_output_cost_tab,
7859 x_return_status=> l_return_status);
7860
7861 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
7862 THEN
7863 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
7864 THEN
7865 raise FTE_FREIGHT_PRICING_UTIL.g_tl_cr_dlv_dtl_fail;
7866 END IF;
7867 END IF;
7868
7869 l_detail_summary:=l_factor * p_dleg_alloc_tab(FTE_TL_CACHE.g_tl_chld_delivery_leg_rows(
7870 i).delivery_leg_id).total_dleg_charge;
7871
7872 l_detail_id:=FTE_TL_CACHE.g_tl_delivery_detail_map(
7873 l_map_index).delivery_detail_id;
7874
7875
7876 l_parent_detail_id:=FTE_TL_CACHE.g_tl_shipment_line_rows(l_detail_id).parent_delivery_detail_id;
7877
7878 IF ((l_parent_detail_id IS NOT NULL) AND
7879 (FTE_TL_CACHE.g_tl_int_shipment_line_rows.EXISTS(l_parent_detail_id)))
7880 THEN
7881
7882 IF(l_detail_alloc_tab.EXISTS(l_parent_detail_id))
7883 THEN
7884 l_detail_alloc_tab(l_parent_detail_id).total_detail_charge:=
7885 l_detail_alloc_tab(l_parent_detail_id).total_detail_charge+l_detail_summary;
7886 ELSE
7887 l_detail_alloc_tab(l_parent_detail_id).total_detail_charge:=l_detail_summary;
7888
7889 END IF;
7890
7891 END IF;
7892
7893 l_map_index:=l_map_index+1;
7894
7895 END LOOP;
7896
7897
7898
7899 i:=i+1;
7900 END LOOP;
7901
7902 END IF;
7903
7904
7905 Alloc_Charges_To_Int_Details(
7906 p_trip_index=>p_trip_index,
7907 p_cost_allocation_parameters=>p_cost_allocation_parameters,
7908 p_detail_alloc_tab=>l_detail_alloc_tab,
7909 x_output_cost_tab=>x_output_cost_tab,
7910 x_return_status=>l_return_status);
7911
7912 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
7913 THEN
7914 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
7915 THEN
7916 raise FTE_FREIGHT_PRICING_UTIL.g_tl_mdc_alloc_int_dtl_fail;
7917 END IF;
7918 END IF;
7919
7920
7921 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_To_Details');
7922 IF (l_warning_count > 0)
7923 THEN
7924 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
7925 END IF;
7926 EXCEPTION
7927
7928 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_mdc_alloc_int_dtl_fail THEN
7929 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7930 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_To_Details',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_mdc_alloc_int_dtl_fail');
7931 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_To_Details');
7932
7933
7934 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_no_dtl_on_dleg THEN
7935 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7936 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_To_Details',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_no_dtl_on_dleg');
7937 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_To_Details');
7938
7939
7940 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_conv_currency_fail THEN
7941 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7942 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_To_Details',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_conv_currency_fail');
7943 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_To_Details');
7944
7945 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_cr_dlv_dtl_fail THEN
7946 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
7947 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_To_Details',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_cr_dlv_dtl_fail');
7948 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_To_Details');
7949
7950
7951 WHEN others THEN
7952 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
7953 FTE_FREIGHT_PRICING_UTIL.set_exception('Alloc_To_Details',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
7954 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
7955 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Alloc_To_Details');
7956
7957
7958 END Alloc_To_Details;
7959
7960
7961 --Creates the trip,stop,dleg level price recs
7962 --
7963 PROCEDURE Create_Summary_Price_Recs(
7964 p_trip_index IN NUMBER,
7965 p_trip_charges_rec IN FTE_TL_CACHE.TL_TRIP_OUTPUT_REC_TYPE,
7966 p_stop_charges_tab IN FTE_TL_CACHE.TL_TRIP_STOP_OUTPUT_TAB_TYPE,
7967 p_dleg_alloc_tab IN TL_dleg_alloc_tab_type,
7968 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
7969 x_output_cost_tab IN OUT NOCOPY
7970 FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type,
7971 x_return_status OUT NOCOPY Varchar2) IS
7972
7973 i NUMBER;
7974 l_count NUMBER;
7975 l_stop_count NUMBER;
7976 l_return_status VARCHAR2(1);
7977
7978 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
7979
7980 l_warning_count NUMBER:=0;
7981 BEGIN
7982
7983 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
7984 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'Create_Summary_Price_Recs','start');
7985
7986
7987 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
7988
7989
7990 Create_Trip_Level_Price_Recs(
7991 p_trip_index=> p_trip_index,
7992 p_trip_charges_rec=> p_trip_charges_rec,
7993 p_stop_charges_tab=> p_stop_charges_tab ,
7994 p_cost_allocation_parameters=> p_cost_allocation_parameters,
7995 x_output_cost_tab=> x_output_cost_tab,
7996 x_return_status=> l_return_status);
7997
7998 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
7999 THEN
8000 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
8001 THEN
8002 raise FTE_FREIGHT_PRICING_UTIL.g_tl_cr_trp_price_recs_fail;
8003 END IF;
8004 END IF;
8005
8006 -- p_stop_charges_tab is indexed by stop_id, insert stop charges in order
8007 -- of sequence number
8008
8009 i:=FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).stop_reference;
8010
8011 l_count:=0;
8012 l_stop_count:=FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).number_of_stops;
8013 WHILE (l_count < l_stop_count)
8014 LOOP
8015
8016 --Multiple change dont index p_stop_charges_tab by stop id use stop index
8017 Create_Stop_Level_Price_Recs(
8018 p_trip_index=> p_trip_index ,
8019 p_stop_charges_rec=> p_stop_charges_tab(i) , --Multiple change
8020 p_cost_allocation_parameters=> p_cost_allocation_parameters,
8021 x_output_cost_tab=> x_output_cost_tab,
8022 x_return_status=> l_return_status);
8023
8024 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
8025 THEN
8026 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
8027 THEN
8028 raise FTE_FREIGHT_PRICING_UTIL.g_tl_cr_stp_price_recs_fail;
8029 END IF;
8030 END IF;
8031
8032 l_count:=l_count+1;
8033 i:=i+1;
8034 END LOOP;
8035
8036
8037 i:=p_dleg_alloc_tab.FIRST;
8038 WHILE(i IS NOT NULL)
8039 LOOP
8040
8041
8042 Create_Dleg_Level_Price_Recs(
8043 p_trip_index=> p_trip_index,
8044 p_dleg_alloc_rec=> p_dleg_alloc_tab(i),
8045 p_cost_allocation_parameters=>p_cost_allocation_parameters,
8046 x_output_cost_tab=> x_output_cost_tab,
8047 x_return_status=> l_return_status);
8048
8049 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
8050 THEN
8051 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
8052 THEN
8053 raise FTE_FREIGHT_PRICING_UTIL.g_tl_cr_dlg_price_recs_fail;
8054 END IF;
8055 END IF;
8056
8057
8058 i:=p_dleg_alloc_tab.NEXT(i);
8059
8060 END LOOP;
8061
8062 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Summary_Price_Recs');
8063 IF (l_warning_count > 0)
8064 THEN
8065 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
8066 END IF;
8067 EXCEPTION
8068
8069 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_cr_trp_price_recs_fail THEN
8070 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
8071 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Summary_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_cr_trp_price_recs_fail');
8072 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Summary_Price_Recs');
8073
8074 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_cr_stp_price_recs_fail THEN
8075 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
8076 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Summary_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_cr_stp_price_recs_fail');
8077 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Summary_Price_Recs');
8078
8079 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_cr_dlg_price_recs_fail THEN
8080 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
8081 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Summary_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_cr_dlg_price_recs_fail');
8082 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Summary_Price_Recs');
8083
8084
8085 WHEN others THEN
8086 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
8087 FTE_FREIGHT_PRICING_UTIL.set_exception('Create_Summary_Price_Recs',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
8088 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
8089 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'Create_Summary_Price_Recs');
8090
8091
8092 END Create_Summary_Price_Recs;
8093
8094 PROCEDURE TL_COST_ALLOCATION(
8095 p_trip_index IN NUMBER,
8096 p_trip_charges_rec IN FTE_TL_CACHE.TL_trip_output_rec_type ,
8097 p_stop_charges_tab IN
8098 FTE_TL_CACHE.TL_trip_stop_output_tab_type,
8099 p_cost_allocation_parameters IN TL_allocation_params_rec_type,
8100 x_output_cost_tab IN OUT NOCOPY
8101 FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type,
8102 x_return_status OUT NOCOPY VARCHAR2) IS
8103
8104
8105 l_stop_input_hash DBMS_UTILITY.NUMBER_ARRAY;
8106 l_stop_output_hash DBMS_UTILITY.NUMBER_ARRAY;
8107 l_dleg_alloc_tab TL_dleg_alloc_TAB_TYPE;
8108
8109 l_return_status VARCHAR2(1);
8110
8111 l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
8112
8113 l_warning_count NUMBER:=0;
8114
8115 i NUMBER;
8116 l_distance_uom WSH_TRIP_STOPS.distance_uom%type;
8117 l_stop_index_low NUMBER;
8118 l_stop_index_high NUMBER;
8119
8120 CURSOR c_lock_wts(c_trip_id NUMBER)
8121 IS
8122 SELECT stop_id
8123 FROM wsh_trip_stops
8124 WHERE trip_id = c_trip_id
8125 FOR UPDATE NOWAIT;
8126
8127 BEGIN
8128
8129 FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
8130 FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'TL_COST_ALLOCATION','start');
8131
8132
8133 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
8134
8135 Initialize_Freight_Codes(
8136 x_return_status=> l_return_status);
8137
8138
8139 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
8140 THEN
8141 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
8142 THEN
8143 raise FTE_FREIGHT_PRICING_UTIL.g_tl_init_fr_codes_fail;
8144 END IF;
8145 END IF;
8146
8147 --3756411
8148 --Clear bulk arrays
8149 IF (p_cost_allocation_parameters.output_type='T')
8150 THEN
8151 Clear_Bulk_Arrays(x_return_status=>x_return_status);
8152 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
8153 THEN
8154 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
8155 THEN
8156 raise FTE_FREIGHT_PRICING_UTIL.g_tl_clr_bulk_arr_fail;
8157 END IF;
8158 END IF;
8159
8160
8161 END IF;
8162
8163
8164 Create_Stop_Hashes(
8165 p_trip_index=> p_trip_index ,
8166 p_stop_charges_tab=> p_stop_charges_tab ,
8167 x_stop_input_hash=> l_stop_input_hash,
8168 x_stop_output_hash=> l_stop_output_hash,
8169 x_return_status=> l_return_status);
8170
8171 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
8172 THEN
8173 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
8174 THEN
8175 raise FTE_FREIGHT_PRICING_UTIL.g_tl_cr_stp_hash_fail;
8176 END IF;
8177 END IF;
8178
8179
8180 IF(FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).dead_head='N')
8181 THEN
8182
8183 Alloc_Loading_Stopoff_To_Dlegs(
8184 p_trip_index=> p_trip_index,
8185 p_trip_charges_rec=> p_trip_charges_rec,
8186 p_stop_charges_tab=> p_stop_charges_tab,
8187 p_stop_input_hash=> l_stop_input_hash,
8188 p_stop_output_hash=> l_stop_output_hash,
8189 p_cost_allocation_parameters=> p_cost_allocation_parameters,
8190 x_dleg_alloc_tab=> l_dleg_alloc_tab,
8191 x_return_status=> l_return_status);
8192
8193 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
8194 THEN
8195 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
8196 THEN
8197 raise FTE_FREIGHT_PRICING_UTIL.g_tl_alloc_ld_stpoff_dleg_fail;
8198 END IF;
8199 END IF;
8200
8201
8202
8203 Alloc_Charges_To_Dlegs(
8204 p_trip_index=> p_trip_Index,
8205 p_trip_charges_rec=> p_trip_charges_rec,
8206 p_stop_charges_tab=> p_stop_charges_tab,
8207 p_stop_input_hash=> l_stop_input_hash,
8208 p_stop_output_hash=> l_stop_output_hash,
8209 p_cost_allocation_parameters=> p_cost_allocation_parameters,
8210 x_dleg_alloc_tab=> l_dleg_alloc_tab,
8211 x_return_status=> l_return_status);
8212
8213 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
8214 THEN
8215 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
8216 THEN
8217 raise FTE_FREIGHT_PRICING_UTIL.g_tl_alloc_chrges_dleg_fail;
8218 END IF;
8219 END IF;
8220
8221
8222 Alloc_To_Details(
8223 p_trip_index=> p_trip_index,
8224 p_dleg_alloc_tab=> l_dleg_alloc_tab,
8225 p_cost_allocation_parameters=> p_cost_allocation_parameters,
8226 x_output_cost_tab=> x_output_cost_tab,
8227 x_return_status=> l_return_status);
8228
8229 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
8230 THEN
8231 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
8232 THEN
8233 raise FTE_FREIGHT_PRICING_UTIL.g_tl_alloc_to_dtls_fail;
8234 END IF;
8235 END IF;
8236 END IF;
8237
8238 Create_Summary_Price_Recs(
8239 p_trip_index=> p_trip_index,
8240 p_trip_charges_rec=> p_trip_charges_rec,
8241 p_stop_charges_tab=> p_stop_charges_tab,
8242 p_dleg_alloc_tab=> l_dleg_alloc_tab,
8243 p_cost_allocation_parameters=> p_cost_allocation_parameters,
8244 x_output_cost_tab=> x_output_cost_tab,
8245 x_return_status=> l_return_status);
8246
8247 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
8248 THEN
8249 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
8250 THEN
8251 raise FTE_FREIGHT_PRICING_UTIL.g_tl_cr_summry_price_recs_fail;
8252 END IF;
8253 END IF;
8254
8255
8256 --3756411
8257 --Clear bulk arrays
8258 IF (p_cost_allocation_parameters.output_type='T')
8259 THEN
8260 Bulk_Insert_Temp(x_return_status=>x_return_status);
8261 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
8262 THEN
8263 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
8264 THEN
8265 raise FTE_FREIGHT_PRICING_UTIL.g_tl_bulk_ins_tmp_fail;
8266 END IF;
8267 END IF;
8268
8269
8270 Clear_Bulk_Arrays(x_return_status=>x_return_status);
8271 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS
8272 THEN
8273 IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING
8274 THEN
8275 raise FTE_FREIGHT_PRICING_UTIL.g_tl_clr_bulk_arr_fail;
8276 END IF;
8277 END IF;
8278
8279
8280 END IF;
8281
8282
8283
8284 FTE_FREIGHT_PRICING.print_fc_temp_rows(
8285 p_fc_temp_rows => x_output_cost_tab,
8286 x_return_status => l_return_status);
8287
8288 -- DBI bug3901280
8289
8290 FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,
8291 'p_cost_allocation_parameters.output_type='||p_cost_allocation_parameters.output_type);
8292 FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_trip_index='||p_trip_index);
8293
8294 IF ((FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).trip_id <> FTE_TL_CACHE.FAKE_TRIP_ID) AND (p_cost_allocation_parameters.output_type='M' OR
8295 (p_cost_allocation_parameters.output_type='T'
8296 AND p_trip_index = FTE_TL_CACHE.g_tl_trip_rows.LAST))) THEN
8297
8298 FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'trying to get lock of wsh_trip_stops...');
8299 OPEN c_lock_wts(FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).trip_id);
8300 CLOSE c_lock_wts;
8301 FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'got update lock of wsh_trip_stops');
8302
8303 l_stop_index_low := FTE_TL_CACHE.g_tl_trip_rows(p_trip_index).stop_reference;
8304 IF p_cost_allocation_parameters.output_type='M' THEN
8305 IF p_trip_index = FTE_TL_CACHE.g_tl_trip_rows.LAST THEN
8306 l_stop_index_high := FTE_TL_CACHE.g_tl_trip_stop_rows.LAST - 1;
8307 ELSE
8308 l_stop_index_high := FTE_TL_CACHE.g_tl_trip_rows(p_trip_index+1).stop_reference - 2;
8309 END IF;
8310 ELSE
8311 l_stop_index_high := FTE_TL_CACHE.g_tl_trip_stop_rows.LAST - 1;
8312 END IF;
8313 FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_stop_index_low='||l_stop_index_low);
8314 FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_stop_index_high='||l_stop_index_high);
8315
8316 IF l_stop_index_low <= l_stop_index_high THEN
8317
8318 g_stop_id_tbl.DELETE;
8319 g_distance_to_next_stop_tbl.DELETE;
8320
8321 FOR i in l_stop_index_low..l_stop_index_high LOOP
8322 g_stop_id_tbl(i) := FTE_TL_CACHE.g_tl_trip_stop_rows(i).stop_id;
8323 g_distance_to_next_stop_tbl(i) := FTE_TL_CACHE.g_tl_trip_stop_rows(i).distance_to_next_stop;
8324 END LOOP;
8325
8326 l_distance_uom := FTE_TL_CACHE.g_tl_carrier_pref_rows(p_trip_index).distance_uom;
8327
8328 FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'bulk updating wsh_trip_stops...');
8329 FORALL i IN g_stop_id_tbl.FIRST..g_stop_id_tbl.LAST
8330 UPDATE wsh_trip_stops
8331 SET distance_to_next_stop = g_distance_to_next_stop_tbl(i),
8332 distance_uom = l_distance_uom
8333 WHERE stop_id = g_stop_id_tbl(i);
8334 FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'bulk update wsh_trip_stops done');
8335
8336 ELSE -- l_stop_index_low <= l_stop_index_high
8337 FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,
8338 'stop index range is wrong. wsh_trip_stops is not updated with distance');
8339 END IF;
8340 END IF;
8341
8342 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'TL_COST_ALLOCATION');
8343
8344 IF (l_warning_count > 0)
8345 THEN
8346 x_return_status:=WSH_UTIL_CORE.G_RET_STS_WARNING;
8347 END IF;
8348 EXCEPTION
8349
8350 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_bulk_ins_tmp_fail THEN
8351 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
8352 FTE_FREIGHT_PRICING_UTIL.set_exception('TL_COST_ALLOCATION',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_bulk_ins_tmp_fail');
8353 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'TL_COST_ALLOCATION');
8354
8355
8356 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_clr_bulk_arr_fail THEN
8357 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
8358 FTE_FREIGHT_PRICING_UTIL.set_exception('TL_COST_ALLOCATION',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_clr_bulk_arr_fail');
8359 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'TL_COST_ALLOCATION');
8360
8361
8362 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_cr_stp_hash_fail THEN
8363 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
8364 FTE_FREIGHT_PRICING_UTIL.set_exception('TL_COST_ALLOCATION',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_cr_stp_hash_fail');
8365 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'TL_COST_ALLOCATION');
8366
8367 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_alloc_ld_stpoff_dleg_fail THEN
8368 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
8369 FTE_FREIGHT_PRICING_UTIL.set_exception('TL_COST_ALLOCATION',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_alloc_ld_stpoff_dleg_fail');
8370 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'TL_COST_ALLOCATION');
8371
8372 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_alloc_chrges_dleg_fail THEN
8373 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
8374 FTE_FREIGHT_PRICING_UTIL.set_exception('TL_COST_ALLOCATION',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_alloc_chrges_dleg_fail');
8375 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'TL_COST_ALLOCATION');
8376
8377 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_alloc_to_dtls_fail THEN
8378 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
8379 FTE_FREIGHT_PRICING_UTIL.set_exception('TL_COST_ALLOCATION',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_alloc_to_dtls_fail');
8380 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'TL_COST_ALLOCATION');
8381
8382 WHEN FTE_FREIGHT_PRICING_UTIL.g_tl_cr_summry_price_recs_fail THEN
8383 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
8384 FTE_FREIGHT_PRICING_UTIL.set_exception('TL_COST_ALLOCATION',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_tl_cr_summry_price_recs_fail');
8385 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'TL_COST_ALLOCATION');
8386
8387
8388 WHEN others THEN
8389 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
8390 FTE_FREIGHT_PRICING_UTIL.set_exception('TL_COST_ALLOCATION',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
8391 FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
8392 FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'TL_COST_ALLOCATION');
8393
8394
8395 END TL_COST_ALLOCATION;
8396
8397
8398 PROCEDURE TEST IS
8399
8400 l_cost_allocation_parameters TL_allocation_params_rec_type;
8401
8402 l_trip_rec FTE_TL_CACHE.TL_trip_data_input_rec_type;
8403 l_stop_rec FTE_TL_CACHE.TL_TRIP_STOP_INPUT_REC_TYPE;
8404 l_stop_tab FTE_TL_CACHE.TL_trip_stop_input_tab_type;
8405 l_carrier_pref FTE_TL_CACHE.TL_carrier_pref_rec_type;
8406 l_dleg_rec FTE_TL_CACHE.TL_delivery_leg_rec_type;
8407
8408 l_dtl_rec FTE_FREIGHT_PRICING.shipment_line_rec_type;
8409
8410 l_trip_charges_rec FTE_TL_CACHE.TL_trip_output_rec_type;
8411 l_stop_charges_tab FTE_TL_CACHE.TL_trip_stop_output_tab_type;
8412 l_stop_charges_rec FTE_TL_CACHE.TL_trip_stop_output_rec_type;
8413
8414 l_return_status VARCHAR2(1);
8415 l_output_cost_tab FTE_FREIGHT_PRICING.Freight_Cost_Temp_Tab_Type;
8416 l_map_rec FTE_TL_CACHE.TL_DLV_DETAIL_MAP_REC_TYPE;
8417 i NUMBER;
8418 l_dlv_id NUMBER;
8419 l_map_index NUMBER;
8420
8421
8422 l_lane_rows dbms_utility.number_array;
8423 l_schedule_rows dbms_utility.number_array;
8424 l_vehicle_rows dbms_utility.number_array;
8425
8426 BEGIN
8427
8428
8429 -- apps initialize
8430 FND_GLOBAL.apps_initialize(1068,21623,660);
8431
8432 -- initialize logging
8433 FTE_FREIGHT_PRICING_UTIL.initialize_logging(x_return_status =>
8434 l_return_status);
8435
8436
8437
8438
8439
8440 l_lane_rows(1):=2609;
8441 l_schedule_rows(1):=NULL;
8442 l_vehicle_rows(1):=1201;
8443
8444 FTE_TL_CACHE.TL_BUILD_CACHE_FOR_TRP_COMPARE(
8445 p_wsh_trip_id=> 1117828,
8446 p_lane_rows=>l_lane_rows,
8447 p_schedule_rows=>l_schedule_rows,
8448 p_vehicle_rows=>l_vehicle_rows,
8449 x_return_status=>l_return_status);
8450
8451
8452 FTE_TL_CACHE.Display_Cache;
8453
8454
8455
8456 --Populate trip charges
8457
8458 l_trip_charges_rec.trip_id:=1117828;
8459 l_trip_charges_rec.base_dist_load_chrg:=75;
8460 l_trip_charges_rec.base_dist_load_unit_chrg:=0.5;
8461 l_trip_charges_rec.base_dist_unload_chrg:=0;
8462 l_trip_charges_rec.base_dist_unload_unit_chrg:=0;
8463 l_trip_charges_rec.base_unit_chrg:=200;
8464 l_trip_charges_rec.base_unit_unit_chrg:=0.6;
8465 l_trip_charges_rec.base_time_chrg:=75;
8466 l_trip_charges_rec.base_time_unit_chrg:=0.5;
8467 l_trip_charges_rec.base_flat_chrg:=150;
8468 l_trip_charges_rec.stop_off_chrg:=80;
8469 l_trip_charges_rec.out_of_route_chrg:=50;
8470 l_trip_charges_rec.document_chrg:=0;
8471 l_trip_charges_rec.handling_chrg:=130;
8472 l_trip_charges_rec.handling_chrg_basis:=
8473 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8474 l_trip_charges_rec.cm_discount_percent:=0;
8475 l_trip_charges_rec.cm_discount_value:=0;
8476 l_trip_charges_rec.currency:='USD';
8477 l_trip_charges_rec.total_trip_rate:=555;
8478 --Populate stop charges
8479
8480 l_stop_charges_rec.stop_id:=1261051;
8481 l_stop_charges_rec.trip_id:=1117828;
8482 l_stop_charges_rec.weekday_layover_chrg:=0;
8483 l_stop_charges_rec.weekend_layover_chrg:=0;
8484 l_stop_charges_rec.loading_chrg:=0;
8485 l_stop_charges_rec.loading_chrg_basis:=FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8486 l_stop_charges_rec.ast_loading_chrg:=0;
8487 l_stop_charges_rec.ast_loading_chrg_basis:=
8488 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8489 l_stop_charges_rec.unloading_chrg:=0;
8490 l_stop_charges_rec.unloading_chrg_basis:=FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8491 l_stop_charges_rec.ast_unloading_chrg:=0;
8492 l_stop_charges_rec.ast_unloading_chrg_basis:=
8493 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8494 l_stop_charges_rec.origin_surchrg:=120;
8495 l_stop_charges_rec.destination_surchrg:=0;
8496 l_stop_charges_rec.fac_loading_chrg:=50;
8497 l_stop_charges_rec.fac_loading_chrg_basis:=
8498 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8499 l_stop_charges_rec.fac_ast_loading_chrg:=0;
8500 l_stop_charges_rec.fac_ast_loading_chrg_basis:=
8501 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8502 l_stop_charges_rec.fac_unloading_chrg:=0;
8503 l_stop_charges_rec.fac_unloading_chrg_basis:=
8504 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8505 l_stop_charges_rec.fac_ast_unloading_chrg:=0;
8506 l_stop_charges_rec.fac_ast_unloading_chrg_basis:=
8507 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8508 l_stop_charges_rec.fac_handling_chrg:=0;
8509 l_stop_charges_rec.fac_handling_chrg_basis:=
8510 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8511 l_stop_charges_rec.fac_currency:='USD';
8512
8513 l_stop_charges_tab(1):=l_stop_charges_rec;
8514
8515
8516 l_stop_charges_rec.stop_id:=1261052;
8517 l_stop_charges_rec.trip_id:=1117828;
8518 l_stop_charges_rec.weekday_layover_chrg:=330;
8519 l_stop_charges_rec.weekend_layover_chrg:=10;
8520 l_stop_charges_rec.loading_chrg:=0;
8521 l_stop_charges_rec.loading_chrg_basis:=FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8522 l_stop_charges_rec.ast_loading_chrg:=0;
8523 l_stop_charges_rec.ast_loading_chrg_basis:=
8524 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8525 l_stop_charges_rec.unloading_chrg:=0;
8526 l_stop_charges_rec.unloading_chrg_basis:=FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8527 l_stop_charges_rec.ast_unloading_chrg:=25;
8528 l_stop_charges_rec.ast_unloading_chrg_basis:=
8529 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8530 l_stop_charges_rec.origin_surchrg:=0;
8531 l_stop_charges_rec.destination_surchrg:=0;
8532 l_stop_charges_rec.fac_loading_chrg:=0;
8533 l_stop_charges_rec.fac_loading_chrg_basis:=
8534 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8535 l_stop_charges_rec.fac_ast_loading_chrg:=0;
8536 l_stop_charges_rec.fac_ast_loading_chrg_basis:=
8537 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8538 l_stop_charges_rec.fac_unloading_chrg:=55;
8539 l_stop_charges_rec.fac_unloading_chrg_basis:=
8540 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8541 l_stop_charges_rec.fac_ast_unloading_chrg:=0;
8542 l_stop_charges_rec.fac_ast_unloading_chrg_basis:=
8543 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8544 l_stop_charges_rec.fac_handling_chrg:=75;
8545 l_stop_charges_rec.fac_handling_chrg_basis:=
8546 FTE_RTG_GLOBALS.G_VOLUME_BASIS;
8547 l_stop_charges_rec.fac_currency:='USD';
8548
8549 l_stop_charges_tab(2):=l_stop_charges_rec;
8550
8551
8552
8553
8554
8555 l_cost_allocation_parameters.principal_alloc_basis:=FTE_RTG_GLOBALS.G_CA_VOLUME_BASIS;
8556 l_cost_allocation_parameters.distance_alloc_method:=
8557 FTE_RTG_GLOBALS.G_CA_DIRECT_DISTANCE;
8558 l_cost_allocation_parameters.tl_stop_alloc_method:=FTE_RTG_GLOBALS.G_CA_DELIVERY_STOP;
8559 l_cost_allocation_parameters.output_type:='T';
8560 l_cost_allocation_parameters.comparison_request_id:=101101;
8561
8562
8563 TL_COST_ALLOCATION(
8564 1,
8565 l_trip_charges_rec,
8566 l_stop_charges_tab,
8567 l_cost_allocation_parameters,
8568 l_output_cost_tab ,
8569 l_return_status);
8570
8571 i:=l_output_cost_tab.FIRST;
8572 WHILE ( i IS NOT NULL)
8573 LOOP
8574 DisplayCostRec(l_output_cost_tab(i));
8575
8576 i:=l_output_cost_tab.NEXT(i);
8577 END LOOP;
8578
8579 FTE_FREIGHT_PRICING_UTIL.close_logs;
8580 END TEST;
8581
8582
8583 END FTE_TL_COST_ALLOCATION;
8584