DBA Data[Home] [Help]

APPS.FTE_FREIGHT_PRICING dependencies on DUAL

Line 2235: FROM sys.dual;

2231:
2232: CURSOR C_Next_Freight_Cost_Id
2233: IS
2234: SELECT fte_freight_costs_temp_s.nextval
2235: FROM sys.dual;
2236:
2237: l_log_level NUMBER := FTE_FREIGHT_PRICING_UTIL.G_DBG;
2238:
2239: BEGIN

Line 3646: p_pricing_dual_instances IN pricing_dual_instance_tab_type,

3642: -- This API will result in one qp output line per instance
3643: -- It will delete other engine rows and associated engine output line details
3644:
3645: PROCEDURE resolve_pricing_objective(
3646: p_pricing_dual_instances IN pricing_dual_instance_tab_type,
3647: x_pricing_engine_input IN OUT NOCOPY pricing_engine_input_tab_type,
3648: x_qp_output_line_rows IN OUT NOCOPY QP_PREQ_GRP.LINE_TBL_TYPE,
3649: x_qp_output_line_details IN OUT NOCOPY QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
3650: x_return_status OUT NOCOPY VARCHAR2)

Line 3699: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Pricing objective : '||p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective);

3695: l_tot_amount := x_qp_output_line_rows(i).unit_price * x_qp_output_line_rows(i).priced_quantity; -- assuming same input and output currency code
3696:
3697: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Current Total amount : '||l_tot_amount);
3698: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Existing instance amount : '||l_instance_output(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).tot_amount);
3699: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Pricing objective : '||p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective);
3700:
3701: IF p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective IS NOT NULL THEN
3702:
3703: IF ((p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective = G_OBJECTIVE_HIGHEST AND

Line 3701: IF p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective IS NOT NULL THEN

3697: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Current Total amount : '||l_tot_amount);
3698: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Existing instance amount : '||l_instance_output(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).tot_amount);
3699: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Pricing objective : '||p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective);
3700:
3701: IF p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective IS NOT NULL THEN
3702:
3703: IF ((p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective = G_OBJECTIVE_HIGHEST AND
3704: l_tot_amount > l_instance_output(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).tot_amount ) OR
3705: (p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective = G_OBJECTIVE_LOWEST AND

Line 3703: IF ((p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective = G_OBJECTIVE_HIGHEST AND

3699: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Pricing objective : '||p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective);
3700:
3701: IF p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective IS NOT NULL THEN
3702:
3703: IF ((p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective = G_OBJECTIVE_HIGHEST AND
3704: l_tot_amount > l_instance_output(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).tot_amount ) OR
3705: (p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective = G_OBJECTIVE_LOWEST AND
3706: l_tot_amount < l_instance_output(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).tot_amount )) THEN
3707:

Line 3705: (p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective = G_OBJECTIVE_LOWEST AND

3701: IF p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective IS NOT NULL THEN
3702:
3703: IF ((p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective = G_OBJECTIVE_HIGHEST AND
3704: l_tot_amount > l_instance_output(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).tot_amount ) OR
3705: (p_pricing_dual_instances(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).objective = G_OBJECTIVE_LOWEST AND
3706: l_tot_amount < l_instance_output(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).tot_amount )) THEN
3707:
3708: x_pricing_engine_input.DELETE(l_instance_output(x_pricing_engine_input(x_qp_output_line_rows(i).line_index).instance_index).input_index);
3709:

Line 4093: -- It uses l_pricing_dual_instances,l_intersection_rows,l_shpmnt_toplevel_rows

4089:
4090:
4091: -- This is the QP engine output post processing API
4092: -- It analyzes the QP engine output by looking at the output lines and input lines
4093: -- It uses l_pricing_dual_instances,l_intersection_rows,l_shpmnt_toplevel_rows
4094: -- and g_shipment_line_rows to deconsolidate freight costs to the proper level
4095: -- It creates freight_costs main/temp record and sends back
4096: -- Looks up delivery detail info from g_shipment_line_rows
4097:

Line 4102: p_pricing_dual_instances IN pricing_dual_instance_tab_type,

4098: PROCEDURE process_qp_output (
4099: p_qp_output_line_rows IN QP_PREQ_GRP.LINE_TBL_TYPE, -- line_index = input_index
4100: p_qp_output_detail_rows IN QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,
4101: p_pricing_engine_input IN pricing_engine_input_tab_type,
4102: p_pricing_dual_instances IN pricing_dual_instance_tab_type,
4103: p_pattern_rows IN top_level_pattern_tab_type,
4104: p_shpmnt_toplevel_rows IN shpmnt_content_tab_type,
4105: p_save_flag IN VARCHAR2, -- Whether to save to TEMP table or MAIN table
4106: p_rate_basis IN VARCHAR2 DEFAULT NULL,

Line 4261: p_grouping_level => p_pricing_dual_instances(p_pattern_rows(k).instance_index).grouping_level,

4257: p_entity_id => l_entity_id,
4258: p_qp_output_line_row => p_qp_output_line_rows(j) ,
4259: p_qp_output_detail_rows => p_qp_output_detail_rows,
4260: p_pricing_engine_input => p_pricing_engine_input,
4261: p_grouping_level => p_pricing_dual_instances(p_pattern_rows(k).instance_index).grouping_level,
4262: p_aggregation => p_pricing_dual_instances(p_pattern_rows(k).instance_index).aggregation,
4263: p_save_flag => p_save_flag,
4264: p_rate_basis => p_rate_basis,
4265: x_container_summary => l_container_summary,

Line 4262: p_aggregation => p_pricing_dual_instances(p_pattern_rows(k).instance_index).aggregation,

4258: p_qp_output_line_row => p_qp_output_line_rows(j) ,
4259: p_qp_output_detail_rows => p_qp_output_detail_rows,
4260: p_pricing_engine_input => p_pricing_engine_input,
4261: p_grouping_level => p_pricing_dual_instances(p_pattern_rows(k).instance_index).grouping_level,
4262: p_aggregation => p_pricing_dual_instances(p_pattern_rows(k).instance_index).aggregation,
4263: p_save_flag => p_save_flag,
4264: p_rate_basis => p_rate_basis,
4265: x_container_summary => l_container_summary,
4266: x_fc_dleg_rows => l_fc_dleg_rows,

Line 4658: PROCEDURE print_dual_instances (

4654: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4655:
4656: END print_top_level_pattern;
4657:
4658: PROCEDURE print_dual_instances (
4659: p_dual_instances IN pricing_dual_instance_tab_type, -- Will get indexed on delivery_detail_id
4660: x_return_status OUT NOCOPY VARCHAR2 )
4661: IS
4662:

Line 4659: p_dual_instances IN pricing_dual_instance_tab_type, -- Will get indexed on delivery_detail_id

4655:
4656: END print_top_level_pattern;
4657:
4658: PROCEDURE print_dual_instances (
4659: p_dual_instances IN pricing_dual_instance_tab_type, -- Will get indexed on delivery_detail_id
4660: x_return_status OUT NOCOPY VARCHAR2 )
4661: IS
4662:
4663: i NUMBER:=0;

Line 4669: IF p_dual_instances.COUNT > 0 THEN

4665: BEGIN
4666:
4667: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4668:
4669: IF p_dual_instances.COUNT > 0 THEN
4670: FTE_FREIGHT_PRICING_UTIL.print_tag(p_msg => '');
4671: i := p_dual_instances.FIRST;
4672: LOOP
4673:

Line 4671: i := p_dual_instances.FIRST;

4667: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4668:
4669: IF p_dual_instances.COUNT > 0 THEN
4670: FTE_FREIGHT_PRICING_UTIL.print_tag(p_msg => '');
4671: i := p_dual_instances.FIRST;
4672: LOOP
4673:
4674: FTE_FREIGHT_PRICING_UTIL.print_msg(
4675: p_msg => 'instance_index : '||p_dual_instances(i).instance_index||' pattern_no : '||p_dual_instances(i).pattern_no||' services_hash : '||p_dual_instances(i).services_hash||

Line 4675: p_msg => 'instance_index : '||p_dual_instances(i).instance_index||' pattern_no : '||p_dual_instances(i).pattern_no||' services_hash : '||p_dual_instances(i).services_hash||

4671: i := p_dual_instances.FIRST;
4672: LOOP
4673:
4674: FTE_FREIGHT_PRICING_UTIL.print_msg(
4675: p_msg => 'instance_index : '||p_dual_instances(i).instance_index||' pattern_no : '||p_dual_instances(i).pattern_no||' services_hash : '||p_dual_instances(i).services_hash||
4676: ' grouping_level : '||p_dual_instances(i).grouping_level||' aggregation : '||p_dual_instances(i).aggregation||' objective : '||p_dual_instances(i).objective||' count_pattern : '
4677: ||p_dual_instances(i).count_pattern||' loose_item_flag : '||p_dual_instances(i).loose_item_flag);
4678:
4679: EXIT WHEN i=p_dual_instances.LAST;

Line 4676: ' grouping_level : '||p_dual_instances(i).grouping_level||' aggregation : '||p_dual_instances(i).aggregation||' objective : '||p_dual_instances(i).objective||' count_pattern : '

4672: LOOP
4673:
4674: FTE_FREIGHT_PRICING_UTIL.print_msg(
4675: p_msg => 'instance_index : '||p_dual_instances(i).instance_index||' pattern_no : '||p_dual_instances(i).pattern_no||' services_hash : '||p_dual_instances(i).services_hash||
4676: ' grouping_level : '||p_dual_instances(i).grouping_level||' aggregation : '||p_dual_instances(i).aggregation||' objective : '||p_dual_instances(i).objective||' count_pattern : '
4677: ||p_dual_instances(i).count_pattern||' loose_item_flag : '||p_dual_instances(i).loose_item_flag);
4678:
4679: EXIT WHEN i=p_dual_instances.LAST;
4680: i := p_dual_instances.NEXT(i);

Line 4677: ||p_dual_instances(i).count_pattern||' loose_item_flag : '||p_dual_instances(i).loose_item_flag);

4673:
4674: FTE_FREIGHT_PRICING_UTIL.print_msg(
4675: p_msg => 'instance_index : '||p_dual_instances(i).instance_index||' pattern_no : '||p_dual_instances(i).pattern_no||' services_hash : '||p_dual_instances(i).services_hash||
4676: ' grouping_level : '||p_dual_instances(i).grouping_level||' aggregation : '||p_dual_instances(i).aggregation||' objective : '||p_dual_instances(i).objective||' count_pattern : '
4677: ||p_dual_instances(i).count_pattern||' loose_item_flag : '||p_dual_instances(i).loose_item_flag);
4678:
4679: EXIT WHEN i=p_dual_instances.LAST;
4680: i := p_dual_instances.NEXT(i);
4681: END LOOP;

Line 4679: EXIT WHEN i=p_dual_instances.LAST;

4675: p_msg => 'instance_index : '||p_dual_instances(i).instance_index||' pattern_no : '||p_dual_instances(i).pattern_no||' services_hash : '||p_dual_instances(i).services_hash||
4676: ' grouping_level : '||p_dual_instances(i).grouping_level||' aggregation : '||p_dual_instances(i).aggregation||' objective : '||p_dual_instances(i).objective||' count_pattern : '
4677: ||p_dual_instances(i).count_pattern||' loose_item_flag : '||p_dual_instances(i).loose_item_flag);
4678:
4679: EXIT WHEN i=p_dual_instances.LAST;
4680: i := p_dual_instances.NEXT(i);
4681: END LOOP;
4682: FTE_FREIGHT_PRICING_UTIL.print_tag(p_msg => '');
4683: END IF;

Line 4680: i := p_dual_instances.NEXT(i);

4676: ' grouping_level : '||p_dual_instances(i).grouping_level||' aggregation : '||p_dual_instances(i).aggregation||' objective : '||p_dual_instances(i).objective||' count_pattern : '
4677: ||p_dual_instances(i).count_pattern||' loose_item_flag : '||p_dual_instances(i).loose_item_flag);
4678:
4679: EXIT WHEN i=p_dual_instances.LAST;
4680: i := p_dual_instances.NEXT(i);
4681: END LOOP;
4682: FTE_FREIGHT_PRICING_UTIL.print_tag(p_msg => '');
4683: END IF;
4684:

Line 4688: FTE_FREIGHT_PRICING_UTIL.set_exception('print_dual_instances',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');

4684:
4685: EXCEPTION
4686: WHEN others THEN
4687: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4688: FTE_FREIGHT_PRICING_UTIL.set_exception('print_dual_instances',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
4689: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4690:
4691: END print_dual_instances;
4692:

Line 4691: END print_dual_instances;

4687: x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4688: FTE_FREIGHT_PRICING_UTIL.set_exception('print_dual_instances',FTE_FREIGHT_PRICING_UTIL.G_ERR,'g_others');
4689: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_ERR,'Unexpected Error : '||SQLCODE||' : '||SQLERRM);
4690:
4691: END print_dual_instances;
4692:
4693: PROCEDURE print_qp_output_lines (
4694: p_engine_output_line IN QP_PREQ_GRP.LINE_TBL_TYPE,
4695: p_engine_output_detail IN QP_PREQ_GRP.LINE_DETAIL_TBL_TYPE,

Line 5381: p_pricing_dual_instances IN pricing_dual_instance_tab_type,

5377: p_grouping_level IN VARCHAR2,
5378: p_aggregation IN VARCHAR2,
5379: p_objective IN VARCHAR2,
5380: p_toplevel_charges_hash IN VARCHAR2, -- Top level requested additional services hash
5381: p_pricing_dual_instances IN pricing_dual_instance_tab_type,
5382: --p_pricing_engine_rows IN pricing_engine_input_tab_type,
5383: x_matched_instance_index OUT NOCOPY NUMBER, -- -100 if does not match
5384: x_return_status OUT NOCOPY VARCHAR2 )
5385: IS

Line 5408: i := p_pricing_dual_instances.FIRST;

5404: x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5405: FTE_FREIGHT_PRICING_UTIL.reset_dbg_vars;
5406: FTE_FREIGHT_PRICING_UTIL.set_method(l_log_level,'search_matching_instance','start');
5407:
5408: i := p_pricing_dual_instances.FIRST;
5409: LOOP
5410: -- SC_WB(2) should match with MC_WB(5) and SC_VB(3) should match with MC_VB(6)
5411: -- as long as the pricing dual and pricing objectives match
5412: IF p_pricing_dual_instances(i).pattern_no = p_pattern_no THEN -- Can match with more than one here

Line 5411: -- as long as the pricing dual and pricing objectives match

5407:
5408: i := p_pricing_dual_instances.FIRST;
5409: LOOP
5410: -- SC_WB(2) should match with MC_WB(5) and SC_VB(3) should match with MC_VB(6)
5411: -- as long as the pricing dual and pricing objectives match
5412: IF p_pricing_dual_instances(i).pattern_no = p_pattern_no THEN -- Can match with more than one here
5413: l_matched_index(p_pricing_dual_instances(i).instance_index) := p_pricing_dual_instances(i).instance_index;
5414: ELSIF (p_pattern_no = G_PATTERN_2 OR p_pattern_no = G_PATTERN_5 OR p_pattern_no = G_PATTERN_9) THEN
5415: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_5 OR

Line 5412: IF p_pricing_dual_instances(i).pattern_no = p_pattern_no THEN -- Can match with more than one here

5408: i := p_pricing_dual_instances.FIRST;
5409: LOOP
5410: -- SC_WB(2) should match with MC_WB(5) and SC_VB(3) should match with MC_VB(6)
5411: -- as long as the pricing dual and pricing objectives match
5412: IF p_pricing_dual_instances(i).pattern_no = p_pattern_no THEN -- Can match with more than one here
5413: l_matched_index(p_pricing_dual_instances(i).instance_index) := p_pricing_dual_instances(i).instance_index;
5414: ELSIF (p_pattern_no = G_PATTERN_2 OR p_pattern_no = G_PATTERN_5 OR p_pattern_no = G_PATTERN_9) THEN
5415: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_5 OR
5416: p_pricing_dual_instances(i).pattern_no = G_PATTERN_9 OR

Line 5413: l_matched_index(p_pricing_dual_instances(i).instance_index) := p_pricing_dual_instances(i).instance_index;

5409: LOOP
5410: -- SC_WB(2) should match with MC_WB(5) and SC_VB(3) should match with MC_VB(6)
5411: -- as long as the pricing dual and pricing objectives match
5412: IF p_pricing_dual_instances(i).pattern_no = p_pattern_no THEN -- Can match with more than one here
5413: l_matched_index(p_pricing_dual_instances(i).instance_index) := p_pricing_dual_instances(i).instance_index;
5414: ELSIF (p_pattern_no = G_PATTERN_2 OR p_pattern_no = G_PATTERN_5 OR p_pattern_no = G_PATTERN_9) THEN
5415: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_5 OR
5416: p_pricing_dual_instances(i).pattern_no = G_PATTERN_9 OR
5417: p_pricing_dual_instances(i).pattern_no = G_PATTERN_2) AND

Line 5415: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_5 OR

5411: -- as long as the pricing dual and pricing objectives match
5412: IF p_pricing_dual_instances(i).pattern_no = p_pattern_no THEN -- Can match with more than one here
5413: l_matched_index(p_pricing_dual_instances(i).instance_index) := p_pricing_dual_instances(i).instance_index;
5414: ELSIF (p_pattern_no = G_PATTERN_2 OR p_pattern_no = G_PATTERN_5 OR p_pattern_no = G_PATTERN_9) THEN
5415: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_5 OR
5416: p_pricing_dual_instances(i).pattern_no = G_PATTERN_9 OR
5417: p_pricing_dual_instances(i).pattern_no = G_PATTERN_2) AND
5418: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5419: p_pricing_dual_instances(i).aggregation = p_aggregation AND

Line 5416: p_pricing_dual_instances(i).pattern_no = G_PATTERN_9 OR

5412: IF p_pricing_dual_instances(i).pattern_no = p_pattern_no THEN -- Can match with more than one here
5413: l_matched_index(p_pricing_dual_instances(i).instance_index) := p_pricing_dual_instances(i).instance_index;
5414: ELSIF (p_pattern_no = G_PATTERN_2 OR p_pattern_no = G_PATTERN_5 OR p_pattern_no = G_PATTERN_9) THEN
5415: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_5 OR
5416: p_pricing_dual_instances(i).pattern_no = G_PATTERN_9 OR
5417: p_pricing_dual_instances(i).pattern_no = G_PATTERN_2) AND
5418: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5419: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5420: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN

Line 5417: p_pricing_dual_instances(i).pattern_no = G_PATTERN_2) AND

5413: l_matched_index(p_pricing_dual_instances(i).instance_index) := p_pricing_dual_instances(i).instance_index;
5414: ELSIF (p_pattern_no = G_PATTERN_2 OR p_pattern_no = G_PATTERN_5 OR p_pattern_no = G_PATTERN_9) THEN
5415: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_5 OR
5416: p_pricing_dual_instances(i).pattern_no = G_PATTERN_9 OR
5417: p_pricing_dual_instances(i).pattern_no = G_PATTERN_2) AND
5418: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5419: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5420: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN
5421: l_matched_index(p_pricing_dual_instances(i).instance_index) :=

Line 5418: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND

5414: ELSIF (p_pattern_no = G_PATTERN_2 OR p_pattern_no = G_PATTERN_5 OR p_pattern_no = G_PATTERN_9) THEN
5415: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_5 OR
5416: p_pricing_dual_instances(i).pattern_no = G_PATTERN_9 OR
5417: p_pricing_dual_instances(i).pattern_no = G_PATTERN_2) AND
5418: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5419: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5420: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN
5421: l_matched_index(p_pricing_dual_instances(i).instance_index) :=
5422: p_pricing_dual_instances(i).instance_index;

Line 5419: p_pricing_dual_instances(i).aggregation = p_aggregation AND

5415: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_5 OR
5416: p_pricing_dual_instances(i).pattern_no = G_PATTERN_9 OR
5417: p_pricing_dual_instances(i).pattern_no = G_PATTERN_2) AND
5418: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5419: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5420: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN
5421: l_matched_index(p_pricing_dual_instances(i).instance_index) :=
5422: p_pricing_dual_instances(i).instance_index;
5423: END IF;

Line 5420: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN

5416: p_pricing_dual_instances(i).pattern_no = G_PATTERN_9 OR
5417: p_pricing_dual_instances(i).pattern_no = G_PATTERN_2) AND
5418: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5419: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5420: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN
5421: l_matched_index(p_pricing_dual_instances(i).instance_index) :=
5422: p_pricing_dual_instances(i).instance_index;
5423: END IF;
5424: ELSIF (p_pattern_no = G_PATTERN_3 OR p_pattern_no = G_PATTERN_6 OR p_pattern_no = G_PATTERN_10) THEN

