1: PACKAGE BODY FTE_FREIGHT_PRICING_SPECIAL AS
2: /* $Header: FTEFRPSB.pls 120.6 2005/11/04 16:30:56 susurend noship $ */
3:
4: -- Private Package level Variables
5: g_hash_base NUMBER := 1;
34:
35: -- prints contents of the global parameter table
36: PROCEDURE print_params IS
37: i NUMBER;
38: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
39: l_method_name VARCHAR2(50) := 'print_params';
40: BEGIN
41: i := g_lane_parameters.FIRST;
42: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'g_lane_parameters ====> ');
38: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
39: l_method_name VARCHAR2(50) := 'print_params';
40: BEGIN
41: i := g_lane_parameters.FIRST;
42: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'g_lane_parameters ====> ');
43: IF (i IS NOT NULL) THEN
44: LOOP
45: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'lane_id = '||g_lane_parameters(i).lane_id);
46: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_instance_id = '||g_lane_parameters(i).parameter_instance_id);
41: i := g_lane_parameters.FIRST;
42: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'g_lane_parameters ====> ');
43: IF (i IS NOT NULL) THEN
44: LOOP
45: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'lane_id = '||g_lane_parameters(i).lane_id);
46: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_instance_id = '||g_lane_parameters(i).parameter_instance_id);
47: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' lane_function = '||g_lane_parameters(i).lane_function);
48: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_sub_type = '||g_lane_parameters(i).parameter_sub_type);
49: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_name = '||g_lane_parameters(i).parameter_name);
42: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'g_lane_parameters ====> ');
43: IF (i IS NOT NULL) THEN
44: LOOP
45: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'lane_id = '||g_lane_parameters(i).lane_id);
46: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_instance_id = '||g_lane_parameters(i).parameter_instance_id);
47: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' lane_function = '||g_lane_parameters(i).lane_function);
48: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_sub_type = '||g_lane_parameters(i).parameter_sub_type);
49: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_name = '||g_lane_parameters(i).parameter_name);
50: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_from = '||g_lane_parameters(i).value_from);
43: IF (i IS NOT NULL) THEN
44: LOOP
45: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'lane_id = '||g_lane_parameters(i).lane_id);
46: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_instance_id = '||g_lane_parameters(i).parameter_instance_id);
47: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' lane_function = '||g_lane_parameters(i).lane_function);
48: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_sub_type = '||g_lane_parameters(i).parameter_sub_type);
49: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_name = '||g_lane_parameters(i).parameter_name);
50: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_from = '||g_lane_parameters(i).value_from);
51: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_to = '||g_lane_parameters(i).value_to);
44: LOOP
45: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'lane_id = '||g_lane_parameters(i).lane_id);
46: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_instance_id = '||g_lane_parameters(i).parameter_instance_id);
47: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' lane_function = '||g_lane_parameters(i).lane_function);
48: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_sub_type = '||g_lane_parameters(i).parameter_sub_type);
49: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_name = '||g_lane_parameters(i).parameter_name);
50: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_from = '||g_lane_parameters(i).value_from);
51: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_to = '||g_lane_parameters(i).value_to);
52: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_class = '||g_lane_parameters(i).uom_class);
45: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'lane_id = '||g_lane_parameters(i).lane_id);
46: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_instance_id = '||g_lane_parameters(i).parameter_instance_id);
47: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' lane_function = '||g_lane_parameters(i).lane_function);
48: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_sub_type = '||g_lane_parameters(i).parameter_sub_type);
49: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_name = '||g_lane_parameters(i).parameter_name);
50: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_from = '||g_lane_parameters(i).value_from);
51: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_to = '||g_lane_parameters(i).value_to);
52: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_class = '||g_lane_parameters(i).uom_class);
53: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_code = '||g_lane_parameters(i).uom_code);
46: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_instance_id = '||g_lane_parameters(i).parameter_instance_id);
47: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' lane_function = '||g_lane_parameters(i).lane_function);
48: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_sub_type = '||g_lane_parameters(i).parameter_sub_type);
49: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_name = '||g_lane_parameters(i).parameter_name);
50: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_from = '||g_lane_parameters(i).value_from);
51: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_to = '||g_lane_parameters(i).value_to);
52: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_class = '||g_lane_parameters(i).uom_class);
53: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_code = '||g_lane_parameters(i).uom_code);
54: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' currency_code = '||g_lane_parameters(i).currency_code);
47: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' lane_function = '||g_lane_parameters(i).lane_function);
48: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_sub_type = '||g_lane_parameters(i).parameter_sub_type);
49: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_name = '||g_lane_parameters(i).parameter_name);
50: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_from = '||g_lane_parameters(i).value_from);
51: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_to = '||g_lane_parameters(i).value_to);
52: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_class = '||g_lane_parameters(i).uom_class);
53: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_code = '||g_lane_parameters(i).uom_code);
54: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' currency_code = '||g_lane_parameters(i).currency_code);
55: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' ');
48: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_sub_type = '||g_lane_parameters(i).parameter_sub_type);
49: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_name = '||g_lane_parameters(i).parameter_name);
50: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_from = '||g_lane_parameters(i).value_from);
51: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_to = '||g_lane_parameters(i).value_to);
52: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_class = '||g_lane_parameters(i).uom_class);
53: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_code = '||g_lane_parameters(i).uom_code);
54: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' currency_code = '||g_lane_parameters(i).currency_code);
55: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' ');
56: EXIT WHEN (i >= g_lane_parameters.LAST );
49: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' parameter_name = '||g_lane_parameters(i).parameter_name);
50: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_from = '||g_lane_parameters(i).value_from);
51: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_to = '||g_lane_parameters(i).value_to);
52: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_class = '||g_lane_parameters(i).uom_class);
53: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_code = '||g_lane_parameters(i).uom_code);
54: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' currency_code = '||g_lane_parameters(i).currency_code);
55: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' ');
56: EXIT WHEN (i >= g_lane_parameters.LAST );
57: i := g_lane_parameters.NEXT(i);
50: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_from = '||g_lane_parameters(i).value_from);
51: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_to = '||g_lane_parameters(i).value_to);
52: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_class = '||g_lane_parameters(i).uom_class);
53: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_code = '||g_lane_parameters(i).uom_code);
54: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' currency_code = '||g_lane_parameters(i).currency_code);
55: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' ');
56: EXIT WHEN (i >= g_lane_parameters.LAST );
57: i := g_lane_parameters.NEXT(i);
58: END LOOP;
51: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' value_to = '||g_lane_parameters(i).value_to);
52: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_class = '||g_lane_parameters(i).uom_class);
53: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' uom_code = '||g_lane_parameters(i).uom_code);
54: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' currency_code = '||g_lane_parameters(i).currency_code);
55: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' ');
56: EXIT WHEN (i >= g_lane_parameters.LAST );
57: i := g_lane_parameters.NEXT(i);
58: END LOOP;
59: END IF;
61: END print_params;
62:
63: PROCEDURE print_special_flags IS
64: i NUMBER;
65: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
66: l_method_name VARCHAR2(50) := 'print_special_flags';
67: BEGIN
68:
69: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'g_special_flags ===>');
65: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
66: l_method_name VARCHAR2(50) := 'print_special_flags';
67: BEGIN
68:
69: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'g_special_flags ===>');
70: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dim_wt_flag = '||g_special_flags.dim_wt_flag);
71: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'lane_function = '||g_special_flags.lane_function);
72: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'minimum_charge_flag = '||g_special_flags.minimum_charge_flag);
73: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'parcel_hundredwt_flag = '||g_special_flags.parcel_hundredwt_flag);
66: l_method_name VARCHAR2(50) := 'print_special_flags';
67: BEGIN
68:
69: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'g_special_flags ===>');
70: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dim_wt_flag = '||g_special_flags.dim_wt_flag);
71: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'lane_function = '||g_special_flags.lane_function);
72: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'minimum_charge_flag = '||g_special_flags.minimum_charge_flag);
73: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'parcel_hundredwt_flag = '||g_special_flags.parcel_hundredwt_flag);
74: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'deficit_wt_flag = '||g_special_flags.deficit_wt_flag);
67: BEGIN
68:
69: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'g_special_flags ===>');
70: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dim_wt_flag = '||g_special_flags.dim_wt_flag);
71: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'lane_function = '||g_special_flags.lane_function);
72: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'minimum_charge_flag = '||g_special_flags.minimum_charge_flag);
73: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'parcel_hundredwt_flag = '||g_special_flags.parcel_hundredwt_flag);
74: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'deficit_wt_flag = '||g_special_flags.deficit_wt_flag);
75: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'flat_containerwt_flag = '||g_special_flags.flat_containerwt_flag);
68:
69: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'g_special_flags ===>');
70: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dim_wt_flag = '||g_special_flags.dim_wt_flag);
71: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'lane_function = '||g_special_flags.lane_function);
72: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'minimum_charge_flag = '||g_special_flags.minimum_charge_flag);
73: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'parcel_hundredwt_flag = '||g_special_flags.parcel_hundredwt_flag);
74: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'deficit_wt_flag = '||g_special_flags.deficit_wt_flag);
75: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'flat_containerwt_flag = '||g_special_flags.flat_containerwt_flag);
76:
69: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'g_special_flags ===>');
70: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dim_wt_flag = '||g_special_flags.dim_wt_flag);
71: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'lane_function = '||g_special_flags.lane_function);
72: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'minimum_charge_flag = '||g_special_flags.minimum_charge_flag);
73: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'parcel_hundredwt_flag = '||g_special_flags.parcel_hundredwt_flag);
74: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'deficit_wt_flag = '||g_special_flags.deficit_wt_flag);
75: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'flat_containerwt_flag = '||g_special_flags.flat_containerwt_flag);
76:
77: END print_special_flags;
70: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dim_wt_flag = '||g_special_flags.dim_wt_flag);
71: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'lane_function = '||g_special_flags.lane_function);
72: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'minimum_charge_flag = '||g_special_flags.minimum_charge_flag);
73: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'parcel_hundredwt_flag = '||g_special_flags.parcel_hundredwt_flag);
74: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'deficit_wt_flag = '||g_special_flags.deficit_wt_flag);
75: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'flat_containerwt_flag = '||g_special_flags.flat_containerwt_flag);
76:
77: END print_special_flags;
78:
71: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'lane_function = '||g_special_flags.lane_function);
72: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'minimum_charge_flag = '||g_special_flags.minimum_charge_flag);
73: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'parcel_hundredwt_flag = '||g_special_flags.parcel_hundredwt_flag);
74: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'deficit_wt_flag = '||g_special_flags.deficit_wt_flag);
75: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'flat_containerwt_flag = '||g_special_flags.flat_containerwt_flag);
76:
77: END print_special_flags;
78:
79: PROCEDURE print_rules IS
77: END print_special_flags;
78:
79: PROCEDURE print_rules IS
80: i NUMBER;
81: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
82: l_method_name VARCHAR2(50) := 'print_rules';
83: BEGIN
84: i := g_lane_rules_tab.FIRST;
85: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'g_lane_rules_tab ====> ');
81: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
82: l_method_name VARCHAR2(50) := 'print_rules';
83: BEGIN
84: i := g_lane_rules_tab.FIRST;
85: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'g_lane_rules_tab ====> ');
86: IF (i IS NOT NULL) THEN
87: LOOP
88: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' lane_function = '||g_lane_rules_tab(i).lane_function);
89: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' pattern_name = '||g_lane_rules_tab(i).pattern_name);
84: i := g_lane_rules_tab.FIRST;
85: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'g_lane_rules_tab ====> ');
86: IF (i IS NOT NULL) THEN
87: LOOP
88: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' lane_function = '||g_lane_rules_tab(i).lane_function);
89: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' pattern_name = '||g_lane_rules_tab(i).pattern_name);
90: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' grouping_level = '||g_lane_rules_tab(i).grouping_level);
91: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' commodity_aggregation = '||g_lane_rules_tab(i).commodity_aggregation);
92: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' pricing_objective = '||g_lane_rules_tab(i).pricing_objective);
85: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'g_lane_rules_tab ====> ');
86: IF (i IS NOT NULL) THEN
87: LOOP
88: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' lane_function = '||g_lane_rules_tab(i).lane_function);
89: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' pattern_name = '||g_lane_rules_tab(i).pattern_name);
90: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' grouping_level = '||g_lane_rules_tab(i).grouping_level);
91: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' commodity_aggregation = '||g_lane_rules_tab(i).commodity_aggregation);
92: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' pricing_objective = '||g_lane_rules_tab(i).pricing_objective);
93: EXIT WHEN (i >= g_lane_rules_tab.LAST );
86: IF (i IS NOT NULL) THEN
87: LOOP
88: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' lane_function = '||g_lane_rules_tab(i).lane_function);
89: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' pattern_name = '||g_lane_rules_tab(i).pattern_name);
90: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' grouping_level = '||g_lane_rules_tab(i).grouping_level);
91: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' commodity_aggregation = '||g_lane_rules_tab(i).commodity_aggregation);
92: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' pricing_objective = '||g_lane_rules_tab(i).pricing_objective);
93: EXIT WHEN (i >= g_lane_rules_tab.LAST );
94: i := g_lane_rules_tab.NEXT(i);
87: LOOP
88: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' lane_function = '||g_lane_rules_tab(i).lane_function);
89: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' pattern_name = '||g_lane_rules_tab(i).pattern_name);
90: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' grouping_level = '||g_lane_rules_tab(i).grouping_level);
91: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' commodity_aggregation = '||g_lane_rules_tab(i).commodity_aggregation);
92: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' pricing_objective = '||g_lane_rules_tab(i).pricing_objective);
93: EXIT WHEN (i >= g_lane_rules_tab.LAST );
94: i := g_lane_rules_tab.NEXT(i);
95: END LOOP;
88: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' lane_function = '||g_lane_rules_tab(i).lane_function);
89: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' pattern_name = '||g_lane_rules_tab(i).pattern_name);
90: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' grouping_level = '||g_lane_rules_tab(i).grouping_level);
91: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' commodity_aggregation = '||g_lane_rules_tab(i).commodity_aggregation);
92: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,' pricing_objective = '||g_lane_rules_tab(i).pricing_objective);
93: EXIT WHEN (i >= g_lane_rules_tab.LAST );
94: i := g_lane_rules_tab.NEXT(i);
95: END LOOP;
96: END IF;
133: k NUMBER :=1;
134: l_counter NUMBER :=0;
135:
136:
137: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
138: l_method_name VARCHAR2(50) := 'load_rules';
139: BEGIN
140: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
141: l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
139: BEGIN
140: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
141: l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
142:
143: fte_freight_pricing_util.reset_dbg_vars;
144: fte_freight_pricing_util.set_method(l_log_level,'load_rules');
145:
146: g_lane_rules_tab.DELETE;
147:
140: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
141: l_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
142:
143: fte_freight_pricing_util.reset_dbg_vars;
144: fte_freight_pricing_util.set_method(l_log_level,'load_rules');
145:
146: g_lane_rules_tab.DELETE;
147:
148: OPEN c_patterns(p_lane_function);
169:
170: END LOOP;
171: CLOSE c_lane_rules;
172:
173: IF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_1_NAME THEN
174: k := FTE_FREIGHT_PRICING.G_PATTERN_1;
175: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_2_NAME THEN
176: k := FTE_FREIGHT_PRICING.G_PATTERN_2;
177: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_3_NAME THEN
170: END LOOP;
171: CLOSE c_lane_rules;
172:
173: IF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_1_NAME THEN
174: k := FTE_FREIGHT_PRICING.G_PATTERN_1;
175: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_2_NAME THEN
176: k := FTE_FREIGHT_PRICING.G_PATTERN_2;
177: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_3_NAME THEN
178: k := FTE_FREIGHT_PRICING.G_PATTERN_3;
171: CLOSE c_lane_rules;
172:
173: IF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_1_NAME THEN
174: k := FTE_FREIGHT_PRICING.G_PATTERN_1;
175: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_2_NAME THEN
176: k := FTE_FREIGHT_PRICING.G_PATTERN_2;
177: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_3_NAME THEN
178: k := FTE_FREIGHT_PRICING.G_PATTERN_3;
179: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_4_NAME THEN
172:
173: IF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_1_NAME THEN
174: k := FTE_FREIGHT_PRICING.G_PATTERN_1;
175: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_2_NAME THEN
176: k := FTE_FREIGHT_PRICING.G_PATTERN_2;
177: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_3_NAME THEN
178: k := FTE_FREIGHT_PRICING.G_PATTERN_3;
179: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_4_NAME THEN
180: k := FTE_FREIGHT_PRICING.G_PATTERN_4;
173: IF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_1_NAME THEN
174: k := FTE_FREIGHT_PRICING.G_PATTERN_1;
175: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_2_NAME THEN
176: k := FTE_FREIGHT_PRICING.G_PATTERN_2;
177: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_3_NAME THEN
178: k := FTE_FREIGHT_PRICING.G_PATTERN_3;
179: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_4_NAME THEN
180: k := FTE_FREIGHT_PRICING.G_PATTERN_4;
181: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
174: k := FTE_FREIGHT_PRICING.G_PATTERN_1;
175: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_2_NAME THEN
176: k := FTE_FREIGHT_PRICING.G_PATTERN_2;
177: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_3_NAME THEN
178: k := FTE_FREIGHT_PRICING.G_PATTERN_3;
179: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_4_NAME THEN
180: k := FTE_FREIGHT_PRICING.G_PATTERN_4;
181: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
182: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
175: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_2_NAME THEN
176: k := FTE_FREIGHT_PRICING.G_PATTERN_2;
177: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_3_NAME THEN
178: k := FTE_FREIGHT_PRICING.G_PATTERN_3;
179: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_4_NAME THEN
180: k := FTE_FREIGHT_PRICING.G_PATTERN_4;
181: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
182: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
183: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
176: k := FTE_FREIGHT_PRICING.G_PATTERN_2;
177: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_3_NAME THEN
178: k := FTE_FREIGHT_PRICING.G_PATTERN_3;
179: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_4_NAME THEN
180: k := FTE_FREIGHT_PRICING.G_PATTERN_4;
181: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
182: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
183: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
184: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
177: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_3_NAME THEN
178: k := FTE_FREIGHT_PRICING.G_PATTERN_3;
179: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_4_NAME THEN
180: k := FTE_FREIGHT_PRICING.G_PATTERN_4;
181: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
182: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
183: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
184: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
185: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_6_NAME THEN
178: k := FTE_FREIGHT_PRICING.G_PATTERN_3;
179: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_4_NAME THEN
180: k := FTE_FREIGHT_PRICING.G_PATTERN_4;
181: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
182: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
183: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
184: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
185: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_6_NAME THEN
186: k := FTE_FREIGHT_PRICING.G_PATTERN_6;
179: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_4_NAME THEN
180: k := FTE_FREIGHT_PRICING.G_PATTERN_4;
181: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
182: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
183: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
184: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
185: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_6_NAME THEN
186: k := FTE_FREIGHT_PRICING.G_PATTERN_6;
187: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_7_NAME THEN
180: k := FTE_FREIGHT_PRICING.G_PATTERN_4;
181: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
182: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
183: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
184: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
185: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_6_NAME THEN
186: k := FTE_FREIGHT_PRICING.G_PATTERN_6;
187: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_7_NAME THEN
188: k := FTE_FREIGHT_PRICING.G_PATTERN_7;
181: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
182: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
183: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
184: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
185: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_6_NAME THEN
186: k := FTE_FREIGHT_PRICING.G_PATTERN_6;
187: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_7_NAME THEN
188: k := FTE_FREIGHT_PRICING.G_PATTERN_7;
189: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_8_NAME THEN
182: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
183: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
184: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
185: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_6_NAME THEN
186: k := FTE_FREIGHT_PRICING.G_PATTERN_6;
187: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_7_NAME THEN
188: k := FTE_FREIGHT_PRICING.G_PATTERN_7;
189: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_8_NAME THEN
190: k := FTE_FREIGHT_PRICING.G_PATTERN_8;
183: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_5_NAME THEN
184: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
185: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_6_NAME THEN
186: k := FTE_FREIGHT_PRICING.G_PATTERN_6;
187: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_7_NAME THEN
188: k := FTE_FREIGHT_PRICING.G_PATTERN_7;
189: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_8_NAME THEN
190: k := FTE_FREIGHT_PRICING.G_PATTERN_8;
191: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_9_NAME THEN
184: k := FTE_FREIGHT_PRICING.G_PATTERN_5;
185: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_6_NAME THEN
186: k := FTE_FREIGHT_PRICING.G_PATTERN_6;
187: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_7_NAME THEN
188: k := FTE_FREIGHT_PRICING.G_PATTERN_7;
189: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_8_NAME THEN
190: k := FTE_FREIGHT_PRICING.G_PATTERN_8;
191: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_9_NAME THEN
192: k := FTE_FREIGHT_PRICING.G_PATTERN_9;
185: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_6_NAME THEN
186: k := FTE_FREIGHT_PRICING.G_PATTERN_6;
187: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_7_NAME THEN
188: k := FTE_FREIGHT_PRICING.G_PATTERN_7;
189: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_8_NAME THEN
190: k := FTE_FREIGHT_PRICING.G_PATTERN_8;
191: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_9_NAME THEN
192: k := FTE_FREIGHT_PRICING.G_PATTERN_9;
193: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_10_NAME THEN
186: k := FTE_FREIGHT_PRICING.G_PATTERN_6;
187: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_7_NAME THEN
188: k := FTE_FREIGHT_PRICING.G_PATTERN_7;
189: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_8_NAME THEN
190: k := FTE_FREIGHT_PRICING.G_PATTERN_8;
191: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_9_NAME THEN
192: k := FTE_FREIGHT_PRICING.G_PATTERN_9;
193: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_10_NAME THEN
194: k := FTE_FREIGHT_PRICING.G_PATTERN_10;
187: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_7_NAME THEN
188: k := FTE_FREIGHT_PRICING.G_PATTERN_7;
189: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_8_NAME THEN
190: k := FTE_FREIGHT_PRICING.G_PATTERN_8;
191: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_9_NAME THEN
192: k := FTE_FREIGHT_PRICING.G_PATTERN_9;
193: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_10_NAME THEN
194: k := FTE_FREIGHT_PRICING.G_PATTERN_10;
195: END IF;
188: k := FTE_FREIGHT_PRICING.G_PATTERN_7;
189: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_8_NAME THEN
190: k := FTE_FREIGHT_PRICING.G_PATTERN_8;
191: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_9_NAME THEN
192: k := FTE_FREIGHT_PRICING.G_PATTERN_9;
193: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_10_NAME THEN
194: k := FTE_FREIGHT_PRICING.G_PATTERN_10;
195: END IF;
196:
189: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_8_NAME THEN
190: k := FTE_FREIGHT_PRICING.G_PATTERN_8;
191: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_9_NAME THEN
192: k := FTE_FREIGHT_PRICING.G_PATTERN_9;
193: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_10_NAME THEN
194: k := FTE_FREIGHT_PRICING.G_PATTERN_10;
195: END IF;
196:
197: IF (l_def_values.COUNT > 0) THEN
190: k := FTE_FREIGHT_PRICING.G_PATTERN_8;
191: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_9_NAME THEN
192: k := FTE_FREIGHT_PRICING.G_PATTERN_9;
193: ELSIF l_pattern_name = FTE_FREIGHT_PRICING.G_PATTERN_10_NAME THEN
194: k := FTE_FREIGHT_PRICING.G_PATTERN_10;
195: END IF;
196:
197: IF (l_def_values.COUNT > 0) THEN
198: g_lane_rules_tab(k).lane_function := p_lane_function;
224: IF p_lane_function = 'LTL' and
225: (g_lane_rules_tab(k).grouping_level <> 'SHIPMENT'
226: or g_lane_rules_tab(k).commodity_aggregation <> 'WITHIN') THEN
227:
228: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'Invalid parttern for LTL');
229: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'grouping_level='||g_lane_rules_tab(k).grouping_level);
230: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'commodity_aggregation='||g_lane_rules_tab(k).commodity_aggregation);
231: l_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
232:
225: (g_lane_rules_tab(k).grouping_level <> 'SHIPMENT'
226: or g_lane_rules_tab(k).commodity_aggregation <> 'WITHIN') THEN
227:
228: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'Invalid parttern for LTL');
229: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'grouping_level='||g_lane_rules_tab(k).grouping_level);
230: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'commodity_aggregation='||g_lane_rules_tab(k).commodity_aggregation);
231: l_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
232:
233: END IF;
226: or g_lane_rules_tab(k).commodity_aggregation <> 'WITHIN') THEN
227:
228: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'Invalid parttern for LTL');
229: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'grouping_level='||g_lane_rules_tab(k).grouping_level);
230: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'commodity_aggregation='||g_lane_rules_tab(k).commodity_aggregation);
231: l_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
232:
233: END IF;
234:
244: IF l_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR THEN
245: RAISE FND_API.G_EXC_ERROR;
246: END IF;
247:
248: fte_freight_pricing_util.unset_method(l_log_level,'load_rules');
249: EXCEPTION
250: WHEN FND_API.G_EXC_ERROR THEN
251: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
252: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
248: fte_freight_pricing_util.unset_method(l_log_level,'load_rules');
249: EXCEPTION
250: WHEN FND_API.G_EXC_ERROR THEN
251: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
252: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
253: fte_freight_pricing_util.unset_method(l_log_level,'load_rules');
254: WHEN others THEN
255: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
256: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
249: EXCEPTION
250: WHEN FND_API.G_EXC_ERROR THEN
251: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
252: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
253: fte_freight_pricing_util.unset_method(l_log_level,'load_rules');
254: WHEN others THEN
255: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
256: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
257: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
252: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
253: fte_freight_pricing_util.unset_method(l_log_level,'load_rules');
254: WHEN others THEN
255: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
256: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
257: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
258: fte_freight_pricing_util.unset_method(l_log_level,'load_rules');
259: END load_rules;
260:
253: fte_freight_pricing_util.unset_method(l_log_level,'load_rules');
254: WHEN others THEN
255: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
256: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
257: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
258: fte_freight_pricing_util.unset_method(l_log_level,'load_rules');
259: END load_rules;
260:
261: -- This procedure initializes global data for use by special pricing.
254: WHEN others THEN
255: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
256: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
257: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
258: fte_freight_pricing_util.unset_method(l_log_level,'load_rules');
259: END load_rules;
260:
261: -- This procedure initializes global data for use by special pricing.
262: -- Currently, this procedure loads parameters for the lane into the global plsql table.
279:
280: l_lane_param_rec lane_parameter_rec_type;
281: l_return_status VARCHAR2(1);
282: i NUMBER :=1;
283: l_log_level NUMBER := fte_freight_pricing_util.G_LOG;
284: l_method_name VARCHAR2(50) := 'initialize';
285:
286: /*
287: ---- Local Module ----
289: -- and sets flags in a global record.
290: -- This global record is checked later (at various points) to decide on the course of action.
291:
292: PROCEDURE check_for_special_conditions(p_param_rec IN lane_parameter_rec_type) IS
293: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
294: l_method_name VARCHAR2(50) := 'check_for_special_conditions';
295: BEGIN
296: fte_freight_pricing_util.set_method(l_log_level,'check_for_special_conditions');
297: g_special_flags.lane_id := p_param_rec.lane_id;
292: PROCEDURE check_for_special_conditions(p_param_rec IN lane_parameter_rec_type) IS
293: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
294: l_method_name VARCHAR2(50) := 'check_for_special_conditions';
295: BEGIN
296: fte_freight_pricing_util.set_method(l_log_level,'check_for_special_conditions');
297: g_special_flags.lane_id := p_param_rec.lane_id;
298: IF (p_param_rec.lane_function = 'NONE' AND p_param_rec.parameter_name = 'LANE_FUNCTION') THEN
299: g_special_flags.lane_function := nvl(p_param_rec.value_from,'NONE');
300: END IF;
320: IF (p_param_rec.lane_function = 'PARCEL' AND p_param_rec.parameter_sub_type = 'HUNDREDWT'
321: AND p_param_rec.parameter_name = 'ENABLED') THEN
322: g_special_flags.parcel_hundredwt_flag := nvl(p_param_rec.value_from,'N');
323: END IF;
324: fte_freight_pricing_util.unset_method(l_log_level,'check_for_special_conditions');
325: END check_for_special_conditions;
326: ---- End Local Module ---
327: */
328: ---- Local Module ----
336: l_dim_wt_wt_uom_ok BOOLEAN := false;
337: l_dim_wt_vol_uom_ok BOOLEAN := false;
338: l_dim_wt_dim_uom_ok BOOLEAN := false;
339: l_return_status VARCHAR2(1);
340: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
341: l_method_name VARCHAR2(50) := 'validate_parameters';
342: BEGIN
343: fte_freight_pricing_util.set_method(l_log_level,'validate_parameters');
344: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
339: l_return_status VARCHAR2(1);
340: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
341: l_method_name VARCHAR2(50) := 'validate_parameters';
342: BEGIN
343: fte_freight_pricing_util.set_method(l_log_level,'validate_parameters');
344: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
345: /*
346: --validate deficit wt params
347: IF (g_special_flags.deficit_wt_flag = 'Y') THEN
352: IF (g_lane_parameters(i).parameter_name = 'WT_BREAK_POINT') THEN
353:
354: IF ( g_lane_parameters(i).value_from IS NULL
355: OR g_lane_parameters(i).uom_code IS NULL) THEN
356: raise fte_freight_pricing_util.g_invalid_wt_break;
357: END IF;
358:
359: IF (l_last_df_wt_uom IS NULL) THEN
360: l_last_df_wt_uom := g_lane_parameters(i).uom_code;
359: IF (l_last_df_wt_uom IS NULL) THEN
360: l_last_df_wt_uom := g_lane_parameters(i).uom_code;
361: ELSE
362: IF (l_last_df_wt_uom <> g_lane_parameters(i).uom_code ) THEN
363: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'All deficit weight break points are not in the same uom');
364: raise fte_freight_pricing_util.g_invalid_wt_break;
365: END IF;
366: END IF;
367:
360: l_last_df_wt_uom := g_lane_parameters(i).uom_code;
361: ELSE
362: IF (l_last_df_wt_uom <> g_lane_parameters(i).uom_code ) THEN
363: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'All deficit weight break points are not in the same uom');
364: raise fte_freight_pricing_util.g_invalid_wt_break;
365: END IF;
366: END IF;
367:
368: l_wt_break_cnt := l_wt_break_cnt + 1;
371: i := g_lane_parameters.NEXT(i);
372: END LOOP;
373: END IF;
374: IF (l_wt_break_cnt = 0) THEN
375: raise fte_freight_pricing_util.g_weight_break_not_found;
376: END IF;
377:
378: END IF; --validate deficit wt params
379: */
377:
378: END IF; --validate deficit wt params
379: */
380:
381: fte_freight_pricing_util.print_msg(l_log_level,'before loop --1');
382: i := g_lane_parameters.FIRST;
383: IF (i is NOT NULL) THEN
384: LOOP
385: fte_freight_pricing_util.print_msg(l_log_level,'in loop i='||i);
381: fte_freight_pricing_util.print_msg(l_log_level,'before loop --1');
382: i := g_lane_parameters.FIRST;
383: IF (i is NOT NULL) THEN
384: LOOP
385: fte_freight_pricing_util.print_msg(l_log_level,'in loop i='||i);
386: IF (g_lane_parameters(i).lane_function = 'NONE'
387: AND g_lane_parameters(i).parameter_sub_type = 'LANE'
388: AND g_lane_parameters(i).parameter_name = 'LANE_FUNCTION') THEN
389: IF (g_lane_parameters(i).value_from is null) THEN
424: IF (g_lane_parameters(i).lane_function = 'LTL'
425: AND g_lane_parameters(i).parameter_sub_type = 'DEFICIT_WT'
426: AND g_lane_parameters(i).parameter_name = 'WT_BREAK_POINT') THEN
427: IF (g_lane_parameters(i).value_from is null) THEN
428: fte_freight_pricing_util.print_msg(l_log_level,'deficit wt break point null');
429: l_invalid_df_wt_break_found := true;
430: --raise fte_freight_pricing_util.g_invalid_wt_break;
431: ELSIF (fnd_number.canonical_to_number(g_lane_parameters(i).value_from) < 0) THEN
432: fte_freight_pricing_util.print_msg(l_log_level,'deficit wt break point '||g_lane_parameters(i).value_from);
426: AND g_lane_parameters(i).parameter_name = 'WT_BREAK_POINT') THEN
427: IF (g_lane_parameters(i).value_from is null) THEN
428: fte_freight_pricing_util.print_msg(l_log_level,'deficit wt break point null');
429: l_invalid_df_wt_break_found := true;
430: --raise fte_freight_pricing_util.g_invalid_wt_break;
431: ELSIF (fnd_number.canonical_to_number(g_lane_parameters(i).value_from) < 0) THEN
432: fte_freight_pricing_util.print_msg(l_log_level,'deficit wt break point '||g_lane_parameters(i).value_from);
433: l_invalid_df_wt_break_found := true;
434: --raise fte_freight_pricing_util.g_invalid_wt_break;
428: fte_freight_pricing_util.print_msg(l_log_level,'deficit wt break point null');
429: l_invalid_df_wt_break_found := true;
430: --raise fte_freight_pricing_util.g_invalid_wt_break;
431: ELSIF (fnd_number.canonical_to_number(g_lane_parameters(i).value_from) < 0) THEN
432: fte_freight_pricing_util.print_msg(l_log_level,'deficit wt break point '||g_lane_parameters(i).value_from);
433: l_invalid_df_wt_break_found := true;
434: --raise fte_freight_pricing_util.g_invalid_wt_break;
435: ELSE
436: IF (g_lane_parameters(i).uom_code is null) THEN
430: --raise fte_freight_pricing_util.g_invalid_wt_break;
431: ELSIF (fnd_number.canonical_to_number(g_lane_parameters(i).value_from) < 0) THEN
432: fte_freight_pricing_util.print_msg(l_log_level,'deficit wt break point '||g_lane_parameters(i).value_from);
433: l_invalid_df_wt_break_found := true;
434: --raise fte_freight_pricing_util.g_invalid_wt_break;
435: ELSE
436: IF (g_lane_parameters(i).uom_code is null) THEN
437: fte_freight_pricing_util.print_msg(l_log_level,'deficit wt break point uom null');
438: l_invalid_df_wt_break_found := true;
433: l_invalid_df_wt_break_found := true;
434: --raise fte_freight_pricing_util.g_invalid_wt_break;
435: ELSE
436: IF (g_lane_parameters(i).uom_code is null) THEN
437: fte_freight_pricing_util.print_msg(l_log_level,'deficit wt break point uom null');
438: l_invalid_df_wt_break_found := true;
439: --raise fte_freight_pricing_util.g_invalid_wt_break;
440: ELSE
441: IF (l_last_df_wt_uom IS NULL) THEN
435: ELSE
436: IF (g_lane_parameters(i).uom_code is null) THEN
437: fte_freight_pricing_util.print_msg(l_log_level,'deficit wt break point uom null');
438: l_invalid_df_wt_break_found := true;
439: --raise fte_freight_pricing_util.g_invalid_wt_break;
440: ELSE
441: IF (l_last_df_wt_uom IS NULL) THEN
442: l_last_df_wt_uom := g_lane_parameters(i).uom_code;
443: ELSE
441: IF (l_last_df_wt_uom IS NULL) THEN
442: l_last_df_wt_uom := g_lane_parameters(i).uom_code;
443: ELSE
444: IF (l_last_df_wt_uom <> g_lane_parameters(i).uom_code ) THEN
445: fte_freight_pricing_util.print_msg(l_log_level,'All deficit weight break points are not in the same uom');
446: l_invalid_df_wt_break_found := true;
447: --raise fte_freight_pricing_util.g_invalid_wt_break;
448: END IF;
449: END IF;
443: ELSE
444: IF (l_last_df_wt_uom <> g_lane_parameters(i).uom_code ) THEN
445: fte_freight_pricing_util.print_msg(l_log_level,'All deficit weight break points are not in the same uom');
446: l_invalid_df_wt_break_found := true;
447: --raise fte_freight_pricing_util.g_invalid_wt_break;
448: END IF;
449: END IF;
450: l_wt_break_cnt := l_wt_break_cnt + 1;
451: END IF;
469: AND g_lane_parameters(i).parameter_name = 'MIN_PACKAGE_WT') THEN
470: IF (g_lane_parameters(i).value_from IS NULL) THEN
471: g_lane_parameters(i).value_from := 0;
472: ELSIF (fnd_number.canonical_to_number(g_lane_parameters(i).value_from) <= 0) THEN
473: fte_freight_pricing_util.print_msg(l_log_level,'parcel hundredwt min_package_wt '||g_lane_parameters(i).value_from||' set to 0');
474: g_lane_parameters(i).value_from := 0;
475: ELSE
476: IF (g_lane_parameters(i).uom_code is null) THEN
477: fte_freight_pricing_util.print_msg(l_log_level,'parcel hundredwt min_package_wt uom_code null');
473: fte_freight_pricing_util.print_msg(l_log_level,'parcel hundredwt min_package_wt '||g_lane_parameters(i).value_from||' set to 0');
474: g_lane_parameters(i).value_from := 0;
475: ELSE
476: IF (g_lane_parameters(i).uom_code is null) THEN
477: fte_freight_pricing_util.print_msg(l_log_level,'parcel hundredwt min_package_wt uom_code null');
478: raise fte_freight_pricing_util.g_invalid_uom_code;
479: END IF;
480: END IF;
481: END IF;
474: g_lane_parameters(i).value_from := 0;
475: ELSE
476: IF (g_lane_parameters(i).uom_code is null) THEN
477: fte_freight_pricing_util.print_msg(l_log_level,'parcel hundredwt min_package_wt uom_code null');
478: raise fte_freight_pricing_util.g_invalid_uom_code;
479: END IF;
480: END IF;
481: END IF;
482:
520: AND g_lane_parameters(i).parameter_name = 'MIN_PACKAGE_VOLUME') THEN
521: IF (g_lane_parameters(i).value_from IS NULL) THEN
522: g_lane_parameters(i).value_from := '0';
523: ELSIF (fnd_number.canonical_to_number(g_lane_parameters(i).value_from) <= 0) THEN
524: fte_freight_pricing_util.print_msg(l_log_level,'dim_wt min_package_volume '||g_lane_parameters(i).value_from||' set to 0');
525: g_lane_parameters(i).value_from := '0';
526: ELSE
527: IF (g_lane_parameters(i).uom_code is null) THEN
528: fte_freight_pricing_util.print_msg(l_log_level,'dim_wt min_package_volume uom_code null');
524: fte_freight_pricing_util.print_msg(l_log_level,'dim_wt min_package_volume '||g_lane_parameters(i).value_from||' set to 0');
525: g_lane_parameters(i).value_from := '0';
526: ELSE
527: IF (g_lane_parameters(i).uom_code is null) THEN
528: fte_freight_pricing_util.print_msg(l_log_level,'dim_wt min_package_volume uom_code null');
529: raise fte_freight_pricing_util.g_invalid_uom_code;
530: END IF;
531: END IF;
532: END IF;
525: g_lane_parameters(i).value_from := '0';
526: ELSE
527: IF (g_lane_parameters(i).uom_code is null) THEN
528: fte_freight_pricing_util.print_msg(l_log_level,'dim_wt min_package_volume uom_code null');
529: raise fte_freight_pricing_util.g_invalid_uom_code;
530: END IF;
531: END IF;
532: END IF;
533:
530: END IF;
531: END IF;
532: END IF;
533:
534: fte_freight_pricing_util.print_msg(l_log_level,'end loop i='||i);
535: EXIT WHEN i >=g_lane_parameters.LAST;
536: i := g_lane_parameters.NEXT(i);
537: END LOOP;
538: END IF;
535: EXIT WHEN i >=g_lane_parameters.LAST;
536: i := g_lane_parameters.NEXT(i);
537: END LOOP;
538: END IF;
539: fte_freight_pricing_util.print_msg(l_log_level,'after loop --2 ');
540:
541: IF (l_dim_wt_factor_ok AND l_dim_wt_wt_uom_ok AND l_dim_wt_vol_uom_ok AND l_dim_wt_dim_uom_ok ) THEN
542: g_special_flags.dim_wt_flag :='Y';
543: -- ELSE
548: -- );
549: --
550: END IF;
551:
552: fte_freight_pricing_util.print_msg(l_log_level,'after loop --3 ');
553:
554: IF (g_special_flags.deficit_wt_flag = 'Y') THEN
555: IF (l_wt_break_cnt = 0) THEN
556: raise fte_freight_pricing_util.g_weight_break_not_found;
552: fte_freight_pricing_util.print_msg(l_log_level,'after loop --3 ');
553:
554: IF (g_special_flags.deficit_wt_flag = 'Y') THEN
555: IF (l_wt_break_cnt = 0) THEN
556: raise fte_freight_pricing_util.g_weight_break_not_found;
557: END IF;
558: IF (l_invalid_df_wt_break_found) THEN
559: raise fte_freight_pricing_util.g_invalid_wt_break;
560: END IF;
555: IF (l_wt_break_cnt = 0) THEN
556: raise fte_freight_pricing_util.g_weight_break_not_found;
557: END IF;
558: IF (l_invalid_df_wt_break_found) THEN
559: raise fte_freight_pricing_util.g_invalid_wt_break;
560: END IF;
561: END IF;
562:
563: fte_freight_pricing_util.print_msg(l_log_level,'after loop --4 ');
559: raise fte_freight_pricing_util.g_invalid_wt_break;
560: END IF;
561: END IF;
562:
563: fte_freight_pricing_util.print_msg(l_log_level,'after loop --4 ');
564:
565: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
566: EXCEPTION
567: WHEN fte_freight_pricing_util.g_invalid_uom_code THEN
561: END IF;
562:
563: fte_freight_pricing_util.print_msg(l_log_level,'after loop --4 ');
564:
565: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
566: EXCEPTION
567: WHEN fte_freight_pricing_util.g_invalid_uom_code THEN
568: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
569: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_uom_code');
563: fte_freight_pricing_util.print_msg(l_log_level,'after loop --4 ');
564:
565: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
566: EXCEPTION
567: WHEN fte_freight_pricing_util.g_invalid_uom_code THEN
568: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
569: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_uom_code');
570: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
571: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
565: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
566: EXCEPTION
567: WHEN fte_freight_pricing_util.g_invalid_uom_code THEN
568: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
569: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_uom_code');
570: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
571: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
572: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
573: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
566: EXCEPTION
567: WHEN fte_freight_pricing_util.g_invalid_uom_code THEN
568: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
569: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_uom_code');
570: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
571: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
572: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
573: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
574: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
567: WHEN fte_freight_pricing_util.g_invalid_uom_code THEN
568: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
569: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_uom_code');
570: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
571: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
572: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
573: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
574: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
575: WHEN fte_freight_pricing_util.g_invalid_wt_break THEN
569: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_uom_code');
570: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
571: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
572: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
573: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
574: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
575: WHEN fte_freight_pricing_util.g_invalid_wt_break THEN
576: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
577: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_wt_break');
570: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
571: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
572: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
573: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
574: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
575: WHEN fte_freight_pricing_util.g_invalid_wt_break THEN
576: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
577: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_wt_break');
578: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
571: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
572: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
573: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
574: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
575: WHEN fte_freight_pricing_util.g_invalid_wt_break THEN
576: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
577: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_wt_break');
578: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
579: WHEN others THEN
573: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
574: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
575: WHEN fte_freight_pricing_util.g_invalid_wt_break THEN
576: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
577: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_wt_break');
578: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
579: WHEN others THEN
580: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
581: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
574: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
575: WHEN fte_freight_pricing_util.g_invalid_wt_break THEN
576: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
577: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_wt_break');
578: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
579: WHEN others THEN
580: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
581: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
582: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
577: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_wt_break');
578: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
579: WHEN others THEN
580: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
581: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
582: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
583: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
584: END validate_parameters;
585:
578: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
579: WHEN others THEN
580: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
581: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
582: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
583: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
584: END validate_parameters;
585:
586: -- End local module --
579: WHEN others THEN
580: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
581: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
582: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
583: fte_freight_pricing_util.unset_method(l_log_level,'validate_parameters');
584: END validate_parameters;
585:
586: -- End local module --
587:
586: -- End local module --
587:
588: BEGIN
589: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
590: fte_freight_pricing_util.reset_dbg_vars;
591: fte_freight_pricing_util.set_method(l_log_level,'initialize');
592: fte_freight_pricing_util.print_msg(l_log_level,'p_lane_id: '||p_lane_id);
593:
594: fte_freight_pricing_util.set_location(p_loc=>'load_parameters');
587:
588: BEGIN
589: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
590: fte_freight_pricing_util.reset_dbg_vars;
591: fte_freight_pricing_util.set_method(l_log_level,'initialize');
592: fte_freight_pricing_util.print_msg(l_log_level,'p_lane_id: '||p_lane_id);
593:
594: fte_freight_pricing_util.set_location(p_loc=>'load_parameters');
595:
588: BEGIN
589: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
590: fte_freight_pricing_util.reset_dbg_vars;
591: fte_freight_pricing_util.set_method(l_log_level,'initialize');
592: fte_freight_pricing_util.print_msg(l_log_level,'p_lane_id: '||p_lane_id);
593:
594: fte_freight_pricing_util.set_location(p_loc=>'load_parameters');
595:
596: g_lane_parameters.DELETE;
590: fte_freight_pricing_util.reset_dbg_vars;
591: fte_freight_pricing_util.set_method(l_log_level,'initialize');
592: fte_freight_pricing_util.print_msg(l_log_level,'p_lane_id: '||p_lane_id);
593:
594: fte_freight_pricing_util.set_location(p_loc=>'load_parameters');
595:
596: g_lane_parameters.DELETE;
597:
598: OPEN c_lane_param(p_lane_id);
605: i := i +1;
606: END LOOP;
607: CLOSE c_lane_param;
608:
609: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'parameters before validation');
610: print_params;
611: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'===>g_lane_parameters.COUNT = '||g_lane_parameters.COUNT);
612:
613: g_special_flags.lane_id := p_lane_id;
607: CLOSE c_lane_param;
608:
609: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'parameters before validation');
610: print_params;
611: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'===>g_lane_parameters.COUNT = '||g_lane_parameters.COUNT);
612:
613: g_special_flags.lane_id := p_lane_id;
614: g_special_flags.lane_function := 'NONE';
615: g_special_flags.dim_wt_flag := 'N';
621: validate_parameters(x_return_status => l_return_status);
622:
623: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
624: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
625: raise fte_freight_pricing_util.g_param_validation_failed;
626: END IF;
627:
628: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'parameters after validation');
629: print_params;
624: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
625: raise fte_freight_pricing_util.g_param_validation_failed;
626: END IF;
627:
628: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'parameters after validation');
629: print_params;
630: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'===>g_lane_parameters.COUNT = '||g_lane_parameters.COUNT);
631: print_special_flags;
632:
626: END IF;
627:
628: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'parameters after validation');
629: print_params;
630: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'===>g_lane_parameters.COUNT = '||g_lane_parameters.COUNT);
631: print_special_flags;
632:
633: fte_freight_pricing_util.set_location(p_loc=>'load_rules');
634: load_rules(
629: print_params;
630: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_INF,'===>g_lane_parameters.COUNT = '||g_lane_parameters.COUNT);
631: print_special_flags;
632:
633: fte_freight_pricing_util.set_location(p_loc=>'load_rules');
634: load_rules(
635: p_lane_id => p_lane_id,
636: p_lane_function => g_special_flags.lane_function,
637: x_return_status => l_return_status);
637: x_return_status => l_return_status);
638:
639: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
640: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
641: raise fte_freight_pricing_util.g_load_rules_failed;
642: END IF;
643:
644: print_rules;
645:
647:
648: FTE_QP_ENGINE.clear_qp_input(x_return_status => l_return_status);
649: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
650: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
651: raise fte_freight_pricing_util.g_clear_qp_input_failed;
652: END IF;
653:
654: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
655: EXCEPTION
650: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
651: raise fte_freight_pricing_util.g_clear_qp_input_failed;
652: END IF;
653:
654: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
655: EXCEPTION
656: WHEN fte_freight_pricing_util.g_clear_qp_input_failed THEN
657: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
658: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_clear_qp_input_failed');
652: END IF;
653:
654: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
655: EXCEPTION
656: WHEN fte_freight_pricing_util.g_clear_qp_input_failed THEN
657: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
658: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_clear_qp_input_failed');
659: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
660: WHEN fte_freight_pricing_util.g_param_validation_failed THEN
654: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
655: EXCEPTION
656: WHEN fte_freight_pricing_util.g_clear_qp_input_failed THEN
657: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
658: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_clear_qp_input_failed');
659: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
660: WHEN fte_freight_pricing_util.g_param_validation_failed THEN
661: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
662: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_param_validation_failed');
655: EXCEPTION
656: WHEN fte_freight_pricing_util.g_clear_qp_input_failed THEN
657: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
658: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_clear_qp_input_failed');
659: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
660: WHEN fte_freight_pricing_util.g_param_validation_failed THEN
661: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
662: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_param_validation_failed');
663: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
656: WHEN fte_freight_pricing_util.g_clear_qp_input_failed THEN
657: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
658: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_clear_qp_input_failed');
659: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
660: WHEN fte_freight_pricing_util.g_param_validation_failed THEN
661: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
662: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_param_validation_failed');
663: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
664: WHEN fte_freight_pricing_util.g_load_rules_failed THEN
658: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_clear_qp_input_failed');
659: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
660: WHEN fte_freight_pricing_util.g_param_validation_failed THEN
661: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
662: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_param_validation_failed');
663: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
664: WHEN fte_freight_pricing_util.g_load_rules_failed THEN
665: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
666: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_load_rules_failed');
659: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
660: WHEN fte_freight_pricing_util.g_param_validation_failed THEN
661: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
662: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_param_validation_failed');
663: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
664: WHEN fte_freight_pricing_util.g_load_rules_failed THEN
665: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
666: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_load_rules_failed');
667: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
660: WHEN fte_freight_pricing_util.g_param_validation_failed THEN
661: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
662: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_param_validation_failed');
663: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
664: WHEN fte_freight_pricing_util.g_load_rules_failed THEN
665: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
666: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_load_rules_failed');
667: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
668: WHEN others THEN
662: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_param_validation_failed');
663: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
664: WHEN fte_freight_pricing_util.g_load_rules_failed THEN
665: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
666: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_load_rules_failed');
667: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
668: WHEN others THEN
669: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
670: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
663: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
664: WHEN fte_freight_pricing_util.g_load_rules_failed THEN
665: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
666: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_load_rules_failed');
667: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
668: WHEN others THEN
669: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
670: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
671: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
666: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_load_rules_failed');
667: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
668: WHEN others THEN
669: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
670: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
671: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
672: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
673:
674: END initialize;
667: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
668: WHEN others THEN
669: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
670: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
671: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
672: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
673:
674: END initialize;
675:
668: WHEN others THEN
669: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
670: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
671: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
672: fte_freight_pricing_util.unset_method(l_log_level,'initialize');
673:
674: END initialize;
675:
676:
673:
674: END initialize;
675:
676:
677: PROCEDURE calc_gross_weight (p_top_level_rec IN fte_freight_pricing.shpmnt_content_rec_type,
678: p_target_uom IN VARCHAR2 DEFAULT NULL,
679: x_gross_wt OUT NOCOPY NUMBER,
680: x_rolledup_wt OUT NOCOPY NUMBER,
681: x_cont_tare_wt OUT NOCOPY NUMBER,
689: l_temp_uom VARCHAR2(30);
690: l_gross_wt NUMBER;
691: l_gross_wt_uom VARCHAR2(30);
692: l_return_status VARCHAR2(1);
693: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
694: l_method_name VARCHAR2(50) := 'calc_gross_weight';
695: BEGIN
696: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
697: fte_freight_pricing_util.reset_dbg_vars;
693: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
694: l_method_name VARCHAR2(50) := 'calc_gross_weight';
695: BEGIN
696: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
697: fte_freight_pricing_util.reset_dbg_vars;
698: fte_freight_pricing_util.set_method(l_log_level,'calc_gross_weight');
699:
700: l_target_uom := p_target_uom;
701:
694: l_method_name VARCHAR2(50) := 'calc_gross_weight';
695: BEGIN
696: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
697: fte_freight_pricing_util.reset_dbg_vars;
698: fte_freight_pricing_util.set_method(l_log_level,'calc_gross_weight');
699:
700: l_target_uom := p_target_uom;
701:
702: IF (p_top_level_rec.container_flag = 'N') THEN
720: x_gross_wt := l_temp_wt;
721: x_uom := l_temp_uom;
722: ELSE
723: -- This is a container item
724: j := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
725: IF (j IS NOT NULL) THEN
726: LOOP
727: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).master_container_id
728: = p_top_level_rec.content_id) THEN
723: -- This is a container item
724: j := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
725: IF (j IS NOT NULL) THEN
726: LOOP
727: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).master_container_id
728: = p_top_level_rec.content_id) THEN
729:
730: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'j ='||j);
731: IF (l_target_uom IS NULL) THEN
726: LOOP
727: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).master_container_id
728: = p_top_level_rec.content_id) THEN
729:
730: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'j ='||j);
731: IF (l_target_uom IS NULL) THEN
732: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
733: END IF;
734:
728: = p_top_level_rec.content_id) THEN
729:
730: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'j ='||j);
731: IF (l_target_uom IS NULL) THEN
732: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
733: END IF;
734:
735: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom <> l_target_uom ) THEN
736: l_temp_wt := l_temp_wt + WSH_WV_UTILS.convert_uom(FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom,
731: IF (l_target_uom IS NULL) THEN
732: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
733: END IF;
734:
735: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom <> l_target_uom ) THEN
736: l_temp_wt := l_temp_wt + WSH_WV_UTILS.convert_uom(FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom,
737: l_target_uom,
738: FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity,
739: 0); -- Within same UOM class
732: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
733: END IF;
734:
735: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom <> l_target_uom ) THEN
736: l_temp_wt := l_temp_wt + WSH_WV_UTILS.convert_uom(FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom,
737: l_target_uom,
738: FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity,
739: 0); -- Within same UOM class
740: ELSE
734:
735: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom <> l_target_uom ) THEN
736: l_temp_wt := l_temp_wt + WSH_WV_UTILS.convert_uom(FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom,
737: l_target_uom,
738: FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity,
739: 0); -- Within same UOM class
740: ELSE
741: l_temp_wt := l_temp_wt + FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity;
742: END IF;
737: l_target_uom,
738: FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity,
739: 0); -- Within same UOM class
740: ELSE
741: l_temp_wt := l_temp_wt + FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity;
742: END IF;
743: l_temp_uom := l_target_uom;
744: END IF;
745: EXIT WHEN j >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST;
741: l_temp_wt := l_temp_wt + FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity;
742: END IF;
743: l_temp_uom := l_target_uom;
744: END IF;
745: EXIT WHEN j >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST;
746: j := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(j);
747: END LOOP;
748: END IF;
749:
742: END IF;
743: l_temp_uom := l_target_uom;
744: END IF;
745: EXIT WHEN j >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST;
746: j := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(j);
747: END LOOP;
748: END IF;
749:
750: x_rolledup_wt := l_temp_wt;
753: -- Now calculate the gross weight for the container
754:
755: l_gross_wt := p_top_level_rec.wdd_gross_weight;
756: l_gross_wt_uom := p_top_level_rec.wdd_weight_uom_code;
757: --l_gross_wt := fte_freight_pricing.g_shipment_line_rows(p_top_level_rec.content_id).gross_weight;
758: --l_gross_wt_uom := fte_freight_pricing.g_shipment_line_rows(p_top_level_rec.content_id).weight_uom_code;
759:
760: IF ( l_temp_uom <> p_top_level_rec.weight_uom ) THEN
761: l_temp_tare_wt := WSH_WV_UTILS.convert_uom( p_top_level_rec.weight_uom,
754:
755: l_gross_wt := p_top_level_rec.wdd_gross_weight;
756: l_gross_wt_uom := p_top_level_rec.wdd_weight_uom_code;
757: --l_gross_wt := fte_freight_pricing.g_shipment_line_rows(p_top_level_rec.content_id).gross_weight;
758: --l_gross_wt_uom := fte_freight_pricing.g_shipment_line_rows(p_top_level_rec.content_id).weight_uom_code;
759:
760: IF ( l_temp_uom <> p_top_level_rec.weight_uom ) THEN
761: l_temp_tare_wt := WSH_WV_UTILS.convert_uom( p_top_level_rec.weight_uom,
762: l_temp_uom,
794: x_cont_tare_wt := l_temp_tare_wt;
795:
796: END IF;
797:
798: fte_freight_pricing_util.unset_method(l_log_level,'calc_gross_weight');
799:
800: EXCEPTION
801: WHEN others THEN
802: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
799:
800: EXCEPTION
801: WHEN others THEN
802: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
803: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
804: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
805: fte_freight_pricing_util.unset_method(l_log_level,'calc_gross_weight');
806: END calc_gross_weight;
807:
800: EXCEPTION
801: WHEN others THEN
802: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
803: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
804: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
805: fte_freight_pricing_util.unset_method(l_log_level,'calc_gross_weight');
806: END calc_gross_weight;
807:
808:
801: WHEN others THEN
802: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
803: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
804: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
805: fte_freight_pricing_util.unset_method(l_log_level,'calc_gross_weight');
806: END calc_gross_weight;
807:
808:
809:
823: PROCEDURE apply_dimensional_weight (
824: p_lane_id IN NUMBER,
825: p_carrier_id IN NUMBER,
826: p_service_code IN VARCHAR2,
827: p_top_level_rec IN OUT NOCOPY fte_freight_pricing.shpmnt_content_rec_type,
828: p_rolledup_rows IN OUT NOCOPY fte_freight_pricing.rolledup_line_tab_type,
829: x_return_status OUT NOCOPY VARCHAR2 )
830: IS
831: i NUMBER;
824: p_lane_id IN NUMBER,
825: p_carrier_id IN NUMBER,
826: p_service_code IN VARCHAR2,
827: p_top_level_rec IN OUT NOCOPY fte_freight_pricing.shpmnt_content_rec_type,
828: p_rolledup_rows IN OUT NOCOPY fte_freight_pricing.rolledup_line_tab_type,
829: x_return_status OUT NOCOPY VARCHAR2 )
830: IS
831: i NUMBER;
832: j NUMBER;
853: l_wt_uom VARCHAR2(30);
854: l_parcel_flag VARCHAR2(1) := 'N';
855: l_lane_id NUMBER;
856: l_carrier_dim_weight_rec carrier_dim_weight_rec_type;
857: l_log_level NUMBER := fte_freight_pricing_util.G_LOG;
858: l_method_name VARCHAR2(50) := 'apply_dimensional_weight';
859:
860: -- local module --
861: PROCEDURE prorate_rolledup_weights(p_content_id IN NUMBER,
861: PROCEDURE prorate_rolledup_weights(p_content_id IN NUMBER,
862: --p_ratio IN NUMBER,
863: p_ratio_num IN NUMBER,
864: p_ratio_denom IN NUMBER,
865: x_rolledup_rows IN OUT NOCOPY fte_freight_pricing.rolledup_line_tab_type,
866: x_return_status OUT NOCOPY VARCHAR2 )
867: IS
868: i NUMBER;
869:
866: x_return_status OUT NOCOPY VARCHAR2 )
867: IS
868: i NUMBER;
869:
870: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
871: l_return_status VARCHAR2(1);
872:
873: BEGIN
874: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
871: l_return_status VARCHAR2(1);
872:
873: BEGIN
874: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
875: fte_freight_pricing_util.reset_dbg_vars;
876: fte_freight_pricing_util.set_method(l_log_level,'prorate_rolledup_weights');
877: i := x_rolledup_rows.FIRST;
878: IF (i IS NOT NULL) THEN
879: LOOP
872:
873: BEGIN
874: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
875: fte_freight_pricing_util.reset_dbg_vars;
876: fte_freight_pricing_util.set_method(l_log_level,'prorate_rolledup_weights');
877: i := x_rolledup_rows.FIRST;
878: IF (i IS NOT NULL) THEN
879: LOOP
880: IF (x_rolledup_rows(i).master_container_id = p_content_id
877: i := x_rolledup_rows.FIRST;
878: IF (i IS NOT NULL) THEN
879: LOOP
880: IF (x_rolledup_rows(i).master_container_id = p_content_id
881: AND x_rolledup_rows(i).rate_basis = fte_freight_pricing.G_WEIGHT_BASIS ) THEN
882: --x_rolledup_rows(i).line_quantity := x_rolledup_rows(i).line_quantity * p_ratio;
883: x_rolledup_rows(i).line_quantity := (x_rolledup_rows(i).line_quantity * p_ratio_num)/p_ratio_denom;
884: END IF;
885: EXIT WHEN i >= x_rolledup_rows.LAST;
887: END LOOP;
888: END IF;
889:
890:
891: i := fte_freight_pricing.g_rolledup_lines.FIRST;
892: IF (i IS NOT NULL) THEN
893: LOOP
894: IF (fte_freight_pricing.g_rolledup_lines(i).master_container_id = p_content_id
895: AND x_rolledup_rows(i).rate_basis = fte_freight_pricing.G_WEIGHT_BASIS ) THEN
890:
891: i := fte_freight_pricing.g_rolledup_lines.FIRST;
892: IF (i IS NOT NULL) THEN
893: LOOP
894: IF (fte_freight_pricing.g_rolledup_lines(i).master_container_id = p_content_id
895: AND x_rolledup_rows(i).rate_basis = fte_freight_pricing.G_WEIGHT_BASIS ) THEN
896: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Old wt ='||fte_freight_pricing.g_rolledup_lines(i).line_quantity);
897: --fte_freight_pricing.g_rolledup_lines(i).line_quantity := fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio;
898: fte_freight_pricing.g_rolledup_lines(i).line_quantity := (fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio_num)/p_ratio_denom;
891: i := fte_freight_pricing.g_rolledup_lines.FIRST;
892: IF (i IS NOT NULL) THEN
893: LOOP
894: IF (fte_freight_pricing.g_rolledup_lines(i).master_container_id = p_content_id
895: AND x_rolledup_rows(i).rate_basis = fte_freight_pricing.G_WEIGHT_BASIS ) THEN
896: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Old wt ='||fte_freight_pricing.g_rolledup_lines(i).line_quantity);
897: --fte_freight_pricing.g_rolledup_lines(i).line_quantity := fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio;
898: fte_freight_pricing.g_rolledup_lines(i).line_quantity := (fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio_num)/p_ratio_denom;
899: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'New wt ='||fte_freight_pricing.g_rolledup_lines(i).line_quantity);
892: IF (i IS NOT NULL) THEN
893: LOOP
894: IF (fte_freight_pricing.g_rolledup_lines(i).master_container_id = p_content_id
895: AND x_rolledup_rows(i).rate_basis = fte_freight_pricing.G_WEIGHT_BASIS ) THEN
896: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Old wt ='||fte_freight_pricing.g_rolledup_lines(i).line_quantity);
897: --fte_freight_pricing.g_rolledup_lines(i).line_quantity := fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio;
898: fte_freight_pricing.g_rolledup_lines(i).line_quantity := (fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio_num)/p_ratio_denom;
899: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'New wt ='||fte_freight_pricing.g_rolledup_lines(i).line_quantity);
900: END IF;
893: LOOP
894: IF (fte_freight_pricing.g_rolledup_lines(i).master_container_id = p_content_id
895: AND x_rolledup_rows(i).rate_basis = fte_freight_pricing.G_WEIGHT_BASIS ) THEN
896: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Old wt ='||fte_freight_pricing.g_rolledup_lines(i).line_quantity);
897: --fte_freight_pricing.g_rolledup_lines(i).line_quantity := fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio;
898: fte_freight_pricing.g_rolledup_lines(i).line_quantity := (fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio_num)/p_ratio_denom;
899: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'New wt ='||fte_freight_pricing.g_rolledup_lines(i).line_quantity);
900: END IF;
901: EXIT WHEN i >= fte_freight_pricing.g_rolledup_lines.LAST;
894: IF (fte_freight_pricing.g_rolledup_lines(i).master_container_id = p_content_id
895: AND x_rolledup_rows(i).rate_basis = fte_freight_pricing.G_WEIGHT_BASIS ) THEN
896: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Old wt ='||fte_freight_pricing.g_rolledup_lines(i).line_quantity);
897: --fte_freight_pricing.g_rolledup_lines(i).line_quantity := fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio;
898: fte_freight_pricing.g_rolledup_lines(i).line_quantity := (fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio_num)/p_ratio_denom;
899: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'New wt ='||fte_freight_pricing.g_rolledup_lines(i).line_quantity);
900: END IF;
901: EXIT WHEN i >= fte_freight_pricing.g_rolledup_lines.LAST;
902: i := fte_freight_pricing.g_rolledup_lines.NEXT(i);
895: AND x_rolledup_rows(i).rate_basis = fte_freight_pricing.G_WEIGHT_BASIS ) THEN
896: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Old wt ='||fte_freight_pricing.g_rolledup_lines(i).line_quantity);
897: --fte_freight_pricing.g_rolledup_lines(i).line_quantity := fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio;
898: fte_freight_pricing.g_rolledup_lines(i).line_quantity := (fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio_num)/p_ratio_denom;
899: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'New wt ='||fte_freight_pricing.g_rolledup_lines(i).line_quantity);
900: END IF;
901: EXIT WHEN i >= fte_freight_pricing.g_rolledup_lines.LAST;
902: i := fte_freight_pricing.g_rolledup_lines.NEXT(i);
903: END LOOP;
897: --fte_freight_pricing.g_rolledup_lines(i).line_quantity := fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio;
898: fte_freight_pricing.g_rolledup_lines(i).line_quantity := (fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio_num)/p_ratio_denom;
899: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'New wt ='||fte_freight_pricing.g_rolledup_lines(i).line_quantity);
900: END IF;
901: EXIT WHEN i >= fte_freight_pricing.g_rolledup_lines.LAST;
902: i := fte_freight_pricing.g_rolledup_lines.NEXT(i);
903: END LOOP;
904: END IF;
905: fte_freight_pricing_util.unset_method(l_log_level,'prorate_rolledup_weights');
898: fte_freight_pricing.g_rolledup_lines(i).line_quantity := (fte_freight_pricing.g_rolledup_lines(i).line_quantity * p_ratio_num)/p_ratio_denom;
899: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'New wt ='||fte_freight_pricing.g_rolledup_lines(i).line_quantity);
900: END IF;
901: EXIT WHEN i >= fte_freight_pricing.g_rolledup_lines.LAST;
902: i := fte_freight_pricing.g_rolledup_lines.NEXT(i);
903: END LOOP;
904: END IF;
905: fte_freight_pricing_util.unset_method(l_log_level,'prorate_rolledup_weights');
906:
901: EXIT WHEN i >= fte_freight_pricing.g_rolledup_lines.LAST;
902: i := fte_freight_pricing.g_rolledup_lines.NEXT(i);
903: END LOOP;
904: END IF;
905: fte_freight_pricing_util.unset_method(l_log_level,'prorate_rolledup_weights');
906:
907: EXCEPTION
908: WHEN others THEN
909: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
906:
907: EXCEPTION
908: WHEN others THEN
909: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
910: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
911: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
912: fte_freight_pricing_util.unset_method(l_log_level,'prorate_rolledup_weights');
913:
914: END prorate_rolledup_weights;
907: EXCEPTION
908: WHEN others THEN
909: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
910: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
911: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
912: fte_freight_pricing_util.unset_method(l_log_level,'prorate_rolledup_weights');
913:
914: END prorate_rolledup_weights;
915: -- end local module --
908: WHEN others THEN
909: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
910: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
911: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
912: fte_freight_pricing_util.unset_method(l_log_level,'prorate_rolledup_weights');
913:
914: END prorate_rolledup_weights;
915: -- end local module --
916:
916:
917:
918: BEGIN
919: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
920: fte_freight_pricing_util.reset_dbg_vars;
921: fte_freight_pricing_util.set_method(l_log_level,'apply_dimensional_weight');
922:
923: --exception point : NO_PARAMS_FOUND
924: IF (g_lane_parameters.COUNT = 0) THEN
917:
918: BEGIN
919: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
920: fte_freight_pricing_util.reset_dbg_vars;
921: fte_freight_pricing_util.set_method(l_log_level,'apply_dimensional_weight');
922:
923: --exception point : NO_PARAMS_FOUND
924: IF (g_lane_parameters.COUNT = 0) THEN
925: raise fte_freight_pricing_util.g_no_params_found;
921: fte_freight_pricing_util.set_method(l_log_level,'apply_dimensional_weight');
922:
923: --exception point : NO_PARAMS_FOUND
924: IF (g_lane_parameters.COUNT = 0) THEN
925: raise fte_freight_pricing_util.g_no_params_found;
926: END IF;
927:
928: --Need to remove this check as part of R12.
929: --Lane parameters can be defined at Carrier or Carrier service level
930: --So this check, which verifies flag set at Lane Parameters level stops
931: --from loading those carrier/service level parameters
932: /*IF (g_special_flags.dim_wt_flag <> 'Y') THEN
933: dim_wt_enabled := 'N';
934: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dimensional weight is NOT enabled ');
935: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
936: RETURN;
937: ELSE*/
938: dim_wt_enabled := 'Y';
931: --from loading those carrier/service level parameters
932: /*IF (g_special_flags.dim_wt_flag <> 'Y') THEN
933: dim_wt_enabled := 'N';
934: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dimensional weight is NOT enabled ');
935: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
936: RETURN;
937: ELSE*/
938: dim_wt_enabled := 'Y';
939: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dimensional weight is enabled ');
935: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
936: RETURN;
937: ELSE*/
938: dim_wt_enabled := 'Y';
939: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dimensional weight is enabled ');
940: --END IF;
941:
942: -- get dimensional wt specific parameters
943: IF (g_special_flags.dim_wt_flag = 'Y') THEN
947: l_lane_id := g_lane_parameters(i).lane_id;
948: IF (g_lane_parameters(i).parameter_sub_type = 'DIM_WT'
949: AND g_lane_parameters(i).parameter_name = 'FACTOR') THEN
950: dim_wt_factor := nvl(fnd_number.canonical_to_number(g_lane_parameters(i).value_from),194);
951: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt_factor = '||dim_wt_factor);
952: END IF;
953: IF (g_lane_parameters(i).parameter_sub_type = 'DIM_WT'
954: AND g_lane_parameters(i).parameter_name = 'WT_UOM') THEN
955: wt_uom_param := g_lane_parameters(i).value_from;
952: END IF;
953: IF (g_lane_parameters(i).parameter_sub_type = 'DIM_WT'
954: AND g_lane_parameters(i).parameter_name = 'WT_UOM') THEN
955: wt_uom_param := g_lane_parameters(i).value_from;
956: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'wt_uom_param = '||wt_uom_param);
957: END IF;
958: IF (g_lane_parameters(i).parameter_sub_type = 'DIM_WT'
959: AND g_lane_parameters(i).parameter_name = 'VOL_UOM') THEN
960: vol_uom_param := g_lane_parameters(i).value_from;
957: END IF;
958: IF (g_lane_parameters(i).parameter_sub_type = 'DIM_WT'
959: AND g_lane_parameters(i).parameter_name = 'VOL_UOM') THEN
960: vol_uom_param := g_lane_parameters(i).value_from;
961: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol_uom_param = '||vol_uom_param);
962: END IF;
963: IF (g_lane_parameters(i).parameter_sub_type = 'DIM_WT'
964: AND g_lane_parameters(i).parameter_name = 'DIM_UOM') THEN
965: dim_uom_param := g_lane_parameters(i).value_from;
962: END IF;
963: IF (g_lane_parameters(i).parameter_sub_type = 'DIM_WT'
964: AND g_lane_parameters(i).parameter_name = 'DIM_UOM') THEN
965: dim_uom_param := g_lane_parameters(i).value_from;
966: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_uom_param = '||dim_uom_param);
967: END IF;
968: IF (g_lane_parameters(i).parameter_sub_type = 'DIM_WT'
969: AND g_lane_parameters(i).parameter_name = 'MIN_PACKAGE_VOLUME') THEN
970: min_vol_param := fnd_number.canonical_to_number(g_lane_parameters(i).value_from);
968: IF (g_lane_parameters(i).parameter_sub_type = 'DIM_WT'
969: AND g_lane_parameters(i).parameter_name = 'MIN_PACKAGE_VOLUME') THEN
970: min_vol_param := fnd_number.canonical_to_number(g_lane_parameters(i).value_from);
971: min_vol_uom := g_lane_parameters(i).uom_code;
972: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'min_vol_param = '||min_vol_param);
973: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'min_vol_uom = '||min_vol_uom);
974: END IF;
975: min_vol_uom := g_lane_parameters(i).uom_code;
976: EXIT WHEN (i >= g_lane_parameters.LAST );
969: AND g_lane_parameters(i).parameter_name = 'MIN_PACKAGE_VOLUME') THEN
970: min_vol_param := fnd_number.canonical_to_number(g_lane_parameters(i).value_from);
971: min_vol_uom := g_lane_parameters(i).uom_code;
972: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'min_vol_param = '||min_vol_param);
973: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'min_vol_uom = '||min_vol_uom);
974: END IF;
975: min_vol_uom := g_lane_parameters(i).uom_code;
976: EXIT WHEN (i >= g_lane_parameters.LAST );
977: i := g_lane_parameters.NEXT(i);
997: x_return_status => l_return_status
998: );
999: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
1000: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
1001: raise fte_freight_pricing_util.g_no_params_found;
1002: END IF;
1003:
1004: IF ( (l_carrier_dim_weight_rec.dim_factor IS NOT NULL) AND
1005: (l_carrier_dim_weight_rec.dim_weight_uom IS NOT NULL) AND
1018: */
1019: END IF ;
1020:
1021:
1022: fte_freight_pricing_util.print_msg(l_log_level,'After loading . dim_wt_enabled='||dim_wt_enabled);
1023: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.length='||p_top_level_rec.length);
1024: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.width ='||p_top_level_rec.width );
1025: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.height='||p_top_level_rec.height);
1026: fte_freight_pricing_util.print_msg(l_log_level,'min_vol_param='||min_vol_param);
1019: END IF ;
1020:
1021:
1022: fte_freight_pricing_util.print_msg(l_log_level,'After loading . dim_wt_enabled='||dim_wt_enabled);
1023: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.length='||p_top_level_rec.length);
1024: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.width ='||p_top_level_rec.width );
1025: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.height='||p_top_level_rec.height);
1026: fte_freight_pricing_util.print_msg(l_log_level,'min_vol_param='||min_vol_param);
1027:
1020:
1021:
1022: fte_freight_pricing_util.print_msg(l_log_level,'After loading . dim_wt_enabled='||dim_wt_enabled);
1023: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.length='||p_top_level_rec.length);
1024: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.width ='||p_top_level_rec.width );
1025: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.height='||p_top_level_rec.height);
1026: fte_freight_pricing_util.print_msg(l_log_level,'min_vol_param='||min_vol_param);
1027:
1028: --check if container/loose item volume is greater than min package volume parameter.
1021:
1022: fte_freight_pricing_util.print_msg(l_log_level,'After loading . dim_wt_enabled='||dim_wt_enabled);
1023: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.length='||p_top_level_rec.length);
1024: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.width ='||p_top_level_rec.width );
1025: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.height='||p_top_level_rec.height);
1026: fte_freight_pricing_util.print_msg(l_log_level,'min_vol_param='||min_vol_param);
1027:
1028: --check if container/loose item volume is greater than min package volume parameter.
1029: --if volume is null and length-width-height are not null
1022: fte_freight_pricing_util.print_msg(l_log_level,'After loading . dim_wt_enabled='||dim_wt_enabled);
1023: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.length='||p_top_level_rec.length);
1024: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.width ='||p_top_level_rec.width );
1025: fte_freight_pricing_util.print_msg(l_log_level,'p_top_level_rec.height='||p_top_level_rec.height);
1026: fte_freight_pricing_util.print_msg(l_log_level,'min_vol_param='||min_vol_param);
1027:
1028: --check if container/loose item volume is greater than min package volume parameter.
1029: --if volume is null and length-width-height are not null
1030: --then L*W*H should be used instead AG 5/29
1034: --IF (dim_wt_enabled = 'Y' AND nvl(min_vol_param,0) >0 AND min_vol_uom IS NOT NULL ) THEN
1035:
1036: IF (dim_wt_enabled = 'Y' AND nvl(min_vol_param,0) >= 0 ) THEN
1037:
1038: fte_freight_pricing_util.print_msg(l_log_level,'dim_wt_enabled and min_vol_param is='||min_vol_param||' and min_vol_uom is='||min_vol_uom);
1039: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'p_top_level_rec.volume = '||p_top_level_rec.volume);
1040:
1041: IF p_top_level_rec.volume IS NOT NULL THEN
1042: fte_freight_pricing_util.print_msg(l_log_level,'use volume');
1035:
1036: IF (dim_wt_enabled = 'Y' AND nvl(min_vol_param,0) >= 0 ) THEN
1037:
1038: fte_freight_pricing_util.print_msg(l_log_level,'dim_wt_enabled and min_vol_param is='||min_vol_param||' and min_vol_uom is='||min_vol_uom);
1039: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'p_top_level_rec.volume = '||p_top_level_rec.volume);
1040:
1041: IF p_top_level_rec.volume IS NOT NULL THEN
1042: fte_freight_pricing_util.print_msg(l_log_level,'use volume');
1043: -- Use volume
1038: fte_freight_pricing_util.print_msg(l_log_level,'dim_wt_enabled and min_vol_param is='||min_vol_param||' and min_vol_uom is='||min_vol_uom);
1039: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'p_top_level_rec.volume = '||p_top_level_rec.volume);
1040:
1041: IF p_top_level_rec.volume IS NOT NULL THEN
1042: fte_freight_pricing_util.print_msg(l_log_level,'use volume');
1043: -- Use volume
1044: IF (p_top_level_rec.volume_uom <> min_vol_uom ) THEN
1045: --convert input vol uom to param vol uom
1046: converted_vol := WSH_WV_UTILS.convert_uom(p_top_level_rec.volume_uom,
1051: converted_vol := p_top_level_rec.volume;
1052: END IF;
1053:
1054: ELSIF (p_top_level_rec.length IS NOT NULL AND p_top_level_rec.width IS NOT NULL AND p_top_level_rec.height IS NOT NULL) THEN
1055: fte_freight_pricing_util.print_msg(l_log_level,'use L*W*H');
1056: -- use L*W*H
1057: IF (p_top_level_rec.dim_uom <> dim_uom_param ) THEN
1058: --convert input wt uom to param wt uom
1059: converted_length := WSH_WV_UTILS.convert_uom(p_top_level_rec.dim_uom,
1093:
1094: END IF;
1095: END IF;
1096:
1097: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'converted_vol = '||converted_vol);
1098:
1099: IF (converted_vol <= min_vol_param) THEN
1100: --fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dimensional weight is less than min package wt ');
1101: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Package volume is less than minimum package volume parameter for dimensional wt ');
1096:
1097: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'converted_vol = '||converted_vol);
1098:
1099: IF (converted_vol <= min_vol_param) THEN
1100: --fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dimensional weight is less than min package wt ');
1101: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Package volume is less than minimum package volume parameter for dimensional wt ');
1102: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1103: RETURN;
1104: END IF;
1097: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'converted_vol = '||converted_vol);
1098:
1099: IF (converted_vol <= min_vol_param) THEN
1100: --fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dimensional weight is less than min package wt ');
1101: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Package volume is less than minimum package volume parameter for dimensional wt ');
1102: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1103: RETURN;
1104: END IF;
1105:
1098:
1099: IF (converted_vol <= min_vol_param) THEN
1100: --fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'dimensional weight is less than min package wt ');
1101: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Package volume is less than minimum package volume parameter for dimensional wt ');
1102: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1103: RETURN;
1104: END IF;
1105:
1106: IF (dim_wt_enabled = 'Y' ) THEN
1113: x_cont_tare_wt => l_cont_tare_wt,
1114: x_uom => l_wt_uom,
1115: x_return_status => l_return_status);
1116:
1117: fte_freight_pricing_util.set_location(p_loc=>'after calc_gross_weight ');
1118: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
1119: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
1120: raise fte_freight_pricing_util.g_calc_gross_wt_failed;
1121: ELSE
1116:
1117: fte_freight_pricing_util.set_location(p_loc=>'after calc_gross_weight ');
1118: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
1119: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
1120: raise fte_freight_pricing_util.g_calc_gross_wt_failed;
1121: ELSE
1122: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1123: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_rolledup_wt = '||l_rolledup_wt);
1124: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_wt_uom = '||l_wt_uom);
1118: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
1119: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
1120: raise fte_freight_pricing_util.g_calc_gross_wt_failed;
1121: ELSE
1122: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1123: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_rolledup_wt = '||l_rolledup_wt);
1124: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_wt_uom = '||l_wt_uom);
1125: END IF;
1126:
1119: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
1120: raise fte_freight_pricing_util.g_calc_gross_wt_failed;
1121: ELSE
1122: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1123: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_rolledup_wt = '||l_rolledup_wt);
1124: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_wt_uom = '||l_wt_uom);
1125: END IF;
1126:
1127: -- Now calculate the dimensional wt from the lane parameters
1120: raise fte_freight_pricing_util.g_calc_gross_wt_failed;
1121: ELSE
1122: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1123: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_rolledup_wt = '||l_rolledup_wt);
1124: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_wt_uom = '||l_wt_uom);
1125: END IF;
1126:
1127: -- Now calculate the dimensional wt from the lane parameters
1128:
1133: converted_vol := WSH_WV_UTILS.convert_uom(p_top_level_rec.volume_uom,
1134: vol_uom_param,
1135: p_top_level_rec.volume,
1136: 0); -- Within same UOM class
1137: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'converted_vol = '||converted_vol);
1138: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol_uom_param = '||vol_uom_param);
1139: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt_factor = '||dim_wt_factor);
1140: dim_wt := (converted_vol)/dim_wt_factor;
1141: ELSE
1134: vol_uom_param,
1135: p_top_level_rec.volume,
1136: 0); -- Within same UOM class
1137: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'converted_vol = '||converted_vol);
1138: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol_uom_param = '||vol_uom_param);
1139: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt_factor = '||dim_wt_factor);
1140: dim_wt := (converted_vol)/dim_wt_factor;
1141: ELSE
1142: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol = '||p_top_level_rec.volume);
1135: p_top_level_rec.volume,
1136: 0); -- Within same UOM class
1137: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'converted_vol = '||converted_vol);
1138: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol_uom_param = '||vol_uom_param);
1139: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt_factor = '||dim_wt_factor);
1140: dim_wt := (converted_vol)/dim_wt_factor;
1141: ELSE
1142: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol = '||p_top_level_rec.volume);
1143: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol_uom_param = '||vol_uom_param);
1138: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol_uom_param = '||vol_uom_param);
1139: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt_factor = '||dim_wt_factor);
1140: dim_wt := (converted_vol)/dim_wt_factor;
1141: ELSE
1142: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol = '||p_top_level_rec.volume);
1143: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol_uom_param = '||vol_uom_param);
1144: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt_factor = '||dim_wt_factor);
1145: dim_wt := (p_top_level_rec.volume)/dim_wt_factor;
1146: END IF;
1139: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt_factor = '||dim_wt_factor);
1140: dim_wt := (converted_vol)/dim_wt_factor;
1141: ELSE
1142: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol = '||p_top_level_rec.volume);
1143: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol_uom_param = '||vol_uom_param);
1144: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt_factor = '||dim_wt_factor);
1145: dim_wt := (p_top_level_rec.volume)/dim_wt_factor;
1146: END IF;
1147: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1140: dim_wt := (converted_vol)/dim_wt_factor;
1141: ELSE
1142: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol = '||p_top_level_rec.volume);
1143: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol_uom_param = '||vol_uom_param);
1144: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt_factor = '||dim_wt_factor);
1145: dim_wt := (p_top_level_rec.volume)/dim_wt_factor;
1146: END IF;
1147: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1148: ELSIF (p_top_level_rec.length IS NOT NULL AND p_top_level_rec.width IS NOT NULL AND p_top_level_rec.height IS NOT NULL) THEN
1143: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'vol_uom_param = '||vol_uom_param);
1144: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt_factor = '||dim_wt_factor);
1145: dim_wt := (p_top_level_rec.volume)/dim_wt_factor;
1146: END IF;
1147: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1148: ELSIF (p_top_level_rec.length IS NOT NULL AND p_top_level_rec.width IS NOT NULL AND p_top_level_rec.height IS NOT NULL) THEN
1149: -- use L*W*H
1150: IF (p_top_level_rec.dim_uom <> dim_uom_param ) THEN
1151: --convert input wt uom to param wt uom
1169: END IF;
1170:
1171: ELSE
1172: -- Can't process. No volume or L-W-H found.
1173: raise fte_freight_pricing_util.g_no_volume_found;
1174: END IF;
1175:
1176: IF (p_top_level_rec.container_flag = 'N') THEN
1177: --the gross wt is the original wt
1174: END IF;
1175:
1176: IF (p_top_level_rec.container_flag = 'N') THEN
1177: --the gross wt is the original wt
1178: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'content_id = '||p_top_level_rec.content_id);
1179: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1180: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1181:
1182: IF ( dim_wt > l_gross_wt) THEN
1175:
1176: IF (p_top_level_rec.container_flag = 'N') THEN
1177: --the gross wt is the original wt
1178: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'content_id = '||p_top_level_rec.content_id);
1179: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1180: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1181:
1182: IF ( dim_wt > l_gross_wt) THEN
1183: -- increase the top level gross wt by the ratio of dim_wt to l_gross_wt (original weight)
1176: IF (p_top_level_rec.container_flag = 'N') THEN
1177: --the gross wt is the original wt
1178: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'content_id = '||p_top_level_rec.content_id);
1179: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1180: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1181:
1182: IF ( dim_wt > l_gross_wt) THEN
1183: -- increase the top level gross wt by the ratio of dim_wt to l_gross_wt (original weight)
1184: -- dim_wt and l_gross_wt should already be in the same uom
1181:
1182: IF ( dim_wt > l_gross_wt) THEN
1183: -- increase the top level gross wt by the ratio of dim_wt to l_gross_wt (original weight)
1184: -- dim_wt and l_gross_wt should already be in the same uom
1185: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Applying dimensional wt');
1186: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Old wt ='||p_top_level_rec.gross_weight);
1187: p_top_level_rec.gross_weight := (p_top_level_rec.gross_weight * dim_wt)/l_gross_wt;
1188: p_top_level_rec.wdd_gross_weight := (p_top_level_rec.wdd_gross_weight * dim_wt)/l_gross_wt;
1189: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'New wt ='||p_top_level_rec.gross_weight);
1182: IF ( dim_wt > l_gross_wt) THEN
1183: -- increase the top level gross wt by the ratio of dim_wt to l_gross_wt (original weight)
1184: -- dim_wt and l_gross_wt should already be in the same uom
1185: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Applying dimensional wt');
1186: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Old wt ='||p_top_level_rec.gross_weight);
1187: p_top_level_rec.gross_weight := (p_top_level_rec.gross_weight * dim_wt)/l_gross_wt;
1188: p_top_level_rec.wdd_gross_weight := (p_top_level_rec.wdd_gross_weight * dim_wt)/l_gross_wt;
1189: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'New wt ='||p_top_level_rec.gross_weight);
1190:
1185: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Applying dimensional wt');
1186: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Old wt ='||p_top_level_rec.gross_weight);
1187: p_top_level_rec.gross_weight := (p_top_level_rec.gross_weight * dim_wt)/l_gross_wt;
1188: p_top_level_rec.wdd_gross_weight := (p_top_level_rec.wdd_gross_weight * dim_wt)/l_gross_wt;
1189: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'New wt ='||p_top_level_rec.gross_weight);
1190:
1191: ELSE
1192: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'No need to apply dimensional wt ');
1193: END IF;
1188: p_top_level_rec.wdd_gross_weight := (p_top_level_rec.wdd_gross_weight * dim_wt)/l_gross_wt;
1189: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'New wt ='||p_top_level_rec.gross_weight);
1190:
1191: ELSE
1192: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'No need to apply dimensional wt ');
1193: END IF;
1194:
1195: ELSE
1196: -- this is a container
1197:
1198: l_parcel_flag := isParcel;
1199: IF (l_parcel_flag = 'Y') THEN
1200: --for parcel we need to consider the gross weight calculated above
1201: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'this is a parcel case');
1202: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'content_id = '||p_top_level_rec.content_id);
1203: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1204: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1205: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_rolledup_wt = '||l_rolledup_wt);
1198: l_parcel_flag := isParcel;
1199: IF (l_parcel_flag = 'Y') THEN
1200: --for parcel we need to consider the gross weight calculated above
1201: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'this is a parcel case');
1202: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'content_id = '||p_top_level_rec.content_id);
1203: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1204: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1205: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_rolledup_wt = '||l_rolledup_wt);
1206:
1199: IF (l_parcel_flag = 'Y') THEN
1200: --for parcel we need to consider the gross weight calculated above
1201: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'this is a parcel case');
1202: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'content_id = '||p_top_level_rec.content_id);
1203: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1204: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1205: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_rolledup_wt = '||l_rolledup_wt);
1206:
1207: IF ( dim_wt > l_gross_wt) THEN
1200: --for parcel we need to consider the gross weight calculated above
1201: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'this is a parcel case');
1202: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'content_id = '||p_top_level_rec.content_id);
1203: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1204: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1205: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_rolledup_wt = '||l_rolledup_wt);
1206:
1207: IF ( dim_wt > l_gross_wt) THEN
1208: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Applying dimensional wt');
1201: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'this is a parcel case');
1202: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'content_id = '||p_top_level_rec.content_id);
1203: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1204: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1205: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_rolledup_wt = '||l_rolledup_wt);
1206:
1207: IF ( dim_wt > l_gross_wt) THEN
1208: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Applying dimensional wt');
1209: -- increase the rolled up lines and the top level gross wt by the ratio
1204: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1205: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_rolledup_wt = '||l_rolledup_wt);
1206:
1207: IF ( dim_wt > l_gross_wt) THEN
1208: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Applying dimensional wt');
1209: -- increase the rolled up lines and the top level gross wt by the ratio
1210: -- l_rolledup_wt and dim_wt should already be in the same uom
1211:
1212: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Old wt ='||p_top_level_rec.gross_weight);
1208: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Applying dimensional wt');
1209: -- increase the rolled up lines and the top level gross wt by the ratio
1210: -- l_rolledup_wt and dim_wt should already be in the same uom
1211:
1212: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Old wt ='||p_top_level_rec.gross_weight);
1213: p_top_level_rec.gross_weight := (p_top_level_rec.gross_weight * dim_wt)/l_gross_wt;
1214: p_top_level_rec.wdd_gross_weight := (p_top_level_rec.wdd_gross_weight * dim_wt)/l_gross_wt;
1215: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'New wt ='||p_top_level_rec.gross_weight);
1216:
1211:
1212: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Old wt ='||p_top_level_rec.gross_weight);
1213: p_top_level_rec.gross_weight := (p_top_level_rec.gross_weight * dim_wt)/l_gross_wt;
1214: p_top_level_rec.wdd_gross_weight := (p_top_level_rec.wdd_gross_weight * dim_wt)/l_gross_wt;
1215: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'New wt ='||p_top_level_rec.gross_weight);
1216:
1217: --loop over the rolled up lines and prorate
1218: prorate_rolledup_weights(p_content_id => p_top_level_rec.content_id,
1219: --p_ratio => (dim_wt/l_gross_wt),
1223: x_return_status => l_return_status);
1224:
1225: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
1226: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
1227: raise fte_freight_pricing_util.g_prorate_failed;
1228: END IF;
1229:
1230: ELSE
1231: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'No need to apply dimensional wt ');
1227: raise fte_freight_pricing_util.g_prorate_failed;
1228: END IF;
1229:
1230: ELSE
1231: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'No need to apply dimensional wt ');
1232: END IF;
1233:
1234: ELSE
1235: --for other than parcel we need to consider the rolled up wt only
1232: END IF;
1233:
1234: ELSE
1235: --for other than parcel we need to consider the rolled up wt only
1236: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'this is not a parcel case');
1237: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'content_id = '||p_top_level_rec.content_id);
1238: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1239: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1240:
1233:
1234: ELSE
1235: --for other than parcel we need to consider the rolled up wt only
1236: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'this is not a parcel case');
1237: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'content_id = '||p_top_level_rec.content_id);
1238: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1239: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1240:
1241: --IF ( dim_wt > l_rolledup_wt) THEN
1234: ELSE
1235: --for other than parcel we need to consider the rolled up wt only
1236: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'this is not a parcel case');
1237: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'content_id = '||p_top_level_rec.content_id);
1238: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1239: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1240:
1241: --IF ( dim_wt > l_rolledup_wt) THEN
1242: IF ( dim_wt > l_gross_wt) THEN
1235: --for other than parcel we need to consider the rolled up wt only
1236: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'this is not a parcel case');
1237: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'content_id = '||p_top_level_rec.content_id);
1238: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'dim_wt = '||dim_wt);
1239: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1240:
1241: --IF ( dim_wt > l_rolledup_wt) THEN
1242: IF ( dim_wt > l_gross_wt) THEN
1243: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Applying dimensional wt');
1239: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_gross_wt = '||l_gross_wt);
1240:
1241: --IF ( dim_wt > l_rolledup_wt) THEN
1242: IF ( dim_wt > l_gross_wt) THEN
1243: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Applying dimensional wt');
1244: -- increase the rolled up lines by the ration
1245: -- l_rolledup_wt and dim_wt should already be in the same uom
1246:
1247: p_top_level_rec.wdd_gross_weight := (p_top_level_rec.wdd_gross_weight * dim_wt)/l_gross_wt;
1257: x_return_status => l_return_status);
1258:
1259: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
1260: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
1261: raise fte_freight_pricing_util.g_prorate_failed;
1262: END IF;
1263:
1264: ELSE
1265: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'No need to apply dimensional wt ');
1261: raise fte_freight_pricing_util.g_prorate_failed;
1262: END IF;
1263:
1264: ELSE
1265: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'No need to apply dimensional wt ');
1266: END IF;
1267:
1268: END IF;
1269: END IF;
1267:
1268: END IF;
1269: END IF;
1270: ELSE
1271: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,' dim_wt_enabled is N .No need to apply dimensional wt ');
1272: END IF;
1273:
1274: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1275:
1270: ELSE
1271: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,' dim_wt_enabled is N .No need to apply dimensional wt ');
1272: END IF;
1273:
1274: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1275:
1276: EXCEPTION
1277: WHEN fte_freight_pricing_util.g_no_params_found THEN
1278: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1273:
1274: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1275:
1276: EXCEPTION
1277: WHEN fte_freight_pricing_util.g_no_params_found THEN
1278: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1279: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'no_parameters found');
1280: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1281: WHEN fte_freight_pricing_util.g_no_weights_found THEN
1275:
1276: EXCEPTION
1277: WHEN fte_freight_pricing_util.g_no_params_found THEN
1278: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1279: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'no_parameters found');
1280: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1281: WHEN fte_freight_pricing_util.g_no_weights_found THEN
1282: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1283: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_weights_found ');
1276: EXCEPTION
1277: WHEN fte_freight_pricing_util.g_no_params_found THEN
1278: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1279: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'no_parameters found');
1280: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1281: WHEN fte_freight_pricing_util.g_no_weights_found THEN
1282: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1283: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_weights_found ');
1284: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1277: WHEN fte_freight_pricing_util.g_no_params_found THEN
1278: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1279: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'no_parameters found');
1280: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1281: WHEN fte_freight_pricing_util.g_no_weights_found THEN
1282: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1283: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_weights_found ');
1284: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1285: WHEN fte_freight_pricing_util.g_no_volume_found THEN
1279: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'no_parameters found');
1280: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1281: WHEN fte_freight_pricing_util.g_no_weights_found THEN
1282: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1283: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_weights_found ');
1284: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1285: WHEN fte_freight_pricing_util.g_no_volume_found THEN
1286: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1287: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_volume_found ');
1280: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1281: WHEN fte_freight_pricing_util.g_no_weights_found THEN
1282: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1283: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_weights_found ');
1284: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1285: WHEN fte_freight_pricing_util.g_no_volume_found THEN
1286: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1287: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_volume_found ');
1288: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1281: WHEN fte_freight_pricing_util.g_no_weights_found THEN
1282: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1283: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_weights_found ');
1284: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1285: WHEN fte_freight_pricing_util.g_no_volume_found THEN
1286: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1287: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_volume_found ');
1288: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1289: WHEN fte_freight_pricing_util.g_calc_gross_wt_failed THEN
1283: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_weights_found ');
1284: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1285: WHEN fte_freight_pricing_util.g_no_volume_found THEN
1286: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1287: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_volume_found ');
1288: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1289: WHEN fte_freight_pricing_util.g_calc_gross_wt_failed THEN
1290: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1291: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_calc_gross_wt_failed ');
1284: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1285: WHEN fte_freight_pricing_util.g_no_volume_found THEN
1286: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1287: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_volume_found ');
1288: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1289: WHEN fte_freight_pricing_util.g_calc_gross_wt_failed THEN
1290: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1291: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_calc_gross_wt_failed ');
1292: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1285: WHEN fte_freight_pricing_util.g_no_volume_found THEN
1286: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1287: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_volume_found ');
1288: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1289: WHEN fte_freight_pricing_util.g_calc_gross_wt_failed THEN
1290: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1291: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_calc_gross_wt_failed ');
1292: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1293: WHEN fte_freight_pricing_util.g_prorate_failed THEN
1287: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_volume_found ');
1288: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1289: WHEN fte_freight_pricing_util.g_calc_gross_wt_failed THEN
1290: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1291: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_calc_gross_wt_failed ');
1292: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1293: WHEN fte_freight_pricing_util.g_prorate_failed THEN
1294: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1295: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_volume_found ');
1288: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1289: WHEN fte_freight_pricing_util.g_calc_gross_wt_failed THEN
1290: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1291: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_calc_gross_wt_failed ');
1292: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1293: WHEN fte_freight_pricing_util.g_prorate_failed THEN
1294: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1295: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_volume_found ');
1296: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1289: WHEN fte_freight_pricing_util.g_calc_gross_wt_failed THEN
1290: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1291: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_calc_gross_wt_failed ');
1292: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1293: WHEN fte_freight_pricing_util.g_prorate_failed THEN
1294: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1295: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_volume_found ');
1296: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1297: WHEN others THEN
1291: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_calc_gross_wt_failed ');
1292: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1293: WHEN fte_freight_pricing_util.g_prorate_failed THEN
1294: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1295: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_volume_found ');
1296: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1297: WHEN others THEN
1298: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1299: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1292: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1293: WHEN fte_freight_pricing_util.g_prorate_failed THEN
1294: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1295: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_volume_found ');
1296: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1297: WHEN others THEN
1298: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1299: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1300: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1295: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_volume_found ');
1296: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1297: WHEN others THEN
1298: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1299: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1300: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1301: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1302:
1303:
1296: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1297: WHEN others THEN
1298: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1299: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1300: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1301: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1302:
1303:
1304: END apply_dimensional_weight;
1297: WHEN others THEN
1298: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1299: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1300: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1301: fte_freight_pricing_util.unset_method(l_log_level,'apply_dimensional_weight');
1302:
1303:
1304: END apply_dimensional_weight;
1305:
1304: END apply_dimensional_weight;
1305:
1306:
1307: FUNCTION isLTL RETURN VARCHAR2 IS
1308: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1309: BEGIN
1310: IF (g_special_flags.lane_function = 'LTL') THEN
1311: RETURN 'Y';
1312: ELSE
1314: END IF;
1315: END;
1316:
1317: FUNCTION isParcel RETURN VARCHAR2 IS
1318: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1319: BEGIN
1320: IF (g_special_flags.lane_function = 'PARCEL') THEN
1321: RETURN 'Y';
1322: ELSE
1356: WHERE
1357: wcs.carrier_id = p_carrier_id
1358: AND wcs.service_level = p_service_code;
1359:
1360: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1361: l_method_name VARCHAR2(50) := 'load_carrier_dim_weight_params';
1362: l_carrier_dim_factors carrier_dim_weight_rec_type;
1363:
1364: BEGIN
1362: l_carrier_dim_factors carrier_dim_weight_rec_type;
1363:
1364: BEGIN
1365: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1366: fte_freight_pricing_util.set_method(l_log_level,l_method_name);
1367:
1368: fte_freight_pricing_util.print_msg(l_log_level,'p_carrier_id='||p_carrier_id);
1369: fte_freight_pricing_util.print_msg(l_log_level,'p_service_code='||p_service_code);
1370:
1364: BEGIN
1365: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1366: fte_freight_pricing_util.set_method(l_log_level,l_method_name);
1367:
1368: fte_freight_pricing_util.print_msg(l_log_level,'p_carrier_id='||p_carrier_id);
1369: fte_freight_pricing_util.print_msg(l_log_level,'p_service_code='||p_service_code);
1370:
1371: IF ( (p_carrier_id IS NOT NULL) AND (p_service_code IS NOT NULL) ) THEN
1372: OPEN c_carrier_service_dim_params (p_carrier_id , p_service_code);
1365: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1366: fte_freight_pricing_util.set_method(l_log_level,l_method_name);
1367:
1368: fte_freight_pricing_util.print_msg(l_log_level,'p_carrier_id='||p_carrier_id);
1369: fte_freight_pricing_util.print_msg(l_log_level,'p_service_code='||p_service_code);
1370:
1371: IF ( (p_carrier_id IS NOT NULL) AND (p_service_code IS NOT NULL) ) THEN
1372: OPEN c_carrier_service_dim_params (p_carrier_id , p_service_code);
1373: FETCH c_carrier_service_dim_params INTO l_carrier_dim_factors;
1376: (l_carrier_dim_factors.dim_factor IS NULL) OR (l_carrier_dim_factors.dim_weight_uom IS NULL) OR
1377: (l_carrier_dim_factors.dim_volume_uom IS NULL) OR (l_carrier_dim_factors.dim_dimension_uom IS NULL)
1378:
1379: ) THEN
1380: fte_freight_pricing_util.print_msg(l_log_level,'Service Level params not found. Loading from Carrier Level');
1381:
1382: OPEN c_carrier_dim_params (p_carrier_id);
1383: FETCH c_carrier_dim_params INTO l_carrier_dim_factors;
1384: IF c_carrier_dim_params%NOTFOUND THEN
1381:
1382: OPEN c_carrier_dim_params (p_carrier_id);
1383: FETCH c_carrier_dim_params INTO l_carrier_dim_factors;
1384: IF c_carrier_dim_params%NOTFOUND THEN
1385: raise fte_freight_pricing_util.g_no_params_found;
1386: END IF;
1387: CLOSE c_carrier_dim_params;
1388: END IF;
1389: CLOSE c_carrier_service_dim_params;
1388: END IF;
1389: CLOSE c_carrier_service_dim_params;
1390: END IF;
1391:
1392: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_factor ='||l_carrier_dim_factors.dim_factor);
1393: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_weight_uom ='||l_carrier_dim_factors.dim_weight_uom);
1394: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_dimension_uom ='||l_carrier_dim_factors.dim_dimension_uom);
1395: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_volume_uom ='||l_carrier_dim_factors.dim_volume_uom);
1396: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_min_volume ='||l_carrier_dim_factors.dim_min_volume);
1389: CLOSE c_carrier_service_dim_params;
1390: END IF;
1391:
1392: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_factor ='||l_carrier_dim_factors.dim_factor);
1393: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_weight_uom ='||l_carrier_dim_factors.dim_weight_uom);
1394: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_dimension_uom ='||l_carrier_dim_factors.dim_dimension_uom);
1395: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_volume_uom ='||l_carrier_dim_factors.dim_volume_uom);
1396: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_min_volume ='||l_carrier_dim_factors.dim_min_volume);
1397:
1390: END IF;
1391:
1392: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_factor ='||l_carrier_dim_factors.dim_factor);
1393: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_weight_uom ='||l_carrier_dim_factors.dim_weight_uom);
1394: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_dimension_uom ='||l_carrier_dim_factors.dim_dimension_uom);
1395: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_volume_uom ='||l_carrier_dim_factors.dim_volume_uom);
1396: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_min_volume ='||l_carrier_dim_factors.dim_min_volume);
1397:
1398: x_carrier_dim_weight_rec := l_carrier_dim_factors;
1391:
1392: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_factor ='||l_carrier_dim_factors.dim_factor);
1393: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_weight_uom ='||l_carrier_dim_factors.dim_weight_uom);
1394: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_dimension_uom ='||l_carrier_dim_factors.dim_dimension_uom);
1395: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_volume_uom ='||l_carrier_dim_factors.dim_volume_uom);
1396: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_min_volume ='||l_carrier_dim_factors.dim_min_volume);
1397:
1398: x_carrier_dim_weight_rec := l_carrier_dim_factors;
1399:
1392: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_factor ='||l_carrier_dim_factors.dim_factor);
1393: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_weight_uom ='||l_carrier_dim_factors.dim_weight_uom);
1394: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_dimension_uom ='||l_carrier_dim_factors.dim_dimension_uom);
1395: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_volume_uom ='||l_carrier_dim_factors.dim_volume_uom);
1396: fte_freight_pricing_util.print_msg(l_log_level,'l_carrier_dim_factors.dim_min_volume ='||l_carrier_dim_factors.dim_min_volume);
1397:
1398: x_carrier_dim_weight_rec := l_carrier_dim_factors;
1399:
1400:
1397:
1398: x_carrier_dim_weight_rec := l_carrier_dim_factors;
1399:
1400:
1401: fte_freight_pricing_util.unset_method(l_log_level,'load_carrier_dim_weight_params');
1402:
1403: EXCEPTION
1404: WHEN fte_freight_pricing_util.g_no_params_found THEN
1405: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1400:
1401: fte_freight_pricing_util.unset_method(l_log_level,'load_carrier_dim_weight_params');
1402:
1403: EXCEPTION
1404: WHEN fte_freight_pricing_util.g_no_params_found THEN
1405: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1406: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'no_dim_parameters found');
1407: fte_freight_pricing_util.unset_method(l_log_level,'load_carrier_dim_weight_params');
1408:
1402:
1403: EXCEPTION
1404: WHEN fte_freight_pricing_util.g_no_params_found THEN
1405: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1406: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'no_dim_parameters found');
1407: fte_freight_pricing_util.unset_method(l_log_level,'load_carrier_dim_weight_params');
1408:
1409: END load_carrier_dim_weight_params;
1410:
1403: EXCEPTION
1404: WHEN fte_freight_pricing_util.g_no_params_found THEN
1405: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1406: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'no_dim_parameters found');
1407: fte_freight_pricing_util.unset_method(l_log_level,'load_carrier_dim_weight_params');
1408:
1409: END load_carrier_dim_weight_params;
1410:
1411: -- This procedure is used to calculate the total wt of the top level rows
1411: -- This procedure is used to calculate the total wt of the top level rows
1412: -- get total shipment wt. Should take care of conversions.
1413: -- Considers the wt. of the rollup lines instead of the gross wt of the container.
1414: -- used for LTL
1415: PROCEDURE get_total_shipment_weight(p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
1416: x_total_wt OUT NOCOPY NUMBER,
1417: x_wt_uom OUT NOCOPY VARCHAR2,
1418: x_return_status OUT NOCOPY VARCHAR2)
1419: IS
1423: l_target_uom VARCHAR2(30) := NULL;
1424: l_cnt NUMBER :=0;
1425: l_content_id NUMBER;
1426: l_return_status VARCHAR2(1);
1427: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1428: l_method_name VARCHAR2(50) := 'get_total_shipment_weight';
1429: BEGIN
1430: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1431: fte_freight_pricing_util.reset_dbg_vars;
1427: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1428: l_method_name VARCHAR2(50) := 'get_total_shipment_weight';
1429: BEGIN
1430: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1431: fte_freight_pricing_util.reset_dbg_vars;
1432: fte_freight_pricing_util.set_method(l_log_level,'get_total_shipment_weight');
1433:
1434: -- loop over all top level rows
1435: -- get the top level row
1428: l_method_name VARCHAR2(50) := 'get_total_shipment_weight';
1429: BEGIN
1430: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1431: fte_freight_pricing_util.reset_dbg_vars;
1432: fte_freight_pricing_util.set_method(l_log_level,'get_total_shipment_weight');
1433:
1434: -- loop over all top level rows
1435: -- get the top level row
1436: -- for the top level row, loop through all rollup lines and add up line_quantities
1440:
1441: -- first figure out the target uom
1442: l_target_uom := NULL;
1443: i := p_top_level_rows.FIRST;
1444: --j := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
1445: l_temp_wt :=0;
1446: IF (i IS NOT NULL) THEN
1447: LOOP
1448: l_content_id := p_top_level_rows(i).content_id;
1445: l_temp_wt :=0;
1446: IF (i IS NOT NULL) THEN
1447: LOOP
1448: l_content_id := p_top_level_rows(i).content_id;
1449: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Top level Id : '||l_content_id);
1450:
1451: -- if top level row is not a container, use its gross wt
1452: IF (p_top_level_rows(i).container_flag = 'N') THEN
1453:
1462: 0); -- Within same UOM class
1463: ELSE
1464: l_temp_wt := l_temp_wt + p_top_level_rows(i).gross_weight;
1465: END IF;
1466: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Gross wt in loose item : '||p_top_level_rows(i).gross_weight);
1467: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Temp wt in loose item : '||l_temp_wt);
1468:
1469:
1470: ELSE
1463: ELSE
1464: l_temp_wt := l_temp_wt + p_top_level_rows(i).gross_weight;
1465: END IF;
1466: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Gross wt in loose item : '||p_top_level_rows(i).gross_weight);
1467: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Temp wt in loose item : '||l_temp_wt);
1468:
1469:
1470: ELSE
1471: -- top level row is a container, so get its rolledup lines
1469:
1470: ELSE
1471: -- top level row is a container, so get its rolledup lines
1472:
1473: j := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
1474: IF (j IS NOT NULL) THEN
1475: LOOP
1476: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'g_rolledup_line id : '||FTE_FREIGHT_PRICING.g_rolledup_lines(j).delivery_detail_id);
1477: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).master_container_id = l_content_id) THEN
1472:
1473: j := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
1474: IF (j IS NOT NULL) THEN
1475: LOOP
1476: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'g_rolledup_line id : '||FTE_FREIGHT_PRICING.g_rolledup_lines(j).delivery_detail_id);
1477: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).master_container_id = l_content_id) THEN
1478:
1479: IF (l_target_uom IS NULL) THEN
1480: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
1473: j := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
1474: IF (j IS NOT NULL) THEN
1475: LOOP
1476: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'g_rolledup_line id : '||FTE_FREIGHT_PRICING.g_rolledup_lines(j).delivery_detail_id);
1477: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).master_container_id = l_content_id) THEN
1478:
1479: IF (l_target_uom IS NULL) THEN
1480: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
1481: END IF;
1476: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'g_rolledup_line id : '||FTE_FREIGHT_PRICING.g_rolledup_lines(j).delivery_detail_id);
1477: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).master_container_id = l_content_id) THEN
1478:
1479: IF (l_target_uom IS NULL) THEN
1480: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
1481: END IF;
1482:
1483: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom <> l_target_uom ) THEN
1484: l_temp_wt := l_temp_wt + WSH_WV_UTILS.convert_uom(FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom,
1479: IF (l_target_uom IS NULL) THEN
1480: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
1481: END IF;
1482:
1483: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom <> l_target_uom ) THEN
1484: l_temp_wt := l_temp_wt + WSH_WV_UTILS.convert_uom(FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom,
1485: l_target_uom,
1486: FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity,
1487: 0); -- Within same UOM class
1480: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
1481: END IF;
1482:
1483: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom <> l_target_uom ) THEN
1484: l_temp_wt := l_temp_wt + WSH_WV_UTILS.convert_uom(FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom,
1485: l_target_uom,
1486: FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity,
1487: 0); -- Within same UOM class
1488: ELSE
1482:
1483: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom <> l_target_uom ) THEN
1484: l_temp_wt := l_temp_wt + WSH_WV_UTILS.convert_uom(FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom,
1485: l_target_uom,
1486: FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity,
1487: 0); -- Within same UOM class
1488: ELSE
1489: l_temp_wt := l_temp_wt + FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity;
1490: END IF;
1485: l_target_uom,
1486: FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity,
1487: 0); -- Within same UOM class
1488: ELSE
1489: l_temp_wt := l_temp_wt + FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity;
1490: END IF;
1491: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Gross wt in container item : '||FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity);
1492: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Temp wt in container item : '||l_temp_wt);
1493: END IF;
1487: 0); -- Within same UOM class
1488: ELSE
1489: l_temp_wt := l_temp_wt + FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity;
1490: END IF;
1491: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Gross wt in container item : '||FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity);
1492: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Temp wt in container item : '||l_temp_wt);
1493: END IF;
1494: EXIT WHEN j >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST;
1495: j := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(j);
1488: ELSE
1489: l_temp_wt := l_temp_wt + FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity;
1490: END IF;
1491: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Gross wt in container item : '||FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity);
1492: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Temp wt in container item : '||l_temp_wt);
1493: END IF;
1494: EXIT WHEN j >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST;
1495: j := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(j);
1496: END LOOP;
1490: END IF;
1491: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Gross wt in container item : '||FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity);
1492: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Temp wt in container item : '||l_temp_wt);
1493: END IF;
1494: EXIT WHEN j >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST;
1495: j := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(j);
1496: END LOOP;
1497: END IF;
1498: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Temp wt afterloop container item : '||l_temp_wt);
1491: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Gross wt in container item : '||FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity);
1492: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Temp wt in container item : '||l_temp_wt);
1493: END IF;
1494: EXIT WHEN j >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST;
1495: j := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(j);
1496: END LOOP;
1497: END IF;
1498: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Temp wt afterloop container item : '||l_temp_wt);
1499:
1494: EXIT WHEN j >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST;
1495: j := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(j);
1496: END LOOP;
1497: END IF;
1498: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Temp wt afterloop container item : '||l_temp_wt);
1499:
1500: END IF; -- container_flag
1501:
1502: EXIT WHEN i >= p_top_level_rows.LAST;
1503: i := p_top_level_rows.NEXT(i);
1504: END LOOP;
1505: END IF;
1506:
1507: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Temp wt afterloop : '||l_temp_wt);
1508:
1509: IF (l_target_uom IS NULL ) THEN
1510: raise fte_freight_pricing_util.g_weight_uom_not_found;
1511: END IF;
1506:
1507: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Temp wt afterloop : '||l_temp_wt);
1508:
1509: IF (l_target_uom IS NULL ) THEN
1510: raise fte_freight_pricing_util.g_weight_uom_not_found;
1511: END IF;
1512:
1513: IF (l_temp_wt = 0) THEN
1514: -- something wrong
1511: END IF;
1512:
1513: IF (l_temp_wt = 0) THEN
1514: -- something wrong
1515: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
1516: END IF;
1517:
1518: x_total_wt := l_temp_wt;
1519: x_wt_uom := l_target_uom;
1517:
1518: x_total_wt := l_temp_wt;
1519: x_wt_uom := l_target_uom;
1520:
1521: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1522: EXCEPTION
1523: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1524: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1525: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1519: x_wt_uom := l_target_uom;
1520:
1521: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1522: EXCEPTION
1523: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1524: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1525: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1526: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1527: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
1521: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1522: EXCEPTION
1523: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1524: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1525: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1526: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1527: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
1528: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1529: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
1522: EXCEPTION
1523: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1524: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1525: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1526: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1527: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
1528: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1529: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
1530: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1523: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1524: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1525: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1526: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1527: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
1528: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1529: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
1530: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1531: WHEN others THEN
1525: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1526: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1527: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
1528: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1529: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
1530: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1531: WHEN others THEN
1532: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1533: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1526: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1527: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
1528: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1529: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
1530: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1531: WHEN others THEN
1532: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1533: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1534: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1529: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
1530: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1531: WHEN others THEN
1532: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1533: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1534: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1535: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1536:
1537: END get_total_shipment_weight;
1530: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1531: WHEN others THEN
1532: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1533: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1534: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1535: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1536:
1537: END get_total_shipment_weight;
1538:
1531: WHEN others THEN
1532: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1533: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1534: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1535: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight');
1536:
1537: END get_total_shipment_weight;
1538:
1539: -- This procedure is used to calculate the total wt of the top level rows
1540: -- get total shipment wt. Should take care of conversions. This overloaded method bumps up individual
1541: -- package wts to the min. package wt before getting the total.
1542: -- used for parcel hundred wt.
1543:
1544: PROCEDURE get_total_shipment_weight (p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
1545: p_min_package_wt IN NUMBER,
1546: p_min_wt_uom IN VARCHAR2,
1547: x_total_wt OUT NOCOPY NUMBER,
1548: x_wt_uom OUT NOCOPY VARCHAR2,
1560: l_content_id NUMBER;
1561: i NUMBER;
1562: l_return_status VARCHAR2(1);
1563:
1564: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1565: l_method_name VARCHAR2(50) := 'get_total_shipment_weight';
1566: -- Local module
1567: PROCEDURE add_weights ( p_orig_wt IN NUMBER,
1568: p_orig_uom IN VARCHAR2,
1575: l_temp_wt NUMBER :=0;
1576: l_new_wt NUMBER;
1577: l_new_uom VARCHAR2(30);
1578:
1579: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1580: l_method_name VARCHAR2(50) := 'add_weights';
1581: BEGIN
1582:
1583: fte_freight_pricing_util.set_method(l_log_level,'add_weights');
1579: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1580: l_method_name VARCHAR2(50) := 'add_weights';
1581: BEGIN
1582:
1583: fte_freight_pricing_util.set_method(l_log_level,'add_weights');
1584: IF (p_orig_uom = p_add_uom) THEN
1585: l_new_wt := p_orig_wt + p_add_wt;
1586: l_new_uom := p_orig_uom;
1587: ELSE
1602: x_new_wt := l_new_wt;
1603: x_new_uom := l_new_uom;
1604: END IF;
1605:
1606: fte_freight_pricing_util.unset_method(l_log_level,'add_weights');
1607: END ;
1608:
1609: PROCEDURE highest_of (p_wt_1 IN NUMBER,
1610: p_uom_1 IN VARCHAR2,
1614: x_wt OUT NOCOPY NUMBER,
1615: x_uom OUT NOCOPY VARCHAR2)
1616: IS
1617: l_new_wt_2 NUMBER :=0;
1618: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1619: l_method_name VARCHAR2(50) := 'highest_of';
1620: BEGIN
1621: fte_freight_pricing_util.set_method(l_log_level,'highest_of');
1622: IF (p_uom_1 = p_uom_2) THEN
1617: l_new_wt_2 NUMBER :=0;
1618: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1619: l_method_name VARCHAR2(50) := 'highest_of';
1620: BEGIN
1621: fte_freight_pricing_util.set_method(l_log_level,'highest_of');
1622: IF (p_uom_1 = p_uom_2) THEN
1623: x_wt := GREATEST(p_wt_1,p_wt_2);
1624: x_uom := p_uom_1;
1625: ELSE
1645: x_uom := p_target_uom;
1646:
1647: END IF;
1648:
1649: fte_freight_pricing_util.unset_method(l_log_level,'highest_of');
1650: END highest_of;
1651:
1652:
1653: PROCEDURE get_rolledup_wts (p_content_id IN NUMBER,
1658: j NUMBER;
1659: l_target_uom VARCHAR2(30);
1660: l_temp_wt NUMBER :=0;
1661: l_temp_uom VARCHAR2(30);
1662: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1663: l_method_name VARCHAR2(50) := 'get_rolledup_wts';
1664: BEGIN
1665: fte_freight_pricing_util.set_method(l_log_level,'get_rolledup_wts');
1666: l_target_uom := p_target_uom;
1661: l_temp_uom VARCHAR2(30);
1662: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1663: l_method_name VARCHAR2(50) := 'get_rolledup_wts';
1664: BEGIN
1665: fte_freight_pricing_util.set_method(l_log_level,'get_rolledup_wts');
1666: l_target_uom := p_target_uom;
1667: j := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
1668: IF ( j IS NOT NULL) THEN
1669: LOOP
1663: l_method_name VARCHAR2(50) := 'get_rolledup_wts';
1664: BEGIN
1665: fte_freight_pricing_util.set_method(l_log_level,'get_rolledup_wts');
1666: l_target_uom := p_target_uom;
1667: j := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
1668: IF ( j IS NOT NULL) THEN
1669: LOOP
1670: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).master_container_id = p_content_id) THEN
1671:
1666: l_target_uom := p_target_uom;
1667: j := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
1668: IF ( j IS NOT NULL) THEN
1669: LOOP
1670: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).master_container_id = p_content_id) THEN
1671:
1672: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'j ='||j);
1673: IF (l_target_uom IS NULL) THEN
1674: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
1668: IF ( j IS NOT NULL) THEN
1669: LOOP
1670: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).master_container_id = p_content_id) THEN
1671:
1672: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'j ='||j);
1673: IF (l_target_uom IS NULL) THEN
1674: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
1675: END IF;
1676:
1670: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).master_container_id = p_content_id) THEN
1671:
1672: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'j ='||j);
1673: IF (l_target_uom IS NULL) THEN
1674: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
1675: END IF;
1676:
1677: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom <> l_target_uom ) THEN
1678: l_temp_wt := l_temp_wt + WSH_WV_UTILS.convert_uom(FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom,
1673: IF (l_target_uom IS NULL) THEN
1674: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
1675: END IF;
1676:
1677: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom <> l_target_uom ) THEN
1678: l_temp_wt := l_temp_wt + WSH_WV_UTILS.convert_uom(FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom,
1679: l_target_uom,
1680: FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity,
1681: 0); -- Within same UOM class
1674: l_target_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom;
1675: END IF;
1676:
1677: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom <> l_target_uom ) THEN
1678: l_temp_wt := l_temp_wt + WSH_WV_UTILS.convert_uom(FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom,
1679: l_target_uom,
1680: FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity,
1681: 0); -- Within same UOM class
1682: ELSE
1676:
1677: IF (FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom <> l_target_uom ) THEN
1678: l_temp_wt := l_temp_wt + WSH_WV_UTILS.convert_uom(FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_uom,
1679: l_target_uom,
1680: FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity,
1681: 0); -- Within same UOM class
1682: ELSE
1683: l_temp_wt := l_temp_wt + FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity;
1684: END IF;
1679: l_target_uom,
1680: FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity,
1681: 0); -- Within same UOM class
1682: ELSE
1683: l_temp_wt := l_temp_wt + FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity;
1684: END IF;
1685: END IF;
1686: EXIT WHEN j >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST;
1687: j := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(j);
1682: ELSE
1683: l_temp_wt := l_temp_wt + FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity;
1684: END IF;
1685: END IF;
1686: EXIT WHEN j >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST;
1687: j := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(j);
1688: END LOOP;
1689: END IF;
1690:
1683: l_temp_wt := l_temp_wt + FTE_FREIGHT_PRICING.g_rolledup_lines(j).line_quantity;
1684: END IF;
1685: END IF;
1686: EXIT WHEN j >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST;
1687: j := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(j);
1688: END LOOP;
1689: END IF;
1690:
1691: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_temp_wt ='||l_temp_wt);
1687: j := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(j);
1688: END LOOP;
1689: END IF;
1690:
1691: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_temp_wt ='||l_temp_wt);
1692: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_target_uom = '||l_target_uom);
1693: x_wt := l_temp_wt;
1694: x_uom := l_target_uom;
1695:
1688: END LOOP;
1689: END IF;
1690:
1691: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_temp_wt ='||l_temp_wt);
1692: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_target_uom = '||l_target_uom);
1693: x_wt := l_temp_wt;
1694: x_uom := l_target_uom;
1695:
1696: fte_freight_pricing_util.unset_method(l_log_level,'get_rolledup_wts');
1692: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_target_uom = '||l_target_uom);
1693: x_wt := l_temp_wt;
1694: x_uom := l_target_uom;
1695:
1696: fte_freight_pricing_util.unset_method(l_log_level,'get_rolledup_wts');
1697: EXCEPTION
1698: WHEN others THEN
1699: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1700: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1695:
1696: fte_freight_pricing_util.unset_method(l_log_level,'get_rolledup_wts');
1697: EXCEPTION
1698: WHEN others THEN
1699: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1700: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1701: fte_freight_pricing_util.unset_method(l_log_level, l_method_name);
1702: END get_rolledup_wts;
1703:
1696: fte_freight_pricing_util.unset_method(l_log_level,'get_rolledup_wts');
1697: EXCEPTION
1698: WHEN others THEN
1699: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1700: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1701: fte_freight_pricing_util.unset_method(l_log_level, l_method_name);
1702: END get_rolledup_wts;
1703:
1704:
1697: EXCEPTION
1698: WHEN others THEN
1699: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1700: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1701: fte_freight_pricing_util.unset_method(l_log_level, l_method_name);
1702: END get_rolledup_wts;
1703:
1704:
1705: BEGIN
1703:
1704:
1705: BEGIN
1706: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1707: fte_freight_pricing_util.reset_dbg_vars;
1708: fte_freight_pricing_util.set_method(l_log_level,'get_total_shipment_weight-2');
1709:
1710: -- TODO : if this is a container -->
1711: -- if g_shipment_line_rows(toplevel content_id).gross_wt is null
1704:
1705: BEGIN
1706: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1707: fte_freight_pricing_util.reset_dbg_vars;
1708: fte_freight_pricing_util.set_method(l_log_level,'get_total_shipment_weight-2');
1709:
1710: -- TODO : if this is a container -->
1711: -- if g_shipment_line_rows(toplevel content_id).gross_wt is null
1712: -- total_wt = total wt + sum of rolledup lines net wt + top level row.grosswt --(1)
1733: END IF;
1734:
1735:
1736: IF (l_cum_uom IS NULL) THEN
1737: raise fte_freight_pricing_util.g_weight_uom_not_found;
1738: END IF;
1739:
1740: i := p_top_level_rows.FIRST;
1741: l_curr_wt := 0;
1741: l_curr_wt := 0;
1742: l_cum_wt := 0;
1743: LOOP
1744: l_content_id := p_top_level_rows(i).content_id;
1745: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_content_id = '||l_content_id);
1746:
1747: IF (p_top_level_rows(i).container_flag = 'N') THEN
1748: IF (l_cum_uom <> p_top_level_rows(i).weight_uom ) THEN
1749: l_curr_wt := WSH_WV_UTILS.convert_uom(p_top_level_rows(i).weight_uom,
1760: -- get rolledup wt converted to l_cum_uom
1761: get_rolledup_wts(l_content_id,
1762: l_cum_uom,
1763: l_rolledup_wt, l_rolledup_uom);
1764: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,' l_rolledup_wt = '||l_rolledup_wt);
1765:
1766: -- add weights : l_curr_wt := l_rolledup_wt + p_top_level_rows(i).gross_weight;
1767: add_weights(p_orig_wt=>l_rolledup_wt,p_orig_uom=>l_cum_uom,
1768: p_add_wt=>p_top_level_rows(i).gross_weight, p_add_uom=>p_top_level_rows(i).weight_uom,
1767: add_weights(p_orig_wt=>l_rolledup_wt,p_orig_uom=>l_cum_uom,
1768: p_add_wt=>p_top_level_rows(i).gross_weight, p_add_uom=>p_top_level_rows(i).weight_uom,
1769: x_new_wt=>l_curr_wt,x_new_uom=>l_curr_uom);
1770:
1771: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,' l_curr_wt = '||l_curr_wt);
1772:
1773: IF (FTE_FREIGHT_PRICING.g_shipment_line_rows(l_content_id).gross_weight IS NOT NULL) THEN
1774:
1775: -- choose the higher of the g_shipment_row.gross_wt and the above wt.
1769: x_new_wt=>l_curr_wt,x_new_uom=>l_curr_uom);
1770:
1771: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,' l_curr_wt = '||l_curr_wt);
1772:
1773: IF (FTE_FREIGHT_PRICING.g_shipment_line_rows(l_content_id).gross_weight IS NOT NULL) THEN
1774:
1775: -- choose the higher of the g_shipment_row.gross_wt and the above wt.
1776: highest_of (FTE_FREIGHT_PRICING.g_shipment_line_rows(l_content_id).gross_weight,
1777: FTE_FREIGHT_PRICING.g_shipment_line_rows(l_content_id).weight_uom_code,
1772:
1773: IF (FTE_FREIGHT_PRICING.g_shipment_line_rows(l_content_id).gross_weight IS NOT NULL) THEN
1774:
1775: -- choose the higher of the g_shipment_row.gross_wt and the above wt.
1776: highest_of (FTE_FREIGHT_PRICING.g_shipment_line_rows(l_content_id).gross_weight,
1777: FTE_FREIGHT_PRICING.g_shipment_line_rows(l_content_id).weight_uom_code,
1778: l_curr_wt,
1779: l_cum_uom,
1780: l_cum_uom, --target uom
1773: IF (FTE_FREIGHT_PRICING.g_shipment_line_rows(l_content_id).gross_weight IS NOT NULL) THEN
1774:
1775: -- choose the higher of the g_shipment_row.gross_wt and the above wt.
1776: highest_of (FTE_FREIGHT_PRICING.g_shipment_line_rows(l_content_id).gross_weight,
1777: FTE_FREIGHT_PRICING.g_shipment_line_rows(l_content_id).weight_uom_code,
1778: l_curr_wt,
1779: l_cum_uom,
1780: l_cum_uom, --target uom
1781: l_highest_wt,
1784: --l_curr_uom);
1785:
1786: l_curr_wt := l_highest_wt;
1787: l_curr_uom := l_highest_uom;
1788: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,' highest :l_curr_wt = '||l_curr_wt);
1789:
1790: END IF;
1791: END IF;
1792:
1803: --l_curr_uom);
1804:
1805: l_curr_wt := l_highest_wt;
1806: l_curr_uom := l_highest_uom;
1807: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,' highest :l_curr_wt = '||l_curr_wt);
1808: END IF;
1809:
1810: l_cum_wt := l_cum_wt + l_curr_wt;
1811:
1815:
1816:
1817: IF (l_cum_wt = 0) THEN
1818: -- something wrong
1819: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
1820: END IF;
1821:
1822: x_total_wt := l_cum_wt;
1823: x_wt_uom := l_cum_uom;
1821:
1822: x_total_wt := l_cum_wt;
1823: x_wt_uom := l_cum_uom;
1824:
1825: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1826: EXCEPTION
1827: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1828: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1829: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1823: x_wt_uom := l_cum_uom;
1824:
1825: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1826: EXCEPTION
1827: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1828: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1829: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1830: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1831: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
1825: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1826: EXCEPTION
1827: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1828: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1829: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1830: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1831: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
1832: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1833: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
1826: EXCEPTION
1827: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1828: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1829: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1830: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1831: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
1832: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1833: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
1834: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1827: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1828: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1829: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1830: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1831: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
1832: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1833: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
1834: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1835: WHEN others THEN
1829: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1830: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1831: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
1832: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1833: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
1834: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1835: WHEN others THEN
1836: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1837: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1830: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1831: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
1832: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1833: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
1834: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1835: WHEN others THEN
1836: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1837: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1838: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1833: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
1834: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1835: WHEN others THEN
1836: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1837: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1838: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1839: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1840: END get_total_shipment_weight;
1841:
1834: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1835: WHEN others THEN
1836: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1837: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1838: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1839: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1840: END get_total_shipment_weight;
1841:
1842:
1835: WHEN others THEN
1836: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1837: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1838: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1839: fte_freight_pricing_util.unset_method(l_log_level,'get_total_shipment_weight-2');
1840: END get_total_shipment_weight;
1841:
1842:
1843: PROCEDURE get_bumped_up_package_weight (p_wt IN NUMBER,
1853: l_temp_min_wt NUMBER;
1854: l_temp_min_uom VARCHAR2(30);
1855: l_return_status VARCHAR2(1);
1856:
1857: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1858: l_method_name VARCHAR2(50) := 'get_bumped_up_package_weight';
1859: BEGIN
1860: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1861: fte_freight_pricing_util.reset_dbg_vars;
1857: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1858: l_method_name VARCHAR2(50) := 'get_bumped_up_package_weight';
1859: BEGIN
1860: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1861: fte_freight_pricing_util.reset_dbg_vars;
1862: fte_freight_pricing_util.set_method(l_log_level,'get_bumped_up_package_weight');
1863:
1864: IF (p_min_wt_uom IS NULL OR p_wt_uom IS NULL) THEN
1865: --raise fte_freight_pricing_util.g_weight_uom_not_found;
1858: l_method_name VARCHAR2(50) := 'get_bumped_up_package_weight';
1859: BEGIN
1860: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1861: fte_freight_pricing_util.reset_dbg_vars;
1862: fte_freight_pricing_util.set_method(l_log_level,'get_bumped_up_package_weight');
1863:
1864: IF (p_min_wt_uom IS NULL OR p_wt_uom IS NULL) THEN
1865: --raise fte_freight_pricing_util.g_weight_uom_not_found;
1866:
1861: fte_freight_pricing_util.reset_dbg_vars;
1862: fte_freight_pricing_util.set_method(l_log_level,'get_bumped_up_package_weight');
1863:
1864: IF (p_min_wt_uom IS NULL OR p_wt_uom IS NULL) THEN
1865: --raise fte_freight_pricing_util.g_weight_uom_not_found;
1866:
1867: -- since it's been decided later on that hundredwt enabling is not controled
1868: -- by the parameter, instead is controled by whether top level row count is
1869: -- is greater than 1, we cannot always assume that p_min_package_wt and
1873: -- so the new wt is the same as line wt
1874: x_new_wt := p_wt;
1875: x_new_wt_uom := p_wt_uom;
1876:
1877: fte_freight_pricing_util.unset_method(l_log_level,'get_bumped_up_package_weight');
1878:
1879: return;
1880: END IF;
1881:
1900: x_new_wt_uom := p_wt_uom;
1901: x_bump := 'N';
1902: end if;
1903:
1904: fte_freight_pricing_util.unset_method(l_log_level,'get_bumped_up_package_weight');
1905: EXCEPTION
1906: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1907: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1908: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1902: end if;
1903:
1904: fte_freight_pricing_util.unset_method(l_log_level,'get_bumped_up_package_weight');
1905: EXCEPTION
1906: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1907: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1908: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1909: fte_freight_pricing_util.unset_method(l_log_level,'get_bumped_up_package_weight');
1910: WHEN others THEN
1904: fte_freight_pricing_util.unset_method(l_log_level,'get_bumped_up_package_weight');
1905: EXCEPTION
1906: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1907: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1908: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1909: fte_freight_pricing_util.unset_method(l_log_level,'get_bumped_up_package_weight');
1910: WHEN others THEN
1911: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1912: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1905: EXCEPTION
1906: WHEN fte_freight_pricing_util.g_weight_uom_not_found THEN
1907: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1908: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1909: fte_freight_pricing_util.unset_method(l_log_level,'get_bumped_up_package_weight');
1910: WHEN others THEN
1911: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1912: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1913: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1908: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_uom_not_found');
1909: fte_freight_pricing_util.unset_method(l_log_level,'get_bumped_up_package_weight');
1910: WHEN others THEN
1911: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1912: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1913: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1914: fte_freight_pricing_util.unset_method(l_log_level,'get_bumped_up_package_weight');
1915: END get_bumped_up_package_weight;
1916:
1909: fte_freight_pricing_util.unset_method(l_log_level,'get_bumped_up_package_weight');
1910: WHEN others THEN
1911: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1912: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1913: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1914: fte_freight_pricing_util.unset_method(l_log_level,'get_bumped_up_package_weight');
1915: END get_bumped_up_package_weight;
1916:
1917:
1910: WHEN others THEN
1911: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1912: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
1913: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
1914: fte_freight_pricing_util.unset_method(l_log_level,'get_bumped_up_package_weight');
1915: END get_bumped_up_package_weight;
1916:
1917:
1918: -- Get the next higher wt. break. The wt. break is converted to the uom on the total wt.
1927: l_curr_diff NUMBER := 99999999999 ;
1928: l_least_diff NUMBER := 99999999999 ;
1929: l_best_break NUMBER := 0;
1930: l_return_status VARCHAR2(1);
1931: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1932: l_method_name VARCHAR2(50) := 'get_next_weight_break';
1933: BEGIN
1934: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1935: fte_freight_pricing_util.reset_dbg_vars;
1931: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
1932: l_method_name VARCHAR2(50) := 'get_next_weight_break';
1933: BEGIN
1934: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1935: fte_freight_pricing_util.reset_dbg_vars;
1936: fte_freight_pricing_util.set_method(l_log_level,'get_next_weight_break');
1937:
1938: -- in the loop the wt break points may not be in any particular order
1939: -- so we have to get the weight break point which gives the smallest positive difference
1932: l_method_name VARCHAR2(50) := 'get_next_weight_break';
1933: BEGIN
1934: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1935: fte_freight_pricing_util.reset_dbg_vars;
1936: fte_freight_pricing_util.set_method(l_log_level,'get_next_weight_break');
1937:
1938: -- in the loop the wt break points may not be in any particular order
1939: -- so we have to get the weight break point which gives the smallest positive difference
1940: -- from the total wt
1958: NULL,
1959: NULL);
1960:
1961: IF l_curr_break = -99999 then
1962: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,' Undefined UOM conversion for def. wt. break from '||g_lane_parameters(i).uom_code||' to uom '||p_total_wt_uom);
1963: --raise others;
1964: raise fte_freight_pricing_util.g_invalid_uom_conversion;
1965: END IF;
1966:
1960:
1961: IF l_curr_break = -99999 then
1962: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,' Undefined UOM conversion for def. wt. break from '||g_lane_parameters(i).uom_code||' to uom '||p_total_wt_uom);
1963: --raise others;
1964: raise fte_freight_pricing_util.g_invalid_uom_conversion;
1965: END IF;
1966:
1967: /*
1968: WSH_WV_UTILS.convert_uom(g_lane_parameters(i).uom_code,
1990: -- For this release will throw error and a descriptive message AG 05/08
1991: /*
1992: -- if next break point is not found, the calling procedure will just send one set to QP
1993: IF (l_best_break <= 0) THEN
1994: --raise fte_freight_pricing_util.g_weight_break_not_found;
1995: raise fte_freight_pricing_util.g_def_wt_break_not_found;
1996: END IF;
1997: */
1998: -- This will never happen as the calling procedure handles this
1991: /*
1992: -- if next break point is not found, the calling procedure will just send one set to QP
1993: IF (l_best_break <= 0) THEN
1994: --raise fte_freight_pricing_util.g_weight_break_not_found;
1995: raise fte_freight_pricing_util.g_def_wt_break_not_found;
1996: END IF;
1997: */
1998: -- This will never happen as the calling procedure handles this
1999: /*
1997: */
1998: -- This will never happen as the calling procedure handles this
1999: /*
2000: IF (p_total_wt_uom IS NULL ) THEN
2001: raise fte_freight_pricing_util.g_weight_uom_not_found;
2002: END IF;
2003: */
2004:
2005: -- There is a potential problem here in case of uom conversion
2008: -- for the line which is going with the next break value as Total_Item_quantity AG 05/09
2009: x_next_weight_break := l_best_break;
2010: x_weight_break_uom := p_total_wt_uom;
2011:
2012: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2013: EXCEPTION
2014: /*
2015: --WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
2016: WHEN fte_freight_pricing_util.g_def_wt_break_not_found THEN
2011:
2012: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2013: EXCEPTION
2014: /*
2015: --WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
2016: WHEN fte_freight_pricing_util.g_def_wt_break_not_found THEN
2017: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2018: --x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2019: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_def_wt_break_not_found');
2012: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2013: EXCEPTION
2014: /*
2015: --WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
2016: WHEN fte_freight_pricing_util.g_def_wt_break_not_found THEN
2017: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2018: --x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2019: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_def_wt_break_not_found');
2020: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2015: --WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
2016: WHEN fte_freight_pricing_util.g_def_wt_break_not_found THEN
2017: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2018: --x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2019: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_def_wt_break_not_found');
2020: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2021: */
2022: WHEN fte_freight_pricing_util.g_invalid_uom_conversion THEN
2023: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2016: WHEN fte_freight_pricing_util.g_def_wt_break_not_found THEN
2017: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2018: --x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2019: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_def_wt_break_not_found');
2020: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2021: */
2022: WHEN fte_freight_pricing_util.g_invalid_uom_conversion THEN
2023: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2024: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_uom_conversion');
2018: --x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2019: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_def_wt_break_not_found');
2020: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2021: */
2022: WHEN fte_freight_pricing_util.g_invalid_uom_conversion THEN
2023: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2024: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_uom_conversion');
2025: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2026: /*
2020: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2021: */
2022: WHEN fte_freight_pricing_util.g_invalid_uom_conversion THEN
2023: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2024: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_uom_conversion');
2025: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2026: /*
2027: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
2028: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2021: */
2022: WHEN fte_freight_pricing_util.g_invalid_uom_conversion THEN
2023: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2024: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_uom_conversion');
2025: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2026: /*
2027: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
2028: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2029: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
2023: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2024: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_invalid_uom_conversion');
2025: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2026: /*
2027: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
2028: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2029: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
2030: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2031: */
2025: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2026: /*
2027: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
2028: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2029: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
2030: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2031: */
2032: WHEN others THEN
2033: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2026: /*
2027: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
2028: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2029: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
2030: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2031: */
2032: WHEN others THEN
2033: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2034: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2030: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2031: */
2032: WHEN others THEN
2033: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2034: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2035: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2036: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2037: END get_next_weight_break;
2038:
2031: */
2032: WHEN others THEN
2033: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2034: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2035: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2036: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2037: END get_next_weight_break;
2038:
2039:
2032: WHEN others THEN
2033: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2034: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2035: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2036: fte_freight_pricing_util.unset_method(l_log_level,'get_next_weight_break');
2037: END get_next_weight_break;
2038:
2039:
2040: -- This function is used to calculate the deficit wt for the given shipment
2041: -- The total wt and wt break are assumed to be in the same uom
2042: FUNCTION get_deficit_weight ( p_total_wt IN NUMBER,
2043: p_next_wt_break IN NUMBER)
2044: RETURN NUMBER IS
2045: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
2046: BEGIN
2047: RETURN (p_next_wt_break - p_total_wt);
2048: END;
2049:
2066: l_priced_curr VARCHAR2(30);
2067: l_return_status VARCHAR2(1);
2068: l_min_charge_amt NUMBER;
2069: l_min_charge_curr VARCHAR2(30);
2070: l_log_level NUMBER := fte_freight_pricing_util.G_LOG;
2071: l_method_name VARCHAR2(50) := 'apply_min_charge';
2072:
2073: -- local module --
2074: PROCEDURE get_min_charge_parameter (x_min_charge_amt OUT NOCOPY NUMBER,
2076: IS
2077: i NUMBER;
2078: min_charge_amt NUMBER := 0;
2079: currency VARCHAR2(30) := NULL;
2080: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
2081: l_method_name VARCHAR2(50) := 'apply_min_charge';
2082: BEGIN
2083: fte_freight_pricing_util.set_method(l_log_level,'get_min_charge_parameter');
2084: i := g_lane_parameters.FIRST;
2079: currency VARCHAR2(30) := NULL;
2080: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
2081: l_method_name VARCHAR2(50) := 'apply_min_charge';
2082: BEGIN
2083: fte_freight_pricing_util.set_method(l_log_level,'get_min_charge_parameter');
2084: i := g_lane_parameters.FIRST;
2085: IF (i IS NOT NULL) THEN
2086: LOOP
2087: IF (g_lane_parameters(i).parameter_sub_type = 'MIN_CHARGE'
2095: END LOOP;
2096: END IF;
2097: x_min_charge_amt := min_charge_amt;
2098: x_currency := currency;
2099: fte_freight_pricing_util.unset_method(l_log_level,'get_min_charge_parameter');
2100: EXCEPTION
2101: WHEN others THEN
2102: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2103: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2098: x_currency := currency;
2099: fte_freight_pricing_util.unset_method(l_log_level,'get_min_charge_parameter');
2100: EXCEPTION
2101: WHEN others THEN
2102: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2103: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2104: fte_freight_pricing_util.unset_method(l_log_level, l_method_name);
2105: END get_min_charge_parameter;
2106: -- end local module --
2099: fte_freight_pricing_util.unset_method(l_log_level,'get_min_charge_parameter');
2100: EXCEPTION
2101: WHEN others THEN
2102: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2103: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2104: fte_freight_pricing_util.unset_method(l_log_level, l_method_name);
2105: END get_min_charge_parameter;
2106: -- end local module --
2107:
2100: EXCEPTION
2101: WHEN others THEN
2102: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2103: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2104: fte_freight_pricing_util.unset_method(l_log_level, l_method_name);
2105: END get_min_charge_parameter;
2106: -- end local module --
2107:
2108: BEGIN
2107:
2108: BEGIN
2109:
2110: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2111: fte_freight_pricing_util.reset_dbg_vars;
2112: fte_freight_pricing_util.set_method(l_log_level,'apply_min_charge');
2113: x_charge_applied := 'N';
2114:
2115: IF (g_special_flags.minimum_charge_flag <> 'Y') THEN
2108: BEGIN
2109:
2110: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2111: fte_freight_pricing_util.reset_dbg_vars;
2112: fte_freight_pricing_util.set_method(l_log_level,'apply_min_charge');
2113: x_charge_applied := 'N';
2114:
2115: IF (g_special_flags.minimum_charge_flag <> 'Y') THEN
2116: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'minimum charge is disabled ');
2112: fte_freight_pricing_util.set_method(l_log_level,'apply_min_charge');
2113: x_charge_applied := 'N';
2114:
2115: IF (g_special_flags.minimum_charge_flag <> 'Y') THEN
2116: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'minimum charge is disabled ');
2117: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2118: RETURN;
2119: END IF;
2120:
2113: x_charge_applied := 'N';
2114:
2115: IF (g_special_flags.minimum_charge_flag <> 'Y') THEN
2116: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'minimum charge is disabled ');
2117: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2118: RETURN;
2119: END IF;
2120:
2121: IF p_comp_with_price IS NULL THEN
2130: --x_priced_currency => l_priced_curr,
2131: x_price => l_total_base_price,
2132: x_return_status => l_return_status);
2133:
2134: fte_freight_pricing_util.set_location(p_loc=>'after get_total_base_price ');
2135: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2136: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2137: raise fte_freight_pricing_util.g_total_base_price_failed;
2138: /*
2133:
2134: fte_freight_pricing_util.set_location(p_loc=>'after get_total_base_price ');
2135: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2136: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2137: raise fte_freight_pricing_util.g_total_base_price_failed;
2138: /*
2139: ELSE
2140: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_base_price = '||l_total_base_price);
2141: */
2136: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2137: raise fte_freight_pricing_util.g_total_base_price_failed;
2138: /*
2139: ELSE
2140: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_base_price = '||l_total_base_price);
2141: */
2142: END IF;
2143:
2144: ELSE
2143:
2144: ELSE
2145: l_total_base_price := p_comp_with_price;
2146: END IF;
2147: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_base_price = '||l_total_base_price);
2148: -- call the local module
2149: get_min_charge_parameter (l_min_charge_amt, l_min_charge_curr);
2150:
2151: -- TODO : implement x_priced_currency in fte_qp_engine.get_total_base_price. the following lines
2160:
2161: IF (l_min_charge_amt > l_total_base_price ) THEN
2162: -- should apply min. charge
2163: -- prorate min. charge across all engine output lines by wt.
2164: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'min charge will be applied');
2165: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'min charge amount : '||l_min_charge_amt);
2166: fte_qp_engine.apply_new_base_price(--p_set_num => p_set_num,
2167: p_set_num => p_set_num, -- AG 5/10
2168: p_new_total_price => l_min_charge_amt,
2161: IF (l_min_charge_amt > l_total_base_price ) THEN
2162: -- should apply min. charge
2163: -- prorate min. charge across all engine output lines by wt.
2164: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'min charge will be applied');
2165: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'min charge amount : '||l_min_charge_amt);
2166: fte_qp_engine.apply_new_base_price(--p_set_num => p_set_num,
2167: p_set_num => p_set_num, -- AG 5/10
2168: p_new_total_price => l_min_charge_amt,
2169: x_return_status => l_return_status);
2167: p_set_num => p_set_num, -- AG 5/10
2168: p_new_total_price => l_min_charge_amt,
2169: x_return_status => l_return_status);
2170:
2171: fte_freight_pricing_util.set_location(p_loc=>'after apply_new_base_price ');
2172: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2173: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2174: raise fte_freight_pricing_util.g_apply_new_base_price_failed;
2175: ELSE
2170:
2171: fte_freight_pricing_util.set_location(p_loc=>'after apply_new_base_price ');
2172: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2173: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2174: raise fte_freight_pricing_util.g_apply_new_base_price_failed;
2175: ELSE
2176: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'applied min charge amt = '||l_min_charge_amt);
2177: END IF;
2178:
2172: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2173: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2174: raise fte_freight_pricing_util.g_apply_new_base_price_failed;
2175: ELSE
2176: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'applied min charge amt = '||l_min_charge_amt);
2177: END IF;
2178:
2179: x_charge_applied := 'Y';
2180:
2179: x_charge_applied := 'Y';
2180:
2181: ELSE
2182: -- do nothing
2183: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'No need to apply min charge ');
2184: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2185: RETURN;
2186: END IF;
2187:
2180:
2181: ELSE
2182: -- do nothing
2183: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'No need to apply min charge ');
2184: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2185: RETURN;
2186: END IF;
2187:
2188: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2184: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2185: RETURN;
2186: END IF;
2187:
2188: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2189: EXCEPTION
2190: WHEN fte_freight_pricing_util.g_total_base_price_failed THEN
2191: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2192: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'total_base_price_failed');
2186: END IF;
2187:
2188: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2189: EXCEPTION
2190: WHEN fte_freight_pricing_util.g_total_base_price_failed THEN
2191: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2192: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'total_base_price_failed');
2193: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2194: WHEN fte_freight_pricing_util.g_apply_new_base_price_failed THEN
2188: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2189: EXCEPTION
2190: WHEN fte_freight_pricing_util.g_total_base_price_failed THEN
2191: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2192: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'total_base_price_failed');
2193: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2194: WHEN fte_freight_pricing_util.g_apply_new_base_price_failed THEN
2195: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2196: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_new_base_price_failed');
2189: EXCEPTION
2190: WHEN fte_freight_pricing_util.g_total_base_price_failed THEN
2191: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2192: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'total_base_price_failed');
2193: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2194: WHEN fte_freight_pricing_util.g_apply_new_base_price_failed THEN
2195: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2196: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_new_base_price_failed');
2197: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2190: WHEN fte_freight_pricing_util.g_total_base_price_failed THEN
2191: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2192: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'total_base_price_failed');
2193: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2194: WHEN fte_freight_pricing_util.g_apply_new_base_price_failed THEN
2195: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2196: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_new_base_price_failed');
2197: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2198: WHEN others THEN
2192: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'total_base_price_failed');
2193: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2194: WHEN fte_freight_pricing_util.g_apply_new_base_price_failed THEN
2195: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2196: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_new_base_price_failed');
2197: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2198: WHEN others THEN
2199: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2200: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2193: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2194: WHEN fte_freight_pricing_util.g_apply_new_base_price_failed THEN
2195: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2196: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_new_base_price_failed');
2197: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2198: WHEN others THEN
2199: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2200: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2201: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2196: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_new_base_price_failed');
2197: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2198: WHEN others THEN
2199: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2200: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2201: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2202: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2203:
2204:
2197: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2198: WHEN others THEN
2199: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2200: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2201: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2202: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2203:
2204:
2205: END apply_min_charge;
2198: WHEN others THEN
2199: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2200: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2201: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2202: fte_freight_pricing_util.unset_method(l_log_level,'apply_min_charge');
2203:
2204:
2205: END apply_min_charge;
2206:
2207:
2208:
2209:
2210: PROCEDURE process_LTL_with_deficit_wt (
2211: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
2212: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
2213: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2214: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2215: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
2208:
2209:
2210: PROCEDURE process_LTL_with_deficit_wt (
2211: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
2212: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
2213: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2214: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2215: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
2216: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
2209:
2210: PROCEDURE process_LTL_with_deficit_wt (
2211: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
2212: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
2213: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2214: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2215: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
2216: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
2217: x_deficit_wt_applied OUT NOCOPY VARCHAR2, -- Added AG 5/10
2210: PROCEDURE process_LTL_with_deficit_wt (
2211: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
2212: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
2213: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2214: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2215: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
2216: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
2217: x_deficit_wt_applied OUT NOCOPY VARCHAR2, -- Added AG 5/10
2218: x_min_charge_comp_price OUT NOCOPY NUMBER, -- AG 5/10
2211: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
2212: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
2213: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2214: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2215: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
2216: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
2217: x_deficit_wt_applied OUT NOCOPY VARCHAR2, -- Added AG 5/10
2218: x_min_charge_comp_price OUT NOCOPY NUMBER, -- AG 5/10
2219: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
2212: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
2213: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2214: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2215: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
2216: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
2217: x_deficit_wt_applied OUT NOCOPY VARCHAR2, -- Added AG 5/10
2218: x_min_charge_comp_price OUT NOCOPY NUMBER, -- AG 5/10
2219: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
2220: x_qp_output_detail_rows OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
2226: l_event_num NUMBER;
2227: l_set_num NUMBER;
2228: i NUMBER;
2229: j NUMBER;
2230: l_attr_rec fte_freight_pricing.pricing_attribute_rec_type;
2231: l_temp_wt NUMBER;
2232: l_charge_applied VARCHAR2(1);
2233: l_next_weight_break NUMBER;
2234: l_next_weight_break_uom VARCHAR2(30);
2234: l_next_weight_break_uom VARCHAR2(30);
2235: l_curr_last_idx NUMBER;
2236: l_curr_input_idx NUMBER;
2237: l_set_one_max_input_idx NUMBER;
2238: l_engine_input_rec fte_freight_pricing.pricing_engine_input_rec_type;
2239: l_attr_row fte_freight_pricing.pricing_attribute_rec_type;
2240: l_new_index NUMBER;
2241:
2242: l_deficit_wt NUMBER:=0;
2235: l_curr_last_idx NUMBER;
2236: l_curr_input_idx NUMBER;
2237: l_set_one_max_input_idx NUMBER;
2238: l_engine_input_rec fte_freight_pricing.pricing_engine_input_rec_type;
2239: l_attr_row fte_freight_pricing.pricing_attribute_rec_type;
2240: l_new_index NUMBER;
2241:
2242: l_deficit_wt NUMBER:=0;
2243: l_converted_def_wt NUMBER:=0;
2259: l_qp_output_dfw_detail_row QP_PREQ_GRP.LINE_DETAIL_REC_TYPE;
2260:
2261: l_deficit_wt_enabled BOOLEAN;
2262:
2263: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
2264: l_method_name VARCHAR2(50) := 'process_LTL_with_deficit_wt';
2265: BEGIN
2266:
2267: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2269: x_min_charge_comp_price := 0; -- AG 5/10 required for minimum charge with deficit wt
2270:
2271: l_deficit_wt_enabled := false;
2272:
2273: fte_freight_pricing_util.reset_dbg_vars;
2274: fte_freight_pricing_util.set_method(l_log_level,'process_LTL_with_deficit_wt');
2275: -- process deficit wt.
2276: -- prepare engine input (also make appropriate additions to original engine input rows)
2277: -- 1st Set (for y): send total_item_quantity = actual total
2270:
2271: l_deficit_wt_enabled := false;
2272:
2273: fte_freight_pricing_util.reset_dbg_vars;
2274: fte_freight_pricing_util.set_method(l_log_level,'process_LTL_with_deficit_wt');
2275: -- process deficit wt.
2276: -- prepare engine input (also make appropriate additions to original engine input rows)
2277: -- 1st Set (for y): send total_item_quantity = actual total
2278: -- 2nd Set (for x): send total_item_quantity = next wt. break
2286: x_total_wt => l_total_wt,
2287: x_wt_uom => l_total_wt_uom,
2288: x_return_status => l_return_status);
2289:
2290: fte_freight_pricing_util.set_location(p_loc=>'after get_total_shipment_weight ');
2291: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2292: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2293: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
2294: ELSE
2289:
2290: fte_freight_pricing_util.set_location(p_loc=>'after get_total_shipment_weight ');
2291: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2292: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2293: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
2294: ELSE
2295: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt = '||l_total_wt);
2296: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt_uom = '||l_total_wt_uom);
2297: END IF;
2291: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2292: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2293: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
2294: ELSE
2295: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt = '||l_total_wt);
2296: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt_uom = '||l_total_wt_uom);
2297: END IF;
2298:
2299: l_event_num := fte_qp_engine.G_LINE_EVENT_NUM;
2292: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2293: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
2294: ELSE
2295: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt = '||l_total_wt);
2296: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt_uom = '||l_total_wt_uom);
2297: END IF;
2298:
2299: l_event_num := fte_qp_engine.G_LINE_EVENT_NUM;
2300: fte_qp_engine.create_control_record(p_event_num => l_event_num,
2299: l_event_num := fte_qp_engine.G_LINE_EVENT_NUM;
2300: fte_qp_engine.create_control_record(p_event_num => l_event_num,
2301: x_return_status => l_return_status );
2302:
2303: fte_freight_pricing_util.set_location(p_loc=>'after create_control_record ');
2304: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2305: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2306: raise fte_freight_pricing_util.g_create_control_record_failed;
2307: END IF;
2302:
2303: fte_freight_pricing_util.set_location(p_loc=>'after create_control_record ');
2304: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2305: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2306: raise fte_freight_pricing_util.g_create_control_record_failed;
2307: END IF;
2308:
2309: ---- set I : actual total wt. ----
2310: l_set_num := 1;
2307: END IF;
2308:
2309: ---- set I : actual total wt. ----
2310: l_set_num := 1;
2311: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'In set = '||l_set_num);
2312: i := p_pricing_engine_rows.FIRST;
2313: IF (i IS NOT NULL) THEN
2314: LOOP
2315: fte_qp_engine.create_line_record (p_pricing_control_rec => p_pricing_control_rec,
2315: fte_qp_engine.create_line_record (p_pricing_control_rec => p_pricing_control_rec,
2316: p_pricing_engine_input_rec => p_pricing_engine_rows(i),
2317: x_return_status => l_return_status);
2318:
2319: fte_freight_pricing_util.set_location(p_loc=>'after create_line_record. i='||i);
2320: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2321: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2322: raise fte_freight_pricing_util.g_create_line_record_failed;
2323: END IF;
2318:
2319: fte_freight_pricing_util.set_location(p_loc=>'after create_line_record. i='||i);
2320: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2321: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2322: raise fte_freight_pricing_util.g_create_line_record_failed;
2323: END IF;
2324:
2325: fte_qp_engine.prepare_qp_line_qualifiers(
2326: p_event_num => l_event_num,
2327: p_pricing_control_rec => p_pricing_control_rec,
2328: p_input_index => p_pricing_engine_rows(i).input_index,
2329: x_return_status => l_return_status);
2330:
2331: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
2332: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2333: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2334: raise fte_freight_pricing_util.g_create_qualifiers_failed;
2335: END IF;
2330:
2331: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
2332: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2333: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2334: raise fte_freight_pricing_util.g_create_qualifiers_failed;
2335: END IF;
2336:
2337: fte_qp_engine.prepare_qp_line_attributes (
2338: p_event_num => l_event_num,
2339: p_input_index => p_pricing_engine_rows(i).input_index,
2340: p_attr_rows => p_pricing_attribute_rows,
2341: x_return_status => l_return_status);
2342:
2343: fte_freight_pricing_util.set_location(p_loc=>'after create qp line attributes. i='||i);
2344: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2345: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2346: raise fte_freight_pricing_util.g_create_attr_failed;
2347: END IF;
2342:
2343: fte_freight_pricing_util.set_location(p_loc=>'after create qp line attributes. i='||i);
2344: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2345: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2346: raise fte_freight_pricing_util.g_create_attr_failed;
2347: END IF;
2348: -- Now create additional attributes
2349:
2350: l_attr_rec.attribute_index := p_pricing_attribute_rows.LAST + 1;
2364: fte_qp_engine.create_attr_record (p_event_num => l_event_num,
2365: p_attr_rec => l_attr_rec,
2366: x_return_status => l_return_status);
2367:
2368: fte_freight_pricing_util.set_location(p_loc=>'after create qp line attributes. i='||i);
2369: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2370: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2371: raise fte_freight_pricing_util.g_create_attr_failed;
2372: END IF;
2367:
2368: fte_freight_pricing_util.set_location(p_loc=>'after create qp line attributes. i='||i);
2369: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2370: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2371: raise fte_freight_pricing_util.g_create_attr_failed;
2372: END IF;
2373:
2374: -- Also add it to the original pricing attribute rows;
2375: -- p_pricing_attribute_rows(p_pricing_attribute_rows.LAST + 1) := l_attr_rec;
2381:
2382: ---- set II : next break weight ----
2383: -- get the next weight break converted to the total wt uom
2384: l_set_num := 2;
2385: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'In set = '||l_set_num);
2386: fte_freight_pricing_util.print_msg(l_log_level,'get the next weight break for total_wt: '||l_total_wt||' uom: '||l_total_wt_uom);
2387: get_next_weight_break (p_total_wt => l_total_wt,
2388: p_total_wt_uom => l_total_wt_uom,
2389: x_next_weight_break => l_next_weight_break,
2382: ---- set II : next break weight ----
2383: -- get the next weight break converted to the total wt uom
2384: l_set_num := 2;
2385: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'In set = '||l_set_num);
2386: fte_freight_pricing_util.print_msg(l_log_level,'get the next weight break for total_wt: '||l_total_wt||' uom: '||l_total_wt_uom);
2387: get_next_weight_break (p_total_wt => l_total_wt,
2388: p_total_wt_uom => l_total_wt_uom,
2389: x_next_weight_break => l_next_weight_break,
2390: x_weight_break_uom => l_next_weight_break_uom,
2389: x_next_weight_break => l_next_weight_break,
2390: x_weight_break_uom => l_next_weight_break_uom,
2391: x_return_status => l_return_status);
2392:
2393: fte_freight_pricing_util.set_location(p_loc=>'after get_next_weight_break ');
2394:
2395: --IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2396: -- l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2397:
2396: -- l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2397:
2398: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2399: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2400: raise fte_freight_pricing_util.g_get_next_weight_break_failed;
2401: END IF;
2402: ELSE
2403: IF (l_next_weight_break is null OR l_next_weight_break <= 0) THEN
2404: fte_freight_pricing_util.print_msg(l_log_level,'not able to find next weight break, so do not use deficit weight pricing, continue as standard LTL.');
2400: raise fte_freight_pricing_util.g_get_next_weight_break_failed;
2401: END IF;
2402: ELSE
2403: IF (l_next_weight_break is null OR l_next_weight_break <= 0) THEN
2404: fte_freight_pricing_util.print_msg(l_log_level,'not able to find next weight break, so do not use deficit weight pricing, continue as standard LTL.');
2405: ELSE
2406: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Found applicable weight break : '||l_next_weight_break||' '||l_next_weight_break_uom);
2407: l_deficit_wt_enabled := true;
2408: END IF;
2402: ELSE
2403: IF (l_next_weight_break is null OR l_next_weight_break <= 0) THEN
2404: fte_freight_pricing_util.print_msg(l_log_level,'not able to find next weight break, so do not use deficit weight pricing, continue as standard LTL.');
2405: ELSE
2406: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Found applicable weight break : '||l_next_weight_break||' '||l_next_weight_break_uom);
2407: l_deficit_wt_enabled := true;
2408: END IF;
2409: END IF;
2410:
2410:
2411: -- Should never happen AG 05/08
2412: /*
2413: IF (l_next_weight_break = 0 OR l_next_weight_break_uom = null ) THEN
2414: raise fte_freight_pricing_util.g_weight_break_not_found;
2415: END IF;
2416: */
2417:
2418: IF l_deficit_wt_enabled THEN
2451: fte_qp_engine.create_line_record (p_pricing_control_rec => p_pricing_control_rec,
2452: p_pricing_engine_input_rec => l_engine_input_rec,
2453: x_return_status => l_return_status);
2454:
2455: fte_freight_pricing_util.set_location(p_loc=>'after create_line_record. i='||i);
2456: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2457: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2458: raise fte_freight_pricing_util.g_create_line_record_failed;
2459: END IF;
2454:
2455: fte_freight_pricing_util.set_location(p_loc=>'after create_line_record. i='||i);
2456: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2457: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2458: raise fte_freight_pricing_util.g_create_line_record_failed;
2459: END IF;
2460:
2461: --prepare qualifiers
2462: fte_qp_engine.prepare_qp_line_qualifiers(
2464: p_pricing_control_rec => p_pricing_control_rec,
2465: p_input_index => l_new_index,
2466: x_return_status => l_return_status);
2467:
2468: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
2469: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2470: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2471: raise fte_freight_pricing_util.g_create_qualifiers_failed;
2472: END IF;
2467:
2468: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
2469: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2470: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2471: raise fte_freight_pricing_util.g_create_qualifiers_failed;
2472: END IF;
2473:
2474: -- prepare attributes from the attr rows. line indexes need to be changed
2475: j := p_pricing_attribute_rows.FIRST;
2485: fte_qp_engine.create_attr_record ( p_event_num => l_event_num,
2486: p_attr_rec => l_attr_rec,
2487: x_return_status => l_return_status);
2488:
2489: fte_freight_pricing_util.set_location(p_loc=>'after create attr record . i='||i);
2490: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2491: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2492: raise fte_freight_pricing_util.g_create_attr_failed;
2493: END IF;
2488:
2489: fte_freight_pricing_util.set_location(p_loc=>'after create attr record . i='||i);
2490: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2491: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2492: raise fte_freight_pricing_util.g_create_attr_failed;
2493: END IF;
2494: END IF;
2495: EXIT WHEN j = p_pricing_attribute_rows.LAST;
2496: j := p_pricing_attribute_rows.NEXT(j);
2506: fte_qp_engine.create_attr_record( p_event_num => l_event_num,
2507: p_attr_rec => l_attr_rec,
2508: x_return_status => l_return_status);
2509:
2510: fte_freight_pricing_util.set_location(p_loc=>'after create attr record . i='||i);
2511: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2512: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2513: raise fte_freight_pricing_util.g_create_attr_failed;
2514: END IF;
2509:
2510: fte_freight_pricing_util.set_location(p_loc=>'after create attr record . i='||i);
2511: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2512: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2513: raise fte_freight_pricing_util.g_create_attr_failed;
2514: END IF;
2515:
2516: -- add other new attributes
2517: l_attr_rec.attribute_index := p_pricing_attribute_rows.LAST + 1;
2530:
2531: fte_qp_engine.create_attr_record(p_event_num => l_event_num,
2532: p_attr_rec => l_attr_rec,
2533: x_return_status => l_return_status);
2534: fte_freight_pricing_util.set_location(p_loc=>'after create attr record . i='||i);
2535: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2536: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2537: raise fte_freight_pricing_util.g_create_attr_failed;
2538: END IF;
2533: x_return_status => l_return_status);
2534: fte_freight_pricing_util.set_location(p_loc=>'after create attr record . i='||i);
2535: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2536: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2537: raise fte_freight_pricing_util.g_create_attr_failed;
2538: END IF;
2539:
2540: EXIT WHEN i >= l_curr_last_idx;
2541: i := p_pricing_engine_rows.NEXT(i);
2550: fte_qp_engine.call_qp_api ( x_qp_output_line_rows => x_qp_output_line_rows,
2551: x_qp_output_detail_rows => x_qp_output_detail_rows,
2552: x_return_status => l_return_status);
2553:
2554: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api: Event 1');
2555: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2556: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2557: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
2558: END IF;
2553:
2554: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api: Event 1');
2555: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2556: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2557: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
2558: END IF;
2559: END IF;
2560:
2561: --check for errors in the output
2559: END IF;
2560:
2561: --check for errors in the output
2562: fte_qp_engine.check_qp_output_errors (x_return_status => l_return_status);
2563: fte_freight_pricing_util.set_location(p_loc=>'after check_qp_output_errors: Event '||l_event_num);
2564: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2565: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2566: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
2567: END IF;
2562: fte_qp_engine.check_qp_output_errors (x_return_status => l_return_status);
2563: fte_freight_pricing_util.set_location(p_loc=>'after check_qp_output_errors: Event '||l_event_num);
2564: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2565: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2566: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
2567: END IF;
2568: END IF;
2569:
2570:
2581: p_wt_uom => l_deficit_wt_uom,
2582: x_commodity_price_rows => l_comm_price_rows_set1,
2583: x_return_status => l_return_status);
2584:
2585: fte_freight_pricing_util.set_location(p_loc=>'after analyse_output_for_deficit_wt. set= '||l_set_num);
2586: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2587: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2588: raise fte_freight_pricing_util.g_analyse_deficit_failed;
2589: END IF;
2584:
2585: fte_freight_pricing_util.set_location(p_loc=>'after analyse_output_for_deficit_wt. set= '||l_set_num);
2586: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2587: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2588: raise fte_freight_pricing_util.g_analyse_deficit_failed;
2589: END IF;
2590:
2591: IF l_deficit_wt_enabled THEN
2592: -- {
2596: p_wt_uom => l_deficit_wt_uom,
2597: x_commodity_price_rows => l_comm_price_rows_set2,
2598: x_return_status => l_return_status);
2599:
2600: fte_freight_pricing_util.set_location(p_loc=>'after analyse_output_for_deficit_wt. set= '||l_set_num);
2601: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2602: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2603: raise fte_freight_pricing_util.g_analyse_deficit_failed;
2604: END IF;
2599:
2600: fte_freight_pricing_util.set_location(p_loc=>'after analyse_output_for_deficit_wt. set= '||l_set_num);
2601: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2602: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2603: raise fte_freight_pricing_util.g_analyse_deficit_failed;
2604: END IF;
2605: -- }
2606: END IF; --l_deficit_wt_enabled
2607:
2618: i := l_comm_price_rows_set1.NEXT(i);
2619: END LOOP;
2620: END IF;
2621:
2622: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'y_price = '||y_price);
2623:
2624: IF l_deficit_wt_enabled THEN
2625: -- {
2626: x_price := 0;
2667: i := l_comm_price_rows_set1.NEXT(i);
2668: END LOOP;
2669: END IF;
2670:
2671: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_deficit_wt = '||l_deficit_wt);
2672: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_lowest_unit_price = '||l_lowest_unit_price);
2673:
2674: x_price := x_price + (l_deficit_wt * l_lowest_unit_price );
2675:
2668: END LOOP;
2669: END IF;
2670:
2671: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_deficit_wt = '||l_deficit_wt);
2672: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_lowest_unit_price = '||l_lowest_unit_price);
2673:
2674: x_price := x_price + (l_deficit_wt * l_lowest_unit_price );
2675:
2676: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'x_price = '||x_price);
2672: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_lowest_unit_price = '||l_lowest_unit_price);
2673:
2674: x_price := x_price + (l_deficit_wt * l_lowest_unit_price );
2675:
2676: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'x_price = '||x_price);
2677:
2678: -- }
2679: END IF; --l_deficit_wt_enabled
2680:
2680:
2681: -- now compare x_price and y_price
2682: -- TO DO : this needs to be '<' ******
2683: IF (l_deficit_wt_enabled AND x_price < y_price ) THEN
2684: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,' deficit wt got applied ');
2685: x_deficit_wt_applied := 'Y';
2686: x_min_charge_comp_price := x_price; -- AG 5/10 required for minimum charge with deficit wt
2687: -- deficit wt got applied
2688: -- select set 2, delete set 1
2686: x_min_charge_comp_price := x_price; -- AG 5/10 required for minimum charge with deficit wt
2687: -- deficit wt got applied
2688: -- select set 2, delete set 1
2689: l_set_num :=1; --set to delete
2690: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Deleting set ='||l_set_num);
2691: fte_qp_engine.delete_set_from_line_event( p_set_num => l_set_num,
2692: x_return_status => l_return_status);
2693: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
2694: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2689: l_set_num :=1; --set to delete
2690: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Deleting set ='||l_set_num);
2691: fte_qp_engine.delete_set_from_line_event( p_set_num => l_set_num,
2692: x_return_status => l_return_status);
2693: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
2694: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2695: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2696: raise fte_freight_pricing_util.g_delete_set_failed;
2697: END IF;
2692: x_return_status => l_return_status);
2693: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
2694: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2695: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2696: raise fte_freight_pricing_util.g_delete_set_failed;
2697: END IF;
2698: ELSE
2699: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,' deficit wt did not get applied ');
2700: x_deficit_wt_applied := 'N';
2695: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2696: raise fte_freight_pricing_util.g_delete_set_failed;
2697: END IF;
2698: ELSE
2699: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,' deficit wt did not get applied ');
2700: x_deficit_wt_applied := 'N';
2701: x_min_charge_comp_price := y_price; -- AG 5/10 required for minimum charge with deficit wt
2702: IF l_deficit_wt_enabled THEN
2703: -- {
2703: -- {
2704: -- select set 1, delete set 2
2705: -- no deficit wt applied
2706: l_set_num :=2; --set to delete
2707: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Deleting set ='||l_set_num);
2708: fte_qp_engine.delete_set_from_line_event( p_set_num => l_set_num,
2709: x_return_status => l_return_status);
2710: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
2711: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2706: l_set_num :=2; --set to delete
2707: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'Deleting set ='||l_set_num);
2708: fte_qp_engine.delete_set_from_line_event( p_set_num => l_set_num,
2709: x_return_status => l_return_status);
2710: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
2711: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2712: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2713: raise fte_freight_pricing_util.g_delete_set_failed;
2714: END IF;
2709: x_return_status => l_return_status);
2710: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
2711: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2712: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2713: raise fte_freight_pricing_util.g_delete_set_failed;
2714: END IF;
2715:
2716: -- }
2717: END IF; --l_deficit_wt_enabled
2732: -- and the unit price is 30 / Lbs, and the deficit wt. for the shipment is 100 Lbs
2733: -- then the adjustment amount becomes 30 * (100/300) / Lbs
2734: -- Also adjustment amount should be in priced_uom
2735:
2736: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'deficit wt uom : '||l_deficit_wt_uom);
2737: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'lowest priced uom : '||l_lowest_up_priced_uom);
2738: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'lowest priced qty : '||l_lowest_up_tot_qty);
2739:
2740: IF l_deficit_wt_uom <> l_lowest_up_priced_uom THEN
2733: -- then the adjustment amount becomes 30 * (100/300) / Lbs
2734: -- Also adjustment amount should be in priced_uom
2735:
2736: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'deficit wt uom : '||l_deficit_wt_uom);
2737: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'lowest priced uom : '||l_lowest_up_priced_uom);
2738: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'lowest priced qty : '||l_lowest_up_tot_qty);
2739:
2740: IF l_deficit_wt_uom <> l_lowest_up_priced_uom THEN
2741: l_converted_def_wt := WSH_WV_UTILS.convert_uom(l_deficit_wt_uom,
2734: -- Also adjustment amount should be in priced_uom
2735:
2736: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'deficit wt uom : '||l_deficit_wt_uom);
2737: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'lowest priced uom : '||l_lowest_up_priced_uom);
2738: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'lowest priced qty : '||l_lowest_up_tot_qty);
2739:
2740: IF l_deficit_wt_uom <> l_lowest_up_priced_uom THEN
2741: l_converted_def_wt := WSH_WV_UTILS.convert_uom(l_deficit_wt_uom,
2742: l_lowest_up_priced_uom,
2741: l_converted_def_wt := WSH_WV_UTILS.convert_uom(l_deficit_wt_uom,
2742: l_lowest_up_priced_uom,
2743: l_deficit_wt,
2744: 0); -- Within same UOM class
2745: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'converted def wt : '||l_converted_def_wt);
2746: --l_adjustment_amount := l_lowest_unit_price*(l_deficit_wt/l_lowest_up_tot_qty)*(l_deficit_wt/l_converted_def_wt);
2747: l_adjustment_amount := l_lowest_unit_price*(l_deficit_wt/l_lowest_up_line_priced_qty)*(l_deficit_wt/l_converted_def_wt); -- xizhang 11/22/02
2748:
2749: ELSE
2750: --l_adjustment_amount := l_lowest_unit_price*(l_deficit_wt/l_lowest_up_tot_qty);
2751: l_adjustment_amount := l_lowest_unit_price*(l_deficit_wt/l_lowest_up_line_priced_qty); -- xizhang 11/22/02
2752:
2753: END IF;
2754: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'def wt adjustment_amount : '||l_adjustment_amount);
2755:
2756:
2757: FTE_QP_ENGINE.add_qp_output_detail(
2758: p_line_index => l_lowest_up_line_index,
2762: x_return_status => l_return_status);
2763:
2764: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2765: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2766: raise fte_freight_pricing_util.g_add_qp_output_detail_failed;
2767: END IF;
2768: END IF;
2769:
2770: -- TO DO : check that we are assigning x_ at the end everywhere
2774: x_return_status => l_return_status);
2775:
2776: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2777: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2778: raise fte_freight_pricing_util.g_get_qp_output_failed;
2779: END IF;
2780:
2781: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2782: EXCEPTION
2777: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2778: raise fte_freight_pricing_util.g_get_qp_output_failed;
2779: END IF;
2780:
2781: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2782: EXCEPTION
2783: WHEN fte_freight_pricing_util.g_add_qp_output_detail_failed THEN
2784: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2785: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_add_qp_output_detail_failed');
2779: END IF;
2780:
2781: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2782: EXCEPTION
2783: WHEN fte_freight_pricing_util.g_add_qp_output_detail_failed THEN
2784: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2785: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_add_qp_output_detail_failed');
2786: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2787: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
2781: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2782: EXCEPTION
2783: WHEN fte_freight_pricing_util.g_add_qp_output_detail_failed THEN
2784: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2785: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_add_qp_output_detail_failed');
2786: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2787: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
2788: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2789: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
2782: EXCEPTION
2783: WHEN fte_freight_pricing_util.g_add_qp_output_detail_failed THEN
2784: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2785: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_add_qp_output_detail_failed');
2786: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2787: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
2788: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2789: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
2790: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2783: WHEN fte_freight_pricing_util.g_add_qp_output_detail_failed THEN
2784: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2785: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_add_qp_output_detail_failed');
2786: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2787: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
2788: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2789: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
2790: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2791: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
2785: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_add_qp_output_detail_failed');
2786: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2787: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
2788: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2789: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
2790: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2791: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
2792: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2793: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
2786: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2787: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
2788: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2789: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
2790: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2791: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
2792: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2793: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
2794: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2787: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
2788: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2789: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
2790: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2791: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
2792: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2793: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
2794: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2795: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
2789: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
2790: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2791: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
2792: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2793: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
2794: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2795: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
2796: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2797: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
2790: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2791: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
2792: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2793: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
2794: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2795: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
2796: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2797: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
2798: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2791: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
2792: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2793: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
2794: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2795: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
2796: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2797: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
2798: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2799: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
2793: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
2794: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2795: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
2796: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2797: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
2798: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2799: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
2800: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2801: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
2794: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2795: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
2796: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2797: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
2798: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2799: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
2800: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2801: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
2802: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2795: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
2796: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2797: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
2798: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2799: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
2800: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2801: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
2802: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2803: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
2797: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
2798: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2799: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
2800: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2801: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
2802: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2803: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
2804: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2805: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
2798: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2799: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
2800: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2801: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
2802: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2803: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
2804: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2805: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
2806: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2799: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
2800: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2801: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
2802: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2803: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
2804: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2805: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
2806: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2807: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
2801: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
2802: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2803: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
2804: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2805: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
2806: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2807: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
2808: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2809: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
2802: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2803: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
2804: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2805: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
2806: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2807: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
2808: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2809: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
2810: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2803: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
2804: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2805: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
2806: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2807: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
2808: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2809: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
2810: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2811: WHEN fte_freight_pricing_util.g_analyse_deficit_failed THEN
2805: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
2806: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2807: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
2808: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2809: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
2810: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2811: WHEN fte_freight_pricing_util.g_analyse_deficit_failed THEN
2812: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2813: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_analyse_deficit_failed');
2806: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2807: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
2808: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2809: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
2810: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2811: WHEN fte_freight_pricing_util.g_analyse_deficit_failed THEN
2812: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2813: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_analyse_deficit_failed');
2814: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2807: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
2808: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2809: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
2810: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2811: WHEN fte_freight_pricing_util.g_analyse_deficit_failed THEN
2812: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2813: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_analyse_deficit_failed');
2814: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2815: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
2809: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
2810: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2811: WHEN fte_freight_pricing_util.g_analyse_deficit_failed THEN
2812: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2813: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_analyse_deficit_failed');
2814: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2815: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
2816: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2817: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
2810: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2811: WHEN fte_freight_pricing_util.g_analyse_deficit_failed THEN
2812: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2813: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_analyse_deficit_failed');
2814: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2815: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
2816: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2817: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
2818: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2811: WHEN fte_freight_pricing_util.g_analyse_deficit_failed THEN
2812: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2813: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_analyse_deficit_failed');
2814: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2815: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
2816: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2817: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
2818: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2819: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
2813: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_analyse_deficit_failed');
2814: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2815: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
2816: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2817: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
2818: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2819: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
2820: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2821: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
2814: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2815: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
2816: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2817: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
2818: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2819: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
2820: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2821: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
2822: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2815: WHEN fte_freight_pricing_util.g_weight_break_not_found THEN
2816: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2817: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
2818: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2819: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
2820: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2821: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
2822: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2823: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
2817: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_weight_break_not_found');
2818: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2819: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
2820: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2821: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
2822: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2823: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
2824: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2825: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
2818: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2819: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
2820: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2821: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
2822: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2823: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
2824: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2825: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
2826: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2819: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
2820: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2821: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
2822: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2823: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
2824: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2825: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
2826: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2827: WHEN others THEN
2821: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
2822: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2823: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
2824: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2825: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
2826: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2827: WHEN others THEN
2828: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2829: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2822: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2823: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
2824: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2825: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
2826: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2827: WHEN others THEN
2828: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2829: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2830: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2825: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
2826: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2827: WHEN others THEN
2828: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2829: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2830: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2831: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2832:
2833: END process_LTL_with_deficit_wt;
2826: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2827: WHEN others THEN
2828: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2829: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2830: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2831: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2832:
2833: END process_LTL_with_deficit_wt;
2834:
2827: WHEN others THEN
2828: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2829: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
2830: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2831: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL_with_deficit_wt');
2832:
2833: END process_LTL_with_deficit_wt;
2834:
2835: -- post process for LTL, parcel and others
2840: PROCEDURE post_process(
2841: p_event_num IN NUMBER,
2842: p_set_num IN NUMBER,
2843: p_comp_with_price IN NUMBER DEFAULT NULL,
2844: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2845: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2846: x_qp_output_line_rows IN OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
2847: x_qp_output_detail_rows IN OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
2848: x_return_status OUT NOCOPY VARCHAR2 )
2841: p_event_num IN NUMBER,
2842: p_set_num IN NUMBER,
2843: p_comp_with_price IN NUMBER DEFAULT NULL,
2844: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2845: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2846: x_qp_output_line_rows IN OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
2847: x_qp_output_detail_rows IN OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
2848: x_return_status OUT NOCOPY VARCHAR2 )
2849: IS
2849: IS
2850: l_event_num NUMBER;
2851: l_charge_applied VARCHAR2(1);
2852: l_return_status VARCHAR2(1);
2853: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
2854: l_method_name VARCHAR2(50) := 'post_process';
2855: BEGIN
2856: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2857: fte_freight_pricing_util.reset_dbg_vars;
2853: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
2854: l_method_name VARCHAR2(50) := 'post_process';
2855: BEGIN
2856: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2857: fte_freight_pricing_util.reset_dbg_vars;
2858: fte_freight_pricing_util.set_method(l_log_level,l_method_name);
2859:
2860: --call resolve pricing objective here --
2861: fte_freight_pricing.resolve_pricing_objective(
2854: l_method_name VARCHAR2(50) := 'post_process';
2855: BEGIN
2856: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2857: fte_freight_pricing_util.reset_dbg_vars;
2858: fte_freight_pricing_util.set_method(l_log_level,l_method_name);
2859:
2860: --call resolve pricing objective here --
2861: fte_freight_pricing.resolve_pricing_objective(
2862: p_pricing_dual_instances =>p_pricing_dual_instances,
2857: fte_freight_pricing_util.reset_dbg_vars;
2858: fte_freight_pricing_util.set_method(l_log_level,l_method_name);
2859:
2860: --call resolve pricing objective here --
2861: fte_freight_pricing.resolve_pricing_objective(
2862: p_pricing_dual_instances =>p_pricing_dual_instances,
2863: x_pricing_engine_input =>p_pricing_engine_rows,
2864: x_qp_output_line_rows =>x_qp_output_line_rows,
2865: x_qp_output_line_details =>x_qp_output_detail_rows,
2864: x_qp_output_line_rows =>x_qp_output_line_rows,
2865: x_qp_output_line_details =>x_qp_output_detail_rows,
2866: x_return_status =>l_return_status);
2867:
2868: fte_freight_pricing_util.set_location(p_loc=>'after resolve_pricing_objective');
2869: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2870: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2871: raise fte_freight_pricing_util.g_resolve_pricing_objective;
2872: END IF;
2867:
2868: fte_freight_pricing_util.set_location(p_loc=>'after resolve_pricing_objective');
2869: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2870: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2871: raise fte_freight_pricing_util.g_resolve_pricing_objective;
2872: END IF;
2873:
2874: -- apply min charge
2875: -- prepare second qp call
2884: p_comp_with_price => p_comp_with_price,
2885: x_charge_applied => l_charge_applied,
2886: x_return_status => l_return_status);
2887:
2888: fte_freight_pricing_util.set_location(p_loc=>'after apply_min_charge ');
2889: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2890: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2891: raise fte_freight_pricing_util.g_apply_min_charge;
2892: END IF;
2887:
2888: fte_freight_pricing_util.set_location(p_loc=>'after apply_min_charge ');
2889: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2890: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2891: raise fte_freight_pricing_util.g_apply_min_charge;
2892: END IF;
2893: END IF;
2894:
2895: -- create request lines for the next event and call qp engine
2896: IF (l_charge_applied = 'Y') THEN
2897: l_event_num := fte_qp_engine.G_CHARGE_EVENT_NUM;
2898: fte_qp_engine.prepare_next_event_request ( x_return_status => l_return_status);
2899:
2900: fte_freight_pricing_util.set_location(p_loc=>'after prepare_next_event_request');
2901: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2902: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2903: raise fte_freight_pricing_util.g_prepare_next_event_failed;
2904: END IF;
2899:
2900: fte_freight_pricing_util.set_location(p_loc=>'after prepare_next_event_request');
2901: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
2902: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
2903: raise fte_freight_pricing_util.g_prepare_next_event_failed;
2904: END IF;
2905:
2906: fte_qp_engine.call_qp_api ( x_qp_output_line_rows => x_qp_output_line_rows,
2907: x_qp_output_detail_rows => x_qp_output_detail_rows,
2906: fte_qp_engine.call_qp_api ( x_qp_output_line_rows => x_qp_output_line_rows,
2907: x_qp_output_detail_rows => x_qp_output_detail_rows,
2908: x_return_status => l_return_status);
2909:
2910: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api: Event 2');
2911: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2912: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2913: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
2914: END IF;
2909:
2910: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api: Event 2');
2911: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2912: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2913: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
2914: END IF;
2915: END IF;
2916:
2917: --check for errors in the output
2915: END IF;
2916:
2917: --check for errors in the output
2918: fte_qp_engine.check_qp_output_errors (x_return_status => l_return_status);
2919: fte_freight_pricing_util.set_location(p_loc=>'after check_qp_output_errors: Event '||l_event_num);
2920: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2921: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2922: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
2923: END IF;
2918: fte_qp_engine.check_qp_output_errors (x_return_status => l_return_status);
2919: fte_freight_pricing_util.set_location(p_loc=>'after check_qp_output_errors: Event '||l_event_num);
2920: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2921: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2922: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
2923: END IF;
2924: END IF;
2925:
2926: END IF;
2924: END IF;
2925:
2926: END IF;
2927:
2928: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2929: EXCEPTION
2930: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
2931: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2932: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
2926: END IF;
2927:
2928: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2929: EXCEPTION
2930: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
2931: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2932: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
2933: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2934: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
2928: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2929: EXCEPTION
2930: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
2931: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2932: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
2933: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2934: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
2935: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2936: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
2929: EXCEPTION
2930: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
2931: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2932: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
2933: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2934: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
2935: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2936: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
2937: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2930: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
2931: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2932: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
2933: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2934: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
2935: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2936: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
2937: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2938: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
2932: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
2933: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2934: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
2935: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2936: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
2937: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2938: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
2939: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2940: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
2933: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2934: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
2935: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2936: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
2937: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2938: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
2939: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2940: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
2941: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2934: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
2935: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2936: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
2937: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2938: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
2939: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2940: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
2941: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2942: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
2936: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
2937: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2938: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
2939: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2940: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
2941: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2942: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
2943: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2944: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
2937: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2938: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
2939: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2940: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
2941: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2942: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
2943: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2944: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
2945: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2938: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
2939: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2940: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
2941: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2942: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
2943: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2944: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
2945: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2946: WHEN others THEN
2940: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
2941: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2942: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
2943: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2944: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
2945: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2946: WHEN others THEN
2947: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2948: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,l_log_level,'g_others');
2941: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2942: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
2943: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2944: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
2945: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2946: WHEN others THEN
2947: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2948: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,l_log_level,'g_others');
2949: FTE_FREIGHT_PRICING_UTIL.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2944: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
2945: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2946: WHEN others THEN
2947: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2948: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,l_log_level,'g_others');
2949: FTE_FREIGHT_PRICING_UTIL.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2950: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2951: END post_process;
2952:
2945: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2946: WHEN others THEN
2947: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2948: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,l_log_level,'g_others');
2949: FTE_FREIGHT_PRICING_UTIL.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2950: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2951: END post_process;
2952:
2953: -- This is called for LTL
2946: WHEN others THEN
2947: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2948: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,l_log_level,'g_others');
2949: FTE_FREIGHT_PRICING_UTIL.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
2950: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
2951: END post_process;
2952:
2953: -- This is called for LTL
2954: PROCEDURE process_LTL (
2951: END post_process;
2952:
2953: -- This is called for LTL
2954: PROCEDURE process_LTL (
2955: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
2956: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
2957: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2958: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2959: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
2952:
2953: -- This is called for LTL
2954: PROCEDURE process_LTL (
2955: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
2956: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
2957: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2958: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2959: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
2960: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
2953: -- This is called for LTL
2954: PROCEDURE process_LTL (
2955: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
2956: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
2957: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2958: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2959: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
2960: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
2961: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
2954: PROCEDURE process_LTL (
2955: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
2956: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
2957: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2958: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2959: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
2960: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
2961: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
2962: x_qp_output_detail_rows OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
2955: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
2956: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
2957: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2958: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2959: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
2960: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
2961: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
2962: x_qp_output_detail_rows OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
2963: x_return_status OUT NOCOPY VARCHAR2 )
2956: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
2957: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
2958: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
2959: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
2960: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
2961: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
2962: x_qp_output_detail_rows OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
2963: x_return_status OUT NOCOPY VARCHAR2 )
2964: IS
2967: l_total_wt_uom VARCHAR2(30);
2968: l_event_num NUMBER;
2969: l_set_num NUMBER;
2970: i NUMBER;
2971: l_attr_rec fte_freight_pricing.pricing_attribute_rec_type;
2972: l_temp_wt NUMBER;
2973: l_charge_applied VARCHAR2(1);
2974: l_deficit_wt_applied VARCHAR2(1);
2975: l_min_charge_comp_price NUMBER := NULL;
2972: l_temp_wt NUMBER;
2973: l_charge_applied VARCHAR2(1);
2974: l_deficit_wt_applied VARCHAR2(1);
2975: l_min_charge_comp_price NUMBER := NULL;
2976: l_log_level NUMBER := fte_freight_pricing_util.G_LOG;
2977: l_method_name VARCHAR2(50) := 'process_LTL';
2978:
2979: --- Local Module ----
2980: -- This procedure is to be called by process_LTL to check if we shipment satisfies conditions for LTL
2977: l_method_name VARCHAR2(50) := 'process_LTL';
2978:
2979: --- Local Module ----
2980: -- This procedure is to be called by process_LTL to check if we shipment satisfies conditions for LTL
2981: FUNCTION check_LTL_eligible (p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type)
2982: RETURN VARCHAR2
2983: IS
2984: i NUMBER;
2985: ret_value VARCHAR2(30);
2982: RETURN VARCHAR2
2983: IS
2984: i NUMBER;
2985: ret_value VARCHAR2(30);
2986: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
2987: BEGIN
2988: fte_freight_pricing_util.set_method(l_log_level,'check_LTL_eligible');
2989: ret_value := 'Y'; -- Y = OK, N = NO OK
2990: i := p_pattern_rows.FIRST;
2984: i NUMBER;
2985: ret_value VARCHAR2(30);
2986: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
2987: BEGIN
2988: fte_freight_pricing_util.set_method(l_log_level,'check_LTL_eligible');
2989: ret_value := 'Y'; -- Y = OK, N = NO OK
2990: i := p_pattern_rows.FIRST;
2991: IF (i IS NOT NULL) THEN
2992: LOOP
2990: i := p_pattern_rows.FIRST;
2991: IF (i IS NOT NULL) THEN
2992: LOOP
2993: --only SC_WB and MC_WB are ok for LTL
2994: --IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
2995: -- OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5 ) THEN
2996: -- loose items now have patterns too
2997: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
2998: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
2991: IF (i IS NOT NULL) THEN
2992: LOOP
2993: --only SC_WB and MC_WB are ok for LTL
2994: --IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
2995: -- OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5 ) THEN
2996: -- loose items now have patterns too
2997: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
2998: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
2999: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_9
2993: --only SC_WB and MC_WB are ok for LTL
2994: --IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
2995: -- OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5 ) THEN
2996: -- loose items now have patterns too
2997: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
2998: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
2999: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_9
3000: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_10 ) THEN
3001: ret_value := 'N';
2994: --IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
2995: -- OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5 ) THEN
2996: -- loose items now have patterns too
2997: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
2998: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
2999: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_9
3000: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_10 ) THEN
3001: ret_value := 'N';
3002: END IF;
2995: -- OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5 ) THEN
2996: -- loose items now have patterns too
2997: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
2998: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
2999: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_9
3000: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_10 ) THEN
3001: ret_value := 'N';
3002: END IF;
3003: EXIT WHEN ( i >= p_pattern_rows.LAST OR ret_value = 'N');
2996: -- loose items now have patterns too
2997: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
2998: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
2999: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_9
3000: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_10 ) THEN
3001: ret_value := 'N';
3002: END IF;
3003: EXIT WHEN ( i >= p_pattern_rows.LAST OR ret_value = 'N');
3004: i := p_pattern_rows.NEXT(i);
3003: EXIT WHEN ( i >= p_pattern_rows.LAST OR ret_value = 'N');
3004: i := p_pattern_rows.NEXT(i);
3005: END LOOP;
3006: END IF;
3007: fte_freight_pricing_util.unset_method(l_log_level,'check_LTL_eligible');
3008: RETURN ret_value;
3009: END check_LTL_eligible;
3010:
3011: --- End Local Module --
3023: -- call qp engine
3024: -- any post processing
3025: -- return control to main code
3026: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3027: fte_freight_pricing_util.reset_dbg_vars;
3028: fte_freight_pricing_util.set_method(l_log_level,'process_LTL');
3029:
3030: -- Its ok for loose items not to have pattern rows. And loose items should always be eligible for LTL
3031: IF (p_pattern_rows.COUNT >0) THEN
3024: -- any post processing
3025: -- return control to main code
3026: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3027: fte_freight_pricing_util.reset_dbg_vars;
3028: fte_freight_pricing_util.set_method(l_log_level,'process_LTL');
3029:
3030: -- Its ok for loose items not to have pattern rows. And loose items should always be eligible for LTL
3031: IF (p_pattern_rows.COUNT >0) THEN
3032: IF ( check_LTL_eligible (p_pattern_rows) = 'N') THEN
3029:
3030: -- Its ok for loose items not to have pattern rows. And loose items should always be eligible for LTL
3031: IF (p_pattern_rows.COUNT >0) THEN
3032: IF ( check_LTL_eligible (p_pattern_rows) = 'N') THEN
3033: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'LTL Not eligible');
3034: raise fte_freight_pricing_util.g_not_eligible_for_LTL;
3035: END IF;
3036: END IF;
3037:
3030: -- Its ok for loose items not to have pattern rows. And loose items should always be eligible for LTL
3031: IF (p_pattern_rows.COUNT >0) THEN
3032: IF ( check_LTL_eligible (p_pattern_rows) = 'N') THEN
3033: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'LTL Not eligible');
3034: raise fte_freight_pricing_util.g_not_eligible_for_LTL;
3035: END IF;
3036: END IF;
3037:
3038:
3061: x_qp_output_detail_rows => x_qp_output_detail_rows,
3062: x_return_status => l_return_status);
3063:
3064:
3065: fte_freight_pricing_util.set_location(p_loc=>'after process_LTL_with_deficit_wt ');
3066: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3067: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3068: raise fte_freight_pricing_util.g_process_LTL_deficit_failed;
3069: END IF;
3064:
3065: fte_freight_pricing_util.set_location(p_loc=>'after process_LTL_with_deficit_wt ');
3066: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3067: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3068: raise fte_freight_pricing_util.g_process_LTL_deficit_failed;
3069: END IF;
3070: IF nvl(l_deficit_wt_applied,'N') = 'Y' THEN
3071: l_set_num := 2;
3072: END IF;
3072: END IF;
3073:
3074: ELSE
3075:
3076: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'===> Running Standard LTL ');
3077:
3078: -- get total shipment wt. Should take care of conversions.
3079: get_total_shipment_weight (p_top_level_rows => p_top_level_rows,
3080: x_total_wt => l_total_wt,
3080: x_total_wt => l_total_wt,
3081: x_wt_uom => l_total_wt_uom,
3082: x_return_status => l_return_status);
3083:
3084: fte_freight_pricing_util.set_location(p_loc=>'after get_total_shipment_weight ');
3085: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3086: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3087: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
3088: ELSE
3083:
3084: fte_freight_pricing_util.set_location(p_loc=>'after get_total_shipment_weight ');
3085: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3086: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3087: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
3088: ELSE
3089: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt = '||l_total_wt);
3090: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt_uom = '||l_total_wt_uom);
3091: END IF;
3085: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3086: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3087: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
3088: ELSE
3089: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt = '||l_total_wt);
3090: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt_uom = '||l_total_wt_uom);
3091: END IF;
3092:
3093:
3086: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3087: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
3088: ELSE
3089: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt = '||l_total_wt);
3090: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt_uom = '||l_total_wt_uom);
3091: END IF;
3092:
3093:
3094: -- standard LTL
3106: fte_qp_engine.create_line_record (p_pricing_control_rec => p_pricing_control_rec,
3107: p_pricing_engine_input_rec => p_pricing_engine_rows(i),
3108: x_return_status => l_return_status);
3109:
3110: fte_freight_pricing_util.set_location(p_loc=>'after create_control_record ');
3111: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3112: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3113: raise fte_freight_pricing_util.g_create_control_record_failed;
3114: END IF;
3109:
3110: fte_freight_pricing_util.set_location(p_loc=>'after create_control_record ');
3111: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3112: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3113: raise fte_freight_pricing_util.g_create_control_record_failed;
3114: END IF;
3115:
3116:
3117: fte_qp_engine.prepare_qp_line_qualifiers(
3119: p_pricing_control_rec => p_pricing_control_rec,
3120: p_input_index => p_pricing_engine_rows(i).input_index,
3121: x_return_status => l_return_status);
3122:
3123: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
3124: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3125: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3126: raise fte_freight_pricing_util.g_create_qualifiers_failed;
3127: END IF;
3122:
3123: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
3124: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3125: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3126: raise fte_freight_pricing_util.g_create_qualifiers_failed;
3127: END IF;
3128:
3129: fte_qp_engine.prepare_qp_line_attributes (
3130: p_event_num => l_event_num,
3131: p_input_index => p_pricing_engine_rows(i).input_index,
3132: p_attr_rows => p_pricing_attribute_rows,
3133: x_return_status => l_return_status);
3134:
3135: fte_freight_pricing_util.set_location(p_loc=>'after create qp line attributes. i='||i);
3136: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3137: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3138: raise fte_freight_pricing_util.g_create_attr_failed;
3139: END IF;
3134:
3135: fte_freight_pricing_util.set_location(p_loc=>'after create qp line attributes. i='||i);
3136: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3137: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3138: raise fte_freight_pricing_util.g_create_attr_failed;
3139: END IF;
3140:
3141: -- Now create additional attributes
3142:
3157: fte_qp_engine.create_attr_record(p_event_num => l_event_num,
3158: p_attr_rec => l_attr_rec,
3159: x_return_status => l_return_status);
3160:
3161: fte_freight_pricing_util.set_location(p_loc=>'after create attr record i='||i);
3162: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3163: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3164: raise fte_freight_pricing_util.g_create_attr_failed;
3165: END IF;
3160:
3161: fte_freight_pricing_util.set_location(p_loc=>'after create attr record i='||i);
3162: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3163: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3164: raise fte_freight_pricing_util.g_create_attr_failed;
3165: END IF;
3166:
3167: -- Also add it to the original pricing attribute rows;
3168: p_pricing_attribute_rows(p_pricing_attribute_rows.LAST + 1) := l_attr_rec;
3177: fte_qp_engine.call_qp_api ( x_qp_output_line_rows => x_qp_output_line_rows,
3178: x_qp_output_detail_rows => x_qp_output_detail_rows,
3179: x_return_status => l_return_status);
3180:
3181: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api: Event 1');
3182: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
3183: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
3184: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
3185: END IF;
3180:
3181: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api: Event 1');
3182: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
3183: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
3184: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
3185: END IF;
3186: END IF;
3187:
3188: --check for errors in the output
3186: END IF;
3187:
3188: --check for errors in the output
3189: fte_qp_engine.check_qp_output_errors (x_return_status => l_return_status);
3190: fte_freight_pricing_util.set_location(p_loc=>'after check_qp_output_errors: Event '||l_event_num);
3191: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
3192: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
3193: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
3194: END IF;
3189: fte_qp_engine.check_qp_output_errors (x_return_status => l_return_status);
3190: fte_freight_pricing_util.set_location(p_loc=>'after check_qp_output_errors: Event '||l_event_num);
3191: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
3192: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
3193: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
3194: END IF;
3195: END IF;
3196:
3197: END IF; -- standard LTL
3205: x_qp_output_line_rows => x_qp_output_line_rows,
3206: x_qp_output_detail_rows => x_qp_output_detail_rows,
3207: x_return_status => l_return_status);
3208:
3209: fte_freight_pricing_util.set_location(p_loc=>'after post_process');
3210: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3211: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3212: raise fte_freight_pricing_util.g_post_process_failed;
3213: END IF;
3208:
3209: fte_freight_pricing_util.set_location(p_loc=>'after post_process');
3210: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3211: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3212: raise fte_freight_pricing_util.g_post_process_failed;
3213: END IF;
3214:
3215: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3216: EXCEPTION
3211: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3212: raise fte_freight_pricing_util.g_post_process_failed;
3213: END IF;
3214:
3215: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3216: EXCEPTION
3217: WHEN fte_freight_pricing_util.g_post_process_failed THEN
3218: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3219: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
3213: END IF;
3214:
3215: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3216: EXCEPTION
3217: WHEN fte_freight_pricing_util.g_post_process_failed THEN
3218: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3219: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
3220: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
3221: WHEN fte_freight_pricing_util.g_not_eligible_for_LTL THEN
3215: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3216: EXCEPTION
3217: WHEN fte_freight_pricing_util.g_post_process_failed THEN
3218: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3219: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
3220: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
3221: WHEN fte_freight_pricing_util.g_not_eligible_for_LTL THEN
3222: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3223: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_not_eligible_for_LTL') ;
3216: EXCEPTION
3217: WHEN fte_freight_pricing_util.g_post_process_failed THEN
3218: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3219: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
3220: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
3221: WHEN fte_freight_pricing_util.g_not_eligible_for_LTL THEN
3222: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3223: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_not_eligible_for_LTL') ;
3224: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3217: WHEN fte_freight_pricing_util.g_post_process_failed THEN
3218: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3219: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
3220: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
3221: WHEN fte_freight_pricing_util.g_not_eligible_for_LTL THEN
3222: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3223: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_not_eligible_for_LTL') ;
3224: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3225: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
3219: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
3220: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
3221: WHEN fte_freight_pricing_util.g_not_eligible_for_LTL THEN
3222: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3223: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_not_eligible_for_LTL') ;
3224: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3225: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
3226: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3227: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
3220: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
3221: WHEN fte_freight_pricing_util.g_not_eligible_for_LTL THEN
3222: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3223: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_not_eligible_for_LTL') ;
3224: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3225: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
3226: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3227: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
3228: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3221: WHEN fte_freight_pricing_util.g_not_eligible_for_LTL THEN
3222: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3223: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_not_eligible_for_LTL') ;
3224: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3225: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
3226: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3227: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
3228: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3229: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
3223: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_not_eligible_for_LTL') ;
3224: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3225: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
3226: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3227: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
3228: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3229: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
3230: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3231: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
3224: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3225: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
3226: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3227: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
3228: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3229: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
3230: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3231: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
3232: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3225: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
3226: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3227: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
3228: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3229: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
3230: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3231: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
3232: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3233: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
3227: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
3228: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3229: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
3230: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3231: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
3232: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3233: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
3234: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3235: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
3228: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3229: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
3230: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3231: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
3232: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3233: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
3234: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3235: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
3236: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3229: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
3230: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3231: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
3232: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3233: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
3234: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3235: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
3236: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3237: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
3231: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
3232: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3233: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
3234: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3235: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
3236: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3237: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
3238: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3239: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
3232: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3233: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
3234: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3235: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
3236: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3237: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
3238: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3239: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
3240: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3233: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
3234: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3235: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
3236: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3237: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
3238: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3239: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
3240: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3241: WHEN fte_freight_pricing_util.g_process_LTL_deficit_failed THEN
3235: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
3236: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3237: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
3238: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3239: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
3240: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3241: WHEN fte_freight_pricing_util.g_process_LTL_deficit_failed THEN
3242: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3243: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_deficit_failed');
3236: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3237: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
3238: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3239: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
3240: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3241: WHEN fte_freight_pricing_util.g_process_LTL_deficit_failed THEN
3242: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3243: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_deficit_failed');
3244: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3237: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
3238: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3239: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
3240: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3241: WHEN fte_freight_pricing_util.g_process_LTL_deficit_failed THEN
3242: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3243: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_deficit_failed');
3244: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3245: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
3239: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
3240: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3241: WHEN fte_freight_pricing_util.g_process_LTL_deficit_failed THEN
3242: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3243: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_deficit_failed');
3244: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3245: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
3246: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3247: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
3240: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3241: WHEN fte_freight_pricing_util.g_process_LTL_deficit_failed THEN
3242: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3243: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_deficit_failed');
3244: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3245: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
3246: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3247: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
3248: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3241: WHEN fte_freight_pricing_util.g_process_LTL_deficit_failed THEN
3242: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3243: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_deficit_failed');
3244: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3245: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
3246: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3247: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
3248: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3249: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
3243: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_deficit_failed');
3244: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3245: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
3246: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3247: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
3248: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3249: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
3250: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3251: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
3244: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3245: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
3246: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3247: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
3248: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3249: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
3250: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3251: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
3252: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3245: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
3246: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3247: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
3248: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3249: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
3250: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3251: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
3252: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3253: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
3247: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
3248: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3249: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
3250: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3251: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
3252: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3253: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
3254: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3255: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
3248: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3249: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
3250: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3251: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
3252: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3253: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
3254: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3255: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
3256: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3249: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
3250: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3251: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
3252: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3253: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
3254: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3255: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
3256: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3257: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
3251: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
3252: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3253: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
3254: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3255: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
3256: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3257: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
3258: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3259: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
3252: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3253: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
3254: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3255: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
3256: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3257: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
3258: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3259: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
3260: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3253: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
3254: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3255: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
3256: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3257: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
3258: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3259: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
3260: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3261: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
3255: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
3256: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3257: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
3258: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3259: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
3260: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3261: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
3262: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3263: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
3256: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3257: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
3258: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3259: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
3260: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3261: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
3262: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3263: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
3264: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3257: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
3258: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3259: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
3260: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3261: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
3262: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3263: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
3264: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3265: WHEN others THEN
3259: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
3260: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3261: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
3262: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3263: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
3264: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3265: WHEN others THEN
3266: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3267: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
3260: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3261: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
3262: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3263: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
3264: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3265: WHEN others THEN
3266: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3267: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
3268: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3263: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
3264: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3265: WHEN others THEN
3266: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3267: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
3268: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3269: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3270:
3271: END process_LTL;
3264: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3265: WHEN others THEN
3266: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3267: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
3268: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3269: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3270:
3271: END process_LTL;
3272:
3265: WHEN others THEN
3266: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3267: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
3268: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3269: fte_freight_pricing_util.unset_method(l_log_level,'process_LTL');
3270:
3271: END process_LTL;
3272:
3273: PROCEDURE print_rolledup_lines (
3270:
3271: END process_LTL;
3272:
3273: PROCEDURE print_rolledup_lines (
3274: p_rolledup_lines IN fte_freight_pricing.rolledup_line_tab_type,
3275: x_return_status OUT NOCOPY VARCHAR2 )
3276: IS
3277:
3278: i NUMBER:=0;
3281:
3282: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3283:
3284: IF p_rolledup_lines.COUNT > 0 THEN
3285: FTE_FREIGHT_PRICING_UTIL.print_tag(p_msg => '
3287: LOOP
3288:
3289: FTE_FREIGHT_PRICING_UTIL.print_msg(p_msg => 'delivery_detail_id : '||p_rolledup_lines(i).delivery_detail_id||' category_id : '||p_rolledup_lines(i).category_id||' rate_basis : '||
3285: FTE_FREIGHT_PRICING_UTIL.print_tag(p_msg => '
3286: i := p_rolledup_lines.FIRST;
3287: LOOP
3288:
3289: FTE_FREIGHT_PRICING_UTIL.print_msg(p_msg => 'delivery_detail_id : '||p_rolledup_lines(i).delivery_detail_id||' category_id : '||p_rolledup_lines(i).category_id||' rate_basis : '||
3290: p_rolledup_lines(i).rate_basis||'container_id : '||p_rolledup_lines(i).container_id||' master_container_id : '||p_rolledup_lines(i).master_container_id||'line_quantity : '||
3291: p_rolledup_lines(i).line_quantity||' line_uom : '||p_rolledup_lines(i).line_uom);
3292:
3293: EXIT WHEN i=p_rolledup_lines.LAST;
3292:
3293: EXIT WHEN i=p_rolledup_lines.LAST;
3294: i := p_rolledup_lines.NEXT(i);
3295: END LOOP;
3296: FTE_FREIGHT_PRICING_UTIL.print_tag(p_msg => '');
3297: END IF;
3298:
3299: IF g_bumped_rolledup_lines.COUNT > 0 THEN
3300: FTE_FREIGHT_PRICING_UTIL.print_tag(p_msg => '
3296: FTE_FREIGHT_PRICING_UTIL.print_tag(p_msg => '');
3297: END IF;
3298:
3299: IF g_bumped_rolledup_lines.COUNT > 0 THEN
3300: FTE_FREIGHT_PRICING_UTIL.print_tag(p_msg => '
3302: LOOP
3303:
3304: FTE_FREIGHT_PRICING_UTIL.print_msg(p_msg => 'index : '||i||' line_quantity : '||g_bumped_rolledup_lines(i).line_quantity);
3300: FTE_FREIGHT_PRICING_UTIL.print_tag(p_msg => '
3301: i := g_bumped_rolledup_lines.FIRST;
3302: LOOP
3303:
3304: FTE_FREIGHT_PRICING_UTIL.print_msg(p_msg => 'index : '||i||' line_quantity : '||g_bumped_rolledup_lines(i).line_quantity);
3305:
3306: EXIT WHEN i=g_bumped_rolledup_lines.LAST;
3307: i := g_bumped_rolledup_lines.NEXT(i);
3308: END LOOP;
3305:
3306: EXIT WHEN i=g_bumped_rolledup_lines.LAST;
3307: i := g_bumped_rolledup_lines.NEXT(i);
3308: END LOOP;
3309: FTE_FREIGHT_PRICING_UTIL.print_tag(p_msg => '');
3310: END IF;
3311:
3312: EXCEPTION
3313: WHEN others THEN
3311:
3312: EXCEPTION
3313: WHEN others THEN
3314: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3315: FTE_FREIGHT_PRICING_UTIL.set_exception('print_rolledup_lines',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
3316: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3317: END print_rolledup_lines;
3318:
3319: -- new for loose items
3312: EXCEPTION
3313: WHEN others THEN
3314: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3315: FTE_FREIGHT_PRICING_UTIL.set_exception('print_rolledup_lines',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
3316: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3317: END print_rolledup_lines;
3318:
3319: -- new for loose items
3320: PROCEDURE bumpup_rolledup_lines (
3317: END print_rolledup_lines;
3318:
3319: -- new for loose items
3320: PROCEDURE bumpup_rolledup_lines (
3321: p_pricing_engine_input_rec IN fte_freight_pricing.pricing_engine_input_rec_type,
3322: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
3323: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
3324: p_orig_line_qty IN NUMBER,
3325: p_orig_uom IN VARCHAR2,
3318:
3319: -- new for loose items
3320: PROCEDURE bumpup_rolledup_lines (
3321: p_pricing_engine_input_rec IN fte_freight_pricing.pricing_engine_input_rec_type,
3322: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
3323: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
3324: p_orig_line_qty IN NUMBER,
3325: p_orig_uom IN VARCHAR2,
3326: p_new_line_qty IN NUMBER,
3319: -- new for loose items
3320: PROCEDURE bumpup_rolledup_lines (
3321: p_pricing_engine_input_rec IN fte_freight_pricing.pricing_engine_input_rec_type,
3322: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
3323: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
3324: p_orig_line_qty IN NUMBER,
3325: p_orig_uom IN VARCHAR2,
3326: p_new_line_qty IN NUMBER,
3327: p_new_uom IN VARCHAR2,
3336: l_ratio_den NUMBER;
3337: l_aggregation VARCHAR2(30);
3338:
3339: l_return_status VARCHAR2(1);
3340: l_engine_input_rec fte_freight_pricing.pricing_engine_input_rec_type;
3341: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
3342: l_method_name VARCHAR2(50) := 'bumpup_rolledup_lines';
3343: BEGIN
3344: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3337: l_aggregation VARCHAR2(30);
3338:
3339: l_return_status VARCHAR2(1);
3340: l_engine_input_rec fte_freight_pricing.pricing_engine_input_rec_type;
3341: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
3342: l_method_name VARCHAR2(50) := 'bumpup_rolledup_lines';
3343: BEGIN
3344: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3345: fte_freight_pricing_util.reset_dbg_vars;
3341: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
3342: l_method_name VARCHAR2(50) := 'bumpup_rolledup_lines';
3343: BEGIN
3344: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3345: fte_freight_pricing_util.reset_dbg_vars;
3346: -- find ratio of new qty to orig qty for pricing engine input row
3347: -- make sure we are dealing with loose item only
3348: -- get instance id from engine row
3349: -- find pattern rows for engine row
3378: l_content_id := p_pattern_rows(i).content_id;
3379:
3380: IF (l_aggregation = 'ACROSS') THEN
3381:
3382: IF (nvl(fte_freight_pricing.g_rolledup_lines(l_content_id).rate_basis,-1)
3383: = nvl(p_pricing_engine_input_rec.basis,-1) ) THEN
3384: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_content_id='||l_content_id);
3385: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'orig->'||fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity);
3386:
3380: IF (l_aggregation = 'ACROSS') THEN
3381:
3382: IF (nvl(fte_freight_pricing.g_rolledup_lines(l_content_id).rate_basis,-1)
3383: = nvl(p_pricing_engine_input_rec.basis,-1) ) THEN
3384: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_content_id='||l_content_id);
3385: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'orig->'||fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity);
3386:
3387: --fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity :=
3388: --(fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity * l_ratio_num) / l_ratio_den;
3381:
3382: IF (nvl(fte_freight_pricing.g_rolledup_lines(l_content_id).rate_basis,-1)
3383: = nvl(p_pricing_engine_input_rec.basis,-1) ) THEN
3384: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_content_id='||l_content_id);
3385: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'orig->'||fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity);
3386:
3387: --fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity :=
3388: --(fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity * l_ratio_num) / l_ratio_den;
3389: --bug2803178 keep both the original and bumped rolledup line quantity
3383: = nvl(p_pricing_engine_input_rec.basis,-1) ) THEN
3384: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_content_id='||l_content_id);
3385: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'orig->'||fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity);
3386:
3387: --fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity :=
3388: --(fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity * l_ratio_num) / l_ratio_den;
3389: --bug2803178 keep both the original and bumped rolledup line quantity
3390: -- if hundred wt rate is chosed, bumped rolledup line quantity is used later
3391: -- if standard rate is chosed, original rolledup line quantity is used later
3384: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_content_id='||l_content_id);
3385: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'orig->'||fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity);
3386:
3387: --fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity :=
3388: --(fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity * l_ratio_num) / l_ratio_den;
3389: --bug2803178 keep both the original and bumped rolledup line quantity
3390: -- if hundred wt rate is chosed, bumped rolledup line quantity is used later
3391: -- if standard rate is chosed, original rolledup line quantity is used later
3392: g_bumped_rolledup_lines(l_content_id).line_quantity :=
3389: --bug2803178 keep both the original and bumped rolledup line quantity
3390: -- if hundred wt rate is chosed, bumped rolledup line quantity is used later
3391: -- if standard rate is chosed, original rolledup line quantity is used later
3392: g_bumped_rolledup_lines(l_content_id).line_quantity :=
3393: (fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity * l_ratio_num) / l_ratio_den;
3394:
3395: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'bumpedup->'||g_bumped_rolledup_lines(l_content_id).line_quantity);
3396: END IF;
3397:
3391: -- if standard rate is chosed, original rolledup line quantity is used later
3392: g_bumped_rolledup_lines(l_content_id).line_quantity :=
3393: (fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity * l_ratio_num) / l_ratio_den;
3394:
3395: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'bumpedup->'||g_bumped_rolledup_lines(l_content_id).line_quantity);
3396: END IF;
3397:
3398: ELSE -- 'WITHIN'
3399:
3396: END IF;
3397:
3398: ELSE -- 'WITHIN'
3399:
3400: IF ( nvl(fte_freight_pricing.g_rolledup_lines(l_content_id).category_id,-1)
3401: = nvl(p_pricing_engine_input_rec.category_id,-1)
3402: AND nvl(fte_freight_pricing.g_rolledup_lines(l_content_id).rate_basis,-1)
3403: = nvl(p_pricing_engine_input_rec.basis,-1) ) THEN
3404: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_content_id='||l_content_id);
3398: ELSE -- 'WITHIN'
3399:
3400: IF ( nvl(fte_freight_pricing.g_rolledup_lines(l_content_id).category_id,-1)
3401: = nvl(p_pricing_engine_input_rec.category_id,-1)
3402: AND nvl(fte_freight_pricing.g_rolledup_lines(l_content_id).rate_basis,-1)
3403: = nvl(p_pricing_engine_input_rec.basis,-1) ) THEN
3404: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_content_id='||l_content_id);
3405: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'orig->'||fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity);
3406:
3400: IF ( nvl(fte_freight_pricing.g_rolledup_lines(l_content_id).category_id,-1)
3401: = nvl(p_pricing_engine_input_rec.category_id,-1)
3402: AND nvl(fte_freight_pricing.g_rolledup_lines(l_content_id).rate_basis,-1)
3403: = nvl(p_pricing_engine_input_rec.basis,-1) ) THEN
3404: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_content_id='||l_content_id);
3405: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'orig->'||fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity);
3406:
3407: --fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity :=
3408: --(fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity * l_ratio_num) / l_ratio_den;
3401: = nvl(p_pricing_engine_input_rec.category_id,-1)
3402: AND nvl(fte_freight_pricing.g_rolledup_lines(l_content_id).rate_basis,-1)
3403: = nvl(p_pricing_engine_input_rec.basis,-1) ) THEN
3404: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_content_id='||l_content_id);
3405: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'orig->'||fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity);
3406:
3407: --fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity :=
3408: --(fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity * l_ratio_num) / l_ratio_den;
3409: --bug2803178 keep both the original and bumped rolledup line quantity
3403: = nvl(p_pricing_engine_input_rec.basis,-1) ) THEN
3404: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_content_id='||l_content_id);
3405: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'orig->'||fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity);
3406:
3407: --fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity :=
3408: --(fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity * l_ratio_num) / l_ratio_den;
3409: --bug2803178 keep both the original and bumped rolledup line quantity
3410: -- if hundred wt rate is chosed, bumped rolledup line quantity is used later
3411: -- if standard rate is chosed, original rolledup line quantity is used later
3404: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_content_id='||l_content_id);
3405: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'orig->'||fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity);
3406:
3407: --fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity :=
3408: --(fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity * l_ratio_num) / l_ratio_den;
3409: --bug2803178 keep both the original and bumped rolledup line quantity
3410: -- if hundred wt rate is chosed, bumped rolledup line quantity is used later
3411: -- if standard rate is chosed, original rolledup line quantity is used later
3412: g_bumped_rolledup_lines(l_content_id).line_quantity :=
3409: --bug2803178 keep both the original and bumped rolledup line quantity
3410: -- if hundred wt rate is chosed, bumped rolledup line quantity is used later
3411: -- if standard rate is chosed, original rolledup line quantity is used later
3412: g_bumped_rolledup_lines(l_content_id).line_quantity :=
3413: (fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity * l_ratio_num) / l_ratio_den;
3414:
3415: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'bumpedup->'||g_bumped_rolledup_lines(l_content_id).line_quantity);
3416: END IF;
3417:
3411: -- if standard rate is chosed, original rolledup line quantity is used later
3412: g_bumped_rolledup_lines(l_content_id).line_quantity :=
3413: (fte_freight_pricing.g_rolledup_lines(l_content_id).line_quantity * l_ratio_num) / l_ratio_den;
3414:
3415: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'bumpedup->'||g_bumped_rolledup_lines(l_content_id).line_quantity);
3416: END IF;
3417:
3418: END IF; -- aggregation
3419:
3427:
3428: EXCEPTION
3429: WHEN others THEN
3430: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3431: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
3432: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3433: fte_freight_pricing_util.unset_method(l_log_level,'bumpup_rolledup_lines');
3434: END bumpup_rolledup_lines;
3435:
3428: EXCEPTION
3429: WHEN others THEN
3430: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3431: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
3432: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3433: fte_freight_pricing_util.unset_method(l_log_level,'bumpup_rolledup_lines');
3434: END bumpup_rolledup_lines;
3435:
3436:
3429: WHEN others THEN
3430: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3431: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
3432: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3433: fte_freight_pricing_util.unset_method(l_log_level,'bumpup_rolledup_lines');
3434: END bumpup_rolledup_lines;
3435:
3436:
3437: -- This is called for Parcel
3435:
3436:
3437: -- This is called for Parcel
3438: PROCEDURE process_Parcel (
3439: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
3440: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
3441: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
3442: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
3443: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
3436:
3437: -- This is called for Parcel
3438: PROCEDURE process_Parcel (
3439: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
3440: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
3441: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
3442: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
3443: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
3444: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
3437: -- This is called for Parcel
3438: PROCEDURE process_Parcel (
3439: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
3440: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
3441: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
3442: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
3443: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
3444: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
3445: --p_pricing_qualifier IN fte_qual_rec_type,
3438: PROCEDURE process_Parcel (
3439: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
3440: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
3441: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
3442: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
3443: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
3444: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
3445: --p_pricing_qualifier IN fte_qual_rec_type,
3446: --x_qp_output_line_rows IN OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
3439: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
3440: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
3441: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
3442: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
3443: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
3444: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
3445: --p_pricing_qualifier IN fte_qual_rec_type,
3446: --x_qp_output_line_rows IN OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
3447: --x_qp_output_detail_rows IN OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
3440: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
3441: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
3442: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
3443: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
3444: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
3445: --p_pricing_qualifier IN fte_qual_rec_type,
3446: --x_qp_output_line_rows IN OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
3447: --x_qp_output_detail_rows IN OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
3448: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
3458: l_event_num NUMBER;
3459: l_set_num NUMBER;
3460: i NUMBER;
3461: j NUMBER;
3462: l_attr_rec fte_freight_pricing.pricing_attribute_rec_type;
3463: l_temp_wt NUMBER;
3464: l_charge_applied VARCHAR2(1);
3465: l_next_weight_break NUMBER;
3466: l_next_weight_break_uom VARCHAR2(30);
3466: l_next_weight_break_uom VARCHAR2(30);
3467: l_curr_last_idx NUMBER;
3468: l_curr_input_idx NUMBER;
3469: l_set_one_max_input_idx NUMBER;
3470: l_engine_input_rec fte_freight_pricing.pricing_engine_input_rec_type;
3471: l_attr_row fte_freight_pricing.pricing_attribute_rec_type;
3472: l_new_index NUMBER;
3473:
3474: l_standard_price NUMBER;
3467: l_curr_last_idx NUMBER;
3468: l_curr_input_idx NUMBER;
3469: l_set_one_max_input_idx NUMBER;
3470: l_engine_input_rec fte_freight_pricing.pricing_engine_input_rec_type;
3471: l_attr_row fte_freight_pricing.pricing_attribute_rec_type;
3472: l_new_index NUMBER;
3473:
3474: l_standard_price NUMBER;
3475: l_hundredwt_price NUMBER;
3474: l_standard_price NUMBER;
3475: l_hundredwt_price NUMBER;
3476: l_bumped_up_wt NUMBER;
3477: l_bumped_up_wt_uom VARCHAR2(30);
3478: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
3479: l_method_name VARCHAR2(50) := 'process_Parcel';
3480: l_op_ret_code NUMBER;
3481: l_letter_flag VARCHAR2(1) := 'N';
3482: l_parcel_elig_flag VARCHAR2(1);
3482: l_parcel_elig_flag VARCHAR2(1);
3483: l_bump VARCHAR2(1);
3484: --- Local Module ----
3485: -- This procedure is to be called by process_Parcel to check if we shipment satisfies conditions for Parcel
3486: FUNCTION check_parcel_eligible (p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type)
3487: RETURN VARCHAR2
3488: IS
3489: i NUMBER;
3490: ret_value VARCHAR2(30);
3487: RETURN VARCHAR2
3488: IS
3489: i NUMBER;
3490: ret_value VARCHAR2(30);
3491: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
3492: l_method_name VARCHAR2(50) := 'check_parcel_eligible';
3493: BEGIN
3494: fte_freight_pricing_util.set_method(l_log_level,'check_parcel_eligible');
3495: ret_value := 'Y'; -- Y = OK, N = NOT OK, L = Letter
3490: ret_value VARCHAR2(30);
3491: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
3492: l_method_name VARCHAR2(50) := 'check_parcel_eligible';
3493: BEGIN
3494: fte_freight_pricing_util.set_method(l_log_level,'check_parcel_eligible');
3495: ret_value := 'Y'; -- Y = OK, N = NOT OK, L = Letter
3496: i := p_pattern_rows.FIRST;
3497: IF (i IS NOT NULL) THEN
3498: LOOP
3498: LOOP
3499: --only SC_WB and MC_WB are ok for Parcel (except Letter - SC_CB or MC_CB )
3500: -- currently you cannot have a mix of Letter and standard parcel because they are
3501: -- separate service types. A parcel lane can have only one service type.
3502: -- fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'i='||i||' pattern='||p_pattern_rows(i).pattern_no);
3503: -- IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
3504: -- OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3505: -- Loose items now have patterns
3506: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
3499: --only SC_WB and MC_WB are ok for Parcel (except Letter - SC_CB or MC_CB )
3500: -- currently you cannot have a mix of Letter and standard parcel because they are
3501: -- separate service types. A parcel lane can have only one service type.
3502: -- fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'i='||i||' pattern='||p_pattern_rows(i).pattern_no);
3503: -- IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
3504: -- OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3505: -- Loose items now have patterns
3506: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
3507: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3500: -- currently you cannot have a mix of Letter and standard parcel because they are
3501: -- separate service types. A parcel lane can have only one service type.
3502: -- fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'i='||i||' pattern='||p_pattern_rows(i).pattern_no);
3503: -- IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
3504: -- OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3505: -- Loose items now have patterns
3506: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
3507: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3508: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_9
3502: -- fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'i='||i||' pattern='||p_pattern_rows(i).pattern_no);
3503: -- IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
3504: -- OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3505: -- Loose items now have patterns
3506: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
3507: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3508: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_9
3509: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_10 ) THEN
3510: IF (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_1
3503: -- IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
3504: -- OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3505: -- Loose items now have patterns
3506: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
3507: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3508: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_9
3509: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_10 ) THEN
3510: IF (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_1
3511: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_4 ) THEN
3504: -- OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3505: -- Loose items now have patterns
3506: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
3507: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3508: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_9
3509: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_10 ) THEN
3510: IF (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_1
3511: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_4 ) THEN
3512: ret_value := 'L';
3505: -- Loose items now have patterns
3506: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
3507: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3508: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_9
3509: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_10 ) THEN
3510: IF (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_1
3511: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_4 ) THEN
3512: ret_value := 'L';
3513: ELSE
3506: IF NOT (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_2
3507: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3508: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_9
3509: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_10 ) THEN
3510: IF (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_1
3511: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_4 ) THEN
3512: ret_value := 'L';
3513: ELSE
3514: ret_value := 'N';
3507: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_5
3508: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_9
3509: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_10 ) THEN
3510: IF (p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_1
3511: OR p_pattern_rows(i).pattern_no = FTE_FREIGHT_PRICING.G_PATTERN_4 ) THEN
3512: ret_value := 'L';
3513: ELSE
3514: ret_value := 'N';
3515: END IF;
3513: ELSE
3514: ret_value := 'N';
3515: END IF;
3516: END IF;
3517: -- fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'i='||i||' ret_value ='||ret_value);
3518: EXIT WHEN ( i >= p_pattern_rows.LAST OR ret_value = 'N');
3519: i := p_pattern_rows.NEXT(i);
3520: END LOOP;
3521: END IF;
3518: EXIT WHEN ( i >= p_pattern_rows.LAST OR ret_value = 'N');
3519: i := p_pattern_rows.NEXT(i);
3520: END LOOP;
3521: END IF;
3522: fte_freight_pricing_util.unset_method(l_log_level,'check_parcel_eligible');
3523: RETURN ret_value;
3524: END check_parcel_eligible;
3525:
3526: --- End Local Module --
3532: IS
3533: i NUMBER;
3534: min_package_wt NUMBER := 0;
3535: min_wt_uom VARCHAR2(30) := NULL;
3536: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
3537: l_method_name VARCHAR2(50) := 'get_min_package_wt';
3538: BEGIN
3539: fte_freight_pricing_util.set_method(l_log_level,'get_min_package_wt');
3540: i := g_lane_parameters.FIRST;
3535: min_wt_uom VARCHAR2(30) := NULL;
3536: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
3537: l_method_name VARCHAR2(50) := 'get_min_package_wt';
3538: BEGIN
3539: fte_freight_pricing_util.set_method(l_log_level,'get_min_package_wt');
3540: i := g_lane_parameters.FIRST;
3541: IF (i IS NOT NULL) THEN
3542: LOOP
3543: IF (g_lane_parameters(i).parameter_sub_type = 'HUNDREDWT'
3552: END LOOP;
3553: END IF;
3554: x_min_package_wt := min_package_wt;
3555: x_min_wt_uom := min_wt_uom;
3556: fte_freight_pricing_util.unset_method(l_log_level,'get_min_package_wt');
3557: EXCEPTION
3558: WHEN others THEN
3559: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
3560: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3555: x_min_wt_uom := min_wt_uom;
3556: fte_freight_pricing_util.unset_method(l_log_level,'get_min_package_wt');
3557: EXCEPTION
3558: WHEN others THEN
3559: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
3560: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3561: fte_freight_pricing_util.unset_method(l_log_level, l_method_name);
3562: END get_min_package_wt;
3563: -- end local module --
3556: fte_freight_pricing_util.unset_method(l_log_level,'get_min_package_wt');
3557: EXCEPTION
3558: WHEN others THEN
3559: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
3560: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3561: fte_freight_pricing_util.unset_method(l_log_level, l_method_name);
3562: END get_min_package_wt;
3563: -- end local module --
3564:
3557: EXCEPTION
3558: WHEN others THEN
3559: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
3560: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
3561: fte_freight_pricing_util.unset_method(l_log_level, l_method_name);
3562: END get_min_package_wt;
3563: -- end local module --
3564:
3565:
3586: -- any post processing
3587: -- return control to main code
3588:
3589: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3590: fte_freight_pricing_util.reset_dbg_vars;
3591: fte_freight_pricing_util.set_method(l_log_level,'process_Parcel');
3592:
3593: -- Its ok for loose items not to have pattern rows. And loose items should always be eligible for LTL
3594: IF (p_pattern_rows.COUNT >0) THEN
3587: -- return control to main code
3588:
3589: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3590: fte_freight_pricing_util.reset_dbg_vars;
3591: fte_freight_pricing_util.set_method(l_log_level,'process_Parcel');
3592:
3593: -- Its ok for loose items not to have pattern rows. And loose items should always be eligible for LTL
3594: IF (p_pattern_rows.COUNT >0) THEN
3595: l_parcel_elig_flag := check_parcel_eligible (p_pattern_rows);
3593: -- Its ok for loose items not to have pattern rows. And loose items should always be eligible for LTL
3594: IF (p_pattern_rows.COUNT >0) THEN
3595: l_parcel_elig_flag := check_parcel_eligible (p_pattern_rows);
3596: IF ( l_parcel_elig_flag = 'N') THEN
3597: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Parcel Not eligible');
3598: raise fte_freight_pricing_util.g_parcel_not_eligible;
3599: END IF;
3600:
3601: IF ( l_parcel_elig_flag = 'L') THEN
3594: IF (p_pattern_rows.COUNT >0) THEN
3595: l_parcel_elig_flag := check_parcel_eligible (p_pattern_rows);
3596: IF ( l_parcel_elig_flag = 'N') THEN
3597: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Parcel Not eligible');
3598: raise fte_freight_pricing_util.g_parcel_not_eligible;
3599: END IF;
3600:
3601: IF ( l_parcel_elig_flag = 'L') THEN
3602: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Parcel Letter eligible');
3598: raise fte_freight_pricing_util.g_parcel_not_eligible;
3599: END IF;
3600:
3601: IF ( l_parcel_elig_flag = 'L') THEN
3602: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_LOG,'Parcel Letter eligible');
3603: process_others(p_pricing_control_rec => p_pricing_control_rec,
3604: p_pricing_engine_rows => p_pricing_engine_rows,
3605: p_top_level_rows => p_top_level_rows,
3606: p_pricing_dual_instances => p_pricing_dual_instances,
3609: --p_pricing_qualifier => p_pricing_qualifier,
3610: x_qp_output_line_rows => x_qp_output_line_rows,
3611: x_qp_output_detail_rows => x_qp_output_detail_rows,
3612: x_return_status => l_return_status );
3613: fte_freight_pricing_util.set_location(p_loc=>'after process_others ');
3614: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3615: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3616: raise fte_freight_pricing_util.g_process_others_failed;
3617: END IF;
3612: x_return_status => l_return_status );
3613: fte_freight_pricing_util.set_location(p_loc=>'after process_others ');
3614: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3615: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3616: raise fte_freight_pricing_util.g_process_others_failed;
3617: END IF;
3618: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
3619: RETURN;
3620: END IF;
3614: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3615: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3616: raise fte_freight_pricing_util.g_process_others_failed;
3617: END IF;
3618: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
3619: RETURN;
3620: END IF;
3621:
3622: END IF;
3629: x_total_wt => l_total_wt,
3630: x_wt_uom => l_total_wt_uom,
3631: x_return_status => l_return_status);
3632:
3633: fte_freight_pricing_util.set_location(p_loc=>'after get_total_shipment_weight ');
3634: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3635: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3636: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
3637: ELSE
3632:
3633: fte_freight_pricing_util.set_location(p_loc=>'after get_total_shipment_weight ');
3634: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3635: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3636: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
3637: ELSE
3638: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt = '||l_total_wt);
3639: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt_uom = '||l_total_wt_uom);
3640: END IF;
3634: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3635: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3636: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
3637: ELSE
3638: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt = '||l_total_wt);
3639: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt_uom = '||l_total_wt_uom);
3640: END IF;
3641: */
3642: l_event_num := fte_qp_engine.G_LINE_EVENT_NUM;
3635: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3636: raise fte_freight_pricing_util.g_total_shipment_weight_failed;
3637: ELSE
3638: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt = '||l_total_wt);
3639: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_total_wt_uom = '||l_total_wt_uom);
3640: END IF;
3641: */
3642: l_event_num := fte_qp_engine.G_LINE_EVENT_NUM;
3643: fte_qp_engine.create_control_record(p_event_num => l_event_num,
3642: l_event_num := fte_qp_engine.G_LINE_EVENT_NUM;
3643: fte_qp_engine.create_control_record(p_event_num => l_event_num,
3644: x_return_status => l_return_status );
3645:
3646: fte_freight_pricing_util.set_location(p_loc=>'after create_control_record ');
3647: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3648: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3649: raise fte_freight_pricing_util.g_create_control_record_failed;
3650: END IF;
3645:
3646: fte_freight_pricing_util.set_location(p_loc=>'after create_control_record ');
3647: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3648: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3649: raise fte_freight_pricing_util.g_create_control_record_failed;
3650: END IF;
3651:
3652: -- create set I ( for standard rate checking ) --
3653: l_set_num := 1;
3663: fte_qp_engine.create_line_record (p_pricing_control_rec => p_pricing_control_rec,
3664: p_pricing_engine_input_rec => p_pricing_engine_rows(i),
3665: x_return_status => l_return_status);
3666:
3667: fte_freight_pricing_util.set_location(p_loc=>'after create_line_record. i='||i);
3668: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3669: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3670: raise fte_freight_pricing_util.g_create_line_record_failed;
3671: END IF;
3666:
3667: fte_freight_pricing_util.set_location(p_loc=>'after create_line_record. i='||i);
3668: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3669: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3670: raise fte_freight_pricing_util.g_create_line_record_failed;
3671: END IF;
3672:
3673: fte_qp_engine.prepare_qp_line_qualifiers(
3674: p_event_num => l_event_num,
3675: p_pricing_control_rec => p_pricing_control_rec,
3676: p_input_index => p_pricing_engine_rows(i).input_index,
3677: x_return_status => l_return_status);
3678:
3679: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
3680: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3681: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3682: raise fte_freight_pricing_util.g_create_qualifiers_failed;
3683: END IF;
3678:
3679: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
3680: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3681: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3682: raise fte_freight_pricing_util.g_create_qualifiers_failed;
3683: END IF;
3684:
3685: fte_qp_engine.prepare_qp_line_attributes (
3686: p_event_num => l_event_num,
3687: p_input_index => p_pricing_engine_rows(i).input_index,
3688: p_attr_rows => p_pricing_attribute_rows,
3689: x_return_status => l_return_status);
3690:
3691: fte_freight_pricing_util.set_location(p_loc=>'after create qp line attributes. i='||i);
3692: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3693: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3694: raise fte_freight_pricing_util.g_create_attr_failed;
3695: END IF;
3690:
3691: fte_freight_pricing_util.set_location(p_loc=>'after create qp line attributes. i='||i);
3692: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3693: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3694: raise fte_freight_pricing_util.g_create_attr_failed;
3695: END IF;
3696:
3697:
3698: /* TEST MULTIPIECE FLAG --BEGIN*/
3705: fte_qp_engine.create_attr_record( p_event_num => l_event_num,
3706: p_attr_rec => l_attr_rec,
3707: x_return_status => l_return_status);
3708:
3709: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record ');
3710: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3711: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3712: raise fte_freight_pricing_util.g_create_attr_failed;
3713: END IF;
3708:
3709: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record ');
3710: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3711: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3712: raise fte_freight_pricing_util.g_create_attr_failed;
3713: END IF;
3714:
3715: /* TEST MULTIPIECE FLAG --END*/
3716:
3727: -- only if multipiece
3728:
3729: -- get min. package wt. parameter
3730: get_min_package_wt(l_min_package_wt, l_min_wt_uom);
3731: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_min_package_wt '||l_min_package_wt);
3732: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_min_wt_uom '||l_min_wt_uom);
3733:
3734: l_set_num := 2;
3735: i := p_pricing_engine_rows.FIRST; -- counter for set 1 engine rows
3728:
3729: -- get min. package wt. parameter
3730: get_min_package_wt(l_min_package_wt, l_min_wt_uom);
3731: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_min_package_wt '||l_min_package_wt);
3732: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_min_wt_uom '||l_min_wt_uom);
3733:
3734: l_set_num := 2;
3735: i := p_pricing_engine_rows.FIRST; -- counter for set 1 engine rows
3736: l_curr_last_idx := p_pricing_engine_rows.LAST; --last set 1 engine row (because only set1 should exist now)
3754: x_new_wt_uom => l_bumped_up_wt_uom,
3755: x_bump => l_bump,
3756: x_return_status => l_return_status);
3757:
3758: fte_freight_pricing_util.set_location(p_loc=>'after get_bumped_up_package_weight');
3759: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3760: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3761: raise fte_freight_pricing_util.g_get_bumped_up_wt_failed;
3762: END IF;
3757:
3758: fte_freight_pricing_util.set_location(p_loc=>'after get_bumped_up_package_weight');
3759: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3760: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3761: raise fte_freight_pricing_util.g_get_bumped_up_wt_failed;
3762: END IF;
3763:
3764: -- calculate the total shipment weight
3765: IF (l_total_wt is null OR l_total_wt <= 0) THEN
3778: END IF;
3779:
3780: END IF; -- calculate total shipment weight
3781:
3782: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_engine_input_rec.loose_item_flag='||l_engine_input_rec.loose_item_flag);
3783: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_bump='||l_bump);
3784:
3785: -- new for loose item
3786: -- bump up rolled up lines - prorate
3779:
3780: END IF; -- calculate total shipment weight
3781:
3782: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_engine_input_rec.loose_item_flag='||l_engine_input_rec.loose_item_flag);
3783: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_bump='||l_bump);
3784:
3785: -- new for loose item
3786: -- bump up rolled up lines - prorate
3787: IF (l_engine_input_rec.loose_item_flag = 'Y' AND l_bump = 'Y') THEN
3785: -- new for loose item
3786: -- bump up rolled up lines - prorate
3787: IF (l_engine_input_rec.loose_item_flag = 'Y' AND l_bump = 'Y') THEN
3788: --bump up
3789: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'bump up rolled up');
3790: bumpup_rolledup_lines (
3791: p_pricing_engine_input_rec =>l_engine_input_rec,
3792: p_pricing_dual_instances =>p_pricing_dual_instances,
3793: p_pattern_rows => p_pattern_rows,
3796: p_new_line_qty => l_bumped_up_wt,
3797: p_new_uom => l_bumped_up_wt_uom,
3798: x_return_status => l_return_status);
3799:
3800: fte_freight_pricing_util.set_location(p_loc=>'after bumpup_rolledup_lines');
3801: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3802: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3803: raise fte_freight_pricing_util.g_get_bumped_up_wt_failed;
3804: END IF;
3799:
3800: fte_freight_pricing_util.set_location(p_loc=>'after bumpup_rolledup_lines');
3801: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3802: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3803: raise fte_freight_pricing_util.g_get_bumped_up_wt_failed;
3804: END IF;
3805:
3806: print_rolledup_lines(
3807: p_rolledup_lines => fte_freight_pricing.g_rolledup_lines,
3803: raise fte_freight_pricing_util.g_get_bumped_up_wt_failed;
3804: END IF;
3805:
3806: print_rolledup_lines(
3807: p_rolledup_lines => fte_freight_pricing.g_rolledup_lines,
3808: x_return_status => l_return_status);
3809: END IF;
3810:
3811: l_engine_input_rec.line_quantity := l_bumped_up_wt;
3817: fte_qp_engine.create_line_record (p_pricing_control_rec => p_pricing_control_rec,
3818: p_pricing_engine_input_rec => l_engine_input_rec,
3819: x_return_status => l_return_status);
3820:
3821: fte_freight_pricing_util.set_location(p_loc=>'after create_line_record. i='||i);
3822: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3823: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3824: raise fte_freight_pricing_util.g_create_line_record_failed;
3825: END IF;
3820:
3821: fte_freight_pricing_util.set_location(p_loc=>'after create_line_record. i='||i);
3822: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3823: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3824: raise fte_freight_pricing_util.g_create_line_record_failed;
3825: END IF;
3826:
3827: --prepare qualifiers
3828: fte_qp_engine.prepare_qp_line_qualifiers(
3830: p_pricing_control_rec => p_pricing_control_rec,
3831: p_input_index => l_new_index,
3832: x_return_status => l_return_status);
3833:
3834: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
3835: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3836: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3837: raise fte_freight_pricing_util.g_create_qualifiers_failed;
3838: END IF;
3833:
3834: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
3835: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3836: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3837: raise fte_freight_pricing_util.g_create_qualifiers_failed;
3838: END IF;
3839:
3840: -- prepare attributes from the attr rows. line indexes need to be changed
3841: j := p_pricing_attribute_rows.FIRST;
3851: fte_qp_engine.create_attr_record ( p_event_num => l_event_num,
3852: p_attr_rec => l_attr_rec,
3853: x_return_status => l_return_status);
3854:
3855: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record');
3856: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3857: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3858: raise fte_freight_pricing_util.g_create_attr_failed;
3859: END IF;
3854:
3855: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record');
3856: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3857: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3858: raise fte_freight_pricing_util.g_create_attr_failed;
3859: END IF;
3860:
3861: END IF;
3862: EXIT WHEN j = p_pricing_attribute_rows.LAST;
3873: fte_qp_engine.create_attr_record( p_event_num => l_event_num,
3874: p_attr_rec => l_attr_rec,
3875: x_return_status => l_return_status);
3876:
3877: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record ');
3878: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3879: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3880: raise fte_freight_pricing_util.g_create_attr_failed;
3881: END IF;
3876:
3877: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record ');
3878: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3879: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3880: raise fte_freight_pricing_util.g_create_attr_failed;
3881: END IF;
3882: /*
3883: -- add other new attributes --
3884: -- VOLUME:TOTAL_ITEM_QUANTITY
3899: fte_qp_engine.create_attr_record(p_event_num => l_event_num,
3900: p_attr_rec => l_attr_rec,
3901: x_return_status => l_return_status);
3902:
3903: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record ');
3904: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3905: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3906: raise fte_freight_pricing_util.g_create_attr_failed;
3907: END IF;
3902:
3903: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record ');
3904: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3905: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3906: raise fte_freight_pricing_util.g_create_attr_failed;
3907: END IF;
3908: */
3909: /* TEST MULTIPIECE FLAG --BEGIN*/
3910:
3916: fte_qp_engine.create_attr_record( p_event_num => l_event_num,
3917: p_attr_rec => l_attr_rec,
3918: x_return_status => l_return_status);
3919:
3920: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record ');
3921: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3922: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3923: raise fte_freight_pricing_util.g_create_attr_failed;
3924: END IF;
3919:
3920: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record ');
3921: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3922: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3923: raise fte_freight_pricing_util.g_create_attr_failed;
3924: END IF;
3925:
3926: /* TEST MULTIPIECE FLAG --END*/
3927:
3940: fte_qp_engine.create_attr_record(p_event_num => l_event_num,
3941: p_attr_rec => l_attr_rec,
3942: x_return_status => l_return_status);
3943:
3944: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record ');
3945: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3946: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3947: raise fte_freight_pricing_util.g_create_attr_failed;
3948: END IF;
3943:
3944: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record ');
3945: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3946: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3947: raise fte_freight_pricing_util.g_create_attr_failed;
3948: END IF;
3949: */
3950:
3951:
3954: l_new_index := l_new_index + 1;
3955: END LOOP; -- engine rows
3956: END IF;
3957:
3958: fte_freight_pricing_util.print_msg(l_log_level,'l_total_wt: '||l_total_wt);
3959: fte_freight_pricing_util.print_msg(l_log_level,'l_total_wt_uom: '||l_total_wt_uom);
3960:
3961: -- add TOTAL_ITEM_QUANTITY attribute for second set
3962: i := l_curr_last_idx;
3955: END LOOP; -- engine rows
3956: END IF;
3957:
3958: fte_freight_pricing_util.print_msg(l_log_level,'l_total_wt: '||l_total_wt);
3959: fte_freight_pricing_util.print_msg(l_log_level,'l_total_wt_uom: '||l_total_wt_uom);
3960:
3961: -- add TOTAL_ITEM_QUANTITY attribute for second set
3962: i := l_curr_last_idx;
3963: IF (i IS NOT NULL) THEN
3983: fte_qp_engine.create_attr_record(p_event_num => l_event_num,
3984: p_attr_rec => l_attr_rec,
3985: x_return_status => l_return_status);
3986:
3987: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record ');
3988: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3989: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3990: raise fte_freight_pricing_util.g_create_attr_failed;
3991: END IF;
3986:
3987: fte_freight_pricing_util.set_location(p_loc=>'after create_attr_record ');
3988: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
3989: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
3990: raise fte_freight_pricing_util.g_create_attr_failed;
3991: END IF;
3992:
3993: EXIT WHEN i >= p_pricing_engine_rows.LAST;
3994: i := p_pricing_engine_rows.NEXT(i);
4000: fte_qp_engine.call_qp_api ( x_qp_output_line_rows => x_qp_output_line_rows,
4001: x_qp_output_detail_rows => x_qp_output_detail_rows,
4002: x_return_status => l_return_status);
4003:
4004: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api');
4005: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4006: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4007: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
4008: END IF;
4003:
4004: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api');
4005: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4006: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4007: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
4008: END IF;
4009: END IF;
4010:
4011: --check for errors in the output
4014: fte_qp_engine.check_parcel_output_errors (p_event_num => l_event_num,
4015: x_return_code => l_op_ret_code,
4016: x_return_status => l_return_status);
4017:
4018: fte_freight_pricing_util.set_location(p_loc=>'after check_parcel_output_errors: Event '||l_event_num);
4019: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_return_status = '||l_return_status);
4020: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_op_ret_code = '||l_op_ret_code);
4021:
4022: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4015: x_return_code => l_op_ret_code,
4016: x_return_status => l_return_status);
4017:
4018: fte_freight_pricing_util.set_location(p_loc=>'after check_parcel_output_errors: Event '||l_event_num);
4019: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_return_status = '||l_return_status);
4020: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_op_ret_code = '||l_op_ret_code);
4021:
4022: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4023: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4016: x_return_status => l_return_status);
4017:
4018: fte_freight_pricing_util.set_location(p_loc=>'after check_parcel_output_errors: Event '||l_event_num);
4019: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_return_status = '||l_return_status);
4020: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_op_ret_code = '||l_op_ret_code);
4021:
4022: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4023: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4024: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
4020: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_op_ret_code = '||l_op_ret_code);
4021:
4022: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4023: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4024: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
4025: END IF;
4026: END IF;
4027:
4028: IF g_special_flags.parcel_hundredwt_flag = 'Y' THEN
4034: l_set_num :=2; --set to delete
4035: fte_qp_engine.delete_set_from_line_event( p_set_num => l_set_num,
4036: x_return_status => l_return_status);
4037:
4038: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
4039: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4040: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4041: raise fte_freight_pricing_util.g_delete_set_failed;
4042: END IF;
4037:
4038: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
4039: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4040: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4041: raise fte_freight_pricing_util.g_delete_set_failed;
4042: END IF;
4043:
4044: --bug2803178
4045: g_bumped_rolledup_lines.DELETE;
4052: l_set_num :=1; --set to delete
4053: fte_qp_engine.delete_set_from_line_event( p_set_num => l_set_num,
4054: x_return_status => l_return_status);
4055:
4056: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
4057: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4058: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4059: raise fte_freight_pricing_util.g_delete_set_failed;
4060: END IF;
4055:
4056: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
4057: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4058: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4059: raise fte_freight_pricing_util.g_delete_set_failed;
4060: END IF;
4061:
4062: --bug2803178
4063: i := g_bumped_rolledup_lines.FIRST;
4062: --bug2803178
4063: i := g_bumped_rolledup_lines.FIRST;
4064: IF (i is not null) THEN
4065: LOOP
4066: fte_freight_pricing.g_rolledup_lines(i).line_quantity
4067: := g_bumped_rolledup_lines(i).line_quantity;
4068: EXIT WHEN i>= g_bumped_rolledup_lines.LAST;
4069: i := g_bumped_rolledup_lines.NEXT(i);
4070: END LOOP; -- g_bumped_rolledup_lines
4079: fte_qp_engine.get_total_base_price(p_set_num => l_set_num,
4080: x_price => l_standard_price ,
4081: x_return_status => l_return_status);
4082:
4083: fte_freight_pricing_util.set_location(p_loc=>'after get_total_base_price for set='||l_set_num);
4084: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4085: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4086: raise FTE_FREIGHT_PRICING_UTIL.g_total_base_price_failed;
4087: END IF;
4082:
4083: fte_freight_pricing_util.set_location(p_loc=>'after get_total_base_price for set='||l_set_num);
4084: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4085: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4086: raise FTE_FREIGHT_PRICING_UTIL.g_total_base_price_failed;
4087: END IF;
4088: ELSE
4089: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_standard_price = '||l_standard_price);
4090: END IF;
4085: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4086: raise FTE_FREIGHT_PRICING_UTIL.g_total_base_price_failed;
4087: END IF;
4088: ELSE
4089: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_standard_price = '||l_standard_price);
4090: END IF;
4091:
4092: l_set_num :=2;
4093: fte_qp_engine.get_total_base_price(p_set_num => l_set_num,
4093: fte_qp_engine.get_total_base_price(p_set_num => l_set_num,
4094: x_price => l_hundredwt_price,
4095: x_return_status => l_return_status);
4096:
4097: fte_freight_pricing_util.set_location(p_loc=>'after get_total_base_price for set='||l_set_num);
4098: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4099: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4100: raise fte_freight_pricing_util.g_total_base_price_failed;
4101: END IF;
4096:
4097: fte_freight_pricing_util.set_location(p_loc=>'after get_total_base_price for set='||l_set_num);
4098: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4099: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4100: raise fte_freight_pricing_util.g_total_base_price_failed;
4101: END IF;
4102: ELSE
4103: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_hundredwt_price= '||l_hundredwt_price);
4104: END IF;
4099: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4100: raise fte_freight_pricing_util.g_total_base_price_failed;
4101: END IF;
4102: ELSE
4103: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'l_hundredwt_price= '||l_hundredwt_price);
4104: END IF;
4105:
4106: IF (l_standard_price <= l_hundredwt_price) THEN
4107: -- standard rates apply. delete set 2
4108: l_set_num :=2; --set to delete
4109: fte_qp_engine.delete_set_from_line_event( p_set_num => l_set_num,
4110: x_return_status => l_return_status);
4111:
4112: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
4113: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4114: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4115: raise fte_freight_pricing_util.g_delete_set_failed;
4116: END IF;
4111:
4112: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
4113: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4114: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4115: raise fte_freight_pricing_util.g_delete_set_failed;
4116: END IF;
4117:
4118: --bug2803178
4119: g_bumped_rolledup_lines.DELETE;
4124: l_set_num :=1; --set to delete
4125: fte_qp_engine.delete_set_from_line_event( p_set_num => l_set_num,
4126: x_return_status => l_return_status);
4127:
4128: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
4129: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4130: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4131: raise fte_freight_pricing_util.g_delete_set_failed;
4132: END IF;
4127:
4128: fte_freight_pricing_util.set_location(p_loc=>'after delete_set_from_line_event. set= '||l_set_num);
4129: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4130: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4131: raise fte_freight_pricing_util.g_delete_set_failed;
4132: END IF;
4133:
4134: --bug2803178
4135: i := g_bumped_rolledup_lines.FIRST;
4134: --bug2803178
4135: i := g_bumped_rolledup_lines.FIRST;
4136: IF (i is not null) THEN
4137: LOOP
4138: fte_freight_pricing.g_rolledup_lines(i).line_quantity
4139: := g_bumped_rolledup_lines(i).line_quantity;
4140: EXIT WHEN i>= g_bumped_rolledup_lines.LAST;
4141: i := g_bumped_rolledup_lines.NEXT(i);
4142: END LOOP; -- g_bumped_rolledup_lines
4149:
4150: END IF; -- g_special_flags.parcel_hundredwt_flag
4151:
4152: print_rolledup_lines(
4153: p_rolledup_lines => fte_freight_pricing.g_rolledup_lines,
4154: x_return_status => l_return_status);
4155:
4156: --*** IMP ---
4157: FTE_QP_ENGINE.get_qp_output(
4160: x_return_status => l_return_status);
4161:
4162: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4163: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4164: raise fte_freight_pricing_util.g_get_qp_output_failed;
4165: END IF;
4166:
4167: post_process(
4168: p_event_num => l_event_num,
4172: x_qp_output_line_rows => x_qp_output_line_rows,
4173: x_qp_output_detail_rows => x_qp_output_detail_rows,
4174: x_return_status => l_return_status);
4175:
4176: fte_freight_pricing_util.set_location(p_loc=>'after resolve_pricing_objective');
4177: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4178: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4179: raise fte_freight_pricing_util.g_post_process_failed;
4180: END IF;
4175:
4176: fte_freight_pricing_util.set_location(p_loc=>'after resolve_pricing_objective');
4177: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4178: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4179: raise fte_freight_pricing_util.g_post_process_failed;
4180: END IF;
4181:
4182: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4183: EXCEPTION
4178: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4179: raise fte_freight_pricing_util.g_post_process_failed;
4180: END IF;
4181:
4182: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4183: EXCEPTION
4184: WHEN fte_freight_pricing_util.g_post_process_failed THEN
4185: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4186: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
4180: END IF;
4181:
4182: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4183: EXCEPTION
4184: WHEN fte_freight_pricing_util.g_post_process_failed THEN
4185: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4186: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
4187: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4188: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
4182: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4183: EXCEPTION
4184: WHEN fte_freight_pricing_util.g_post_process_failed THEN
4185: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4186: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
4187: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4188: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
4189: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4190: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
4183: EXCEPTION
4184: WHEN fte_freight_pricing_util.g_post_process_failed THEN
4185: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4186: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
4187: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4188: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
4189: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4190: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
4191: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4184: WHEN fte_freight_pricing_util.g_post_process_failed THEN
4185: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4186: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
4187: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4188: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
4189: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4190: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
4191: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4192: WHEN fte_freight_pricing_util.g_total_base_price_failed THEN
4186: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
4187: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4188: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
4189: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4190: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
4191: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4192: WHEN fte_freight_pricing_util.g_total_base_price_failed THEN
4193: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4194: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'total_base_price_failed');
4187: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4188: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
4189: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4190: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
4191: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4192: WHEN fte_freight_pricing_util.g_total_base_price_failed THEN
4193: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4194: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'total_base_price_failed');
4195: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4188: WHEN fte_freight_pricing_util.g_get_qp_output_failed THEN
4189: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4190: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
4191: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4192: WHEN fte_freight_pricing_util.g_total_base_price_failed THEN
4193: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4194: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'total_base_price_failed');
4195: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4196: WHEN fte_freight_pricing_util.g_apply_new_base_price_failed THEN
4190: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_qp_output_failed');
4191: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4192: WHEN fte_freight_pricing_util.g_total_base_price_failed THEN
4193: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4194: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'total_base_price_failed');
4195: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4196: WHEN fte_freight_pricing_util.g_apply_new_base_price_failed THEN
4197: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4198: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_new_base_price_failed');
4191: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4192: WHEN fte_freight_pricing_util.g_total_base_price_failed THEN
4193: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4194: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'total_base_price_failed');
4195: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4196: WHEN fte_freight_pricing_util.g_apply_new_base_price_failed THEN
4197: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4198: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_new_base_price_failed');
4199: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4192: WHEN fte_freight_pricing_util.g_total_base_price_failed THEN
4193: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4194: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'total_base_price_failed');
4195: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4196: WHEN fte_freight_pricing_util.g_apply_new_base_price_failed THEN
4197: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4198: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_new_base_price_failed');
4199: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4200: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
4194: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'total_base_price_failed');
4195: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4196: WHEN fte_freight_pricing_util.g_apply_new_base_price_failed THEN
4197: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4198: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_new_base_price_failed');
4199: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4200: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
4201: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4202: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
4195: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4196: WHEN fte_freight_pricing_util.g_apply_new_base_price_failed THEN
4197: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4198: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_new_base_price_failed');
4199: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4200: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
4201: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4202: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
4203: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4196: WHEN fte_freight_pricing_util.g_apply_new_base_price_failed THEN
4197: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4198: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_new_base_price_failed');
4199: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4200: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
4201: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4202: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
4203: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4204: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4198: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_new_base_price_failed');
4199: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4200: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
4201: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4202: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
4203: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4204: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4205: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4206: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4199: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4200: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
4201: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4202: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
4203: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4204: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4205: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4206: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4207: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4200: WHEN fte_freight_pricing_util.g_delete_set_failed THEN
4201: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4202: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
4203: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4204: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4205: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4206: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4207: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4208: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4202: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_delete_set_failed');
4203: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4204: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4205: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4206: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4207: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4208: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4209: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4210: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4203: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4204: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4205: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4206: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4207: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4208: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4209: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4210: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4211: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4204: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4205: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4206: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4207: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4208: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4209: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4210: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4211: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4212: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4206: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4207: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4208: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4209: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4210: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4211: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4212: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4213: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4214: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4207: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4208: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4209: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4210: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4211: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4212: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4213: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4214: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4215: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4208: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4209: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4210: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4211: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4212: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4213: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4214: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4215: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4216: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4210: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4211: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4212: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4213: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4214: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4215: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4216: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4217: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4218: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4211: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4212: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4213: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4214: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4215: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4216: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4217: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4218: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4219: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4212: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4213: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4214: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4215: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4216: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4217: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4218: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4219: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4220: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
4214: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4215: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4216: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4217: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4218: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4219: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4220: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
4221: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4222: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
4215: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4216: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4217: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4218: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4219: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4220: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
4221: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4222: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
4223: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4216: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4217: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4218: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4219: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4220: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
4221: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4222: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
4223: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4224: WHEN fte_freight_pricing_util.g_get_bumped_up_wt_failed THEN
4218: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4219: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4220: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
4221: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4222: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
4223: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4224: WHEN fte_freight_pricing_util.g_get_bumped_up_wt_failed THEN
4225: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4226: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_bumped_up_wt_failed');
4219: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4220: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
4221: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4222: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
4223: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4224: WHEN fte_freight_pricing_util.g_get_bumped_up_wt_failed THEN
4225: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4226: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_bumped_up_wt_failed');
4227: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4220: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
4221: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4222: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
4223: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4224: WHEN fte_freight_pricing_util.g_get_bumped_up_wt_failed THEN
4225: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4226: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_bumped_up_wt_failed');
4227: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4228: WHEN fte_freight_pricing_util.g_parcel_not_eligible THEN
4222: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
4223: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4224: WHEN fte_freight_pricing_util.g_get_bumped_up_wt_failed THEN
4225: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4226: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_bumped_up_wt_failed');
4227: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4228: WHEN fte_freight_pricing_util.g_parcel_not_eligible THEN
4229: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4230: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_parcel_not_eligible');
4223: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4224: WHEN fte_freight_pricing_util.g_get_bumped_up_wt_failed THEN
4225: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4226: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_bumped_up_wt_failed');
4227: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4228: WHEN fte_freight_pricing_util.g_parcel_not_eligible THEN
4229: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4230: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_parcel_not_eligible');
4231: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4224: WHEN fte_freight_pricing_util.g_get_bumped_up_wt_failed THEN
4225: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4226: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_bumped_up_wt_failed');
4227: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4228: WHEN fte_freight_pricing_util.g_parcel_not_eligible THEN
4229: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4230: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_parcel_not_eligible');
4231: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4232: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4226: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_get_bumped_up_wt_failed');
4227: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4228: WHEN fte_freight_pricing_util.g_parcel_not_eligible THEN
4229: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4230: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_parcel_not_eligible');
4231: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4232: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4233: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4234: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4227: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4228: WHEN fte_freight_pricing_util.g_parcel_not_eligible THEN
4229: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4230: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_parcel_not_eligible');
4231: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4232: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4233: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4234: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4235: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4228: WHEN fte_freight_pricing_util.g_parcel_not_eligible THEN
4229: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4230: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_parcel_not_eligible');
4231: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4232: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4233: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4234: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4235: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4236: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4230: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_parcel_not_eligible');
4231: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4232: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4233: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4234: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4235: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4236: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4237: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4238: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4231: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4232: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4233: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4234: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4235: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4236: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4237: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4238: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4239: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4232: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4233: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4234: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4235: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4236: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4237: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4238: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4239: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4240: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4234: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4235: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4236: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4237: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4238: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4239: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4240: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4241: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4242: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4235: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4236: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4237: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4238: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4239: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4240: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4241: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4242: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4243: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4236: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4237: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4238: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4239: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4240: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4241: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4242: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4243: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4244: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4238: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4239: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4240: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4241: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4242: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4243: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4244: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4245: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4246: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4239: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4240: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4241: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4242: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4243: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4244: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4245: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4246: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4247: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4240: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4241: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4242: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4243: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4244: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4245: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4246: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4247: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4248: WHEN fte_freight_pricing_util.g_process_others_failed THEN
4242: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4243: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4244: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4245: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4246: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4247: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4248: WHEN fte_freight_pricing_util.g_process_others_failed THEN
4249: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4250: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_others_failed');
4243: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4244: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4245: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4246: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4247: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4248: WHEN fte_freight_pricing_util.g_process_others_failed THEN
4249: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4250: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_others_failed');
4251: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4244: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4245: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4246: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4247: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4248: WHEN fte_freight_pricing_util.g_process_others_failed THEN
4249: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4250: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_others_failed');
4251: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4252: WHEN others THEN
4246: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4247: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4248: WHEN fte_freight_pricing_util.g_process_others_failed THEN
4249: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4250: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_others_failed');
4251: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4252: WHEN others THEN
4253: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4254: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4247: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4248: WHEN fte_freight_pricing_util.g_process_others_failed THEN
4249: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4250: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_others_failed');
4251: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4252: WHEN others THEN
4253: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4254: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4255: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4250: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_others_failed');
4251: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4252: WHEN others THEN
4253: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4254: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4255: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4256: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4257:
4258:
4251: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4252: WHEN others THEN
4253: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4254: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4255: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4256: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4257:
4258:
4259: END process_parcel;
4252: WHEN others THEN
4253: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4254: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4255: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4256: fte_freight_pricing_util.unset_method(l_log_level,'process_Parcel');
4257:
4258:
4259: END process_parcel;
4260:
4264: -- call qp engine
4265: -- check for min. charge logic
4266: -- make second qp call
4267: PROCEDURE process_others (
4268: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
4269: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4270: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
4271: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
4272: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
4265: -- check for min. charge logic
4266: -- make second qp call
4267: PROCEDURE process_others (
4268: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
4269: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4270: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
4271: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
4272: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
4273: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
4266: -- make second qp call
4267: PROCEDURE process_others (
4268: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
4269: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4270: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
4271: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
4272: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
4273: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
4274: --p_pricing_qualifier IN fte_qual_rec_type,
4267: PROCEDURE process_others (
4268: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
4269: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4270: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
4271: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
4272: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
4273: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
4274: --p_pricing_qualifier IN fte_qual_rec_type,
4275: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
4268: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
4269: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4270: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
4271: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
4272: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
4273: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
4274: --p_pricing_qualifier IN fte_qual_rec_type,
4275: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
4276: x_qp_output_detail_rows OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
4269: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4270: p_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
4271: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
4272: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
4273: p_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
4274: --p_pricing_qualifier IN fte_qual_rec_type,
4275: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
4276: x_qp_output_detail_rows OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
4277: x_return_status OUT NOCOPY VARCHAR2 )
4281: l_event_num NUMBER;
4282: l_set_num NUMBER;
4283: i NUMBER;
4284: j NUMBER;
4285: l_attr_rec fte_freight_pricing.pricing_attribute_rec_type;
4286: l_engine_input_rec fte_freight_pricing.pricing_engine_input_rec_type;
4287: l_attr_row fte_freight_pricing.pricing_attribute_rec_type;
4288: l_charge_applied VARCHAR2(1);
4289:
4282: l_set_num NUMBER;
4283: i NUMBER;
4284: j NUMBER;
4285: l_attr_rec fte_freight_pricing.pricing_attribute_rec_type;
4286: l_engine_input_rec fte_freight_pricing.pricing_engine_input_rec_type;
4287: l_attr_row fte_freight_pricing.pricing_attribute_rec_type;
4288: l_charge_applied VARCHAR2(1);
4289:
4290: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
4283: i NUMBER;
4284: j NUMBER;
4285: l_attr_rec fte_freight_pricing.pricing_attribute_rec_type;
4286: l_engine_input_rec fte_freight_pricing.pricing_engine_input_rec_type;
4287: l_attr_row fte_freight_pricing.pricing_attribute_rec_type;
4288: l_charge_applied VARCHAR2(1);
4289:
4290: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
4291: l_method_name VARCHAR2(50) := 'process_others';
4286: l_engine_input_rec fte_freight_pricing.pricing_engine_input_rec_type;
4287: l_attr_row fte_freight_pricing.pricing_attribute_rec_type;
4288: l_charge_applied VARCHAR2(1);
4289:
4290: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
4291: l_method_name VARCHAR2(50) := 'process_others';
4292: BEGIN
4293: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4294: fte_freight_pricing_util.reset_dbg_vars;
4290: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
4291: l_method_name VARCHAR2(50) := 'process_others';
4292: BEGIN
4293: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4294: fte_freight_pricing_util.reset_dbg_vars;
4295: fte_freight_pricing_util.set_method(l_log_level,'process_others');
4296:
4297: -- create standard engine line and attributes (default stuff created by pattern matching)
4298: l_event_num := fte_qp_engine.G_LINE_EVENT_NUM;
4291: l_method_name VARCHAR2(50) := 'process_others';
4292: BEGIN
4293: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4294: fte_freight_pricing_util.reset_dbg_vars;
4295: fte_freight_pricing_util.set_method(l_log_level,'process_others');
4296:
4297: -- create standard engine line and attributes (default stuff created by pattern matching)
4298: l_event_num := fte_qp_engine.G_LINE_EVENT_NUM;
4299: fte_qp_engine.create_control_record(p_event_num => l_event_num,
4298: l_event_num := fte_qp_engine.G_LINE_EVENT_NUM;
4299: fte_qp_engine.create_control_record(p_event_num => l_event_num,
4300: x_return_status => l_return_status );
4301:
4302: fte_freight_pricing_util.set_location(p_loc=>'after create_control_record ');
4303: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4304: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4305: raise fte_freight_pricing_util.g_create_control_record_failed;
4306: END IF;
4301:
4302: fte_freight_pricing_util.set_location(p_loc=>'after create_control_record ');
4303: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4304: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4305: raise fte_freight_pricing_util.g_create_control_record_failed;
4306: END IF;
4307:
4308: l_set_num := 1;
4309: i := p_pricing_engine_rows.FIRST;
4312: fte_qp_engine.create_line_record (p_pricing_control_rec => p_pricing_control_rec,
4313: p_pricing_engine_input_rec => p_pricing_engine_rows(i),
4314: x_return_status => l_return_status);
4315:
4316: fte_freight_pricing_util.set_location(p_loc=>'after create_line_record. i='||i);
4317: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4318: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4319: raise fte_freight_pricing_util.g_create_line_record_failed;
4320: END IF;
4315:
4316: fte_freight_pricing_util.set_location(p_loc=>'after create_line_record. i='||i);
4317: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4318: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4319: raise fte_freight_pricing_util.g_create_line_record_failed;
4320: END IF;
4321:
4322: fte_qp_engine.prepare_qp_line_qualifiers(
4323: p_event_num => l_event_num,
4324: p_pricing_control_rec => p_pricing_control_rec,
4325: p_input_index => p_pricing_engine_rows(i).input_index,
4326: x_return_status => l_return_status);
4327:
4328: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
4329: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4330: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4331: raise fte_freight_pricing_util.g_create_qualifiers_failed;
4332: END IF;
4327:
4328: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
4329: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4330: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4331: raise fte_freight_pricing_util.g_create_qualifiers_failed;
4332: END IF;
4333:
4334: fte_qp_engine.prepare_qp_line_attributes (
4335: p_event_num => l_event_num,
4336: p_input_index => p_pricing_engine_rows(i).input_index,
4337: p_attr_rows => p_pricing_attribute_rows,
4338: x_return_status => l_return_status);
4339:
4340: fte_freight_pricing_util.set_location(p_loc=>'after create qp line attributes. i='||i);
4341: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4342: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4343: raise fte_freight_pricing_util.g_create_attr_failed;
4344: END IF;
4339:
4340: fte_freight_pricing_util.set_location(p_loc=>'after create qp line attributes. i='||i);
4341: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4342: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4343: raise fte_freight_pricing_util.g_create_attr_failed;
4344: END IF;
4345:
4346: EXIT WHEN i >= p_pricing_engine_rows.LAST;
4347: i := p_pricing_engine_rows.NEXT(i);
4355: fte_qp_engine.call_qp_api ( x_qp_output_line_rows => x_qp_output_line_rows,
4356: x_qp_output_detail_rows => x_qp_output_detail_rows,
4357: x_return_status => l_return_status);
4358:
4359: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api: Event 1');
4360: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4361: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4362: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
4363: END IF;
4358:
4359: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api: Event 1');
4360: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4361: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4362: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
4363: END IF;
4364: END IF;
4365:
4366: --check for errors in the output
4364: END IF;
4365:
4366: --check for errors in the output
4367: fte_qp_engine.check_qp_output_errors (x_return_status => l_return_status);
4368: fte_freight_pricing_util.set_location(p_loc=>'after check_qp_output_errors: Event '||l_event_num);
4369: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4370: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4371: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
4372: END IF;
4367: fte_qp_engine.check_qp_output_errors (x_return_status => l_return_status);
4368: fte_freight_pricing_util.set_location(p_loc=>'after check_qp_output_errors: Event '||l_event_num);
4369: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
4370: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4371: raise fte_freight_pricing_util.g_qp_price_request_failed_2;
4372: END IF;
4373: END IF;
4374:
4375: fte_qp_engine.print_qp_output();
4382: x_qp_output_line_rows => x_qp_output_line_rows,
4383: x_qp_output_detail_rows => x_qp_output_detail_rows,
4384: x_return_status => l_return_status);
4385:
4386: fte_freight_pricing_util.set_location(p_loc=>'after resolve_pricing_objective');
4387: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4388: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4389: raise fte_freight_pricing_util.g_post_process_failed;
4390: END IF;
4385:
4386: fte_freight_pricing_util.set_location(p_loc=>'after resolve_pricing_objective');
4387: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4388: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4389: raise fte_freight_pricing_util.g_post_process_failed;
4390: END IF;
4391:
4392: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4393: EXCEPTION
4388: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4389: raise fte_freight_pricing_util.g_post_process_failed;
4390: END IF;
4391:
4392: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4393: EXCEPTION
4394: WHEN fte_freight_pricing_util.g_post_process_failed THEN
4395: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4396: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
4390: END IF;
4391:
4392: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4393: EXCEPTION
4394: WHEN fte_freight_pricing_util.g_post_process_failed THEN
4395: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4396: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
4397: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4398: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4392: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4393: EXCEPTION
4394: WHEN fte_freight_pricing_util.g_post_process_failed THEN
4395: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4396: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
4397: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4398: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4399: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4400: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4393: EXCEPTION
4394: WHEN fte_freight_pricing_util.g_post_process_failed THEN
4395: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4396: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
4397: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4398: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4399: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4400: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4401: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4394: WHEN fte_freight_pricing_util.g_post_process_failed THEN
4395: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4396: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
4397: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4398: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4399: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4400: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4401: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4402: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4396: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_post_process_failed');
4397: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4398: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4399: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4400: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4401: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4402: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4403: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4404: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4397: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4398: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4399: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4400: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4401: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4402: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4403: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4404: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4405: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4398: WHEN fte_freight_pricing_util.g_create_control_record_failed THEN
4399: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4400: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4401: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4402: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4403: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4404: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4405: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4406: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4400: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_control_record_failed');
4401: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4402: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4403: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4404: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4405: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4406: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4407: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4408: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4401: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4402: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4403: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4404: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4405: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4406: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4407: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4408: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4409: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4402: WHEN fte_freight_pricing_util.g_create_line_record_failed THEN
4403: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4404: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4405: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4406: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4407: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4408: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4409: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4410: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4404: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_line_record_failed');
4405: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4406: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4407: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4408: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4409: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4410: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4411: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4412: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4405: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4406: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4407: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4408: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4409: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4410: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4411: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4412: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4413: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4406: WHEN fte_freight_pricing_util.g_create_qualifiers_failed THEN
4407: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4408: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4409: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4410: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4411: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4412: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4413: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4414: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4408: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_qualifiers_failed');
4409: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4410: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4411: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4412: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4413: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4414: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4415: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4416: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4409: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4410: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4411: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4412: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4413: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4414: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4415: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4416: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4417: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4410: WHEN fte_freight_pricing_util.g_create_attr_failed THEN
4411: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4412: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4413: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4414: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4415: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4416: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4417: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4418: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4412: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4413: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4414: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4415: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4416: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4417: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4418: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4419: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4420: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4413: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4414: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4415: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4416: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4417: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4418: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4419: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4420: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4421: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4414: WHEN fte_freight_pricing_util.g_resolve_pricing_objective THEN
4415: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4416: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4417: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4418: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4419: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4420: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4421: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4422: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4416: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_resolve_pricing_objective');
4417: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4418: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4419: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4420: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4421: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4422: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4423: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4424: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4417: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4418: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4419: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4420: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4421: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4422: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4423: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4424: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4425: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4418: WHEN fte_freight_pricing_util.g_apply_min_charge THEN
4419: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4420: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4421: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4422: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4423: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4424: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4425: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4426: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4420: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_apply_min_charge');
4421: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4422: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4423: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4424: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4425: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4426: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4427: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4428: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4421: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4422: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4423: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4424: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4425: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4426: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4427: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4428: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4429: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4422: WHEN fte_freight_pricing_util.g_total_shipment_weight_failed THEN
4423: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4424: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4425: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4426: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4427: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4428: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4429: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4430: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
4424: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_total_shipment_weight_failed');
4425: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4426: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4427: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4428: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4429: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4430: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
4431: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4432: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
4425: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4426: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4427: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4428: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4429: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4430: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
4431: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4432: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
4433: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4426: WHEN fte_freight_pricing_util.g_qp_price_request_failed_2 THEN
4427: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4428: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4429: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4430: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
4431: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4432: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
4433: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4434: WHEN others THEN
4428: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_qp_price_request_failed_2');
4429: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4430: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
4431: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4432: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
4433: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4434: WHEN others THEN
4435: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4436: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4429: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4430: WHEN fte_freight_pricing_util.g_prepare_next_event_failed THEN
4431: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4432: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
4433: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4434: WHEN others THEN
4435: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4436: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4437: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4432: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_prepare_next_event_failed');
4433: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4434: WHEN others THEN
4435: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4436: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4437: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4438: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4439:
4440: END process_others;
4433: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4434: WHEN others THEN
4435: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4436: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4437: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4438: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4439:
4440: END process_others;
4441:
4434: WHEN others THEN
4435: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4436: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4437: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4438: fte_freight_pricing_util.unset_method(l_log_level,'process_others');
4439:
4440: END process_others;
4441:
4442:
4447: -- If no special conditions apply, standard code is executed (process_others). It still needs to check for min. charges
4448: -- if enabled.
4449:
4450: PROCEDURE process_special_conditions(
4451: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
4452: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4453: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
4454: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
4455: x_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
4448: -- if enabled.
4449:
4450: PROCEDURE process_special_conditions(
4451: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
4452: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4453: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
4454: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
4455: x_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
4456: x_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
4449:
4450: PROCEDURE process_special_conditions(
4451: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
4452: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4453: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
4454: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
4455: x_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
4456: x_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
4457: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
4450: PROCEDURE process_special_conditions(
4451: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
4452: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4453: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
4454: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
4455: x_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
4456: x_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
4457: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
4458: x_qp_output_detail_rows OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
4451: p_pricing_control_rec IN fte_freight_pricing.pricing_control_input_rec_type,
4452: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4453: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
4454: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
4455: x_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
4456: x_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
4457: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
4458: x_qp_output_detail_rows OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
4459: x_return_status OUT NOCOPY VARCHAR2 )
4452: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4453: p_pattern_rows IN fte_freight_pricing.top_level_pattern_tab_type,
4454: p_pricing_dual_instances IN fte_freight_pricing.pricing_dual_instance_tab_type,
4455: x_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
4456: x_pricing_attribute_rows IN OUT NOCOPY fte_freight_pricing.pricing_attribute_tab_type,
4457: x_qp_output_line_rows OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
4458: x_qp_output_detail_rows OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
4459: x_return_status OUT NOCOPY VARCHAR2 )
4460: IS
4460: IS
4461:
4462: l_return_status VARCHAR2(1);
4463:
4464: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
4465: l_method_name VARCHAR2(50) := 'process_special_conditions';
4466: BEGIN
4467:
4468: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4465: l_method_name VARCHAR2(50) := 'process_special_conditions';
4466: BEGIN
4467:
4468: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4469: fte_freight_pricing_util.reset_dbg_vars;
4470: fte_freight_pricing_util.set_method(l_log_level,l_method_name);
4471: -- check if lane function is LTL or PARCEL.
4472:
4473: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'p_pricing_control_rec.currency_code = '||p_pricing_control_rec.currency_code);
4466: BEGIN
4467:
4468: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4469: fte_freight_pricing_util.reset_dbg_vars;
4470: fte_freight_pricing_util.set_method(l_log_level,l_method_name);
4471: -- check if lane function is LTL or PARCEL.
4472:
4473: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'p_pricing_control_rec.currency_code = '||p_pricing_control_rec.currency_code);
4474:
4469: fte_freight_pricing_util.reset_dbg_vars;
4470: fte_freight_pricing_util.set_method(l_log_level,l_method_name);
4471: -- check if lane function is LTL or PARCEL.
4472:
4473: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'p_pricing_control_rec.currency_code = '||p_pricing_control_rec.currency_code);
4474:
4475: IF (p_pricing_control_rec.currency_code IS NULL) THEN
4476: raise fte_freight_pricing_util.g_no_currency_found;
4477: END IF;
4472:
4473: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_DBG,'p_pricing_control_rec.currency_code = '||p_pricing_control_rec.currency_code);
4474:
4475: IF (p_pricing_control_rec.currency_code IS NULL) THEN
4476: raise fte_freight_pricing_util.g_no_currency_found;
4477: END IF;
4478:
4479: IF (p_pricing_control_rec.lane_id IS NULL) THEN
4480: raise fte_freight_pricing_util.g_no_lane_found;
4476: raise fte_freight_pricing_util.g_no_currency_found;
4477: END IF;
4478:
4479: IF (p_pricing_control_rec.lane_id IS NULL) THEN
4480: raise fte_freight_pricing_util.g_no_lane_found;
4481: END IF;
4482:
4483: --IF (p_pricing_control_rec.lane_id IS NULL) THEN
4484: IF (p_pricing_control_rec.price_list_id IS NULL) THEN
4481: END IF;
4482:
4483: --IF (p_pricing_control_rec.lane_id IS NULL) THEN
4484: IF (p_pricing_control_rec.price_list_id IS NULL) THEN
4485: raise fte_freight_pricing_util.g_no_price_list_on_lane;
4486: END IF;
4487:
4488: IF (p_pricing_control_rec.party_id IS NULL) THEN
4489: raise fte_freight_pricing_util.g_no_party_id_found;
4485: raise fte_freight_pricing_util.g_no_price_list_on_lane;
4486: END IF;
4487:
4488: IF (p_pricing_control_rec.party_id IS NULL) THEN
4489: raise fte_freight_pricing_util.g_no_party_id_found;
4490: END IF;
4491:
4492:
4493:
4501: x_qp_output_line_rows => x_qp_output_line_rows,
4502: x_qp_output_detail_rows => x_qp_output_detail_rows,
4503: x_return_status => l_return_status );
4504:
4505: fte_freight_pricing_util.set_location(p_loc=>'after process_LTL ');
4506: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4507: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4508: raise fte_freight_pricing_util.g_process_LTL_failed;
4509: END IF;
4504:
4505: fte_freight_pricing_util.set_location(p_loc=>'after process_LTL ');
4506: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4507: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4508: raise fte_freight_pricing_util.g_process_LTL_failed;
4509: END IF;
4510:
4511: ELSIF ( isParcel = 'Y') THEN
4512: process_Parcel(p_pricing_control_rec => p_pricing_control_rec,
4518: x_qp_output_line_rows => x_qp_output_line_rows,
4519: x_qp_output_detail_rows => x_qp_output_detail_rows,
4520: x_return_status => l_return_status );
4521:
4522: fte_freight_pricing_util.set_location(p_loc=>'after process_Parcel ');
4523: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4524: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4525: raise fte_freight_pricing_util.g_process_Parcel_failed;
4526: END IF;
4521:
4522: fte_freight_pricing_util.set_location(p_loc=>'after process_Parcel ');
4523: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4524: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4525: raise fte_freight_pricing_util.g_process_Parcel_failed;
4526: END IF;
4527: ELSE
4528: --
4529: -- 03/08/02 : None : need to call standard qp call + chekc for min. charge + new call if applicable
4536: x_qp_output_line_rows => x_qp_output_line_rows,
4537: x_qp_output_detail_rows => x_qp_output_detail_rows,
4538: x_return_status => l_return_status );
4539:
4540: fte_freight_pricing_util.set_location(p_loc=>'after process_others ');
4541: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4542: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4543: raise fte_freight_pricing_util.g_process_others_failed;
4544: END IF;
4539:
4540: fte_freight_pricing_util.set_location(p_loc=>'after process_others ');
4541: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4542: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4543: raise fte_freight_pricing_util.g_process_others_failed;
4544: END IF;
4545:
4546: END IF;
4547:
4544: END IF;
4545:
4546: END IF;
4547:
4548: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4549: EXCEPTION
4550: WHEN fte_freight_pricing_util.g_no_party_id_found THEN
4551: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4552: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_party_id_found');
4546: END IF;
4547:
4548: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4549: EXCEPTION
4550: WHEN fte_freight_pricing_util.g_no_party_id_found THEN
4551: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4552: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_party_id_found');
4553: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4554: WHEN fte_freight_pricing_util.g_no_price_list_on_lane THEN
4548: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4549: EXCEPTION
4550: WHEN fte_freight_pricing_util.g_no_party_id_found THEN
4551: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4552: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_party_id_found');
4553: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4554: WHEN fte_freight_pricing_util.g_no_price_list_on_lane THEN
4555: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4556: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_price_list_on_lane');
4549: EXCEPTION
4550: WHEN fte_freight_pricing_util.g_no_party_id_found THEN
4551: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4552: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_party_id_found');
4553: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4554: WHEN fte_freight_pricing_util.g_no_price_list_on_lane THEN
4555: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4556: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_price_list_on_lane');
4557: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4550: WHEN fte_freight_pricing_util.g_no_party_id_found THEN
4551: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4552: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_party_id_found');
4553: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4554: WHEN fte_freight_pricing_util.g_no_price_list_on_lane THEN
4555: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4556: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_price_list_on_lane');
4557: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4558: WHEN fte_freight_pricing_util.g_no_lane_found THEN
4552: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_party_id_found');
4553: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4554: WHEN fte_freight_pricing_util.g_no_price_list_on_lane THEN
4555: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4556: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_price_list_on_lane');
4557: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4558: WHEN fte_freight_pricing_util.g_no_lane_found THEN
4559: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4560: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_lane_found');
4553: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4554: WHEN fte_freight_pricing_util.g_no_price_list_on_lane THEN
4555: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4556: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_price_list_on_lane');
4557: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4558: WHEN fte_freight_pricing_util.g_no_lane_found THEN
4559: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4560: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_lane_found');
4561: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4554: WHEN fte_freight_pricing_util.g_no_price_list_on_lane THEN
4555: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4556: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_price_list_on_lane');
4557: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4558: WHEN fte_freight_pricing_util.g_no_lane_found THEN
4559: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4560: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_lane_found');
4561: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4562: WHEN fte_freight_pricing_util.g_no_currency_found THEN
4556: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_price_list_on_lane');
4557: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4558: WHEN fte_freight_pricing_util.g_no_lane_found THEN
4559: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4560: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_lane_found');
4561: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4562: WHEN fte_freight_pricing_util.g_no_currency_found THEN
4563: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4564: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_currency_found');
4557: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4558: WHEN fte_freight_pricing_util.g_no_lane_found THEN
4559: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4560: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_lane_found');
4561: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4562: WHEN fte_freight_pricing_util.g_no_currency_found THEN
4563: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4564: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_currency_found');
4565: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4558: WHEN fte_freight_pricing_util.g_no_lane_found THEN
4559: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4560: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_lane_found');
4561: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4562: WHEN fte_freight_pricing_util.g_no_currency_found THEN
4563: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4564: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_currency_found');
4565: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4566: WHEN fte_freight_pricing_util.g_process_LTL_failed THEN
4560: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_lane_found');
4561: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4562: WHEN fte_freight_pricing_util.g_no_currency_found THEN
4563: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4564: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_currency_found');
4565: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4566: WHEN fte_freight_pricing_util.g_process_LTL_failed THEN
4567: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4568: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_failed');
4561: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4562: WHEN fte_freight_pricing_util.g_no_currency_found THEN
4563: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4564: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_currency_found');
4565: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4566: WHEN fte_freight_pricing_util.g_process_LTL_failed THEN
4567: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4568: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_failed');
4569: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4562: WHEN fte_freight_pricing_util.g_no_currency_found THEN
4563: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4564: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_currency_found');
4565: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4566: WHEN fte_freight_pricing_util.g_process_LTL_failed THEN
4567: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4568: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_failed');
4569: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4570: WHEN fte_freight_pricing_util.g_process_Parcel_failed THEN
4564: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_no_currency_found');
4565: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4566: WHEN fte_freight_pricing_util.g_process_LTL_failed THEN
4567: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4568: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_failed');
4569: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4570: WHEN fte_freight_pricing_util.g_process_Parcel_failed THEN
4571: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4572: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_Parcel_failed');
4565: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4566: WHEN fte_freight_pricing_util.g_process_LTL_failed THEN
4567: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4568: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_failed');
4569: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4570: WHEN fte_freight_pricing_util.g_process_Parcel_failed THEN
4571: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4572: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_Parcel_failed');
4573: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4566: WHEN fte_freight_pricing_util.g_process_LTL_failed THEN
4567: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4568: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_failed');
4569: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4570: WHEN fte_freight_pricing_util.g_process_Parcel_failed THEN
4571: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4572: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_Parcel_failed');
4573: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4574: WHEN fte_freight_pricing_util.g_process_others_failed THEN
4568: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_LTL_failed');
4569: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4570: WHEN fte_freight_pricing_util.g_process_Parcel_failed THEN
4571: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4572: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_Parcel_failed');
4573: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4574: WHEN fte_freight_pricing_util.g_process_others_failed THEN
4575: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4576: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4569: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4570: WHEN fte_freight_pricing_util.g_process_Parcel_failed THEN
4571: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4572: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_Parcel_failed');
4573: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4574: WHEN fte_freight_pricing_util.g_process_others_failed THEN
4575: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4576: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4577: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4570: WHEN fte_freight_pricing_util.g_process_Parcel_failed THEN
4571: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4572: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_Parcel_failed');
4573: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4574: WHEN fte_freight_pricing_util.g_process_others_failed THEN
4575: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4576: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4577: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4578: WHEN others THEN
4572: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_process_Parcel_failed');
4573: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4574: WHEN fte_freight_pricing_util.g_process_others_failed THEN
4575: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4576: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4577: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4578: WHEN others THEN
4579: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4580: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4573: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4574: WHEN fte_freight_pricing_util.g_process_others_failed THEN
4575: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4576: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4577: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4578: WHEN others THEN
4579: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4580: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4581: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4576: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_create_attr_failed');
4577: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4578: WHEN others THEN
4579: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4580: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4581: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4582: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4583:
4584: END process_special_conditions;
4577: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4578: WHEN others THEN
4579: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4580: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4581: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4582: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4583:
4584: END process_special_conditions;
4585:
4578: WHEN others THEN
4579: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4580: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'g_others');
4581: fte_freight_pricing_util.print_msg(fte_freight_pricing_util.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4582: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
4583:
4584: END process_special_conditions;
4585:
4586: -- J+ enhancement for container_all rate basis
4585:
4586: -- J+ enhancement for container_all rate basis
4587: -- this procedure is called by shipment_pricing to rate container_all basis
4588: PROCEDURE rate_container_all(
4589: p_lane_info IN fte_freight_pricing.lane_info_rec_type,
4590: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4591: p_save_flag IN VARCHAR2,
4592: p_currency_code IN VARCHAR2 ,
4593: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4586: -- J+ enhancement for container_all rate basis
4587: -- this procedure is called by shipment_pricing to rate container_all basis
4588: PROCEDURE rate_container_all(
4589: p_lane_info IN fte_freight_pricing.lane_info_rec_type,
4590: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4591: p_save_flag IN VARCHAR2,
4592: p_currency_code IN VARCHAR2 ,
4593: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4594: x_freight_cost_temp_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
4589: p_lane_info IN fte_freight_pricing.lane_info_rec_type,
4590: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4591: p_save_flag IN VARCHAR2,
4592: p_currency_code IN VARCHAR2 ,
4593: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4594: x_freight_cost_temp_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
4595: x_freight_cost_main_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4596: x_freight_cost_temp_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
4597: x_fc_main_update_rows OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4590: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
4591: p_save_flag IN VARCHAR2,
4592: p_currency_code IN VARCHAR2 ,
4593: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4594: x_freight_cost_temp_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
4595: x_freight_cost_main_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4596: x_freight_cost_temp_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
4597: x_fc_main_update_rows OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4598: x_summary_lanesched_price OUT NOCOPY NUMBER,
4591: p_save_flag IN VARCHAR2,
4592: p_currency_code IN VARCHAR2 ,
4593: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4594: x_freight_cost_temp_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
4595: x_freight_cost_main_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4596: x_freight_cost_temp_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
4597: x_fc_main_update_rows OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4598: x_summary_lanesched_price OUT NOCOPY NUMBER,
4599: x_summary_lanesched_price_uom OUT NOCOPY VARCHAR2,
4592: p_currency_code IN VARCHAR2 ,
4593: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4594: x_freight_cost_temp_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
4595: x_freight_cost_main_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4596: x_freight_cost_temp_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
4597: x_fc_main_update_rows OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4598: x_summary_lanesched_price OUT NOCOPY NUMBER,
4599: x_summary_lanesched_price_uom OUT NOCOPY VARCHAR2,
4600: x_return_status OUT NOCOPY VARCHAR2 )
4593: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4594: x_freight_cost_temp_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
4595: x_freight_cost_main_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4596: x_freight_cost_temp_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
4597: x_fc_main_update_rows OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
4598: x_summary_lanesched_price OUT NOCOPY NUMBER,
4599: x_summary_lanesched_price_uom OUT NOCOPY VARCHAR2,
4600: x_return_status OUT NOCOPY VARCHAR2 )
4601: IS
4598: x_summary_lanesched_price OUT NOCOPY NUMBER,
4599: x_summary_lanesched_price_uom OUT NOCOPY VARCHAR2,
4600: x_return_status OUT NOCOPY VARCHAR2 )
4601: IS
4602: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
4603: l_method_name VARCHAR2(50) := 'rate_container_all';
4604: l_return_status VARCHAR2(1);
4605:
4606: l_pricing_control_rec fte_freight_pricing.pricing_control_input_rec_type;
4602: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
4603: l_method_name VARCHAR2(50) := 'rate_container_all';
4604: l_return_status VARCHAR2(1);
4605:
4606: l_pricing_control_rec fte_freight_pricing.pricing_control_input_rec_type;
4607: l_pricing_engine_rows fte_freight_pricing.pricing_engine_input_tab_type;
4608: l_engine_row_count NUMBER;
4609: l_pricing_attribute_rows fte_freight_pricing.pricing_attribute_tab_type;
4610:
4603: l_method_name VARCHAR2(50) := 'rate_container_all';
4604: l_return_status VARCHAR2(1);
4605:
4606: l_pricing_control_rec fte_freight_pricing.pricing_control_input_rec_type;
4607: l_pricing_engine_rows fte_freight_pricing.pricing_engine_input_tab_type;
4608: l_engine_row_count NUMBER;
4609: l_pricing_attribute_rows fte_freight_pricing.pricing_attribute_tab_type;
4610:
4611: l_qp_output_line_rows QP_PREQ_GRP.LINE_TBL_TYPE;
4605:
4606: l_pricing_control_rec fte_freight_pricing.pricing_control_input_rec_type;
4607: l_pricing_engine_rows fte_freight_pricing.pricing_engine_input_tab_type;
4608: l_engine_row_count NUMBER;
4609: l_pricing_attribute_rows fte_freight_pricing.pricing_attribute_tab_type;
4610:
4611: l_qp_output_line_rows QP_PREQ_GRP.LINE_TBL_TYPE;
4612: l_qp_output_detail_rows QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE;
4613:
4618: l_currency_code VARCHAR2(30);
4619: l_lane_function VARCHAR2(30);
4620: l_charge_applied VARCHAR2(1);
4621:
4622: l_fc_rec fte_freight_pricing.top_level_fc_rec_type;
4623: l_fc_charge_rec fte_freight_pricing.top_level_fc_rec_type;
4624: n NUMBER;
4625: l_line_price_amount NUMBER;
4626: l_line_charge_amount NUMBER;
4619: l_lane_function VARCHAR2(30);
4620: l_charge_applied VARCHAR2(1);
4621:
4622: l_fc_rec fte_freight_pricing.top_level_fc_rec_type;
4623: l_fc_charge_rec fte_freight_pricing.top_level_fc_rec_type;
4624: n NUMBER;
4625: l_line_price_amount NUMBER;
4626: l_line_charge_amount NUMBER;
4627: l_line_discount_amount NUMBER;
4640:
4641: BEGIN
4642: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4643:
4644: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
4645: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,l_method_name);
4646:
4647: -- group top level containers into pricing engine input lines by container_type
4648: -- set up the pricing attributes for each input line
4641: BEGIN
4642: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4643:
4644: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
4645: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,l_method_name);
4646:
4647: -- group top level containers into pricing engine input lines by container_type
4648: -- set up the pricing attributes for each input line
4649: -- call QP
4652: -- prepare second call to qp
4653: -- process qp output
4654: -- distribute qp output back to top level containers
4655:
4656: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_top_level_rows.COUNT='||p_top_level_rows.COUNT);
4657: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_save_flag='||p_save_flag);
4658:
4659: OPEN get_uom_for_each;
4660: FETCH get_uom_for_each INTO l_uom_ea;
4653: -- process qp output
4654: -- distribute qp output back to top level containers
4655:
4656: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_top_level_rows.COUNT='||p_top_level_rows.COUNT);
4657: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_save_flag='||p_save_flag);
4658:
4659: OPEN get_uom_for_each;
4660: FETCH get_uom_for_each INTO l_uom_ea;
4661: CLOSE get_uom_for_each;
4660: FETCH get_uom_for_each INTO l_uom_ea;
4661: CLOSE get_uom_for_each;
4662:
4663: IF l_uom_ea is null THEN
4664: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'uom for each is null');
4665: raise FND_API.G_EXC_ERROR;
4666: END IF;
4667:
4668: -- Modified for 12i for Multi currency support.
4665: raise FND_API.G_EXC_ERROR;
4666: END IF;
4667:
4668: -- Modified for 12i for Multi currency support.
4669: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_currency_code '|| p_currency_code);
4670:
4671: IF p_currency_code IS NOT NULL THEN
4672: l_currency_code := p_currency_code;
4673: ELSE
4670:
4671: IF p_currency_code IS NOT NULL THEN
4672: l_currency_code := p_currency_code;
4673: ELSE
4674: fte_freight_pricing.get_currency_code(
4675: p_carrier_id => p_lane_info.carrier_id,
4676: x_currency_code => l_currency_code,
4677: x_return_status => l_return_status );
4678: END IF;
4678: END IF;
4679:
4680: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS and
4681: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4682: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'get currency code failed');
4683: raise FND_API.G_EXC_ERROR;
4684: END IF;
4685:
4686: -- group top level rows by container type into pricing engine rows
4689: i := p_top_level_rows.FIRST;
4690: IF (i is not null) THEN
4691: LOOP
4692: IF ((p_top_level_rows(i).container_flag IS NULL) OR (p_top_level_rows(i).container_flag = 'N')) THEN
4693: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'top level loose item cannot be rated in rate basis CONTAINER_ALL');
4694: raise FND_API.G_EXC_ERROR;
4695: END IF;
4696: IF p_top_level_rows(i).container_type_code is null THEN
4697: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'top level container type code is null, cannot be rated in rate basis CONTAINER_ALL');
4693: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'top level loose item cannot be rated in rate basis CONTAINER_ALL');
4694: raise FND_API.G_EXC_ERROR;
4695: END IF;
4696: IF p_top_level_rows(i).container_type_code is null THEN
4697: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'top level container type code is null, cannot be rated in rate basis CONTAINER_ALL');
4698: raise FND_API.G_EXC_ERROR;
4699: END IF;
4700:
4701: IF l_engine_row_count = 0 THEN
4732: i := p_top_level_rows.NEXT(i);
4733: END LOOP;
4734: END IF;
4735:
4736: fte_freight_pricing.print_engine_rows (
4737: p_engine_rows => l_pricing_engine_rows,
4738: x_return_status => l_return_status );
4739:
4740: initialize(
4797: l_event_num := fte_qp_engine.G_LINE_EVENT_NUM;
4798: fte_qp_engine.create_control_record(p_event_num => l_event_num,
4799: x_return_status => l_return_status );
4800:
4801: fte_freight_pricing_util.set_location(p_loc=>'after create_control_record ');
4802: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4803: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4804: raise FND_API.G_EXC_ERROR;
4805: END IF;
4811: fte_qp_engine.create_line_record (p_pricing_control_rec => l_pricing_control_rec,
4812: p_pricing_engine_input_rec => l_pricing_engine_rows(i),
4813: x_return_status => l_return_status);
4814:
4815: fte_freight_pricing_util.set_location(p_loc=>'after create_line_record. i='||i);
4816: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4817: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4818: raise FND_API.G_EXC_ERROR;
4819: END IF;
4823: p_pricing_control_rec => l_pricing_control_rec,
4824: p_input_index => l_pricing_engine_rows(i).input_index,
4825: x_return_status => l_return_status);
4826:
4827: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
4828: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4829: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4830: raise FND_API.G_EXC_ERROR;
4831: END IF;
4835: p_input_index => l_pricing_engine_rows(i).input_index,
4836: p_attr_rows => l_pricing_attribute_rows,
4837: x_return_status => l_return_status);
4838:
4839: fte_freight_pricing_util.set_location(p_loc=>'after create qp line attributes. i='||i);
4840: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4841: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4842: raise FND_API.G_EXC_ERROR;
4843: END IF;
4851: fte_qp_engine.call_qp_api ( x_qp_output_line_rows => l_qp_output_line_rows,
4852: x_qp_output_detail_rows => l_qp_output_detail_rows,
4853: x_return_status => l_return_status);
4854:
4855: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api: Event 1');
4856: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4857: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4858: raise FND_API.G_EXC_ERROR;
4859: END IF;
4859: END IF;
4860:
4861: --check for errors in the output
4862: fte_qp_engine.check_qp_output_errors (x_return_status => l_return_status);
4863: fte_freight_pricing_util.set_location(p_loc=>'after check_qp_output_errors: Event '||l_event_num);
4864: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4865: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4866: raise FND_API.G_EXC_ERROR;
4867: END IF;
4874: p_event_num => l_event_num,
4875: x_charge_applied => l_charge_applied,
4876: x_return_status => l_return_status);
4877:
4878: fte_freight_pricing_util.set_location(p_loc=>'after apply_min_charge ');
4879: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4880: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4881: raise FND_API.G_EXC_ERROR;
4882: END IF;
4886: IF (l_charge_applied = 'Y') THEN
4887: l_event_num := fte_qp_engine.G_CHARGE_EVENT_NUM;
4888: fte_qp_engine.prepare_next_event_request ( x_return_status => l_return_status);
4889:
4890: fte_freight_pricing_util.set_location(p_loc=>'after prepare_next_event_request');
4891: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4892: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
4893: raise FND_API.G_EXC_ERROR;
4894: END IF;
4896: fte_qp_engine.call_qp_api ( x_qp_output_line_rows => l_qp_output_line_rows,
4897: x_qp_output_detail_rows => l_qp_output_detail_rows,
4898: x_return_status => l_return_status);
4899:
4900: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api: Event 2');
4901: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4902: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4903: raise FND_API.G_EXC_ERROR;
4904: END IF;
4904: END IF;
4905:
4906: --check for errors in the output
4907: fte_qp_engine.check_qp_output_errors (x_return_status => l_return_status);
4908: fte_freight_pricing_util.set_location(p_loc=>'after check_qp_output_errors: Event '||l_event_num);
4909: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
4910: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
4911: raise FND_API.G_EXC_ERROR;
4912: END IF;
4951: l_fc_charge_rec.unit_amount := l_fc_charge_rec.total_amount;
4952:
4953: l_fc_charge_rec.line_type_code := 'CHARGE';
4954:
4955: fte_freight_pricing.get_fc_type_id(
4956: p_line_type_code => 'FTECHARGE',
4957: p_charge_subtype_code => l_qp_output_detail_rows(j).charge_subtype_code,
4958: x_freight_cost_type_id => l_fc_charge_rec.freight_cost_type_id,
4959: x_return_status => l_return_status);
4965: l_line_discount_amount := l_line_discount_amount + l_fc_charge_rec.total_amount;
4966:
4967: l_fc_charge_rec.line_type_code := 'DISCOUNT';
4968:
4969: fte_freight_pricing.get_fc_type_id(
4970: p_line_type_code => 'FTEDISCOUNT',
4971: p_charge_subtype_code => 'DISCOUNT',
4972: x_freight_cost_type_id => l_fc_charge_rec.freight_cost_type_id,
4973: x_return_status => l_return_status);
4989: IF p_save_flag = 'M' THEN
4990: x_freight_cost_main_charge(l_charge_count).delivery_detail_id := p_top_level_rows(n).content_id;
4991: x_freight_cost_main_charge(l_charge_count).delivery_leg_id := p_top_level_rows(n).delivery_leg_id;
4992: x_freight_cost_main_charge(l_charge_count).delivery_id :=
4993: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
4994: x_freight_cost_main_charge(l_charge_count).uom := l_fc_rec.uom;
4995: x_freight_cost_main_charge(l_charge_count).quantity := 1;
4996: x_freight_cost_main_charge(l_charge_count).line_type_code := l_fc_charge_rec.line_type_code;
4997: x_freight_cost_main_charge(l_charge_count).freight_cost_type_id := l_fc_charge_rec.freight_cost_type_id;
5008: x_freight_cost_main_charge(l_charge_count).estimated_flag := 'Y';
5009: ELSE
5010: x_freight_cost_temp_charge(l_charge_count).delivery_detail_id := p_top_level_rows(n).content_id;
5011: x_freight_cost_temp_charge(l_charge_count).delivery_id :=
5012: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
5013: x_freight_cost_temp_charge(l_charge_count).uom := l_fc_rec.uom;
5014: x_freight_cost_temp_charge(l_charge_count).quantity := 1;
5015: x_freight_cost_temp_charge(l_charge_count).line_type_code := l_fc_charge_rec.line_type_code;
5016: x_freight_cost_temp_charge(l_charge_count).freight_cost_type_id := l_fc_charge_rec.freight_cost_type_id;
5047: l_fc_rec.unit_amount := l_line_price_amount - l_line_discount_amount;
5048: l_fc_rec.total_amount := l_fc_rec.unit_amount + l_line_charge_amount;
5049: l_fc_rec.line_type_code := 'PRICE';
5050:
5051: fte_freight_pricing.get_fc_type_id(
5052: p_line_type_code => 'FTEPRICE',
5053: p_charge_subtype_code => 'PRICE',
5054: x_freight_cost_type_id => l_fc_rec.freight_cost_type_id,
5055: x_return_status => l_return_status);
5071: l_price_count := l_price_count + 1;
5072:
5073: --4294663
5074: l_delivery_id :=
5075: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
5076:
5077: IF (NOT(l_delivery_id_array.EXISTS(l_delivery_id)))
5078: THEN
5079: l_delivery_id_array(l_delivery_id):=l_delivery_id;
5093: IF p_save_flag = 'M' THEN
5094: x_freight_cost_main_price(l_price_count).delivery_detail_id := p_top_level_rows(n).content_id;
5095: x_freight_cost_main_price(l_price_count).delivery_leg_id := p_top_level_rows(n).delivery_leg_id;
5096: x_freight_cost_main_price(l_price_count).delivery_id :=
5097: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
5098: x_freight_cost_main_price(l_price_count).uom := l_fc_rec.uom;
5099: x_freight_cost_main_price(l_price_count).quantity := 1;
5100: x_freight_cost_main_price(l_price_count).line_type_code := l_fc_rec.line_type_code;
5101: x_freight_cost_main_price(l_price_count).freight_cost_type_id := l_fc_rec.freight_cost_type_id;
5111: ELSE
5112: x_freight_cost_temp_price(l_price_count).delivery_detail_id := p_top_level_rows(n).content_id;
5113: --x_freight_cost_temp_price(l_price_count).delivery_leg_id := p_top_level_rows(n).delivery_leg_id;
5114: x_freight_cost_temp_price(l_price_count).delivery_id :=
5115: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
5116: x_freight_cost_temp_price(l_price_count).uom := l_fc_rec.uom;
5117: x_freight_cost_temp_price(l_price_count).quantity := 1;
5118: x_freight_cost_temp_price(l_price_count).line_type_code := l_fc_rec.line_type_code;
5119: x_freight_cost_temp_price(l_price_count).freight_cost_type_id := l_fc_rec.freight_cost_type_id;
5141: END IF;
5142:
5143: -- create the summary record
5144:
5145: fte_freight_pricing.get_fc_type_id(
5146: p_line_type_code => 'FTESUMMARY',
5147: p_charge_subtype_code => 'SUMMARY',
5148: x_freight_cost_type_id => l_freight_cost_type_id,
5149: x_return_status => l_return_status);
5161: LOOP
5162:
5163: x_fc_main_update_rows(j).delivery_leg_id := l_leg_id_array(i);
5164: x_fc_main_update_rows(j).delivery_id := l_delivery_id_array(i);
5165: x_fc_main_update_rows(j).freight_cost_id := fte_freight_pricing.get_fc_id_from_dleg(l_leg_id_array(i));
5166: x_fc_main_update_rows(j).line_type_code := 'SUMMARY';
5167: x_fc_main_update_rows(j).freight_cost_type_id := l_freight_cost_type_id;
5168: x_fc_main_update_rows(j).unit_amount := round(l_delivery_summary(l_delivery_id_array(i)),2);
5169: x_fc_main_update_rows(j).total_amount := round(l_delivery_summary(l_delivery_id_array(i)),2);
5202:
5203: x_summary_lanesched_price := round(l_summary_amount,2);
5204: x_summary_lanesched_price_uom := l_currency_code;
5205:
5206: FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,l_method_name);
5207:
5208: EXCEPTION
5209:
5210: WHEN FND_API.G_EXC_ERROR THEN
5208: EXCEPTION
5209:
5210: WHEN FND_API.G_EXC_ERROR THEN
5211: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5212: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
5213: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5214: WHEN others THEN
5215: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5216: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5209:
5210: WHEN FND_API.G_EXC_ERROR THEN
5211: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5212: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
5213: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5214: WHEN others THEN
5215: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5216: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5217: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
5212: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
5213: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5214: WHEN others THEN
5215: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5216: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5217: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
5218: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5219: END;
5220:
5213: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5214: WHEN others THEN
5215: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5216: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5217: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
5218: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5219: END;
5220:
5221: -- J+ enhancement for LTL rating to include container weight
5214: WHEN others THEN
5215: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5216: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5217: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
5218: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5219: END;
5220:
5221: -- J+ enhancement for LTL rating to include container weight
5222: -- this procedure is called by distribute_LTL_container_wt to get the LTL container weight
5221: -- J+ enhancement for LTL rating to include container weight
5222: -- this procedure is called by distribute_LTL_container_wt to get the LTL container weight
5223: -- container weight to be included in LTL rating is the top level container's tare weight
5224: PROCEDURE get_LTL_container_weight(
5225: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
5226: x_total_container_weight OUT NOCOPY NUMBER,
5227: x_weight_uom OUT NOCOPY VARCHAR2,
5228: x_return_status OUT NOCOPY VARCHAR2 )
5229: IS
5226: x_total_container_weight OUT NOCOPY NUMBER,
5227: x_weight_uom OUT NOCOPY VARCHAR2,
5228: x_return_status OUT NOCOPY VARCHAR2 )
5229: IS
5230: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
5231: l_method_name VARCHAR2(50) := 'get_LTL_container_weight';
5232: l_return_status VARCHAR2(1);
5233: i NUMBER;
5234: l_tmp NUMBER;
5234: l_tmp NUMBER;
5235: BEGIN
5236: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5237:
5238: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
5239: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,l_method_name);
5240:
5241: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_top_level_rows.COUNT='||p_top_level_rows.COUNT);
5242:
5235: BEGIN
5236: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5237:
5238: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
5239: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,l_method_name);
5240:
5241: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_top_level_rows.COUNT='||p_top_level_rows.COUNT);
5242:
5243: x_total_container_weight := 0;
5237:
5238: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
5239: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,l_method_name);
5240:
5241: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_top_level_rows.COUNT='||p_top_level_rows.COUNT);
5242:
5243: x_total_container_weight := 0;
5244: x_weight_uom := null;
5245:
5248: LOOP
5249: IF (((p_top_level_rows(i).container_flag = 'Y') OR (p_top_level_rows(i).container_flag = 'C')) and (p_top_level_rows(i).wdd_tare_weight > 0)) THEN
5250:
5251: IF p_top_level_rows(i).wdd_weight_uom_code is null THEN
5252: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'top level container tare weight > 0 and weight uom is null');
5253: raise FND_API.G_EXC_ERROR;
5254: END IF;
5255:
5256: IF x_weight_uom is NULL THEN
5265: x_weight_uom,
5266: p_top_level_rows(i).wdd_tare_weight,
5267: NULL,0);
5268: IF l_tmp <= 0 THEN
5269: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'WSH_WV_UTILS.convert_uom return 0');
5270: raise FND_API.G_EXC_ERROR;
5271: ELSE
5272: x_total_container_weight := x_total_container_weight + l_tmp;
5273: END IF;
5279: i := p_top_level_rows.NEXT(i);
5280: END LOOP;
5281: END IF;
5282:
5283: FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,l_method_name);
5284:
5285: EXCEPTION
5286: WHEN FND_API.G_EXC_ERROR THEN
5287: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5284:
5285: EXCEPTION
5286: WHEN FND_API.G_EXC_ERROR THEN
5287: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5288: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
5289: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5290: WHEN others THEN
5291: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5292: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5285: EXCEPTION
5286: WHEN FND_API.G_EXC_ERROR THEN
5287: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5288: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
5289: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5290: WHEN others THEN
5291: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5292: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5293: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
5288: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
5289: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5290: WHEN others THEN
5291: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5292: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5293: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
5294: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5295: END;
5296:
5289: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5290: WHEN others THEN
5291: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5292: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5293: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
5294: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5295: END;
5296:
5297: -- J+ enhancement for LTL rating to include container weight
5290: WHEN others THEN
5291: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5292: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5293: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
5294: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5295: END;
5296:
5297: -- J+ enhancement for LTL rating to include container weight
5298: -- this procedure is called by process_shipment_patterns to distribute LTL container weight to
5297: -- J+ enhancement for LTL rating to include container weight
5298: -- this procedure is called by process_shipment_patterns to distribute LTL container weight to
5299: -- pricing_engine_rows and g_rolledup_lines
5300: PROCEDURE distribute_LTL_container_wt(
5301: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
5302: x_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
5303: x_return_status OUT NOCOPY VARCHAR2 )
5304: IS
5305: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
5298: -- this procedure is called by process_shipment_patterns to distribute LTL container weight to
5299: -- pricing_engine_rows and g_rolledup_lines
5300: PROCEDURE distribute_LTL_container_wt(
5301: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
5302: x_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
5303: x_return_status OUT NOCOPY VARCHAR2 )
5304: IS
5305: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
5306: l_method_name VARCHAR2(50) := 'distribute_LTL_container_wt';
5301: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
5302: x_pricing_engine_rows IN OUT NOCOPY fte_freight_pricing.pricing_engine_input_tab_type,
5303: x_return_status OUT NOCOPY VARCHAR2 )
5304: IS
5305: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
5306: l_method_name VARCHAR2(50) := 'distribute_LTL_container_wt';
5307: l_return_status VARCHAR2(1);
5308:
5309: l_total_container_weight NUMBER;
5327:
5328: BEGIN
5329: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5330:
5331: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
5332: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,l_method_name);
5333:
5334: -- get the LTL container weight
5335: -- calculate the bumpup ratio
5328: BEGIN
5329: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5330:
5331: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
5332: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,l_method_name);
5333:
5334: -- get the LTL container weight
5335: -- calculate the bumpup ratio
5336: -- bumpup pricing engine rows
5335: -- calculate the bumpup ratio
5336: -- bumpup pricing engine rows
5337: -- bumpup g_rolledup_lines
5338:
5339: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_top_level_rows.COUNT='||p_top_level_rows.COUNT);
5340: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'x_pricing_engine_rows.COUNT='||x_pricing_engine_rows.COUNT);
5341:
5342: get_LTL_container_weight(
5343: p_top_level_rows => p_top_level_rows,
5336: -- bumpup pricing engine rows
5337: -- bumpup g_rolledup_lines
5338:
5339: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_top_level_rows.COUNT='||p_top_level_rows.COUNT);
5340: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'x_pricing_engine_rows.COUNT='||x_pricing_engine_rows.COUNT);
5341:
5342: get_LTL_container_weight(
5343: p_top_level_rows => p_top_level_rows,
5344: x_total_container_weight => l_total_container_weight,
5344: x_total_container_weight => l_total_container_weight,
5345: x_weight_uom => l_container_weight_uom,
5346: x_return_status => l_return_status);
5347:
5348: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_total_container_weight='||l_total_container_weight);
5349: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_container_weight_uom='||l_container_weight_uom);
5350:
5351: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
5352: raise FND_API.G_EXC_ERROR;
5345: x_weight_uom => l_container_weight_uom,
5346: x_return_status => l_return_status);
5347:
5348: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_total_container_weight='||l_total_container_weight);
5349: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_container_weight_uom='||l_container_weight_uom);
5350:
5351: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
5352: raise FND_API.G_EXC_ERROR;
5353: END IF;
5380: FETCH get_category_segment2 INTO l_segment2;
5381: CLOSE get_category_segment2;
5382:
5383: IF l_segment2 is null or l_segment2 < 0 THEN
5384: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'cannot get valid numeric segment2 from category id '
5385: ||x_pricing_engine_rows(i).category_id);
5386: raise FND_API.G_EXC_ERROR;
5387: END IF;
5388:
5406: i := x_pricing_engine_rows.NEXT(i);
5407: END LOOP;
5408: END IF;
5409:
5410: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_segment2='||l_lowest_fc_segment2);
5411: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_category_id='||l_lowest_fc_category_id);
5412: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_input_index1='||l_lowest_fc_input_index1);
5413: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_input_index2='||l_lowest_fc_input_index2);
5414:
5407: END LOOP;
5408: END IF;
5409:
5410: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_segment2='||l_lowest_fc_segment2);
5411: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_category_id='||l_lowest_fc_category_id);
5412: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_input_index1='||l_lowest_fc_input_index1);
5413: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_input_index2='||l_lowest_fc_input_index2);
5414:
5415: IF l_lowest_fc_input_index1 = -1 and l_lowest_fc_input_index2 = -1 THEN
5408: END IF;
5409:
5410: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_segment2='||l_lowest_fc_segment2);
5411: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_category_id='||l_lowest_fc_category_id);
5412: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_input_index1='||l_lowest_fc_input_index1);
5413: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_input_index2='||l_lowest_fc_input_index2);
5414:
5415: IF l_lowest_fc_input_index1 = -1 and l_lowest_fc_input_index2 = -1 THEN
5416: raise g_finished_success;
5409:
5410: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_segment2='||l_lowest_fc_segment2);
5411: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_category_id='||l_lowest_fc_category_id);
5412: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_input_index1='||l_lowest_fc_input_index1);
5413: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_input_index2='||l_lowest_fc_input_index2);
5414:
5415: IF l_lowest_fc_input_index1 = -1 and l_lowest_fc_input_index2 = -1 THEN
5416: raise g_finished_success;
5417: END IF;
5438: x_pricing_engine_rows(l_lowest_fc_input_index2).line_quantity,
5439: NULL,0);
5440: END IF;
5441: END IF;
5442: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_old_line_quantity='||l_lowest_fc_old_line_quantity);
5443:
5444: l_bumpup_ratio := ( l_lowest_fc_old_line_quantity + l_total_container_weight )
5445: / l_lowest_fc_old_line_quantity;
5446: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_bumpup_ratio='||l_bumpup_ratio);
5442: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_lowest_fc_old_line_quantity='||l_lowest_fc_old_line_quantity);
5443:
5444: l_bumpup_ratio := ( l_lowest_fc_old_line_quantity + l_total_container_weight )
5445: / l_lowest_fc_old_line_quantity;
5446: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'l_bumpup_ratio='||l_bumpup_ratio);
5447:
5448: -- bumpup pricing engine rows
5449: x_pricing_engine_rows(l_lowest_fc_input_index1).line_quantity :=
5450: x_pricing_engine_rows(l_lowest_fc_input_index1).line_quantity * l_bumpup_ratio;
5454: x_pricing_engine_rows(l_lowest_fc_input_index2).line_quantity * l_bumpup_ratio;
5455: END IF;
5456:
5457: -- bumpup g_rolledup_lines
5458: i := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
5459: IF (i is not null) THEN
5460: LOOP
5461: IF FTE_FREIGHT_PRICING.g_rolledup_lines(i).category_id = l_lowest_fc_category_id THEN
5462: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity :=
5457: -- bumpup g_rolledup_lines
5458: i := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
5459: IF (i is not null) THEN
5460: LOOP
5461: IF FTE_FREIGHT_PRICING.g_rolledup_lines(i).category_id = l_lowest_fc_category_id THEN
5462: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity :=
5463: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity * l_bumpup_ratio;
5464: END IF;
5465: EXIT WHEN (i >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST);
5458: i := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
5459: IF (i is not null) THEN
5460: LOOP
5461: IF FTE_FREIGHT_PRICING.g_rolledup_lines(i).category_id = l_lowest_fc_category_id THEN
5462: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity :=
5463: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity * l_bumpup_ratio;
5464: END IF;
5465: EXIT WHEN (i >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST);
5466: i := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(i);
5459: IF (i is not null) THEN
5460: LOOP
5461: IF FTE_FREIGHT_PRICING.g_rolledup_lines(i).category_id = l_lowest_fc_category_id THEN
5462: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity :=
5463: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity * l_bumpup_ratio;
5464: END IF;
5465: EXIT WHEN (i >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST);
5466: i := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(i);
5467: END LOOP;
5461: IF FTE_FREIGHT_PRICING.g_rolledup_lines(i).category_id = l_lowest_fc_category_id THEN
5462: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity :=
5463: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity * l_bumpup_ratio;
5464: END IF;
5465: EXIT WHEN (i >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST);
5466: i := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(i);
5467: END LOOP;
5468: END IF;
5469:
5462: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity :=
5463: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity * l_bumpup_ratio;
5464: END IF;
5465: EXIT WHEN (i >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST);
5466: i := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(i);
5467: END LOOP;
5468: END IF;
5469:
5470: FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,l_method_name);
5466: i := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(i);
5467: END LOOP;
5468: END IF;
5469:
5470: FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,l_method_name);
5471:
5472: EXCEPTION
5473: WHEN g_finished_success THEN
5474: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5470: FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,l_method_name);
5471:
5472: EXCEPTION
5473: WHEN g_finished_success THEN
5474: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5475: WHEN FND_API.G_EXC_ERROR THEN
5476: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5477: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
5478: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5473: WHEN g_finished_success THEN
5474: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5475: WHEN FND_API.G_EXC_ERROR THEN
5476: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5477: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
5478: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5479: WHEN others THEN
5480: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5481: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5474: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5475: WHEN FND_API.G_EXC_ERROR THEN
5476: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5477: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
5478: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5479: WHEN others THEN
5480: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5481: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5482: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
5477: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
5478: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5479: WHEN others THEN
5480: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5481: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5482: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
5483: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5484: END;
5485:
5478: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5479: WHEN others THEN
5480: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5481: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5482: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
5483: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5484: END;
5485:
5486: PROCEDURE process_shipment_flatrate(
5479: WHEN others THEN
5480: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5481: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
5482: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
5483: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5484: END;
5485:
5486: PROCEDURE process_shipment_flatrate(
5487: p_lane_info IN fte_freight_pricing.lane_info_rec_type,
5483: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
5484: END;
5485:
5486: PROCEDURE process_shipment_flatrate(
5487: p_lane_info IN fte_freight_pricing.lane_info_rec_type,
5488: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
5489: p_save_flag IN VARCHAR2,
5490: p_currency_code IN VARCHAR2,
5491: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5484: END;
5485:
5486: PROCEDURE process_shipment_flatrate(
5487: p_lane_info IN fte_freight_pricing.lane_info_rec_type,
5488: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
5489: p_save_flag IN VARCHAR2,
5490: p_currency_code IN VARCHAR2,
5491: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5492: x_freight_cost_temp_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
5487: p_lane_info IN fte_freight_pricing.lane_info_rec_type,
5488: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
5489: p_save_flag IN VARCHAR2,
5490: p_currency_code IN VARCHAR2,
5491: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5492: x_freight_cost_temp_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
5493: x_freight_cost_main_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5494: x_freight_cost_temp_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
5495: x_fc_main_update_rows OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5488: p_top_level_rows IN fte_freight_pricing.shpmnt_content_tab_type,
5489: p_save_flag IN VARCHAR2,
5490: p_currency_code IN VARCHAR2,
5491: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5492: x_freight_cost_temp_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
5493: x_freight_cost_main_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5494: x_freight_cost_temp_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
5495: x_fc_main_update_rows OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5496: x_summary_lanesched_price OUT NOCOPY NUMBER,
5489: p_save_flag IN VARCHAR2,
5490: p_currency_code IN VARCHAR2,
5491: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5492: x_freight_cost_temp_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
5493: x_freight_cost_main_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5494: x_freight_cost_temp_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
5495: x_fc_main_update_rows OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5496: x_summary_lanesched_price OUT NOCOPY NUMBER,
5497: x_summary_lanesched_price_uom OUT NOCOPY VARCHAR2,
5490: p_currency_code IN VARCHAR2,
5491: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5492: x_freight_cost_temp_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
5493: x_freight_cost_main_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5494: x_freight_cost_temp_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
5495: x_fc_main_update_rows OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5496: x_summary_lanesched_price OUT NOCOPY NUMBER,
5497: x_summary_lanesched_price_uom OUT NOCOPY VARCHAR2,
5498: x_return_status OUT NOCOPY VARCHAR2 )
5491: x_freight_cost_main_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5492: x_freight_cost_temp_price OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
5493: x_freight_cost_main_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5494: x_freight_cost_temp_charge OUT NOCOPY fte_freight_pricing.Freight_Cost_Temp_Tab_Type,
5495: x_fc_main_update_rows OUT NOCOPY fte_freight_pricing.Freight_Cost_Main_Tab_Type,
5496: x_summary_lanesched_price OUT NOCOPY NUMBER,
5497: x_summary_lanesched_price_uom OUT NOCOPY VARCHAR2,
5498: x_return_status OUT NOCOPY VARCHAR2 )
5499: IS
5496: x_summary_lanesched_price OUT NOCOPY NUMBER,
5497: x_summary_lanesched_price_uom OUT NOCOPY VARCHAR2,
5498: x_return_status OUT NOCOPY VARCHAR2 )
5499: IS
5500: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
5501: l_method_name VARCHAR2(50) := 'process_shipment_flatrate';
5502: l_return_status VARCHAR2(1);
5503:
5504: l_pricing_control_rec fte_freight_pricing.pricing_control_input_rec_type;
5500: l_log_level NUMBER := fte_freight_pricing_util.G_DBG;
5501: l_method_name VARCHAR2(50) := 'process_shipment_flatrate';
5502: l_return_status VARCHAR2(1);
5503:
5504: l_pricing_control_rec fte_freight_pricing.pricing_control_input_rec_type;
5505: l_pricing_engine_rows fte_freight_pricing.pricing_engine_input_tab_type;
5506: l_engine_row_count NUMBER;
5507: l_pricing_attribute_rows fte_freight_pricing.pricing_attribute_tab_type;
5508:
5501: l_method_name VARCHAR2(50) := 'process_shipment_flatrate';
5502: l_return_status VARCHAR2(1);
5503:
5504: l_pricing_control_rec fte_freight_pricing.pricing_control_input_rec_type;
5505: l_pricing_engine_rows fte_freight_pricing.pricing_engine_input_tab_type;
5506: l_engine_row_count NUMBER;
5507: l_pricing_attribute_rows fte_freight_pricing.pricing_attribute_tab_type;
5508:
5509: l_qp_output_line_rows QP_PREQ_GRP.LINE_TBL_TYPE;
5503:
5504: l_pricing_control_rec fte_freight_pricing.pricing_control_input_rec_type;
5505: l_pricing_engine_rows fte_freight_pricing.pricing_engine_input_tab_type;
5506: l_engine_row_count NUMBER;
5507: l_pricing_attribute_rows fte_freight_pricing.pricing_attribute_tab_type;
5508:
5509: l_qp_output_line_rows QP_PREQ_GRP.LINE_TBL_TYPE;
5510: l_qp_output_detail_rows QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE;
5511:
5517: l_currency_code VARCHAR2(30);
5518: l_lane_function VARCHAR2(30);
5519: l_charge_applied VARCHAR2(1);
5520:
5521: l_fc_rec fte_freight_pricing.top_level_fc_rec_type;
5522: l_fc_charge_rec fte_freight_pricing.top_level_fc_rec_type;
5523: n NUMBER;
5524: l_line_price_amount NUMBER;
5525: l_line_charge_amount NUMBER;
5518: l_lane_function VARCHAR2(30);
5519: l_charge_applied VARCHAR2(1);
5520:
5521: l_fc_rec fte_freight_pricing.top_level_fc_rec_type;
5522: l_fc_charge_rec fte_freight_pricing.top_level_fc_rec_type;
5523: n NUMBER;
5524: l_line_price_amount NUMBER;
5525: l_line_charge_amount NUMBER;
5526: l_line_discount_amount NUMBER;
5546:
5547: BEGIN
5548: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5549:
5550: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
5551: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,l_method_name);
5552:
5553: -- sum up top level rows quantity and generate one pricing engine input line
5554: -- set up the pricing attributes for input line
5547: BEGIN
5548: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5549:
5550: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
5551: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,l_method_name);
5552:
5553: -- sum up top level rows quantity and generate one pricing engine input line
5554: -- set up the pricing attributes for input line
5555: -- call QP
5558: -- prepare second call to qp
5559: -- process qp output
5560: -- distribute qp output back to top level rows
5561:
5562: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_top_level_rows.COUNT='||p_top_level_rows.COUNT);
5563: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_save_flag='||p_save_flag);
5564:
5565: FTE_FREIGHT_PRICING.print_top_level_detail (
5566: p_first_level_rows => p_top_level_rows,
5559: -- process qp output
5560: -- distribute qp output back to top level rows
5561:
5562: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_top_level_rows.COUNT='||p_top_level_rows.COUNT);
5563: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_save_flag='||p_save_flag);
5564:
5565: FTE_FREIGHT_PRICING.print_top_level_detail (
5566: p_first_level_rows => p_top_level_rows,
5567: x_return_status => l_return_status );
5561:
5562: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_top_level_rows.COUNT='||p_top_level_rows.COUNT);
5563: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'p_save_flag='||p_save_flag);
5564:
5565: FTE_FREIGHT_PRICING.print_top_level_detail (
5566: p_first_level_rows => p_top_level_rows,
5567: x_return_status => l_return_status );
5568:
5569: -- Added for 12i for multi currency support
5569: -- Added for 12i for multi currency support
5570: IF p_currency_code IS NOT NULL THEN
5571: l_currency_code := p_currency_code;
5572: ELSE
5573: fte_freight_pricing.get_currency_code(
5574: p_carrier_id => p_lane_info.carrier_id,
5575: x_currency_code => l_currency_code,
5576: x_return_status => l_return_status );
5577: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS and
5575: x_currency_code => l_currency_code,
5576: x_return_status => l_return_status );
5577: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS and
5578: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
5579: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'get currency code failed');
5580: raise FND_API.G_EXC_ERROR;
5581: END IF;
5582: END IF;
5583:
5591: k:= p_top_level_rows.FIRST;
5592: WHILE (k is not null)
5593: LOOP
5594:
5595: l_temp_delivery_id:=fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(k).content_id).delivery_id;
5596:
5597: --MDC
5598: l_temp_parent_delivery_id:=fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(k).content_id).parent_delivery_id;
5599: IF(l_temp_parent_delivery_id IS NOT NULL)
5594:
5595: l_temp_delivery_id:=fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(k).content_id).delivery_id;
5596:
5597: --MDC
5598: l_temp_parent_delivery_id:=fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(k).content_id).parent_delivery_id;
5599: IF(l_temp_parent_delivery_id IS NOT NULL)
5600: THEN
5601: l_delivery_id_array(l_temp_parent_delivery_id):=l_temp_parent_delivery_id;
5602:
5615: WHILE(k is not null)
5616: LOOP
5617:
5618:
5619: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,' Delivery:'||l_delivery_id_array(k));
5620:
5621:
5622:
5623:
5622:
5623:
5624: -- sum up top level rows line quantity and generate one pricing engine input line
5625: l_pricing_engine_rows.DELETE;
5626: FTE_FREIGHT_PRICING.g_rolledup_lines.DELETE;
5627:
5628: l_pricing_engine_rows(1).input_index := 1;
5629: l_pricing_engine_rows(1).line_quantity := 0;
5630: l_pricing_engine_rows(1).line_uom := null;
5631:
5632: i := p_top_level_rows.FIRST;
5633: IF (i is not null) THEN
5634: LOOP
5635: IF((fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(i).content_id).parent_delivery_id = l_delivery_id_array(k)) OR (fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(i).content_id).delivery_id = l_delivery_id_array(k)))
5636: THEN
5637:
5638: IF p_top_level_rows(i).wdd_gross_weight is null
5639: OR p_top_level_rows(i).wdd_gross_weight <= 0
5637:
5638: IF p_top_level_rows(i).wdd_gross_weight is null
5639: OR p_top_level_rows(i).wdd_gross_weight <= 0
5640: OR p_top_level_rows(i).wdd_weight_uom_code is null THEN
5641: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,
5642: 'top level detail id: '||p_top_level_rows(i).content_id
5643: ||' wdd_gross_weight: '||p_top_level_rows(i).wdd_gross_weight
5644: ||' '||p_top_level_rows(i).wdd_weight_uom_code);
5645: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'top level detail gross weight invalid');
5641: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,
5642: 'top level detail id: '||p_top_level_rows(i).content_id
5643: ||' wdd_gross_weight: '||p_top_level_rows(i).wdd_gross_weight
5644: ||' '||p_top_level_rows(i).wdd_weight_uom_code);
5645: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'top level detail gross weight invalid');
5646: raise FND_API.G_EXC_ERROR;
5647: END IF;
5648:
5649: FTE_FREIGHT_PRICING.g_rolledup_lines(i).delivery_detail_id := p_top_level_rows(i).content_id;
5645: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'top level detail gross weight invalid');
5646: raise FND_API.G_EXC_ERROR;
5647: END IF;
5648:
5649: FTE_FREIGHT_PRICING.g_rolledup_lines(i).delivery_detail_id := p_top_level_rows(i).content_id;
5650: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity := p_top_level_rows(i).wdd_gross_weight;
5651: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom := p_top_level_rows(i).wdd_weight_uom_code;
5652:
5653: IF l_pricing_engine_rows(1).line_quantity = 0 THEN
5646: raise FND_API.G_EXC_ERROR;
5647: END IF;
5648:
5649: FTE_FREIGHT_PRICING.g_rolledup_lines(i).delivery_detail_id := p_top_level_rows(i).content_id;
5650: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity := p_top_level_rows(i).wdd_gross_weight;
5651: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom := p_top_level_rows(i).wdd_weight_uom_code;
5652:
5653: IF l_pricing_engine_rows(1).line_quantity = 0 THEN
5654: l_pricing_engine_rows(1).line_quantity := FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity;
5647: END IF;
5648:
5649: FTE_FREIGHT_PRICING.g_rolledup_lines(i).delivery_detail_id := p_top_level_rows(i).content_id;
5650: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity := p_top_level_rows(i).wdd_gross_weight;
5651: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom := p_top_level_rows(i).wdd_weight_uom_code;
5652:
5653: IF l_pricing_engine_rows(1).line_quantity = 0 THEN
5654: l_pricing_engine_rows(1).line_quantity := FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity;
5655: l_pricing_engine_rows(1).line_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom;
5650: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity := p_top_level_rows(i).wdd_gross_weight;
5651: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom := p_top_level_rows(i).wdd_weight_uom_code;
5652:
5653: IF l_pricing_engine_rows(1).line_quantity = 0 THEN
5654: l_pricing_engine_rows(1).line_quantity := FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity;
5655: l_pricing_engine_rows(1).line_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom;
5656: ELSE
5657: IF l_pricing_engine_rows(1).line_uom = FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom THEN
5658: l_pricing_engine_rows(1).line_quantity := l_pricing_engine_rows(1).line_quantity
5651: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom := p_top_level_rows(i).wdd_weight_uom_code;
5652:
5653: IF l_pricing_engine_rows(1).line_quantity = 0 THEN
5654: l_pricing_engine_rows(1).line_quantity := FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity;
5655: l_pricing_engine_rows(1).line_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom;
5656: ELSE
5657: IF l_pricing_engine_rows(1).line_uom = FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom THEN
5658: l_pricing_engine_rows(1).line_quantity := l_pricing_engine_rows(1).line_quantity
5659: + FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity;
5653: IF l_pricing_engine_rows(1).line_quantity = 0 THEN
5654: l_pricing_engine_rows(1).line_quantity := FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity;
5655: l_pricing_engine_rows(1).line_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom;
5656: ELSE
5657: IF l_pricing_engine_rows(1).line_uom = FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom THEN
5658: l_pricing_engine_rows(1).line_quantity := l_pricing_engine_rows(1).line_quantity
5659: + FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity;
5660: ELSE
5661: l_tmp := WSH_WV_UTILS.convert_uom(
5655: l_pricing_engine_rows(1).line_uom := FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom;
5656: ELSE
5657: IF l_pricing_engine_rows(1).line_uom = FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom THEN
5658: l_pricing_engine_rows(1).line_quantity := l_pricing_engine_rows(1).line_quantity
5659: + FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity;
5660: ELSE
5661: l_tmp := WSH_WV_UTILS.convert_uom(
5662: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom,
5663: l_pricing_engine_rows(1).line_uom,
5658: l_pricing_engine_rows(1).line_quantity := l_pricing_engine_rows(1).line_quantity
5659: + FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity;
5660: ELSE
5661: l_tmp := WSH_WV_UTILS.convert_uom(
5662: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom,
5663: l_pricing_engine_rows(1).line_uom,
5664: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity,
5665: NULL,0);
5666: IF l_tmp <= 0 THEN
5660: ELSE
5661: l_tmp := WSH_WV_UTILS.convert_uom(
5662: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom,
5663: l_pricing_engine_rows(1).line_uom,
5664: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity,
5665: NULL,0);
5666: IF l_tmp <= 0 THEN
5667: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'WSH_WV_UTILS.convert_uom return 0');
5668: raise FND_API.G_EXC_ERROR;
5663: l_pricing_engine_rows(1).line_uom,
5664: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity,
5665: NULL,0);
5666: IF l_tmp <= 0 THEN
5667: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'WSH_WV_UTILS.convert_uom return 0');
5668: raise FND_API.G_EXC_ERROR;
5669: ELSE
5670: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity := l_tmp;
5671: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom := l_pricing_engine_rows(1).line_uom;
5666: IF l_tmp <= 0 THEN
5667: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'WSH_WV_UTILS.convert_uom return 0');
5668: raise FND_API.G_EXC_ERROR;
5669: ELSE
5670: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity := l_tmp;
5671: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom := l_pricing_engine_rows(1).line_uom;
5672: l_pricing_engine_rows(1).line_quantity :=
5673: l_pricing_engine_rows(1).line_quantity + l_tmp;
5674: END IF;
5667: FTE_FREIGHT_PRICING_UTIL.print_msg(l_log_level,'WSH_WV_UTILS.convert_uom return 0');
5668: raise FND_API.G_EXC_ERROR;
5669: ELSE
5670: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_quantity := l_tmp;
5671: FTE_FREIGHT_PRICING.g_rolledup_lines(i).line_uom := l_pricing_engine_rows(1).line_uom;
5672: l_pricing_engine_rows(1).line_quantity :=
5673: l_pricing_engine_rows(1).line_quantity + l_tmp;
5674: END IF;
5675: END IF;
5681: i := p_top_level_rows.NEXT(i);
5682: END LOOP;
5683: END IF;
5684:
5685: fte_freight_pricing.print_rolledup_lines (
5686: p_rolledup_lines => FTE_FREIGHT_PRICING.g_rolledup_lines,
5687: x_return_status => l_return_status );
5688:
5689: fte_freight_pricing.print_engine_rows (
5682: END LOOP;
5683: END IF;
5684:
5685: fte_freight_pricing.print_rolledup_lines (
5686: p_rolledup_lines => FTE_FREIGHT_PRICING.g_rolledup_lines,
5687: x_return_status => l_return_status );
5688:
5689: fte_freight_pricing.print_engine_rows (
5690: p_engine_rows => l_pricing_engine_rows,
5685: fte_freight_pricing.print_rolledup_lines (
5686: p_rolledup_lines => FTE_FREIGHT_PRICING.g_rolledup_lines,
5687: x_return_status => l_return_status );
5688:
5689: fte_freight_pricing.print_engine_rows (
5690: p_engine_rows => l_pricing_engine_rows,
5691: x_return_status => l_return_status );
5692:
5693: -- set up data structure to call QP
5731: l_event_num := fte_qp_engine.G_LINE_EVENT_NUM;
5732: fte_qp_engine.create_control_record(p_event_num => l_event_num,
5733: x_return_status => l_return_status );
5734:
5735: fte_freight_pricing_util.set_location(p_loc=>'after create_control_record ');
5736: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
5737: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
5738: raise FND_API.G_EXC_ERROR;
5739: END IF;
5745: fte_qp_engine.create_line_record (p_pricing_control_rec => l_pricing_control_rec,
5746: p_pricing_engine_input_rec => l_pricing_engine_rows(i),
5747: x_return_status => l_return_status);
5748:
5749: fte_freight_pricing_util.set_location(p_loc=>'after create_line_record. i='||i);
5750: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
5751: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
5752: raise FND_API.G_EXC_ERROR;
5753: END IF;
5757: p_pricing_control_rec => l_pricing_control_rec,
5758: p_input_index => l_pricing_engine_rows(i).input_index,
5759: x_return_status => l_return_status);
5760:
5761: fte_freight_pricing_util.set_location(p_loc=>'after create qp line qualifiers. i='||i);
5762: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
5763: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
5764: raise FND_API.G_EXC_ERROR;
5765: END IF;
5769: p_input_index => l_pricing_engine_rows(i).input_index,
5770: p_attr_rows => l_pricing_attribute_rows,
5771: x_return_status => l_return_status);
5772:
5773: fte_freight_pricing_util.set_location(p_loc=>'after create qp line attributes. i='||i);
5774: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
5775: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
5776: raise FND_API.G_EXC_ERROR;
5777: END IF;
5785: fte_qp_engine.call_qp_api ( x_qp_output_line_rows => l_qp_output_line_rows,
5786: x_qp_output_detail_rows => l_qp_output_detail_rows,
5787: x_return_status => l_return_status);
5788:
5789: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api: Event 1');
5790: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
5791: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
5792: raise FND_API.G_EXC_ERROR;
5793: END IF;
5793: END IF;
5794:
5795: --check for errors in the output
5796: fte_qp_engine.check_qp_output_errors (x_return_status => l_return_status);
5797: fte_freight_pricing_util.set_location(p_loc=>'after check_qp_output_errors: Event '||l_event_num);
5798: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
5799: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
5800: raise FND_API.G_EXC_ERROR;
5801: END IF;
5808: p_event_num => l_event_num,
5809: x_charge_applied => l_charge_applied,
5810: x_return_status => l_return_status);
5811:
5812: fte_freight_pricing_util.set_location(p_loc=>'after apply_min_charge ');
5813: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
5814: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
5815: raise FND_API.G_EXC_ERROR;
5816: END IF;
5820: IF (l_charge_applied = 'Y') THEN
5821: l_event_num := fte_qp_engine.G_CHARGE_EVENT_NUM;
5822: fte_qp_engine.prepare_next_event_request ( x_return_status => l_return_status);
5823:
5824: fte_freight_pricing_util.set_location(p_loc=>'after prepare_next_event_request');
5825: IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
5826: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING ) THEN
5827: raise FND_API.G_EXC_ERROR;
5828: END IF;
5830: fte_qp_engine.call_qp_api ( x_qp_output_line_rows => l_qp_output_line_rows,
5831: x_qp_output_detail_rows => l_qp_output_detail_rows,
5832: x_return_status => l_return_status);
5833:
5834: fte_freight_pricing_util.set_location(p_loc=>'after call_qp_api: Event 2');
5835: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
5836: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
5837: raise FND_API.G_EXC_ERROR;
5838: END IF;
5838: END IF;
5839:
5840: --check for errors in the output
5841: fte_qp_engine.check_qp_output_errors (x_return_status => l_return_status);
5842: fte_freight_pricing_util.set_location(p_loc=>'after check_qp_output_errors: Event '||l_event_num);
5843: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
5844: l_return_status <> WSH_UTIL_CORE.G_RET_STS_WARNING THEN
5845: raise FND_API.G_EXC_ERROR;
5846: END IF;
5883: l_fc_charge_rec.unit_amount := l_fc_charge_rec.total_amount;
5884:
5885: l_fc_charge_rec.line_type_code := 'CHARGE';
5886:
5887: fte_freight_pricing.get_fc_type_id(
5888: p_line_type_code => 'FTECHARGE',
5889: p_charge_subtype_code => l_qp_output_detail_rows(j).charge_subtype_code,
5890: x_freight_cost_type_id => l_fc_charge_rec.freight_cost_type_id,
5891: x_return_status => l_return_status);
5897: l_line_discount_amount := l_line_discount_amount + l_fc_charge_rec.total_amount;
5898:
5899: l_fc_charge_rec.line_type_code := 'DISCOUNT';
5900:
5901: fte_freight_pricing.get_fc_type_id(
5902: p_line_type_code => 'FTEDISCOUNT',
5903: p_charge_subtype_code => 'DISCOUNT',
5904: x_freight_cost_type_id => l_fc_charge_rec.freight_cost_type_id,
5905: x_return_status => l_return_status);
5909: END IF;
5910: END IF;
5911:
5912: --distribute SUR/DIS into top level details
5913: n := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
5914: IF (n is not null) THEN
5915: LOOP
5916:
5917: l_charge_count := l_charge_count + 1;
5915: LOOP
5916:
5917: l_charge_count := l_charge_count + 1;
5918: IF p_save_flag = 'M' THEN
5919: x_freight_cost_main_charge(l_charge_count).delivery_detail_id := FTE_FREIGHT_PRICING.g_rolledup_lines(n).delivery_detail_id;
5920: x_freight_cost_main_charge(l_charge_count).delivery_leg_id := p_top_level_rows(n).delivery_leg_id;
5921: x_freight_cost_main_charge(l_charge_count).delivery_id :=
5922: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
5923: x_freight_cost_main_charge(l_charge_count).uom := l_fc_rec.uom;
5918: IF p_save_flag = 'M' THEN
5919: x_freight_cost_main_charge(l_charge_count).delivery_detail_id := FTE_FREIGHT_PRICING.g_rolledup_lines(n).delivery_detail_id;
5920: x_freight_cost_main_charge(l_charge_count).delivery_leg_id := p_top_level_rows(n).delivery_leg_id;
5921: x_freight_cost_main_charge(l_charge_count).delivery_id :=
5922: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
5923: x_freight_cost_main_charge(l_charge_count).uom := l_fc_rec.uom;
5924: x_freight_cost_main_charge(l_charge_count).quantity := FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity;
5925: x_freight_cost_main_charge(l_charge_count).line_type_code := l_fc_charge_rec.line_type_code;
5926: x_freight_cost_main_charge(l_charge_count).freight_cost_type_id := l_fc_charge_rec.freight_cost_type_id;
5920: x_freight_cost_main_charge(l_charge_count).delivery_leg_id := p_top_level_rows(n).delivery_leg_id;
5921: x_freight_cost_main_charge(l_charge_count).delivery_id :=
5922: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
5923: x_freight_cost_main_charge(l_charge_count).uom := l_fc_rec.uom;
5924: x_freight_cost_main_charge(l_charge_count).quantity := FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity;
5925: x_freight_cost_main_charge(l_charge_count).line_type_code := l_fc_charge_rec.line_type_code;
5926: x_freight_cost_main_charge(l_charge_count).freight_cost_type_id := l_fc_charge_rec.freight_cost_type_id;
5927: x_freight_cost_main_charge(l_charge_count).charge_unit_value :=
5928: l_fc_charge_rec.charge_unit_value;
5927: x_freight_cost_main_charge(l_charge_count).charge_unit_value :=
5928: l_fc_charge_rec.charge_unit_value;
5929: IF l_fc_charge_rec.unit_amount > 0 THEN
5930: x_freight_cost_main_charge(l_charge_count).unit_amount :=
5931: round(l_fc_charge_rec.unit_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
5932: END IF;
5933: x_freight_cost_main_charge(l_charge_count).total_amount :=
5934: round(l_fc_charge_rec.total_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
5935: x_freight_cost_main_charge(l_charge_count).currency_code := l_currency_code;
5930: x_freight_cost_main_charge(l_charge_count).unit_amount :=
5931: round(l_fc_charge_rec.unit_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
5932: END IF;
5933: x_freight_cost_main_charge(l_charge_count).total_amount :=
5934: round(l_fc_charge_rec.total_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
5935: x_freight_cost_main_charge(l_charge_count).currency_code := l_currency_code;
5936: x_freight_cost_main_charge(l_charge_count).charge_source_code := 'PRICING_ENGINE';
5937: x_freight_cost_main_charge(l_charge_count).estimated_flag := 'Y';
5938: ELSE
5937: x_freight_cost_main_charge(l_charge_count).estimated_flag := 'Y';
5938: ELSE
5939: x_freight_cost_temp_charge(l_charge_count).delivery_detail_id := p_top_level_rows(n).content_id;
5940: x_freight_cost_temp_charge(l_charge_count).delivery_id :=
5941: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
5942: x_freight_cost_temp_charge(l_charge_count).uom := l_fc_rec.uom;
5943: x_freight_cost_temp_charge(l_charge_count).quantity := FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity;
5944: x_freight_cost_temp_charge(l_charge_count).line_type_code := l_fc_charge_rec.line_type_code;
5945: x_freight_cost_temp_charge(l_charge_count).freight_cost_type_id := l_fc_charge_rec.freight_cost_type_id;
5939: x_freight_cost_temp_charge(l_charge_count).delivery_detail_id := p_top_level_rows(n).content_id;
5940: x_freight_cost_temp_charge(l_charge_count).delivery_id :=
5941: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
5942: x_freight_cost_temp_charge(l_charge_count).uom := l_fc_rec.uom;
5943: x_freight_cost_temp_charge(l_charge_count).quantity := FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity;
5944: x_freight_cost_temp_charge(l_charge_count).line_type_code := l_fc_charge_rec.line_type_code;
5945: x_freight_cost_temp_charge(l_charge_count).freight_cost_type_id := l_fc_charge_rec.freight_cost_type_id;
5946: x_freight_cost_temp_charge(l_charge_count).charge_unit_value :=
5947: l_fc_charge_rec.charge_unit_value;
5946: x_freight_cost_temp_charge(l_charge_count).charge_unit_value :=
5947: l_fc_charge_rec.charge_unit_value;
5948: IF l_fc_charge_rec.unit_amount > 0 THEN
5949: x_freight_cost_temp_charge(l_charge_count).unit_amount :=
5950: round(l_fc_charge_rec.unit_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
5951: END IF;
5952: x_freight_cost_temp_charge(l_charge_count).total_amount :=
5953: round(l_fc_charge_rec.total_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
5954: x_freight_cost_temp_charge(l_charge_count).currency_code := l_currency_code;
5949: x_freight_cost_temp_charge(l_charge_count).unit_amount :=
5950: round(l_fc_charge_rec.unit_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
5951: END IF;
5952: x_freight_cost_temp_charge(l_charge_count).total_amount :=
5953: round(l_fc_charge_rec.total_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
5954: x_freight_cost_temp_charge(l_charge_count).currency_code := l_currency_code;
5955: x_freight_cost_temp_charge(l_charge_count).charge_source_code := 'PRICING_ENGINE';
5956: x_freight_cost_temp_charge(l_charge_count).estimated_flag := 'Y';
5957: END IF;
5955: x_freight_cost_temp_charge(l_charge_count).charge_source_code := 'PRICING_ENGINE';
5956: x_freight_cost_temp_charge(l_charge_count).estimated_flag := 'Y';
5957: END IF;
5958:
5959: EXIT WHEN (n >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST);
5960: n := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(n);
5961: END LOOP;
5962: END IF;
5963:
5956: x_freight_cost_temp_charge(l_charge_count).estimated_flag := 'Y';
5957: END IF;
5958:
5959: EXIT WHEN (n >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST);
5960: n := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(n);
5961: END LOOP;
5962: END IF;
5963:
5964: END IF; -- l_qp_output_detail_rows(j).list_line_type_code = 'SUR' or 'DIS'
5974: l_fc_rec.unit_amount := l_line_price_amount - l_line_discount_amount;
5975: l_fc_rec.total_amount := l_fc_rec.unit_amount + l_line_charge_amount;
5976: l_fc_rec.line_type_code := 'PRICE';
5977:
5978: fte_freight_pricing.get_fc_type_id(
5979: p_line_type_code => 'FTEPRICE',
5980: p_charge_subtype_code => 'PRICE',
5981: x_freight_cost_type_id => l_fc_rec.freight_cost_type_id,
5982: x_return_status => l_return_status);
5991:
5992: --4294663
5993: l_leg_id:=NULL;
5994:
5995: n := FTE_FREIGHT_PRICING.g_rolledup_lines.FIRST;
5996: IF (n is not null) THEN
5997: LOOP
5998:
5999: l_price_count := l_price_count + 1;
5998:
5999: l_price_count := l_price_count + 1;
6000: IF l_leg_id is null THEN
6001:
6002: IF(fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).parent_delivery_id IS NULL)
6003: THEN
6004:
6005: l_leg_id := p_top_level_rows(n).delivery_leg_id;
6006: l_delivery_id :=
6003: THEN
6004:
6005: l_leg_id := p_top_level_rows(n).delivery_leg_id;
6006: l_delivery_id :=
6007: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
6008: ELSE
6009: --MDC if there are parent deliveries then
6010: -- quantities for all the children are summed and sent to QP. The amounts are stored at the parent delivery level.
6011: --The parent delivery id, dleg are captured
6009: --MDC if there are parent deliveries then
6010: -- quantities for all the children are summed and sent to QP. The amounts are stored at the parent delivery level.
6011: --The parent delivery id, dleg are captured
6012: l_delivery_id :=
6013: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).parent_delivery_id;
6014: l_leg_id :=fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).parent_delivery_leg_id;
6015:
6016: END IF;
6017:
6010: -- quantities for all the children are summed and sent to QP. The amounts are stored at the parent delivery level.
6011: --The parent delivery id, dleg are captured
6012: l_delivery_id :=
6013: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).parent_delivery_id;
6014: l_leg_id :=fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).parent_delivery_leg_id;
6015:
6016: END IF;
6017:
6018: END IF;
6020: IF p_save_flag = 'M' THEN
6021: x_freight_cost_main_price(l_price_count).delivery_detail_id := p_top_level_rows(n).content_id;
6022: x_freight_cost_main_price(l_price_count).delivery_leg_id := p_top_level_rows(n).delivery_leg_id;
6023: x_freight_cost_main_price(l_price_count).delivery_id :=
6024: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
6025: x_freight_cost_main_price(l_price_count).uom := l_fc_rec.uom;
6026: x_freight_cost_main_price(l_price_count).quantity := FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity;
6027: x_freight_cost_main_price(l_price_count).line_type_code := l_fc_rec.line_type_code;
6028: x_freight_cost_main_price(l_price_count).freight_cost_type_id := l_fc_rec.freight_cost_type_id;
6022: x_freight_cost_main_price(l_price_count).delivery_leg_id := p_top_level_rows(n).delivery_leg_id;
6023: x_freight_cost_main_price(l_price_count).delivery_id :=
6024: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
6025: x_freight_cost_main_price(l_price_count).uom := l_fc_rec.uom;
6026: x_freight_cost_main_price(l_price_count).quantity := FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity;
6027: x_freight_cost_main_price(l_price_count).line_type_code := l_fc_rec.line_type_code;
6028: x_freight_cost_main_price(l_price_count).freight_cost_type_id := l_fc_rec.freight_cost_type_id;
6029: x_freight_cost_main_price(l_price_count).charge_unit_value :=
6030: l_fc_rec.charge_unit_value;
6028: x_freight_cost_main_price(l_price_count).freight_cost_type_id := l_fc_rec.freight_cost_type_id;
6029: x_freight_cost_main_price(l_price_count).charge_unit_value :=
6030: l_fc_rec.charge_unit_value;
6031: x_freight_cost_main_price(l_price_count).unit_amount :=
6032: round(l_fc_rec.unit_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
6033: x_freight_cost_main_price(l_price_count).total_amount :=
6034: round(l_fc_rec.total_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
6035: x_freight_cost_main_price(l_price_count).currency_code := l_currency_code;
6036: x_freight_cost_main_price(l_price_count).charge_source_code := 'PRICING_ENGINE';
6030: l_fc_rec.charge_unit_value;
6031: x_freight_cost_main_price(l_price_count).unit_amount :=
6032: round(l_fc_rec.unit_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
6033: x_freight_cost_main_price(l_price_count).total_amount :=
6034: round(l_fc_rec.total_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
6035: x_freight_cost_main_price(l_price_count).currency_code := l_currency_code;
6036: x_freight_cost_main_price(l_price_count).charge_source_code := 'PRICING_ENGINE';
6037: x_freight_cost_main_price(l_price_count).estimated_flag := 'Y';
6038: ELSE
6038: ELSE
6039: x_freight_cost_temp_price(l_price_count).delivery_detail_id := p_top_level_rows(n).content_id;
6040: --x_freight_cost_temp_price(l_price_count).delivery_leg_id := p_top_level_rows(n).delivery_leg_id;
6041: x_freight_cost_temp_price(l_price_count).delivery_id :=
6042: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
6043: x_freight_cost_temp_price(l_price_count).uom := l_fc_rec.uom;
6044: x_freight_cost_temp_price(l_price_count).quantity := FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity;
6045: x_freight_cost_temp_price(l_price_count).line_type_code := l_fc_rec.line_type_code;
6046: x_freight_cost_temp_price(l_price_count).freight_cost_type_id := l_fc_rec.freight_cost_type_id;
6040: --x_freight_cost_temp_price(l_price_count).delivery_leg_id := p_top_level_rows(n).delivery_leg_id;
6041: x_freight_cost_temp_price(l_price_count).delivery_id :=
6042: fte_freight_pricing.g_shipment_line_rows(p_top_level_rows(n).content_id).delivery_id;
6043: x_freight_cost_temp_price(l_price_count).uom := l_fc_rec.uom;
6044: x_freight_cost_temp_price(l_price_count).quantity := FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity;
6045: x_freight_cost_temp_price(l_price_count).line_type_code := l_fc_rec.line_type_code;
6046: x_freight_cost_temp_price(l_price_count).freight_cost_type_id := l_fc_rec.freight_cost_type_id;
6047: x_freight_cost_temp_price(l_price_count).charge_unit_value :=
6048: l_fc_rec.charge_unit_value;
6046: x_freight_cost_temp_price(l_price_count).freight_cost_type_id := l_fc_rec.freight_cost_type_id;
6047: x_freight_cost_temp_price(l_price_count).charge_unit_value :=
6048: l_fc_rec.charge_unit_value;
6049: x_freight_cost_temp_price(l_price_count).unit_amount :=
6050: round(l_fc_rec.unit_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
6051: x_freight_cost_temp_price(l_price_count).total_amount :=
6052: round(l_fc_rec.total_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
6053: x_freight_cost_temp_price(l_price_count).currency_code := l_currency_code;
6054: x_freight_cost_temp_price(l_price_count).charge_source_code := 'PRICING_ENGINE';
6048: l_fc_rec.charge_unit_value;
6049: x_freight_cost_temp_price(l_price_count).unit_amount :=
6050: round(l_fc_rec.unit_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
6051: x_freight_cost_temp_price(l_price_count).total_amount :=
6052: round(l_fc_rec.total_amount * FTE_FREIGHT_PRICING.g_rolledup_lines(n).line_quantity / l_fc_rec.quantity, 2);
6053: x_freight_cost_temp_price(l_price_count).currency_code := l_currency_code;
6054: x_freight_cost_temp_price(l_price_count).charge_source_code := 'PRICING_ENGINE';
6055: x_freight_cost_temp_price(l_price_count).estimated_flag := 'Y';
6056: END IF;
6054: x_freight_cost_temp_price(l_price_count).charge_source_code := 'PRICING_ENGINE';
6055: x_freight_cost_temp_price(l_price_count).estimated_flag := 'Y';
6056: END IF;
6057:
6058: EXIT WHEN (n >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST);
6059: n := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(n);
6060: END LOOP;
6061: END IF;
6062:
6055: x_freight_cost_temp_price(l_price_count).estimated_flag := 'Y';
6056: END IF;
6057:
6058: EXIT WHEN (n >= FTE_FREIGHT_PRICING.g_rolledup_lines.LAST);
6059: n := FTE_FREIGHT_PRICING.g_rolledup_lines.NEXT(n);
6060: END LOOP;
6061: END IF;
6062:
6063: EXIT WHEN (i >= l_qp_output_line_rows.LAST);
6066: END IF;
6067:
6068: -- create the summary record
6069:
6070: fte_freight_pricing.get_fc_type_id(
6071: p_line_type_code => 'FTESUMMARY',
6072: p_charge_subtype_code => 'SUMMARY',
6073: x_freight_cost_type_id => l_freight_cost_type_id,
6074: x_return_status => l_return_status);
6100: LOOP
6101:
6102: x_fc_main_update_rows(j).delivery_leg_id := l_leg_id_array(i);
6103: x_fc_main_update_rows(j).delivery_id := l_delivery_id_array(i);
6104: x_fc_main_update_rows(j).freight_cost_id := fte_freight_pricing.get_fc_id_from_dleg(l_leg_id_array(i));
6105: x_fc_main_update_rows(j).line_type_code := 'SUMMARY';
6106: x_fc_main_update_rows(j).freight_cost_type_id := l_freight_cost_type_id;
6107: x_fc_main_update_rows(j).unit_amount := round(l_delivery_summary(l_delivery_id_array(i)),2);
6108: x_fc_main_update_rows(j).total_amount := round(l_delivery_summary(l_delivery_id_array(i)),2);
6146:
6147: x_summary_lanesched_price := round(l_trip_summary_amount,2);
6148: x_summary_lanesched_price_uom := l_currency_code;
6149:
6150: FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,l_method_name);
6151:
6152: EXCEPTION
6153: WHEN FND_API.G_EXC_ERROR THEN
6154: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6151:
6152: EXCEPTION
6153: WHEN FND_API.G_EXC_ERROR THEN
6154: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6155: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
6156: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
6157: WHEN others THEN
6158: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6159: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
6152: EXCEPTION
6153: WHEN FND_API.G_EXC_ERROR THEN
6154: x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6155: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
6156: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
6157: WHEN others THEN
6158: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6159: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
6160: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
6155: fte_freight_pricing_util.set_exception(l_method_name,l_log_level,'FND_API.G_EXC_ERROR');
6156: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
6157: WHEN others THEN
6158: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6159: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
6160: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
6161: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
6162: END;
6163:
6156: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
6157: WHEN others THEN
6158: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6159: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
6160: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
6161: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
6162: END;
6163:
6164: END FTE_FREIGHT_PRICING_SPECIAL;
6157: WHEN others THEN
6158: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6159: FTE_FREIGHT_PRICING_UTIL.set_exception(l_method_name,FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
6160: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
6161: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
6162: END;
6163:
6164: END FTE_FREIGHT_PRICING_SPECIAL;
6160: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
6161: fte_freight_pricing_util.unset_method(l_log_level,l_method_name);
6162: END;
6163:
6164: END FTE_FREIGHT_PRICING_SPECIAL;