1 PACKAGE FTE_FREIGHT_PRICING as
2 /* $Header: FTEFRPRS.pls 120.2 2005/11/16 14:38:37 mechawla noship $ */
3
4 -- Global Variables
5
6 g_package_name CONSTANT VARCHAR2(50) := 'FTE_FREIGHT_PRICING';
7
8 g_hash_base NUMBER := 1;
9 g_hash_size NUMBER := power(2, 25);
10
11 G_CONTAINER_BASIS NUMBER := 1;
12 G_VOLUME_BASIS NUMBER := 2;
13 G_WEIGHT_BASIS NUMBER := 3;
14
15 G_OBJECTIVE_HIGHEST VARCHAR2(30) := 'HIGHEST';
16 G_OBJECTIVE_LOWEST VARCHAR2(30) := 'LOWEST';
17
18 G_GROUPING_SHIPMENT VARCHAR2(30) := 'SHIPMENT';
19 G_GROUPING_CONTAINER VARCHAR2(30) := 'CONTAINER';
20
21 G_AGGREGATION_WITHIN VARCHAR2(30) := 'WITHIN';
22 G_AGGREGATION_ACROSS VARCHAR2(30) := 'ACROSS';
23
24 G_PATTERN_1 NUMBER := 1;
25 G_PATTERN_1_NAME VARCHAR2(30) := 'SC_CB';
26 G_PATTERN_2 NUMBER := 2;
27 G_PATTERN_2_NAME VARCHAR2(30) := 'SC_WB';
28 G_PATTERN_3 NUMBER := 3;
29 G_PATTERN_3_NAME VARCHAR2(30) := 'SC_VB';
30 G_PATTERN_4 NUMBER := 4;
31 G_PATTERN_4_NAME VARCHAR2(30) := 'MC_CB';
32 G_PATTERN_5 NUMBER := 5;
33 G_PATTERN_5_NAME VARCHAR2(30) := 'MC_WB';
34 G_PATTERN_6 NUMBER := 6;
35 G_PATTERN_6_NAME VARCHAR2(30) := 'MC_VB';
36 G_PATTERN_7 NUMBER := 7;
37 G_PATTERN_7_NAME VARCHAR2(30) := 'MC_MY';
38 G_PATTERN_8 NUMBER := 8;
39 G_PATTERN_8_NAME VARCHAR2(30) := 'MC_MN';
40 G_PATTERN_9 NUMBER := 9;
41 G_PATTERN_9_NAME VARCHAR2(30) := 'LI_WB';
42 G_PATTERN_10 NUMBER := 10;
43 G_PATTERN_10_NAME VARCHAR2(30) := 'LI_VB';
44
45 -- pricing events
46 G_LINE_EVENT_NUM NUMBER := 1;
47 G_CHARGE_EVENT_NUM NUMBER := 2;
48 G_LINE_EVENT_CODE VARCHAR2(30) := 'LINE';
49 G_CHARGE_EVENT_CODE VARCHAR2(30) := 'PRICE_LOAD'; -- should have a proper value (say FTE_CHARGE_EVENT)
50
51 TYPE shipment_line_rec_type IS RECORD
52 (delivery_detail_id NUMBER,
53 delivery_id NUMBER,
54 delivery_leg_id NUMBER,
55 reprice_required VARCHAR2(1),
56 parent_delivery_detail_id NUMBER,
57 customer_id NUMBER,
58 sold_to_contact_id NUMBER,
59 inventory_item_id NUMBER,
60 item_description VARCHAR2(250),
61 hazard_class_id NUMBER,
62 country_of_origin VARCHAR2(50),
63 classification VARCHAR2(30),
64 requested_quantity NUMBER,
65 requested_quantity_uom VARCHAR2(3),
66 master_container_item_id NUMBER,
67 detail_container_item_id NUMBER,
68 customer_item_id NUMBER,
69 net_weight NUMBER,
70 organization_id NUMBER,
71 container_flag VARCHAR2(1),
72 container_type_code VARCHAR2(30),
73 container_name VARCHAR2(30),
74 fill_percent NUMBER,
75 gross_weight NUMBER,
76 currency_code VARCHAR2(15),
77 freight_class_cat_id NUMBER,
78 commodity_code_cat_id NUMBER,
79 weight_uom_code VARCHAR2(3),
80 volume NUMBER,
81 volume_uom_code VARCHAR2(3),
82 tp_attribute_category VARCHAR2(240),
83 tp_attribute1 VARCHAR2(240),
84 tp_attribute2 VARCHAR2(240),
85 tp_attribute3 VARCHAR2(240),
86 tp_attribute4 VARCHAR2(240),
87 tp_attribute5 VARCHAR2(240),
88 tp_attribute6 VARCHAR2(240),
89 tp_attribute7 VARCHAR2(240),
90 tp_attribute8 VARCHAR2(240),
91 tp_attribute9 VARCHAR2(240),
92 tp_attribute10 VARCHAR2(240),
93 tp_attribute11 VARCHAR2(240),
94 tp_attribute12 VARCHAR2(240),
95 tp_attribute13 VARCHAR2(240),
96 tp_attribute14 VARCHAR2(240),
97 tp_attribute15 VARCHAR2(240),
98 attribute_category VARCHAR2(150),
99 attribute1 VARCHAR2(150),
100 attribute2 VARCHAR2(150),
101 attribute3 VARCHAR2(150),
102 attribute4 VARCHAR2(150),
103 attribute5 VARCHAR2(150),
104 attribute6 VARCHAR2(150),
105 attribute7 VARCHAR2(150),
106 attribute8 VARCHAR2(150),
107 attribute9 VARCHAR2(150),
108 attribute10 VARCHAR2(150),
109 attribute11 VARCHAR2(150),
110 attribute12 VARCHAR2(150),
111 attribute13 VARCHAR2(150),
112 attribute14 VARCHAR2(150),
113 attribute15 VARCHAR2(150),
114 source_type VARCHAR2(10), --new for om estimation
115 source_line_id NUMBER, --new for om estimation
116 source_header_id NUMBER, --new for om estimation
117 source_consolidation_id NUMBER, --new for om estimation
118 ship_date DATE, --new for om estimation
119 arrival_date DATE, --new for om estimation
120 comm_category_id NUMBER, -- new for FTE J FTE Estimation
121 assignment_type VARCHAR2(1) ,-- MDC TL
122 parent_delivery_id NUMBER,--MDC TL
123 parent_delivery_leg_id NUMBER--MDC TL
124 );
125
126 TYPE shipment_line_tab_type IS TABLE OF shipment_line_rec_type INDEX BY BINARY_INTEGER;
127
128 -- This is a global table which can be populated with delivery detail records from either
129 -- of the APIs shipment_price_compare or shipment_price_consolidate or shipment_price_calculate
130 -- This table should be indexed on delivery_detail_id for better performance
131
132 g_shipment_line_rows shipment_line_tab_type;
133
134 TYPE Freight_Cost_Temp_Rec_Type IS RECORD (
135 FREIGHT_COST_ID NUMBER
136 , FREIGHT_COST_TYPE_ID NUMBER
137 , UNIT_AMOUNT NUMBER
138 , CALCULATION_METHOD VARCHAR2(15)
139 , UOM VARCHAR2(15)
140 , QUANTITY NUMBER
141 , TOTAL_AMOUNT NUMBER
142 , CURRENCY_CODE VARCHAR2(15)
143 , CONVERSION_DATE DATE
144 , CONVERSION_RATE NUMBER
145 , CONVERSION_TYPE_CODE VARCHAR2(30)
146 , TRIP_ID NUMBER
147 , STOP_ID NUMBER
148 , DELIVERY_ID NUMBER
149 , DELIVERY_LEG_ID NUMBER
150 , DELIVERY_DETAIL_ID NUMBER
151 , ATTRIBUTE_CATEGORY VARCHAR2(150)
152 , ATTRIBUTE1 VARCHAR2(150)
153 , ATTRIBUTE2 VARCHAR2(150)
154 , ATTRIBUTE3 VARCHAR2(150)
155 , ATTRIBUTE4 VARCHAR2(150)
156 , ATTRIBUTE5 VARCHAR2(150)
157 , ATTRIBUTE6 VARCHAR2(150)
158 , ATTRIBUTE7 VARCHAR2(150)
159 , ATTRIBUTE8 VARCHAR2(150)
160 , ATTRIBUTE9 VARCHAR2(150)
161 , ATTRIBUTE10 VARCHAR2(150)
162 , ATTRIBUTE11 VARCHAR2(150)
163 , ATTRIBUTE12 VARCHAR2(150)
164 , ATTRIBUTE13 VARCHAR2(150)
165 , ATTRIBUTE14 VARCHAR2(150)
166 , ATTRIBUTE15 VARCHAR2(150)
167 , CREATION_DATE DATE
168 , CREATED_BY NUMBER
169 , LAST_UPDATE_DATE DATE
170 , LAST_UPDATED_BY NUMBER
171 , LAST_UPDATE_LOGIN NUMBER
172 , PROGRAM_APPLICATION_ID NUMBER
173 , PROGRAM_ID NUMBER
174 , PROGRAM_UPDATE_DATE DATE
175 , REQUEST_ID NUMBER
176 , LINE_TYPE_CODE VARCHAR2(30)
177 , PRICING_LIST_HEADER_ID NUMBER
178 , PRICING_LIST_LINE_ID NUMBER
179 , APPLIED_TO_CHARGE_ID NUMBER
180 , CHARGE_UNIT_VALUE NUMBER
181 , CHARGE_SOURCE_CODE VARCHAR2(30)
182 , ESTIMATED_FLAG VARCHAR2(1)
183 , COMPARISON_REQUEST_ID NUMBER
184 , LANE_ID NUMBER
185 , SCHEDULE_ID NUMBER
186 , MOVED_TO_MAIN_FLAG VARCHAR2(1)
187 , SERVICE_TYPE_CODE VARCHAR2(30)
188 , COMMODITY_CATEGORY_ID NUMBER
189 , BILLABLE_BASIS VARCHAR2 (30)
190 , BILLABLE_UOM VARCHAR2 (15)
191 , BILLABLE_QUANTITY NUMBER
192 , VEHICLE_TYPE_ID NUMBER
193 );
194
195 TYPE Freight_Cost_Temp_Tab_Type IS TABLE OF Freight_Cost_Temp_Rec_Type INDEX BY BINARY_INTEGER;
196
197 TYPE top_level_fc_rec_type IS RECORD
198 (delivery_detail_id NUMBER ,
199 delivery_leg_id NUMBER ,
200 line_type_code VARCHAR2(30),
201 freight_cost_type_id NUMBER ,
202 applied_to_charge_id NUMBER DEFAULT NULL, -- populated only for charges
203 currency_code VARCHAR2(30) ,
204 quantity NUMBER ,
205 uom VARCHAR2(30),
206 charge_unit_value NUMBER,
207 unit_amount NUMBER DEFAULT NULL,
208 total_amount NUMBER
209 );
210
211 TYPE top_level_fc_tab_type IS TABLE OF top_level_fc_rec_type INDEX BY BINARY_INTEGER;
212
213 TYPE rolledup_line_rec_type IS RECORD
214 (delivery_detail_id NUMBER,
215 item_id NUMBER,
216 category_id NUMBER,
217 rate_basis NUMBER,
218 container_id NUMBER,
219 master_container_id NUMBER,
220 line_quantity NUMBER,
221 line_uom VARCHAR2(30));
222
223 TYPE rolledup_line_tab_type IS TABLE OF rolledup_line_rec_type INDEX BY BINARY_INTEGER;
224
225 g_rolledup_lines rolledup_line_tab_type;
226
227 TYPE shpmnt_content_rec_type IS RECORD
228 (content_id NUMBER , -- Container/loose item id (DDetail id)
229 delivery_leg_id NUMBER,
230 container_flag VARCHAR2(1),
231 weight_uom VARCHAR2(30),
232 volume_uom VARCHAR2(30),
233 dim_uom mtl_system_items.dimension_uom_code%type,
234 gross_weight NUMBER,
235 volume NUMBER,
236 length NUMBER,
237 width NUMBER,
238 height NUMBER,
239 -- added for J+ Container_all
240 container_type_code VARCHAR2(30),
241
242 -- added for J+ Flat shipment rate
243 -- added for J+ LTL rating to include container weight
244 wdd_volume NUMBER,
245 wdd_volume_uom_code VARCHAR2(3),
246 wdd_net_weight NUMBER,
247 wdd_gross_weight NUMBER,
248 wdd_tare_weight NUMBER,
249 wdd_weight_uom_code VARCHAR2(3)
250 );
251
252 TYPE shpmnt_content_tab_type IS TABLE OF shpmnt_content_rec_type INDEX BY BINARY_INTEGER;
253
254 TYPE addl_services_rec_type IS RECORD
255 (service_line_index NUMBER ,
256 content_id NUMBER ,
257 freight_cost_type_code VARCHAR2(200),
258 freight_cost_type_id NUMBER
259 );
260
261 TYPE addl_services_tab_type IS TABLE OF addl_services_rec_type INDEX BY BINARY_INTEGER;
262
263 -- How do we store the shpmnt_content_rec_type - instance/QP line? relationship as it is many-to-many ?
264
265 TYPE top_level_pattern_rec_type IS RECORD
266 (pattern_index NUMBER , -- Do we need this ?
267 pattern_no NUMBER, -- Assign NUMBERs to 8 possible patterns
268 services_hash VARCHAR2(100),
269 content_id NUMBER , -- Container/loose item id (DDetail id)
270 instance_index NUMBER
271 );
272
273 TYPE top_level_pattern_tab_type IS TABLE OF top_level_pattern_rec_type INDEX BY BINARY_INTEGER;
274
275 TYPE pricing_dual_instance_rec_type IS RECORD
276 (instance_index NUMBER ,
277 pattern_no NUMBER, -- Assign NUMBERs to 9 possible patterns
278 -- Consolidation possible only for same patterns
279 services_hash VARCHAR2(100),
280 grouping_level VARCHAR2(60) ,
281 aggregation VARCHAR2(60) DEFAULT NULL,
282 objective VARCHAR2(60) DEFAULT NULL,
286
283 count_pattern NUMBER ,
284 loose_item_flag VARCHAR2(1) DEFAULT 'N' --new for loose item
285 );
287 TYPE pricing_dual_instance_tab_type IS TABLE OF pricing_dual_instance_rec_type INDEX BY BINARY_INTEGER;
288
289 TYPE pricing_engine_input_rec_type IS RECORD
290 (input_index NUMBER , -- Same as QP engine line_index ?
291 instance_index NUMBER , -- Origin pricing dual instance. Can be more than one input rec only in case of pricing objective consideration/percel hundredwt.
292 category_id NUMBER DEFAULT NULL, -- Populated for WITHIN
293 basis NUMBER DEFAULT NULL, -- Populated for ACROSS
294 loose_item_id NUMBER DEFAULT NULL, -- Populated for Loose Item
295 line_quantity NUMBER ,
296 line_uom VARCHAR2(60),
297 input_set_number NUMBER DEFAULT 1, -- indentifies an input set (for stuff like parcel hundred wt),
298
299 -- added for J+ Container_all
300 container_type_code VARCHAR2(30),
301 loose_item_flag VARCHAR2(1) DEFAULT 'N'
302 );
303
304 TYPE pricing_engine_input_tab_type IS TABLE OF pricing_engine_input_rec_type INDEX BY BINARY_INTEGER;
305
306 TYPE pricing_control_input_rec_type IS RECORD (
307 pricing_event_num NUMBER,
308 currency_code VARCHAR2(30),
309 lane_id NUMBER,
310 price_list_id NUMBER,
311 party_id NUMBER
312 );
313
314
315 TYPE pricing_engine_def_rec_type IS RECORD (
316 pricing_event_num NUMBER, --index
317 pricing_event_code VARCHAR2(30),
318 request_type_code VARCHAR2(30),
319 line_type_code VARCHAR2(30),
320 price_flag VARCHAR2(1)
321 );
322
323 TYPE pricing_engine_def_tab_type IS TABLE OF pricing_engine_def_rec_type INDEX BY BINARY_INTEGER;
324
325 TYPE fte_qual_rec_type IS RECORD
326 (supplier_id NUMBER ,
327 pricelist_id NUMBER
328 );
329
330 TYPE pricing_attribute_rec_type IS RECORD
331 (attribute_index NUMBER ,
332 input_index NUMBER , -- Origin QP engine input line index
333 attribute_name VARCHAR2(60) ,
334 attribute_value VARCHAR2(240)
335 );
336
337 TYPE pricing_attribute_tab_type IS TABLE OF pricing_attribute_rec_type INDEX BY BINARY_INTEGER;
338
339 TYPE Freight_Cost_Main_Tab_Type IS TABLE OF WSH_FREIGHT_COSTS_PVT.Freight_Cost_Rec_Type INDEX BY BINARY_INTEGER;
340
341 TYPE FtePricingInRecType is RECORD (
342 api_version_number NUMBER,
343 delivery_leg_id NUMBER DEFAULT NULL, -- Input only one of these two
344 segment_id NUMBER DEFAULT NULL -- WSH Trip id
345 );
346
347 TYPE effectivity_date_rec IS RECORD (
348 date_from DATE,
349 date_to DATE );
350
351 g_effectivity_dates effectivity_date_rec;
352
353 TYPE lane_info_rec_type IS RECORD -- Make these columns as %TYPE
354 (lane_id NUMBER ,
355 carrier_id NUMBER ,
356 pricelist_id NUMBER ,
357 mode_of_transportation_code VARCHAR2(30) ,
358 origin_id NUMBER ,
359 destination_id NUMBER ,
360 basis VARCHAR2(30) ,
361 commodity_catg_id NUMBER ,
362 service_type_code VARCHAR2(30),
363 classification_code VARCHAR2(10) -- To be added to fte_lanes
364 );
365
366 TYPE delivery_leg_rec_type IS RECORD
367 ( delivery_id NUMBER,
368 delivery_leg_id NUMBER,
369 delivery_name VARCHAR(4000)
370 );
371
372 TYPE delivery_trip_rec_type IS RECORD
373 ( delivery_id NUMBER,
374 trip_id NUMBER,
375 delivery_leg_id NUMBER,
376 delivery_name VARCHAR(4000)
377 );
378
379
380 TYPE DELIVERY_LEG_TAB_TYPE IS TABLE OF delivery_leg_rec_type INDEX BY BINARY_INTEGER;
381
382 TYPE DELIVERY_TRIP_TAB_TYPE IS TABLE OF delivery_trip_rec_type INDEX BY BINARY_INTEGER;
383
384 -- Utility APIs
385
386 FUNCTION is_consolidated (
387 p_segment_id IN NUMBER ) RETURN BOOLEAN;
388
389 FUNCTION get_segment_from_dleg (
390 p_delivery_leg_id IN NUMBER ) RETURN NUMBER;
394
391
392 FUNCTION get_delivery_from_dleg (
393 p_delivery_leg_id IN NUMBER ) RETURN NUMBER;
395 PROCEDURE flatten_shipment (
396 p_delivery_leg_id IN NUMBER DEFAULT NULL, -- Not required
397 x_first_level_rows OUT NOCOPY shpmnt_content_tab_type, -- Will get indexed on delivery_detail_id
398 x_return_status OUT NOCOPY VARCHAR2 ) ;
399
400
401 PROCEDURE shipment_pricing (
402 p_lane_id IN NUMBER DEFAULT NULL,
403 p_schedule_id IN NUMBER DEFAULT NULL,
404 p_segment_id IN NUMBER DEFAULT NULL,-- Input either Lane/schedule or the trip segment
405 p_service_type IN VARCHAR2 DEFAULT NULL, -- service type is required with lane/schedule
406 p_ship_date IN DATE DEFAULT sysdate, -- VVP (09/30/02)
407 p_arrival_date IN DATE DEFAULT sysdate, -- VVP (09/30/02)
408 --p_shpmnt_toplevel_rows IN OUT NOCOPY shpmnt_content_tab_type,
409 p_shpmnt_toplevel_rows IN shpmnt_content_tab_type, /* bug# 2501240 -VVP */
410 p_shpmnt_toplevel_charges IN addl_services_tab_type, -- Top level requested additional services
411 -- p_shpmnt_charges IN shpmnt_charges_tab_type, -- Not supported in Phase I
412 p_save_flag IN VARCHAR2, -- Whether to save to TEMP table or MAIN table
413 p_request_id IN NUMBER DEFAULT NULL, -- Required only in case of saving to TEMP table
414 p_currency_code IN VARCHAR2 DEFAULT NULL,
415 x_summary_lanesched_price OUT NOCOPY NUMBER, -- Only in case of 'T'
416 x_summary_lanesched_price_uom OUT NOCOPY VARCHAR2,
417 x_freight_cost_temp_price OUT NOCOPY Freight_Cost_Temp_Tab_Type,
418 x_freight_cost_temp_charge OUT NOCOPY Freight_Cost_Temp_Tab_Type,
419 x_return_status OUT NOCOPY VARCHAR2 ) ;
420
421 -- shipment_rating will be called by
422 -- WSH-LCSS (FTE_FREIGHT_RATING_DLVY_GRP.Rate_Delivery)
423 -- and OM-LCSS (FTE_FREIGHT_RATING_PUB.Get_Freight_Costs)
424 -- and OM-DisplayChoices (FTE_FREIGHT_RATING_PUB.Get_Services)
425 --
426 -- shipment_rating rate shipments in g_shipment_line_rows on p_lane_id and p_service_type
427 -- if p_mode_of_transport = 'TRUCK' it calls tl_shipment_pricing
428 -- otherwise it calls shipment_pricing
429 -- shipment_rating always returns rates in pl/sql table
430 --
431 PROCEDURE shipment_rating (
432 p_lane_id IN NUMBER,
433 p_service_type IN VARCHAR2,
434 p_mode_of_transport IN VARCHAR2,
435 p_ship_date IN DATE DEFAULT sysdate,
436 p_arrival_date IN DATE DEFAULT sysdate,
437 p_currency_code IN VARCHAR2 DEFAULT NULL,
438 x_summary_lanesched_price OUT NOCOPY NUMBER,
439 x_summary_lanesched_price_uom OUT NOCOPY VARCHAR2,
440 x_freight_cost_temp_price OUT NOCOPY Freight_Cost_Temp_Tab_Type,
441 x_freight_cost_temp_charge OUT NOCOPY Freight_Cost_Temp_Tab_Type,
442 x_return_status OUT NOCOPY VARCHAR2,
443 x_msg_count OUT NOCOPY NUMBER,
444 x_msg_data OUT NOCOPY VARCHAR2 );
445
446 -- FTE Public APIs to be called from Transportation events
447
448 -- This API will result in one qp output line per instance
449 -- It will delete other engine rows and associated engine output line details
450
451 PROCEDURE resolve_pricing_objective(
452 p_pricing_dual_instances IN pricing_dual_instance_tab_type,
453 x_pricing_engine_input IN OUT NOCOPY pricing_engine_input_tab_type,
454 x_qp_output_line_rows IN OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
455 x_qp_output_line_details IN OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,-- Not required
456 x_return_status OUT NOCOPY VARCHAR2);
457
458 -- This API is called directly from DWB
459 -- Modified the signature for 12i. p_delivery_leg_list can contain list of Delivery Ids or Delivery Legs
460 -- Based on p_deliveries_list_type , it'll call different rating modules.
461 -- In R12 behavior of rerating will change as in case of a delivery/dleg , with more
462 -- delivery legs on the same trip we'll call rerating of the complete trip.
463 -- So in case of rerating Trip level rating will be called always instead of individual delivery leg
464
465 PROCEDURE rerate_shipment_online(
466 p_api_version IN NUMBER DEFAULT 1.0,
467 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
468 p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
469 p_deliveries_list IN FTE_ID_TAB_TYPE,
470 p_delivery_name_list IN FTE_NAME_TAB_TYPE,
471 p_deliveries_list_type IN VARCHAR2 , -- This will have 'DEL' for Delivery IDs or 'DLEG' for Delivery Leg Ids.
472 x_success_list OUT NOCOPY FTE_ID_TAB_TYPE,
473 x_warning_list OUT NOCOPY FTE_ID_TAB_TYPE,
474 x_fail_list OUT NOCOPY FTE_ID_TAB_TYPE,
475 x_return_status OUT NOCOPY VARCHAR2,
476 x_msg_count OUT NOCOPY NUMBER,
477 x_msg_data OUT NOCOPY VARCHAR2 );
478
479 -- This API is called directly from the shipment repricing concurrent program
480 -- The input to it should be
481 -- either a FTE trip, segment, delivery or a delivery leg
482
483 PROCEDURE shipment_reprice (
487 p_segment_id IN NUMBER DEFAULT NULL,
484 errbuf OUT NOCOPY VARCHAR2,
485 retcode OUT NOCOPY VARCHAR2,
486 p_fte_trip_id IN NUMBER DEFAULT NULL, -- Input only ONE of the following FOUR
488 p_delivery_id IN NUMBER DEFAULT NULL,
489 p_delivery_leg_id IN NUMBER DEFAULT NULL );
490
491 -- This API is called by the shipment repricing concurrent program
492 -- The input to it should be
493 -- either a FTE trip, segment, delivery or a delivery leg
494 -- Calls shipment_price_consolidate API
495
496 PROCEDURE shipment_reprice2 (
497 p_init_prc_log IN VARCHAR2 DEFAULT 'Y',
498 p_fte_trip_id IN NUMBER DEFAULT NULL, -- Input only ONE of the following FOUR
499 p_segment_id IN NUMBER DEFAULT NULL,
500 p_delivery_id IN NUMBER DEFAULT NULL,
501 p_delivery_leg_id IN NUMBER DEFAULT NULL,
502 x_return_status OUT NOCOPY VARCHAR2 ) ;
503
504
505
506 -- This API is called by the shipment_reprice API or WSH online shipment repricing event
507 -- to consolidate shipments on a segment. The input to it should be
508 -- either a delivery leg or a segment
509 -- Calls shipment hierarchy flattening API
510
511 PROCEDURE shipment_price_consolidate (
512 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_true,--Whether to initialize global message table
513 p_in_attributes IN FtePricingInRecType,
514 x_return_status OUT NOCOPY VARCHAR2,
515 x_msg_count OUT NOCOPY NUMBER, -- Standard FND functionality
516 x_msg_data OUT NOCOPY VARCHAR2 ); -- Will return message text only if number of messages = 1
517
518 -- This API is mainly for internal FTE rating use
519 PROCEDURE shipment_price_consolidate (
520 p_delivery_leg_id IN NUMBER DEFAULT NULL, -- Gets either Dleg or wsh trip
521 p_segment_id IN NUMBER DEFAULT NULL,
522 p_check_reprice_flag IN VARCHAR2 DEFAULT 'N',
523 x_return_status OUT NOCOPY VARCHAR2 );
524
525 -- This API is called from the Multi-leg UI for saving chosen shipment price
526 -- The input to it should be either the chosen lane or schedule,
527 -- delivery leg and the comparison request id
528 -- bug : 2763791 : added p_service_type_code
529
530 PROCEDURE Move_fc_temp_to_main (
531 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_true,
532 p_init_prc_log IN VARCHAR2 DEFAULT 'Y',
533 p_request_id IN NUMBER, -- Comparison Request ID to move to main
534 p_delivery_leg_id IN NUMBER,
535 p_lane_id IN NUMBER DEFAULT NULL,
536 p_schedule_id IN NUMBER DEFAULT NULL,
537 p_service_type_code IN VARCHAR2 DEFAULT NULL,
538 x_return_status OUT NOCOPY VARCHAR2);
539
540
541 -- This API is called from FTE_TRIP_RATING_GRP for saving chosen shipment price for a non-TL trip
542 -- The input to it should be either the chosen lane or schedule,
543 -- trip and the comparison request id
544
545
546 PROCEDURE Move_fc_temp_to_main (
547 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_true,
548 p_init_prc_log IN VARCHAR2 DEFAULT 'Y',
549 p_request_id IN NUMBER, -- Comparison Request ID to move to main
550 p_trip_id IN NUMBER,
551 p_lane_id IN NUMBER DEFAULT NULL,
552 p_schedule_id IN NUMBER DEFAULT NULL,
553 p_service_type_code IN VARCHAR2 DEFAULT NULL,
554 x_return_status OUT NOCOPY VARCHAR2);
555
556
557 -- This API is called by Rate_Delivery of LCSS project
558 -- To move freight costs from pl/sql table to wsh_freight_costs
559
560 PROCEDURE Move_fc_temp_to_main (
561 p_delivery_leg_id IN NUMBER,
562 p_freight_cost_temp_price IN Freight_Cost_Temp_Tab_Type,
563 p_freight_cost_temp_charge IN Freight_Cost_Temp_Tab_Type,
564 x_return_status OUT NOCOPY VARCHAR2);
565
566 PROCEDURE Move_fc_temp_to_main (
567 p_freight_cost_temp IN Freight_Cost_Temp_Tab_Type,
568 x_return_status OUT NOCOPY VARCHAR2);
569
570 PROCEDURE delete_invalid_fc_recs (
571 p_segment_id IN NUMBER DEFAULT NULL,
572 p_delivery_leg_id IN NUMBER DEFAULT NULL,
573 x_return_status OUT NOCOPY VARCHAR2 );
577 p_delivery_leg_id IN NUMBER DEFAULT NULL,
574
575 PROCEDURE unmark_reprice_required (
576 p_segment_id IN NUMBER DEFAULT NULL,
578 x_return_status OUT NOCOPY VARCHAR2 );
579
580 -- This API is called from the Multi-leg UI when a price comparison request
581 -- for a delivery is not chosen to go forward with
582 -- The input to it should be the comparison request id
583
584 PROCEDURE delete_fc_temp (
585 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_true,
586 p_request_id IN NUMBER, -- Comparison Request ID to delete
587 x_return_status OUT NOCOPY VARCHAR2);
588
589 PROCEDURE print_qp_output_lines (
590 p_engine_output_line IN QP_PREQ_GRP.LINE_TBL_TYPE,
591 p_engine_output_detail IN QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
592 p_return_status IN VARCHAR2 ,
593 x_return_status OUT NOCOPY VARCHAR2 );
594
595 PROCEDURE print_fc_temp_rows (
596 p_fc_temp_rows IN Freight_Cost_Temp_Tab_Type,
597 x_return_status OUT NOCOPY VARCHAR2 ) ;
598
599 PROCEDURE Create_Freight_Cost_Temp(
600 p_freight_cost_temp_info IN Freight_Cost_Temp_Rec_Type,
601 x_freight_cost_temp_id OUT NOCOPY NUMBER,
602 x_return_status OUT NOCOPY VARCHAR2);
603
604 --
605 -- API: SHIPMENT_PRICE_COMPARE_PVT
606 -- Internal api for price comparison for LTL and PARCEL
607 -- Can accept delivery or trip. Can generate its own comparison request id
608 -- or can be passed in.
609 -- Not to be called from outside rating
610 -- Does not initialize the log file
611 -- Introduced for pack J
612 --
613 -- Parameters :
614 -- p_delivery_id -> Input either delivery_id or trip_id (not both)
615 -- p_trip_id -> Input either delivery_id or trip_id (not both)
616 -- p_lane_id_tab -> table of lane ids
617 -- p_schedule_id_tab -> table of schedule ids
618 -- Note : p_lane_id_tab and p_schedule_id_tab can have overlapping indices
619 -- For this API both tables are assumed to be independent of each
620 -- other
621 -- p_dep_date -> departure date
622 -- p_arr_date -> arrival date
623 -- x_sum_lane_price_tab ->
624 -- x_sum_lane_price_curr_tab ->
625 -- x_sum_sched_price_tab ->
626 -- x_sum_sched_price_curr_tab ->
627 -- x_request_id -> Can generate its own id if not passed in
628 -- x_return_status -> return status
629 --
630
631 PROCEDURE shipment_price_compare_pvt (
632 p_delivery_id IN NUMBER DEFAULT NULL,
633 p_trip_id IN NUMBER DEFAULT NULL,
634 p_lane_id_tab IN WSH_UTIL_CORE.id_tab_type,
635 p_sched_id_tab IN WSH_UTIL_CORE.id_tab_type,
636 p_service_lane_tab IN WSH_UTIL_CORE.Column_Tab_Type,
637 p_service_sched_tab IN WSH_UTIL_CORE.Column_Tab_Type,
638 p_dep_date IN DATE DEFAULT sysdate,
639 p_arr_date IN DATE DEFAULT sysdate,
640 x_sum_lane_price_tab OUT NOCOPY WSH_UTIL_CORE.id_tab_type,
641 x_sum_lane_price_curr_tab OUT NOCOPY WSH_UTIL_CORE.Column_tab_type,
642 x_sum_sched_price_tab OUT NOCOPY WSH_UTIL_CORE.id_tab_type,
643 x_sum_sched_price_curr_tab OUT NOCOPY WSH_UTIL_CORE.Column_tab_type,
644 x_request_id IN OUT NOCOPY NUMBER,
645 x_return_status OUT NOCOPY VARCHAR2 );
646
647 -- Returns the freight_cost_id of the delivery leg summary record in WSH_FREIGHT_COSTS
648
649 FUNCTION get_fc_id_from_dleg (
650 p_delivery_leg_id IN NUMBER ) RETURN NUMBER;
651
652 -- Procedure to get total commodity weight (weight used by LTL) for FPA report
653 PROCEDURE FPA_total_commodity_weight(
654 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_true,
655 p_delivery_id IN NUMBER,
656 x_total_comm_wt OUT NOCOPY NUMBER,
657 x_wt_uom OUT NOCOPY VARCHAR2,
658 x_return_status OUT NOCOPY VARCHAR2,
659 x_msg_count OUT NOCOPY NUMBER,
660 x_msg_data OUT NOCOPY VARCHAR2 );
661
662 PROCEDURE get_currency_code (
663 p_carrier_id IN NUMBER,
664 x_currency_code OUT NOCOPY wsh_carriers.currency_code%TYPE,
665 x_return_status OUT NOCOPY VARCHAR2);
666
667 PROCEDURE get_fc_type_id (
668 p_line_type_code IN VARCHAR2,
669 p_charge_subtype_code IN VARCHAR2 DEFAULT NULL,
670 x_freight_cost_type_id OUT NOCOPY NUMBER,
671 x_return_status OUT NOCOPY VARCHAR2 );
672
673 PROCEDURE print_top_level_detail (
674 p_first_level_rows IN shpmnt_content_tab_type,
678 p_engine_rows IN pricing_engine_input_tab_type,
675 x_return_status OUT NOCOPY VARCHAR2 );
676
677 PROCEDURE print_engine_rows (
679 x_return_status OUT NOCOPY VARCHAR2 );
680
681 PROCEDURE print_rolledup_lines (
682 p_rolledup_lines IN rolledup_line_tab_type,
683 x_return_status OUT NOCOPY VARCHAR2 );
684
685
686 -- This API is called from the Multi-leg UI for price comparison across lanes/schedules
687 -- It stores frieght cost details in WSH_FREIGHT_COSTS_TEMP table for all the lanes
688 -- for display purpose.
689 -- It returns PL/SQL tables (dense) of summary price in the same sequence as the input
690 -- Calls shipment hierarchy flattening API
691
692
693 PROCEDURE shipment_price_compare (
694 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_true,
695 p_init_prc_log IN VARCHAR2 DEFAULT 'Y',
696 p_delivery_id IN NUMBER,
697 p_trip_id IN NUMBER,
698 p_lane_sched_id_tab IN FTE_ID_TAB_TYPE, -- lane_ids or schedule_ids
699 p_lane_sched_tab IN FTE_CODE_TAB_TYPE, -- 'L' or 'S' (Lane or Schedule)
700 p_mode_tab IN FTE_CODE_TAB_TYPE,
701 p_service_type_tab IN FTE_CODE_TAB_TYPE,
702 p_vehicle_type_tab IN FTE_ID_TAB_TYPE,
703 p_dep_date IN DATE DEFAULT sysdate,
704 p_arr_date IN DATE DEFAULT sysdate,
705 p_pickup_location_id IN NUMBER,
706 p_dropoff_location_id IN NUMBER,
707 x_lane_sched_id_tab OUT NOCOPY FTE_ID_TAB_TYPE, -- lane_ids or schedule_ids
708 x_lane_sched_tab OUT NOCOPY FTE_CODE_TAB_TYPE, -- 'L' or 'S' (Lane or Schedule)
709 x_vehicle_type_tab OUT NOCOPY FTE_ID_TAB_TYPE,--Vehicle Type ID
710 x_mode_tab OUT NOCOPY FTE_CODE_TAB_TYPE,
711 x_service_type_tab OUT NOCOPY FTE_CODE_TAB_TYPE,
712 x_sum_rate_tab OUT NOCOPY FTE_ID_TAB_TYPE,
713 x_sum_rate_curr_tab OUT NOCOPY FTE_CODE_TAB_TYPE,
714 x_request_id OUT NOCOPY NUMBER, -- One request ID per comparison request
715 x_return_status OUT NOCOPY VARCHAR2 ) ;
716
717
718
719
720 END FTE_FREIGHT_PRICING;
721