Line 5421: l_matched_index(p_pricing_dual_instances(i).instance_index) :=

5417: p_pricing_dual_instances(i).pattern_no = G_PATTERN_2) AND
5418: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5419: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5420: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN
5421: l_matched_index(p_pricing_dual_instances(i).instance_index) :=
5422: p_pricing_dual_instances(i).instance_index;
5423: END IF;
5424: ELSIF (p_pattern_no = G_PATTERN_3 OR p_pattern_no = G_PATTERN_6 OR p_pattern_no = G_PATTERN_10) THEN
5425: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_6 OR

Line 5422: p_pricing_dual_instances(i).instance_index;

5418: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5419: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5420: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN
5421: l_matched_index(p_pricing_dual_instances(i).instance_index) :=
5422: p_pricing_dual_instances(i).instance_index;
5423: END IF;
5424: ELSIF (p_pattern_no = G_PATTERN_3 OR p_pattern_no = G_PATTERN_6 OR p_pattern_no = G_PATTERN_10) THEN
5425: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_6 OR
5426: p_pricing_dual_instances(i).pattern_no = G_PATTERN_10 OR

Line 5425: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_6 OR

5421: l_matched_index(p_pricing_dual_instances(i).instance_index) :=
5422: p_pricing_dual_instances(i).instance_index;
5423: END IF;
5424: ELSIF (p_pattern_no = G_PATTERN_3 OR p_pattern_no = G_PATTERN_6 OR p_pattern_no = G_PATTERN_10) THEN
5425: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_6 OR
5426: p_pricing_dual_instances(i).pattern_no = G_PATTERN_10 OR
5427: p_pricing_dual_instances(i).pattern_no = G_PATTERN_3) AND
5428: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5429: p_pricing_dual_instances(i).aggregation = p_aggregation AND

