DBA Data[Home] [Help]

PACKAGE BODY: APPS.QA_CUSTOMER

Source


1 PACKAGE BODY qa_customer AS
2 /* $Header: qarcb.pls 120.0 2005/05/24 19:11:56 appldev noship $ */
3 
4     PROCEDURE merge(
5         req_id IN NUMBER,
6         set_number IN NUMBER,
7         process_mode IN VARCHAR2) IS
8 
9         MERGE_NOT_ALLOWED    EXCEPTION;
10         CURSOR c IS
11             SELECT qr.customer_id
12             FROM   qa_results qr, ra_customer_merges m
13             WHERE  qr.customer_id = m.duplicate_id AND
14                    m.process_flag = 'N' AND
15                    m.request_id = req_id AND
16                    m.set_number = set_number;
17 
18         from_cust_id NUMBER;
19 	Veto_Reason varchar2(300) := 'During account merge an old customer ID is found in QA_RESULTS table. The table is used to store archival info of test data.  The customer name can be used for auditing purpose and cannot be deleted';
20 
21     BEGIN
22         arp_message.set_line('QA_CUSTOMER.MERGE()+');
23 
24         IF process_mode = 'LOCK' THEN
25             null; -- no update will be allowed later
26         ELSE
27             OPEN c;
28             FETCH c INTO from_cust_id;
29             IF c%FOUND THEN
30                 CLOSE c;
31 /* rkaza. 07/19/2002. Bug 2447495.
32 QA should only veto the merge delete request.  If just a simple merge w/o
33 deleting the actual record, QA should simply let it go.
34 */
35                 -- RAISE MERGE_NOT_ALLOWED;
36 	        ARP_CMERGE_MASTER.veto_delete(
37                       req_id            =>        req_id,
38                       set_num           =>        set_number,
39                       from_customer_id  =>	  from_cust_id,
40                       veto_reason       =>	  Veto_Reason
41                 );
42             ELSE
43                 CLOSE c;
44                 arp_message.set_name('AR', 'AR_ROWS_UPDATED');
45                 arp_message.set_token('NUM_ROWS', '0');
46             END IF;
47         END IF;
48         arp_message.set_line('QA_CUSTOMER.MERGE()-');
49 
50     EXCEPTION
51 /*
52 	WHEN MERGE_NOT_ALLOWED THEN
53         arp_message.set_error('QA_CUSTOMER.MERGE');
54 */
55     WHEN OTHERS THEN
56         arp_message.set_error('QA_CUSTOMER.MERGE');
57         RAISE;
58     END merge;
59 
60 END qa_customer;