DBA Data[Home] [Help]

PACKAGE BODY: APPS.GML_UPDATE_CUST_DATA_PVT

Source


1 PACKAGE BODY GML_UPDATE_CUST_DATA_PVT AS
2 /*  $Header: GMLCUSYB.pls 120.2 2006/11/20 20:03:23 plowe noship $ */
3 /* +=========================================================================+
4  |                Copyright (c) 2000 Oracle Corporation                    |
5  |                        TVP, Reading, England                            |
6  |                         All rights reserved                             |
7  +=========================================================================+
8  | FILENAME                                                                |
9  |    GMLCUSYB.pls                                                         |
10  |                                                                         |
11  | DESCRIPTION                                                             |
12  |     This package body contains code to update cust_id in OPM            |
13  |     Tables so that after customer synchronization is eliminated the     |
14  |     CUST_ID properly matches those in Customer tables on APPS side.     |
15  |                                                                         |
16  |                                                                         |
17  | HISTORY                                                                 |
18  |     26-JAN-2005  PKANETKA        Created                                |
19  |     14-NOV-2006  PLOWE           Bug 5651374                            |
20  +=========================================================================+
21    API Name  : GML_UPDATE_CUST_DATA_PVT
22   Type      : Private
23  -
24   Pre-reqs  : N/A
25   Parameters: Per function
26 
27   Current Vers  : 1.0
28 */
29 
30 /* ======================================================================= */
31 /*  Function to get equivalent Bill To ID customer id on Apps side for a   */
32 /*  cust_id in op_cust_mst_opm  passed to it.                              */
33 /* ======================================================================= */
34 
35 FUNCTION GET_BILLCUST_ID
36  (
37   p_opm_cust_id IN NUMBER
38  )
39  RETURN NUMBER IS
40 
41  l_billcust_id NUMBER;
42  BEGIN
43 
44    SELECT a.cust_id INTO l_billcust_id
45    FROM   op_cust_mst_v a, op_cust_mst_opm b
46    WHERE  a.cust_no = b.cust_no
47     			AND a.of_cust_id = b.of_cust_id    --Bug 5651374 Performance issue.
48           AND a.co_code = b.co_code
49           AND b.cust_id = p_opm_cust_id
50           AND b.bill_ind = 1
51           AND rownum < 2;
52 
53    RETURN l_billcust_id ;
54 
55  EXCEPTION WHEN OTHERS  THEN
56    RETURN NULL;
57 
58  END GET_BILLCUST_ID;
59 
60 
61 /* ======================================================================= */
62 /*  Function to get equivalent ship To ID customer id on Apps side for a   */
63 /*  cust_id in op_cust_mst_opm  passed to it.                              */
64 /* ======================================================================= */
65 
66 
67 FUNCTION GET_SHIPCUST_ID
68  (
69   p_opm_cust_id IN NUMBER
70  )
71  RETURN NUMBER IS
72 
73  l_shipcust_id NUMBER;
74 
75  BEGIN
76 
77    SELECT a.cust_id INTO l_shipcust_id
78    FROM   op_cust_mst_v a, op_cust_mst_opm b
79    WHERE  a.cust_no = b.cust_no
80           AND a.of_cust_id = b.of_cust_id    --Bug 5651374 Performance issue.
81           AND a.co_code = b.co_code
82           AND b.cust_id = p_opm_cust_id
83           AND b.ship_ind = 1
84           AND rownum < 2;
85 
86    RETURN l_shipcust_id;
87 
88  EXCEPTION WHEN OTHERS  THEN
89   RETURN NULL;
90 
91  END GET_SHIPCUST_ID;
92 
93 /* ======================================================================= */
94 /*  Function to get first customer id on Apps side for a cust_id in        */
95 /*  op_cust_mst_opm  passed to it. In This particular case customer id     */
96 /*  could be bill to as well as ship to. It can not be resolved in OPM     */
97 /*  How ever Customer_no displayed on the form for old records would still */
98 /*  be the same. The forms are all Query Only.                             */
99 /* ======================================================================= */
100 
101 FUNCTION GET_ANYCUST_ID
102  (
103   p_opm_cust_id IN NUMBER
104  )
105  RETURN NUMBER IS
106 
107  l_anycust_id NUMBER;
108 
109  BEGIN
110 
111    SELECT a.cust_id INTO l_anycust_id
112    FROM   op_cust_mst_v a, op_cust_mst_opm b
113    WHERE  a.cust_no = b.cust_no
114           AND a.of_cust_id = b.of_cust_id    --Bug 5651374 Performance issue.
115           AND a.co_code = b.co_code
116           AND b.cust_id = p_opm_cust_id
117           AND rownum < 2;
118 
119    RETURN l_anycust_id;
120 
121  EXCEPTION WHEN OTHERS THEN
122   RETURN NULL;
123 
124  END GET_ANYCUST_ID;
125 
126 
127  PROCEDURE UPDATE_CUST_ID
128  IS
129 
130  l_bill_cust_id NUMBER;
131  l_ship_cust_id NUMBER;
132  l_any_cust_id  NUMBER;
133 
134  CURSOR Cur_cust_id IS
135  SELECT b.cust_id FROM op_cust_mst a, op_cust_mst_opm b
136  WHERE  a.cust_no = b.cust_no
137    AND    a.co_code = b.co_code;
138 
139 
140  BEGIN
141 
142  FOR r IN Cur_cust_id
143  LOOP
144 
145    l_ship_cust_id := GET_SHIPCUST_ID(r.cust_id);
146    l_bill_cust_id := GET_BILLCUST_ID(r.cust_id);
147    l_any_cust_id := GET_ANYCUST_ID(r.cust_id);
148 
149    IF (l_ship_cust_id IS NOT NULL) THEN
150    -- All Ship to updates
151    -- Bug 5383665 Modified where clause to use opm_cust_id instead of cust_id.
152 
153      UPDATE gl_acct_map
154      SET    cust_id = l_ship_cust_id
155      WHERE opm_cust_id = r.cust_id;
156 
157      UPDATE op_alot_prm
158      SET    cust_id = l_ship_cust_id
159      WHERE  opm_cust_id = r.cust_id;
160 
161      -- Not bill ?
162      UPDATE op_cust_asc
163      SET    assoccust_id = l_ship_cust_id
164      WHERE  opm_assoccust_id = r.cust_id;
165 
166      UPDATE op_gnrc_itm
167      SET    cust_id = l_ship_cust_id
168      WHERE  opm_cust_id = r.cust_id;
169 
170      UPDATE op_txcu_asc
171      SET    cust_id = l_ship_cust_id
172      WHERE  opm_cust_id = r.cust_id;
173 
174      UPDATE op_ordr_hdr
175      SET    shipcust_id = l_ship_cust_id
176      WHERE  opm_shipcust_id = r.cust_id;
177 
178      UPDATE op_ordr_hdr
179      SET    ultimate_shipcust_id = l_ship_cust_id
180      WHERE  opm_ultimate_shipcust_id = r.cust_id;
181 
182      UPDATE op_ordr_dtl
183      SET    shipcust_id = l_ship_cust_id
184      WHERE  opm_shipcust_id = r.cust_id;
185 
186      UPDATE op_prsl_hdr
187      SET    shipcust_id = l_ship_cust_id
188      WHERE  opm_shipcust_id = r.cust_id;
189 
190      UPDATE op_prsl_hdr
191      SET    ultimate_shipcust_id = l_ship_cust_id
192      WHERE  opm_ultimate_shipcust_id = r.cust_id;
193 
194      UPDATE op_prsl_dtl
195      SET    shipcust_id = l_ship_cust_id
196      WHERE  opm_shipcust_id = r.cust_id;
197 
198      UPDATE op_prsl_dtl
199      SET    ultimate_shipcust_id = l_ship_cust_id
200      WHERE  opm_ultimate_shipcust_id = r.cust_id;
201 
202    END IF;
203 
204    IF (l_bill_cust_id IS NOT NULL) THEN
205    -- All Bill to updates
206 
207      UPDATE op_cust_asc
208      SET    cust_id = l_bill_cust_id
209      WHERE  opm_cust_id = r.cust_id;
210 
211      UPDATE op_ordr_hdr
212      SET    billcust_id = l_bill_cust_id
213      WHERE  opm_billcust_id = r.cust_id;
214 
215      UPDATE op_prsl_hdr
216      SET    billcust_id = l_bill_cust_id
217      WHERE  opm_billcust_id = r.cust_id;
218 
219      UPDATE op_prsl_dtl
220      SET    billcust_id = l_bill_cust_id
221      WHERE  opm_billcust_id = r.cust_id;
222 
223    END IF;
224 
225    IF (l_any_cust_id IS NOT NULL) THEN
226    -- All Other cust_id updates
227 
228      UPDATE op_chrg_itm
229      SET    cust_id = l_any_cust_id
230      WHERE  opm_cust_id = r.cust_id;
231 
232      UPDATE op_cust_con
233      SET    cust_id = l_any_cust_id
234      WHERE  opm_cust_id = r.cust_id;
235 
236      UPDATE op_cust_itm
237      SET    cust_id = l_any_cust_id
238      WHERE  opm_cust_id = r.cust_id;
239 
240      UPDATE op_prce_eff
241      SET    cust_id = l_any_cust_id
242      WHERE  opm_cust_id = r.cust_id;
243 
244      UPDATE op_ordr_hdr
245      SET    soldtocust_id = l_any_cust_id
246      WHERE  opm_soldtocust_id = r.cust_id;
247 
248      UPDATE op_ordr_dtl
249      SET    soldtocust_id = l_any_cust_id
250      WHERE  opm_soldtocust_id = r.cust_id;
251 
252      UPDATE op_ordr_dtl
253      SET    ultimate_shipcust_id = l_any_cust_id
254      WHERE  opm_ultimate_shipcust_id = r.cust_id;
255 
256      UPDATE op_prsl_hdr
257      SET    soldtocust_id= l_any_cust_id
258      WHERE  opm_soldtocust_id = r.cust_id;
259 
260      UPDATE op_prsl_dtl
261      SET    soldtocust_id= l_any_cust_id
262      WHERE  opm_soldtocust_id = r.cust_id;
263 
264      UPDATE op_cust_shp
265      SET    cust_id = l_any_cust_id
266      WHERE  opm_cust_id = r.cust_id;
267 
268    END IF;
269 
270   END LOOP;
271 
272 
273  END UPDATE_CUST_ID;
274 
275 END GML_UPDATE_CUST_DATA_PVT;