Line 5426: p_pricing_dual_instances(i).pattern_no = G_PATTERN_10 OR

5422: p_pricing_dual_instances(i).instance_index;
5423: END IF;
5424: ELSIF (p_pattern_no = G_PATTERN_3 OR p_pattern_no = G_PATTERN_6 OR p_pattern_no = G_PATTERN_10) THEN
5425: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_6 OR
5426: p_pricing_dual_instances(i).pattern_no = G_PATTERN_10 OR
5427: p_pricing_dual_instances(i).pattern_no = G_PATTERN_3) AND
5428: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5429: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5430: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN

Line 5427: p_pricing_dual_instances(i).pattern_no = G_PATTERN_3) AND

5423: END IF;
5424: ELSIF (p_pattern_no = G_PATTERN_3 OR p_pattern_no = G_PATTERN_6 OR p_pattern_no = G_PATTERN_10) THEN
5425: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_6 OR
5426: p_pricing_dual_instances(i).pattern_no = G_PATTERN_10 OR
5427: p_pricing_dual_instances(i).pattern_no = G_PATTERN_3) AND
5428: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5429: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5430: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN
5431: l_matched_index(p_pricing_dual_instances(i).instance_index) :=

Line 5428: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND

5424: ELSIF (p_pattern_no = G_PATTERN_3 OR p_pattern_no = G_PATTERN_6 OR p_pattern_no = G_PATTERN_10) THEN
5425: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_6 OR
5426: p_pricing_dual_instances(i).pattern_no = G_PATTERN_10 OR
5427: p_pricing_dual_instances(i).pattern_no = G_PATTERN_3) AND
5428: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5429: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5430: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN
5431: l_matched_index(p_pricing_dual_instances(i).instance_index) :=
5432: p_pricing_dual_instances(i).instance_index;

