3:
4: /* Function to return the column name for the criteria. */
5: FUNCTION get_filter_column (p_criteria_group_type NUMBER, p_criteria_type NUMBER) RETURN VARCHAR2 IS
6: BEGIN
7: IF (p_criteria_group_type = FLM_CONSTANTS.CRITERIA_GROUP_SEQ_DEMAND) THEN
8: IF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ASSEMBLY) THEN
9: return ('ITEM_NUMBER');
10: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_CUST) THEN
11: return ('CUSTOMER_NAME');
4: /* Function to return the column name for the criteria. */
5: FUNCTION get_filter_column (p_criteria_group_type NUMBER, p_criteria_type NUMBER) RETURN VARCHAR2 IS
6: BEGIN
7: IF (p_criteria_group_type = FLM_CONSTANTS.CRITERIA_GROUP_SEQ_DEMAND) THEN
8: IF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ASSEMBLY) THEN
9: return ('ITEM_NUMBER');
10: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_CUST) THEN
11: return ('CUSTOMER_NAME');
12: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_CUST_SITE) THEN
6: BEGIN
7: IF (p_criteria_group_type = FLM_CONSTANTS.CRITERIA_GROUP_SEQ_DEMAND) THEN
8: IF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ASSEMBLY) THEN
9: return ('ITEM_NUMBER');
10: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_CUST) THEN
11: return ('CUSTOMER_NAME');
12: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_CUST_SITE) THEN
13: return ('SHIP_TO_ADDRESS');
14: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_DEMAND_CLASS) THEN
8: IF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ASSEMBLY) THEN
9: return ('ITEM_NUMBER');
10: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_CUST) THEN
11: return ('CUSTOMER_NAME');
12: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_CUST_SITE) THEN
13: return ('SHIP_TO_ADDRESS');
14: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_DEMAND_CLASS) THEN
15: return ('DEMAND_CLASS');
16: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_DATE) THEN
10: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_CUST) THEN
11: return ('CUSTOMER_NAME');
12: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_CUST_SITE) THEN
13: return ('SHIP_TO_ADDRESS');
14: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_DEMAND_CLASS) THEN
15: return ('DEMAND_CLASS');
16: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_DATE) THEN
17: return ('ORDER_DATE');
18: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_LINE) THEN
12: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_CUST_SITE) THEN
13: return ('SHIP_TO_ADDRESS');
14: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_DEMAND_CLASS) THEN
15: return ('DEMAND_CLASS');
16: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_DATE) THEN
17: return ('ORDER_DATE');
18: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_LINE) THEN
19: return ('SO_LINE_NUMBER');
20: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_NUM) THEN
14: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_DEMAND_CLASS) THEN
15: return ('DEMAND_CLASS');
16: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_DATE) THEN
17: return ('ORDER_DATE');
18: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_LINE) THEN
19: return ('SO_LINE_NUMBER');
20: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_NUM) THEN
21: return ('ORDER_NUMBER');
22: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_PTY) THEN
16: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_DATE) THEN
17: return ('ORDER_DATE');
18: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_LINE) THEN
19: return ('SO_LINE_NUMBER');
20: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_NUM) THEN
21: return ('ORDER_NUMBER');
22: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_PTY) THEN
23: return ('ORDER_PRIORITY');
24: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_QTY) THEN
18: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_LINE) THEN
19: return ('SO_LINE_NUMBER');
20: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_NUM) THEN
21: return ('ORDER_NUMBER');
22: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_PTY) THEN
23: return ('ORDER_PRIORITY');
24: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_QTY) THEN
25: return ('ORIGINAL_ORDER_QUANTITY');
26: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_PLAN_NAME) THEN
20: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_NUM) THEN
21: return ('ORDER_NUMBER');
22: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_PTY) THEN
23: return ('ORDER_PRIORITY');
24: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_QTY) THEN
25: return ('ORIGINAL_ORDER_QUANTITY');
26: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_PLAN_NAME) THEN
27: return ('PLAN_NAME');
28: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_PROJECT) THEN
22: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_PTY) THEN
23: return ('ORDER_PRIORITY');
24: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_QTY) THEN
25: return ('ORIGINAL_ORDER_QUANTITY');
26: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_PLAN_NAME) THEN
27: return ('PLAN_NAME');
28: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_PROJECT) THEN
29: return ('PROJECT_NAME');
30: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_TASK) THEN
24: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_ORDER_QTY) THEN
25: return ('ORIGINAL_ORDER_QUANTITY');
26: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_PLAN_NAME) THEN
27: return ('PLAN_NAME');
28: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_PROJECT) THEN
29: return ('PROJECT_NAME');
30: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_TASK) THEN
31: return ('TASK_NAME');
32: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_SHIP_NUM) THEN
26: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_PLAN_NAME) THEN
27: return ('PLAN_NAME');
28: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_PROJECT) THEN
29: return ('PROJECT_NAME');
30: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_TASK) THEN
31: return ('TASK_NAME');
32: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_SHIP_NUM) THEN
33: return ('SHIPMENT_NUMBER');
34: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_UNSCH_QTY) THEN
28: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_PROJECT) THEN
29: return ('PROJECT_NAME');
30: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_TASK) THEN
31: return ('TASK_NAME');
32: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_SHIP_NUM) THEN
33: return ('SHIPMENT_NUMBER');
34: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_UNSCH_QTY) THEN
35: return ('ORDER_QUANTITY');
36: END IF;
30: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_TASK) THEN
31: return ('TASK_NAME');
32: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_SHIP_NUM) THEN
33: return ('SHIPMENT_NUMBER');
34: ELSIF (p_criteria_type = FLM_CONSTANTS.CRITERIA_UNSCH_QTY) THEN
35: return ('ORDER_QUANTITY');
36: END IF;
37: END IF;
38: END get_filter_column;
76: /* Check if this the new operation to be constructed */
77: IF l_prev_criteria_num <> criteria_list_rec.criteria_num THEN
78: IF l_prev_criteria_num <> -1 THEN
79: /*Connecting with the previous operation*/
80: IF l_prev_criteria_operation = FLM_CONSTANTS.OP_LESS_THAN_EQ THEN
81: l_filter := l_filter || ' AND ';
82: ELSIF l_prev_criteria_operation = FLM_CONSTANTS.OP_EQUALS THEN
83: l_filter := l_filter || ' AND ';
84: END IF;
78: IF l_prev_criteria_num <> -1 THEN
79: /*Connecting with the previous operation*/
80: IF l_prev_criteria_operation = FLM_CONSTANTS.OP_LESS_THAN_EQ THEN
81: l_filter := l_filter || ' AND ';
82: ELSIF l_prev_criteria_operation = FLM_CONSTANTS.OP_EQUALS THEN
83: l_filter := l_filter || ' AND ';
84: END IF;
85: END IF;
86:
84: END IF;
85: END IF;
86:
87: /*Opening of the current operation */
88: IF criteria_list_rec.criteria_operation = FLM_CONSTANTS.OP_GREATER_THAN_EQ THEN
89: l_filter := l_filter || p_table_alias || '.' ||
90: get_filter_column(criteria_list_rec.criteria_group_type,criteria_list_rec.criteria_type) || ' BETWEEN ';
91: ELSIF criteria_list_rec.criteria_operation = FLM_CONSTANTS.OP_EQUALS THEN
92: l_filter := l_filter || p_table_alias || '.' ||
87: /*Opening of the current operation */
88: IF criteria_list_rec.criteria_operation = FLM_CONSTANTS.OP_GREATER_THAN_EQ THEN
89: l_filter := l_filter || p_table_alias || '.' ||
90: get_filter_column(criteria_list_rec.criteria_group_type,criteria_list_rec.criteria_type) || ' BETWEEN ';
91: ELSIF criteria_list_rec.criteria_operation = FLM_CONSTANTS.OP_EQUALS THEN
92: l_filter := l_filter || p_table_alias || '.' ||
93: get_filter_column(criteria_list_rec.criteria_group_type,criteria_list_rec.criteria_type);
94: IF criteria_list_rec.criteria_value_type = FLM_CONSTANTS.VALUE_STRING THEN
95: l_filter := l_filter || ' LIKE ';
90: get_filter_column(criteria_list_rec.criteria_group_type,criteria_list_rec.criteria_type) || ' BETWEEN ';
91: ELSIF criteria_list_rec.criteria_operation = FLM_CONSTANTS.OP_EQUALS THEN
92: l_filter := l_filter || p_table_alias || '.' ||
93: get_filter_column(criteria_list_rec.criteria_group_type,criteria_list_rec.criteria_type);
94: IF criteria_list_rec.criteria_value_type = FLM_CONSTANTS.VALUE_STRING THEN
95: l_filter := l_filter || ' LIKE ';
96: ELSE
97: l_filter := l_filter || ' = ';
98: END IF;
101: return;
102: END IF;
103: ELSE
104: /*Connecting within an operation*/
105: IF criteria_list_rec.criteria_operation = FLM_CONSTANTS.OP_LESS_THAN_EQ THEN
106: l_filter := l_filter || ' AND ';
107: ELSE
108: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
109: return;
111: END IF;
112:
113: l_debug_line := 30;
114: /*Getting the values for the current operation*/
115: IF criteria_list_rec.criteria_value_type = FLM_CONSTANTS.VALUE_STRING THEN
116: l_filter := l_filter || ':filter_'|| l_counter;
117: FLM_Util.add_bind(':filter_'|| l_counter,
118: criteria_list_rec.criteria_value_name);
119:
116: l_filter := l_filter || ':filter_'|| l_counter;
117: FLM_Util.add_bind(':filter_'|| l_counter,
118: criteria_list_rec.criteria_value_name);
119:
120: ELSIF criteria_list_rec.criteria_value_type = FLM_CONSTANTS.VALUE_NUM THEN
121: l_filter := l_filter || ':filter_'|| l_counter;
122: FLM_Util.add_bind(':filter_'|| l_counter,
123: criteria_list_rec.criteria_value_num);
124:
121: l_filter := l_filter || ':filter_'|| l_counter;
122: FLM_Util.add_bind(':filter_'|| l_counter,
123: criteria_list_rec.criteria_value_num);
124:
125: ELSIF criteria_list_rec.criteria_value_type = FLM_CONSTANTS.VALUE_DATE THEN
126: l_filter := l_filter || 'TO_DATE(:filter_'|| l_counter ||
127: ',''DD-MON-RR HH24:MI:SS'')';
128: FLM_Util.add_bind(':filter_'|| l_counter,
129: to_char(criteria_list_rec.criteria_value_date, 'DD-MON-RR HH24:MI:SS'));