DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_SO_ATO

Source


1 PACKAGE BODY OE_SO_ATO AS
2 /* $Header: oesoatob.pls 115.5 99/07/16 08:28:09 porting ship  $ */
3 
4 
5 PROCEDURE QUERY_ATTRIBUTES(
6 			x_header_id 			IN 	NUMBER,
7 			x_line_id 			IN 	NUMBER,
8 			x_warehouse_id			IN	NUMBER,
9 			x_inventory_item_id		IN	NUMBER,
10 			x_organization_id		IN	NUMBER,
11 			x_order_number			IN	NUMBER,
12 			x_order_type			IN	VARCHAR2,
13 			x_s27				IN OUT	NUMBER,
14 			x_schato_allowed		OUT	VARCHAR2,
15 			x_configuration_item_id 	IN OUT	NUMBER,
16 			x_config_item_description	OUT	VARCHAR2,
17 			x_config_line_detail_id		OUT	NUMBER,
18 			x_configured_quantity		OUT	NUMBER,
19 			x_demand_source_header_id	OUT	NUMBER,
20 			x_demand_source_delivery	OUT	NUMBER,
21 			x_user_delivery			OUT	VARCHAR2,
22 			x_reserved_quantity		OUT	NUMBER,
23 			x_mfg_action			OUT 	VARCHAR2,
24 			x_mfg_result			OUT	VARCHAR2,
25 			x_action_date			OUT	VARCHAR2,
26 			x_creation_date_time		OUT	VARCHAR2) IS
27 l_number_of_config_details 	NUMBER := 0;
28 l_reserved_quantity	 	NUMBER := 0;
29 l_supply_reserved_quantity 	NUMBER := 0;
30 l_schato_eligible		NUMBER := 0;
31 l_configured_quantity		NUMBER := 0;
32 l_demand_source_header_id	NUMBER := 0;
33 LINE_UNDEMANDED			EXCEPTION;
34 SCHATO_NOT_ALLOWED		EXCEPTION;
35 
36 BEGIN
37 
38 
39 SELECT COUNT(1),
40        SUM(DECODE(SCHEDULE_STATUS_CODE, 'RESERVED', QUANTITY, 0)),
41        SUM(DECODE(SCHEDULE_STATUS_CODE, 'SUPPLY RESERVED', QUANTITY, 0)),
42        SUM(Quantity)
43 INTO   l_number_of_config_details,
44        l_reserved_quantity,
45        l_supply_reserved_quantity,
46        l_configured_quantity
47 FROM   SO_LINE_DETAILS
48 WHERE  LINE_ID = x_line_id
49 AND    CONFIGURATION_ITEM_FLAG = 'Y';
50 
51 
52 
53 
54 IF l_number_of_config_details = 0 THEN
55 
56   x_s27 := 4;
57 
58   SELECT DECODE(COUNT(1), 0, 0, 4)
59   INTO x_s27
60   FROM SO_LINE_DETAILS
61   WHERE LINE_ID = x_line_id
62   AND SCHEDULE_STATUS_CODE = 'DEMANDED';
63 
64 ELSIF l_reserved_quantity = 0 THEN
65 
66   IF l_supply_reserved_quantity = 0 THEN
67     x_s27 := 23;
68   ELSE
69     x_s27 := 21;
70   END IF;
71 
72 ELSE
73   x_s27 := 20;
74 END IF;
75 
76 
77 BEGIN
78 
79   SELECT sales_order_id
80   INTO   l_demand_source_header_id
81   FROM   mtl_sales_orders mso
82   WHERE  segment1 = To_Char(x_order_number)
83   AND    segment2 = x_order_type
84   AND    segment3 = FND_PROFILE.Value_Specific('SO_SOURCE_CODE');
85 
86 EXCEPTION
87 	When NO_DATA_FOUND then NULL;
88 	When OTHERS then
89 	NULL;
90 END;
91 
92 
93   x_demand_source_header_id := l_demand_source_header_id;
94 
95 
96 
97 BEGIN
98 
99   SELECT INVENTORY_ITEM_ID, MIN(LINE_DETAIL_ID)
100   INTO   x_configuration_item_id, x_config_line_detail_id
101   FROM   SO_LINE_DETAILS S
102   WHERE  S.LINE_ID = x_line_id
103   AND  CONFIGURATION_ITEM_FLAG = 'Y'
104   GROUP BY INVENTORY_ITEM_ID;
105 
106   SELECT DESCRIPTION
107   INTO  x_config_item_description
108   FROM   MTL_SYSTEM_ITEMS M
109   WHERE  M.INVENTORY_ITEM_ID = x_configuration_item_id
110   AND    M.ORGANIZATION_ID = NVL(x_warehouse_id, x_organization_id);
111 
112 EXCEPTION
113   When NO_DATA_FOUND then
114 	NULL;
115   When OTHERS then
116 	NULL;
117 END;
118 
119 SELECT DEMAND_SOURCE_DELIVERY, USER_DELIVERY
120 INTO   x_demand_source_delivery,
121        x_user_delivery
122 FROM   MTL_DEMAND
123 WHERE  INVENTORY_ITEM_ID = x_inventory_item_id
124 AND    DEMAND_SOURCE_TYPE = 2
125 AND    DEMAND_SOURCE_HEADER_ID = l_demand_source_header_id
126 AND    DEMAND_SOURCE_LINE = x_line_id
127 AND    ORGANIZATION_ID = NVL(x_warehouse_id, x_organization_id)
128 AND    ROWNUM = 1;
129 /* Added the above line to fix the bug 891551/700134 */
130 
131 BEGIN
132   SELECT sum(wip_completed_quantity)
133   into x_reserved_quantity
134   from so_line_details
135   where line_id = x_line_id
136   and   inventory_item_id = x_configuration_item_id;
137 EXCEPTION
138   When NO_DATA_FOUND then
139 	NULL;
140   When OTHERS then
141 	NULL;
142 END;
143 
144 SELECT TO_CHAR(CREATION_DATE,'YYYY/MM/DD HH24:MI')
145 INTO x_creation_date_time
146 FROM SO_LINES
147 WHERE LINE_ID = x_line_id;
148 
149 
150 SELECT 	a.name, r.name, to_char(l.s27_date, 'YYYY/MM/DD HH24:MI')
151 INTO	x_mfg_action, x_mfg_result, x_action_date
152 FROM	SO_ACTIONS A,
153 	SO_RESULTS R,
154 	SO_LINES   L
155 WHERE
156 	L.LINE_ID	= x_line_id
157 AND	A.RESULT_TABLE  = 'SO_LINES'
158 AND	R.RESULT_ID     = L.S27
159 AND	A.RESULT_COLUMN = 'S27';
160 
161 IF x_s27 = 0 THEN
162   x_schato_allowed := 'NO_DEMAND';
163   Raise LINE_UNDEMANDED;
164 END IF;
165 
166 EXCEPTION
167 	WHEN NO_DATA_FOUND THEN
168 	  NULL;
169 	WHEN LINE_UNDEMANDED THEN
170 	  FND_MESSAGE.set_name('OE', 'SO_ATO_LINE_UNDEMANDED');
171 	  APP_EXCEPTION.Raise_Exception;
172 	WHEN SCHATO_NOT_ALLOWED THEN
173 	  FND_MESSAGE.set_name ('OE', 'SO_ATO_LINE_UNDEMANDED');
177 END QUERY_ATTRIBUTES;
174 	  APP_EXCEPTION.Raise_Exception;
175 	WHEN OTHERS THEN raise;
176 
178 
179 END OE_SO_ATO;