[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;