Line 5429: p_pricing_dual_instances(i).aggregation = p_aggregation AND

5425: IF (p_pricing_dual_instances(i).pattern_no = G_PATTERN_6 OR
5426: p_pricing_dual_instances(i).pattern_no = G_PATTERN_10 OR
5427: p_pricing_dual_instances(i).pattern_no = G_PATTERN_3) AND
5428: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5429: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5430: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN
5431: l_matched_index(p_pricing_dual_instances(i).instance_index) :=
5432: p_pricing_dual_instances(i).instance_index;
5433: END IF;

Line 5430: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN

5426: p_pricing_dual_instances(i).pattern_no = G_PATTERN_10 OR
5427: p_pricing_dual_instances(i).pattern_no = G_PATTERN_3) AND
5428: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5429: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5430: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN
5431: l_matched_index(p_pricing_dual_instances(i).instance_index) :=
5432: p_pricing_dual_instances(i).instance_index;
5433: END IF;
5434: END IF;

Line 5431: l_matched_index(p_pricing_dual_instances(i).instance_index) :=

5427: p_pricing_dual_instances(i).pattern_no = G_PATTERN_3) AND
5428: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5429: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5430: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN
5431: l_matched_index(p_pricing_dual_instances(i).instance_index) :=
5432: p_pricing_dual_instances(i).instance_index;
5433: END IF;
5434: END IF;
5435:

Line 5432: p_pricing_dual_instances(i).instance_index;

5428: p_pricing_dual_instances(i).grouping_level = p_grouping_level AND
5429: p_pricing_dual_instances(i).aggregation = p_aggregation AND
5430: NVL(p_pricing_dual_instances(i).objective,'N') = NVL(p_objective,'N') THEN
5431: l_matched_index(p_pricing_dual_instances(i).instance_index) :=
5432: p_pricing_dual_instances(i).instance_index;
5433: END IF;
5434: END IF;
5435:
5436: EXIT WHEN i = p_pricing_dual_instances.LAST;

Line 5436: EXIT WHEN i = p_pricing_dual_instances.LAST;

5432: p_pricing_dual_instances(i).instance_index;
5433: END IF;
5434: END IF;
5435:
5436: EXIT WHEN i = p_pricing_dual_instances.LAST;
5437: i := p_pricing_dual_instances.NEXT(i);
5438: END LOOP;
5439:
5440: IF l_matched_index.COUNT <> 0 THEN

Line 5437: i := p_pricing_dual_instances.NEXT(i);

5433: END IF;
5434: END IF;
5435:
5436: EXIT WHEN i = p_pricing_dual_instances.LAST;
5437: i := p_pricing_dual_instances.NEXT(i);
5438: END LOOP;
5439:
5440: IF l_matched_index.COUNT <> 0 THEN
5441:

Line 5446: m := p_pricing_dual_instances.FIRST;

5442: -- Comes here if there are instances from same pattern and
5443: -- p_aggregation = 'ACROSS' and matching basis or p_aggregation = 'WITHIN' and matching categories
5444: -- Now match the additional services for the top level row with that of the matched instances
5445:
5446: m := p_pricing_dual_instances.FIRST;
5447: LOOP
5448: IF l_matched_index.EXISTS(p_pricing_dual_instances(m).instance_index) THEN
5449: IF NVL(p_pricing_dual_instances(m).services_hash,'N') = NVL(p_toplevel_charges_hash,'N') THEN
5450: l_matched_instance_index := p_pricing_dual_instances(m).instance_index;

Line 5448: IF l_matched_index.EXISTS(p_pricing_dual_instances(m).instance_index) THEN

5444: -- Now match the additional services for the top level row with that of the matched instances
5445:
5446: m := p_pricing_dual_instances.FIRST;
5447: LOOP
5448: IF l_matched_index.EXISTS(p_pricing_dual_instances(m).instance_index) THEN
5449: IF NVL(p_pricing_dual_instances(m).services_hash,'N') = NVL(p_toplevel_charges_hash,'N') THEN
5450: l_matched_instance_index := p_pricing_dual_instances(m).instance_index;
5451: EXIT; -- Maximum one can match
5452: END IF;

Line 5449: IF NVL(p_pricing_dual_instances(m).services_hash,'N') = NVL(p_toplevel_charges_hash,'N') THEN

5445:
5446: m := p_pricing_dual_instances.FIRST;
5447: LOOP
5448: IF l_matched_index.EXISTS(p_pricing_dual_instances(m).instance_index) THEN
5449: IF NVL(p_pricing_dual_instances(m).services_hash,'N') = NVL(p_toplevel_charges_hash,'N') THEN
5450: l_matched_instance_index := p_pricing_dual_instances(m).instance_index;
5451: EXIT; -- Maximum one can match
5452: END IF;
5453: END IF;

