[Home] [Help]
11: INDEX BY BINARY_INTEGER;
12: MERGE_HEADER_ID_LIST MERGE_HEADER_ID_LIST_TYPE;
13:
14: TYPE NETTING_CUSTOMER_ID_LIST_TYPE IS TABLE OF
15: FUN_NET_CUSTOMERS_ALL.NETTING_CUSTOMER_ID%TYPE
16: INDEX BY BINARY_INTEGER;
17: PRIMARY_KEY_ID_LIST NETTING_CUSTOMER_ID_LIST_TYPE;
18:
19: TYPE CUST_ACCOUNT_ID_LIST_TYPE IS TABLE OF
16: INDEX BY BINARY_INTEGER;
17: PRIMARY_KEY_ID_LIST NETTING_CUSTOMER_ID_LIST_TYPE;
18:
19: TYPE CUST_ACCOUNT_ID_LIST_TYPE IS TABLE OF
20: FUN_NET_CUSTOMERS_ALL.CUST_ACCOUNT_ID%TYPE
21: INDEX BY BINARY_INTEGER;
22: NUM_COL1_ORIG_LIST CUST_ACCOUNT_ID_LIST_TYPE;
23: NUM_COL1_NEW_LIST CUST_ACCOUNT_ID_LIST_TYPE;
24:
22: NUM_COL1_ORIG_LIST CUST_ACCOUNT_ID_LIST_TYPE;
23: NUM_COL1_NEW_LIST CUST_ACCOUNT_ID_LIST_TYPE;
24:
25: TYPE CUST_SITE_USE_ID_LIST_TYPE IS TABLE OF
26: FUN_NET_CUSTOMERS_ALL.CUST_SITE_USE_ID%TYPE
27: INDEX BY BINARY_INTEGER;
28: NUM_COL2_ORIG_LIST CUST_SITE_USE_ID_LIST_TYPE;
29: NUM_COL2_NEW_LIST CUST_SITE_USE_ID_LIST_TYPE;
30:
28: NUM_COL2_ORIG_LIST CUST_SITE_USE_ID_LIST_TYPE;
29: NUM_COL2_NEW_LIST CUST_SITE_USE_ID_LIST_TYPE;
30:
31: TYPE CUSTOMER_PRIORITY_LIST_TYPE IS TABLE OF
32: FUN_NET_CUSTOMERS_ALL.CUST_PRIORITY%TYPE
33: INDEX BY BINARY_INTEGER;
34: NUM_COL3_ORIG_LIST CUSTOMER_PRIORITY_LIST_TYPE;
35: NUM_COL3_NEW_LIST CUSTOMER_PRIORITY_LIST_TYPE;
36:
40: ,NETTING_CUSTOMER_ID
41: ,CUST_ACCOUNT_ID
42: ,CUST_SITE_USE_ID
43: ,CUST_PRIORITY
44: FROM FUN_NET_CUSTOMERS_ALL yt, ra_customer_merges m
45: WHERE (
46: yt.CUST_ACCOUNT_ID = m.DUPLICATE_ID
47: OR yt.CUST_SITE_USE_ID = m.DUPLICATE_SITE_ID
48: )
57: IF process_mode='LOCK' THEN
58: NULL;
59: ELSE
60: ARP_MESSAGE.SET_NAME('AR','AR_UPDATING_TABLE');
61: ARP_MESSAGE.SET_TOKEN('TABLE_NAME','FUN_NET_CUSTOMERS_ALL',FALSE);
62: HZ_ACCT_MERGE_UTIL.load_set(set_num, req_id);
63:
64: l_profile_val := FND_PROFILE.VALUE('HZ_AUDIT_ACCT_MERGE');
65:
104: LAST_UPDATE_DATE,
105: LAST_UPDATED_BY
106: ) VALUES (
107: HZ_CUSTOMER_MERGE_LOG_s.nextval,
108: 'FUN_NET_CUSTOMERS_ALL',
109: MERGE_HEADER_ID_LIST(I),
110: PRIMARY_KEY_ID_LIST(I),
111: NUM_COL1_ORIG_LIST(I),
112: NUM_COL1_NEW_LIST(I),
124: );
125: END IF;
126: FORALL I in 1..MERGE_HEADER_ID_LIST.COUNT
127:
128: UPDATE FUN_NET_CUSTOMERS_ALL yt SET
129: CUST_ACCOUNT_ID=NUM_COL1_NEW_LIST(I)
130: ,CUST_SITE_USE_ID=NUM_COL2_NEW_LIST(I)
131: , LAST_UPDATE_DATE=SYSDATE
132: , last_updated_by=arp_standard.profile.user_id
143: arp_message.set_token('NUM_ROWS',to_char(l_count));
144:
145: /* If there is more than one record that has the same agreement_id,cust_account_id and cust_site_use_id then update the customer priority of the records to the highest priority amongst them */
146: BEGIN
147: UPDATE FUN_NET_CUSTOMERS_ALL yt SET
148: CUST_PRIORITY= (SELECT MIN(CUST_PRIORITY)
149: FROM FUN_NET_CUSTOMERS_ALL
150: WHERE AGREEMENT_ID = yt.AGREEMENT_ID
151: AND CUST_ACCOUNT_ID = yt.CUST_ACCOUNT_ID
145: /* If there is more than one record that has the same agreement_id,cust_account_id and cust_site_use_id then update the customer priority of the records to the highest priority amongst them */
146: BEGIN
147: UPDATE FUN_NET_CUSTOMERS_ALL yt SET
148: CUST_PRIORITY= (SELECT MIN(CUST_PRIORITY)
149: FROM FUN_NET_CUSTOMERS_ALL
150: WHERE AGREEMENT_ID = yt.AGREEMENT_ID
151: AND CUST_ACCOUNT_ID = yt.CUST_ACCOUNT_ID
152: AND nvl(CUST_SITE_USE_ID,0) = DECODE(
153: yt.CUST_SITE_USE_ID,NULL,0,yt.CUST_SITE_USE_ID)
152: AND nvl(CUST_SITE_USE_ID,0) = DECODE(
153: yt.CUST_SITE_USE_ID,NULL,0,yt.CUST_SITE_USE_ID)
154: )
155: WHERE EXISTS (SELECT 1
156: FROM FUN_NET_CUSTOMERS_ALL
157: WHERE yt.agreement_id = agreement_id
158: AND yt.cust_account_id = cust_account_id
159: AND nvl(CUST_SITE_USE_ID,0) = DECODE(
160: yt.CUST_SITE_USE_ID,NULL
168:
169: /* If there is more than one row that has the same agreement_id , customer_priority,cust_account_id and cust_site_use_id , delete the record that has the minimum of the netting customer id */
170:
171: BEGIN
172: DELETE FROM FUN_NET_CUSTOMERS_ALL yt
173: WHERE NETTING_CUSTOMER_ID = (
174: SELECT MIN(NETTING_CUSTOMER_ID)
175: FROM FUN_NET_CUSTOMERS_ALL
176: WHERE
171: BEGIN
172: DELETE FROM FUN_NET_CUSTOMERS_ALL yt
173: WHERE NETTING_CUSTOMER_ID = (
174: SELECT MIN(NETTING_CUSTOMER_ID)
175: FROM FUN_NET_CUSTOMERS_ALL
176: WHERE
177: yt.AGREEMENT_ID = AGREEMENT_ID
178: AND yt.CUST_ACCOUNT_ID = CUST_ACCOUNT_ID
179: AND nvl(yt.CUST_SITE_USE_ID,0) = nvl(CUST_SITE_USE_ID,0)