DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMO_DISPENSE_GRP

Source


1 PACKAGE BODY GMO_DISPENSE_GRP AS
2 /* $Header: GMOGDSPB.pls 120.10 2007/12/13 18:18:12 srpuri ship $ */
3 
4 PROCEDURE MAINTAIN_RESERVATION(p_api_version        NUMBER,
5                                p_init_msg_list IN VARCHAR2,
6                                p_commit	       IN VARCHAR2,
7                                x_return_status OUT NOCOPY VARCHAR2,
8                                x_msg_count OUT NOCOPY NUMBER,
9                                x_msg_data  OUT NOCOPY VARCHAR2,
10                                p_batch_id           NUMBER,
11                                p_old_reservation_id NUMBER,
12                                p_new_reservation_id NUMBER,
13                                p_batchstep_id       NUMBER,
14                                p_item_id            NUMBER,
15                                p_material_detail_id NUMBER
16                                )
17 IS
18 l_api_name        CONSTANT VARCHAR2(30) := 'MAINTAIN_RESERVATION';
19 l_api_version     CONSTANT NUMBER       := 1.0;
20 
21 BEGIN
22       -- Standard Start of API savepoint
23       SAVEPOINT	MAINTAIN_RESERVATION;
24 
25       -- Standard call to check for call compatibility.
26       IF NOT FND_API.Compatible_API_Call (l_api_version ,
27           	    	    	    	 	  p_api_version,
28      	       	    	 			     l_api_name,
29   		    	    	    	    	G_PKG_NAME )
30       THEN
31   		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
32       END IF;
33       -- Initialize message list if p_init_msg_list is set to TRUE.
34       IF FND_API.to_Boolean( p_init_msg_list ) THEN
35         FND_MSG_PUB.initialize;
36       END IF;
37 
38        -- check if GMO is enabled
39       IF (GMO_SETUP_GRP.IS_GMO_ENABLED = GMO_CONSTANTS_GRP.NO) THEN
40          x_return_status := FND_API.G_RET_STS_SUCCESS;
41          FND_MESSAGE.SET_NAME('GMO','GMO_DISABLED_ERR');
42          FND_MSG_PUB.ADD;
43          FND_MSG_PUB.Count_And_Get (p_count => x_msg_count, p_data => x_msg_data);
44          if (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) then
45              FND_LOG.MESSAGE(FND_LOG.LEVEL_EXCEPTION,'gmo.plsql.gmo_dispense_grp.maintain_reservation', FALSE);
46          end if;
47          RETURN;
48       END IF;
49 
50 
51       -- Maintain Reservation starts now
52       -- first update the material dispense table
53       UPDATE GMO_MATERIAL_DISPENSES
54           SET reservation_id = p_new_reservation_id
55         WHERE batch_id = p_batch_id
56           and inventory_item_id = p_item_id
57           and material_detail_id = p_material_detail_id
58           and reservation_id = p_old_reservation_id
59           and nvl(batch_step_id,1) = nvl(p_batchstep_id,1);
60 
61       UPDATE GMO_MATERIAL_UNDISPENSES
62 	   SET reservation_id = p_new_reservation_id
63 	 WHERE batch_id = p_batch_id
64 	   and inventory_item_id = p_item_id
65 	   and material_detail_id = p_material_detail_id
66 	   and reservation_id = p_old_reservation_id
67           and nvl(batch_step_id,1) = nvl(p_batchstep_id,1);
68 
69       --  Initialize API return status to success
70       x_return_status := FND_API.G_RET_STS_SUCCESS;
71 
72        IF FND_API.To_Boolean( p_commit ) THEN
73       		COMMIT;
74       END IF;
75 
76       -- Standard call to get message count and if count is 1, get message info.
77       FND_MSG_PUB.Count_And_Get
78       (  p_count=>      x_msg_count,
79          p_data =>      x_msg_data
80       );
81 EXCEPTION
82     WHEN FND_API.G_EXC_ERROR THEN
83                 ROLLBACK TO MAINTAIN_RESERVATION;
84 		x_return_status := FND_API.G_RET_STS_ERROR ;
85             FND_MSG_PUB.ADD;
86 		FND_MSG_PUB.Count_And_Get
87     		(  	p_count=>      x_msg_count     	,
88         		p_data=>      x_msg_data
89     		);
90 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
91 	        ROLLBACK TO MAINTAIN_RESERVATION;
92 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
93             FND_MSG_PUB.ADD;
94 		FND_MSG_PUB.Count_And_Get
95     		(  	p_count=>      x_msg_count     	,
96         		p_data=>      x_msg_data
97     		);
98 	WHEN OTHERS THEN
99 	        ROLLBACK TO MAINTAIN_RESERVATION;
100 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
101   		IF 	FND_MSG_PUB.Check_Msg_Level
102 			(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
103 		THEN
104         		FND_MSG_PUB.Add_Exc_Msg
105     	    		(	G_PKG_NAME  	    ,
106     	    			l_api_name
107 	    		);
108 		END IF;
109 		FND_MSG_PUB.Count_And_Get
110     		(  	p_count=>      x_msg_count     	,
111         		p_data=>      x_msg_data
112     		);
113 
114 END MAINTAIN_RESERVATION;
115 
116 
117 PROCEDURE CHANGE_DISPENSE_STATUS(p_api_version    NUMBER,
118                                  p_init_msg_list IN VARCHAR2,
119                                  p_commit	 IN VARCHAR2,
120                                  x_return_status OUT NOCOPY VARCHAR2,
121                                  x_msg_count OUT NOCOPY     NUMBER,
122                                  x_msg_data  OUT NOCOPY     VARCHAR2,
123                                  p_dispense_id    NUMBER,
124                                  p_status_code    VARCHAR2,
125                                  p_transaction_id NUMBER
126 )
127 IS
128 l_api_name        CONSTANT VARCHAR2(30) := 'CHANGE_DISPENSE_STATUS';
129 l_api_version     CONSTANT NUMBER       := 1.0;
130 WRONG_STATUS_ERROR EXCEPTION;
131 l_status_code_exists NUMBER;
132 BEGIN
133 
134   -- Standard Start of API savepoint
135       SAVEPOINT	CHANGE_DISPENSE_STATUS;
136        -- Standard call to check for call compatibility.
137       IF NOT FND_API.Compatible_API_Call ( 	l_api_version        	,
138           	    	    	    	 	p_api_version        	,
139      	       	    	 			l_api_name 	    	,
140   		    	    	    	    	G_PKG_NAME )
141       THEN
142       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
143 
144       END IF;
145       -- Initialize message list if p_init_msg_list is set to TRUE.
146       IF FND_API.to_Boolean( p_init_msg_list ) THEN
147         FND_MSG_PUB.initialize;
148       END IF;
149        -- check if GMO is enabled
150       IF (GMO_SETUP_GRP.IS_GMO_ENABLED = GMO_CONSTANTS_GRP.NO) THEN
151          x_return_status := FND_API.G_RET_STS_SUCCESS;
152          FND_MESSAGE.SET_NAME('GMO','GMO_DISABLED_ERR');
153          FND_MSG_PUB.ADD;
154          FND_MSG_PUB.Count_And_Get (p_count => x_msg_count, p_data => x_msg_data);
155          if (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) then
156              FND_LOG.MESSAGE(FND_LOG.LEVEL_EXCEPTION,'gmo.plsql.gmo_dispense_grp.change_dispense_status', FALSE);
157 
158          end if;
159          RETURN;
160       END IF;
161 
162       -- Change status Reservation starts now
163       select count(*) into l_status_code_exists
164       from fnd_lookups
165       where lookup_type = 'GMO_DISP_MTL_STATUS'
166        and lookup_code <> 'DISPENSD'
167        and  lookup_code = p_status_code;
168 
169        if(l_status_code_exists = 0) then
170 
171         raise WRONG_STATUS_ERROR;
172        end if;
173 
174        UPDATE GMO_MATERIAL_DISPENSES
175          SET material_status = p_status_code,
176              DISPENSE_SOURCE_TRANSACTION_ID = nvl(DISPENSE_SOURCE_TRANSACTION_ID, p_transaction_id)
177         WHERE dispense_id = p_dispense_id;
178 
179         --  Initialize API return status to success
180         x_return_status := FND_API.G_RET_STS_SUCCESS;
181 
182         IF FND_API.To_Boolean( p_commit ) THEN
183       		COMMIT;
184       	END IF;
185 
186 
187       -- Standard call to get message count and if count is 1, get message info.
188       FND_MSG_PUB.Count_And_Get
189       (  p_count=>      x_msg_count,
190          p_data =>      x_msg_data
191       );
192 
193 EXCEPTION
194     WHEN FND_API.G_EXC_ERROR THEN
195             ROLLBACK TO CHANGE_DISPENSE_STATUS;
196 		x_return_status := FND_API.G_RET_STS_ERROR ;
197 		FND_MSG_PUB.ADD;
198 		FND_MSG_PUB.Count_And_Get
199     		(  	p_count=>      x_msg_count     	,
200         		p_data=>      x_msg_data
201     		);
202 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
203             ROLLBACK TO CHANGE_DISPENSE_STATUS;
204 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
205             FND_MSG_PUB.ADD;
206   		FND_MSG_PUB.Count_And_Get
207     		(  	p_count=>      x_msg_count     	,
208         		p_data=>      x_msg_data
209     		);
210     WHEN WRONG_STATUS_ERROR THEN
211             ROLLBACK TO CHANGE_DISPENSE_STATUS;
212 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
213             FND_MSG_PUB.ADD;
214 		FND_MSG_PUB.Count_And_Get
215     		(  	p_count=>      x_msg_count     	,
216         		p_data=>      x_msg_data
217     		);
218 	WHEN OTHERS THEN
219                 ROLLBACK TO CHANGE_DISPENSE_STATUS;
220 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
221   		IF 	FND_MSG_PUB.Check_Msg_Level
222 			(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
223 		THEN
224         		FND_MSG_PUB.Add_Exc_Msg
225     	    		(	G_PKG_NAME  	    ,
226     	    			l_api_name
227 	    		);
228 		END IF;
229 		FND_MSG_PUB.Count_And_Get
230     		(  	p_count=>      x_msg_count     	,
231         		p_data=>      x_msg_data
232     		);
233 
234 END CHANGE_DISPENSE_STATUS;
235 
236 PROCEDURE IS_DISPENSE_ITEM (p_api_version     NUMBER,
237                             p_init_msg_list   IN      VARCHAR2,
238                             x_return_status OUT NOCOPY VARCHAR2,
239                             x_msg_count     OUT NOCOPY NUMBER,
240                             x_msg_data      OUT NOCOPY VARCHAR2,
241                             p_inventory_item_id    NUMBER,
242                             p_organization_id      NUMBER,
243                             p_recipe_id            NUMBER,
244                             x_dispense_required   OUT NOCOPY VARCHAR2,
245 			    x_dispense_config_id  OUT NOCOPY NUMBER)
246 IS
247 l_api_name        CONSTANT VARCHAR2(30) := 'IS_DISPENSE_ITEM';
248 l_api_version     CONSTANT NUMBER       := 1.0;
249 l_is_dispense_required varchar2(1);
250 l_plan_qty NUMBER;
251 l_plan_uom VARCHAR2(10);
252 l_reserved_qty NUMBER;
253 l_reservation_uom VARCHAR2(10);
254 
255 --This variable is a sand box variable.
256 L_COUNT NUMBER;
257 
258 GMO_MISSING_SRCH_EXCEPTION EXCEPTION;
259 GMO_DISP_NOCONFIG_EXCEPTION EXCEPTION;
260 GMO_ITEM_NOT_RESERVABLE_ERR EXCEPTION;
261 
262 
263 BEGIN
264     IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
265     THEN        RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
266     END IF;
267 
268       -- Initialize message list if the caller asks me to do so
269     IF FND_API.to_Boolean( p_init_msg_list ) THEN
270         FND_MSG_PUB.initialize;
271     END IF;
272        -- check if GMO is enabled
273       IF (GMO_SETUP_GRP.IS_GMO_ENABLED = GMO_CONSTANTS_GRP.NO) THEN
274          x_return_status := FND_API.G_RET_STS_SUCCESS;
275          FND_MESSAGE.SET_NAME('GMO','GMO_DISABLED_ERR');
276          FND_MSG_PUB.ADD;
277          FND_MSG_PUB.Count_And_Get (p_count => x_msg_count, p_data => x_msg_data);
278          if (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) then
279              FND_LOG.MESSAGE(FND_LOG.LEVEL_EXCEPTION,'gmo.plsql.gmo_dispense_grp.IS_DISPENSE_ITEM', FALSE);
280          end if;
281          x_dispense_required := 'N';
282          RETURN ;
283       END IF;
284 
285 
286     GMO_DISPENSE_SETUP_PVT.IS_DISPENSE_ITEM(p_inventory_item_id => p_inventory_item_id,
287                                             p_organization_id => p_organization_id,
288                                             p_recipe_id => p_recipe_id,
289 					    x_is_dispense_required => x_dispense_required,
290 					    x_dispense_config_id => x_dispense_config_id);
291     --Check if item requires dispensing.
292     IF X_DISPENSE_REQUIRED = 'Y' THEN
293 
294       --Check if the specified item is non-reservable.
295       SELECT COUNT(*) INTO L_COUNT
296       FROM MTL_SYSTEM_ITEMS_VL
297       WHERE INVENTORY_ITEM_ID = P_INVENTORY_ITEM_ID
298       AND   ORGANIZATION_ID = P_ORGANIZATION_ID
299       AND RESERVABLE_TYPE = 2;
300 
301       IF L_COUNT > 0 THEN
302 
303         --The specified item is not reservable. Hence raise an exception.
304         RAISE GMO_ITEM_NOT_RESERVABLE_ERR;
305       END IF;
306     END IF;
307 
308     x_return_status := FND_API.G_RET_STS_SUCCESS;
309     FND_MSG_PUB.Add;
310     FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
311 
312 EXCEPTION
313   WHEN FND_API.G_EXC_ERROR THEN
314     x_return_status := FND_API.G_RET_STS_ERROR ;
315     FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
316 
317   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
318     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
319     IF  FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )  THEN
320       FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
321     END IF;
322     FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
323 
324   WHEN GMO_ITEM_NOT_RESERVABLE_ERR THEN
325     x_return_status := 'W';
326     x_dispense_required := 'N';
327     FND_MESSAGE.SET_NAME('GMO','GMO_ITEM_NOT_RESERVABLE_ERR');
328     FND_MSG_PUB.ADD;
329     FND_MSG_PUB.COUNT_AND_GET ( P_COUNT => X_MSG_COUNT, P_DATA => X_MSG_DATA );
330 
331    WHEN OTHERS THEN
332      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
333      IF  FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )  THEN
334        FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
335      END IF;
336      FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
337 
338 END IS_DISPENSE_ITEM;
339 
340 PROCEDURE GET_MATERIAL_DISPENSE_DATA (p_api_version     IN NUMBER,
341                                       p_init_msg_list   IN      VARCHAR2,
342                                       x_return_status OUT NOCOPY VARCHAR2,
343                                       x_msg_count OUT NOCOPY NUMBER,
344                                       x_msg_data  OUT NOCOPY VARCHAR2,
345                                       p_material_detail_id  IN  NUMBER,
346                                       x_dispense_data     OUT NOCOPY GME_COMMON_PVT.reservations_tab
347 )
348 IS
349 l_api_name        CONSTANT VARCHAR2(30) := 'GET_MATERIAL_DISPENSE_DATA';
350 l_api_version     CONSTANT NUMBER       := 1.0;
351 BEGIN
352 
353   IF NOT fnd_api.Compatible_API_Call ( l_api_version, p_api_version, l_api_name, G_PKG_NAME )
354     THEN        RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
355     END IF;
356 
357 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
358         FND_MSG_PUB.initialize;
359     END IF;
360        -- check if GMO is enabled
361       IF (GMO_SETUP_GRP.IS_GMO_ENABLED = GMO_CONSTANTS_GRP.NO) THEN
362          x_return_status := FND_API.G_RET_STS_SUCCESS;
363          FND_MESSAGE.SET_NAME('GMO','GMO_DISABLED_ERR');
364          FND_MSG_PUB.ADD;
365          FND_MSG_PUB.Count_And_Get (p_count => x_msg_count, p_data => x_msg_data);
366          if (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) then
367              FND_LOG.MESSAGE(FND_LOG.LEVEL_EXCEPTION,'gmo.plsql.gmo_dispense_grp.GET_MATERIAL_DISPENSE_DATA', FALSE);
368          end if;
369          RETURN ;
370       END IF;
371 
372     GMO_DISPENSE_PVT.GET_MATERIAL_DISPENSE_DATA( p_material_detail_id,
373                                                      x_dispense_data);
374     x_return_status := FND_API.G_RET_STS_SUCCESS;
375 
376     FND_MSG_PUB.Add;
377 	FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
378 EXCEPTION
379 WHEN FND_API.G_EXC_ERROR THEN
380         x_return_status := FND_API.G_RET_STS_ERROR ;
381         FND_MSG_PUB.ADD;
382         FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
383 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
384         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
385         FND_MSG_PUB.ADD;
386         FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
387  WHEN OTHERS THEN
388         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
389         FND_MSG_PUB.ADD;
390         IF  FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR )  THEN
391                 FND_MSG_PUB.Add_Exc_Msg ( g_pkg_name, l_api_name );
392         END IF;
393         FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count, p_data => x_msg_data );
394 END GET_MATERIAL_DISPENSE_DATA;
395 
396 
397 --This procedure is used to instantiate the dispense setup identified by the specified
398 --dispense config ID, entity name and entity key.
399 PROCEDURE INSTANTIATE_DISPENSE_SETUP
400 (P_API_VERSION        IN  NUMBER,
401  P_DISPENSE_CONFIG_ID IN  NUMBER,
402  P_ENTITY_NAME        IN  VARCHAR2,
403  P_ENTITY_KEY         IN  VARCHAR2,
404  P_INIT_MSG_LIST      IN  VARCHAR2,
405  P_AUTO_COMMIT        IN  VARCHAR2,
406  X_RETURN_STATUS      OUT NOCOPY VARCHAR2,
407  X_MSG_COUNT          OUT NOCOPY NUMBER,
408  X_MSG_DATA           OUT NOCOPY VARCHAR2)
409 
410 IS
411 
412 L_API_NAME    CONSTANT VARCHAR2(40) := 'INSTANTIATE_DISPENSE_SETUP';
413 
414 L_API_VERSION CONSTANT NUMBER   := 1.0;
415 
416 BEGIN
417 
418   --Validate the API versions.
419   IF NOT FND_API.COMPATIBLE_API_CALL(L_API_VERSION,
420                                      P_API_VERSION,
421                                      L_API_NAME,
422                                      G_PKG_NAME)
423   THEN
424 
425     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
426 
427   END IF;
428 
429   --Initialized the message list if specified so.
430   IF FND_API.TO_BOOLEAN(P_INIT_MSG_LIST) THEN
431 
432     FND_MSG_PUB.INITIALIZE;
433 
434   END IF;
435 
436 
437   IF (GMO_SETUP_GRP.IS_GMO_ENABLED = GMO_CONSTANTS_GRP.NO) THEN
438       X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
439       FND_MESSAGE.SET_NAME('GMO','GMO_DISABLED_ERR');
440       FND_MSG_PUB.ADD;
441       FND_MSG_PUB.Count_And_Get (p_count => x_msg_count, p_data => x_msg_data);
442       if (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) then
443         FND_LOG.MESSAGE(FND_LOG.LEVEL_EXCEPTION,'gmo.plsql.gmo_dispense_grp.maintain_reservation', FALSE);
444       END IF;
445 
446       RETURN;
447   END IF;
448 
449 
450   --Call a private API to obtain the next value of the document number associated with
451   --the specified organization ID and transaction type.
452   GMO_DISPENSE_SETUP_PVT.INSTANTIATE_DISPENSE_SETUP
453   (P_DISPENSE_CONFIG_ID   => P_DISPENSE_CONFIG_ID,
454    P_ENTITY_NAME          => P_ENTITY_NAME,
455    P_ENTITY_KEY           => P_ENTITY_KEY,
456    P_INIT_MSG_LIST        => P_INIT_MSG_LIST,
457    P_AUTO_COMMIT          => P_AUTO_COMMIT,
458    X_RETURN_STATUS        => X_RETURN_STATUS,
459    X_MSG_COUNT            => X_MSG_COUNT,
460    X_MSG_DATA             => X_MSG_DATA);
461 
462   --Get the message count.
463   --If count is 1, then get the message data.
464   FND_MSG_PUB.COUNT_AND_GET
465   (P_COUNT => X_MSG_COUNT,
466    P_DATA  => X_MSG_DATA);
467 
468 
469 EXCEPTION
470 
471   WHEN OTHERS THEN
472 
473     X_RETURN_STATUS := FND_API.G_RET_STS_UNEXP_ERROR ;
474 
475     FND_MESSAGE.SET_NAME('FND','FND_AS_UNEXPECTED_ERROR');
476     FND_MESSAGE.SET_TOKEN('ERROR_TEXT',SQLERRM);
477     FND_MESSAGE.SET_TOKEN('PKG_NAME','GMO_DISPENSE_GRP');
478     FND_MESSAGE.SET_TOKEN('PROCEDURE_NAME','INSTANTIATE_DISPENSE_SETUP');
479     IF  FND_MSG_PUB.CHECK_MSG_LEVEL( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)  THEN
480 
481       FND_MSG_PUB.ADD_EXC_MSG (G_PKG_NAME,
482                                L_API_NAME );
483 
484     END IF;
485 
486     FND_MSG_PUB.COUNT_AND_GET
487     (P_COUNT => X_MSG_COUNT,
488      P_DATA  => X_MSG_DATA);
489 
490     IF (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
491       FND_LOG.MESSAGE(FND_LOG.LEVEL_UNEXPECTED,
492                       'gmo.plsql.GMO_DISPENSE_GRP.INSTANTIATE_DISPENSE_SETUP',
493                       FALSE);
494     END IF;
495 
496 
497 END INSTANTIATE_DISPENSE_SETUP;
498 
499 Function isDispenseOccuredAtDispBooth(disp_booth_id number) return varchar2
500 as
501 begin
502 return GMO_DISPENSE_pvt.isDispenseOccuredAtDispBooth(disp_booth_id);
503 end;
504 Function isDispenseOccuredAtDispArea(disp_area_id number) return varchar2
505 as
506 begin
507 return gmo_dispense_pvt.isDispenseOccuredAtDispArea(disp_area_id);
508 end;
509 
510 
511 
512 END GMO_DISPENSE_GRP;