Line 5450: l_matched_instance_index := p_pricing_dual_instances(m).instance_index;

5446: m := p_pricing_dual_instances.FIRST;
5447: LOOP
5448: IF l_matched_index.EXISTS(p_pricing_dual_instances(m).instance_index) THEN
5449: IF NVL(p_pricing_dual_instances(m).services_hash,'N') = NVL(p_toplevel_charges_hash,'N') THEN
5450: l_matched_instance_index := p_pricing_dual_instances(m).instance_index;
5451: EXIT; -- Maximum one can match
5452: END IF;
5453: END IF;
5454:

Line 5455: EXIT WHEN m = p_pricing_dual_instances.LAST;

5451: EXIT; -- Maximum one can match
5452: END IF;
5453: END IF;
5454:
5455: EXIT WHEN m = p_pricing_dual_instances.LAST;
5456: m := p_pricing_dual_instances.NEXT(m);
5457: END LOOP;
5458:
5459: IF l_matched_instance_index = 0 THEN

Line 5456: m := p_pricing_dual_instances.NEXT(m);

5452: END IF;
5453: END IF;
5454:
5455: EXIT WHEN m = p_pricing_dual_instances.LAST;
5456: m := p_pricing_dual_instances.NEXT(m);
5457: END LOOP;
5458:
5459: IF l_matched_instance_index = 0 THEN
5460: l_matched_instance_index := -100;

Line 5483: -- The calling procedure takes care of creating pattern_row and dual_instance_row

5479: END search_matching_instance;
5480:
5481: -- This procedure should be called to create associated engine rows while creating one new instance
5482: -- It also creates relevant associated attribute rows
5483: -- The calling procedure takes care of creating pattern_row and dual_instance_row
5484: -- Additional attributes either at delivery level/container level are also added there
5485: -- It is called for each top level container
5486: -- Can be called for both Single-commodity and multi-commodity (ie. for all patterns)
5487:

Line 5877: -- The calling procedure takes care of creating pattern_row and modifying dual_instance_row

5873: FTE_FREIGHT_PRICING_UTIL.unset_method(l_log_level,'create_new_instance');
5874: END create_new_instance;
5875:
5876: -- This procedure should be called to add a pattern to a matched instance
5877: -- The calling procedure takes care of creating pattern_row and modifying dual_instance_row
5878: -- This procedure might need to create new engine rows and associated attribute rows
5879: -- for any new category in case of 'WITHIN' and for new basis and new category in existing basis
5880: -- in case of ACROSS
5881: -- It is called for a top level container for which a matching instance has already been found

Line 6272: -- ACROSS : Handling individual categories in the new basis

6268: m := l_unmatched_basis.FIRST;
6269: LOOP
6270:
6271: IF l_unmatched_bascateg.COUNT > 0 THEN
6272: -- ACROSS : Handling individual categories in the new basis
6273: n := l_unmatched_bascateg.FIRST;
6274: LOOP
6275:
6276: l_input_index := x_pricing_engine_rows.COUNT + 1;

Line 6337: -- It then acknowledges all the patterns and looks up pricing dual from the preferences

6333: END add_to_instance;
6334:
6335: -- This procedure looks up the delivery lines in each of the input content rows and
6336: -- based on the commodity/freight class and pricing basis determines pattern for each
6337: -- It then acknowledges all the patterns and looks up pricing dual from the preferences
6338: -- table for each of them. It consolidates dual instances if possible and formulates input lines
6339: -- For mixed commodity patterns considers pricing objective
6340: -- Looks up delivery detail isnfo from g_shipment_line_rows
6341:

Line 6338: -- table for each of them. It consolidates dual instances if possible and formulates input lines

6334:
6335: -- This procedure looks up the delivery lines in each of the input content rows and
6336: -- based on the commodity/freight class and pricing basis determines pattern for each
6337: -- It then acknowledges all the patterns and looks up pricing dual from the preferences
6338: -- table for each of them. It consolidates dual instances if possible and formulates input lines
6339: -- For mixed commodity patterns considers pricing objective
6340: -- Looks up delivery detail isnfo from g_shipment_line_rows
6341:
6342: PROCEDURE process_shipment_pattern (

Line 6350: x_pricing_dual_instances OUT NOCOPY pricing_dual_instance_tab_type,

6346: p_carrier_id IN NUMBER,
6347: p_service_code IN VARCHAR2,
6348: p_shpmnt_toplevel_rows IN OUT NOCOPY shpmnt_content_tab_type,
6349: p_shpmnt_toplevel_charges IN addl_services_tab_type, -- Top level requested additional services
6350: x_pricing_dual_instances OUT NOCOPY pricing_dual_instance_tab_type,
6351: x_pricing_engine_rows OUT NOCOPY pricing_engine_input_tab_type,
6352: x_pattern_rows OUT NOCOPY top_level_pattern_tab_type,
6353: x_pricing_attribute_rows OUT NOCOPY pricing_attribute_tab_type, -- Probably not required/required for line level attributes like category/hazard/container_type ?
6354: x_return_status OUT NOCOPY VARCHAR2 )

Line 6592: -- Look up FTE pricing preferences table to find out the pricing dual for that pattern

6588:
6589: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Done identifying pattern');
6590: -- How do you identify Parcel here ? Not required to identify
6591:
6592: -- Look up FTE pricing preferences table to find out the pricing dual for that pattern
6593:
6594: l_grouping_level := FTE_FREIGHT_PRICING_SPECIAL.g_lane_rules_tab(l_pattern_no).grouping_level;
6595: l_aggregation := FTE_FREIGHT_PRICING_SPECIAL.g_lane_rules_tab(l_pattern_no).commodity_aggregation;
6596: l_pricing_objective := FTE_FREIGHT_PRICING_SPECIAL.g_lane_rules_tab(l_pattern_no).pricing_objective;

Line 6622: -- See if already the same dual exists with (same commodity type for Sh-Wi ) a grouping rule = shipment.

6618: END LOOP;
6619: -- }
6620: END IF;
6621:
6622: -- See if already the same dual exists with (same commodity type for Sh-Wi ) a grouping rule = shipment.
6623: -- If yes, consolidate this one to that. If no, create a new pricing dual instance
6624:
6625: l_pattern_index := l_pattern_index + 1;
6626:

Line 6623: -- If yes, consolidate this one to that. If no, create a new pricing dual instance

6619: -- }
6620: END IF;
6621:
6622: -- See if already the same dual exists with (same commodity type for Sh-Wi ) a grouping rule = shipment.
6623: -- If yes, consolidate this one to that. If no, create a new pricing dual instance
6624:
6625: l_pattern_index := l_pattern_index + 1;
6626:
6627: -- Create a new record into x_pattern_rows here

Line 6646: p_instance_count => x_pricing_dual_instances.COUNT,

6642: p_toplevel_lines => p_shpmnt_toplevel_rows(i),
6643: p_grouping_level => l_grouping_level,
6644: p_aggregation => l_aggregation,
6645: p_objective => l_pricing_objective,
6646: p_instance_count => x_pricing_dual_instances.COUNT,
6647: x_pricing_engine_rows => x_pricing_engine_rows,
6648: x_pricing_attribute_rows => x_pricing_attribute_rows,
6649: x_return_status => l_return_status );
6650:

Line 6661: -- Create a new record into x_pricing_dual_instances here

