DBA Data[Home] [Help]

PACKAGE BODY: APPS.MRP_AATP_PVT

Source


1 PACKAGE BODY MRP_AATP_PVT AS
2 /* $Header: MRPAATPB.pls 115.28 2003/10/14 07:18:21 ssurendr noship $  */
3 G_PKG_NAME 		CONSTANT VARCHAR2(30) := 'MRP_AATP_PVT';
4 
5 
6 PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('MSC_ATP_DEBUG'), 'N');
7 
8 PROCEDURE Atp_Demand_Class_Consume(
9         p_current_atp   IN OUT  NoCopy MRP_ATP_PVT.ATP_Info,
10         p_steal_atp     IN OUT  NoCopy MRP_ATP_PVT.ATP_Info)
11 IS
12 BEGIN
13 	MSC_AATP_PVT.Atp_Demand_Class_Consume(p_current_atp, p_steal_atp);
14 END Atp_Demand_Class_Consume;
15 
16 
17 PROCEDURE Add_to_Next_Steal_Atp(
18         p_current_atp      IN      MRP_ATP_PVT.ATP_Info,
19         p_next_steal_atp   IN OUT  NoCopy MRP_ATP_PVT.ATP_Info)
20 IS
21         l_current_atp      MRP_ATP_PVT.ATP_Info;
22 BEGIN
23 	-- modified to call MSC_AATP_PVT.Add_to_Next_Steal_Atp with l_current_atp
24 	-- due to the changes in spec after the AATP forward consumption changes.
25 	l_current_atp := p_current_atp;
26 	MSC_AATP_PVT.Add_to_Next_Steal_Atp(l_current_atp, p_next_steal_atp);
27 END Add_to_Next_Steal_Atp;
28 
29 FUNCTION Get_Item_Demand_Alloc_Percent(
30 	p_plan_id 		IN 	NUMBER,
31 	p_demand_id 		IN 	NUMBER,
32 	p_demand_date 		IN 	DATE,
33 	p_assembly_item_id 	IN 	NUMBER,
34         p_source_org_id         IN      NUMBER,
35 	p_inventory_item_id 	IN 	NUMBER,
36 	p_org_id 		IN 	NUMBER,
37 	p_instance_id 		IN 	NUMBER,
38 	p_origination_type 	IN 	NUMBER,
39 	p_record_class 		IN 	VARCHAR2,
40 	p_demand_class 		IN 	VARCHAR2,
41         p_level_id              IN      NUMBER)
42 RETURN NUMBER
43 IS
44 BEGIN
45   return MSC_AATP_FUNC.Get_Item_Demand_Alloc_Percent(
46         p_plan_id,
47         p_demand_id,
48         p_demand_date,
49         p_assembly_item_id,
50         p_source_org_id,
51         p_inventory_item_id,
52         p_org_id,
53         p_instance_id,
54         p_origination_type,
55         p_record_class,
56         p_demand_class,
57         p_level_id);
58 
59 END Get_Item_Demand_Alloc_Percent;
60 
61 FUNCTION Get_DC_Alloc_Percent(
62 	p_instance_id 	IN 	NUMBER,
63 	p_inv_item_id 	IN 	NUMBER,
64 	p_org_id 	IN 	NUMBER,
65 	p_dept_id 	IN 	NUMBER,
66 	p_res_id  	IN 	NUMBER,
67 	p_demand_class 	IN 	VARCHAR2,
68 	p_request_date 	IN 	DATE)
69 RETURN NUMBER
70 IS
71 BEGIN
72   return MSC_AATP_FUNC.Get_DC_Alloc_Percent(
73         p_instance_id,
74         p_inv_item_id,
75         p_org_id,
76         p_dept_id,
77         p_res_id,
78         p_demand_class,
79         p_request_date);
80 EXCEPTION
81   WHEN OTHERS THEN
82       IF PG_DEBUG in ('Y', 'C') THEN
83          msc_sch_wb.atp_debug('Get_DC_Alloc_Percent: ' || 'Error code:' || to_char(sqlcode));
84       END IF;
85       return(0.0);
86 END Get_DC_Alloc_Percent;
87 
88 FUNCTION Get_Res_Demand_Alloc_Percent(
89 	p_demand_date 		IN 	DATE,
90 	p_assembly_item_id 	IN 	NUMBER,
91 	p_org_id 		IN 	NUMBER,
92 	p_instance_id 		IN 	NUMBER,
93 	p_dept_id 		IN 	NUMBER,
94 	p_res_id  		IN 	NUMBER,
95 	p_record_class 		IN 	VARCHAR2,
96 	p_demand_class 		IN 	VARCHAR2)
97 RETURN NUMBER
98 IS
99 BEGIN
100       return MSC_AATP_FUNC.Get_Res_Demand_Alloc_Percent(
101         p_demand_date,
102         p_assembly_item_id,
103         p_org_id,
104         p_instance_id,
105         p_dept_id,
106         p_res_id,
107         p_record_class,
108         p_demand_class);
109 
110 END GET_RES_DEMAND_ALLOC_PERCENT;
111 
112 PROCEDURE Item_Alloc_Cum_Atp(
113 	p_plan_id 	      IN NUMBER,
114 	p_level               IN NUMBER,
115 	p_identifier          IN NUMBER,
116 	p_scenario_id         IN NUMBER,
117 	p_inventory_item_id   IN NUMBER,
118 	p_organization_id     IN NUMBER,
119 	p_instance_id         IN NUMBER,
120 	p_demand_class        IN VARCHAR2,
121 	p_request_date        IN DATE,
122 	p_insert_flag         IN NUMBER,
123 	x_atp_info            OUT  NoCopy MRP_ATP_PVT.ATP_Info,
124 	x_atp_period          OUT  NoCopy MRP_ATP_PUB.ATP_Period_Typ,
125 	x_atp_supply_demand   OUT  NoCopy MRP_ATP_PUB.ATP_Supply_Demand_Typ)
126 IS
127         p_get_mat_in_rec      MSC_ATP_REQ.get_mat_in_rec;
128         -- time_phased_atp
129         l_request_item_id     NUMBER;
130         l_atf_date            DATE;
131 BEGIN
132 	-- dsting fake values since no one should be calling this
133 	-- and the spec changed in the msc files
134 	p_get_mat_in_rec.rounding_control_flag := 2;
135 	p_get_mat_in_rec.dest_inv_item_id := -1;
136 	p_get_mat_in_rec.infinite_time_fence_date := NULL;
137 	p_get_mat_in_rec.plan_name := 'MRPFOO';
138 
139 	MSC_AATP_PVT.Item_Alloc_Cum_Atp(
140         p_plan_id,
141         p_level,
142         p_identifier,
143         p_scenario_id,
144         p_inventory_item_id,
145         p_organization_id,
146         p_instance_id,
147         p_demand_class,
148         p_request_date,
149         p_insert_flag,
150         x_atp_info,
151         x_atp_period,
152         x_atp_supply_demand,
153 	p_get_mat_in_rec,
154 	l_request_item_id, -- For time_phased_atp
155 	l_atf_date);       -- For time_phased_atp
156 
157 END Item_Alloc_Cum_Atp;
158 
159 PROCEDURE Res_Alloc_Cum_Atp(
160 	p_plan_id 	      IN 	NUMBER,
161 	p_level               IN 	NUMBER,
162 	p_identifier          IN 	NUMBER,
163 	p_scenario_id         IN 	NUMBER,
164 	p_department_id       IN 	NUMBER,
165 	p_resource_id         IN 	NUMBER,
166 	p_organization_id     IN 	NUMBER,
167 	p_instance_id         IN 	NUMBER,
168 	p_demand_class        IN 	VARCHAR2,
169 	p_request_date        IN 	DATE,
170 	p_insert_flag         IN 	NUMBER,
171         p_max_capacity        IN        NUMBER,
172         p_batchable_flag      IN        NUMBER,
173         p_res_conversion_rate IN        NUMBER,
174         p_res_uom_type        IN        NUMBER,
175 	x_atp_info            OUT  	NoCopy MRP_ATP_PVT.ATP_Info,
176 	x_atp_period          OUT  	NoCopy MRP_ATP_PUB.ATP_Period_Typ,
177 	x_atp_supply_demand   OUT  	NoCopy MRP_ATP_PUB.ATP_Supply_Demand_Typ)
178 IS
179 BEGIN
180 	MSC_AATP_PVT.Res_Alloc_Cum_Atp(
181         p_plan_id,
182         p_level,
183         p_identifier,
184         p_scenario_id,
185         p_department_id,
186         p_resource_id,
187         p_organization_id,
188         p_instance_id,
189         p_demand_class,
190         p_request_date,
191         p_insert_flag,
192         p_max_capacity,
193         p_batchable_flag,
194         p_res_conversion_rate,
195         p_res_uom_type,
196         x_atp_info,
197         x_atp_period,
198         x_atp_supply_demand);
199 END Res_Alloc_Cum_Atp;
200 
201 PROCEDURE Supplier_Alloc_Cum_Atp(
202 p_plan_id 	      IN NUMBER,
203 p_level               IN NUMBER,
204 p_identifier          IN NUMBER,
205 p_scenario_id         IN NUMBER,
206 p_supplier_id         IN NUMBER,
207 p_supplier_site_id    IN NUMBER,
208 p_inventory_item_id   IN NUMBER,
209 p_organization_id     IN NUMBER,
210 p_instance_id         IN NUMBER,
211 p_demand_class        IN VARCHAR2,
212 p_request_date        IN DATE,
213 p_insert_flag         IN NUMBER,
214 x_atp_info            OUT  NoCopy MRP_ATP_PVT.ATP_Info,
215 x_atp_period          OUT  NoCopy MRP_ATP_PUB.ATP_Period_Typ,
216 x_atp_supply_demand   OUT  NoCopy MRP_ATP_PUB.ATP_Supply_Demand_Typ
217 )
218 IS
219 BEGIN
220 	/* ship_rec_cal
221 	MSC_AATP_PVT.Supplier_Alloc_Cum_Atp(
222 		p_plan_id,
223 		p_level,
224 		p_identifier,
225 		p_scenario_id,
226 		p_supplier_id,
227 		p_supplier_site_id,
228 		p_inventory_item_id,
229 		p_organization_id,
230 		p_instance_id,
231 		p_demand_class,
232 		p_request_date,
233 		p_insert_flag,
234                 NULL,      -- SCLT changes Default value for p_sup_cap_cum_date
235                 '@@@',     -- For ship_rec_cal
236                 NULL,      -- For ship_rec_cal
237 		x_atp_info,
238 		x_atp_period,
239 		x_atp_supply_demand,
240 		NULL); -- for CTO*/
241         NULL;
242 END Supplier_Alloc_Cum_Atp;
243 
244 PROCEDURE Get_DC_Info(
245 	p_instance_id	IN 	NUMBER,
246 	p_inv_item_id	IN 	NUMBER,
247 	p_org_id	IN 	NUMBER,
248 	p_dept_id	IN 	NUMBER,
249 	p_res_id	IN 	NUMBER,
250 	p_demand_class	IN 	VARCHAR2,
251 	p_request_date	IN 	DATE,
252         x_level_id      OUT     NoCopy NUMBER,
253 	x_priority	OUT  	NoCopy NUMBER,
254 	x_alloc_percent	OUT 	NoCopy NUMBER,
255 	x_return_status	OUT 	NoCopy VARCHAR2)
256 IS
257 BEGIN
258 	MSC_AATP_PVT.Get_DC_Info(
259         p_instance_id,
260         p_inv_item_id,
261         p_org_id,
262         p_dept_id,
263         p_res_id,
264         p_demand_class,
265         p_request_date,
266         x_level_id,
267         x_priority,
268         x_alloc_percent,
269         x_return_status);
270 EXCEPTION
271   WHEN OTHERS THEN
272 	IF PG_DEBUG in ('Y', 'C') THEN
273 	   msc_sch_wb.atp_debug('Get_DC_Info: ' || 'Error code:' || to_char(sqlcode));
274 	END IF;
275 	x_priority := -1;
276 	x_alloc_percent := 0;
277 	x_return_status := FND_API.G_RET_STS_ERROR;
278 END Get_DC_Info;
279 
280 PROCEDURE View_Allocation(
281   p_session_id         IN    NUMBER,
282   p_inventory_item_id  IN    NUMBER,
283   p_instance_id        IN    NUMBER,
284   p_organization_id    IN    NUMBER,
285   p_department_id      IN    NUMBER,
286   p_resource_id        IN    NUMBER,
287   p_demand_class       IN    VARCHAR2,
288   x_return_status      OUT   NoCopy VARCHAR2
289 )
290 IS
291 BEGIN
292 	MSC_AATP_PVT.View_Allocation(
293   		p_session_id,
294   		p_inventory_item_id,
295   		p_instance_id,
296   		p_organization_id,
297   		p_department_id,
298   		p_resource_id,
299   		p_demand_class,
300   		x_return_status);
301 END View_allocation;
302 
303 FUNCTION Get_Hierarchy_Demand_Class(
304   p_partner_id         IN    NUMBER,
305   p_partner_site_id    IN    NUMBER,
306   p_inventory_item_id  IN    NUMBER,
307   p_organization_id    IN    NUMBER,
308   p_instance_id        IN    NUMBER,
309   p_request_date       IN    DATE,
310   p_level_id           IN    NUMBER,
311   p_demand_class       IN    VARCHAR2)
312 RETURN VARCHAR2
313 IS
314 BEGIN
315 	RETURN MSC_AATP_FUNC.Get_Hierarchy_Demand_Class(
316   		p_partner_id,
317   		p_partner_site_id,
318   		p_inventory_item_id,
319   		p_organization_id,
320   		p_instance_id,
321   		p_request_date,
322   		p_level_id,
323   		p_demand_class);
324 END Get_Hierarchy_Demand_Class;
325 
326 
327 FUNCTION Get_Allowed_Stolen_Percent(
328   p_instance_id         IN NUMBER,
329   p_inv_item_id         IN NUMBER,
330   p_org_id              IN NUMBER,
331   p_dept_id             IN NUMBER,
332   p_res_id              IN NUMBER,
333   p_demand_class        IN VARCHAR2,
334   p_request_date        IN DATE)
335 RETURN NUMBER
336 IS
337 BEGIN
338   return MSC_AATP_FUNC.Get_Allowed_Stolen_Percent(
339   		p_instance_id,
340   		p_inv_item_id,
341   		p_org_id,
342   		p_dept_id,
343   		p_res_id,
344   		p_demand_class,
345   		p_request_date);
346 EXCEPTION
347   WHEN OTHERS THEN
348       IF PG_DEBUG in ('Y', 'C') THEN
349          msc_sch_wb.atp_debug('Get_Allowed_Stolen_Percent: ' || 'Error code:' || to_char(sqlcode));
350       END IF;
351       return(0.0);
352 END Get_Allowed_Stolen_Percent;
353 
354 END MRP_AATP_PVT;