DBA Data[Home] [Help]

PACKAGE BODY: APPS.GMD_SAMPLES_PVT

Source


1 PACKAGE BODY GMD_SAMPLES_PVT AS
2 /* $Header: GMDVSMPB.pls 120.2 2006/06/15 18:31:43 plowe noship $ */
3 
4 -- Start of comments
5 --+==========================================================================+
6 --|                   Copyright (c) 1998 Oracle Corporation                  |
7 --|                          Redwood Shores, CA, USA                         |
8 --|                            All rights reserved.                          |
9 --+==========================================================================+
10 --| File Name          : GMDVSMPB.pls                                        |
11 --| Package Name       : GMD_SAMPLES_PVT                                     |
12 --| Type               : Private                                             |
13 --|                                                                          |
14 --| Notes                                                                    |
15 --|    This package contains private layer APIs for Samples                  |
16 --|                                                                          |
17 --| HISTORY                                                                  |
18 --|    Chetan Nagar     07-Aug-2002     Created.                             |
19 --|    magupta          06-Jan-2003     2733495: Added source_wshe and locat-|
20 --|                                              ion for insert_row.         |
21 --|    B. Stone         19-May-2003     2967055: Added sample instance       |
22 --|                                                                          |
23 --|    S. Feinstein     30-Jan-2004     3401377: added instance_id, resources|
24 --|                                              retrieval_date,date_received|
25 --|                                              date_required.              |
26 --|                                              changed source_comment to   |
27 --|                                              comment.                    |
28 --|                                                                          |
29 --|    S. Feinstein     12-FEB-2004     3401377: added remaining_qty, retain_as|
30 --|                                                                          |
31 --|    Sai Kiran        10-May-2004     3576573: added PO_HEADER_ID,    |
32 --|                                              PO_LINE_ID,RECEIPT_ID       |
33 --|                                           RECEIPT_LINE_ID,SUPPLIER_LOT_NO|
34 --|                                           to the 'insert_row' procedure  |
35 --|    S. Feinstein     11-MAR-2005     4165704: Inventory Convergence fields entered
36 --|    S. Feinstein     18-OCT-2005     4640143: added material detail id to samples
37 --|                                                                          |
38 --|    P Lowe           14-JUN-2006     5283854: added storage_organization_id
39 --|                     to samples
40 --+==========================================================================+
41 -- End of comments
42 
43 
44 FUNCTION insert_row (
45   p_samples IN  GMD_SAMPLES%ROWTYPE
46 , x_samples OUT NOCOPY GMD_SAMPLES%ROWTYPE) RETURN BOOLEAN IS
47 BEGIN
48 
49     x_samples := p_samples;
50 
51     INSERT INTO GMD_SAMPLES
52      (
53       SAMPLE_ID
54      ,SAMPLE_NO
55      ,SAMPLE_DESC
56      ,LAB_ORGANIZATION_ID
57      ,SAMPLE_DISPOSITION
58      ,RETAIN_AS
59      ,INVENTORY_ITEM_ID
60      ,ORGANIZATION_ID
61      ,SUBINVENTORY
62      ,LOCATOR_ID
63      ,EXPIRATION_DATE
64      ,PARENT_LOT_NUMBER
65      ,LOT_NUMBER
66      ,REVISION
67      ,BATCH_ID
68      ,RECIPE_ID
69      ,FORMULA_ID
70      ,FORMULALINE_ID
71      ,MATERIAL_DETAIL_ID
72      ,ROUTING_ID
73      ,OPRN_ID
74      ,CHARGE
75      ,CUST_ID
76      ,ORDER_ID
77      ,ORDER_LINE_ID
78      ,SHIP_TO_SITE_ID
79      ,ORG_ID
80      ,SUPPLIER_ID
81      ,SUPPLIER_SITE_ID
82      ,SAMPLE_QTY
83      ,SAMPLE_QTY_UOM
84      ,REMAINING_QTY
85      ,SOURCE
86      ,SAMPLE_INSTANCE
87      ,SAMPLER_ID
88      ,DATE_DRAWN
89      ,SOURCE_COMMENT
90      ,STORAGE_SUBINVENTORY
91      ,STORAGE_LOCATOR_ID
92      ,STORAGE_ORGANIZATION_ID -- 5283854
93      ,EXTERNAL_ID
94      ,SAMPLE_APPROVER_ID
95      ,INV_APPROVER_ID
96      ,PRIORITY
97      ,SAMPLE_INV_TRANS_IND
98      ,DELETE_MARK
99      ,TEXT_CODE
100      ,ATTRIBUTE_CATEGORY
101      ,ATTRIBUTE1
102      ,ATTRIBUTE2
103      ,ATTRIBUTE3
104      ,ATTRIBUTE4
105      ,ATTRIBUTE5
106      ,ATTRIBUTE6
107      ,ATTRIBUTE7
108      ,ATTRIBUTE8
109      ,ATTRIBUTE9
110      ,ATTRIBUTE10
111      ,ATTRIBUTE11
112      ,ATTRIBUTE12
113      ,ATTRIBUTE13
114      ,ATTRIBUTE14
115      ,ATTRIBUTE15
116      ,ATTRIBUTE16
117      ,ATTRIBUTE17
118      ,ATTRIBUTE18
119      ,ATTRIBUTE19
120      ,ATTRIBUTE20
121      ,ATTRIBUTE21
122      ,ATTRIBUTE22
123      ,ATTRIBUTE23
124      ,ATTRIBUTE24
125      ,ATTRIBUTE25
126      ,ATTRIBUTE26
127      ,ATTRIBUTE27
128      ,ATTRIBUTE28
129      ,ATTRIBUTE29
130      ,ATTRIBUTE30
131      ,CREATION_DATE
132      ,CREATED_BY
133      ,LAST_UPDATED_BY
134      ,LAST_UPDATE_DATE
135      ,LAST_UPDATE_LOGIN
136      ,STEP_ID
137      ,STEP_NO
138      ,SAMPLING_EVENT_ID
139      ,LOT_RETEST_IND
140      ,SOURCE_SUBINVENTORY
141      ,SOURCE_LOCATOR_ID
142      ,SAMPLE_TYPE
143      ,VARIANT_ID
144      ,TIME_POINT_ID
145      ,INSTANCE_ID
146      ,RESOURCES
147      ,RETRIEVAL_DATE
148      ,DATE_RECEIVED
149      ,DATE_REQUIRED
150      ,PO_HEADER_ID
151      ,PO_LINE_ID
152      ,RECEIPT_ID
153      ,RECEIPT_LINE_ID
154      ,SUPPLIER_LOT_NO
155      )
156      VALUES
157      (
158       gmd_qc_sample_id_s.NEXTVAL
159      ,x_samples.SAMPLE_NO
160      ,x_samples.SAMPLE_DESC
161      ,x_samples.LAB_ORGANIZATION_ID
162      ,x_samples.SAMPLE_DISPOSITION
163      ,x_samples.RETAIN_AS
164      ,x_samples.INVENTORY_ITEM_ID
165      ,x_samples.ORGANIZATION_ID
166      ,x_samples.SUBINVENTORY
167      ,x_samples.LOCATOR_ID
168      ,x_samples.EXPIRATION_DATE
169      ,x_samples.PARENT_LOT_NUMBER
170      ,x_samples.LOT_NUMBER
171      ,x_samples.REVISION
172      ,x_samples.BATCH_ID
173      ,x_samples.RECIPE_ID
174      ,x_samples.FORMULA_ID
175      ,x_samples.FORMULALINE_ID
176      ,x_samples.MATERIAL_DETAIL_ID
177      ,x_samples.ROUTING_ID
178      ,x_samples.OPRN_ID
179      ,x_samples.CHARGE
180      ,x_samples.CUST_ID
181      ,x_samples.ORDER_ID
182      ,x_samples.ORDER_LINE_ID
183      ,x_samples.SHIP_TO_SITE_ID
184      ,x_samples.ORG_ID
185      ,x_samples.SUPPLIER_ID
186      ,x_samples.SUPPLIER_SITE_ID
187      ,x_samples.SAMPLE_QTY
188      ,x_samples.SAMPLE_QTY_UOM
189      ,x_samples.REMAINING_QTY
190      ,x_samples.SOURCE
191      ,x_samples.SAMPLE_INSTANCE
192      ,x_samples.SAMPLER_ID
193      ,x_samples.DATE_DRAWN
194      ,x_samples.SOURCE_COMMENT
195      ,x_samples.STORAGE_SUBINVENTORY
196      ,x_samples.STORAGE_LOCATOR_ID
197      ,x_samples.STORAGE_ORGANIZATION_ID -- 5283854
198      ,x_samples.EXTERNAL_ID
199      ,x_samples.SAMPLE_APPROVER_ID
200      ,x_samples.INV_APPROVER_ID
201      ,x_samples.PRIORITY
202      ,x_samples.SAMPLE_INV_TRANS_IND
203      ,x_samples.DELETE_MARK
204      ,x_samples.TEXT_CODE
205      ,x_samples.ATTRIBUTE_CATEGORY
206      ,x_samples.ATTRIBUTE1
207      ,x_samples.ATTRIBUTE2
208      ,x_samples.ATTRIBUTE3
209      ,x_samples.ATTRIBUTE4
210      ,x_samples.ATTRIBUTE5
211      ,x_samples.ATTRIBUTE6
212      ,x_samples.ATTRIBUTE7
213      ,x_samples.ATTRIBUTE8
214      ,x_samples.ATTRIBUTE9
215      ,x_samples.ATTRIBUTE10
216      ,x_samples.ATTRIBUTE11
217      ,x_samples.ATTRIBUTE12
218      ,x_samples.ATTRIBUTE13
219      ,x_samples.ATTRIBUTE14
220      ,x_samples.ATTRIBUTE15
221      ,x_samples.ATTRIBUTE16
222      ,x_samples.ATTRIBUTE17
223      ,x_samples.ATTRIBUTE18
224      ,x_samples.ATTRIBUTE19
225      ,x_samples.ATTRIBUTE20
226      ,x_samples.ATTRIBUTE21
227      ,x_samples.ATTRIBUTE22
228      ,x_samples.ATTRIBUTE23
229      ,x_samples.ATTRIBUTE24
230      ,x_samples.ATTRIBUTE25
231      ,x_samples.ATTRIBUTE26
232      ,x_samples.ATTRIBUTE27
233      ,x_samples.ATTRIBUTE28
234      ,x_samples.ATTRIBUTE29
235      ,x_samples.ATTRIBUTE30
236      ,x_samples.CREATION_DATE
237      ,x_samples.CREATED_BY
238      ,x_samples.LAST_UPDATED_BY
239      ,x_samples.LAST_UPDATE_DATE
240      ,x_samples.LAST_UPDATE_LOGIN
241      ,x_samples.STEP_ID
242      ,x_samples.STEP_NO
243      ,x_samples.SAMPLING_EVENT_ID
244      ,x_samples.LOT_RETEST_IND
245      ,x_samples.SOURCE_SUBINVENTORY
246      ,x_samples.SOURCE_LOCATOR_ID
247      ,x_samples.SAMPLE_TYPE
248      ,x_samples.VARIANT_ID
249      ,x_samples.TIME_POINT_ID
250      ,x_samples.INSTANCE_ID
251      ,x_samples.RESOURCES
252      ,x_samples.RETRIEVAL_DATE
253      ,x_samples.DATE_RECEIVED
254      ,x_samples.DATE_REQUIRED
255      ,x_samples.PO_HEADER_ID
256      ,x_samples.PO_LINE_ID
257      ,x_samples.RECEIPT_ID
258      ,x_samples.RECEIPT_LINE_ID
259      ,x_samples.SUPPLIER_LOT_NO
260      )
261         RETURNING sample_id INTO x_samples.sample_id
262      ;
263 
264     IF SQL%FOUND THEN
265       RETURN TRUE;
266     ELSE
267       RETURN FALSE;
268     END IF;
269 
270   EXCEPTION
271     WHEN OTHERS THEN
272       fnd_msg_pub.add_exc_msg ('GMD_SAMPLES_PVT', 'INSERT_ROW');
273       RETURN FALSE;
274 
275  END insert_row;
276 
277 
278 
279 
280 
281 FUNCTION delete_row (
282   p_sample_id IN NUMBER
283 , p_organization_id IN VARCHAR2
284 , p_sample_no IN VARCHAR2
285 ) RETURN BOOLEAN IS
286 
287   dummy       PLS_INTEGER;
288 
289   locked_by_other_user          EXCEPTION;
290   PRAGMA EXCEPTION_INIT         (locked_by_other_user,-54);
291 
292 BEGIN
293 
294   IF p_sample_id IS NOT NULL THEN
295     SELECT 1
296     INTO   dummy
297     FROM   gmd_samples
298     WHERE  sample_id = p_sample_id
299     FOR UPDATE NOWAIT;
300 
301     UPDATE gmd_samples
302     SET    delete_mark = 1,
303 	   last_updated_by = fnd_global.user_id,
304 	   last_update_date = SYSDATE
305     WHERE  sample_id = p_sample_id
306     ;
307   ELSIF p_organization_id IS NOT NULL AND
308 	p_sample_no IS NOT NULL THEN
309     SELECT 1
310     INTO   dummy
311     FROM   gmd_samples
312     WHERE  organization_id = p_organization_id
313     AND    sample_no = p_sample_no
314     FOR UPDATE NOWAIT;
315 
316     UPDATE gmd_samples
317     SET    delete_mark = 1,
318 	   last_updated_by = fnd_global.user_id,
319 	   last_update_date = SYSDATE
320     WHERE  organization_id = p_organization_id
321     AND    sample_no = p_sample_no
322     ;
323   ELSE
324     GMD_API_PUB.log_message('GMD_NO_KEYS','TABLE_NAME', 'GMD_SAMPLES');
325     RETURN FALSE;
326   END IF;
327 
328   IF (SQL%FOUND) THEN
329     RETURN TRUE;
330   ELSE
331     GMD_API_PUB.log_message('GMD_NO_DATA_FOUND','TABLE_NAME', 'GMD_SAMPLES');
332     RETURN FALSE;
333   END IF;
334 
335 EXCEPTION
336   WHEN locked_by_other_user THEN
337     GMD_API_PUB.log_message('GMD_RECORD_LOCKED',
338                             'TABLE_NAME', 'GMD_SAMPLES',
339                             'RECORD','Sample',
340                             'KEY', p_organization_id || p_sample_no);
341     RETURN FALSE;
342 
343   WHEN OTHERS THEN
344      fnd_msg_pub.add_exc_msg ('GMD_SAMPLES_PVT', 'DELETE_ROW');
345       RETURN FALSE;
346 
347 END delete_row;
348 
349 
350 
351 
352 FUNCTION lock_row (
353   p_sample_id IN NUMBER
354 , p_organization_id IN VARCHAR2
355 , p_sample_no IN VARCHAR2 )
356 RETURN BOOLEAN IS
357 
358   dummy       PLS_INTEGER;
359 
360   locked_by_other_user          EXCEPTION;
361   PRAGMA EXCEPTION_INIT         (locked_by_other_user,-54);
362 
363 BEGIN
364   IF p_sample_id IS NOT NULL THEN
365     SELECT 1
366     INTO   dummy
367     FROM   gmd_samples
368     WHERE  sample_id = p_sample_id
369     FOR UPDATE NOWAIT;
370   ELSIF p_organization_id IS NOT NULL AND
371 	p_sample_no IS NOT NULL THEN
372     SELECT 1
373     INTO   dummy
374     FROM   gmd_samples
375     WHERE  organization_id = p_organization_id
376     AND    sample_no = p_sample_no
377     FOR UPDATE NOWAIT;
378   ELSE
379     GMD_API_PUB.log_message('GMD_NO_KEYS','TABLE_NAME', 'GMD_SAMPLES');
380     RETURN FALSE;
381   END IF;
382 
383   RETURN TRUE;
384 
385 EXCEPTION
386   WHEN locked_by_other_user THEN
387     GMD_API_PUB.log_message('GMD_RECORD_LOCKED',
388                             'TABLE_NAME', 'GMD_SAMPLES',
389                             'RECORD','Sampling Event',
390                             'KEY', p_organization_id || p_sample_no);
391     RETURN FALSE;
392 
393   WHEN OTHERS THEN
394      fnd_msg_pub.add_exc_msg ('GMD_SAMPLES_PVT', 'DELETE_ROW');
395       RETURN FALSE;
396 
397 END lock_row;
398 
399 
400 
401 FUNCTION fetch_row (
402   p_samples IN  gmd_samples%ROWTYPE
403 , x_samples OUT NOCOPY gmd_samples%ROWTYPE
404 )
405 RETURN BOOLEAN
406 IS
407 BEGIN
408 
409   IF (p_samples.sample_id IS NOT NULL) THEN
410     SELECT *
411     INTO   x_samples
412     FROM   gmd_samples
413     WHERE  sample_id = p_samples.sample_id
414     ;
415     RETURN TRUE;
416 
417   ELSIF (p_samples.organization_id IS NOT NULL AND
418 	 p_samples.sample_no IS NOT NULL) THEN
419     SELECT *
420     INTO   x_samples
421     FROM   gmd_samples
422     WHERE  organization_id = p_samples.organization_id
423     AND    sample_no = p_samples.sample_no
424     ;
425     RETURN TRUE;
426   ELSE
427     gmd_api_pub.log_message('GMD_NO_KEYS','TABLE_NAME', 'GMD_SAMPLES');
428     RETURN FALSE;
429   END IF;
430 
431   RETURN FALSE;
432 
433 EXCEPTION
434  WHEN NO_DATA_FOUND
435    THEN
436      gmd_api_pub.log_message('GMD_NO_DATA_FOUND','TABLE_NAME', 'GMD_SAMPLES');
437      RETURN FALSE;
438  WHEN OTHERS
439    THEN
440      fnd_msg_pub.add_exc_msg ('GMD_SAMPLES_PVT', 'FETCH_ROW');
441      RETURN FALSE;
442 
443 END fetch_row;
444 
445 END GMD_SAMPLES_PVT;