6657: -- already handled inside the called procedure
6658: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Instance created for container '||p_shpmnt_toplevel_rows(i).content_id);
6659: END IF;
6660:
6661: -- Create a new record into x_pricing_dual_instances here
6662: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6663: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6664:
6665: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;

Line 6662: l_instance_index := x_pricing_dual_instances.COUNT + 1;

6658: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Instance created for container '||p_shpmnt_toplevel_rows(i).content_id);
6659: END IF;
6660:
6661: -- Create a new record into x_pricing_dual_instances here
6662: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6663: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6664:
6665: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6666: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;

Line 6665: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;

6661: -- Create a new record into x_pricing_dual_instances here
6662: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6663: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6664:
6665: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6666: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6667: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6668: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6669: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;

Line 6666: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;

6662: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6663: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6664:
6665: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6666: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6667: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6668: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6669: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6670: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;

Line 6667: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;

6663: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6664:
6665: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6666: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6667: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6668: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6669: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6670: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6671: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately

Line 6668: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;

6664:
6665: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6666: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6667: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6668: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6669: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6670: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6671: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6672:

Line 6669: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;

6665: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6666: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6667: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6668: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6669: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6670: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6671: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6672:
6673:

Line 6670: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;

6666: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6667: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6668: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6669: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6670: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6671: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6672:
6673:
6674: -- }

Line 6671: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately

6667: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6668: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6669: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6670: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6671: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6672:
6673:
6674: -- }
6675: ELSIF l_grouping_level ='SHIPMENT' THEN -- Grouping level = shipment

Line 6680: -- Pass in x_pricing_dual_instances,x_pricing_engine_rows,l_pattern,l_grouping_level,

6676: -- {
6677:
6678:
6679: -- Now search for matching patterns
6680: -- Pass in x_pricing_dual_instances,x_pricing_engine_rows,l_pattern,l_grouping_level,
6681: -- l_aggregation,l_pricing_objective,l_rolledup_category_rows
6682: -- and additional services hash for current pattern (at the top line level)
6683: -- Get back matching instance_index (if matches), -100 if does not match
6684:

Line 6688: l_instance_count := x_pricing_dual_instances.COUNT;

6684:
6685: IF l_cont_basis_count = 0 THEN
6686: -- {
6687:
6688: l_instance_count := x_pricing_dual_instances.COUNT;
6689:
6690: IF l_instance_count > 0 THEN
6691: -- {
6692:

Line 6703: p_pricing_dual_instances => x_pricing_dual_instances,

6699: p_grouping_level => l_grouping_level,
6700: p_aggregation => l_aggregation,
6701: p_objective => l_pricing_objective,
6702: p_toplevel_charges_hash => l_services_hash, -- Created here from p_shpmnt_toplevel_charges
6703: p_pricing_dual_instances => x_pricing_dual_instances,
6704: --p_pricing_engine_rows => x_pricing_engine_rows,
6705: x_matched_instance_index => l_matched_instance_index, -- -100 if does not match
6706: x_return_status => l_return_status );
6707:

Line 6736: p_instance_count => x_pricing_dual_instances.COUNT,

6732: p_toplevel_lines => p_shpmnt_toplevel_rows(i),
6733: p_grouping_level => l_grouping_level,
6734: p_aggregation => l_aggregation,
6735: p_objective => l_pricing_objective,
6736: p_instance_count => x_pricing_dual_instances.COUNT,
6737: x_pricing_engine_rows => x_pricing_engine_rows,
6738: x_pricing_attribute_rows => x_pricing_attribute_rows,
6739: x_return_status => l_return_status );
6740:

Line 6751: -- Create a new record into x_pricing_dual_instances here

6747: -- already handled inside the called procedure
6748: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Instance created for container '||p_shpmnt_toplevel_rows(i).content_id);
6749: END IF;
6750:
6751: -- Create a new record into x_pricing_dual_instances here
6752:
6753: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6754: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6755:

Line 6753: l_instance_index := x_pricing_dual_instances.COUNT + 1;

6749: END IF;
6750:
6751: -- Create a new record into x_pricing_dual_instances here
6752:
6753: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6754: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6755:
6756: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6757: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;

Line 6756: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;

6752:
6753: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6754: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6755:
6756: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6757: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6758: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6759: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6760: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;

Line 6757: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;

6753: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6754: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6755:
6756: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6757: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6758: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6759: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6760: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6761: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;

Line 6758: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;

6754: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6755:
6756: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6757: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6758: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6759: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6760: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6761: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6762: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately

Line 6759: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;

6755:
6756: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6757: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6758: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6759: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6760: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6761: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6762: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6763:

Line 6760: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;

6756: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6757: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6758: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6759: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6760: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6761: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6762: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6763:
6764: ELSE -- Found a matching instance

Line 6761: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;

6757: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6758: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6759: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6760: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6761: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6762: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6763:
6764: ELSE -- Found a matching instance
6765:

Line 6762: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately

6758: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
6759: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6760: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6761: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6762: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6763:
6764: ELSE -- Found a matching instance
6765:
6766: -- Add to the matching instance l_matched_instance_index

Line 6768: l_count_pattern := x_pricing_dual_instances(l_matched_instance_index).count_pattern + 1;

6764: ELSE -- Found a matching instance
6765:
6766: -- Add to the matching instance l_matched_instance_index
6767:
6768: l_count_pattern := x_pricing_dual_instances(l_matched_instance_index).count_pattern + 1;
6769: add_to_instance (
6770: p_rolled_up_lines => l_rolledup_lines,
6771: p_matching_instance_index => l_matched_instance_index,
6772: p_aggregation => l_aggregation,

Line 6787: -- Modify x_pricing_dual_instances(l_matched_instance_index) here

6783: ELSE
6784: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Container '||p_shpmnt_toplevel_rows(i).content_id||' added to instance '||l_matched_instance_index);
6785: END IF;
6786:
6787: -- Modify x_pricing_dual_instances(l_matched_instance_index) here
6788: l_instance_index := l_matched_instance_index;
6789: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6790:
6791: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern;

Line 6791: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern;

6787: -- Modify x_pricing_dual_instances(l_matched_instance_index) here
6788: l_instance_index := l_matched_instance_index;
6789: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6790:
6791: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern;
6792:
6793: END IF;
6794: -- }
6795: END IF; -- grouping level

Line 6883: -- Look up FTE pricing preferences table to find out the pricing dual for that pattern

6879: x_pattern_rows(l_pattern_index).services_hash := null;
6880:
6881: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Done initializing pattern row');
6882:
6883: -- Look up FTE pricing preferences table to find out the pricing dual for that pattern
6884:
6885: l_grouping_level := FTE_FREIGHT_PRICING_SPECIAL.g_lane_rules_tab(l_pattern_no).grouping_level;
6886: l_aggregation := FTE_FREIGHT_PRICING_SPECIAL.g_lane_rules_tab(l_pattern_no).commodity_aggregation;
6887: -- l_pricing_objective := FTE_FREIGHT_PRICING_SPECIAL.g_lane_rules_tab(l_pattern_no).pricing_objective;

Line 6890: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Done getting pricing dual');

6886: l_aggregation := FTE_FREIGHT_PRICING_SPECIAL.g_lane_rules_tab(l_pattern_no).commodity_aggregation;
6887: -- l_pricing_objective := FTE_FREIGHT_PRICING_SPECIAL.g_lane_rules_tab(l_pattern_no).pricing_objective;
6888: l_pricing_objective := NULL;
6889:
6890: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Done getting pricing dual');
6891: l_rolledup_lines(1) := l_rolledup_rec;
6892:
6893: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'l_rolledup_lines.COUNT = '||l_rolledup_lines.COUNT);
6894:

