DBA Data[Home] [Help]

PACKAGE BODY: APPS.QA_ERES_DEFER

Source


1 PACKAGE BODY QA_ERES_DEFER AS
2 /* $Header: qaedrdfb.pls 120.1.12020000.2 2012/07/03 13:21:44 ntungare ship $ */
3 
4 
5  -- Global Variables for the 'Approval Status' values.
6 
7  g_approved CONSTANT VARCHAR2(30) := 'APPROVED';
8  g_rejected CONSTANT VARCHAR2(30) := 'REJECTED';
9 
10  -- Global Variable for the 'Approval Required' collection element
11  -- char_id.
12 
13  g_esig_status_char_id CONSTANT NUMBER := 2147483572;
14 
15 
16 ---------------------------------------------------------------------
17  PROCEDURE update_res_col
18              (p_status_code   IN VARCHAR2,
19               p_plan_id       IN NUMBER,
20               p_collection_id IN NUMBER,
21               p_occurrence    IN NUMBER
22              ) IS
23 ---------------------------------------------------------------------
24 
25    l_sql_string  VARCHAR2(1000);
26    l_res_col     VARCHAR2(60);
27 
28  BEGIN
29 
30    l_res_col := QA_FLEX_UTIL.qpc_result_column_name(p_plan_id, g_esig_status_char_id);
31 
32    --
33    -- bug 13990107
34    -- Setting the last update date as well
35    --
36    l_sql_string := 'UPDATE qa_results SET ' || l_res_col ||' = :1, LAST_UPDATE_DATE=SYSDATE, QA_LAST_UPDATE_DATE=SYSDATE '
37                    ||' WHERE plan_id = :2'
38                    ||' and collection_id = :3'
39                    ||' and occurrence = :4';
40 
41    BEGIN
42      EXECUTE IMMEDIATE l_sql_string USING p_status_code, p_plan_id,
43                                           p_collection_id, p_occurrence;
44 
45    EXCEPTION
46      WHEN OTHERS THEN raise;
47 
48    END;
49 
50  END update_res_col;
51 
52 
53   -- R12 ERES Support in Service Family. Bug 4345768
54   -- START
55   -- New procedure for stamping approval status for a collection
56 
57   -- Bug 5508639. SHKALYAN 13-Sep-2006.
58   -- New modularized function to check if per row event exists
59   -- for a collection.
60   FUNCTION per_row_event_exists
61            (p_plan_id        IN NUMBER,
62             p_collection_id  IN NUMBER,
63             p_occurrence     IN NUMBER)  RETURN VARCHAR2 IS
64     l_event_key    VARCHAR2(1000);
65     l_event_exists VARCHAR2(1) := 'N';
66 
67     CURSOR  event_exists( c_event_name VARCHAR2, c_event_key VARCHAR2 ) IS
68     SELECT  'Y'
69     FROM    EDR_PSIG_DOCUMENTS
70     WHERE   event_name = c_event_name
71     AND     event_key = c_event_key;
72 
73   BEGIN
74     l_event_key := p_plan_id || '-' || p_collection_id || '-' || p_occurrence;
75 
76     OPEN  event_exists( 'oracle.apps.qa.result.create', l_event_key );
77     FETCH event_exists INTO l_event_exists;
78     CLOSE event_exists;
79 
80     RETURN l_event_exists;
81 
82   END per_row_event_exists;
83 
84   -- Bug 5508639. SHKALYAN 13-Sep-2006.
85   -- Added new input parameter p_txn_header_id
86   PROCEDURE update_collection_col
87             (p_status_code   IN VARCHAR2,
88              p_plan_id       IN NUMBER,
89              p_collection_id IN NUMBER,
90              p_txn_header_id IN NUMBER
91             ) IS
92 
93     -- Bug 5508639. SHKALYAN 13-Sep-2006.
94     -- New cursor to get result occurrences based on txn_header_id
95     -- Modified the name of the old cursor to get_results_col
96     CURSOR  get_results_txn( c_txn_header_id NUMBER, c_collection_id NUMBER , c_plan_id NUMBER ) IS
97     SELECT  occurrence
98     FROM    QA_RESULTS
99     WHERE   collection_id = c_collection_id
100     AND     txn_header_id = c_txn_header_id
101     AND     plan_id = c_plan_id;
102 
103     CURSOR  get_results_col( c_collection_id NUMBER , c_plan_id NUMBER ) IS
104     SELECT  occurrence
105     FROM    QA_RESULTS
106     WHERE   collection_id = c_collection_id
107     AND     plan_id = c_plan_id;
108 
109     l_occurrence   NUMBER;
110 
111   BEGIN
112 
113   IF ( p_txn_header_id IS NOT NULL ) THEN
114     FOR res_cur IN get_results_txn( p_txn_header_id, p_collection_id , p_plan_id ) LOOP
115       l_occurrence := res_cur.occurrence;
116 
117       -- Check if 'per row' event has been raised for any of the
118       -- occurrences belonging to this collection. If so, do not
119       -- update these rows.
120       IF ( per_row_event_exists( p_plan_id, p_collection_id, l_occurrence ) = 'N' ) THEN
121         update_res_col(p_status_code,
122                        p_plan_id,
123                        p_collection_id,
124                        l_occurrence);
125 
126       END IF;
127     END LOOP;
128 
129   ELSE
130 
131     FOR res_cur IN get_results_col( p_collection_id , p_plan_id ) LOOP
132       l_occurrence := res_cur.occurrence;
133 
134       -- Check if 'per row' event has been raised for any of the
135       -- occurrences belonging to this collection. If so, do not
136       -- update these rows.
137       IF ( per_row_event_exists( p_plan_id, p_collection_id, l_occurrence ) = 'N' ) THEN
138         update_res_col(p_status_code,
139                        p_plan_id,
140                        p_collection_id,
141                        l_occurrence);
142 
143       END IF;
144 
145     END LOOP;
146 
147   END IF;
148 
149   END update_collection_col;
150 
151   -- END
152   -- R12 ERES Support in Service Family. Bug 4345768
153 
154 ---------------------------------------------------------------------
155  PROCEDURE spec_status_update
156               (p_spec_id  in number
157               ) IS
158 ---------------------------------------------------------------------
159 
160    l_status_code NUMBER;
161    l_sql_string  VARCHAR2(1000);
162 
163  BEGIN
164 
165    IF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'SUCCESS') THEN
166       l_status_code := 20;
167 
168    ELSIF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'REJECTED') THEN
169       l_status_code := 30;
170 
171    END IF;
172 
173    l_sql_string := 'UPDATE qa_specs SET spec_status = :1'
174                    ||' WHERE spec_id = :2';
175 
176    BEGIN
177      EXECUTE IMMEDIATE l_sql_string USING l_status_code, p_spec_id;
178 
179    EXCEPTION
180      WHEN OTHERS THEN raise;
181 
182    END;
183 
184  END spec_status_update;
185 
186 
187 ---------------------------------------------------------------------
188  PROCEDURE ncm_approve
189              (p_plan_id       IN NUMBER,
190               p_collection_id IN NUMBER,
191               p_occurrence    IN NUMBER
192              ) IS
193 ---------------------------------------------------------------------
194 
195    l_status_code VARCHAR2(30);
196 
197  BEGIN
198 
199    IF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'SUCCESS') THEN
200       l_status_code := g_approved;
201 
202    ELSIF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'REJECTED') THEN
203       l_status_code := g_rejected;
204 
205    END IF;
206 
207    update_res_col(l_status_code,
208                   p_plan_id,
209                   p_collection_id,
210                   p_occurrence);
211 
212  END ncm_approve;
213 
214 
215 ---------------------------------------------------------------------
216  PROCEDURE ncm_detail_approve
217              (p_plan_id       IN NUMBER,
218               p_collection_id IN NUMBER,
219               p_occurrence    IN NUMBER
220              ) IS
221 ---------------------------------------------------------------------
222 
223    l_status_code VARCHAR2(30);
224 
225  BEGIN
226 
227    IF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'SUCCESS') THEN
228       l_status_code := g_approved;
229 
230    ELSIF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'REJECTED') THEN
231       l_status_code := g_rejected;
232 
233    END IF;
234 
235    update_res_col(l_status_code,
236                   p_plan_id,
237                   p_collection_id,
238                   p_occurrence);
239 
240 
241  END ncm_detail_approve;
242 
243 
244 ---------------------------------------------------------------------
245  PROCEDURE disp_approve
246              (p_plan_id       IN NUMBER,
247               p_collection_id IN NUMBER,
248               p_occurrence    IN NUMBER
249              ) IS
250 ---------------------------------------------------------------------
251 
252    l_status_code VARCHAR2(30);
253 
254  BEGIN
255 
256    IF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'SUCCESS') THEN
257       l_status_code := g_approved;
258 
259    ELSIF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'REJECTED') THEN
260       l_status_code := g_rejected;
261 
262    END IF;
263 
264    update_res_col(l_status_code,
265                   p_plan_id,
266                   p_collection_id,
267                   p_occurrence);
268 
269  END disp_approve;
270 
271 
272 ---------------------------------------------------------------------
273  PROCEDURE disp_detail_approve
274              (p_plan_id       IN NUMBER,
275               p_collection_id IN NUMBER,
276               p_occurrence    IN NUMBER
277              ) IS
278 ---------------------------------------------------------------------
279 
280    l_status_code VARCHAR2(30);
281 
282  BEGIN
283 
284    IF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'SUCCESS') THEN
285       l_status_code := g_approved;
286 
287    ELSIF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'REJECTED') THEN
288       l_status_code := g_rejected;
289 
290    END IF;
291 
292    update_res_col(l_status_code,
293                   p_plan_id,
294                   p_collection_id,
295                   p_occurrence);
296 
297  END disp_detail_approve;
298 
299 
300 
301 ---------------------------------------------------------------------
302  PROCEDURE car_review_approve
303              (p_plan_id       IN NUMBER,
304               p_collection_id IN NUMBER,
305               p_occurrence    IN NUMBER
306              ) IS
307 ---------------------------------------------------------------------
308 
309    l_status_code VARCHAR2(30);
310 
311  BEGIN
312 
313    IF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'SUCCESS') THEN
314       l_status_code := g_approved;
315 
316    ELSIF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'REJECTED') THEN
317       l_status_code := g_rejected;
318 
319    END IF;
320 
321    update_res_col(l_status_code,
322                   p_plan_id,
323                   p_collection_id,
324                   p_occurrence);
325 
326  END car_review_approve;
327 
328 
329 
330 ---------------------------------------------------------------------
331  PROCEDURE car_impl_approve
332              (p_plan_id       IN NUMBER,
333               p_collection_id IN NUMBER,
334               p_occurrence    IN NUMBER
335              ) IS
336 ---------------------------------------------------------------------
337 
338    l_status_code VARCHAR2(30);
339 
340 
341  BEGIN
342 
343    IF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'SUCCESS') THEN
344       l_status_code := g_approved;
345 
346    ELSIF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'REJECTED') THEN
347       l_status_code := g_rejected;
348 
349    END IF;
350 
351    update_res_col(l_status_code,
352                   p_plan_id,
353                   p_collection_id,
354                   p_occurrence);
355 
356  END car_impl_approve;
357 
358   -- R12 ERES Support in Service Family. Bug 4345768
359   -- START
360 
361   -- Post Operation API for updating the Approval
362   -- status of the QA Results Occurrence.
363 
364   PROCEDURE qa_occurrence_approve
365             (p_plan_id       IN NUMBER,
366              p_collection_id IN NUMBER,
367              p_occurrence    IN NUMBER
368             ) IS
369 
370      l_status_code VARCHAR2(30);
371 
372   BEGIN
373 
374      -- Get the Signature status
375      IF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'SUCCESS') THEN
376         l_status_code := g_approved;
377 
378      ELSIF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'REJECTED') THEN
379         l_status_code := g_rejected;
380 
381      END IF;
382 
383      -- Update the status returned by EDR
384      update_res_col(l_status_code,
385                     p_plan_id,
386                     p_collection_id,
387                     p_occurrence);
388 
389   END qa_occurrence_approve;
390 
391   -- Post Operation API for updating the Approval
392   -- status of the QA Results Collection.
393 
394   PROCEDURE qa_collection_approve
395             (p_plan_id       IN NUMBER,
396              p_collection_id IN NUMBER
397             ) IS
398 
399      l_status_code VARCHAR2(30);
400 
401   BEGIN
402 
403      -- Get the Signature status
404      IF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'SUCCESS') THEN
405         l_status_code := g_approved;
406 
407      ELSIF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'REJECTED') THEN
408         l_status_code := g_rejected;
409 
410      END IF;
411 
412      -- Bug 5508639. SHKALYAN 13-Sep-2006.
413      -- Pass NULL as txn_header_id since processing is by collection
414 
415      -- Update the status returned by EDR
416      update_collection_col(l_status_code,
417                            p_plan_id,
418                            p_collection_id,
419                            NULL);
420 
421   END qa_collection_approve;
422 
423 
424   -- END
425   -- R12 ERES Support in Service Family. Bug 4345768
426 
427   -- Bug 5508639. SHKALYAN 13-Sep-2006.
428   -- Overloaded Post Operation API for updating the Approval
429   -- status of the QA Results Collection for a given txn_header_id.
430   PROCEDURE qa_collection_approve
431               (p_plan_id       IN NUMBER,
432                p_collection_id IN NUMBER,
433                p_txn_header_id IN NUMBER
434               ) IS
435 
436      l_status_code VARCHAR2(30);
437 
438   BEGIN
439 
440      -- Get the Signature status
441      IF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'SUCCESS') THEN
442         l_status_code := g_approved;
443 
444      ELSIF (EDR_PSIG_PAGE_FLOW.SIGNATURE_STATUS = 'REJECTED') THEN
445         l_status_code := g_rejected;
446 
447      END IF;
448 
449      -- Update the status returned by EDR
450      update_collection_col(l_status_code,
451                            p_plan_id,
452                            p_collection_id,
453                            p_txn_header_id);
454 
455   END qa_collection_approve;
456 
457 
458 END QA_ERES_DEFER;
459