DBA Data[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