Line 6906: p_instance_count => x_pricing_dual_instances.COUNT,

6902: p_toplevel_lines => p_shpmnt_toplevel_rows(i),
6903: p_grouping_level => l_grouping_level,
6904: p_aggregation => l_aggregation,
6905: p_objective => l_pricing_objective,
6906: p_instance_count => x_pricing_dual_instances.COUNT,
6907: x_pricing_engine_rows => x_pricing_engine_rows,
6908: x_pricing_attribute_rows => x_pricing_attribute_rows,
6909: x_return_status => l_return_status );
6910:

Line 6921: -- Create a new record into x_pricing_dual_instances here

6917: -- already handled inside the called procedure
6918: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Instance created for loose item '||p_shpmnt_toplevel_rows(i).content_id);
6919: END IF;
6920:
6921: -- Create a new record into x_pricing_dual_instances here
6922: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6923: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6924:
6925: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;

Line 6922: l_instance_index := x_pricing_dual_instances.COUNT + 1;

6918: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Instance created for loose item '||p_shpmnt_toplevel_rows(i).content_id);
6919: END IF;
6920:
6921: -- Create a new record into x_pricing_dual_instances here
6922: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6923: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6924:
6925: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6926: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;

Line 6925: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;

6921: -- Create a new record into x_pricing_dual_instances here
6922: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6923: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6924:
6925: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6926: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6927: x_pricing_dual_instances(l_instance_index).services_hash := null;
6928: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6929: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;

Line 6926: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;

6922: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6923: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6924:
6925: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6926: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6927: x_pricing_dual_instances(l_instance_index).services_hash := null;
6928: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6929: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6930: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;

Line 6927: x_pricing_dual_instances(l_instance_index).services_hash := null;

6923: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
6924:
6925: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6926: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6927: x_pricing_dual_instances(l_instance_index).services_hash := null;
6928: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6929: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6930: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6931: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately

Line 6928: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;

6924:
6925: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6926: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6927: x_pricing_dual_instances(l_instance_index).services_hash := null;
6928: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6929: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6930: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6931: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6932: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';

Line 6929: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;

6925: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
6926: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6927: x_pricing_dual_instances(l_instance_index).services_hash := null;
6928: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6929: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6930: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6931: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6932: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';
6933: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);

Line 6930: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;

6926: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
6927: x_pricing_dual_instances(l_instance_index).services_hash := null;
6928: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6929: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6930: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6931: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6932: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';
6933: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);
6934:

Line 6931: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately

6927: x_pricing_dual_instances(l_instance_index).services_hash := null;
6928: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6929: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6930: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6931: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6932: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';
6933: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);
6934:
6935:

Line 6932: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';

6928: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
6929: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6930: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6931: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6932: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';
6933: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);
6934:
6935:
6936: -- }

Line 6933: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);

6929: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
6930: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
6931: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
6932: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';
6933: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);
6934:
6935:
6936: -- }
6937: ELSE -- Grouping level = 'SHIPMENT' (Loose Items only)

Line 6942: l_instance_count := x_pricing_dual_instances.COUNT;

6938: -- {
6939:
6940: -- should we be looking only at loose item instances? or this will be handled by
6941: -- search matching instances?
6942: l_instance_count := x_pricing_dual_instances.COUNT;
6943:
6944: IF l_instance_count > 0 THEN
6945: -- {
6946:

Line 6955: p_pricing_dual_instances => x_pricing_dual_instances,

6951: p_grouping_level => l_grouping_level,
6952: p_aggregation => l_aggregation,
6953: p_objective => l_pricing_objective,
6954: p_toplevel_charges_hash => null, -- Created here from p_shpmnt_toplevel_charges
6955: p_pricing_dual_instances => x_pricing_dual_instances,
6956: x_matched_instance_index => l_matched_instance_index, -- -100 if does not match
6957: x_return_status => l_return_status );
6958:
6959: IF l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN

Line 6981: p_instance_count => x_pricing_dual_instances.COUNT,

6977: p_toplevel_lines => p_shpmnt_toplevel_rows(i),
6978: p_grouping_level => l_grouping_level,
6979: p_aggregation => l_aggregation,
6980: p_objective => l_pricing_objective,
6981: p_instance_count => x_pricing_dual_instances.COUNT,
6982: x_pricing_engine_rows => x_pricing_engine_rows,
6983: x_pricing_attribute_rows => x_pricing_attribute_rows,
6984: x_return_status => l_return_status );
6985:

Line 6996: -- Create a new record into x_pricing_dual_instances here

6992: -- already handled inside the called procedure
6993: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Instance created for loose item '||p_shpmnt_toplevel_rows(i).content_id);
6994: END IF;
6995:
6996: -- Create a new record into x_pricing_dual_instances here
6997:
6998: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6999: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
7000:

Line 6998: l_instance_index := x_pricing_dual_instances.COUNT + 1;

6994: END IF;
6995:
6996: -- Create a new record into x_pricing_dual_instances here
6997:
6998: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6999: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
7000:
7001: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
7002: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;

Line 7001: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;

6997:
6998: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6999: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
7000:
7001: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
7002: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
7003: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
7004: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
7005: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;

Line 7002: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;

6998: l_instance_index := x_pricing_dual_instances.COUNT + 1;
6999: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
7000:
7001: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
7002: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
7003: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
7004: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
7005: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
7006: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;

Line 7003: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;

6999: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
7000:
7001: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
7002: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
7003: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
7004: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
7005: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
7006: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
7007: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately

Line 7004: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;

7000:
7001: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
7002: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
7003: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
7004: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
7005: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
7006: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
7007: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
7008: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';

Line 7005: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;

7001: x_pricing_dual_instances(l_instance_index).instance_index := l_instance_index;
7002: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
7003: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
7004: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
7005: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
7006: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
7007: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
7008: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';
7009: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);

Line 7006: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;

7002: x_pricing_dual_instances(l_instance_index).pattern_no := l_pattern_no;
7003: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
7004: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
7005: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
7006: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
7007: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
7008: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';
7009: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);
7010:

Line 7007: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately

7003: x_pricing_dual_instances(l_instance_index).services_hash := l_services_hash;
7004: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
7005: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
7006: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
7007: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
7008: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';
7009: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);
7010:
7011: -- }

Line 7008: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';

7004: x_pricing_dual_instances(l_instance_index).grouping_level := l_grouping_level;
7005: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
7006: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
7007: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
7008: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';
7009: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);
7010:
7011: -- }
7012: ELSE

Line 7009: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);

