DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_HEADER_PAYMENT_UTIL

Source


1 PACKAGE BODY OE_Header_Payment_Util AS
2 /* $Header: OEXUHPMB.pls 120.22.12020000.5 2013/03/13 08:40:44 kadiraju ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_Header_Payment_Util';
7 
8 --3382262
9 Procedure Delete_Payment_at_header(p_header_id in number,
10                                    p_line_id in number := null,
11                                    x_return_status out nocopy varchar2,
12                                    x_msg_count out nocopy number,
13                                    x_msg_data out nocopy varchar2);
14 --3382262
15 
16 FUNCTION G_MISS_OE_AK_HPAYMENT_REC
17 RETURN OE_AK_HEADER_PAYMENTS_V%ROWTYPE IS
18 l_rowtype_rec				OE_AK_HEADER_PAYMENTS_V%ROWTYPE;
19 --
20 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
21 --
22 BEGIN
23 
24     l_rowtype_rec.ATTRIBUTE1                     := FND_API.G_MISS_CHAR;
25     l_rowtype_rec.ATTRIBUTE2                     := FND_API.G_MISS_CHAR;
26     l_rowtype_rec.ATTRIBUTE3                     := FND_API.G_MISS_CHAR;
27     l_rowtype_rec.ATTRIBUTE4                     := FND_API.G_MISS_CHAR;
28     l_rowtype_rec.ATTRIBUTE5                     := FND_API.G_MISS_CHAR;
29     l_rowtype_rec.ATTRIBUTE6                     := FND_API.G_MISS_CHAR;
30     l_rowtype_rec.ATTRIBUTE7                     := FND_API.G_MISS_CHAR;
31     l_rowtype_rec.ATTRIBUTE8                     := FND_API.G_MISS_CHAR;
32     l_rowtype_rec.ATTRIBUTE9                     := FND_API.G_MISS_CHAR;
33     l_rowtype_rec.ATTRIBUTE10                    := FND_API.G_MISS_CHAR;
34     l_rowtype_rec.ATTRIBUTE11                    := FND_API.G_MISS_CHAR;
35     l_rowtype_rec.ATTRIBUTE12                    := FND_API.G_MISS_CHAR;
36     l_rowtype_rec.ATTRIBUTE13                    := FND_API.G_MISS_CHAR;
37     l_rowtype_rec.ATTRIBUTE14                    := FND_API.G_MISS_CHAR;
38     l_rowtype_rec.ATTRIBUTE15                    := FND_API.G_MISS_CHAR;
39     l_rowtype_rec.CONTEXT                        := FND_API.G_MISS_CHAR;
40     l_rowtype_rec.CREATED_BY                     := FND_API.G_MISS_NUM;
41     l_rowtype_rec.CREATION_DATE                  := FND_API.G_MISS_DATE;
42     l_rowtype_rec.LAST_UPDATED_BY                := FND_API.G_MISS_NUM;
43     l_rowtype_rec.LAST_UPDATE_DATE               := FND_API.G_MISS_DATE;
44     l_rowtype_rec.LAST_UPDATE_LOGIN              := FND_API.G_MISS_NUM;
45     l_rowtype_rec.CHECK_NUMBER                   := FND_API.G_MISS_CHAR;
46     l_rowtype_rec.CREDIT_CARD_APPROVAL_CODE      := FND_API.G_MISS_CHAR;
47     l_rowtype_rec.CREDIT_CARD_APPROVAL_DATE      := FND_API.G_MISS_DATE;
48     l_rowtype_rec.CREDIT_CARD_CODE               := FND_API.G_MISS_CHAR;
49     l_rowtype_rec.CREDIT_CARD_EXPIRATION_DATE    := FND_API.G_MISS_DATE;
50     l_rowtype_rec.CREDIT_CARD_HOLDER_NAME        := FND_API.G_MISS_CHAR;
51     l_rowtype_rec.CREDIT_CARD_NUMBER             := FND_API.G_MISS_CHAR;
52     l_rowtype_rec.PAYMENT_LEVEL_CODE             := FND_API.G_MISS_CHAR;
53     l_rowtype_rec.COMMITMENT_APPLIED_AMOUNT      := FND_API.G_MISS_NUM;
54     l_rowtype_rec.COMMITMENT_INTERFACED_AMOUNT   := FND_API.G_MISS_NUM;
55     l_rowtype_rec.PAYMENT_NUMBER                 := FND_API.G_MISS_NUM;
56     l_rowtype_rec.HEADER_ID                      := FND_API.G_MISS_NUM;
57     l_rowtype_rec.LINE_ID                        := FND_API.G_MISS_NUM;
58     l_rowtype_rec.PAYMENT_AMOUNT                 := FND_API.G_MISS_NUM;
59     l_rowtype_rec.PAYMENT_COLLECTION_EVENT       := FND_API.G_MISS_CHAR;
60     l_rowtype_rec.PAYMENT_TRX_ID                 := FND_API.G_MISS_NUM;
61     l_rowtype_rec.PAYMENT_TYPE_CODE              := FND_API.G_MISS_CHAR;
62     l_rowtype_rec.PAYMENT_SET_ID                 := FND_API.G_MISS_NUM;
63     l_rowtype_rec.PREPAID_AMOUNT                 := FND_API.G_MISS_NUM;
64     l_rowtype_rec.PROGRAM_APPLICATION_ID         := FND_API.G_MISS_NUM;
65     l_rowtype_rec.PROGRAM_ID                     := FND_API.G_MISS_NUM;
66     l_rowtype_rec.PROGRAM_UPDATE_DATE            := FND_API.G_MISS_DATE;
67     l_rowtype_rec.RECEIPT_METHOD_ID              := FND_API.G_MISS_NUM;
68     l_rowtype_rec.REQUEST_ID                     := FND_API.G_MISS_NUM;
69     l_rowtype_rec.TANGIBLE_ID                    := FND_API.G_MISS_CHAR;
70     l_rowtype_rec.RETURN_STATUS                  := FND_API.G_MISS_CHAR;
71     l_rowtype_rec.DB_FLAG                        := FND_API.G_MISS_CHAR;
72     l_rowtype_rec.OPERATION                      := FND_API.G_MISS_CHAR;
73 
74     RETURN l_rowtype_rec;
75 
76 END G_MISS_OE_AK_HPAYMENT_REC;
77 
78 PROCEDURE API_Rec_To_Rowtype_Rec
79 (   p_HEADER_Payment_rec            IN  OE_Order_PUB.HEADER_PAYMENT_Rec_Type
80 ,   x_rowtype_rec                  IN OUT NOCOPY OE_AK_HEADER_PAYMENTS_V%ROWTYPE
81 ) IS
82 --
83 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
84 --
85 BEGIN
86 
87     x_rowtype_rec.ATTRIBUTE1       := p_header_Payment_rec.ATTRIBUTE1;
88     x_rowtype_rec.ATTRIBUTE2       := p_header_Payment_rec.ATTRIBUTE2;
89     x_rowtype_rec.ATTRIBUTE3       := p_header_Payment_rec.ATTRIBUTE3;
90     x_rowtype_rec.ATTRIBUTE4       := p_header_Payment_rec.ATTRIBUTE4;
91     x_rowtype_rec.ATTRIBUTE5       := p_header_Payment_rec.ATTRIBUTE5;
92     x_rowtype_rec.ATTRIBUTE6       := p_header_Payment_rec.ATTRIBUTE6;
93     x_rowtype_rec.ATTRIBUTE7       := p_header_Payment_rec.ATTRIBUTE7;
94     x_rowtype_rec.ATTRIBUTE8       := p_header_Payment_rec.ATTRIBUTE8;
95     x_rowtype_rec.ATTRIBUTE9       := p_header_Payment_rec.ATTRIBUTE9;
96     x_rowtype_rec.ATTRIBUTE10       := p_header_Payment_rec.ATTRIBUTE10;
97     x_rowtype_rec.ATTRIBUTE11       := p_header_Payment_rec.ATTRIBUTE11;
98     x_rowtype_rec.ATTRIBUTE12       := p_header_Payment_rec.ATTRIBUTE12;
99     x_rowtype_rec.ATTRIBUTE13       := p_header_Payment_rec.ATTRIBUTE13;
100     x_rowtype_rec.ATTRIBUTE14       := p_header_Payment_rec.ATTRIBUTE14;
101     x_rowtype_rec.ATTRIBUTE15       := p_header_Payment_rec.ATTRIBUTE15;
102     x_rowtype_rec.CONTEXT                        := p_header_Payment_rec.CONTEXT;
103     x_rowtype_rec.CREATED_BY                     := p_header_Payment_rec.CREATED_BY;
104     x_rowtype_rec.CREATION_DATE                  := p_header_Payment_rec.CREATION_DATE;
105     x_rowtype_rec.LAST_UPDATED_BY                := p_header_Payment_rec.LAST_UPDATED_BY;
106     x_rowtype_rec.LAST_UPDATE_DATE               := p_header_Payment_rec.LAST_UPDATE_DATE;
107     x_rowtype_rec.LAST_UPDATE_LOGIN              := p_header_Payment_rec.LAST_UPDATE_LOGIN;
108     x_rowtype_rec.CHECK_NUMBER                   := p_header_Payment_rec.CHECK_NUMBER;
109     x_rowtype_rec.CREDIT_CARD_APPROVAL_CODE      := p_header_Payment_rec.CREDIT_CARD_APPROVAL_CODE;
110     x_rowtype_rec.CREDIT_CARD_APPROVAL_DATE      := p_header_Payment_rec.CREDIT_CARD_APPROVAL_DATE;
111     x_rowtype_rec.CREDIT_CARD_CODE               := p_header_Payment_rec.CREDIT_CARD_CODE;
112     x_rowtype_rec.CREDIT_CARD_EXPIRATION_DATE    := p_header_Payment_rec.CREDIT_CARD_EXPIRATION_DATE;
113     x_rowtype_rec.CREDIT_CARD_HOLDER_NAME        := p_header_Payment_rec.CREDIT_CARD_HOLDER_NAME;
114     x_rowtype_rec.CREDIT_CARD_NUMBER             := p_header_Payment_rec.CREDIT_CARD_NUMBER;
115     x_rowtype_rec.PAYMENT_LEVEL_CODE             := p_header_Payment_rec.PAYMENT_LEVEL_CODE;
116     x_rowtype_rec.COMMITMENT_APPLIED_AMOUNT      := p_header_Payment_rec.COMMITMENT_APPLIED_AMOUNT;
117     x_rowtype_rec.COMMITMENT_INTERFACED_AMOUNT   := p_header_Payment_rec.COMMITMENT_INTERFACED_AMOUNT;
118     x_rowtype_rec.PAYMENT_NUMBER                 := p_header_Payment_rec.PAYMENT_NUMBER;
119     x_rowtype_rec.HEADER_ID                      := p_header_Payment_rec.HEADER_ID;
120     x_rowtype_rec.LINE_ID                        := p_header_Payment_rec.LINE_ID;
121     x_rowtype_rec.PAYMENT_AMOUNT                 := p_header_Payment_rec.PAYMENT_AMOUNT;
122     x_rowtype_rec.PAYMENT_COLLECTION_EVENT       := p_header_Payment_rec.PAYMENT_COLLECTION_EVENT;
123     x_rowtype_rec.PAYMENT_TRX_ID                 := p_header_Payment_rec.PAYMENT_TRX_ID;
124     x_rowtype_rec.PAYMENT_TYPE_CODE              := p_header_Payment_rec.PAYMENT_TYPE_CODE;
125     x_rowtype_rec.PAYMENT_SET_ID                 := p_header_Payment_rec.PAYMENT_SET_ID;
126     x_rowtype_rec.PREPAID_AMOUNT                 := p_header_Payment_rec.PREPAID_AMOUNT;
127     x_rowtype_rec.PROGRAM_APPLICATION_ID         := p_header_Payment_rec.PROGRAM_APPLICATION_ID;
128     x_rowtype_rec.PROGRAM_ID                     := p_header_Payment_rec.PROGRAM_ID;
129     x_rowtype_rec.PROGRAM_UPDATE_DATE            := p_header_Payment_rec.PROGRAM_UPDATE_DATE;
130     x_rowtype_rec.RECEIPT_METHOD_ID              := p_header_Payment_rec.RECEIPT_METHOD_ID;
131     x_rowtype_rec.REQUEST_ID                     := p_header_Payment_rec.REQUEST_ID;
132     x_rowtype_rec.TANGIBLE_ID                    := p_header_Payment_rec.TANGIBLE_ID;
133     x_rowtype_rec.RETURN_STATUS                  := p_header_Payment_rec.RETURN_STATUS;
134     x_rowtype_rec.DB_FLAG                        := p_header_Payment_rec.DB_FLAG;
135     x_rowtype_rec.OPERATION                      := p_header_Payment_rec.OPERATION;
136 
137 END API_Rec_To_RowType_Rec;
138 
139 
140 PROCEDURE Rowtype_Rec_To_API_Rec
141 (   p_record                        IN  OE_AK_HEADER_PaymentS_V%ROWTYPE
142 ,   x_api_rec                     IN OUT NOCOPY OE_Order_PUB.HEADER_Payment_Rec_Type
143 ) IS
144 --
145 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
146 --
147 BEGIN
148 
149     x_api_rec.ATTRIBUTE1       := p_record.ATTRIBUTE1;
150     x_api_rec.ATTRIBUTE2       := p_record.ATTRIBUTE2;
151     x_api_rec.ATTRIBUTE3       := p_record.ATTRIBUTE3;
152     x_api_rec.ATTRIBUTE4       := p_record.ATTRIBUTE4;
153     x_api_rec.ATTRIBUTE5       := p_record.ATTRIBUTE5;
154     x_api_rec.ATTRIBUTE6       := p_record.ATTRIBUTE6;
155     x_api_rec.ATTRIBUTE7       := p_record.ATTRIBUTE7;
156     x_api_rec.ATTRIBUTE8       := p_record.ATTRIBUTE8;
157     x_api_rec.ATTRIBUTE9       := p_record.ATTRIBUTE9;
158     x_api_rec.ATTRIBUTE10       := p_record.ATTRIBUTE10;
159     x_api_rec.ATTRIBUTE11       := p_record.ATTRIBUTE11;
160     x_api_rec.ATTRIBUTE12       := p_record.ATTRIBUTE12;
161     x_api_rec.ATTRIBUTE13       := p_record.ATTRIBUTE13;
162     x_api_rec.ATTRIBUTE14       := p_record.ATTRIBUTE14;
163     x_api_rec.ATTRIBUTE15       := p_record.ATTRIBUTE15;
164     x_api_rec.CONTEXT                        := p_record.CONTEXT;
165     x_api_rec.CREATED_BY                     := p_record.CREATED_BY;
166     x_api_rec.CREATION_DATE                  := p_record.CREATION_DATE;
167     x_api_rec.LAST_UPDATED_BY                := p_record.LAST_UPDATED_BY;
168     x_api_rec.LAST_UPDATE_DATE               := p_record.LAST_UPDATE_DATE;
169     x_api_rec.LAST_UPDATE_LOGIN              := p_record.LAST_UPDATE_LOGIN;
170     x_api_rec.CHECK_NUMBER                   := p_record.CHECK_NUMBER;
171     x_api_rec.CREDIT_CARD_APPROVAL_CODE      := p_record.CREDIT_CARD_APPROVAL_CODE;
172     x_api_rec.CREDIT_CARD_APPROVAL_DATE      := p_record.CREDIT_CARD_APPROVAL_DATE;
173     x_api_rec.CREDIT_CARD_CODE               := p_record.CREDIT_CARD_CODE;
174     x_api_rec.CREDIT_CARD_EXPIRATION_DATE    := p_record.CREDIT_CARD_EXPIRATION_DATE;
175     x_api_rec.CREDIT_CARD_HOLDER_NAME        := p_record.CREDIT_CARD_HOLDER_NAME;
176     x_api_rec.CREDIT_CARD_NUMBER             := p_record.CREDIT_CARD_NUMBER;
177     x_api_rec.PAYMENT_LEVEL_CODE             := p_record.PAYMENT_LEVEL_CODE;
178     x_api_rec.COMMITMENT_APPLIED_AMOUNT      := p_record.COMMITMENT_APPLIED_AMOUNT;
179     x_api_rec.COMMITMENT_INTERFACED_AMOUNT   := p_record.COMMITMENT_INTERFACED_AMOUNT;
180     x_api_rec.PAYMENT_NUMBER                 := p_record.PAYMENT_NUMBER;
181     x_api_rec.HEADER_ID                      := p_record.HEADER_ID;
182     x_api_rec.LINE_ID                        := p_record.LINE_ID;
183     x_api_rec.PAYMENT_AMOUNT                 := p_record.PAYMENT_AMOUNT;
184     x_api_rec.PAYMENT_COLLECTION_EVENT       := p_record.PAYMENT_COLLECTION_EVENT;
185     x_api_rec.PAYMENT_TRX_ID                 := p_record.PAYMENT_TRX_ID;
186     x_api_rec.PAYMENT_TYPE_CODE              := p_record.PAYMENT_TYPE_CODE;
187     x_api_rec.PAYMENT_SET_ID                 := p_record.PAYMENT_SET_ID;
188     x_api_rec.PREPAID_AMOUNT                 := p_record.PREPAID_AMOUNT;
189     x_api_rec.PROGRAM_APPLICATION_ID         := p_record.PROGRAM_APPLICATION_ID;
190     x_api_rec.PROGRAM_ID                     := p_record.PROGRAM_ID;
191     x_api_rec.PROGRAM_UPDATE_DATE            := p_record.PROGRAM_UPDATE_DATE;
192     x_api_rec.RECEIPT_METHOD_ID              := p_record.RECEIPT_METHOD_ID;
193     x_api_rec.REQUEST_ID                     := p_record.REQUEST_ID;
194     x_api_rec.TANGIBLE_ID                    := p_record.TANGIBLE_ID;
195     x_api_rec.RETURN_STATUS                  := p_record.RETURN_STATUS;
196     x_api_rec.DB_FLAG                        := p_record.DB_FLAG;
197 
198 END Rowtype_Rec_To_API_Rec;
199 
200 --  Procedure Clear_Dependent_Attr
201 
202 PROCEDURE Clear_Dependent_Attr
203 (   p_attr_id                       IN  NUMBER := FND_API.G_MISS_NUM
204 ,   p_x_Header_Payment_rec    IN OUT NOCOPY  OE_AK_HEADER_PAYMENTS_V%ROWTYPE
205 ,   p_old_Header_Payment_rec        IN  OE_AK_HEADER_PAYMENTS_V%ROWTYPE :=
206 								G_MISS_OE_AK_HPayment_REC
207 ,   p_x_instrument_id		IN NUMBER DEFAULT NULL --R12 CC Encryption
208 ,   p_old_instrument_id         IN NUMBER DEFAULT NULL
209 )
210 IS
211 l_index			NUMBER :=0;
212 l_src_attr_tbl		OE_GLOBALS.NUMBER_Tbl_Type;
213 l_dep_attr_tbl		OE_GLOBALS.NUMBER_Tbl_Type;
214 --
215 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
216 --
217 BEGIN
218 
219     --  Load out record
220 
221 
222 
223     --  If attr_id is missing compare old and new records and for
224     --  every changed attribute clear its dependent fields.
225 
226     IF p_attr_id = FND_API.G_MISS_NUM THEN
227 
228         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute1,p_old_Header_Payment_rec.attribute1)
229         THEN
230            l_index := l_index + 1;
231            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE1;
232         END IF;
233 
234         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute2,p_old_Header_Payment_rec.attribute2)
235         THEN
236            l_index := l_index + 1;
237            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE2;
238         END IF;
239 
240         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute3,p_old_Header_Payment_rec.attribute3)
241         THEN
242            l_index := l_index + 1;
243            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE3;
244         END IF;
245 
246         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute4,p_old_Header_Payment_rec.attribute4)
247         THEN
248            l_index := l_index + 1;
249            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE4;
250         END IF;
251 
252         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute5,p_old_Header_Payment_rec.attribute5)
253         THEN
254            l_index := l_index + 1;
255            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE5;
256         END IF;
257 
258         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute6,p_old_Header_Payment_rec.attribute6)
259         THEN
260            l_index := l_index + 1;
261            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE6;
262         END IF;
263 
264         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute7,p_old_Header_Payment_rec.attribute7)
265         THEN
266            l_index := l_index + 1;
267            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE7;
268         END IF;
269 
270         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute8,p_old_Header_Payment_rec.attribute8)
271         THEN
272            l_index := l_index + 1;
273            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE8;
274         END IF;
275 
276         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute9,p_old_Header_Payment_rec.attribute9)
277         THEN
278            l_index := l_index + 1;
279            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE9;
280         END IF;
281 
282         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute10,p_old_Header_Payment_rec.attribute10)
283         THEN
284            l_index := l_index + 1;
285            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE10;
286         END IF;
287 
288         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute11,p_old_Header_Payment_rec.attribute11)
289         THEN
290            l_index := l_index + 1;
291            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE11;
292         END IF;
293 
294         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute12,p_old_Header_Payment_rec.attribute12)
295         THEN
296            l_index := l_index + 1;
297            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE12;
298         END IF;
299 
300         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute13,p_old_Header_Payment_rec.attribute13)
301         THEN
302            l_index := l_index + 1;
303            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE13;
304         END IF;
305 
306         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute14,p_old_Header_Payment_rec.attribute14)
307         THEN
308            l_index := l_index + 1;
309            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE14;
310         END IF;
311 
312         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute15,p_old_Header_Payment_rec.attribute15)
313         THEN
314            l_index := l_index + 1;
315            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE15;
316         END IF;
317 
318         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.context,p_old_Header_Payment_rec.context)
319         THEN
320            l_index := l_index + 1;
321            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CONTEXT;
322         END IF;
323 
324         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.created_by,p_old_Header_Payment_rec.created_by)
325         THEN
326            l_index := l_index + 1;
327            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREATED_BY;
328         END IF;
329 
330         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.creation_date,p_old_Header_Payment_rec.creation_date)
331         THEN
332            l_index := l_index + 1;
333            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREATION_DATE;
334         END IF;
335 
336         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.last_updated_by,p_old_Header_Payment_rec.last_updated_by)
337         THEN
338            l_index := l_index + 1;
339            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_LAST_UPDATED_BY;
340         END IF;
341 
342         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.last_update_date,p_old_Header_Payment_rec.last_update_date)
343         THEN
344            l_index := l_index + 1;
345            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_LAST_UPDATE_DATE;
346         END IF;
347 
348         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.last_update_login,p_old_Header_Payment_rec.last_update_login)
349         THEN
350            l_index := l_index + 1;
351            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_LAST_UPDATE_LOGIN;
352         END IF;
353 
354         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.check_number,p_old_Header_Payment_rec.check_number)
355         THEN
356            l_index := l_index + 1;
357            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CHECK_NUMBER;
358         END IF;
359 
360         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.credit_card_approval_code,p_old_Header_Payment_rec.credit_card_approval_code)
361         THEN
362            l_index := l_index + 1;
363            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_APPROVAL_CODE;
364         END IF;
365 
366         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.credit_card_approval_date,p_old_Header_Payment_rec.credit_card_approval_date)
367         THEN
368            l_index := l_index + 1;
369            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_APPROVAL_DATE;
370         END IF;
371 
372         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.credit_card_code,p_old_Header_Payment_rec.credit_card_code)
373         THEN
374            l_index := l_index + 1;
375            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_CODE;
376         END IF;
377 
378         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.credit_card_expiration_date,p_old_Header_Payment_rec.credit_card_expiration_date)
379         THEN
380            l_index := l_index + 1;
381            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_EXPIRATION_DATE;
382         END IF;
383 
384         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.credit_card_holder_name,p_old_Header_Payment_rec.credit_card_holder_name)
385         THEN
386            l_index := l_index + 1;
387            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_HOLDER_NAME;
388         END IF;
389 	--R12 CC Encryption
390 	--Since the credit card numbers are encrypted, passing both the credit card
391 	--numbers as well as instrument ids to determine if both the old and new
392 	--values point to the same credit card number.
393 
394         IF NOT OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
395                             p_x_Header_Payment_rec.credit_card_number,p_old_instrument_id,
396 			    p_x_instrument_id)
397         THEN
398            l_index := l_index + 1;
399            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_NUMBER;
400         END IF;
401 
402         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_level_code,p_old_Header_Payment_rec.payment_level_code)
403         THEN
404            l_index := l_index + 1;
405            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_LEVEL_CODE;
406         END IF;
407 
408         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.commitment_applied_amount,p_old_Header_Payment_rec.commitment_applied_amount)
409         THEN
410            l_index := l_index + 1;
411            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_COMMITMENT_APPLIED_AMOUNT;
412         END IF;
413 
414         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.commitment_interfaced_amount,p_old_Header_Payment_rec.commitment_interfaced_amount)
415         THEN
416            l_index := l_index + 1;
417            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_COMMITMENT_INTERFACED_AMOUNT;
418         END IF;
419 
420         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_number,p_old_Header_Payment_rec.payment_number)
421         THEN
422            l_index := l_index + 1;
423            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_NUMBER;
424         END IF;
425 
426         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.header_id,p_old_Header_Payment_rec.header_id)
427         THEN
428            l_index := l_index + 1;
429            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_HEADER;
430         END IF;
431 
432         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.line_id,p_old_Header_Payment_rec.line_id)
433         THEN
434            l_index := l_index + 1;
435            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_LINE;
436         END IF;
437 
438         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_amount,p_old_Header_Payment_rec.payment_amount)
439         THEN
440            l_index := l_index + 1;
441            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_AMOUNT;
442         END IF;
443 
444 
445         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_collection_event,p_old_Header_Payment_rec.payment_collection_event)
446         THEN
447            l_index := l_index + 1;
448            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_COLLECTION_EVENT;
449         END IF;
450 
451         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_trx_id,p_old_Header_Payment_rec.payment_trx_id)
452         THEN
453            l_index := l_index + 1;
454          l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_TRX_ID;
455         END IF;
456 
457         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_type_code,p_old_Header_Payment_rec.payment_type_code)
458         THEN
459            l_index := l_index + 1;
460            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_TYPE_CODE;
461         END IF;
462 
463         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_set_id,p_old_Header_Payment_rec.payment_set_id)
464         THEN
465            l_index := l_index + 1;
466            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_SET_ID;
467         END IF;
468 
469         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.prepaid_amount,p_old_Header_Payment_rec.prepaid_amount)
470         THEN
471            l_index := l_index + 1;
472            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PREPAID_AMOUNT;
473         END IF;
474 
475         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.program_application_id,p_old_Header_Payment_rec.program_application_id)
476         THEN
477            l_index := l_index + 1;
478            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PROGRAM_APPLICATION_ID;
479         END IF;
480 
481         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.program_id,p_old_Header_Payment_rec.program_id)
482         THEN
483            l_index := l_index + 1;
484            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PROGRAM_ID;
485         END IF;
486 
487         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.program_update_date,p_old_Header_Payment_rec.program_update_date)
488         THEN
489            l_index := l_index + 1;
490            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PROGRAM_UPDATE_DATE;
491         END IF;
492 
493         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.receipt_method_id,p_old_Header_Payment_rec.receipt_method_id)
494         THEN
495            l_index := l_index + 1;
496            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_RECEIPT_METHOD_ID;
497         END IF;
498 
499         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.request_id,p_old_Header_Payment_rec.request_id)
500         THEN
501            l_index := l_index + 1;
502            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_REQUEST_ID;
503         END IF;
504 
505         IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.tangible_id,p_old_Header_Payment_rec.tangible_id)
506         THEN
507            l_index := l_index + 1;
508            l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_TANGIBLE_ID;
509         END IF;
510 
511     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
512         l_index := l_index + 1;
513         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE1;
514     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
515         l_index := l_index + 1;
516         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE2;
517     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
518         l_index := l_index + 1;
519         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE3;
520     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
521         l_index := l_index + 1;
522         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE4;
523     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
524         l_index := l_index + 1;
525         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE5;
526     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
527         l_index := l_index + 1;
528         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE6;
529     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
530         l_index := l_index + 1;
531         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE7;
532     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
533         l_index := l_index + 1;
534         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE8;
535     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
536         l_index := l_index + 1;
537         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE9;
538     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
539         l_index := l_index + 1;
540         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE10;
541     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
542         l_index := l_index + 1;
543         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE11;
544     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
545         l_index := l_index + 1;
546         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE12;
547     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
548         l_index := l_index + 1;
549         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE13;
550     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
551         l_index := l_index + 1;
552         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE14;
553     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
554         l_index := l_index + 1;
555         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE15;
556     ELSIF p_attr_id = G_CREATED_BY THEN
557         l_index := l_index + 1;
558         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREATED_BY;
559     ELSIF p_attr_id = G_CREATION_DATE THEN
560         l_index := l_index + 1;
561         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREATION_DATE;
562     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
563         l_index := l_index + 1;
564         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_LAST_UPDATED_BY;
565     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
566         l_index := l_index + 1;
567         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_LAST_UPDATE_DATE;
568     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
569         l_index := l_index + 1;
570         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_LAST_UPDATE_LOGIN;
571     ELSIF p_attr_id = G_CHECK_NUMBER THEN
572         l_index := l_index + 1;
573         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CHECK_NUMBER;
574     ELSIF p_attr_id = G_CREDIT_CARD_APPROVAL_CODE THEN
575         l_index := l_index + 1;
576         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_APPROVAL_CODE;
577     ELSIF p_attr_id = G_CREDIT_CARD_APPROVAL_DATE THEN
578         l_index := l_index + 1;
579         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_APPROVAL_DATE;
580     ELSIF p_attr_id = G_CREDIT_CARD_CODE THEN
581         l_index := l_index + 1;
582         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_CODE;
583     ELSIF p_attr_id = G_CREDIT_CARD_EXPIRATION_DATE THEN
584         l_index := l_index + 1;
585         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_EXPIRATION_DATE;
586     ELSIF p_attr_id = G_CREDIT_CARD_HOLDER_NAME THEN
587         l_index := l_index + 1;
588         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_HOLDER_NAME;
589     ELSIF p_attr_id = G_CREDIT_CARD_NUMBER THEN
590         l_index := l_index + 1;
591         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_NUMBER;
592     ELSIF p_attr_id = G_PAYMENT_LEVEL_CODE THEN
593         l_index := l_index + 1;
594         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_LEVEL_CODE;
595     ELSIF p_attr_id = G_COMMITMENT_APPLIED_AMOUNT THEN
596         l_index := l_index + 1;
597         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_COMMITMENT_APPLIED_AMOUNT;
598     ELSIF p_attr_id = G_COMMITMENT_INTERFACED_AMOUNT THEN
599         l_index := l_index + 1;
600         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_COMMITMENT_INTERFACED_AMOUNT;
601     ELSIF p_attr_id = G_CONTEXT THEN
602         l_index := l_index + 1;
603         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_CONTEXT;
604     ELSIF p_attr_id = G_PAYMENT_NUMBER THEN
605         l_index := l_index + 1;
606         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_NUMBER;
607     ELSIF p_attr_id = G_HEADER THEN
608         l_index := l_index + 1;
609         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_HEADER;
610     ELSIF p_attr_id = G_LINE THEN
611         l_index := l_index + 1;
612         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_LINE;
613     ELSIF p_attr_id = G_PAYMENT_AMOUNT THEN
614         l_index := l_index + 1;
615         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_AMOUNT;
616     ELSIF p_attr_id = G_PAYMENT_COLLECTION_EVENT THEN
617         l_index := l_index + 1;
618         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_COLLECTION_EVENT;
619     ELSIF p_attr_id = G_PAYMENT_TRX_ID THEN
620         l_index := l_index + 1;
621         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_TRX_ID;
622     ELSIF p_attr_id = G_PAYMENT_TYPE_CODE THEN
623         l_index := l_index + 1;
624         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_TYPE_CODE;
625     ELSIF p_attr_id = G_PAYMENT_SET_ID THEN
626         l_index := l_index + 1;
627         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PAYMENT_SET_ID;
628     ELSIF p_attr_id = G_PREPAID_AMOUNT THEN
629         l_index := l_index + 1;
630         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PREPAID_AMOUNT;
631     ELSIF p_attr_id = G_PROGRAM_APPLICATION_ID THEN
632         l_index := l_index + 1;
633         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PROGRAM_APPLICATION_ID;
634     ELSIF p_attr_id = G_PROGRAM_ID THEN
635         l_index := l_index + 1;
636         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PROGRAM_ID;
637     ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
638         l_index := l_index + 1;
639         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_PROGRAM_UPDATE_DATE;
640     ELSIF p_attr_id = G_RECEIPT_METHOD_ID THEN
641         l_index := l_index + 1;
642         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_RECEIPT_METHOD_ID;
643     ELSIF p_attr_id = G_REQUEST_ID THEN
644         l_index := l_index + 1;
645         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_REQUEST_ID;
646     ELSIF p_attr_id = G_TANGIBLE_ID THEN
647         l_index := l_index + 1;
648         l_src_attr_tbl(l_index) := OE_HEADER_PAYMENT_UTIL.G_TANGIBLE_ID;
649     END IF;
650 
651     If l_src_attr_tbl.COUNT <> 0 THEN
652 
653         OE_Dependencies.Mark_Dependent
654         (p_entity_code     => OE_GLOBALS.G_ENTITY_HEADER_PAYMENT,
655         p_source_attr_tbl => l_src_attr_tbl,
656         p_dep_attr_tbl    => l_dep_attr_tbl);
657 
658         FOR I IN 1..l_dep_attr_tbl.COUNT LOOP
659             IF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE1 THEN
660                 p_x_Header_PAYMENT_rec.ATTRIBUTE1 := FND_API.G_MISS_NUM;
661             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE2 THEN
662                 p_x_Header_PAYMENT_rec.ATTRIBUTE2 := FND_API.G_MISS_CHAR;
663             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE3 THEN
664                 p_x_Header_PAYMENT_rec.ATTRIBUTE3 := FND_API.G_MISS_CHAR;
665             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE4 THEN
666                 p_x_Header_PAYMENT_rec.ATTRIBUTE4 := FND_API.G_MISS_CHAR;
667             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE5 THEN
668                 p_x_Header_PAYMENT_rec.ATTRIBUTE5 := FND_API.G_MISS_CHAR;
669             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE6 THEN
670                 p_x_Header_PAYMENT_rec.ATTRIBUTE6 := FND_API.G_MISS_CHAR;
671             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE7 THEN
672                 p_x_Header_PAYMENT_rec.ATTRIBUTE7 := FND_API.G_MISS_CHAR;
673             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE8 THEN
674                 p_x_Header_PAYMENT_rec.ATTRIBUTE8 := FND_API.G_MISS_CHAR;
675             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE9 THEN
676                 p_x_Header_PAYMENT_rec.ATTRIBUTE9 := FND_API.G_MISS_CHAR;
677             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE10 THEN
678                 p_x_Header_PAYMENT_rec.ATTRIBUTE10 := FND_API.G_MISS_CHAR;
679             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE11 THEN
680                 p_x_Header_PAYMENT_rec.ATTRIBUTE11 := FND_API.G_MISS_CHAR;
681             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE12 THEN
682                 p_x_Header_PAYMENT_rec.ATTRIBUTE12 := FND_API.G_MISS_CHAR;
683             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE13 THEN
684                 p_x_Header_PAYMENT_rec.ATTRIBUTE13 := FND_API.G_MISS_CHAR;
685             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE14 THEN
686                 p_x_Header_PAYMENT_rec.ATTRIBUTE14 := FND_API.G_MISS_CHAR;
687             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_ATTRIBUTE15 THEN
688                 p_x_Header_PAYMENT_rec.ATTRIBUTE15 := FND_API.G_MISS_CHAR;
689             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_CONTEXT THEN
690                 p_x_Header_PAYMENT_rec.CONTEXT := FND_API.G_MISS_CHAR;
691             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_CREATED_BY THEN
692                 p_x_Header_PAYMENT_rec.CREATED_BY := FND_API.G_MISS_NUM;
693             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_CREATION_DATE THEN
694                 p_x_Header_PAYMENT_rec.CREATION_DATE := FND_API.G_MISS_DATE;
695             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_LAST_UPDATED_BY THEN
696                 p_x_Header_PAYMENT_rec.LAST_UPDATED_BY := FND_API.G_MISS_NUM;
697             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_LAST_UPDATE_DATE THEN
698                 p_x_Header_PAYMENT_rec.LAST_UPDATE_DATE := FND_API.G_MISS_DATE;
699             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_LAST_UPDATE_LOGIN THEN
700                 p_x_Header_PAYMENT_rec.LAST_UPDATE_LOGIN := FND_API.G_MISS_NUM;
701             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_CHECK_NUMBER THEN
702                 p_x_Header_PAYMENT_rec.CHECK_NUMBER := FND_API.G_MISS_CHAR;
703             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_APPROVAL_CODE THEN
704 		--R12 CC Encryption
705 		--Added the additional conditional before clearing credit
706 		--card attributes as the dependent attributes were cleared out
707 		--when the change attributes was called for multiple attributes
708 		--in a single call
709 		IF (OE_GLOBALS.Equal(p_x_Header_PAYMENT_rec.CREDIT_CARD_APPROVAL_CODE, p_old_Header_Payment_rec.CREDIT_CARD_APPROVAL_CODE)
710 	        AND (p_old_Header_Payment_rec.header_id IS NOT NULL OR
711 		p_x_Header_PAYMENT_rec.CREDIT_CARD_APPROVAL_CODE IS NOT NULL)
712 	        ) -- AND condition added to fix 3098878
713 	        THEN
714 			p_x_Header_PAYMENT_rec.CREDIT_CARD_APPROVAL_CODE := FND_API.G_MISS_CHAR;
715 		END IF;
716             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_APPROVAL_DATE THEN
717 		IF (OE_GLOBALS.Equal(p_x_Header_PAYMENT_rec.CREDIT_CARD_APPROVAL_DATE, p_old_Header_Payment_rec.CREDIT_CARD_APPROVAL_DATE)
718 	        AND (p_old_Header_Payment_rec.header_id IS NOT NULL OR
719 		p_x_Header_PAYMENT_rec.CREDIT_CARD_APPROVAL_DATE IS NOT NULL)
720 	        ) -- AND condition added to fix 3098878
721 	        THEN
722 			p_x_Header_PAYMENT_rec.CREDIT_CARD_APPROVAL_DATE := FND_API.G_MISS_DATE;
723 		END IF;
724             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_CODE THEN
725 		IF (OE_GLOBALS.Equal(p_x_Header_PAYMENT_rec.CREDIT_CARD_CODE, p_old_Header_Payment_rec.CREDIT_CARD_CODE)
726 	        AND (p_old_Header_Payment_rec.header_id IS NOT NULL OR
727 		p_x_Header_PAYMENT_rec.CREDIT_CARD_CODE IS NOT NULL)
728 	        ) -- AND condition added to fix 3098878
729 	        THEN
730 			p_x_Header_PAYMENT_rec.CREDIT_CARD_CODE := FND_API.G_MISS_CHAR;
731 		END IF;
732             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_EXPIRATION_DATE THEN
733 		IF (OE_GLOBALS.Equal(p_x_Header_PAYMENT_rec.CREDIT_CARD_EXPIRATION_DATE, p_old_Header_Payment_rec.CREDIT_CARD_EXPIRATION_DATE)
734 	        AND (p_old_Header_Payment_rec.header_id IS NOT NULL OR
735 		p_x_Header_PAYMENT_rec.CREDIT_CARD_EXPIRATION_DATE IS NOT NULL)
736 	        ) -- AND condition added to fix 3098878
737 	        THEN
738 			p_x_Header_PAYMENT_rec.CREDIT_CARD_EXPIRATION_DATE := FND_API.G_MISS_DATE;
739 		END IF;
740             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_HOLDER_NAME THEN
741 		IF (OE_GLOBALS.Equal(p_x_Header_PAYMENT_rec.credit_card_holder_name, p_old_Header_Payment_rec.credit_card_holder_name)
742 	        AND (p_old_Header_Payment_rec.header_id IS NOT NULL OR
743 		p_x_Header_PAYMENT_rec.credit_card_holder_name IS NOT NULL)
744 	        ) -- AND condition added to fix 3098878
745 	        THEN
746 			p_x_Header_PAYMENT_rec.CREDIT_CARD_HOLDER_NAME := FND_API.G_MISS_CHAR;
747 		END IF;
748             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_CREDIT_CARD_NUMBER THEN
749 		IF (OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.CREDIT_CARD_NUMBER,
750 		p_x_Header_PAYMENT_rec.CREDIT_CARD_NUMBER,p_old_instrument_id,p_x_instrument_id)
751 	        AND (p_old_Header_Payment_rec.header_id IS NOT NULL OR
752 		p_x_Header_PAYMENT_rec.CREDIT_CARD_NUMBER IS NOT NULL)
753 	        ) -- AND condition added to fix 3098878
754 	        THEN
755 			p_x_Header_PAYMENT_rec.CREDIT_CARD_NUMBER := FND_API.G_MISS_CHAR;
756 		END IF;
757 		--R12 CC Encryption
758             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_PAYMENT_LEVEL_CODE THEN
759                 p_x_Header_PAYMENT_rec.PAYMENT_LEVEL_CODE := FND_API.G_MISS_CHAR;
760             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_COMMITMENT_APPLIED_AMOUNT THEN
761                 p_x_Header_PAYMENT_rec.COMMITMENT_APPLIED_AMOUNT := FND_API.G_MISS_NUM;
762             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_COMMITMENT_INTERFACED_AMOUNT THEN
763                 p_x_Header_PAYMENT_rec.COMMITMENT_INTERFACED_AMOUNT := FND_API.G_MISS_NUM;
764             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_PAYMENT_NUMBER THEN
765                 p_x_Header_PAYMENT_rec.PAYMENT_NUMBER := FND_API.G_MISS_NUM;
766             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_HEADER THEN
767                 p_x_Header_PAYMENT_rec.HEADER_ID := FND_API.G_MISS_NUM;
768             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_LINE THEN
769                 p_x_Header_PAYMENT_rec.LINE_ID := FND_API.G_MISS_NUM;
770             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_PAYMENT_AMOUNT THEN
771                 p_x_Header_PAYMENT_rec.PAYMENT_AMOUNT := FND_API.G_MISS_NUM;
772             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_PAYMENT_COLLECTION_EVENT THEN
773                 p_x_Header_PAYMENT_rec.PAYMENT_COLLECTION_EVENT := FND_API.G_MISS_CHAR;
774             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_PAYMENT_TRX_ID THEN
775                 p_x_Header_PAYMENT_rec.PAYMENT_TRX_ID := FND_API.G_MISS_NUM;
776             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_PAYMENT_TYPE_CODE THEN
777                 p_x_Header_PAYMENT_rec.PAYMENT_TYPE_CODE := FND_API.G_MISS_CHAR;
778             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_PAYMENT_SET_ID THEN
779                 p_x_Header_PAYMENT_rec.PAYMENT_SET_ID := FND_API.G_MISS_NUM;
780             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_PREPAID_AMOUNT THEN
781                 p_x_Header_PAYMENT_rec.PREPAID_AMOUNT := FND_API.G_MISS_NUM;
782             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_PROGRAM_APPLICATION_ID THEN
783                 p_x_Header_PAYMENT_rec.PROGRAM_APPLICATION_ID := FND_API.G_MISS_NUM;
784             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_PROGRAM_ID THEN
785                 p_x_Header_PAYMENT_rec.PROGRAM_ID := FND_API.G_MISS_NUM;
786             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_PROGRAM_UPDATE_DATE THEN
787                 p_x_Header_PAYMENT_rec.PROGRAM_UPDATE_DATE := FND_API.G_MISS_DATE;
788             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_RECEIPT_METHOD_ID THEN
789                 p_x_Header_PAYMENT_rec.RECEIPT_METHOD_ID := FND_API.G_MISS_NUM;
790             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_REQUEST_ID THEN
791                 p_x_Header_PAYMENT_rec.REQUEST_ID := FND_API.G_MISS_NUM;
792             ELSIF l_dep_attr_tbl(I) = OE_HEADER_PAYMENT_UTIL.G_TANGIBLE_ID THEN
793                 p_x_Header_PAYMENT_rec.TANGIBLE_ID := FND_API.G_MISS_CHAR;
794     	    END IF;
795         END LOOP;
796     END IF;
797 END Clear_Dependent_Attr;
798 
799 PROCEDURE Clear_Dependent_Attr
800 (   p_attr_id                       IN  NUMBER := FND_API.G_MISS_NUM
801 ,   p_x_Header_Payment_rec   IN OUT NOCOPY OE_Order_PUB.Header_Payment_Rec_Type
802 ,   p_old_Header_Payment_rec        IN  OE_Order_PUB.Header_Payment_Rec_Type :=
803                                         OE_Order_PUB.G_MISS_HEADER_Payment_REC
804 )
805 IS
806 l_Header_Payment_rec		OE_AK_HEADER_PaymentS_V%ROWTYPE;
807 l_old_Header_Payment_rec		OE_AK_HEADER_PaymentS_V%ROWTYPE;
808 --
809 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
810 --
811 BEGIN
812 
813 	API_Rec_To_Rowtype_Rec(p_x_Header_Payment_rec, l_Header_Payment_rec);
814 	API_Rec_To_Rowtype_Rec(p_old_Header_Payment_rec, l_old_Header_Payment_rec);
815 	--R12 CC Encryption
816 	--Need to pass the instrument id for credit card comparison
817 	--as the card numbers are encrypted.
818 	Clear_Dependent_Attr
819 		(p_attr_id			=> p_attr_id
820 		,p_x_Header_Payment_rec 	=> l_Header_Payment_rec
821 		,p_old_Header_Payment_rec	=> l_old_Header_Payment_rec
822 		,p_old_instrument_id		=> p_old_Header_Payment_rec.cc_instrument_id  --R12 CC Encryption
823 		,p_x_instrument_id		=> p_x_Header_Payment_rec.cc_instrument_id
824 		);
825 
826 	Rowtype_Rec_To_API_Rec(l_Header_Payment_rec,p_x_Header_Payment_rec);
827 
828 END Clear_Dependent_Attr;
829 
830 --ER#7479609 start
831 Procedure Delete_PaymentType_Hold
832 (
833    p_header_id       IN   NUMBER
834 ,  p_payment_number  IN  NUMBER
835 ,  x_msg_count       OUT  NOCOPY NUMBER
836 ,  x_msg_data        OUT  NOCOPY VARCHAR2
837 ,  x_return_status   OUT  NOCOPY VARCHAR2
838 ) IS
839 
840 CURSOR order_paytype_hold IS
841 Select OH.Order_hold_id,NVL(OH.hold_release_id,0)
842 FROM OE_HOLD_SOURCES HS,OE_ORDER_HOLDS OH,OE_PAYMENTS OP
843 WHERE HS.hold_source_id=OH.hold_source_id
844   AND OH.header_id=OP.header_id
845   AND OP.payment_number=p_payment_number
846   AND ((HS.hold_entity_code= 'P' AND HS.hold_entity_id=OP.payment_type_code)
847       OR (HS.hold_entity_code2 = 'P' AND HS.hold_entity_id2=OP.payment_type_code))
848   AND OH.header_id=p_header_id
849   AND OH.line_id IS NULL
850   AND OP.line_id IS NULL;
851 
852 l_order_hold_id  OE_ORDER_HOLDS.ORDER_HOLD_ID%TYPE;
853 l_hold_release_id  OE_ORDER_HOLDS.HOLD_RELEASE_ID%TYPE;
854 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
855 
856 BEGIN
857   x_return_status := FND_API.G_RET_STS_SUCCESS;
858 
859   IF l_debug_level  > 0 THEN
860       oe_debug_pub.add(  'Entering Delete_PaymentType_Hold' , 3 ) ;
861   END IF;
862 
863     OPEN order_paytype_hold;
864 
865     LOOP
866       FETCH order_paytype_hold INTO l_order_hold_id,l_hold_release_id;
867       IF (order_paytype_hold%notfound) THEN
868         EXIT;
869       END IF;
870 
871       IF l_debug_level  > 0 THEN
872           oe_debug_pub.add(  'DELETING HEADER PAYMENT TYPE HOLD' ) ;
873       END IF;
874 
875       DELETE FROM OE_ORDER_HOLDS
876        WHERE order_hold_id = l_order_hold_id;
877 
878       DELETE FROM OE_HOLD_RELEASES
879        WHERE HOLD_RELEASE_ID = l_hold_release_id
880          AND ORDER_HOLD_ID   = l_order_hold_id;
881     END LOOP;
882 
883     CLOSE order_paytype_hold;
884 
885   IF l_debug_level  > 0 THEN
886       oe_debug_pub.add(  'Exiting Delete_PaymentType_Hold' , 3 ) ;
887   END IF;
888 
889 EXCEPTION
890     	WHEN FND_API.G_EXC_ERROR THEN
891     		IF (order_paytype_hold%isopen) THEN
892     			CLOSE order_paytype_hold;
893     		END IF;
894 
895         	x_return_status := FND_API.G_RET_STS_ERROR;
896         	FND_MSG_PUB.Count_And_Get
897 		(   p_count 	=>	x_msg_count
898 		,   p_data	=>	x_msg_data
899 	  	);
900     	WHEN OTHERS THEN
901     		IF (order_paytype_hold%isopen) THEN
902     			CLOSE order_paytype_hold;
903     		END IF;
904         	x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
905         	FND_MSG_PUB.Count_And_Get
906 		(   p_count 	=>	x_msg_count
907 		,   p_data	=>	x_msg_data
908 	  	);
909 
910 END Delete_PaymentType_Hold;
911 --ER#7479609 end
912 
913 
914 --  Procedure Apply_Attribute_Changes
915 
916 PROCEDURE Apply_Attribute_Changes
917 (   p_x_Header_Payment_rec            IN OUT NOCOPY OE_Order_PUB.Header_Payment_Rec_Type
918 ,   p_old_Header_Payment_rec        IN  OE_Order_PUB.Header_Payment_Rec_Type :=
919                                         OE_Order_PUB.G_MISS_HEADER_Payment_REC
920 )
921 IS
922 l_return_status                   Varchar2(10);
923 --
924 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
925 --
926 l_payments_update_flag VARCHAR2(1) := 'N';
927 --bug3507871
928 l_booked_flag VARCHAR2(1) :='N';
929 --bug3625027 start
930 l_cc_flag_old VARCHAR2(1);
931 l_cc_flag_new VARCHAR2(1);
932 --bug3625027 end
933 
934 --bug3781675 start
935 p_payment_type_code varchar2(30) := NULL;
936 p_payment_amount NUMBER := NULL;
937 p_check_number varchar2(50) := NULL;
938 p_credit_card_code varchar2(80) := NULL;
939 p_credit_card_holder_name varchar2(80) := NULL;
940 p_credit_card_number varchar2(80) := NULL;
941 p_credit_card_approval_code varchar2(80) := NULL;
942 p_credit_card_expiration_date DATE := NULL;
943 l_delete_payment_hold	VARCHAR2(1) := 'N';
944 l_delete_pmt_param1	VARCHAR2(30);
945 l_verify_payment_flag VARCHAR2(1):='N';   --CC Reversal ER#16014135
946 
947 -- replaced this cursor for performance change to join to base table instead of view
948 /*
949 cursor header_payment_cur is
950 select 	ooh.payment_type_code,
951        	ooh.payment_amount,
952        	ooh.check_number,
953        	ite.card_issuer_code,
954        	ite.card_holder_name,
955        	ite.card_number,
956        	ite.card_expirydate
957 from 	oe_order_headers_all ooh,
958      	oe_payments op,
959      	iby_trxn_extensions_v ite
960 where 	ooh.header_id = p_x_header_payment_rec.header_id
961 and	ooh.header_id = op.header_id
962 and	op.trxn_extension_id = ite.trxn_extension_id;
963 
964 --bug3781675 end
965 */
966 
967 cursor header_payment_cur is
968 select 	ooh.payment_type_code,
969        	ooh.payment_amount,
970        	ooh.check_number,
971        	c.card_issuer_code,
972        	c.chname,
973        	c.masked_cc_number,
974        	c.expirydate
975 from 	oe_order_headers_all ooh,
976      	oe_payments op,
977         iby_creditcard c,
978         iby_pmt_instr_uses_all u,
979         iby_fndcpt_tx_extensions x
980 where 	ooh.header_id = p_x_header_payment_rec.header_id
981 and	ooh.header_id = op.header_id
982 and	op.trxn_extension_id = x.trxn_extension_id
983 and     x.instr_assignment_id = u.instrument_payment_use_id(+)
984 and     u.instrument_id = c.instrid(+);
985 
986 BEGIN
987 
988     --  Load out record
989 
990     oe_debug_pub.add('Trxn_extension id ksurendr'||p_x_Header_Payment_rec.trxn_extension_id);
991     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute1,p_old_Header_Payment_rec.attribute1)
992     THEN
993         NULL;
994     END IF;
995 
996     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute2,p_old_Header_Payment_rec.attribute2)
997     THEN
998         NULL;
999     END IF;
1000 
1001     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute3,p_old_Header_Payment_rec.attribute3)
1002     THEN
1003         NULL;
1004     END IF;
1005 
1006     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute4,p_old_Header_Payment_rec.attribute4)
1007     THEN
1008         NULL;
1009     END IF;
1010 
1011     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute5,p_old_Header_Payment_rec.attribute5)
1012     THEN
1013         NULL;
1014     END IF;
1015 
1016     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute6,p_old_Header_Payment_rec.attribute6)
1017     THEN
1018         NULL;
1019     END IF;
1020 
1021     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute7,p_old_Header_Payment_rec.attribute7)
1022     THEN
1023         NULL;
1024     END IF;
1025 
1026     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute8,p_old_Header_Payment_rec.attribute8)
1027     THEN
1028         NULL;
1029     END IF;
1030 
1031     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute9,p_old_Header_Payment_rec.attribute9)
1032     THEN
1033         NULL;
1034     END IF;
1035 
1036     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute10,p_old_Header_Payment_rec.attribute10)
1037     THEN
1038         NULL;
1039     END IF;
1040 
1041     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute11,p_old_Header_Payment_rec.attribute11)
1042     THEN
1043         NULL;
1044     END IF;
1045 
1046     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute12,p_old_Header_Payment_rec.attribute12)
1047     THEN
1048         NULL;
1049     END IF;
1050 
1051     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute13,p_old_Header_Payment_rec.attribute13)
1052     THEN
1053         NULL;
1054     END IF;
1055 
1056     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute14,p_old_Header_Payment_rec.attribute14)
1057     THEN
1058         NULL;
1059     END IF;
1060 
1061     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.attribute15,p_old_Header_Payment_rec.attribute15)
1062     THEN
1063         NULL;
1064     END IF;
1065 
1066     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.context,p_old_Header_Payment_rec.context)
1067     THEN
1068         NULL;
1069     END IF;
1070 
1071     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.created_by,p_old_Header_Payment_rec.created_by)
1072     THEN
1073         NULL;
1074     END IF;
1075 
1076     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.creation_date,p_old_Header_Payment_rec.creation_date)
1077     THEN
1078         NULL;
1079     END IF;
1080 
1081     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.last_updated_by,p_old_Header_Payment_rec.last_updated_by)
1082     THEN
1083         NULL;
1084     END IF;
1085 
1086     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.last_update_date,p_old_Header_Payment_rec.last_update_date)
1087     THEN
1088         NULL;
1089     END IF;
1090 
1091     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.last_update_login,p_old_Header_Payment_rec.last_update_login)
1092     THEN
1093         NULL;
1094     END IF;
1095 
1096     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.check_number,p_old_Header_Payment_rec.check_number)
1097     THEN
1098         l_payments_update_flag := 'Y';
1099     END IF;
1100 
1101     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.credit_card_approval_code,p_old_Header_Payment_rec.credit_card_approval_code)
1102     THEN
1103         l_payments_update_flag := 'Y';
1104     END IF;
1105 
1106     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.credit_card_approval_date,p_old_Header_Payment_rec.credit_card_approval_date)
1107     THEN
1108         l_payments_update_flag := 'Y';
1109     END IF;
1110 
1111     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.credit_card_code,p_old_Header_Payment_rec.credit_card_code)
1112     THEN
1113         l_payments_update_flag := 'Y';
1114     END IF;
1115     --IF l_debug_level > 0 THEN
1116 	    --oe_debug_pub.add('Old Expiration date in apply attribute changes '||p_old_Header_Payment_rec.credit_card_expiration_date);
1117 	    --oe_debug_pub.add('New Expiration date'||p_x_Header_Payment_rec.credit_card_expiration_date);
1118     --END IF;
1119 
1120     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.credit_card_expiration_date,p_old_Header_Payment_rec.credit_card_expiration_date)
1121     THEN
1122         l_payments_update_flag := 'Y';
1123     END IF;
1124     --IF l_debug_level > 0 THEN
1125 	--oe_debug_pub.add('Old cc holder name'||p_old_Header_Payment_rec.credit_card_holder_name);
1126 	--oe_debug_pub.add('New cc holder name'||p_x_Header_Payment_rec.credit_card_holder_name);
1127     --END IF;
1128 
1129     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.credit_card_holder_name,p_old_Header_Payment_rec.credit_card_holder_name)
1130     THEN
1131         l_payments_update_flag := 'Y';
1132     END IF;
1133     --R12 CC Encryption
1134     --Since the credit card numbers are encrypted, passing both the credit card
1135     --numbers as well as instrument ids to determine if both the old and new
1136     --values point to the same credit card number.
1137 
1138     IF NOT OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
1139 	    p_x_Header_Payment_rec.credit_card_number,
1140 	    p_old_Header_Payment_rec.cc_instrument_id,
1141 	    p_x_Header_Payment_rec.cc_instrument_id)
1142     THEN
1143         IF l_debug_level > 0 THEN
1144 		oe_debug_pub.add('after is_same_credit_card ---> changed cc number');
1145 	END IF;
1146         l_payments_update_flag := 'Y';
1147 		--CC Reversal ER#16014135 start
1148 		IF (p_x_Header_Payment_rec.operation ='UPDATE'
1149 		AND OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_type_code,p_old_Header_Payment_rec.payment_type_code)) THEN
1150 		l_verify_payment_flag:='Y';
1151 		END IF;
1152 		--CC Reversal ER#16014135 end
1153 
1154 
1155     END IF;
1156 
1157     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_level_code,p_old_Header_Payment_rec.payment_level_code)
1158     THEN
1159        l_payments_update_flag := 'Y';
1160     END IF;
1161 
1162     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.commitment_applied_amount,p_old_Header_Payment_rec.commitment_applied_amount)
1163     THEN
1164         NULL;
1165 		--CC Reversal ER#16014135 start
1166 		l_verify_payment_flag:='Y';
1167 		IF l_debug_level > 0 THEN
1168 		oe_debug_pub.add('in commitment_applied_amount' );
1169 		END IF;
1170 		--CC Reversal ER#16014135 end
1171     END IF;
1172 
1173     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.commitment_interfaced_amount,p_old_Header_Payment_rec.commitment_interfaced_amount)
1174     THEN
1175         NULL;
1176 		--CC Reversal ER#16014135 start
1177 		l_verify_payment_flag:='Y';
1178 		IF l_debug_level > 0 THEN
1179 		oe_debug_pub.add('in commitment_interfaced_amount' );
1180 		END IF;
1181 		--CC Reversal ER#16014135 end
1182     END IF;
1183 
1184     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_number,p_old_Header_Payment_rec.payment_number)
1185     THEN
1186         NULL;
1187     END IF;
1188 
1189     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.header_id,p_old_Header_Payment_rec.header_id)
1190     THEN
1191         NULL;
1192     END IF;
1193 
1194     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.line_id,p_old_Header_Payment_rec.line_id)
1195     THEN
1196         NULL;
1197     END IF;
1198 
1199     --R12 CC Encryption
1200     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.trxn_extension_id,p_old_Header_Payment_rec.trxn_extension_id)
1201     THEN
1202         NULL;
1203 		--CC Reversal ER#16014135 start
1204 		l_verify_payment_flag:='Y';
1205 		IF l_debug_level > 0 THEN
1206 		oe_debug_pub.add('in trxn_extension_id' );
1207 		END IF;
1208 		--CC Reversal ER#16014135 end
1209     END IF;
1210 
1211     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.instrument_security_code,p_old_Header_Payment_rec.instrument_security_code)
1212     THEN
1213         NULL;
1214     END IF;
1215     --R12 CC Encryption
1216 
1217 
1218     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_amount,p_old_Header_Payment_rec.payment_amount)
1219     THEN
1220         l_payments_update_flag := 'Y';
1221 
1222 	--bug3507871 start
1223       IF OE_PrePayment_UTIL.IS_MULTIPLE_PAYMENTS_ENABLED = TRUE then
1224        BEGIN
1225 	  SELECT booked_flag INTO l_booked_flag
1226 	  FROM oe_order_headers_all
1227 	  WHERE header_id=p_x_header_Payment_rec.header_id;
1228 	IF (l_booked_flag = 'Y') THEN
1229 	 IF( l_debug_level > 0) THEN
1230              oe_debug_pub.add('pviprana: logging a new payment delayed request for making the order go on payment hold', 1);
1231 	 END IF;
1232 
1233 
1234          OE_delayed_requests_Pvt.log_request
1235 		(p_entity_code            => OE_GLOBALS.G_ENTITY_HEADER_PAYMENT,
1236 		p_entity_id              => p_x_Header_Payment_rec.header_id,
1237 		p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1238 		p_requesting_entity_id   => p_x_Header_Payment_rec.header_id,
1239 		p_request_type           => OE_GLOBALS.G_APPLY_PPP_HOLD,
1240 		x_return_status          => l_return_status);
1241 	END IF;
1242        EXCEPTION
1243 	  WHEN no_data_found THEN
1244 	     null;
1245 	  WHEN others THEN
1246 	     null;
1247        END;
1248 
1249      END IF;
1250       --bug3507871 end
1251     END IF;
1252 
1253     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_collection_event,p_old_Header_Payment_rec.payment_collection_event)
1254     THEN
1255         l_payments_update_flag := 'Y';
1256 
1257         -- if changing from credit card invoice payment to a prepayment
1258         -- or changing from prepayment to any invoice payment
1259         IF (
1260             (nvl(p_old_Header_Payment_rec.payment_collection_event, 'PREPAY')
1261              ='INVOICE' AND p_old_Header_Payment_rec.payment_type_code ='CREDIT_CARD'
1262             )
1263            OR
1264              nvl(p_old_Header_Payment_rec.payment_collection_event,'PREPAY')='PREPAY'
1265            )
1266            AND p_x_header_payment_rec.operation = 'UPDATE'
1267            THEN
1268 		     l_delete_payment_hold := 'Y';
1269          END IF;
1270 
1271         -- Set this value to N to ensure to not suppress the call to
1272         -- credit checking. Without doing this, Credit checking would not
1273         -- be called when: change the payment type code (which results in
1274         -- cc flag changing), press Save button, then change the payment
1275         -- collection event, and press Process Payment button.
1276         OE_Prepayment_PVT.g_process_pmt_req_logged := 'N';
1277     END IF;
1278 
1279 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.defer_payment_processing_flag,p_old_Header_Payment_rec.defer_payment_processing_flag)
1280     THEN
1281         NULL;
1282     END IF;
1283 
1284     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_trx_id,p_old_Header_Payment_rec.payment_trx_id)
1285     THEN
1286           NULL;
1287     END IF;
1288 
1289     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_type_code,p_old_Header_Payment_rec.payment_type_code)
1290     THEN
1291         l_payments_update_flag := 'Y';
1292 
1293         --if changing from credit card invoice payment to any other invoice payment.
1294         IF     nvl(p_old_Header_Payment_rec.payment_collection_event, 'PREPAY')
1295                    = 'INVOICE'
1296            AND nvl(p_x_Header_Payment_rec.payment_collection_event, 'PREPAY')
1297                    = 'INVOICE'
1298            AND p_old_Header_Payment_rec.payment_type_code = 'CREDIT_CARD'
1299            AND p_x_header_payment_rec.operation = 'UPDATE'
1300            THEN
1301            l_delete_payment_hold := 'Y';
1302          END If;
1303 
1304 
1305 	--bug3625027 start
1306 	BEGIN
1307 	 IF nvl(p_x_Header_Payment_rec.payment_collection_event,'PREPAY') = 'INVOICE' THEN
1308 	   SELECT booked_flag INTO l_booked_flag
1309 	   FROM oe_order_headers_all
1310 	   WHERE header_id=p_x_header_Payment_rec.header_id;
1311 
1312 	   IF p_old_header_payment_rec.payment_type_code IS NOT NULL THEN
1313 	      SELECT credit_check_flag INTO l_cc_flag_old
1314               FROM oe_payment_types_vl
1315 	      WHERE payment_type_code=p_old_Header_Payment_rec.payment_type_code;
1316 	   END IF;
1317 
1318 	   SELECT credit_check_flag INTO l_cc_flag_new
1319 	   FROM oe_payment_types_vl
1320 	   WHERE payment_type_code=p_x_Header_Payment_rec.payment_type_code;
1321 
1322 	   IF l_booked_flag = 'Y' AND
1323 	      NOT OE_GLOBALS.Equal(l_cc_flag_old,l_cc_flag_new)
1324 --              AND nvl(l_cc_flag_new, 'N') = 'Y'
1325               THEN
1326 
1327 	        IF( l_debug_level > 0) THEN
1328 
1329 		      oe_debug_pub.add('pviprana: logging a new payment delayed request for processing the payment', 1);
1330 		END IF;
1331 
1332 		OE_delayed_requests_Pvt.log_request
1333 		   (p_entity_code            => OE_GLOBALS.G_ENTITY_HEADER_PAYMENT,
1334 		    p_entity_id              => p_x_Header_Payment_rec.header_id,
1335 		    p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1336 		    p_requesting_entity_id   => p_x_Header_Payment_rec.header_id,
1337 		    p_request_type           => OE_GLOBALS.G_PROCESS_PAYMENT,
1338 		    x_return_status          => l_return_status);
1339 
1340                     -- set the global value, to be used in process_payment
1341                     -- API to not call credit checking redundantly.
1342                     OE_Prepayment_PVT.g_process_pmt_req_logged := 'Y';
1343 	  END IF;
1344 	END IF;
1345        EXCEPTION
1346 	  WHEN no_data_found THEN
1347 	     null;
1348 	  WHEN others THEN
1349 	     null;
1350        END;
1351        --bug3625027 end
1352 
1353     END IF;
1354 
1355     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_set_id,p_old_Header_Payment_rec.payment_set_id)
1356     THEN
1357         NULL;
1358     END IF;
1359 
1360     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.prepaid_amount,p_old_Header_Payment_rec.prepaid_amount)
1361     THEN
1362         NULL;
1363     END IF;
1364 
1365     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.program_application_id,p_old_Header_Payment_rec.program_application_id)
1366     THEN
1367         NULL;
1368     END IF;
1369 
1370     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.program_id,p_old_Header_Payment_rec.program_id)
1371     THEN
1372         NULL;
1373     END IF;
1374 
1375     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.program_update_date,p_old_Header_Payment_rec.program_update_date)
1376     THEN
1377         NULL;
1378     END IF;
1379 
1380     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.receipt_method_id,p_old_Header_Payment_rec.receipt_method_id)
1381     THEN
1382         NULL;
1383     END IF;
1384 
1385     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.request_id,p_old_Header_Payment_rec.request_id)
1386     THEN
1387         NULL;
1388     END IF;
1389 
1390     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.tangible_id,p_old_Header_Payment_rec.tangible_id)
1391     THEN
1392         NULL;
1393     END IF;
1394 
1395     --log delayed requests based on certain attribute changes
1396 
1397     IF l_payments_update_flag = 'Y' and
1398        OE_PrePayment_UTIL.IS_MULTIPLE_PAYMENTS_ENABLED = TRUE then
1399 
1400 
1401        --bug3781675 start
1402        /* get header payment info */
1403        open header_payment_cur;
1404        fetch header_payment_cur into p_payment_type_code,
1405                                      p_payment_amount,
1406                                      p_check_number,
1407                                      p_credit_card_code,
1408                                      p_credit_card_holder_name,
1409                                      p_credit_card_number,
1410                                      p_credit_card_expiration_date;
1411                                      -- p_credit_card_approval_code;
1412 
1413        close header_payment_cur;
1414        /*
1415        oe_debug_pub.add('p_x_header_payment_rec.payment_collection_event ' || p_x_header_payment_rec.payment_collection_event);
1416        oe_debug_pub.add('p_old_Header_Payment_rec.payment_collection_event ' || p_old_Header_Payment_rec.payment_collection_event);
1417 oe_debug_pub.add('p_payment_type_code ' || p_payment_type_code);
1418 oe_debug_pub.add('p_x_header_payment_rec.payment_type_code ' || p_x_header_payment_rec.payment_type_code);
1419 oe_debug_pub.add('p_payment_amount ' || p_payment_amount);
1420 oe_debug_pub.add('p_x_header_payment_rec.payment_amount ' || p_x_header_payment_rec.payment_amount);
1421 oe_debug_pub.add('p_check_number ' || p_check_number);
1422 oe_debug_pub.add('p_x_header_payment_rec.check_number ' || p_x_header_payment_rec.check_number);
1423 oe_debug_pub.add('p_credit_card_code ' || p_credit_card_code);
1424 oe_debug_pub.add('p_x_header_payment_rec.credit_card_code ' || p_x_header_payment_rec.credit_card_code);
1425 oe_debug_pub.add('p_credit_card_holder_name ' || p_credit_card_holder_name);
1426 oe_debug_pub.add('p_x_header_payment_rec.credit_card_holder_name ' || p_x_header_payment_rec.credit_card_holder_name);
1427 oe_debug_pub.add('p_credit_card_number ' || p_credit_card_number);
1428 oe_debug_pub.add('p_x_header_payment_rec.credit_card_number ' || p_x_header_payment_rec.credit_card_number);
1429 oe_debug_pub.add('p_credit_card_expiration_date ' || p_credit_card_expiration_date);
1430 oe_debug_pub.add('p_x_header_payment_rec.credit_card_expiration_date ' || p_x_header_payment_rec.credit_card_expiration_date);
1431 
1432 oe_debug_pub.add('p_x_header_payment_rec.payment_collection_event ' || p_x_header_payment_rec.payment_collection_event);
1433 */
1434        if p_x_header_payment_rec.payment_type_code IS NOT NULL and
1435 	  (((nvl(p_payment_type_code, '-1') <> nvl(p_x_header_payment_rec.payment_type_code, '-1') or
1436         --  nvl(p_payment_amount, -1) <> nvl(p_x_header_payment_rec.payment_amount,-1) or
1437           nvl(p_check_number, '-1') <> nvl(p_x_header_payment_rec.check_number, '-1') or            nvl(p_credit_card_code, '-1') <> nvl(p_x_header_payment_rec.credit_card_code, '-1')   or
1438 	  nvl(p_credit_card_holder_name, '-1') <> nvl(p_x_header_payment_rec.credit_card_holder_name, '-1') or
1439           NOT OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
1440                             p_x_Header_Payment_rec.credit_card_number,
1441 			    p_old_Header_Payment_rec.cc_instrument_id,
1442 			    p_x_Header_Payment_rec.cc_instrument_id) or
1443           nvl(p_credit_card_expiration_date,sysdate) <> nvl(p_x_header_payment_rec.credit_card_expiration_date, nvl((p_credit_card_expiration_date - 1),sysdate))) and
1444           nvl(p_x_header_payment_rec.payment_collection_event,'PREPAY') = 'INVOICE') or
1445 	   (nvl(p_x_header_payment_rec.payment_collection_event,'PREPAY') <> nvl(p_old_Header_Payment_rec.payment_collection_event,'PREPAY') and
1446 	    p_x_header_payment_rec.operation = 'UPDATE')) then
1447 	  --bug3781675 end
1448 
1449 
1450 	         oe_debug_pub.add('logging synch from UHPMB.pls payment delayed request', 1);
1451 
1452 		 OE_delayed_requests_Pvt.log_request
1453 		    (p_entity_code            => OE_GLOBALS.G_ENTITY_HEADER_PAYMENT,
1454 		     p_entity_id              => p_x_Header_Payment_rec.header_id,
1455 		     p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1456 		     p_requesting_entity_id   => p_x_Header_Payment_rec.header_id,
1457 		     p_request_type           => OE_GLOBALS.G_UPDATE_HDR_PAYMENT,
1458 		     p_param1                 => 'UPDATE_HEADER',
1459 		     x_return_status          => l_return_status);
1460 
1461 
1462         end if; --bug3781675
1463 
1464      END IF;
1465 
1466      IF l_delete_payment_hold = 'Y' THEN
1467         oe_debug_pub.add('logging request to release payment related holds', 3);
1468         IF nvl(p_old_Header_Payment_rec.payment_collection_event,'PREPAY')
1469            = 'PREPAY' THEN
1470            l_delete_pmt_param1 := 'PREPAYMENT';
1471         ELSE
1472            l_delete_pmt_param1 := 'VERIFY_PAYMENT';
1473         END IF;
1474 
1475         OE_delayed_requests_Pvt.log_request
1476 		    (p_entity_code            => OE_GLOBALS.G_ENTITY_HEADER_PAYMENT,
1477 		     p_entity_id              => p_x_Header_Payment_rec.header_id,
1478 		     p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1479 		     p_requesting_entity_id   => p_x_Header_Payment_rec.header_id,
1480 		     p_request_type           => OE_GLOBALS.G_DELETE_PAYMENT_HOLD,
1481 		     p_param1                 => l_delete_pmt_param1,
1482 		     x_return_status          => l_return_status);
1483       END IF;
1484 
1485 --ER#7479609 start
1486 --ER#7479609 start
1487     IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_type_code,p_old_Header_Payment_rec.payment_type_code)
1488     THEN
1489 		oe_debug_pub.add('logging Delayed request for evaluation of payments hold', 1);
1490 
1491                 OE_delayed_requests_Pvt.log_request
1492                  (p_entity_code            => OE_GLOBALS.G_ENTITY_HEADER_PAYMENT,
1493                   p_entity_id              => p_x_Header_Payment_rec.header_id,
1494                   p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1495                   p_requesting_entity_id   => p_x_Header_Payment_rec.header_id,
1496                   p_request_type           => OE_GLOBALS.G_EVAL_HOLD_SOURCE,
1497                   p_request_unique_key1    => 'PAYMENT_TYPE',
1498                   p_param1                 => 'P',
1499                   p_param2                 => p_x_Header_Payment_rec.payment_type_code,
1500                   x_return_status          => l_return_status);
1501     END IF;
1502 --ER#7479609 end
1503 			--CC Reversal ER#16014135 start
1504 			IF OE_VERIFY_PAYMENT_PUB.Get_CC_Rev_Reauth_Code(p_x_Header_Payment_rec.header_id) IS NOT NULL
1505 				AND l_verify_payment_flag='Y' THEN
1506                 IF l_debug_level  > 0 THEN
1507                   oe_debug_pub.ADD('OEXUHPMB: Logging delayed request for Verify Payment CC Reversal',5);
1508                 END IF;
1509 	           oe_verify_payment_pub.G_credit_check_flag := 'N' ;
1510                 OE_delayed_requests_Pvt.log_request
1511                 (p_entity_code            => OE_GLOBALS.G_ENTITY_ALL,
1512                  p_entity_id              => p_x_Header_Payment_rec.header_id,
1513                  p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1514                  p_requesting_entity_id   => p_x_Header_Payment_rec.header_id,
1515                  p_request_type           => OE_GLOBALS.G_VERIFY_PAYMENT,
1516                  x_return_status          => l_return_status);
1517 	        END IF;
1518 			--CC Reversal ER#16014135 end
1519 
1520 END Apply_Attribute_Changes;
1521 
1522 --  Procedure Complete_Record
1523 
1524 PROCEDURE Complete_Record
1525 (   p_x_Header_Payment_rec     IN OUT NOCOPY OE_Order_PUB.Header_Payment_Rec_Type
1526 ,   p_old_Header_Payment_rec        IN  OE_Order_PUB.Header_Payment_Rec_Type
1527 )
1528 IS
1529 --
1530 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1531 --
1532 BEGIN
1533 
1534     IF p_x_Header_Payment_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1535         p_x_Header_Payment_rec.attribute1 := p_old_Header_Payment_rec.attribute1;
1536     END IF;
1537 
1538     IF p_x_Header_Payment_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1539         p_x_Header_Payment_rec.attribute2 := p_old_Header_Payment_rec.attribute2;
1540     END IF;
1541 
1542     IF p_x_Header_Payment_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1543         p_x_Header_Payment_rec.attribute3 := p_old_Header_Payment_rec.attribute3;
1544     END IF;
1545 
1546     IF p_x_Header_Payment_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1547         p_x_Header_Payment_rec.attribute4 := p_old_Header_Payment_rec.attribute4;
1548     END IF;
1549 
1550     IF p_x_Header_Payment_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1551         p_x_Header_Payment_rec.attribute5 := p_old_Header_Payment_rec.attribute5;
1552     END IF;
1553 
1554     IF p_x_Header_Payment_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1555         p_x_Header_Payment_rec.attribute6 := p_old_Header_Payment_rec.attribute6;
1556     END IF;
1557 
1558     IF p_x_Header_Payment_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1559         p_x_Header_Payment_rec.attribute7 := p_old_Header_Payment_rec.attribute7;
1560     END IF;
1561 
1562     IF p_x_Header_Payment_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1563         p_x_Header_Payment_rec.attribute8 := p_old_Header_Payment_rec.attribute8;
1564     END IF;
1565 
1566     IF p_x_Header_Payment_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1567         p_x_Header_Payment_rec.attribute9 := p_old_Header_Payment_rec.attribute9;
1568     END IF;
1569 
1570     IF p_x_Header_Payment_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1571         p_x_Header_Payment_rec.attribute10 := p_old_Header_Payment_rec.attribute10;
1572     END IF;
1573 
1574     IF p_x_Header_Payment_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1575         p_x_Header_Payment_rec.attribute11 := p_old_Header_Payment_rec.attribute11;
1576     END IF;
1577 
1578     IF p_x_Header_Payment_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1579         p_x_Header_Payment_rec.attribute12 := p_old_Header_Payment_rec.attribute12;
1580     END IF;
1581 
1582     IF p_x_Header_Payment_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1583         p_x_Header_Payment_rec.attribute13 := p_old_Header_Payment_rec.attribute13;
1584     END IF;
1585 
1586     IF p_x_Header_Payment_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1587         p_x_Header_Payment_rec.attribute14 := p_old_Header_Payment_rec.attribute14;
1588     END IF;
1589 
1590     IF p_x_Header_Payment_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1591         p_x_Header_Payment_rec.attribute15 := p_old_Header_Payment_rec.attribute15;
1592     END IF;
1593 
1594     IF p_x_Header_Payment_rec.context = FND_API.G_MISS_CHAR THEN
1595         p_x_Header_Payment_rec.context := p_old_Header_Payment_rec.context;
1596     END IF;
1597 
1598     IF p_x_Header_Payment_rec.created_by = FND_API.G_MISS_NUM THEN
1599         p_x_Header_Payment_rec.created_by := p_old_Header_Payment_rec.created_by;
1600     END IF;
1601 
1602     IF p_x_Header_Payment_rec.creation_date = FND_API.G_MISS_DATE THEN
1603         p_x_Header_Payment_rec.creation_date := p_old_Header_Payment_rec.creation_date;
1604     END IF;
1605 
1606     IF p_x_Header_Payment_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1607         p_x_Header_Payment_rec.last_updated_by := p_old_Header_Payment_rec.last_updated_by;
1608     END IF;
1609 
1610     IF p_x_Header_Payment_rec.last_update_date = FND_API.G_MISS_DATE THEN
1611         p_x_Header_Payment_rec.last_update_date := p_old_Header_Payment_rec.last_update_date;
1612     END IF;
1613 
1614     IF p_x_Header_Payment_rec.last_update_login = FND_API.G_MISS_NUM THEN
1615         p_x_Header_Payment_rec.last_update_login := p_old_Header_Payment_rec.last_update_login;
1616     END IF;
1617 
1618     IF p_x_Header_Payment_rec.check_number = FND_API.G_MISS_CHAR THEN
1619         p_x_Header_Payment_rec.check_number := p_old_Header_Payment_rec.check_number;
1620     END IF;
1621 
1622     IF p_x_Header_Payment_rec.credit_card_approval_code = FND_API.G_MISS_CHAR THEN
1623         p_x_Header_Payment_rec.credit_card_approval_code := p_old_Header_Payment_rec.credit_card_approval_code;
1624     END IF;
1625 
1626     IF p_x_Header_Payment_rec.credit_card_approval_date = FND_API.G_MISS_DATE THEN
1627         p_x_Header_Payment_rec.credit_card_approval_date := p_old_Header_Payment_rec.credit_card_approval_date;
1628     END IF;
1629 
1630     IF p_x_Header_Payment_rec.credit_card_code = FND_API.G_MISS_CHAR THEN
1631         p_x_Header_Payment_rec.credit_card_code := p_old_Header_Payment_rec.credit_card_code;
1632     END IF;
1633 
1634     IF p_x_Header_Payment_rec.credit_card_expiration_date = FND_API.G_MISS_DATE THEN
1635         p_x_Header_Payment_rec.credit_card_expiration_date := p_old_Header_Payment_rec.credit_card_expiration_date;
1636     END IF;
1637 
1638     IF p_x_Header_Payment_rec.credit_card_holder_name = FND_API.G_MISS_CHAR THEN
1639         p_x_Header_Payment_rec.credit_card_holder_name := p_old_Header_Payment_rec.credit_card_holder_name;
1640     END IF;
1641 
1642     IF p_x_Header_Payment_rec.credit_card_number = FND_API.G_MISS_CHAR THEN
1643         p_x_Header_Payment_rec.credit_card_number := p_old_Header_Payment_rec.credit_card_number;
1644     END IF;
1645 
1646     IF p_x_Header_Payment_rec.payment_level_code = FND_API.G_MISS_CHAR THEN
1647         p_x_Header_Payment_rec.payment_level_code := p_old_Header_Payment_rec.payment_level_code;
1648     END IF;
1649 
1650     IF p_x_Header_Payment_rec.commitment_applied_amount = FND_API.G_MISS_NUM THEN
1651         p_x_Header_Payment_rec.commitment_applied_amount := p_old_Header_Payment_rec.commitment_applied_amount;
1652     END IF;
1653 
1654     IF p_x_Header_Payment_rec.commitment_interfaced_amount = FND_API.G_MISS_NUM THEN
1655         p_x_Header_Payment_rec.commitment_interfaced_amount := p_old_Header_Payment_rec.commitment_interfaced_amount;
1656     END IF;
1657 
1658     IF p_x_Header_Payment_rec.payment_number = FND_API.G_MISS_NUM THEN
1659         p_x_Header_Payment_rec.payment_number := p_old_Header_Payment_rec.payment_number;
1660     END IF;
1661 
1662     IF p_x_Header_Payment_rec.header_id = FND_API.G_MISS_NUM THEN
1663         p_x_Header_Payment_rec.header_id := p_old_Header_Payment_rec.header_id;
1664     END IF;
1665 
1666     IF p_x_Header_Payment_rec.line_id = FND_API.G_MISS_NUM THEN
1667         p_x_Header_Payment_rec.line_id := p_old_Header_Payment_rec.line_id;
1668     END IF;
1669 
1670     IF p_x_Header_Payment_rec.payment_amount = FND_API.G_MISS_NUM THEN
1671         p_x_Header_Payment_rec.payment_amount := p_old_Header_Payment_rec.payment_amount;
1672     END IF;
1673 
1674     -- Added for bug 8478559
1675     IF p_x_Header_Payment_rec.payment_percentage = FND_API.G_MISS_NUM THEN
1676         p_x_Header_Payment_rec.payment_percentage := p_old_Header_Payment_rec.payment_percentage;
1677     END IF;
1678     -- End of bug 8478559
1679 
1680     IF p_x_Header_Payment_rec.payment_collection_event = FND_API.G_MISS_CHAR THEN
1681         p_x_Header_Payment_rec.payment_collection_event := p_old_Header_Payment_rec.payment_collection_event;
1682     END IF;
1683 
1684     IF p_x_Header_Payment_rec.defer_payment_processing_flag = FND_API.G_MISS_CHAR THEN
1685         p_x_Header_Payment_rec.defer_payment_processing_flag := p_old_Header_Payment_rec.defer_payment_processing_flag;
1686     END IF;
1687 
1688     IF p_x_Header_Payment_rec.payment_trx_id = FND_API.G_MISS_NUM THEN
1689         p_x_Header_Payment_rec.payment_trx_id := p_old_Header_Payment_rec.payment_trx_id;
1690     END IF;
1691 
1692     IF p_x_Header_Payment_rec.payment_type_code = FND_API.G_MISS_CHAR THEN
1693         p_x_Header_Payment_rec.payment_type_code := p_old_Header_Payment_rec.payment_type_code;
1694     END IF;
1695 
1696     IF p_x_Header_Payment_rec.payment_set_id = FND_API.G_MISS_NUM THEN
1697         p_x_Header_Payment_rec.payment_set_id := p_old_Header_Payment_rec.payment_set_id;
1698     END IF;
1699 
1700     IF p_x_Header_Payment_rec.prepaid_amount = FND_API.G_MISS_NUM THEN
1701         p_x_Header_Payment_rec.prepaid_amount := p_old_Header_Payment_rec.prepaid_amount;
1702     END IF;
1703 
1704     IF p_x_Header_Payment_rec.program_application_id = FND_API.G_MISS_NUM THEN
1705         p_x_Header_Payment_rec.program_application_id := p_old_Header_Payment_rec.program_application_id;
1706     END IF;
1707 
1708     IF p_x_Header_Payment_rec.program_id = FND_API.G_MISS_NUM THEN
1709         p_x_Header_Payment_rec.program_id := p_old_Header_Payment_rec.program_id;
1710     END IF;
1711 
1712     IF p_x_Header_Payment_rec.program_update_date = FND_API.G_MISS_DATE THEN
1713         p_x_Header_Payment_rec.program_update_date := p_old_Header_Payment_rec.program_update_date;
1714     END IF;
1715 
1716     IF p_x_Header_Payment_rec.receipt_method_id = FND_API.G_MISS_NUM THEN
1717         p_x_Header_Payment_rec.receipt_method_id := p_old_Header_Payment_rec.receipt_method_id;
1718     END IF;
1719 
1720     IF p_x_Header_Payment_rec.request_id = FND_API.G_MISS_NUM THEN
1721         p_x_Header_Payment_rec.request_id := p_old_Header_Payment_rec.request_id;
1722     END IF;
1723 
1724     IF p_x_Header_Payment_rec.tangible_id = FND_API.G_MISS_CHAR THEN
1725         p_x_Header_Payment_rec.tangible_id := p_old_Header_Payment_rec.tangible_id;
1726     END IF;
1727 
1728     IF p_x_Header_Payment_rec.trxn_extension_id = FND_API.G_MISS_NUM THEN
1729         p_x_Header_Payment_rec.trxn_extension_id := p_old_Header_Payment_rec.trxn_extension_id;
1730     END IF;
1731 
1732     --R12 CC Encryption
1733     IF p_x_Header_Payment_rec.trxn_extension_id = FND_API.G_MISS_NUM THEN
1734 	p_x_Header_Payment_rec.trxn_extension_id := p_old_Header_Payment_rec.trxn_extension_id;
1735     END IF;
1736 
1737     IF p_x_Header_Payment_rec.instrument_security_code = FND_API.G_MISS_CHAR THEN
1738 	p_x_Header_Payment_rec.instrument_security_code := p_old_Header_Payment_rec.instrument_security_code;
1739     END IF;
1740     --R12 CC Encryption
1741 
1742    --8219019 start
1743 
1744     IF p_x_Header_Payment_rec.CC_INSTRUMENT_ID = FND_API.G_MISS_NUM THEN
1745 	    p_x_Header_Payment_rec.CC_INSTRUMENT_ID := p_old_Header_Payment_rec.CC_INSTRUMENT_ID;
1746     END IF;
1747 
1748     IF p_x_Header_Payment_rec.CC_INSTRUMENT_ASSIGNMENT_ID = FND_API.G_MISS_NUM THEN
1749 	    p_x_Header_Payment_rec.CC_INSTRUMENT_ASSIGNMENT_ID := p_old_Header_Payment_rec.CC_INSTRUMENT_ASSIGNMENT_ID;
1750     END IF;
1751 
1752     --8219019 end
1753 
1754 END Complete_Record;
1755 
1756 --  Procedure Convert_Miss_To_Null
1757 
1758 PROCEDURE Convert_Miss_To_Null
1759 (   p_x_Header_Payment_rec  IN OUT NOCOPY  OE_Order_PUB.Header_Payment_Rec_Type
1760 )
1761 IS
1762 
1763 --
1764 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1765 --
1766 BEGIN
1767 
1768     IF p_x_Header_Payment_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1769         p_x_Header_Payment_rec.attribute1 := NULL;
1770     END IF;
1771 
1772     IF p_x_Header_Payment_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1773         p_x_Header_Payment_rec.attribute2 := NULL;
1774     END IF;
1775 
1776     IF p_x_Header_Payment_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1777         p_x_Header_Payment_rec.attribute3 := NULL;
1778     END IF;
1779 
1780     IF p_x_Header_Payment_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1781         p_x_Header_Payment_rec.attribute4 := NULL;
1782     END IF;
1783 
1784     IF p_x_Header_Payment_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1785         p_x_Header_Payment_rec.attribute5 := NULL;
1786     END IF;
1787 
1788     IF p_x_Header_Payment_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1789         p_x_Header_Payment_rec.attribute6 := NULL;
1790     END IF;
1791 
1792     IF p_x_Header_Payment_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1793         p_x_Header_Payment_rec.attribute7 := NULL;
1794     END IF;
1795 
1796     IF p_x_Header_Payment_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1797         p_x_Header_Payment_rec.attribute8 := NULL;
1798     END IF;
1799 
1800     IF p_x_Header_Payment_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1801         p_x_Header_Payment_rec.attribute9 := NULL;
1802     END IF;
1803 
1804     IF p_x_Header_Payment_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1805         p_x_Header_Payment_rec.attribute10 := NULL;
1806     END IF;
1807 
1808     IF p_x_Header_Payment_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1809         p_x_Header_Payment_rec.attribute11 := NULL;
1810     END IF;
1811 
1812     IF p_x_Header_Payment_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1813         p_x_Header_Payment_rec.attribute12 := NULL;
1814     END IF;
1815 
1816     IF p_x_Header_Payment_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1817         p_x_Header_Payment_rec.attribute13 := NULL;
1818     END IF;
1819 
1820     IF p_x_Header_Payment_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1821         p_x_Header_Payment_rec.attribute14 := NULL;
1822     END IF;
1823 
1824     IF p_x_Header_Payment_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1825         p_x_Header_Payment_rec.attribute15 := NULL;
1826     END IF;
1827 
1828     IF p_x_Header_Payment_rec.context = FND_API.G_MISS_CHAR THEN
1829         p_x_Header_Payment_rec.context := NULL;
1830     END IF;
1831 
1832     IF p_x_Header_Payment_rec.created_by = FND_API.G_MISS_NUM THEN
1833         p_x_Header_Payment_rec.created_by := NULL;
1834     END IF;
1835 
1836     IF p_x_Header_Payment_rec.creation_date = FND_API.G_MISS_DATE THEN
1837         p_x_Header_Payment_rec.creation_date := NULL;
1838     END IF;
1839 
1840     IF p_x_Header_Payment_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1841         p_x_Header_Payment_rec.last_updated_by := NULL;
1842     END IF;
1843 
1844     IF p_x_Header_Payment_rec.last_update_date = FND_API.G_MISS_DATE THEN
1845         p_x_Header_Payment_rec.last_update_date := NULL;
1846     END IF;
1847 
1848     IF p_x_Header_Payment_rec.last_update_login = FND_API.G_MISS_NUM THEN
1849         p_x_Header_Payment_rec.last_update_login := NULL;
1850     END IF;
1851 
1852     IF p_x_Header_Payment_rec.check_number = FND_API.G_MISS_CHAR THEN
1853         p_x_Header_Payment_rec.check_number := NULL;
1854     END IF;
1855 
1856     IF p_x_Header_Payment_rec.credit_card_approval_code = FND_API.G_MISS_CHAR THEN
1857         p_x_Header_Payment_rec.credit_card_approval_code := NULL;
1858     END IF;
1859 
1860     IF p_x_Header_Payment_rec.credit_card_approval_date = FND_API.G_MISS_DATE THEN
1861         p_x_Header_Payment_rec.credit_card_approval_date := NULL;
1862     END IF;
1863 
1864     IF p_x_Header_Payment_rec.credit_card_code = FND_API.G_MISS_CHAR THEN
1865         p_x_Header_Payment_rec.credit_card_code := NULL;
1866     END IF;
1867 
1868     IF p_x_Header_Payment_rec.credit_card_expiration_date = FND_API.G_MISS_DATE THEN
1869         p_x_Header_Payment_rec.credit_card_expiration_date := NULL;
1870     END IF;
1871 
1872     IF p_x_Header_Payment_rec.credit_card_holder_name = FND_API.G_MISS_CHAR THEN
1873         p_x_Header_Payment_rec.credit_card_holder_name := NULL;
1874     END IF;
1875 
1876     IF p_x_Header_Payment_rec.credit_card_number = FND_API.G_MISS_CHAR THEN
1877         p_x_Header_Payment_rec.credit_card_number := NULL;
1878     END IF;
1879 
1880     IF p_x_Header_Payment_rec.payment_level_code = FND_API.G_MISS_CHAR THEN
1881         p_x_Header_Payment_rec.payment_level_code := NULL;
1882     END IF;
1883 
1884     IF p_x_Header_Payment_rec.commitment_applied_amount = FND_API.G_MISS_NUM THEN
1885         p_x_Header_Payment_rec.commitment_applied_amount := NULL;
1886     END IF;
1887 
1888     IF p_x_Header_Payment_rec.commitment_interfaced_amount = FND_API.G_MISS_NUM THEN
1889         p_x_Header_Payment_rec.commitment_interfaced_amount := NULL;
1890     END IF;
1891 
1892     IF p_x_Header_Payment_rec.payment_number = FND_API.G_MISS_NUM THEN
1893         p_x_Header_Payment_rec.payment_number := NULL;
1894     END IF;
1895 
1896     IF p_x_Header_Payment_rec.header_id = FND_API.G_MISS_NUM THEN
1897         p_x_Header_Payment_rec.header_id := NULL;
1898     END IF;
1899 
1900     IF p_x_Header_Payment_rec.line_id = FND_API.G_MISS_NUM THEN
1901         p_x_Header_Payment_rec.line_id := NULL;
1902     END IF;
1903 
1904     IF p_x_Header_Payment_rec.payment_amount = FND_API.G_MISS_NUM THEN
1905         p_x_Header_Payment_rec.payment_amount := NULL;
1906     END IF;
1907 
1908     -- Added for bug 8478559
1909     IF p_x_Header_Payment_rec.payment_percentage = FND_API.G_MISS_NUM THEN
1910         p_x_Header_Payment_rec.payment_percentage := NULL;
1911     END IF;
1912     -- End of bug 8478559
1913 
1914     IF p_x_Header_Payment_rec.payment_collection_event = FND_API.G_MISS_CHAR THEN
1915         p_x_Header_Payment_rec.payment_collection_event := NULL;
1916     END IF;
1917 
1918     IF p_x_Header_Payment_rec.defer_payment_processing_flag = FND_API.G_MISS_CHAR THEN
1919         p_x_Header_Payment_rec.defer_payment_processing_flag := NULL;
1920     END IF;
1921 
1922     IF p_x_Header_Payment_rec.payment_trx_id = FND_API.G_MISS_NUM THEN
1923         p_x_Header_Payment_rec.payment_trx_id := NULL;
1924     END IF;
1925 
1926     IF p_x_Header_Payment_rec.payment_type_code = FND_API.G_MISS_CHAR THEN
1927         p_x_Header_Payment_rec.payment_type_code := NULL;
1928     END IF;
1929 
1930     IF p_x_Header_Payment_rec.payment_set_id = FND_API.G_MISS_NUM THEN
1931         p_x_Header_Payment_rec.payment_set_id := NULL;
1932     END IF;
1933 
1934     IF p_x_Header_Payment_rec.prepaid_amount = FND_API.G_MISS_NUM THEN
1935         p_x_Header_Payment_rec.prepaid_amount := NULL;
1936     END IF;
1937 
1938     IF p_x_Header_Payment_rec.program_application_id = FND_API.G_MISS_NUM THEN
1939         p_x_Header_Payment_rec.program_application_id := NULL;
1940     END IF;
1941 
1942     IF p_x_Header_Payment_rec.program_id = FND_API.G_MISS_NUM THEN
1943         p_x_Header_Payment_rec.program_id := NULL;
1944     END IF;
1945 
1946     IF p_x_Header_Payment_rec.program_update_date = FND_API.G_MISS_DATE THEN
1947         p_x_Header_Payment_rec.program_update_date := NULL;
1948     END IF;
1949 
1950     IF p_x_Header_Payment_rec.receipt_method_id = FND_API.G_MISS_NUM THEN
1951         p_x_Header_Payment_rec.receipt_method_id := NULL;
1952     END IF;
1953 
1954     IF p_x_Header_Payment_rec.request_id = FND_API.G_MISS_NUM THEN
1955         p_x_Header_Payment_rec.request_id := NULL;
1956     END IF;
1957 
1958     IF p_x_Header_Payment_rec.tangible_id = FND_API.G_MISS_CHAR THEN
1959         p_x_Header_Payment_rec.tangible_id := NULL;
1960     END IF;
1961 
1962     -- R12 CC Encryption
1963     IF p_x_Header_Payment_rec.trxn_extension_id = FND_API.G_MISS_NUM THEN
1964         p_x_Header_Payment_rec.trxn_extension_id := NULL;
1965     END IF;
1966 
1967     IF p_x_Header_Payment_rec.instrument_security_code = FND_API.G_MISS_CHAR THEN
1968         p_x_Header_Payment_rec.instrument_security_code := NULL;
1969     END IF;
1970     -- R12 CC Encryption
1971 
1972     --8219019 start
1973 
1974     IF p_x_Header_Payment_rec.CC_INSTRUMENT_ID = FND_API.G_MISS_NUM THEN
1975         p_x_Header_Payment_rec.CC_INSTRUMENT_ID := NULL;
1976     END IF;
1977 
1978     IF p_x_Header_Payment_rec.CC_INSTRUMENT_ASSIGNMENT_ID = FND_API.G_MISS_NUM THEN
1979         p_x_Header_Payment_rec.CC_INSTRUMENT_ASSIGNMENT_ID := NULL;
1980     END IF;
1981 
1982     --8219019 end
1983 
1984 END Convert_Miss_To_Null;
1985 
1986 --  Procedure Update_Row
1987 
1988 PROCEDURE Update_Row
1989 (   p_Header_Payment_rec            IN OUT NOCOPY OE_Order_PUB.Header_Payment_Rec_Type
1990 )
1991 IS
1992     l_lock_control   NUMBER;
1993  --added for notification framework
1994       l_index    NUMBER;
1995       l_return_status VARCHAR2(1);
1996 
1997 
1998 --
1999 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2000 --
2001 BEGIN
2002 
2003     SELECT lock_control
2004     INTO   l_lock_control
2005     FROM   OE_PAYMENTS
2006     WHERE  payment_number = p_Header_Payment_rec.payment_number
2007     AND    header_id = p_Header_Payment_rec.header_id
2008     AND    line_id IS NULL;
2009 
2010     l_lock_control := l_lock_control + 1;
2011 
2012    --calling notification framework to update global picture
2013    --check code release level first. Notification framework is at Pack H level
2014     IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' THEN
2015        IF l_debug_level  > 0 THEN
2016            oe_debug_pub.add(  'JFC: payment_number' || P_HEADER_Payment_REC.payment_number ) ;
2017        END IF;
2018 -- Sasi: this should be added by Renga
2019    /*    OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
2020                     p_Hdr_pmt_rec =>p_header_Payment_rec,
2021                     p_hdr_pmt_id => p_header_Payment_rec.payment_number,
2022                     x_index => l_index,
2023                     x_return_status => l_return_status);*/
2024        IF l_debug_level  > 0 THEN
2025            oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_Payment_UTIL.UPDATE_ROW IS: ' || L_RETURN_STATUS ) ;
2026        END IF;
2027        IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2028           IF l_debug_level  > 0 THEN
2029               oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
2030           END IF;
2031           IF l_debug_level  > 0 THEN
2032               oe_debug_pub.add(  'EXITING OE_HEADER_Payment_UTIL.UPDATE_ROW' , 1 ) ;
2033           END IF;
2034 	  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2035        ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2036           IF l_debug_level  > 0 THEN
2037               oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_Payment_UTIL.UPDATE_ROW' ) ;
2038           END IF;
2039          IF l_debug_level  > 0 THEN
2040              oe_debug_pub.add(  'EXITING OE_HEADER_Payment_UTIL.UPDATE_ROW' , 1 ) ;
2041          END IF;
2042 	 RAISE FND_API.G_EXC_ERROR;
2043        END IF;
2044    END IF; /*code_release_level*/
2045     -- notification framework end
2046 
2047     UPDATE  OE_PAYMENTS
2048     SET     ATTRIBUTE1                     = p_Header_Payment_rec.attribute1
2049     ,       ATTRIBUTE2                     = p_Header_Payment_rec.attribute2
2050     ,       ATTRIBUTE3                     = p_Header_Payment_rec.attribute3
2051     ,       ATTRIBUTE4                     = p_Header_Payment_rec.attribute4
2052     ,       ATTRIBUTE5                     = p_Header_Payment_rec.attribute5
2053     ,       ATTRIBUTE6                     = p_Header_Payment_rec.attribute6
2054     ,       ATTRIBUTE7                     = p_Header_Payment_rec.attribute7
2055     ,       ATTRIBUTE8                     = p_Header_Payment_rec.attribute8
2056     ,       ATTRIBUTE9                     = p_Header_Payment_rec.attribute9
2057     ,       ATTRIBUTE10                    = p_Header_Payment_rec.attribute10
2058     ,       ATTRIBUTE11                    = p_Header_Payment_rec.attribute11
2059     ,       ATTRIBUTE12                    = p_Header_Payment_rec.attribute12
2060     ,       ATTRIBUTE13                    = p_Header_Payment_rec.attribute13
2061     ,       ATTRIBUTE14                    = p_Header_Payment_rec.attribute14
2062     ,       ATTRIBUTE15                    = p_Header_Payment_rec.attribute15
2063     ,       CONTEXT                        = p_Header_Payment_rec.context
2064 --16309734 start
2065 /*
2066     ,       CREATED_BY                     = p_Header_Payment_rec.created_by
2067     ,       CREATION_DATE                  = p_Header_Payment_rec.creation_date
2068 */
2069 --16309734 End
2070   ,       LAST_UPDATED_BY                = p_Header_Payment_rec.last_updated_by
2071     ,       LAST_UPDATE_DATE               = p_Header_Payment_rec.last_update_date
2072     ,       LAST_UPDATE_LOGIN              = p_Header_Payment_rec.last_update_login
2073     ,       CHECK_NUMBER                   = p_Header_Payment_rec.check_number
2074     /*,       CREDIT_CARD_APPROVAL_CODE      = p_Header_Payment_rec.credit_card_approval_code  --R12 CC Encryption
2075     ,       CREDIT_CARD_APPROVAL_DATE      = p_Header_Payment_rec.credit_card_approval_date
2076     ,       CREDIT_CARD_CODE               = p_Header_Payment_rec.credit_card_code
2077     ,       CREDIT_CARD_EXPIRATION_DATE    = p_Header_Payment_rec.credit_card_expiration_date
2078     ,       CREDIT_CARD_HOLDER_NAME        = p_Header_Payment_rec.credit_card_holder_name
2079     ,       CREDIT_CARD_NUMBER             = p_Header_Payment_rec.credit_card_number*/         --R12 CC Encryption
2080     ,       PAYMENT_LEVEL_CODE             = p_Header_Payment_rec.payment_level_code
2081     ,       COMMITMENT_APPLIED_AMOUNT      = p_Header_Payment_rec.commitment_applied_amount
2082     ,       COMMITMENT_INTERFACED_AMOUNT   = p_Header_Payment_rec.commitment_interfaced_amount
2083     ,       PAYMENT_NUMBER                 = p_Header_Payment_rec.payment_number
2084     ,       HEADER_ID                      = p_Header_Payment_rec.header_id
2085     ,       LINE_ID                        = p_Header_Payment_rec.line_id
2086     ,       PAYMENT_AMOUNT                 = p_Header_Payment_rec.payment_amount
2087     ,       PAYMENT_PERCENTAGE             = p_Header_Payment_rec.payment_percentage -- Added for bug 8478559
2088     ,       PAYMENT_COLLECTION_EVENT       = p_Header_Payment_rec.payment_collection_event
2089     ,       PAYMENT_TRX_ID                 = p_Header_Payment_rec.payment_trx_id
2090     ,       PAYMENT_TYPE_CODE              = p_Header_Payment_rec.payment_type_code
2091     ,       PAYMENT_SET_ID                 = p_Header_Payment_rec.payment_set_id
2092     ,       PREPAID_AMOUNT                 = p_Header_Payment_rec.prepaid_amount
2093     ,       PROGRAM_APPLICATION_ID         = p_Header_Payment_rec.program_application_id
2094     ,       PROGRAM_ID                     = p_Header_Payment_rec.program_id
2095     ,       PROGRAM_UPDATE_DATE            = p_Header_Payment_rec.program_update_date
2096     ,       RECEIPT_METHOD_ID              = p_Header_Payment_rec.receipt_method_id
2097     ,       REQUEST_ID                     = p_Header_Payment_rec.request_id
2098     --,       TANGIBLE_ID                    = p_Header_Payment_rec.tangible_id --R12 CC Encryption
2099     ,       DEFER_PAYMENT_PROCESSING_FLAG = p_Header_Payment_rec.defer_payment_processing_flag
2100     ,       TRXN_EXTENSION_ID              = p_Header_Payment_rec.trxn_extension_id
2101     ,       LOCK_CONTROL                   = l_lock_control
2102     WHERE   PAYMENT_NUMBER = p_Header_Payment_rec.payment_number
2103     AND     HEADER_ID   = p_Header_Payment_rec.header_id
2104     AND     LINE_ID IS NULL;
2105 
2106 
2107     p_Header_Payment_rec.lock_control :=   l_lock_control;
2108 
2109 EXCEPTION
2110 
2111     WHEN OTHERS THEN
2112 
2113         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2114         THEN
2115             oe_msg_pub.Add_Exc_Msg
2116             (   G_PKG_NAME
2117             ,   'Update_Row'
2118             );
2119         END IF;
2120 
2121         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2122 
2123 END Update_Row;
2124 
2125 --  Procedure Insert_Row
2126 
2127 PROCEDURE Insert_Row
2128 (   p_Header_Payment_rec       IN OUT NOCOPY  OE_Order_PUB.Header_Payment_Rec_Type
2129 )
2130 IS
2131     l_lock_control   NUMBER:= 1;
2132     l_index          NUMBER;
2133     l_return_status VARCHAR2(1);
2134     --
2135     l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2136     --
2137 BEGIN
2138    IF l_debug_level  > 0 THEN
2139        oe_debug_pub.add(  'ENTERING OE_HEADER_Payment_UTIL.INSERT_ROW' , 1 ) ;
2140    END IF;
2141 
2142     INSERT  INTO OE_PAYMENTS
2143     (       ATTRIBUTE1
2144     ,       ATTRIBUTE2
2145     ,       ATTRIBUTE3
2146     ,       ATTRIBUTE4
2147     ,       ATTRIBUTE5
2148     ,       ATTRIBUTE6
2149     ,       ATTRIBUTE7
2150     ,       ATTRIBUTE8
2151     ,       ATTRIBUTE9
2152     ,       ATTRIBUTE10
2153     ,       ATTRIBUTE11
2154     ,       ATTRIBUTE12
2155     ,       ATTRIBUTE13
2156     ,       ATTRIBUTE14
2157     ,       ATTRIBUTE15
2158     ,       CONTEXT
2159     ,       CREATED_BY
2160     ,       CREATION_DATE
2161     ,       LAST_UPDATED_BY
2162     ,       LAST_UPDATE_DATE
2163     ,       LAST_UPDATE_LOGIN
2164     ,       CHECK_NUMBER
2165     /*,       CREDIT_CARD_APPROVAL_CODE --R12 CC Encryption
2166     ,       CREDIT_CARD_APPROVAL_DATE
2167     ,       CREDIT_CARD_CODE
2168     ,       CREDIT_CARD_EXPIRATION_DATE
2169     ,       CREDIT_CARD_HOLDER_NAME
2170     ,       CREDIT_CARD_NUMBER*/
2171     ,       PAYMENT_LEVEL_CODE
2172     ,       COMMITMENT_APPLIED_AMOUNT
2173     ,       COMMITMENT_INTERFACED_AMOUNT
2174     ,       PAYMENT_NUMBER
2175     ,       HEADER_ID
2176     ,       LINE_ID
2177     ,       PAYMENT_AMOUNT
2178     ,       PAYMENT_PERCENTAGE  -- Added for bug 8478559
2179     ,       PAYMENT_COLLECTION_EVENT
2180     ,       PAYMENT_TRX_ID
2181     ,       PAYMENT_TYPE_CODE
2182     ,       PAYMENT_SET_ID
2183     ,       PREPAID_AMOUNT
2184     ,       PROGRAM_APPLICATION_ID
2185     ,       PROGRAM_ID
2186     ,       PROGRAM_UPDATE_DATE
2187     ,       RECEIPT_METHOD_ID
2188     ,       REQUEST_ID
2189     --,       TANGIBLE_ID
2190     ,       DEFER_PAYMENT_PROCESSING_FLAG
2191     ,       TRXN_EXTENSION_ID
2192     ,       LOCK_CONTROL
2193     ,       ORIG_SYS_PAYMENT_REF  --bug# 14354772
2194     )
2195     VALUES
2196     (       p_Header_Payment_rec.attribute1
2197     ,       p_Header_Payment_rec.attribute2
2198     ,       p_Header_Payment_rec.attribute3
2199     ,       p_Header_Payment_rec.attribute4
2200     ,       p_Header_Payment_rec.attribute5
2201     ,       p_Header_Payment_rec.attribute6
2202     ,       p_Header_Payment_rec.attribute7
2203     ,       p_Header_Payment_rec.attribute8
2204     ,       p_Header_Payment_rec.attribute9
2205     ,       p_Header_Payment_rec.attribute10
2206     ,       p_Header_Payment_rec.attribute11
2207     ,       p_Header_Payment_rec.attribute12
2208     ,       p_Header_Payment_rec.attribute13
2209     ,       p_Header_Payment_rec.attribute14
2210     ,       p_Header_Payment_rec.attribute15
2211     ,       p_Header_Payment_rec.context
2212     ,       p_Header_Payment_rec.created_by
2213     ,       p_Header_Payment_rec.creation_date
2214     ,       p_Header_Payment_rec.last_updated_by
2215     ,       p_Header_Payment_rec.last_update_date
2216     ,       p_Header_Payment_rec.last_update_login
2217     ,       p_Header_Payment_rec.check_number
2218     /*,       p_Header_Payment_rec.credit_card_approval_code --R12 CC Encryption
2219     ,       p_Header_Payment_rec.credit_card_approval_date
2220     ,       p_Header_Payment_rec.credit_card_code
2221     ,       p_Header_Payment_rec.credit_card_expiration_date
2222     ,       p_Header_Payment_rec.credit_card_holder_name
2223     ,       p_Header_Payment_rec.credit_card_number*/ --R12 CC Encryption
2224     ,       p_Header_Payment_rec.payment_level_code
2225     ,       p_Header_Payment_rec.commitment_applied_amount
2226     ,       p_Header_Payment_rec.commitment_interfaced_amount
2227     ,       p_Header_Payment_rec.payment_number
2228     ,       p_Header_Payment_rec.header_id
2229     ,       p_Header_Payment_rec.line_id
2230     ,       p_Header_Payment_rec.payment_amount
2231     ,       p_Header_Payment_rec.payment_percentage -- Added for bug 8478559
2232     ,       p_Header_Payment_rec.payment_collection_event
2233     ,       p_Header_Payment_rec.payment_trx_id
2234     ,       p_Header_Payment_rec.payment_type_code
2235     ,       p_Header_Payment_rec.payment_set_id
2236     ,       p_Header_Payment_rec.prepaid_amount
2237     ,       p_Header_Payment_rec.program_application_id
2238     ,       p_Header_Payment_rec.program_id
2239     ,       p_Header_Payment_rec.program_update_date
2240     ,       p_Header_Payment_rec.receipt_method_id
2241     ,       p_Header_Payment_rec.request_id
2242     --,       p_Header_Payment_rec.tangible_id --R12 CC Encryption
2243     ,       p_Header_Payment_rec.defer_payment_processing_flag
2244     ,       p_Header_Payment_rec.trxn_extension_id
2245     ,       l_lock_control
2246     ,       p_header_Payment_rec.ORIG_SYS_PAYMENT_REF  --bug# 14354772
2247     );
2248 
2249     p_Header_Payment_rec.lock_control :=   l_lock_control;
2250 
2251     --calling notification framework to update global picture
2252   --check code release level first. Notification framework is at Pack H level
2253    IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' THEN
2254 /*
2255       OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
2256                     p_old_hdr_pmt_rec => NULL,
2257                     p_Hdr_pmt_rec =>p_header_Payment_rec,
2258                     p_hdr_pmt_id => p_header_Payment_rec.payment_number,
2259                     x_index => l_index,
2260                     x_return_status => l_return_status); */
2261        IF l_debug_level  > 0 THEN
2262            oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_Payment_UTIL.INSERT_ROW IS: ' || L_RETURN_STATUS ) ;
2263        END IF;
2264        IF l_debug_level  > 0 THEN
2265            oe_debug_pub.add(  'RETURNED INDEX IS: ' || L_INDEX , 1 ) ;
2266        END IF;
2267 
2268       IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2269         IF l_debug_level  > 0 THEN
2270             oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
2271         END IF;
2272         IF l_debug_level  > 0 THEN
2273             oe_debug_pub.add(  'EXITING OE_HEADER_Payment_UTIL.INSERT_ROW' , 1 ) ;
2274         END IF;
2275 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2276       ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2277         IF l_debug_level  > 0 THEN
2278             oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_Payment_UTIL.INSERT_ROW' ) ;
2279         END IF;
2280         IF l_debug_level  > 0 THEN
2281             oe_debug_pub.add(  'EXITING OE_HEADER_Payment_UTIL.INSERT_ROW' , 1 ) ;
2282         END IF;
2283 	RAISE FND_API.G_EXC_ERROR;
2284       END IF;
2285    END IF; /*code_release_level*/
2286  -- notification framework end
2287 
2288     IF l_debug_level  > 0 THEN
2289         oe_debug_pub.add(  'EXITING OE_HEADER_Payment_UTIL.INSERT_ROW' , 1 ) ;
2290     END IF;
2291 
2292 EXCEPTION
2293 
2294     WHEN OTHERS THEN
2295         oe_debug_pub.add('Sql error'||sqlerrm);
2296         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2297         THEN
2298             oe_msg_pub.Add_Exc_Msg
2299             (   G_PKG_NAME
2300             ,   'Insert_Row'
2301             );
2302         END IF;
2303 
2304         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2305 
2306 END Insert_Row;
2307 
2308 --  Procedure Delete_Row
2309 
2310 PROCEDURE Delete_Row
2311 (   p_payment_number               IN  NUMBER :=
2312                                         FND_API.G_MISS_NUM
2313 ,   p_header_id                     IN  NUMBER :=
2314                                         FND_API.G_MISS_NUM
2315 )
2316 IS
2317 l_return_status		VARCHAR2(30);
2318 l_msg_count number := 0;
2319 l_msg_data VARCHAR2(2000) := NULL;
2320 l_pmt_collection_event	VARCHAR2(30);
2321 l_prepay_count		NUMBER := 0;
2322 
2323 
2324 CURSOR payment IS
2325 	SELECT payment_number, payment_collection_event,trxn_extension_id,payment_type_code --R12 CC Encryption
2326 	FROM OE_PAYMENTS
2327 	WHERE   HEADER_ID = p_header_id
2328         AND     line_id is NULL;
2329  -- added for notification framework
2330         l_new_header_Payment_rec     OE_Order_PUB.Header_Payment_Rec_Type;
2331         l_index           NUMBER;
2332         --
2333         l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2334         --R12 CC Encryption
2335 	l_trxn_extension_id  NUMBER;
2336 	l_invoice_to_org_id  NUMBER;
2337 	l_payment_type_code VARCHAR2(80);
2338 	--R12 CC Encryption
2339 BEGIN
2340   IF l_debug_level  > 0 THEN
2341       oe_debug_pub.add(  'ENTERING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2342   END IF;
2343 
2344   IF p_header_id <> FND_API.G_MISS_NUM AND
2345      nvl(p_payment_number, FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
2346   THEN
2347 
2348     FOR l_pmt IN payment LOOP
2349 
2350     --added notification framework
2351    --check code release level first. Notification framework is at Pack H level
2352       IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' THEN
2353       /* Set the operation on the record so that globals are updated as well */
2354         l_new_header_Payment_rec.operation := OE_GLOBALS.G_OPR_DELETE;
2355         l_new_header_Payment_rec.header_id := p_header_id;
2356         l_new_header_Payment_rec.payment_number := l_pmt.payment_number;
2357         l_new_header_Payment_rec.payment_collection_event := l_pmt.payment_collection_event;
2358 	--l_new_header_Payment_rec.payment_type_code := l_pmt.
2359 	--l_new_header_Payment_rec.trxn_extension_id := l_pmt.trxn_extension_id; --R12 CC Encryption Verify
2360 
2361 /*        OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
2362                     p_Hdr_pmt_rec =>l_new_header_Payment_rec,
2363                     p_hdr_pmt_id => payment_number,
2364                     x_index => l_index,
2365                     x_return_status => l_return_status); */
2366 
2367          IF l_debug_level  > 0 THEN
2368              oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_Payment_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
2369          END IF;
2370          IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2371            IF l_debug_level  > 0 THEN
2372                oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
2373            END IF;
2374            IF l_debug_level  > 0 THEN
2375                oe_debug_pub.add(  'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2376            END IF;
2377  	   RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2378         ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2379            IF l_debug_level  > 0 THEN
2380                oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_Payment_UTIL.DELETE_ROW' ) ;
2381            END IF;
2382             IF l_debug_level  > 0 THEN
2383                 oe_debug_pub.add(  'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2384             END IF;
2385 	    RAISE FND_API.G_EXC_ERROR;
2386          END IF;
2387        END IF; /*code_release_level*/
2388      -- notification framework end
2389         --R12 CC Encryption
2390 	--Calling delete API of Oracle Payments only if the payment
2391 	--type is credit card ach or direct debit.
2392 	IF l_pmt.payment_type_code in ('CREDIT_CARD','ACH','DIRECT_DEBIT') THEN
2393 	       --Passing the invoice to org id as null to Delete_Payment_trxn API
2394 	       --as the old invoice to org id needs to be passed to this api in
2395 	       --case of deleting the payments due to bill-to site change.
2396 
2397 		/*select invoice_to_org_id into l_invoice_to_org_id  --Verify
2398 		from oe_order_headers_all where
2399 		header_id = p_header_id;*/
2400 		IF l_debug_level  > 0 THEN
2401 			oe_debug_pub.add('Deleting trxn id...'||l_pmt.trxn_extension_id);
2402 			oe_debug_pub.add('Invoice to org.'||l_invoice_to_org_id);
2403 		END IF;
2404 
2405 		OE_PAYMENT_TRXN_UTIL.Delete_Payment_Trxn
2406 		(p_header_id     => p_header_id,
2407 		 p_line_id       => null,
2408 		 p_payment_number=> null,
2409 		 P_site_use_id	 => l_invoice_to_org_id,
2410 		 p_trxn_extension_id	=> l_pmt.trxn_extension_id,
2411 		 x_return_status    =>l_return_status,
2412 		 x_msg_count        => l_msg_count,
2413 		 x_msg_data        => l_msg_data);
2414 
2415 		    IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2416 			  IF l_debug_level  > 0 THEN
2417 			      oe_debug_pub.add(  'Delete Payment at Header - UNEXPECTED ERROR' ) ;
2418 			      oe_debug_pub.add('Error message'||sqlerrm);
2419 			      oe_debug_pub.add('Msg data'||l_msg_data);
2420 			  END IF;
2421 			  IF l_debug_level  > 0 THEN
2422 			      oe_debug_pub.add(  'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2423 			  END IF;
2424 			  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2425 			ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2426 			  IF l_debug_level  > 0 THEN
2427 			      oe_debug_pub.add(  'Delete Payment at Header - OE_HEADER_Payment_UTIL.DELETE_ROW' ) ;
2428 			      oe_debug_pub.add('Error message'||sqlerrm);
2429 			      oe_debug_pub.add('Msg data'||l_msg_data);
2430 			  END IF;
2431 			  IF l_debug_level  > 0 THEN
2432 			      oe_debug_pub.add(  'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2433 			  END IF;
2434 			  RAISE FND_API.G_EXC_ERROR;
2435 		    END IF;
2436 	END IF;
2437 	--R12 CC Encryption
2438     END LOOP;
2439 
2440       OE_Delayed_Requests_Pvt.Delete_Reqs_for_deleted_entity(
2441         p_entity_code  => OE_GLOBALS.G_ENTITY_HEADER_PAYMENT,
2442         p_entity_id     => p_header_id,
2443         x_return_status => l_return_status
2444         );
2445 
2446     DELETE  FROM OE_PAYMENTS
2447     WHERE   HEADER_ID = p_header_id
2448     AND     LINE_ID IS NULL;
2449 
2450 --3382262
2451     IF l_debug_level  > 0 THEN
2452         oe_debug_pub.add('1: after executing delete statement against oe_payments - before delete_payment_at_header');
2453     END IF;
2454     Delete_Payment_at_header(p_header_id => p_header_id,
2455                                    x_return_status => l_return_status,
2456                                    x_msg_count => l_msg_count,
2457                                    x_msg_data => l_msg_data);
2458 --3382262
2459     -- Release all Prepayment holds;
2460     IF l_debug_level  > 0 THEN
2461        oe_debug_pub.add(  'Releasing all payment related holds.' , 3 ) ;
2462     END IF;
2463 
2464     OE_Prepayment_PVT.Release_Prepayment_Hold
2465                                 ( p_header_id     => p_header_id
2466                                 , p_msg_count     => l_msg_count
2467                                 , p_msg_data      => l_msg_data
2468                                 , p_return_status => l_return_status
2469                                 );
2470 
2471     IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2472        RAISE FND_API.G_EXC_ERROR;
2473     ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2474        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2475     END IF;
2476 
2477     -- release any authorization related holds.
2478     OE_Verify_Payment_PUB.Release_Verify_Hold
2479                                  ( p_header_id     => p_header_id
2480                                  , p_epayment_hold => 'Y'
2481                                  , p_msg_count     => l_msg_count
2482                                  , p_msg_data      => l_msg_data
2483                                  , p_return_status => l_return_status
2484                                  );
2485     IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2486        RAISE FND_API.G_EXC_ERROR;
2487     ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2488        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2489     END IF;
2490 
2491 
2492   ELSIF p_header_id <> FND_API.G_MISS_NUM AND
2493         p_payment_number <> FND_API.G_MISS_NUM THEN
2494      --added notification framework
2495    --check code release level first. Notification framework is at Pack H level
2496      IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
2497       /* Set the operation on the record so that globals are updated as well */
2498         l_new_header_Payment_rec.operation := OE_GLOBALS.G_OPR_DELETE;
2499         l_new_header_Payment_rec.payment_number := p_payment_number;
2500         l_new_header_Payment_rec.header_id := p_header_id;
2501 /*       OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
2502                     p_Hdr_pmt_rec =>l_new_header_Payment_rec,
2503                     p_hdr_pmt_id => p_payment_number,
2504                     x_index => l_index,
2505                     x_return_status => l_return_status); */
2506 
2507     --ER#7479609 start
2508     Delete_PaymentType_Hold
2509     (
2510        p_header_id => p_header_id
2511     ,  p_payment_number => p_payment_number
2512     ,  x_msg_count      => l_msg_count
2513     ,  x_msg_data       => l_msg_data
2514     ,  x_return_status   => l_return_status
2515     );
2516     IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2517        RAISE FND_API.G_EXC_ERROR;
2518     ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2519        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2520     END IF;
2521    --ER#7479609 end
2522 
2523 
2524        IF l_debug_level  > 0 THEN
2525            oe_debug_pub.add(  'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_Payment_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
2526        END IF;
2527 
2528         IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2529           IF l_debug_level  > 0 THEN
2530               oe_debug_pub.add(  'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
2531           END IF;
2532           IF l_debug_level  > 0 THEN
2533               oe_debug_pub.add(  'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2534           END IF;
2535     	  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2536         ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2537           IF l_debug_level  > 0 THEN
2538               oe_debug_pub.add(  'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_Payment_UTIL.DELETE_ROW' ) ;
2539           END IF;
2540           IF l_debug_level  > 0 THEN
2541               oe_debug_pub.add(  'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2542           END IF;
2543 	  RAISE FND_API.G_EXC_ERROR;
2544         END IF;
2545       END IF; /*code_release_level*/
2546     -- notification framework end
2547 
2548      OE_Delayed_Requests_Pvt.Delete_Reqs_for_deleted_entity(
2549         p_entity_code  => OE_GLOBALS.G_ENTITY_HEADER_Payment,
2550         p_entity_id     => p_header_id,
2551         x_return_status => l_return_status
2552         );
2553 
2554     BEGIN
2555       SELECT payment_collection_event,trxn_extension_id,payment_type_code --R12 CC Encryption
2556       INTO   l_pmt_collection_event,l_trxn_extension_id,l_payment_type_code
2557       FROM   oe_payments
2558       WHERE  payment_number = p_payment_number
2559       AND    header_id = p_header_id
2560       AND    line_id is null;
2561     EXCEPTION WHEN NO_DATA_FOUND THEN
2562       null;
2563     END;
2564     --R12 CC Encryption
2565     --Calling delete API of Oracle Payments only if the payment
2566     --type is credit card ach or direct debit.
2567     IF l_payment_type_code in ('CREDIT_CARD','ACH','DIRECT_DEBIT') THEN
2568 	       --Passing the invoice to org id as null to Delete_Payment_trxn API
2569 	       --as the old invoice to org id needs to be passed to this api in
2570 	       --case of deleting the payments due to bill-to site change.
2571 
2572 	       /*select invoice_to_org_id into l_invoice_to_org_id
2573 	       from oe_order_headers_all where header_id = p_header_id;*/
2574 		IF l_debug_level  > 0 THEN
2575 			oe_debug_pub.add('Deleting trxn id...'||l_trxn_extension_id);
2576 			oe_debug_pub.add('Invoice to org.'||l_invoice_to_org_id);
2577 		END IF;
2578 
2579 		OE_PAYMENT_TRXN_UTIL.Delete_Payment_Trxn
2580 		(p_header_id     => p_header_id,
2581 		 p_line_id       => null,
2582 		 p_payment_number=> p_payment_number,
2583 		 P_site_use_id	 => l_invoice_to_org_id,
2584 		 p_trxn_extension_id	=> l_trxn_extension_id,
2585 		 x_return_status    =>l_return_status,
2586 		 x_msg_count        => l_msg_count,
2587 		 x_msg_data        => l_msg_data);
2588 
2589 
2590 	    IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2591 		  IF l_debug_level  > 0 THEN
2592 		      oe_debug_pub.add(  '2:Delete Payment at Header - UNEXPECTED ERROR' ) ;
2593 		  END IF;
2594 		  IF l_debug_level  > 0 THEN
2595 		      oe_debug_pub.add(  'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2596 		  END IF;
2597 		  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2598 		ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2599 		  IF l_debug_level  > 0 THEN
2600 		      oe_debug_pub.add(  '2:Delete Payment at Header - OE_HEADER_Payment_UTIL.DELETE_ROW' ) ;
2601 		  END IF;
2602 		  IF l_debug_level  > 0 THEN
2603 		      oe_debug_pub.add(  'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2604 		  END IF;
2605 		  RAISE FND_API.G_EXC_ERROR;
2606 	    END IF;
2607     END IF;
2608     --R12 CC Encryption
2609     DELETE  FROM OE_PAYMENTS
2610     WHERE   HEADER_ID = p_header_id
2611     AND     PAYMENT_NUMBER = p_payment_number
2612     AND     LINE_ID IS NULL
2613     ;
2614 
2615 --3382262
2616     IF l_debug_level  > 0 THEN
2617         oe_debug_pub.add('2: after executing delete statement against oe_payments - before delete_payment_at_header');
2618     END IF;
2619     Delete_Payment_at_header(p_header_id => p_header_id,
2620                                    x_return_status => l_return_status,
2621                                    x_msg_count => l_msg_count,
2622                                    x_msg_data => l_msg_data);
2623 --3382262
2624 
2625 
2626     IF l_pmt_collection_event = 'INVOICE' THEN
2627       -- release any authorization related holds.
2628       IF l_debug_level  > 0 THEN
2629          oe_debug_pub.add(  'releasing all authorization related holds.', 3 ) ;
2630       END IF;
2631       OE_Verify_Payment_PUB.Release_Verify_Hold
2632                                  ( p_header_id     => p_header_id
2633                                  , p_epayment_hold => 'Y'
2634                                  , p_msg_count     => l_msg_count
2635                                  , p_msg_data      => l_msg_data
2636                                  , p_return_status => l_return_status
2637                                  );
2638        IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2639           RAISE FND_API.G_EXC_ERROR;
2640        ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2641           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2642        END IF;
2643 
2644      ELSE
2645        -- the payment being deleted is a prepayment.
2646        BEGIN
2647          SELECT count(*)
2648          INTO   l_prepay_count
2649          FROM   oe_payments
2650          WHERE  nvl(payment_collection_event, 'PREPAY') = 'PREPAY'
2651          AND    header_id = p_header_id
2652          AND    line_id is null;
2653        EXCEPTION WHEN NO_DATA_FOUND THEN
2654          l_prepay_count := 0;
2655        END;
2656 
2657        IF l_prepay_count = 0 THEN
2658          -- Release all Prepayment holds if no prepayment exists any more.
2659          IF l_debug_level  > 0 THEN
2660             oe_debug_pub.add(  'releasing all prepayment related holds.', 3 ) ;
2661          END IF;
2662 
2663          OE_Prepayment_PVT.Release_Prepayment_Hold
2664                                 ( p_header_id     => p_header_id
2665                                 , p_msg_count     => l_msg_count
2666                                 , p_msg_data      => l_msg_data
2667                                 , p_return_status => l_return_status
2668                                 );
2669 
2670           IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2671              RAISE FND_API.G_EXC_ERROR;
2672           ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2673              RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2674           END IF;
2675         END IF;
2676 
2677      END IF;
2678 
2679      oe_debug_pub.add('exiting oe_header_Payment_util.delete_row ',1);
2680 
2681   END IF;
2682 
2683 EXCEPTION
2684 
2685     WHEN OTHERS THEN
2686 
2687         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2688         THEN
2689             oe_msg_pub.Add_Exc_Msg
2690             (   G_PKG_NAME
2691             ,   'Delete_Row'
2692             );
2693         END IF;
2694 
2695         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2696 
2697 END Delete_Row;
2698 
2699 --  Procedure Query_Row
2700 PROCEDURE Query_Row
2701 (   p_payment_number               IN  NUMBER,
2702     p_header_id                    IN  NUMBER,
2703    x_Header_Payment_rec  IN OUT NOCOPY OE_Order_PUB.Header_Payment_Rec_Type
2704 )
2705 IS
2706 x_Header_Payment_tbl OE_Order_PUB.Header_Payment_Tbl_Type;
2707 CURSOR l_Header_Payment_csr IS
2708     SELECT  ATTRIBUTE1
2709     ,       ATTRIBUTE2
2710     ,       ATTRIBUTE3
2711     ,       ATTRIBUTE4
2712     ,       ATTRIBUTE5
2713     ,       ATTRIBUTE6
2714     ,       ATTRIBUTE7
2715     ,       ATTRIBUTE8
2716     ,       ATTRIBUTE9
2717     ,       ATTRIBUTE10
2718     ,       ATTRIBUTE11
2719     ,       ATTRIBUTE12
2720     ,       ATTRIBUTE13
2721     ,       ATTRIBUTE14
2722     ,       ATTRIBUTE15
2723     ,       CONTEXT
2724     ,       CREATED_BY
2725     ,       CREATION_DATE
2726     ,       LAST_UPDATED_BY
2727     ,       LAST_UPDATE_DATE
2728     ,       LAST_UPDATE_LOGIN
2729     ,       CHECK_NUMBER		--R12 CC Encryption Verify
2730     ,       CREDIT_CARD_APPROVAL_CODE
2731     ,       CREDIT_CARD_APPROVAL_DATE
2732     ,       CREDIT_CARD_CODE
2733     ,       CREDIT_CARD_EXPIRATION_DATE
2734     ,       CREDIT_CARD_HOLDER_NAME
2735     ,       CREDIT_CARD_NUMBER	--R12 CC Encryption Verify
2736     ,       PAYMENT_LEVEL_CODE
2737     ,       COMMITMENT_APPLIED_AMOUNT
2738     ,       COMMITMENT_INTERFACED_AMOUNT
2739     ,       HEADER_ID
2740     ,       LINE_ID
2741     ,       PAYMENT_AMOUNT
2742     ,       PAYMENT_PERCENTAGE -- Added for bug 8478559
2743     ,       PAYMENT_COLLECTION_EVENT
2744     ,       PAYMENT_TRX_ID
2745     ,       PAYMENT_TYPE_CODE
2746     ,       PAYMENT_SET_ID
2747     ,       PREPAID_AMOUNT
2748     ,       PROGRAM_APPLICATION_ID
2749     ,       PROGRAM_ID
2750     ,       PROGRAM_UPDATE_DATE
2751     ,       RECEIPT_METHOD_ID
2752     ,       REQUEST_ID
2753     ,       TANGIBLE_ID --R12 CC Encryption Verify
2754     ,       LOCK_CONTROL
2755     ,       PAYMENT_NUMBER
2756     ,       DEFER_PAYMENT_PROCESSING_FLAG
2757     ,       TRXN_EXTENSION_ID
2758     FROM    OE_PAYMENTS
2759     WHERE ( PAYMENT_NUMBER = p_payment_number
2760     AND     HEADER_ID = p_header_id
2761     AND     LINE_ID IS NULL);
2762 
2763 --
2764 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2765 --R12 CC Encryption Verify
2766 x_bank_account_number VARCHAR2(100);
2767 x_check_number        varchar2(100);
2768 l_return_status      VARCHAR2(30) := NULL ;
2769 l_msg_count          NUMBER := 0 ;
2770 l_msg_data           VARCHAR2(2000) := NULL ;
2771 
2772 --R12 CC Encryption
2773 BEGIN
2774 
2775     --  Loop over fetched records
2776 
2777     FOR l_implicit_rec IN l_Header_Payment_csr LOOP
2778 
2779         x_Header_Payment_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
2780         x_Header_Payment_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
2781         x_Header_Payment_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
2782         x_Header_Payment_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
2783         x_Header_Payment_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
2784         x_Header_Payment_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
2785         x_Header_Payment_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
2786         x_Header_Payment_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
2787         x_Header_Payment_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
2788         x_Header_Payment_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
2789         x_Header_Payment_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
2790         x_Header_Payment_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
2791         x_Header_Payment_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
2792         x_Header_Payment_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
2793         x_Header_Payment_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
2794         x_Header_Payment_rec.context   := l_implicit_rec.CONTEXT;
2795         x_Header_Payment_rec.created_by := l_implicit_rec.CREATED_BY;
2796         x_Header_Payment_rec.creation_date := l_implicit_rec.CREATION_DATE;
2797         x_Header_Payment_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
2798         x_Header_Payment_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
2799         x_Header_Payment_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
2800         --R12 CC Encryption Verify
2801 	x_Header_Payment_rec.check_number := l_implicit_rec.CHECK_NUMBER;
2802         x_Header_Payment_rec.credit_card_approval_code := l_implicit_rec.CREDIT_CARD_APPROVAL_CODE;
2803         x_Header_Payment_rec.credit_card_approval_date := l_implicit_rec.CREDIT_CARD_APPROVAL_DATE;
2804         x_Header_Payment_rec.credit_card_code := l_implicit_rec.CREDIT_CARD_CODE;
2805         x_Header_Payment_rec.credit_card_expiration_date := l_implicit_rec.CREDIT_CARD_EXPIRATION_DATE;
2806         x_Header_Payment_rec.credit_card_holder_name := l_implicit_rec.CREDIT_CARD_HOLDER_NAME;
2807         x_Header_Payment_rec.credit_card_number := l_implicit_rec.CREDIT_CARD_NUMBER;
2808 	--R12 CC Encryption Verify
2809         x_Header_Payment_rec.payment_level_code := l_implicit_rec.PAYMENT_LEVEL_CODE;
2810         x_Header_Payment_rec.commitment_applied_amount := l_implicit_rec.COMMITMENT_APPLIED_AMOUNT;
2811         x_Header_Payment_rec.commitment_interfaced_amount := l_implicit_rec.COMMITMENT_INTERFACED_AMOUNT;
2812         x_Header_Payment_rec.header_id := l_implicit_rec.HEADER_ID;
2813         x_Header_Payment_rec.line_id   := l_implicit_rec.LINE_ID;
2814         x_Header_Payment_rec.payment_amount := l_implicit_rec.PAYMENT_AMOUNT;
2815         x_Header_Payment_rec.payment_percentage := l_implicit_rec.PAYMENT_PERCENTAGE; -- Added for bug 8478559
2816         x_Header_Payment_rec.payment_collection_event := l_implicit_rec.PAYMENT_COLLECTION_EVENT;
2817         x_Header_Payment_rec.payment_trx_id := l_implicit_rec.PAYMENT_TRX_ID;
2818         x_Header_Payment_rec.payment_type_code := l_implicit_rec.PAYMENT_TYPE_CODE;
2819         x_Header_Payment_rec.payment_set_id := l_implicit_rec.PAYMENT_SET_ID;
2820         x_Header_Payment_rec.prepaid_amount := l_implicit_rec.PREPAID_AMOUNT;
2821         x_Header_Payment_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
2822         x_Header_Payment_rec.program_id := l_implicit_rec.PROGRAM_ID;
2823         x_Header_Payment_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
2824         x_Header_Payment_rec.receipt_method_id := l_implicit_rec.RECEIPT_METHOD_ID;
2825         x_Header_Payment_rec.request_id := l_implicit_rec.REQUEST_ID;
2826         x_Header_Payment_rec.tangible_id := l_implicit_rec.TANGIBLE_ID;  --R12 CC Encryption Verify
2827         x_Header_Payment_rec.lock_control   := l_implicit_rec.LOCK_CONTROL;
2828         x_Header_Payment_rec.payment_number   := l_implicit_rec.PAYMENT_NUMBER;
2829         x_Header_Payment_rec.defer_payment_processing_flag := l_implicit_rec.defer_payment_processing_flag;
2830 	--R12 CC Encryption
2831 	x_Header_Payment_rec.trxn_extension_id := l_implicit_rec.trxn_extension_id;
2832 	--Populating the header payment record by querying the Payments tables
2833 	--as they are no longer stored in OM tables
2834 	IF l_implicit_rec.trxn_extension_id is not null then
2835 		OE_Payment_Trxn_Util.Get_Payment_Trxn_Info(p_header_id => p_header_id,
2836 		 P_trxn_extension_id => x_Header_Payment_rec.trxn_extension_id,
2837 		 P_payment_type_code => x_Header_Payment_rec.payment_type_code ,
2838 		 X_credit_card_number => x_Header_Payment_rec.credit_card_number,
2839 		 X_credit_card_holder_name => x_Header_Payment_rec.credit_card_holder_name,
2840 		 X_credit_card_expiration_date => x_Header_Payment_rec.credit_card_expiration_date,
2841 		 X_credit_card_code => x_Header_Payment_rec.credit_card_code,
2842 		 X_credit_card_approval_code => x_Header_Payment_rec.credit_card_approval_code,
2843 		 X_credit_card_approval_date => x_Header_Payment_rec.credit_card_approval_date,
2844 		 X_bank_account_number => X_bank_account_number,
2845 		 --X_check_number => X_check_number	,
2846 		 X_instrument_security_code => x_Header_Payment_rec.instrument_security_code,
2847 		 X_instrument_id	=> x_Header_Payment_rec.cc_instrument_id,
2848 		 X_instrument_assignment_id => x_Header_Payment_rec.cc_instrument_assignment_id,
2849 		 X_return_status => l_return_status,
2850 		 X_msg_count => l_msg_count,
2851 		 X_msg_data => l_msg_data);
2852 	END IF;
2853 	--R12 CC Encryption
2854 	x_Header_Payment_tbl(x_Header_Payment_tbl.COUNT + 1) := x_Header_Payment_rec;
2855 
2856     END LOOP;
2857         x_Header_Payment_rec := x_Header_Payment_tbl(1);
2858 
2859     --  PK sent and no rows found
2860 
2861     IF
2862     (p_payment_number IS NOT NULL
2863      AND
2864      p_payment_number <> FND_API.G_MISS_NUM)
2865     AND
2866     (p_header_id IS NOT NULL
2867      AND
2868      p_header_id <> FND_API.G_MISS_NUM)
2869     AND
2870     (x_Header_Payment_tbl.COUNT = 0)
2871     THEN
2872         RAISE NO_DATA_FOUND;
2873     END IF;
2874 
2875 
2876 EXCEPTION
2877 
2878     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2879 
2880         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2881 
2882     WHEN OTHERS THEN
2883 
2884         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2885         THEN
2886             oe_msg_pub.Add_Exc_Msg
2887             (   G_PKG_NAME
2888             ,   'Query_Row'
2889             );
2890         END IF;
2891 
2892         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2893 
2894 END Query_Row;
2895 
2896 
2897 
2898 --  Procedure Query_Rows
2899 
2900 --
2901 
2902 Procedure Query_Rows
2903 (   p_payment_number        IN  NUMBER :=
2904                                         FND_API.G_MISS_NUM
2905 ,   p_header_id                     IN  NUMBER :=
2906                                         FND_API.G_MISS_NUM
2907 ,  x_header_Payment_tbl   IN OUT NOCOPY OE_Order_PUB.Header_Payment_Tbl_Type
2908 )
2909 IS
2910 l_Header_Payment_rec          OE_Order_PUB.Header_Payment_Rec_Type;
2911 
2912 CURSOR l_Header_Payment_csr IS
2913     SELECT  ATTRIBUTE1
2914     ,       ATTRIBUTE2
2915     ,       ATTRIBUTE3
2916     ,       ATTRIBUTE4
2917     ,       ATTRIBUTE5
2918     ,       ATTRIBUTE6
2919     ,       ATTRIBUTE7
2920     ,       ATTRIBUTE8
2921     ,       ATTRIBUTE9
2922     ,       ATTRIBUTE10
2923     ,       ATTRIBUTE11
2924     ,       ATTRIBUTE12
2925     ,       ATTRIBUTE13
2926     ,       ATTRIBUTE14
2927     ,       ATTRIBUTE15
2928     ,       CONTEXT
2929     ,       CREATED_BY
2930     ,       CREATION_DATE
2931     ,       LAST_UPDATED_BY
2932     ,       LAST_UPDATE_DATE
2933     ,       LAST_UPDATE_LOGIN
2934     ,       CHECK_NUMBER		--R12 CC Encryption Verify
2935     ,       CREDIT_CARD_APPROVAL_CODE
2936     ,       CREDIT_CARD_APPROVAL_DATE
2937     ,       CREDIT_CARD_CODE
2938     ,       CREDIT_CARD_EXPIRATION_DATE
2939     ,       CREDIT_CARD_HOLDER_NAME
2940     ,       CREDIT_CARD_NUMBER	--R12 CC Encryption Verify
2941     ,       PAYMENT_LEVEL_CODE
2942     ,       COMMITMENT_APPLIED_AMOUNT
2943     ,       COMMITMENT_INTERFACED_AMOUNT
2944     ,       HEADER_ID
2945     ,       LINE_ID
2946     ,       PAYMENT_AMOUNT
2947     ,       PAYMENT_PERCENTAGE -- Added for bug 8478559
2948     ,       PAYMENT_COLLECTION_EVENT
2949     ,       PAYMENT_TRX_ID
2950     ,       PAYMENT_TYPE_CODE
2951     ,       PAYMENT_SET_ID
2952     ,       PREPAID_AMOUNT
2953     ,       PROGRAM_APPLICATION_ID
2954     ,       PROGRAM_ID
2955     ,       PROGRAM_UPDATE_DATE
2956     ,       RECEIPT_METHOD_ID
2957     ,       REQUEST_ID
2958     ,       TANGIBLE_ID		--R12 CC Encryption Verify
2959     ,       LOCK_CONTROL
2960     ,       PAYMENT_NUMBER
2961     ,       DEFER_PAYMENT_PROCESSING_FLAG
2962     ,       TRXN_EXTENSION_ID
2963     FROM    OE_PAYMENTS
2964     WHERE HEADER_ID = p_header_id
2965     AND     LINE_ID IS NULL
2966 	;
2967 
2968 --
2969 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2970 --
2971 --R12 CC Encryption Verify
2972 x_bank_account_number VARCHAR2(100); --bug 5170754
2973 x_check_number        varchar2(100);
2974 l_return_status      VARCHAR2(30) := NULL ;
2975 l_msg_count          NUMBER := 0 ;
2976 l_msg_data           VARCHAR2(2000) := NULL ;
2977 --R12 CC Encryption
2978 
2979 BEGIN
2980 
2981     --  Loop over fetched records
2982 
2983     FOR l_implicit_rec IN l_Header_Payment_csr LOOP
2984 
2985         l_Header_Payment_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
2986         l_Header_Payment_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
2987         l_Header_Payment_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
2988         l_Header_Payment_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
2989         l_Header_Payment_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
2990         l_Header_Payment_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
2991         l_Header_Payment_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
2992         l_Header_Payment_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
2993         l_Header_Payment_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
2994         l_Header_Payment_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
2995         l_Header_Payment_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
2996         l_Header_Payment_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
2997         l_Header_Payment_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
2998         l_Header_Payment_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
2999         l_Header_Payment_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
3000         l_Header_Payment_rec.context   := l_implicit_rec.CONTEXT;
3001         l_Header_Payment_rec.created_by := l_implicit_rec.CREATED_BY;
3002         l_Header_Payment_rec.creation_date := l_implicit_rec.CREATION_DATE;
3003         l_Header_Payment_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
3004         l_Header_Payment_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
3005         l_Header_Payment_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
3006         --R12 CC Encryption Verify
3007 	l_Header_Payment_rec.check_number := l_implicit_rec.CHECK_NUMBER;
3008         l_Header_Payment_rec.credit_card_approval_code := l_implicit_rec.CREDIT_CARD_APPROVAL_CODE;
3009         l_Header_Payment_rec.credit_card_approval_date := l_implicit_rec.CREDIT_CARD_APPROVAL_DATE;
3010         l_Header_Payment_rec.credit_card_code := l_implicit_rec.CREDIT_CARD_CODE;
3011         l_Header_Payment_rec.credit_card_expiration_date := l_implicit_rec.CREDIT_CARD_EXPIRATION_DATE;
3012         l_Header_Payment_rec.credit_card_holder_name := l_implicit_rec.CREDIT_CARD_HOLDER_NAME;
3013         l_Header_Payment_rec.credit_card_number := l_implicit_rec.CREDIT_CARD_NUMBER;
3014 	--R12 CC Encryption Verify
3015         l_Header_Payment_rec.payment_level_code := l_implicit_rec.PAYMENT_LEVEL_CODE;
3016         l_Header_Payment_rec.commitment_applied_amount := l_implicit_rec.COMMITMENT_APPLIED_AMOUNT;
3017         l_Header_Payment_rec.commitment_interfaced_amount := l_implicit_rec.COMMITMENT_INTERFACED_AMOUNT;
3018         l_Header_Payment_rec.header_id := l_implicit_rec.HEADER_ID;
3019         l_Header_Payment_rec.line_id   := l_implicit_rec.LINE_ID;
3020         l_Header_Payment_rec.payment_amount := l_implicit_rec.PAYMENT_AMOUNT;
3021         l_Header_Payment_rec.payment_percentage := l_implicit_rec.PAYMENT_PERCENTAGE; -- Added for bug 8478559
3022         l_Header_Payment_rec.payment_collection_event := l_implicit_rec.PAYMENT_COLLECTION_EVENT;
3023         l_Header_Payment_rec.payment_trx_id := l_implicit_rec.PAYMENT_TRX_ID;
3024         l_Header_Payment_rec.payment_type_code := l_implicit_rec.PAYMENT_TYPE_CODE;
3025         l_Header_Payment_rec.payment_set_id := l_implicit_rec.PAYMENT_SET_ID;
3026         l_Header_Payment_rec.prepaid_amount := l_implicit_rec.PREPAID_AMOUNT;
3027         l_Header_Payment_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
3028         l_Header_Payment_rec.program_id := l_implicit_rec.PROGRAM_ID;
3029         l_Header_Payment_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
3030         l_Header_Payment_rec.receipt_method_id := l_implicit_rec.RECEIPT_METHOD_ID;
3031         l_Header_Payment_rec.request_id := l_implicit_rec.REQUEST_ID;
3032         l_Header_Payment_rec.tangible_id := l_implicit_rec.TANGIBLE_ID;  --R12 CC Encryption Verify
3033         l_Header_Payment_rec.lock_control   := l_implicit_rec.LOCK_CONTROL;
3034         l_Header_Payment_rec.payment_number   := l_implicit_rec.PAYMENT_NUMBER;
3035         l_Header_Payment_rec.defer_payment_processing_flag := l_implicit_rec.DEFER_PAYMENT_PROCESSING_FLAG;
3036 	--R12 CC Encryption
3037 	l_Header_Payment_rec.trxn_extension_id := l_implicit_rec.trxn_extension_id;
3038 	--Populating the header payment record by querying the Payments tables
3039 	--as they are no longer stored in OM tables
3040 	IF l_implicit_rec.trxn_extension_id is not null then
3041 		OE_Payment_Trxn_Util.Get_Payment_Trxn_Info(p_header_id => p_header_id,
3042 		 P_trxn_extension_id => l_Header_Payment_rec.trxn_extension_id,
3043 		 P_payment_type_code => l_Header_Payment_rec.payment_type_code ,
3044 		 X_credit_card_number => l_Header_Payment_rec.credit_card_number,
3045 		 X_credit_card_holder_name => l_Header_Payment_rec.credit_card_holder_name,
3046 		 X_credit_card_expiration_date => l_Header_Payment_rec.credit_card_expiration_date,
3047 		 X_credit_card_code => l_Header_Payment_rec.credit_card_code,
3048 		 X_credit_card_approval_code => l_Header_Payment_rec.credit_card_approval_code,
3049 		 X_credit_card_approval_date => l_Header_Payment_rec.credit_card_approval_date,
3050 		 X_bank_account_number => X_bank_account_number,
3051 		 --X_check_number => X_check_number	,
3052 		 X_instrument_security_code => l_Header_Payment_rec.instrument_security_code,
3053 		 X_instrument_id	=> l_Header_Payment_rec.cc_instrument_id,
3054 		 X_instrument_assignment_id => l_Header_Payment_rec.cc_instrument_assignment_id,
3055 		 X_return_status => l_return_status,
3056 		 X_msg_count => l_msg_count,
3057 		 X_msg_data => l_msg_data);
3058 	END IF;
3059 	--R12 CC Encryption
3060 
3061 	x_Header_Payment_tbl(x_Header_Payment_tbl.COUNT + 1) := l_Header_Payment_rec;
3062 
3063     END LOOP;
3064 
3065     --  Return fetched table
3066 
3067 
3068 EXCEPTION
3069 
3070     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3071 
3072         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3073 
3074     WHEN OTHERS THEN
3075 
3076         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3077         THEN
3078             oe_msg_pub.Add_Exc_Msg
3079             (   G_PKG_NAME
3080             ,   'Query_Rows'
3081             );
3082         END IF;
3083 
3084         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3085 
3086 END Query_Rows;
3087 
3088 --  Procedure       lock_Row
3089 --
3090 
3091 PROCEDURE Lock_Row
3092 (   x_return_status                 OUT NOCOPY VARCHAR2
3093 ,   p_x_Header_Payment_rec IN OUT NOCOPY  OE_Order_PUB.Header_Payment_Rec_Type
3094 ,   p_payment_number               IN  NUMBER
3095 ,   p_header_id                    IN  NUMBER
3096 )
3097 IS
3098 l_payment_number	      NUMBER;
3099 l_header_id     	      NUMBER;
3100 l_Header_Payment_rec          OE_Order_PUB.Header_Payment_Rec_Type;
3101 l_lock_control                NUMBER;
3102 --
3103 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3104 --
3105 BEGIN
3106 
3107     IF l_debug_level  > 0 THEN
3108         oe_debug_pub.add(  'ENTERING OE_HEADER_Payment_UTIL.LOCK_ROW' , 1 ) ;
3109     END IF;
3110 
3111     SAVEPOINT Lock_Row;
3112 
3113     l_lock_control := NULL;
3114 
3115     -- Retrieve the primary key.
3116     IF p_payment_number <> FND_API.G_MISS_NUM AND
3117        p_header_id <> FND_API.G_MISS_NUM THEN
3118         l_payment_number := p_payment_number;
3119         l_header_id := p_header_id;
3120     ELSE
3121         l_payment_number := p_x_header_Payment_rec.payment_number;
3122         l_header_id := p_x_header_Payment_rec.header_id;
3123         l_lock_control    := p_x_header_Payment_rec.lock_control;
3124     END IF;
3125 
3126    SELECT  payment_number
3127     INTO   l_payment_number
3128     FROM   oe_payments
3129     WHERE  payment_number = l_payment_number
3130     AND    header_id = l_header_id
3131     AND    line_id is null
3132     FOR UPDATE NOWAIT;
3133 
3134     IF l_debug_level  > 0 THEN
3135         oe_debug_pub.add(  'SELECTED FOR UPDATE' , 1 ) ;
3136     END IF;
3137 
3138     OE_Header_Payment_Util.Query_Row
3139 	(p_payment_number    => l_payment_number
3140 	,p_header_id         => l_header_id
3141 	,x_header_Payment_rec => p_x_header_Payment_rec );
3142 
3143 
3144     -- If lock_control is null / missing, then return the locked record.
3145 
3146     IF l_lock_control is null OR
3147        l_lock_control <> FND_API.G_MISS_NUM THEN
3148 
3149         --  Set return status
3150         x_return_status                := FND_API.G_RET_STS_SUCCESS;
3151         p_x_header_Payment_rec.return_status       := FND_API.G_RET_STS_SUCCESS;
3152 
3153         RETURN;
3154 
3155     END IF;
3156 
3157     --  Row locked. If the whole record is passed, then
3158     --  Compare IN attributes to DB attributes.
3159 
3160     IF  OE_GLOBALS.Equal(p_x_Header_Payment_rec.lock_control,
3161                          l_lock_control)
3162     THEN
3163 
3164         --  Row has not changed. Set out parameter.
3165 
3166         p_x_Header_Payment_rec           := l_Header_Payment_rec;
3167 
3168         --  Set return status
3169 
3170         x_return_status                := FND_API.G_RET_STS_SUCCESS;
3171         p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_SUCCESS;
3172 
3173     ELSE
3174 
3175         --  Row has changed by another user.
3176 
3177         x_return_status                := FND_API.G_RET_STS_ERROR;
3178         p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
3179 
3180         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3181         THEN
3182 
3183             -- Release the lock
3184 	    ROLLBACK TO Lock_Row;
3185 
3186             FND_MESSAGE.SET_NAME('ONT','OE_LOCK_ROW_CHANGED');
3187             oe_msg_pub.Add;
3188 
3189         END IF;
3190 
3191     END IF;
3192 
3193 EXCEPTION
3194 
3195     WHEN NO_DATA_FOUND THEN
3196 
3197         x_return_status                := FND_API.G_RET_STS_ERROR;
3198         p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
3199 
3200         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3201         THEN
3202 
3203             FND_MESSAGE.SET_NAME('ONT','OE_LOCK_ROW_DELETED');
3204             oe_msg_pub.Add;
3205 
3206         END IF;
3207     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
3208 
3209         x_return_status                := FND_API.G_RET_STS_ERROR;
3210         p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
3211 
3212         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3213         THEN
3214 
3215             FND_MESSAGE.SET_NAME('ONT','OE_LOCK_ROW_ALREADY_LOCKED');
3216             oe_msg_pub.Add;
3217 
3218         END IF;
3219     WHEN OTHERS THEN
3220 
3221         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
3222         p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3223 
3224         IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3225         THEN
3226             oe_msg_pub.Add_Exc_Msg
3227             (   G_PKG_NAME
3228             ,   'Lock_Row'
3229             );
3230         END IF;
3231 
3232 END Lock_Row;
3233 
3234 PROCEDURE Lock_Rows
3235 (   p_payment_number        IN  NUMBER :=
3236                                         FND_API.G_MISS_NUM
3237 ,   p_header_id              IN  NUMBER :=
3238                                         FND_API.G_MISS_NUM
3239 ,   x_header_Payment_tbl     OUT NOCOPY OE_Order_PUB.header_Payment_Tbl_Type
3240 ,   x_return_status          OUT NOCOPY VARCHAR2
3241  )
3242 IS
3243   CURSOR lock_hdr_Payments(p_header_id  NUMBER) IS
3244   SELECT payment_number
3245   FROM   oe_payments
3246   WHERE  header_id = p_header_id
3247   AND    line_id is NULL
3248     FOR UPDATE NOWAIT;
3249 
3250   l_payment_number    NUMBER;
3251   --
3252   l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3253   --
3254 BEGIN
3255 
3256     IF l_debug_level  > 0 THEN
3257         oe_debug_pub.add(  'ENTERING OE_HEADER_PaymentS_UTIL.LOCK_ROWS' , 1 ) ;
3258     END IF;
3259 /*
3260     IF (p_payment_number IS NOT NULL AND
3261         p_payment_number <> FND_API.G_MISS_NUM) AND
3262        (p_header_id IS NOT NULL AND
3263         p_header_id <> FND_API.G_MISS_NUM)
3264     THEN
3265       IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3266       THEN
3267         OE_MSG_PUB.Add_Exc_Msg
3268         (   G_PKG_NAME
3269           , 'Lock Rows'
3270           , 'Keys are mutually exclusive: payment_number = '||
3271              p_payment_number || ', header_id = '|| p_header_id );
3272       END IF;
3273 
3274       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3275 
3276     END IF;
3277 */
3278    IF p_payment_number <> FND_API.G_MISS_NUM AND
3279       p_header_id <> FND_API.G_MISS_NUM THEN
3280 
3281      SELECT payment_number
3282      INTO   l_payment_number
3283      FROM   OE_PAYMENTS
3284      WHERE  payment_number   = p_payment_number
3285      AND    header_id = p_header_id
3286      AND line_id is NULL
3287      FOR UPDATE NOWAIT;
3288 
3289    ELSE
3290 
3291    BEGIN
3292 
3293      IF p_header_id <> FND_API.G_MISS_NUM THEN
3294 
3295        SAVEPOINT LOCK_ROWS;
3296        OPEN lock_hdr_Payments(p_header_id);
3297 
3298        LOOP
3299          FETCH lock_hdr_Payments INTO l_payment_number;
3300          EXIT WHEN lock_hdr_Payments%NOTFOUND;
3301        END LOOP;
3302 
3303        CLOSE lock_hdr_Payments;
3304 
3305      END IF;
3306 
3307    EXCEPTION
3308      WHEN OTHERS THEN
3309        ROLLBACK TO LOCK_ROWS;
3310 
3311        IF lock_hdr_Payments%ISOPEN THEN
3312          CLOSE lock_hdr_Payments;
3313        END IF;
3314 
3315        RAISE;
3316    END;
3317 
3318    END IF;
3319 
3320    -- locked all
3321 
3322    OE_Header_Payment_Util.Query_Rows
3323      (p_payment_number          => p_payment_number
3324      ,p_header_id                => p_header_id
3325      ,x_header_Payment_tbl       => x_header_Payment_tbl
3326      );
3327 
3328    x_return_status  := FND_API.G_RET_STS_SUCCESS;
3329 
3330    IF l_debug_level  > 0 THEN
3331        oe_debug_pub.add(  'EXITING OE_HEADER_PaymentS_UTIL.LOCK_ROWS' , 1 ) ;
3332    END IF;
3333 
3334 EXCEPTION
3335    WHEN NO_DATA_FOUND THEN
3336 
3337      x_return_status                := FND_API.G_RET_STS_ERROR;
3338 
3339      IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
3340      THEN
3341        fnd_message.set_name('ONT','OE_LOCK_ROW_DELETED');
3342        OE_MSG_PUB.Add;
3343      END IF;
3344 
3345     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
3346 
3347       x_return_status                := FND_API.G_RET_STS_ERROR;
3348       IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
3349       THEN
3350         fnd_message.set_name('ONT','OE_LOCK_ROW_ALREADY_LOCKED');
3351         OE_MSG_PUB.Add;
3352       END IF;
3353 
3354     WHEN OTHERS THEN
3355 
3356         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
3357 
3358       IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3359       THEN
3360         OE_MSG_PUB.Add_Exc_Msg
3361         (   G_PKG_NAME
3362          ,   'Lock_Rows'
3363         );
3364       END IF;
3365 
3366 END Lock_Rows;
3367 
3368 
3369 --  Function Get_Values
3370 
3371 FUNCTION Get_Values
3372 (   p_Header_Payment_rec          IN        OE_Order_PUB.Header_Payment_Rec_Type
3373 ,   p_old_Header_Payment_rec        IN  OE_Order_PUB.Header_Payment_Rec_Type :=
3374                                         OE_Order_PUB.G_MISS_HEADER_Payment_REC
3375 )RETURN OE_Order_PUB.Header_Payment_Val_Rec_Type
3376 IS
3377 l_Header_Payment_val_rec      OE_Order_PUB.Header_Payment_Val_Rec_Type;
3378 --
3379 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3380 --
3381 BEGIN
3382 
3383     IF (p_Header_Payment_rec.payment_collection_event IS NULL OR
3384         p_Header_Payment_rec.payment_collection_event <> FND_API.G_MISS_CHAR) AND
3385         NOT OE_GLOBALS.Equal(p_Header_Payment_rec.payment_collection_event,
3386         p_old_Header_Payment_rec.payment_collection_event)
3387     THEN
3388         l_Header_Payment_val_rec.payment_collection_event_name := OE_Id_To_Value.payment_collection_event_name
3389         (   p_payment_collection_event        => p_Header_Payment_rec.payment_collection_event
3390         );
3391     END IF;
3392 
3393     IF (p_Header_Payment_rec.receipt_method_id IS NULL OR
3394         p_Header_Payment_rec.receipt_method_id <> FND_API.G_MISS_NUM) AND
3395         NOT OE_GLOBALS.Equal(p_Header_Payment_rec.receipt_method_id,
3396         p_old_Header_Payment_rec.receipt_method_id)
3397     THEN
3398         l_Header_Payment_val_rec.receipt_method := OE_Id_To_Value.Receipt_Method
3399         (   p_receipt_method                => p_Header_Payment_rec.receipt_method_id
3400         );
3401     END IF;
3402 
3403     IF (p_Header_Payment_rec.payment_type_code IS NULL OR
3404         p_Header_Payment_rec.payment_type_code <> FND_API.G_MISS_CHAR) AND
3405         NOT OE_GLOBALS.Equal(p_Header_Payment_rec.payment_type_code,
3406         p_old_Header_Payment_rec.payment_type_code)
3407     THEN
3408         l_Header_Payment_val_rec.payment_type := OE_Id_To_Value.payment_type
3409         (   p_payment_type_code => p_Header_Payment_rec.payment_type_code
3410         );
3411     END IF;
3412 
3413     RETURN l_Header_Payment_val_rec;
3414 
3415 END Get_Values;
3416 
3417 --  Procedure Get_Ids
3418 
3419 PROCEDURE Get_Ids
3420 (   p_x_Header_Payment_rec IN OUT NOCOPY  OE_Order_PUB.Header_Payment_Rec_Type
3421 ,   p_Header_Payment_val_rec        IN  OE_Order_PUB.Header_Payment_Val_Rec_Type
3422 )
3423 IS
3424 
3425 --
3426 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3427 --
3428 BEGIN
3429 
3430     --  initialize  return_status.
3431 
3432     p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_SUCCESS;
3433 
3434     --  initialize l_Header_Payment_rec.
3435 
3436 
3437 
3438     IF  p_Header_Payment_val_rec.payment_collection_event_name <> FND_API.G_MISS_CHAR
3439     THEN
3440 
3441         IF p_x_Header_Payment_rec.payment_collection_event  <> FND_API.G_MISS_CHAR THEN
3442 
3443             IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
3444             THEN
3445 
3446                 FND_MESSAGE.SET_NAME('ONT','OE_BOTH_VAL_AND_ID_EXIST');
3447                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','payment_collection_event_name');
3448                 oe_msg_pub.Add;
3449 
3450             END IF;
3451 
3452         ELSE
3453 
3454             p_x_Header_Payment_rec.payment_collection_event := OE_Value_To_Id.payment_collection_event_name
3455             (   p_payment_collection_event     => p_Header_Payment_val_rec.payment_collection_event_name
3456             );
3457 
3458             IF p_x_Header_Payment_rec.payment_collection_event = FND_API.G_MISS_CHAR THEN
3459                p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
3460             END IF;
3461 
3462         END IF;
3463 
3464     END IF;
3465 
3466     IF  p_Header_Payment_val_rec.payment_type <> FND_API.G_MISS_CHAR
3467     THEN
3468 
3469         IF p_x_Header_Payment_rec.payment_type_code <> FND_API.G_MISS_CHAR THEN
3470 
3471 
3472             IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
3473             THEN
3474 
3475                 FND_MESSAGE.SET_NAME('ONT','OE_BOTH_VAL_AND_ID_EXIST');
3476                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','payment_type');
3477                 oe_msg_pub.Add;
3478 
3479             END IF;
3480 
3481         ELSE
3482 
3483             p_x_Header_Payment_rec.payment_type_code := OE_Value_To_Id.payment_type
3484             (   p_payment_type => p_Header_Payment_val_rec.payment_type
3485             );
3486 
3487             IF p_x_Header_Payment_rec.payment_type_code = FND_API.G_MISS_CHAR THEN
3488                 p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
3489             END IF;
3490 
3491         END IF;
3492 
3493     END IF;
3494 
3495 
3496     IF  p_Header_Payment_val_rec.receipt_method <> FND_API.G_MISS_CHAR
3497     THEN
3498 
3499         IF p_x_Header_Payment_rec.receipt_method_id <> FND_API.G_MISS_NUM THEN
3500 
3501 
3502             IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
3503             THEN
3504 
3505                 FND_MESSAGE.SET_NAME('ONT','OE_BOTH_VAL_AND_ID_EXIST');
3506                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Receipt_Method');
3507                 oe_msg_pub.Add;
3508 
3509             END IF;
3510 
3511         ELSE
3512 
3513             p_x_Header_Payment_rec.receipt_method_id := OE_Value_To_Id.Receipt_Method
3514             (   p_receipt_method => p_Header_Payment_val_rec.receipt_method
3515             );
3516 
3517             IF p_x_Header_Payment_rec.receipt_method_id = FND_API.G_MISS_NUM THEN
3518                 p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
3519             END IF;
3520 
3521         END IF;
3522 
3523     END IF;
3524 
3525     -- Added for bug 8478559
3526     IF p_Header_Payment_val_rec.payment_percentage <> FND_API.G_MISS_NUM THEN
3527 
3528        IF p_x_Header_Payment_rec.payment_percentage <> FND_API.G_MISS_NUM OR
3529           p_x_Header_Payment_rec.payment_amount <> FND_API.G_MISS_NUM
3530        THEN
3531 
3532             IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
3533             THEN
3534 
3535                 FND_MESSAGE.SET_NAME('ONT','OE_BOTH_VAL_AND_ID_EXIST');
3536                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','payment_percentage');
3537                 oe_msg_pub.Add;
3538 
3539             END IF;
3540        ELSE
3541             p_x_Header_Payment_rec.payment_percentage := OE_Value_To_Id.Payment_Percentage
3542             (   p_payment_percentage => p_Header_Payment_val_rec.payment_percentage
3543             );
3544 
3545             IF p_x_Header_Payment_rec.payment_percentage = FND_API.G_MISS_NUM THEN
3546                 p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
3547             END IF;
3548 
3549 
3550        END IF;
3551 
3552     END IF;
3553     -- End of bug 8478559
3554 
3555 
3556 END Get_Ids;
3557 
3558 PROCEDURE Pre_Write_Process
3559   ( p_x_header_Payment_rec IN OUT NOCOPY OE_ORDER_PUB.header_Payment_rec_type,
3560     p_old_header_Payment_rec IN OE_ORDER_PUB.header_Payment_rec_type := OE_ORDER_PUB.G_MISS_HEADER_PAYMENT_REC )
3561     IS
3562 l_return_status varchar2(30);
3563 l_ordered_date DATE;
3564 l_transactional_curr_code VARCHAR2(30);
3565 l_invoice_to_org_id NUMBER;
3566 l_bank_acct_id                 NUMBER;
3567 l_bank_acct_uses_id            NUMBER;
3568 l_hdr_inv_to_cust_id           NUMBER;
3569 l_trx_date		       DATE;
3570 --
3571 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3572 --
3573 --R12 CC Encryption
3574 l_update_card_flag	       VARCHAR2(1) := 'N';
3575 l_trxn_extension_id	       NUMBER;
3576 l_msg_count		       NUMBER;
3577 l_msg_data		       VARCHAR2(2000);
3578 l_exists_flag		       VARCHAR2(1) := 'N';
3579 l_payment_exists	       VARCHAR2(1) := 'N';
3580 l_old_trxn_extension_id	       NUMBER;
3581 --R12 CC Encryption
3582 
3583 BEGIN
3584 
3585   IF l_debug_level > 0 THEN
3586      oe_debug_pub.add(  'entering oe_header_payment_util.Pre_Write_Process. payment_type_code'||p_x_header_Payment_rec.payment_type_code);
3587   END IF;
3588   --R12 CC Encryption
3589   --Querying the invoice to org id before checking the payment type
3590   --as it is needed for both credit card and check payments.
3591 	select ordered_date, transactional_curr_code, invoice_to_org_id
3592 	into l_ordered_date, l_transactional_curr_code, l_invoice_to_org_id
3593 	from oe_order_headers
3594 	where header_id=p_x_header_Payment_rec.header_id;
3595 
3596 	IF l_debug_level > 0 THEN
3597 	   oe_debug_pub.add(  'l_transactional_curr_code:'||l_transactional_curr_code||':l_invoice_to_org_id:'||l_invoice_to_org_id);
3598 	   oe_debug_pub.add(' old trxn extn id ksurendr'||p_old_header_Payment_rec.trxn_extension_id);
3599 	END IF;
3600 
3601   --For payment types like Credit Card, ACH and Direct Debit, the processing
3602   --is handled in OE_PAYMENT_TRXN_UTIL package. So need to modify this part
3603   --to call the appropriate procedures for create, update or copy.
3604   IF p_x_header_Payment_rec.payment_type_code IN ('CREDIT_CARD','ACH','DIRECT_DEBIT')  THEN
3605 	--Verify
3606 
3607 	BEGIN
3608 	   SELECT customer_id
3609 	   INTO   l_hdr_inv_to_cust_id
3610 	   FROM   oe_invoice_to_orgs_v
3611 	   WHERE  organization_id = l_invoice_to_org_id;
3612 	EXCEPTION
3613 	    WHEN OTHERS THEN
3614 	      IF l_debug_level  > 0 THEN
3615 		 oe_debug_pub.add(  'IN OTHERS EXCEPTION ( OE_INVOICE_TO_ORGS_V ) '||SQLERRM , 1 ) ;
3616 	      END IF;
3617 	END;
3618 
3619 	IF l_debug_level  > 0 THEN
3620 	 oe_debug_pub.add('l_hdr_inv_to_cust_id -->' || l_hdr_inv_to_cust_id );
3621 	 oe_debug_pub.add('p_site_use_id --->'||l_invoice_to_org_id);
3622 	 --oe_debug_pub.add('cc number : ' || p_x_header_payment_rec.credit_card_number );
3623 	 --oe_debug_pub.add('cc name : ' || p_x_header_payment_rec.credit_card_holder_name );
3624 	 --oe_debug_pub.add('exp date : ' || to_char(p_x_header_payment_rec.credit_card_expiration_date, 'DD-MON-YYYY') );
3625 	 oe_debug_pub.add('instr id...'||p_x_header_payment_rec.cc_instrument_id);
3626 	 oe_debug_pub.add('instr assgn id'||p_x_header_payment_rec.cc_instrument_assignment_id);
3627 	 oe_debug_pub.add('Operation...'||p_x_header_Payment_rec.operation);
3628 	 oe_debug_pub.add('trxn extn id'||p_x_header_Payment_rec.trxn_extension_id);
3629 	 --oe_debug_pub.add('New name'||p_x_header_Payment_rec.credit_card_holder_name);
3630 	 --oe_debug_pub.add('Old name'||p_old_header_Payment_rec.credit_card_holder_name);
3631 	 --Bug 7460481
3632 	 --oe_debug_pub.add('New Approval Code'||p_x_header_Payment_rec.credit_card_approval_code);
3633 	 --oe_debug_pub.add('Old Approval Code'||p_old_header_Payment_rec.credit_card_approval_code);
3634 	 --oe_debug_pub.add('New Approval Date'||p_x_header_Payment_rec.credit_card_approval_date);
3635 	 --oe_debug_pub.add('Old Approval Date'||p_old_header_Payment_rec.credit_card_approval_date);
3636 	END IF;
3637 
3638      IF p_x_header_Payment_rec.trxn_extension_id IS NOT NULL AND
3639         p_x_header_Payment_rec.trxn_extension_id <> FND_API.G_MISS_NUM
3640         AND p_x_header_Payment_rec.operation = OE_GLOBALS.G_OPR_CREATE AND
3641         nvl(oe_order_cache.g_header_rec.source_document_type_id, -99) <> 2 -- not a copy order Verify
3642      THEN
3643 	    --R12 CC Encryption
3644 	    --for orders coming from outside of Order Management, we need to call Oracle
3645 	    --Payments Copy Transaction API to get a new transaction extension id.
3646 	    BEGIN
3647 			OE_PAYMENT_TRXN_UTIL.Copy_Payment_TRXN
3648 			(P_header_id		=> p_x_header_Payment_rec.header_id,
3649 			p_line_id		=> p_x_header_payment_rec.line_id,
3650 			p_cust_id		=> l_hdr_inv_to_cust_id,
3651 			P_site_use_id		=> l_invoice_to_org_id,
3652 			p_trxn_extension_id	=> p_x_header_payment_rec.trxn_extension_id,
3653 			x_trxn_extension_id	=> l_trxn_extension_id,
3654 			X_return_status		=> l_return_status,
3655 			X_msg_count		=> l_msg_count,
3656 			X_msg_data		=> l_msg_data);
3657 			IF l_debug_level>0 THEN
3658 				oe_debug_pub.add('New trxn extension id after calling Copy_Payment_TRXN:'||l_trxn_extension_id);
3659 			END IF;
3660 	    EXCEPTION
3661 		WHEN FND_API.G_EXC_ERROR THEN
3662 			l_return_status := FND_API.G_RET_STS_ERROR;
3663 			RAISE FND_API.G_EXC_ERROR;
3664 		WHEN OTHERS THEN
3665 			IF l_debug_level>0 THEN
3666 				oe_debug_pub.add('After call to copy payment trxn - exception');
3667 			END IF;
3668 			RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3669 	    END;
3670 
3671 		p_x_header_payment_rec.trxn_extension_id := l_trxn_extension_id;
3672 
3673 	ELSIF p_x_header_payment_rec.operation = OE_GLOBALS.G_OPR_UPDATE THEN
3674 
3675 		IF l_debug_level > 0 THEN
3676 			oe_debug_pub.add('trxn id'||p_x_header_payment_rec.trxn_Extension_id);
3677 			oe_debug_pub.add('payemnt type'||p_x_header_payment_rec.payment_type_Code);
3678 			IF OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
3679                             p_x_Header_Payment_rec.credit_card_number,
3680 			    p_old_Header_Payment_rec.cc_instrument_id,
3681 			    p_x_Header_Payment_rec.cc_instrument_id) THEN
3682 			    	oe_debug_pub.add('same cc true');
3683 			ELSE
3684 				oe_debug_pub.add('diff cc');
3685 			END IF;
3686 			if OE_GLOBALS.Equal(p_old_header_Payment_rec.credit_card_holder_name,
3687 			p_x_header_Payment_rec.credit_card_holder_name) THEN
3688 				oe_debug_pub.add('Same name');
3689 			ELSE
3690 				oe_debug_pub.add('Diff name');
3691 			END IF;
3692 			if OE_GLOBALS.Equal(p_old_header_Payment_rec.credit_card_expiration_date,
3693 			p_x_header_Payment_rec.credit_card_expiration_date) THEN
3694 				oe_debug_pub.add('Same date');
3695 			ELSE
3696 				oe_debug_pub.add('Diff date');
3697 			END IF;
3698 			if OE_GLOBALS.Equal(p_old_header_payment_rec.instrument_security_code,
3699 			p_x_header_payment_rec.instrument_security_code) THEN
3700 				oe_debug_pub.add('Same cvv2');
3701 			ELSE
3702 				oe_debug_pub.add('Diff cvv2');
3703 			END IF;
3704 			if OE_GLOBALS.Equal(p_x_header_Payment_rec.payment_trx_id,
3705 			p_old_header_Payment_rec.payment_trx_id) THEN
3706 				oe_debug_pub.add('Same trxid');
3707 			ELSE
3708 				oe_debug_pub.add('Diff trxid');
3709 			END IF;
3710 			--Bug 7460481
3711 			IF OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_approval_code,
3712 			p_old_header_Payment_rec.credit_card_approval_code) THEN
3713 				oe_debug_pub.add('Same approval code');
3714 			ELSE
3715 				oe_debug_pub.add('Diff approval code');
3716 			END IF;
3717 		END IF;
3718 		IF  p_x_header_payment_rec.trxn_extension_id IS NOT NULL
3719 		AND p_x_header_payment_rec.trxn_extension_id <> FND_API.G_MISS_NUM
3720 		AND ((p_x_header_Payment_rec.payment_type_code = 'CREDIT_CARD'
3721 		AND OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
3722                             p_x_Header_Payment_rec.credit_card_number,
3723 			    p_old_Header_Payment_rec.cc_instrument_id,
3724 			    p_x_Header_Payment_rec.cc_instrument_id)
3725 		AND p_x_header_Payment_rec.credit_card_holder_name =
3726 		    p_old_header_Payment_rec.credit_card_holder_name
3727 		--12661167 AND p_x_header_Payment_rec.credit_card_expiration_date =
3728 		    --12661167 p_old_header_Payment_rec.credit_card_expiration_date
3729 		AND OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_expiration_date ,
3730 		    p_old_header_Payment_rec.credit_card_expiration_date) --12661167
3731 		AND OE_GLOBALS.Equal(p_x_header_Payment_rec.instrument_security_code, --Using OE_GLOBALS.Equal for cvv2
3732 		p_old_header_payment_rec.instrument_security_code)		      --as cvv2 might be null for certain cards
3733 		--Bug 7460481
3734 		AND OE_GLOBALS.Equal(p_x_header_payment_rec.credit_card_approval_code,
3735 		    p_old_header_Payment_rec.credit_card_approval_code))
3736 		OR (p_x_header_Payment_rec.payment_type_code IN ('ACH','DIRECT_DEBIT')
3737 		AND OE_GLOBALS.Equal(p_x_header_Payment_rec.payment_trx_id, p_old_header_Payment_rec.payment_trx_id))
3738 		OR (p_x_header_Payment_rec.payment_type_code IN ('CASH','WIRE_TRANSFER'))) THEN
3739 
3740 			--no operation is needed as payment information did not change
3741 			IF l_debug_level  > 0 THEN
3742 				oe_debug_pub.add('No change to payments attributes...');
3743 			END IF;
3744 			NULL;
3745 
3746 		--While changing the payment type from cash, check etc to
3747 		--credit card payment type, the operation would be update but the
3748 		--transaction extension id would be null.
3749 		ELSIF p_x_header_payment_rec.trxn_extension_id is null or
3750 		p_x_header_payment_rec.trxn_extension_id =FND_API.G_MISS_NUM THEN
3751 			IF l_debug_level > 0 THEN
3752 			   oe_debug_pub.add(  'getting payment_trx_id as cc details changed');
3753 			   oe_debug_pub.add('Operation is Update and trxn extension id is null');
3754 			   oe_debug_pub.add('Payment type has changed from check or cash to one which requires trxn extension id...');
3755 			END IF;
3756 
3757 			-- validate cc security code
3758 			IF p_x_Header_Payment_rec.payment_type_code = 'CREDIT_CARD' THEN
3759 				IF OE_Payment_Trxn_Util.g_CC_Security_Code_Use  IS NULL THEN
3760 					OE_Payment_Trxn_Util.g_CC_Security_Code_Use := OE_Payment_Trxn_Util.Get_CC_Security_Code_Use;
3761 				END IF;
3762 
3763 				IF OE_Payment_Trxn_Util.g_CC_Security_Code_Use  = 'REQUIRED' AND
3764 				p_x_Header_Payment_rec.instrument_security_code IS NULL THEN
3765 					FND_MESSAGE.SET_NAME('ONT','OE_CC_SECURITY_CODE_REQD');
3766 					OE_Msg_Pub.Add;
3767 					RAISE FND_API.G_EXC_ERROR;
3768 				END IF;
3769 			END IF;
3770 
3771 			--R12 CC Encryption
3772 			--Since the credit card numbers are encrypted, passing both the credit card
3773 			--numbers as well as instrument ids to determine if both the old and new
3774 			--values point to the same credit card number.
3775 			IF NOT OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
3776 					    p_x_Header_Payment_rec.credit_card_number,
3777 					    p_old_Header_Payment_rec.cc_instrument_id,
3778 					    p_x_Header_Payment_rec.cc_instrument_id)
3779 			OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_code,
3780 			p_old_header_Payment_rec.credit_card_code) THEN
3781 				IF NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_holder_name,
3782 				p_old_header_Payment_rec.credit_card_holder_name)
3783 				OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_expiration_date,
3784 				p_old_header_Payment_rec.credit_card_expiration_date)  THEN
3785 					l_update_card_flag := 'Y';
3786 				ELSE
3787 					l_update_card_flag := 'N';
3788 				END IF;
3789 			ELSIF NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_holder_name,
3790 			p_old_header_Payment_rec.credit_card_holder_name)
3791 			OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_expiration_date,
3792 			p_old_header_Payment_rec.credit_card_expiration_date)  THEN
3793 				l_update_card_flag := 'Y';
3794 			END IF;
3795 		     Begin
3796 				OE_PAYMENT_TRXN_UTIL.Create_Payment_TRXN
3797 				(p_header_id		=> p_x_header_Payment_rec.header_id,
3798 				 p_line_id		=> p_x_header_payment_rec.line_id,
3799 				 p_cust_id		=> l_hdr_inv_to_cust_id,
3800 				 P_site_use_id		=> l_invoice_to_org_id,
3801 				 P_payment_trx_id	=> p_x_header_payment_rec.payment_trx_id,
3802 				 P_payment_type_code	=> p_x_header_payment_rec.payment_type_code,
3803 				 p_payment_number	=> p_x_header_payment_rec.payment_number,
3804 				 P_card_number		=> p_x_header_payment_rec.credit_card_number,
3805 				 p_card_code		=> p_x_header_payment_rec.credit_card_code,
3806 				 P_card_holder_name	=> p_x_header_payment_rec.credit_card_holder_name,
3807 				 P_exp_date		=> p_x_header_payment_rec.credit_card_expiration_date,
3808 				 P_receipt_method_id	=> p_x_header_payment_rec.receipt_method_id,
3809 				 p_instrument_security_code => p_x_header_payment_rec.instrument_security_code,
3810 				 p_credit_card_approval_code => p_x_header_payment_rec.credit_card_approval_code,
3811 				 p_credit_card_approval_date =>	p_x_header_payment_rec.credit_card_approval_date,
3812 				 p_x_trxn_extension_id	=> p_x_header_payment_rec.trxn_extension_id,
3813 				 p_update_card_flag	=> l_update_card_flag,
3814 				 p_instrument_id	=> p_x_header_payment_rec.cc_instrument_id,
3815 				 p_instrument_assignment_id => p_x_header_payment_rec.cc_instrument_assignment_id,
3816 				 X_return_status	=> l_return_status,
3817 				 X_msg_count		=> l_msg_count,
3818 				 X_msg_data		=> l_msg_data);
3819 
3820 				 IF l_debug_level > 0 THEN
3821 					 oe_debug_pub.add('New trxn extension id after calling Create_Payment_TRXN:'||p_x_header_payment_rec.trxn_extension_id);
3822 				 END IF;
3823 		     Exception
3824 			   WHEN FND_API.G_EXC_ERROR THEN
3825 			       OE_MSG_PUB.Count_And_Get
3826 			       ( p_count => l_msg_count,
3827 				 p_data  => l_msg_data
3828 				);
3829 				l_return_status := FND_API.G_RET_STS_ERROR;
3830 				RAISE FND_API.G_EXC_ERROR;
3831 
3832 			    WHEN OTHERS THEN
3833 			     OE_MSG_PUB.Count_And_Get
3834 			     ( p_count => l_msg_count,
3835 			       p_data  => l_msg_data
3836 			     );
3837 			      FND_MESSAGE.SET_NAME('ONT','OE_VPM_CC_ACCT_NOT_SET');
3838 			      OE_MSG_PUB.ADD;
3839 			      IF l_debug_level  > 0 THEN
3840 				 oe_debug_pub.add(  'OEXUHPMB: ERROR IN ARP_BANK_PKG.PROCESS_CUST_BANK_ACCOUNT'||l_msg_data ) ;
3841 				 oe_debug_pub.add('Error messsge ksurendr'||l_return_status);
3842 			      END IF;
3843 			      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3844 		     end;
3845 
3846 		    IF l_debug_level > 0 THEN
3847 			oe_debug_pub.add( 'Return status...'||l_return_status	);
3848 		    END IF;
3849 
3850 			p_x_header_payment_rec.payment_trx_id := l_bank_acct_id;
3851 		ELSE
3852 		--payment transaction id already exists,  so need to update the IBY transaction
3853 		--extenstion table
3854 		BEGIN
3855 		-- validate cc security code
3856 		/*IF p_x_Header_Payment_rec.payment_type_code = 'CREDIT_CARD' THEN
3857 			IF OE_Payment_Trxn_Util.g_CC_Security_Code_Use  IS NULL THEN
3858 				OE_Payment_Trxn_Util.g_CC_Security_Code_Use := OE_Payment_Trxn_Util.Get_CC_Security_Code_Use;
3859 			END IF;
3860 			IF OE_Payment_Trxn_Util.g_CC_Security_Code_Use  = 'REQUIRED'
3861 			AND p_x_Header_Payment_rec.instrument_security_code IS NULL THEN
3862 				FND_MESSAGE.SET_NAME('ONT','OE_CC_SECURITY_CODE_REQD');
3863 				OE_Msg_Pub.Add;
3864 				RAISE FND_API.G_EXC_ERROR;
3865 			END IF;
3866 		END IF;*/
3867 
3868 		--R12 CC Encryption
3869 		--Since the credit card numbers are encrypted, passing both the credit card
3870 		--numbers as well as instrument ids to determine if both the old and new
3871 		--values point to the same credit card number.
3872 		IF NOT OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
3873 				    p_x_Header_Payment_rec.credit_card_number,
3874 				    p_old_Header_Payment_rec.cc_instrument_id,
3875 				    p_x_Header_Payment_rec.cc_instrument_id)
3876 		OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_code,
3877 		p_old_header_Payment_rec.credit_card_code) THEN
3878 			IF NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_holder_name,
3879 			p_old_header_Payment_rec.credit_card_holder_name)
3880 			OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_expiration_date,
3881 			p_old_header_Payment_rec.credit_card_expiration_date)  THEN
3882 				l_update_card_flag := 'Y';
3883 			ELSE
3884 				l_update_card_flag := 'N';
3885 			END IF;
3886 		ELSIF NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_holder_name,
3887 		p_old_header_Payment_rec.credit_card_holder_name)
3888 		OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_expiration_date,
3889 		p_old_header_Payment_rec.credit_card_expiration_date)  THEN
3890 			l_update_card_flag := 'Y';
3891 		END IF;
3892 		oe_debug_pub.add('b4 call to update pay...');
3893 		oe_debug_pub.add('Payment trx id'||p_x_header_payment_rec.payment_trx_id);
3894 		OE_PAYMENT_TRXN_UTIL.Update_Payment_TRXN
3895 		(P_header_id		=> p_x_header_Payment_rec.header_id,
3896 		 p_line_id		=> p_x_header_payment_rec.line_id,
3897 		 p_cust_id		=> l_hdr_inv_to_cust_id,
3898 		 P_site_use_id		=> l_invoice_to_org_id,
3899 		 P_payment_trx_id	=> p_x_header_payment_rec.payment_trx_id,
3900 		 P_payment_type_code	=> p_x_header_payment_rec.payment_type_code,
3901 		 p_payment_number	=> p_x_header_payment_rec.payment_number,
3902 		 p_card_number		=> p_x_header_payment_rec.credit_card_number,
3903 		 p_card_code		=> p_x_header_payment_rec.credit_card_code,
3904 		 p_card_holder_name	=> p_x_header_payment_rec.credit_card_holder_name,
3905 		 p_exp_date		=> p_x_header_payment_rec.credit_card_expiration_date,
3906 		 p_receipt_method_id	=> p_x_header_payment_rec.receipt_method_id,
3907 		 p_instrument_security_code => p_x_header_payment_rec.instrument_security_code,
3908 		 --Bug 7460481
3909                  p_credit_card_approval_code => p_x_header_payment_rec.credit_card_approval_code,
3910                  p_credit_card_approval_date =>	p_x_header_payment_rec.credit_card_approval_date,
3911                  --Bug 7460481
3912  		 p_trxn_extension_id	=> p_x_header_payment_rec.trxn_extension_id,
3913 		 p_update_card_flag	=> l_update_card_flag,
3914 		 p_instrument_id	=> p_x_header_payment_rec.cc_instrument_id,
3915 		 p_instrument_assignment_id => p_x_header_payment_rec.cc_instrument_assignment_id,
3916 		 X_return_status	=> l_return_status,
3917 		 X_msg_count		=> l_msg_count,
3918 		 X_msg_data		=> l_msg_data);
3919 		 IF l_debug_level  > 0 THEN
3920 			oe_debug_pub.add('trxn extension id after calling Update_Payment_TRXN:'||p_x_header_payment_rec.trxn_extension_id);
3921 		 END IF;
3922       EXCEPTION
3923       WHEN FND_API.G_EXC_ERROR THEN
3924 
3925 		IF l_debug_level > 0 THEN
3926 			oe_debug_pub.add('Update_Payment_TRXN  error....exc');
3927 			oe_debug_pub.add('After call to Update_Payment_TRXN'||l_return_status);
3928 			oe_debug_pub.add('Error'||sqlerrm);
3929 		END IF;
3930 	        l_return_status := FND_API.G_RET_STS_ERROR;
3931 	        OE_MSG_PUB.Count_And_Get
3932 		    ( p_count => l_msg_count,
3933 		      p_data  => l_msg_data
3934 		    );
3935  		RAISE FND_API.G_EXC_ERROR;
3936 
3937        WHEN OTHERS THEN
3938 	        OE_MSG_PUB.Count_And_Get
3939 	        ( p_count => l_msg_count,
3940 	         p_data  => l_msg_data
3941 	        );
3942 		IF l_debug_level  > 0 THEN
3943 			oe_debug_pub.add('After call to Update_Payment_TRXN --> Unexpected error');
3944 			oe_debug_pub.add('Error message '||sqlerrm);
3945 		END IF;
3946 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3947         END;
3948 
3949 	END IF;
3950 
3951 	IF l_debug_level > 0 THEN
3952 		oe_debug_pub.add(  'id already derived for this credit card');
3953 	END IF;
3954 
3955 	ELSIF p_x_header_payment_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN --not a copy order Verify
3956 
3957 		IF l_debug_level > 0 THEN
3958 		   oe_debug_pub.add(  'getting payment_trx_id as cc details changed');
3959 		END IF;
3960 
3961 	     /*l_trx_date := nvl(l_ordered_date, sysdate)
3962 			  - nvl( to_number(fnd_profile.value('ONT_DAYS_TO_BACKDATE_BANK_ACCT')), 0);*/
3963 		-- validate cc security code
3964 		IF p_x_Header_Payment_rec.payment_type_code = 'CREDIT_CARD' THEN
3965 			IF OE_Payment_Trxn_Util.g_CC_Security_Code_Use  IS NULL THEN
3966 				OE_Payment_Trxn_Util.g_CC_Security_Code_Use := OE_Payment_Trxn_Util.Get_CC_Security_Code_Use;
3967 			END IF;
3968 
3969 			IF OE_Payment_Trxn_Util.g_CC_Security_Code_Use  = 'REQUIRED' AND
3970 			p_x_Header_Payment_rec.instrument_security_code IS NULL THEN
3971 				FND_MESSAGE.SET_NAME('ONT','OE_CC_SECURITY_CODE_REQD');
3972 				OE_Msg_Pub.Add;
3973 				RAISE FND_API.G_EXC_ERROR;
3974 			END IF;
3975 		END IF;
3976 
3977 		--R12 CC Encryption
3978 		--Since the credit card numbers are encrypted, passing both the credit card
3979 		--numbers as well as instrument ids to determine if both the old and new
3980 		--values point to the same credit card number.
3981 		IF NOT OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
3982 				    p_x_Header_Payment_rec.credit_card_number,
3983 				    p_old_Header_Payment_rec.cc_instrument_id,
3984 				    p_x_Header_Payment_rec.cc_instrument_id)
3985 		OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_code,
3986 		p_old_header_Payment_rec.credit_card_code) THEN
3987 			IF l_debug_level > 0 THEN
3988 				oe_debug_pub.add('credit card details changed!');
3989 			END IF;
3990 
3991 			IF NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_holder_name,
3992 			p_old_header_Payment_rec.credit_card_holder_name)
3993 			OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_expiration_date,
3994 			p_old_header_Payment_rec.credit_card_expiration_date)  THEN
3995 				IF l_debug_level > 0 THEN
3996 					oe_debug_pub.add('Need to call update_card API');
3997 				END IF;
3998 
3999 				l_update_card_flag := 'Y';
4000 			ELSE
4001 				IF l_debug_level > 0 THEN
4002 					oe_debug_pub.add('Need not call update_card API');
4003 				END IF;
4004 
4005 				l_update_card_flag := 'N';
4006 			END IF;
4007 		ELSIF NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_holder_name,
4008 		p_old_header_Payment_rec.credit_card_holder_name)
4009 		OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_expiration_date,
4010 		p_old_header_Payment_rec.credit_card_expiration_date)  THEN
4011 			IF l_debug_level > 0 THEN
4012 				oe_debug_pub.add('Need to call update_card API 1');
4013 			END IF;
4014 
4015 			l_update_card_flag := 'Y';
4016 		END IF;
4017 
4018 
4019 	     Begin
4020 			IF l_debug_level > 0 THEN
4021 				oe_debug_pub.add('Before calling create_payment_trxn API');
4022 			END IF;
4023 			OE_PAYMENT_TRXN_UTIL.Create_Payment_TRXN
4024 			(p_header_id		=> p_x_header_Payment_rec.header_id,
4025 			 p_line_id		=> p_x_header_payment_rec.line_id,
4026 			 p_cust_id		=> l_hdr_inv_to_cust_id,
4027 			 P_site_use_id		=> l_invoice_to_org_id,
4028 			 P_payment_trx_id	=> p_x_header_payment_rec.payment_trx_id,
4029 			 P_payment_type_code	=> p_x_header_payment_rec.payment_type_code,
4030 			 p_payment_number	=> p_x_header_payment_rec.payment_number,
4031 			 P_card_number		=> p_x_header_payment_rec.credit_card_number,
4032 			 p_card_code		=> p_x_header_payment_rec.credit_card_code,
4033  			 P_card_holder_name	=> p_x_header_payment_rec.credit_card_holder_name,
4034 			 P_exp_date		=> p_x_header_payment_rec.credit_card_expiration_date,
4035 			 P_receipt_method_id	=> p_x_header_payment_rec.receipt_method_id,
4036 			 p_instrument_security_code => p_x_header_payment_rec.instrument_security_code,
4037 			 p_credit_card_approval_code => p_x_header_payment_rec.credit_card_approval_code,
4038  			 p_credit_card_approval_date =>	p_x_header_payment_rec.credit_card_approval_date,
4039 			 p_x_trxn_extension_id	=> p_x_header_payment_rec.trxn_extension_id,
4040 			 p_update_card_flag	=> l_update_card_flag,
4041 			 p_instrument_id	=> p_x_header_payment_rec.cc_instrument_id,
4042 			 p_instrument_assignment_id => p_x_header_payment_rec.cc_instrument_assignment_id,
4043 			 X_return_status	=> l_return_status,
4044 			 X_msg_count		=> l_msg_count,
4045 			 X_msg_data		=> l_msg_data);
4046 
4047 			 oe_debug_pub.add('New trxn extension id after calling Create_Payment_TRXN:'||p_x_header_payment_rec.trxn_extension_id);
4048 
4049 	     Exception
4050 		   WHEN FND_API.G_EXC_ERROR THEN
4051 		       OE_MSG_PUB.Count_And_Get
4052 		       ( p_count => l_msg_count,
4053 		         p_data  => l_msg_data
4054 		        );
4055 			l_return_status := FND_API.G_RET_STS_ERROR;
4056 
4057 		      FND_MESSAGE.SET_NAME('ONT','OE_VPM_CC_ACCT_NOT_SET');
4058 		      OE_MSG_PUB.ADD;
4059 
4060 		      RAISE FND_API.G_EXC_ERROR;
4061 
4062 		    WHEN OTHERS THEN
4063 		     OE_MSG_PUB.Count_And_Get
4064 		     ( p_count => l_msg_count,
4065 		       p_data  => l_msg_data
4066 		     );
4067 		      FND_MESSAGE.SET_NAME('ONT','OE_VPM_CC_ACCT_NOT_SET');
4068 		      OE_MSG_PUB.ADD;
4069 		      IF l_debug_level  > 0 THEN
4070 			 oe_debug_pub.add(  'OEXUHPMB: ERROR IN ARP_BANK_PKG.PROCESS_CUST_BANK_ACCOUNT'||l_msg_data ) ;
4071 			 oe_debug_pub.add('Error messsge ksurendr'||l_return_status);
4072 		      END IF;
4073 		      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4074 	     end;
4075 
4076 	    IF l_debug_level > 0 THEN
4077 		oe_debug_pub.add(  'after calling process_cust_bank_account. l_bank_acct_id:'||l_bank_acct_id);
4078 	    END IF;
4079 
4080 		p_x_header_payment_rec.payment_trx_id := l_bank_acct_id;
4081 	END IF;
4082   ELSIF p_x_header_Payment_rec.payment_type_code IN ('CHECK','CASH') AND
4083   p_x_header_payment_rec.operation = OE_GLOBALS.G_OPR_UPDATE
4084   AND p_old_header_Payment_rec.trxn_extension_id IS NOT NULL THEN
4085 
4086 	--For update operation, the trxn extension id of the original
4087 	--transaction needs to be deleted if it already exists as
4088 	--there is no trxn extension id for check payments.
4089 	IF l_debug_level > 0 THEN
4090 		oe_debug_pub.add(' Before calling delete payment trxn....');
4091 		oe_debug_pub.add(' Trxn extension to delete'||p_old_header_Payment_rec.trxn_extension_id);
4092 	END IF;
4093 	--Passing the invoice to org id as null as in case of
4094 	--deleting payments due to bill to change, we would need the
4095 	--old invoice to org id.
4096 	OE_PAYMENT_TRXN_UTIL.Delete_Payment_Trxn
4097 	(p_header_id => p_x_header_Payment_rec.header_id,
4098 	 p_line_id   => p_x_header_Payment_rec.line_id,
4099 	 p_payment_number =>  p_x_header_Payment_rec.payment_number,
4100 	 x_return_status  =>  l_return_status,
4101 	 x_msg_count      =>  l_msg_count,
4102 	 x_msg_data       =>  l_msg_data,
4103 	 p_trxn_extension_id => p_old_header_Payment_rec.trxn_extension_id,
4104 	 P_site_use_id	    => null
4105 	 );
4106 
4107 	IF l_return_status = FND_API.G_RET_STS_ERROR  THEN
4108 		RAISE FND_API.G_EXC_ERROR;
4109 	ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4110 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4111 	ELSIF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
4112 		IF l_debug_level > 0 THEN
4113 			oe_debug_pub.add('Before setting the trxn extension id to null...');
4114 			oe_debug_pub.add('Id that was deleted from iby tables...'||p_old_header_Payment_rec.trxn_extension_id);
4115 		END IF;
4116 	END IF;
4117 
4118 	IF l_debug_level > 0 THEN
4119 		oe_debug_pub.add('Successful deletion of trxn extension');
4120 		oe_debug_pub.add('Return status after delete trxn in pre write process '|| l_return_status);
4121 		oe_debug_pub.add('msg data'||l_msg_data);
4122 	END IF;
4123 	--Setting the trxn extension id as null as for transactions
4124 	--coming from sales order others tab, the trxn extension id would
4125 	--be updated in oe_payments table during updation.
4126 	p_x_header_Payment_rec.trxn_extension_id := null;
4127 
4128   END IF;
4129 
4130   -- fix bug 3740225, need to round amount according to precision
4131   -- when processing prepayment and refund to be in synch  with AR.
4132   IF p_x_header_payment_rec.payment_collection_event = 'PREPAY' THEN
4133     IF OE_ORDER_UTIL.G_Precision IS NULL THEN
4134       OE_ORDER_UTIL.G_Precision:=2;
4135     END IF;
4136 
4137     p_x_header_payment_rec.payment_amount
4138       := ROUND(p_x_header_payment_rec.payment_amount, OE_ORDER_UTIL.G_Precision);
4139   END IF;
4140 
4141   IF l_debug_level > 0 THEN
4142 	oe_debug_pub.add('EXITING OE_HEADER_PAYMENT_UTIL.PRE_WRITE_PROCESS');
4143   END IF;
4144 
4145   EXCEPTION
4146      WHEN FND_API.G_EXC_ERROR THEN
4147          IF L_DEBUG_LEVEL > 0 THEN
4148             Oe_debug_pub.add('OEXUHPMB.pls - pre_write_process error ');
4149          END if;
4150 	p_x_header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
4151 	RAISE FND_API.G_EXC_ERROR;
4152      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4153          IF L_DEBUG_LEVEL > 0 THEN
4154             Oe_debug_pub.add('OEXUHPMB.pls - pre_write_process unexpected error ');
4155          END if;
4156 	p_x_header_payment_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4157 	RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4158 
4159      WHEN OTHERS THEN
4160          IF L_DEBUG_LEVEL > 0 THEN
4161             Oe_debug_pub.add('OEXUHPMB.pls - pre_write_process unexpected error ');
4162          END if;
4163          raise fnD_API.G_EXC_UNEXPECTED_ERROR;
4164 
4165 END Pre_Write_Process;
4166 
4167 --3382262
4168 Procedure Delete_Payment_at_header(p_header_id in number,
4169                                    p_line_id in number := null,
4170                                    x_return_status out nocopy varchar2,
4171                                    x_msg_count out nocopy number,
4172                                    x_msg_data out nocopy varchar2) is
4173 p_count number := -1;
4174 p_x_header_rec OE_ORDER_PUB.Header_Rec_Type;
4175 l_old_header_rec OE_ORDER_PUB.Header_Rec_Type;
4176 l_header_rec OE_ORDER_PUB.Header_Rec_Type;
4177 l_return_status varchar2(30) := NULL;
4178 
4179 Begin
4180 
4181  Begin
4182 
4183   select count(payment_type_code) into p_count
4184   from oe_payments
4185   where header_id = p_header_id
4186   and nvl(payment_collection_event, 'PREPAY') = 'INVOICE'
4187   and line_id is null;
4188 
4189  Exception
4190 
4191    when others then
4192    oe_debug_pub.add('could not find any records');
4193    return;
4194 
4195  End;
4196 
4197   if p_count = 0 then  --there was only one record and it was deleted
4198 
4199       -- Set up the Header record
4200          OE_Header_Util.Lock_Row
4201                 (p_header_id                    => p_header_id
4202                 ,p_x_header_rec         => l_old_header_rec
4203                 ,x_return_status                => l_return_status
4204                 );
4205          IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4206             RAISE FND_API.G_EXC_ERROR;
4207          ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4208             RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4209          END IF;
4210 
4211          l_header_rec := l_old_header_rec;
4212 
4213        oe_debug_pub.add('before updating oe_order_headers_all ');
4214 
4215       update oe_order_headers_all
4216       set payment_type_code = null,
4217           payment_amount    = null,
4218           check_number      = null,
4219           credit_card_code  = null,
4220           credit_card_holder_name = null,
4221           credit_card_number      = null,
4222           credit_card_expiration_date = null,
4223           credit_card_approval_code   = null
4224           where header_id = p_header_id;
4225    end if;
4226 
4227 Exception
4228 
4229 WHEN FND_API.G_EXC_ERROR THEN
4230       x_return_status := FND_API.G_RET_STS_ERROR;
4231       OE_MSG_PUB.Count_And_Get
4232             ( p_count => x_msg_count,
4233               p_data  => x_msg_data
4234             );
4235 
4236     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4237       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4238       OE_MSG_PUB.Count_And_Get
4239             ( p_count => x_msg_count,
4240               p_data  => x_msg_data
4241             );
4242 
4243 WHEN OTHERS THEN
4244       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4245       IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4246       THEN
4247         OE_MSG_PUB.Add_Exc_Msg
4248             (   G_PKG_NAME
4249             ,   'Delete_Payment_at_Header'
4250             );
4251       END IF;
4252 
4253 END Delete_Payment_at_header;
4254 --3382262
4255 
4256 END OE_Header_Payment_Util;