DBA Data[Home] [Help]

PACKAGE BODY: APPS.QA_CUSTOMER

Source


1 PACKAGE BODY qa_customer AS
2 /* $Header: qarcb.pls 120.1.12020000.2 2013/01/29 05:19:14 hmakam ship $ */
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 
11         --
12         -- Bug 10016878
13         -- Modified the cursor to ensure that the merge
14         -- between sites of the same party is not
15         -- vetoed out.
16         --
17         -- Bug 15881920
18         -- Modified the cursor to ensure that we check
19         -- if delete option is selected in Customer
20         -- Merge form
21         --
22         CURSOR c IS
23             SELECT qr.customer_id
24             FROM   qa_results qr, ra_customer_merges m
25             WHERE  qr.customer_id = m.duplicate_id AND
26                    m.process_flag = 'N' AND
27                    m.request_id = req_id AND
28                    m.set_number = set_number AND
29                    m.duplicate_id <> m.customer_id AND
30                    m.delete_duplicate_flag = 'Y';
31 
32         from_cust_id NUMBER;
33 	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';
34 
35     BEGIN
36         arp_message.set_line('QA_CUSTOMER.MERGE()+');
37 
38         IF process_mode = 'LOCK' THEN
39             null; -- no update will be allowed later
40         ELSE
41             OPEN c;
42             FETCH c INTO from_cust_id;
43             IF c%FOUND THEN
44                 CLOSE c;
45 /* rkaza. 07/19/2002. Bug 2447495.
46 QA should only veto the merge delete request.  If just a simple merge w/o
47 deleting the actual record, QA should simply let it go.
48 */
49                 -- RAISE MERGE_NOT_ALLOWED;
50 	        ARP_CMERGE_MASTER.veto_delete(
51                       req_id            =>        req_id,
52                       set_num           =>        set_number,
53                       from_customer_id  =>	  from_cust_id,
54                       veto_reason       =>	  Veto_Reason
55                 );
56             ELSE
57                 CLOSE c;
58                 arp_message.set_name('AR', 'AR_ROWS_UPDATED');
59                 arp_message.set_token('NUM_ROWS', '0');
60             END IF;
61         END IF;
62         arp_message.set_line('QA_CUSTOMER.MERGE()-');
63 
64     EXCEPTION
65 /*
66 	WHEN MERGE_NOT_ALLOWED THEN
67         arp_message.set_error('QA_CUSTOMER.MERGE');
68 */
69     WHEN OTHERS THEN
70         arp_message.set_error('QA_CUSTOMER.MERGE');
71         RAISE;
72     END merge;
73 
74 END qa_customer;