7005: x_pricing_dual_instances(l_instance_index).aggregation := l_aggregation;
7006: x_pricing_dual_instances(l_instance_index).objective := l_pricing_objective;
7007: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern; -- Need to be incremented and initialized appropriately
7008: x_pricing_dual_instances(l_instance_index).loose_item_flag := 'Y';
7009: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);
7010:
7011: -- }
7012: ELSE
7013: -- {

Line 7017: l_count_pattern := x_pricing_dual_instances(l_matched_instance_index).count_pattern + 1;

7013: -- {
7014: -- match found
7015: -- Add to the matching instance l_matched_instance_index
7016:
7017: l_count_pattern := x_pricing_dual_instances(l_matched_instance_index).count_pattern + 1;
7018: -- new method --
7019: add_to_instance (
7020: p_container_flag => p_shpmnt_toplevel_rows(i).container_flag,
7021: p_rolled_up_lines => l_rolledup_lines,

Line 7038: -- Modify x_pricing_dual_instances(l_matched_instance_index) here

7034: ELSE
7035: FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'Loose Item '||p_shpmnt_toplevel_rows(i).content_id||' added to instance '||l_matched_instance_index);
7036: END IF;
7037:
7038: -- Modify x_pricing_dual_instances(l_matched_instance_index) here
7039: l_instance_index := l_matched_instance_index;
7040: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
7041:
7042: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern;

Line 7042: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern;

7038: -- Modify x_pricing_dual_instances(l_matched_instance_index) here
7039: l_instance_index := l_matched_instance_index;
7040: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
7041:
7042: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern;
7043: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);
7044:
7045: -- }
7046: END IF;

Line 7043: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);

7039: l_instance_index := l_matched_instance_index;
7040: x_pattern_rows(l_pattern_index).instance_index := l_instance_index;
7041:
7042: x_pricing_dual_instances(l_instance_index).count_pattern := l_count_pattern;
7043: -- FTE_FREIGHT_PRICING_UTIL.print_msg(FTE_FREIGHT_PRICING_UTIL.G_DBG,'instance_index = '||l_instance_index||' loose_item_flag ='||x_pricing_dual_instances(l_instance_index).loose_item_flag);
7044:
7045: -- }
7046: END IF;
7047:

Line 7407: l_pricing_dual_instances pricing_dual_instance_tab_type;

7403: l_service_type VARCHAR2(60);
7404: l_currency_code VARCHAR2(30);
7405:
7406: l_lane_info lane_info_rec_type;
7407: l_pricing_dual_instances pricing_dual_instance_tab_type;
7408: l_pricing_engine_rows pricing_engine_input_tab_type;
7409: l_pattern_rows top_level_pattern_tab_type;
7410: l_pricing_attribute_rows pricing_attribute_tab_type;
7411: l_pricing_control_rec pricing_control_input_rec_type;

Line 7453: -- Processes these two tables together with l_pricing_dual_instances and g_shipment_line_rows

7449: -- Calls process_shipment_pattern and gets back l_pricing_engine_rows and l_pricing_attribute_rows
7450: -- Modifies l_pricing_attribute_rows to add more rows to it
7451: -- Calls call_qp_engine passing in l_pricing_engine_rows,l_pricing_attribute_rows and l_pricing_qualifier
7452: -- Gets back l_pricing_engine_output_lines and l_qp_output_line_details
7453: -- Processes these two tables together with l_pricing_dual_instances and g_shipment_line_rows
7454: -- Prepares records to go to WSH_FREIGHT_COST main/temp table
7455:
7456:
7457: g_effectivity_dates.date_from := p_ship_date;

Line 7587: x_pricing_dual_instances => l_pricing_dual_instances,

7583: p_service_code => l_lane_info.service_type_code,
7584: --p_shpmnt_toplevel_rows => p_shpmnt_toplevel_rows,
7585: p_shpmnt_toplevel_rows => l_shpmnt_toplevel_rows,
7586: p_shpmnt_toplevel_charges => p_shpmnt_toplevel_charges,
7587: x_pricing_dual_instances => l_pricing_dual_instances,
7588: x_pricing_engine_rows => l_pricing_engine_rows,
7589: x_pattern_rows => l_pattern_rows,
7590: x_pricing_attribute_rows => l_pricing_attribute_rows,
7591: x_return_status => l_return_status );

Line 7691: print_dual_instances (

7687: print_top_level_pattern (
7688: p_pattern_rows => l_pattern_rows,
7689: x_return_status => l_return_status );
7690:
7691: print_dual_instances (
7692: p_dual_instances => l_pricing_dual_instances,
7693: x_return_status => l_return_status );
7694:
7695: print_engine_rows (

Line 7692: p_dual_instances => l_pricing_dual_instances,

7688: p_pattern_rows => l_pattern_rows,
7689: x_return_status => l_return_status );
7690:
7691: print_dual_instances (
7692: p_dual_instances => l_pricing_dual_instances,
7693: x_return_status => l_return_status );
7694:
7695: print_engine_rows (
7696: p_engine_rows => l_pricing_engine_rows,

Line 7710: p_pricing_dual_instances => l_pricing_dual_instances,

7706: p_pricing_control_rec => l_pricing_control_rec,
7707: --p_top_level_rows => p_shpmnt_toplevel_rows,
7708: p_top_level_rows => l_shpmnt_toplevel_rows,
7709: p_pattern_rows => l_pattern_rows,
7710: p_pricing_dual_instances => l_pricing_dual_instances,
7711: x_pricing_engine_rows => l_pricing_engine_rows,
7712: x_pricing_attribute_rows => l_pricing_attribute_rows ,
7713: x_qp_output_line_rows => l_pricing_engine_output_lines, -- line_index = input_index
7714: x_qp_output_detail_rows => l_qp_output_line_details,

Line 7737: p_pricing_dual_instances => l_pricing_dual_instances,

7733: process_qp_output (
7734: p_qp_output_line_rows => l_pricing_engine_output_lines, -- line_index = input_index
7735: p_qp_output_detail_rows => l_qp_output_line_details,
7736: p_pricing_engine_input => l_pricing_engine_rows,
7737: p_pricing_dual_instances => l_pricing_dual_instances,
7738: p_pattern_rows => l_pattern_rows,
7739: --p_shpmnt_toplevel_rows => p_shpmnt_toplevel_rows, -- Indexed on delivery_detail_id
7740: p_shpmnt_toplevel_rows => l_shpmnt_toplevel_rows, -- Indexed on delivery_detail_id
7741: p_save_flag => p_save_flag, -- Whether to save to TEMP table or MAIN table

Line 10475: -- So in case of rerating Trip level rating will be called always instead of individual delivery leg

10471: -- Modified the signature for 12i. p_delivery_leg_list can contain list of Delivery Ids or Delivery Legs
10472: -- Based on p_deliveries_list_type , it'll call different rating modules.
10473: -- In R12 behavior of rerating will change as in case of a delivery/dleg , with more
10474: -- delivery legs on the same trip we'll call rerating of the complete trip.
10475: -- So in case of rerating Trip level rating will be called always instead of individual delivery leg
10476:
10477: PROCEDURE rerate_shipment_online(
10478: p_api_version IN NUMBER DEFAULT 1.0,
10479: p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,

Line 12601: FROM sys.dual;

12597:
12598:
12599: CURSOR c_get_req_id IS
12600: SELECT fte_pricing_comp_request_s.nextval
12601: FROM sys.dual;
12602:
12603: CURSOR c_get_carrier_for_lane(c_lane_id IN NUMBER) IS
12604: SELECT carrier_id
12605: FROM fte_lanes

Line 13092: FROM sys.dual;

13088:
13089:
13090: CURSOR c_get_req_id IS
13091: SELECT fte_pricing_comp_request_s.nextval
13092: FROM sys.dual;
13093:
13094:
13095:
13096: l_return_status VARCHAR2(1);