10088: END IF;
10089: END shipment_reprice2;
10090:
10091:
10092: --PROCEDURE validate_rerate_delivery(p_delv_list IN FTE_ID_TAB_TYPE,
10093:
10094: -- Added for R12 to get Delivery Legs for all the deliveries.
10095: -- This is added to allow multi leg rating in case of rerating.
10096: -- In addition to this , this delivery needs to find out all the
10096: -- In addition to this , this delivery needs to find out all the
10097: -- delivery legs for it's child deliveries in case it's console delivery.
10098:
10099: PROCEDURE get_delivery_legs(
10100: p_deliveries_list IN FTE_ID_TAB_TYPE,
10101: x_delivery_legs OUT NOCOPY DELIVERY_LEG_TAB_TYPE,
10102: x_return_status OUT NOCOPY VARCHAR2)
10103: IS
10104:
10153: -- Internal procedure to get distinct trip_ids for a given
10154: -- delivery legs table.
10155: -- Added for R12. Used in rerate_shipment_online.
10156:
10157: PROCEDURE get_distinct_trip_ids( p_dleg_list IN FTE_ID_TAB_TYPE,
10158: x_trip_ids OUT NOCOPY DELIVERY_TRIP_TAB_TYPE,
10159: x_all_trips OUT NOCOPY DELIVERY_TRIP_TAB_TYPE,
10160: x_return_status OUT NOCOPY VARCHAR2)
10161:
10190: BEGIN
10191:
10192: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
10193: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,l_api_name);
10194: --x_trip_ids := FTE_ID_TAB_TYPE();
10195:
10196: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,p_dleg_list.COUNT);
10197:
10198: FOR i IN p_dleg_list.FIRST..p_dleg_list.COUNT LOOP
10245: -- which need rerating
10246: -- For Deliveries which fail validation a new message is written in log file.
10247:
10248: PROCEDURE validate_delv_for_rerating
10249: ( p_deliveries_list IN FTE_ID_TAB_TYPE,
10250: x_deliveries_list OUT NOCOPY FTE_ID_TAB_TYPE
10251: )
10252:
10253: IS
10246: -- For Deliveries which fail validation a new message is written in log file.
10247:
10248: PROCEDURE validate_delv_for_rerating
10249: ( p_deliveries_list IN FTE_ID_TAB_TYPE,
10250: x_deliveries_list OUT NOCOPY FTE_ID_TAB_TYPE
10251: )
10252:
10253: IS
10254:
10251: )
10252:
10253: IS
10254:
10255: l_new_delv_list FTE_ID_TAB_TYPE;
10256: l_api_name CONSTANT VARCHAR2(30) := 'validate_delv_for_rerating';
10257: l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_LOG;
10258: i NUMBER := 0;
10259: l_var VARCHAR2(1);
10267:
10268: BEGIN
10269: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
10270: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,l_api_name);
10271: l_new_delv_list := FTE_ID_TAB_TYPE();
10272:
10273: FOR i IN p_deliveries_list.FIRST..p_deliveries_list.LAST
10274: LOOP
10275: OPEN check_delivery_type(p_deliveries_list(i));
10297: -- 1) Delivery leg has a rate
10298: -- If a delivery leg doesnt have existing rates, it removes it from
10299: -- the list of dlegs which need to be rerated.
10300: -- For Dlegs which fail validation a new message is written in log file.
10301: PROCEDURE validate_delivery_legs(p_dlegs_list IN FTE_ID_TAB_TYPE,
10302: x_dleg_list OUT NOCOPY FTE_ID_TAB_TYPE,
10303: x_failed_dleg_list OUT NOCOPY FTE_ID_TAB_TYPE,
10304: x_return_status OUT NOCOPY VARCHAR2
10305: )
10298: -- If a delivery leg doesnt have existing rates, it removes it from
10299: -- the list of dlegs which need to be rerated.
10300: -- For Dlegs which fail validation a new message is written in log file.
10301: PROCEDURE validate_delivery_legs(p_dlegs_list IN FTE_ID_TAB_TYPE,
10302: x_dleg_list OUT NOCOPY FTE_ID_TAB_TYPE,
10303: x_failed_dleg_list OUT NOCOPY FTE_ID_TAB_TYPE,
10304: x_return_status OUT NOCOPY VARCHAR2
10305: )
10306:
10299: -- the list of dlegs which need to be rerated.
10300: -- For Dlegs which fail validation a new message is written in log file.
10301: PROCEDURE validate_delivery_legs(p_dlegs_list IN FTE_ID_TAB_TYPE,
10302: x_dleg_list OUT NOCOPY FTE_ID_TAB_TYPE,
10303: x_failed_dleg_list OUT NOCOPY FTE_ID_TAB_TYPE,
10304: x_return_status OUT NOCOPY VARCHAR2
10305: )
10306:
10307: IS
10304: x_return_status OUT NOCOPY VARCHAR2
10305: )
10306:
10307: IS
10308: l_new_dleg_list FTE_ID_TAB_TYPE;
10309: l_failed_dleg_list FTE_ID_TAB_TYPE;
10310: l_api_name CONSTANT VARCHAR2(30) := 'validate_delivery_legs';
10311: l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_LOG;
10312: i NUMBER := 0;
10305: )
10306:
10307: IS
10308: l_new_dleg_list FTE_ID_TAB_TYPE;
10309: l_failed_dleg_list FTE_ID_TAB_TYPE;
10310: l_api_name CONSTANT VARCHAR2(30) := 'validate_delivery_legs';
10311: l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_LOG;
10312: i NUMBER := 0;
10313: l_var NUMBER;--VARCHAR2(1);
10324:
10325: BEGIN
10326: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
10327: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,l_api_name);
10328: l_new_dleg_list := FTE_ID_TAB_TYPE();
10329: l_failed_dleg_list := FTE_ID_TAB_TYPE();
10330:
10331: FOR i IN p_dlegs_list.FIRST..p_dlegs_list.LAST
10332: LOOP
10325: BEGIN
10326: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
10327: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,l_api_name);
10328: l_new_dleg_list := FTE_ID_TAB_TYPE();
10329: l_failed_dleg_list := FTE_ID_TAB_TYPE();
10330:
10331: FOR i IN p_dlegs_list.FIRST..p_dlegs_list.LAST
10332: LOOP
10333: OPEN check_freight_cost_exist(p_dlegs_list(i));
10476: PROCEDURE rerate_shipment_online(
10477: p_api_version IN NUMBER DEFAULT 1.0,
10478: p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
10479: p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
10480: p_deliveries_list IN FTE_ID_TAB_TYPE,
10481: p_delivery_name_list IN FTE_NAME_TAB_TYPE,
10482: p_deliveries_list_type IN VARCHAR2 , -- This will have 'DEL' for Delivery IDs or 'DLEG' for Delivery Leg Ids.
10483: x_success_list OUT NOCOPY FTE_ID_TAB_TYPE,
10484: x_warning_list OUT NOCOPY FTE_ID_TAB_TYPE,
10479: p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE,
10480: p_deliveries_list IN FTE_ID_TAB_TYPE,
10481: p_delivery_name_list IN FTE_NAME_TAB_TYPE,
10482: p_deliveries_list_type IN VARCHAR2 , -- This will have 'DEL' for Delivery IDs or 'DLEG' for Delivery Leg Ids.
10483: x_success_list OUT NOCOPY FTE_ID_TAB_TYPE,
10484: x_warning_list OUT NOCOPY FTE_ID_TAB_TYPE,
10485: x_fail_list OUT NOCOPY FTE_ID_TAB_TYPE,
10486: x_return_status OUT NOCOPY VARCHAR2,
10487: x_msg_count OUT NOCOPY NUMBER,
10480: p_deliveries_list IN FTE_ID_TAB_TYPE,
10481: p_delivery_name_list IN FTE_NAME_TAB_TYPE,
10482: p_deliveries_list_type IN VARCHAR2 , -- This will have 'DEL' for Delivery IDs or 'DLEG' for Delivery Leg Ids.
10483: x_success_list OUT NOCOPY FTE_ID_TAB_TYPE,
10484: x_warning_list OUT NOCOPY FTE_ID_TAB_TYPE,
10485: x_fail_list OUT NOCOPY FTE_ID_TAB_TYPE,
10486: x_return_status OUT NOCOPY VARCHAR2,
10487: x_msg_count OUT NOCOPY NUMBER,
10488: x_msg_data OUT NOCOPY VARCHAR2)
10481: p_delivery_name_list IN FTE_NAME_TAB_TYPE,
10482: p_deliveries_list_type IN VARCHAR2 , -- This will have 'DEL' for Delivery IDs or 'DLEG' for Delivery Leg Ids.
10483: x_success_list OUT NOCOPY FTE_ID_TAB_TYPE,
10484: x_warning_list OUT NOCOPY FTE_ID_TAB_TYPE,
10485: x_fail_list OUT NOCOPY FTE_ID_TAB_TYPE,
10486: x_return_status OUT NOCOPY VARCHAR2,
10487: x_msg_count OUT NOCOPY NUMBER,
10488: x_msg_data OUT NOCOPY VARCHAR2)
10489: IS
10502: l_msg_data VARCHAR2(32767);
10503: l_fail_delivery_name_list VARCHAR2(32767);
10504: l_warn_delivery_name_list VARCHAR2(32767);
10505: i NUMBER;
10506: l_failed_leg_list FTE_ID_TAB_TYPE;
10507: l_success_leg_list FTE_ID_TAB_TYPE;
10508: l_warning_leg_list FTE_ID_TAB_TYPE;
10509: l_dleg_list FTE_ID_TAB_TYPE;
10510: --l_trip_ids FTE_ID_TAB_TYPE;
10503: l_fail_delivery_name_list VARCHAR2(32767);
10504: l_warn_delivery_name_list VARCHAR2(32767);
10505: i NUMBER;
10506: l_failed_leg_list FTE_ID_TAB_TYPE;
10507: l_success_leg_list FTE_ID_TAB_TYPE;
10508: l_warning_leg_list FTE_ID_TAB_TYPE;
10509: l_dleg_list FTE_ID_TAB_TYPE;
10510: --l_trip_ids FTE_ID_TAB_TYPE;
10511: l_new_deliveries_list FTE_ID_TAB_TYPE;
10504: l_warn_delivery_name_list VARCHAR2(32767);
10505: i NUMBER;
10506: l_failed_leg_list FTE_ID_TAB_TYPE;
10507: l_success_leg_list FTE_ID_TAB_TYPE;
10508: l_warning_leg_list FTE_ID_TAB_TYPE;
10509: l_dleg_list FTE_ID_TAB_TYPE;
10510: --l_trip_ids FTE_ID_TAB_TYPE;
10511: l_new_deliveries_list FTE_ID_TAB_TYPE;
10512: l_new_dleg_list FTE_ID_TAB_TYPE;
10505: i NUMBER;
10506: l_failed_leg_list FTE_ID_TAB_TYPE;
10507: l_success_leg_list FTE_ID_TAB_TYPE;
10508: l_warning_leg_list FTE_ID_TAB_TYPE;
10509: l_dleg_list FTE_ID_TAB_TYPE;
10510: --l_trip_ids FTE_ID_TAB_TYPE;
10511: l_new_deliveries_list FTE_ID_TAB_TYPE;
10512: l_new_dleg_list FTE_ID_TAB_TYPE;
10513: l_delv_legs DELIVERY_LEG_TAB_TYPE;
10506: l_failed_leg_list FTE_ID_TAB_TYPE;
10507: l_success_leg_list FTE_ID_TAB_TYPE;
10508: l_warning_leg_list FTE_ID_TAB_TYPE;
10509: l_dleg_list FTE_ID_TAB_TYPE;
10510: --l_trip_ids FTE_ID_TAB_TYPE;
10511: l_new_deliveries_list FTE_ID_TAB_TYPE;
10512: l_new_dleg_list FTE_ID_TAB_TYPE;
10513: l_delv_legs DELIVERY_LEG_TAB_TYPE;
10514: l_index NUMBER := 0;
10507: l_success_leg_list FTE_ID_TAB_TYPE;
10508: l_warning_leg_list FTE_ID_TAB_TYPE;
10509: l_dleg_list FTE_ID_TAB_TYPE;
10510: --l_trip_ids FTE_ID_TAB_TYPE;
10511: l_new_deliveries_list FTE_ID_TAB_TYPE;
10512: l_new_dleg_list FTE_ID_TAB_TYPE;
10513: l_delv_legs DELIVERY_LEG_TAB_TYPE;
10514: l_index NUMBER := 0;
10515: l_trip_id NUMBER;
10508: l_warning_leg_list FTE_ID_TAB_TYPE;
10509: l_dleg_list FTE_ID_TAB_TYPE;
10510: --l_trip_ids FTE_ID_TAB_TYPE;
10511: l_new_deliveries_list FTE_ID_TAB_TYPE;
10512: l_new_dleg_list FTE_ID_TAB_TYPE;
10513: l_delv_legs DELIVERY_LEG_TAB_TYPE;
10514: l_index NUMBER := 0;
10515: l_trip_id NUMBER;
10516: l_failed_list FTE_ID_TAB_TYPE;
10512: l_new_dleg_list FTE_ID_TAB_TYPE;
10513: l_delv_legs DELIVERY_LEG_TAB_TYPE;
10514: l_index NUMBER := 0;
10515: l_trip_id NUMBER;
10516: l_failed_list FTE_ID_TAB_TYPE;
10517: l_success_list FTE_ID_TAB_TYPE;
10518: l_warning_list FTE_ID_TAB_TYPE;
10519: l_trip_ids DELIVERY_TRIP_TAB_TYPE;
10520: j NUMBER;
10513: l_delv_legs DELIVERY_LEG_TAB_TYPE;
10514: l_index NUMBER := 0;
10515: l_trip_id NUMBER;
10516: l_failed_list FTE_ID_TAB_TYPE;
10517: l_success_list FTE_ID_TAB_TYPE;
10518: l_warning_list FTE_ID_TAB_TYPE;
10519: l_trip_ids DELIVERY_TRIP_TAB_TYPE;
10520: j NUMBER;
10521: l_all_trips DELIVERY_TRIP_TAB_TYPE;
10514: l_index NUMBER := 0;
10515: l_trip_id NUMBER;
10516: l_failed_list FTE_ID_TAB_TYPE;
10517: l_success_list FTE_ID_TAB_TYPE;
10518: l_warning_list FTE_ID_TAB_TYPE;
10519: l_trip_ids DELIVERY_TRIP_TAB_TYPE;
10520: j NUMBER;
10521: l_all_trips DELIVERY_TRIP_TAB_TYPE;
10522: j1 NUMBER;
10522: j1 NUMBER;
10523: l_service_failed VARCHAR2(1) ;
10524: l_service_failed_delv_ids VARCHAR2(32767);
10525: l_closed_trips_delv_ids VARCHAR2(32767);
10526: l_fail_val_dleg_list FTE_ID_TAB_TYPE;
10527: l_action_params FTE_TRIP_RATING_GRP.action_param_rec;
10528: l_trip_id_list WSH_UTIL_CORE.id_tab_type;
10529: l_failed_trips WSH_UTIL_CORE.id_tab_type;
10530: l_success_trips WSH_UTIL_CORE.id_tab_type;
10610:
10611: -- If deliveries are passed for re-rating.
10612: -- get all the delivery legs for those deliveries. Done for R12
10613:
10614: l_dleg_list := FTE_ID_TAB_TYPE();
10615: l_failed_list := FTE_ID_TAB_TYPE();
10616: l_success_list := FTE_ID_TAB_TYPE();
10617: l_warning_list := FTE_ID_TAB_TYPE();
10618:
10611: -- If deliveries are passed for re-rating.
10612: -- get all the delivery legs for those deliveries. Done for R12
10613:
10614: l_dleg_list := FTE_ID_TAB_TYPE();
10615: l_failed_list := FTE_ID_TAB_TYPE();
10616: l_success_list := FTE_ID_TAB_TYPE();
10617: l_warning_list := FTE_ID_TAB_TYPE();
10618:
10619:
10612: -- get all the delivery legs for those deliveries. Done for R12
10613:
10614: l_dleg_list := FTE_ID_TAB_TYPE();
10615: l_failed_list := FTE_ID_TAB_TYPE();
10616: l_success_list := FTE_ID_TAB_TYPE();
10617: l_warning_list := FTE_ID_TAB_TYPE();
10618:
10619:
10620: IF p_deliveries_list_type = 'DEL' THEN
10613:
10614: l_dleg_list := FTE_ID_TAB_TYPE();
10615: l_failed_list := FTE_ID_TAB_TYPE();
10616: l_success_list := FTE_ID_TAB_TYPE();
10617: l_warning_list := FTE_ID_TAB_TYPE();
10618:
10619:
10620: IF p_deliveries_list_type = 'DEL' THEN
10621:
13064: p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_true,
13065: p_init_prc_log IN VARCHAR2 DEFAULT 'Y',
13066: p_delivery_id IN NUMBER,
13067: p_trip_id IN NUMBER,
13068: p_lane_sched_id_tab IN FTE_ID_TAB_TYPE, -- lane_ids or schedule_ids
13069: p_lane_sched_tab IN FTE_CODE_TAB_TYPE, -- 'L' or 'S' (Lane or Schedule)
13070: p_mode_tab IN FTE_CODE_TAB_TYPE,
13071: p_service_type_tab IN FTE_CODE_TAB_TYPE,
13072: p_vehicle_type_tab IN FTE_ID_TAB_TYPE,
13068: p_lane_sched_id_tab IN FTE_ID_TAB_TYPE, -- lane_ids or schedule_ids
13069: p_lane_sched_tab IN FTE_CODE_TAB_TYPE, -- 'L' or 'S' (Lane or Schedule)
13070: p_mode_tab IN FTE_CODE_TAB_TYPE,
13071: p_service_type_tab IN FTE_CODE_TAB_TYPE,
13072: p_vehicle_type_tab IN FTE_ID_TAB_TYPE,
13073: p_dep_date IN DATE DEFAULT sysdate,
13074: p_arr_date IN DATE DEFAULT sysdate,
13075: p_pickup_location_id IN NUMBER,
13076: p_dropoff_location_id IN NUMBER,
13073: p_dep_date IN DATE DEFAULT sysdate,
13074: p_arr_date IN DATE DEFAULT sysdate,
13075: p_pickup_location_id IN NUMBER,
13076: p_dropoff_location_id IN NUMBER,
13077: x_lane_sched_id_tab OUT NOCOPY FTE_ID_TAB_TYPE, -- lane_ids or schedule_ids
13078: x_lane_sched_tab OUT NOCOPY FTE_CODE_TAB_TYPE, -- 'L' or 'S' (Lane or Schedule)
13079: x_vehicle_type_tab OUT NOCOPY FTE_ID_TAB_TYPE,--Vehicle Type ID
13080: x_mode_tab OUT NOCOPY FTE_CODE_TAB_TYPE,
13081: x_service_type_tab OUT NOCOPY FTE_CODE_TAB_TYPE,
13075: p_pickup_location_id IN NUMBER,
13076: p_dropoff_location_id IN NUMBER,
13077: x_lane_sched_id_tab OUT NOCOPY FTE_ID_TAB_TYPE, -- lane_ids or schedule_ids
13078: x_lane_sched_tab OUT NOCOPY FTE_CODE_TAB_TYPE, -- 'L' or 'S' (Lane or Schedule)
13079: x_vehicle_type_tab OUT NOCOPY FTE_ID_TAB_TYPE,--Vehicle Type ID
13080: x_mode_tab OUT NOCOPY FTE_CODE_TAB_TYPE,
13081: x_service_type_tab OUT NOCOPY FTE_CODE_TAB_TYPE,
13082: x_sum_rate_tab OUT NOCOPY FTE_ID_TAB_TYPE,
13083: x_sum_rate_curr_tab OUT NOCOPY FTE_CODE_TAB_TYPE,
13078: x_lane_sched_tab OUT NOCOPY FTE_CODE_TAB_TYPE, -- 'L' or 'S' (Lane or Schedule)
13079: x_vehicle_type_tab OUT NOCOPY FTE_ID_TAB_TYPE,--Vehicle Type ID
13080: x_mode_tab OUT NOCOPY FTE_CODE_TAB_TYPE,
13081: x_service_type_tab OUT NOCOPY FTE_CODE_TAB_TYPE,
13082: x_sum_rate_tab OUT NOCOPY FTE_ID_TAB_TYPE,
13083: x_sum_rate_curr_tab OUT NOCOPY FTE_CODE_TAB_TYPE,
13084: x_request_id OUT NOCOPY NUMBER, -- One request ID per comparison request
13085: x_return_status OUT NOCOPY VARCHAR2 )
13086: IS
13349: THEN
13350:
13351: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Init op tables');
13352:
13353: x_sum_rate_tab := FTE_ID_TAB_TYPE(0);
13354: x_sum_rate_curr_tab := FTE_CODE_TAB_TYPE('NULL');
13355: -- init all elements the tables with 0 and 'NULL' resp.
13356:
13357: x_lane_sched_id_tab:=FTE_ID_TAB_TYPE(0);
13353: x_sum_rate_tab := FTE_ID_TAB_TYPE(0);
13354: x_sum_rate_curr_tab := FTE_CODE_TAB_TYPE('NULL');
13355: -- init all elements the tables with 0 and 'NULL' resp.
13356:
13357: x_lane_sched_id_tab:=FTE_ID_TAB_TYPE(0);
13358: x_lane_sched_tab:=FTE_CODE_TAB_TYPE('NULL');
13359: x_vehicle_type_tab:=FTE_ID_TAB_TYPE(0);
13360: x_mode_tab:=FTE_CODE_TAB_TYPE('NULL');
13361: x_service_type_tab:=FTE_CODE_TAB_TYPE('NULL');
13355: -- init all elements the tables with 0 and 'NULL' resp.
13356:
13357: x_lane_sched_id_tab:=FTE_ID_TAB_TYPE(0);
13358: x_lane_sched_tab:=FTE_CODE_TAB_TYPE('NULL');
13359: x_vehicle_type_tab:=FTE_ID_TAB_TYPE(0);
13360: x_mode_tab:=FTE_CODE_TAB_TYPE('NULL');
13361: x_service_type_tab:=FTE_CODE_TAB_TYPE('NULL');
13362:
13363: