[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;