[Home] [Help]
PACKAGE BODY: APPS.OE_HEADER_PAYMENT_UTIL
Source
1 PACKAGE BODY OE_Header_Payment_Util AS
2 /* $Header: OEXUHPMB.pls 120.15.12010000.4 2008/11/25 14:23:54 sgoli 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
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 END IF;
1148
1149 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_level_code,p_old_Header_Payment_rec.payment_level_code)
1150 THEN
1151 l_payments_update_flag := 'Y';
1152 END IF;
1153
1154 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.commitment_applied_amount,p_old_Header_Payment_rec.commitment_applied_amount)
1155 THEN
1156 NULL;
1157 END IF;
1158
1159 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.commitment_interfaced_amount,p_old_Header_Payment_rec.commitment_interfaced_amount)
1160 THEN
1161 NULL;
1162 END IF;
1163
1164 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_number,p_old_Header_Payment_rec.payment_number)
1165 THEN
1166 NULL;
1167 END IF;
1168
1169 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.header_id,p_old_Header_Payment_rec.header_id)
1170 THEN
1171 NULL;
1172 END IF;
1173
1174 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.line_id,p_old_Header_Payment_rec.line_id)
1175 THEN
1176 NULL;
1177 END IF;
1178
1179 --R12 CC Encryption
1180 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.trxn_extension_id,p_old_Header_Payment_rec.trxn_extension_id)
1181 THEN
1182 NULL;
1183 END IF;
1184
1185 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.instrument_security_code,p_old_Header_Payment_rec.instrument_security_code)
1186 THEN
1187 NULL;
1188 END IF;
1189 --R12 CC Encryption
1190
1191
1192 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_amount,p_old_Header_Payment_rec.payment_amount)
1193 THEN
1194 l_payments_update_flag := 'Y';
1195
1196 --bug3507871 start
1197 IF OE_PrePayment_UTIL.IS_MULTIPLE_PAYMENTS_ENABLED = TRUE then
1198 BEGIN
1199 SELECT booked_flag INTO l_booked_flag
1200 FROM oe_order_headers_all
1201 WHERE header_id=p_x_header_Payment_rec.header_id;
1202 IF (l_booked_flag = 'Y') THEN
1203 IF( l_debug_level > 0) THEN
1204 oe_debug_pub.add('pviprana: logging a new payment delayed request for making the order go on payment hold', 1);
1205 END IF;
1206
1207
1208 OE_delayed_requests_Pvt.log_request
1209 (p_entity_code => OE_GLOBALS.G_ENTITY_HEADER_PAYMENT,
1210 p_entity_id => p_x_Header_Payment_rec.header_id,
1211 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1212 p_requesting_entity_id => p_x_Header_Payment_rec.header_id,
1213 p_request_type => OE_GLOBALS.G_APPLY_PPP_HOLD,
1214 x_return_status => l_return_status);
1215 END IF;
1216 EXCEPTION
1217 WHEN no_data_found THEN
1218 null;
1219 WHEN others THEN
1220 null;
1221 END;
1222
1223 END IF;
1224 --bug3507871 end
1225 END IF;
1226
1227 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_collection_event,p_old_Header_Payment_rec.payment_collection_event)
1228 THEN
1229 l_payments_update_flag := 'Y';
1230
1231 -- if changing from credit card invoice payment to a prepayment
1232 -- or changing from prepayment to any invoice payment
1233 IF (
1234 (nvl(p_old_Header_Payment_rec.payment_collection_event, 'PREPAY')
1235 ='INVOICE' AND p_old_Header_Payment_rec.payment_type_code ='CREDIT_CARD'
1236 )
1237 OR
1238 nvl(p_old_Header_Payment_rec.payment_collection_event,'PREPAY')='PREPAY'
1239 )
1240 AND p_x_header_payment_rec.operation = 'UPDATE'
1241 THEN
1242
1243 l_delete_payment_hold := 'Y';
1244 END IF;
1245
1246 -- Set this value to N to ensure to not suppress the call to
1247 -- credit checking. Without doing this, Credit checking would not
1248 -- be called when: change the payment type code (which results in
1249 -- cc flag changing), press Save button, then change the payment
1250 -- collection event, and press Process Payment button.
1251 OE_Prepayment_PVT.g_process_pmt_req_logged := 'N';
1252 END IF;
1253
1254 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.defer_payment_processing_flag,p_old_Header_Payment_rec.defer_payment_processing_flag)
1255 THEN
1256 NULL;
1257 END IF;
1258
1259 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_trx_id,p_old_Header_Payment_rec.payment_trx_id)
1260 THEN
1261 NULL;
1262 END IF;
1263
1264 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_type_code,p_old_Header_Payment_rec.payment_type_code)
1265 THEN
1266 l_payments_update_flag := 'Y';
1267
1268 --if changing from credit card invoice payment to any other invoice payment.
1269 IF nvl(p_old_Header_Payment_rec.payment_collection_event, 'PREPAY')
1270 = 'INVOICE'
1271 AND nvl(p_x_Header_Payment_rec.payment_collection_event, 'PREPAY')
1272 = 'INVOICE'
1273 AND p_old_Header_Payment_rec.payment_type_code = 'CREDIT_CARD'
1274 AND p_x_header_payment_rec.operation = 'UPDATE'
1275 THEN
1276 l_delete_payment_hold := 'Y';
1277 END If;
1278
1279
1280 --bug3625027 start
1281 BEGIN
1282 IF nvl(p_x_Header_Payment_rec.payment_collection_event,'PREPAY') = 'INVOICE' THEN
1283 SELECT booked_flag INTO l_booked_flag
1284 FROM oe_order_headers_all
1285 WHERE header_id=p_x_header_Payment_rec.header_id;
1286
1287 IF p_old_header_payment_rec.payment_type_code IS NOT NULL THEN
1288 SELECT credit_check_flag INTO l_cc_flag_old
1289 FROM oe_payment_types_vl
1290 WHERE payment_type_code=p_old_Header_Payment_rec.payment_type_code;
1291 END IF;
1292
1293 SELECT credit_check_flag INTO l_cc_flag_new
1294 FROM oe_payment_types_vl
1295 WHERE payment_type_code=p_x_Header_Payment_rec.payment_type_code;
1296
1297 IF l_booked_flag = 'Y' AND
1298 NOT OE_GLOBALS.Equal(l_cc_flag_old,l_cc_flag_new)
1299 -- AND nvl(l_cc_flag_new, 'N') = 'Y'
1300 THEN
1301
1302 IF( l_debug_level > 0) THEN
1303
1304 oe_debug_pub.add('pviprana: logging a new payment delayed request for processing the payment', 1);
1305 END IF;
1306
1307 OE_delayed_requests_Pvt.log_request
1308 (p_entity_code => OE_GLOBALS.G_ENTITY_HEADER_PAYMENT,
1309 p_entity_id => p_x_Header_Payment_rec.header_id,
1310 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1311 p_requesting_entity_id => p_x_Header_Payment_rec.header_id,
1312 p_request_type => OE_GLOBALS.G_PROCESS_PAYMENT,
1313 x_return_status => l_return_status);
1314
1315 -- set the global value, to be used in process_payment
1316 -- API to not call credit checking redundantly.
1317 OE_Prepayment_PVT.g_process_pmt_req_logged := 'Y';
1318 END IF;
1319 END IF;
1320 EXCEPTION
1321 WHEN no_data_found THEN
1322 null;
1323 WHEN others THEN
1324 null;
1325 END;
1326 --bug3625027 end
1327
1328 END IF;
1329
1330 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_set_id,p_old_Header_Payment_rec.payment_set_id)
1331 THEN
1332 NULL;
1333 END IF;
1334
1335 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.prepaid_amount,p_old_Header_Payment_rec.prepaid_amount)
1336 THEN
1337 NULL;
1338 END IF;
1339
1340 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.program_application_id,p_old_Header_Payment_rec.program_application_id)
1341 THEN
1342 NULL;
1343 END IF;
1344
1345 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.program_id,p_old_Header_Payment_rec.program_id)
1346 THEN
1347 NULL;
1348 END IF;
1349
1350 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.program_update_date,p_old_Header_Payment_rec.program_update_date)
1351 THEN
1352 NULL;
1353 END IF;
1354
1355 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.receipt_method_id,p_old_Header_Payment_rec.receipt_method_id)
1356 THEN
1357 NULL;
1358 END IF;
1359
1360 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.request_id,p_old_Header_Payment_rec.request_id)
1361 THEN
1362 NULL;
1363 END IF;
1364
1365 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.tangible_id,p_old_Header_Payment_rec.tangible_id)
1366 THEN
1367 NULL;
1368 END IF;
1369
1370 --log delayed requests based on certain attribute changes
1371
1372 IF l_payments_update_flag = 'Y' and
1373 OE_PrePayment_UTIL.IS_MULTIPLE_PAYMENTS_ENABLED = TRUE then
1374
1375
1376 --bug3781675 start
1377 /* get header payment info */
1378 open header_payment_cur;
1379 fetch header_payment_cur into p_payment_type_code,
1380 p_payment_amount,
1381 p_check_number,
1382 p_credit_card_code,
1383 p_credit_card_holder_name,
1384 p_credit_card_number,
1385 p_credit_card_expiration_date;
1386 -- p_credit_card_approval_code;
1387
1388 close header_payment_cur;
1389 /*
1390 oe_debug_pub.add('p_x_header_payment_rec.payment_collection_event ' || p_x_header_payment_rec.payment_collection_event);
1391 oe_debug_pub.add('p_old_Header_Payment_rec.payment_collection_event ' || p_old_Header_Payment_rec.payment_collection_event);
1392 oe_debug_pub.add('p_payment_type_code ' || p_payment_type_code);
1393 oe_debug_pub.add('p_x_header_payment_rec.payment_type_code ' || p_x_header_payment_rec.payment_type_code);
1394 oe_debug_pub.add('p_payment_amount ' || p_payment_amount);
1395 oe_debug_pub.add('p_x_header_payment_rec.payment_amount ' || p_x_header_payment_rec.payment_amount);
1396 oe_debug_pub.add('p_check_number ' || p_check_number);
1397 oe_debug_pub.add('p_x_header_payment_rec.check_number ' || p_x_header_payment_rec.check_number);
1398 oe_debug_pub.add('p_credit_card_code ' || p_credit_card_code);
1399 oe_debug_pub.add('p_x_header_payment_rec.credit_card_code ' || p_x_header_payment_rec.credit_card_code);
1400 oe_debug_pub.add('p_credit_card_holder_name ' || p_credit_card_holder_name);
1401 oe_debug_pub.add('p_x_header_payment_rec.credit_card_holder_name ' || p_x_header_payment_rec.credit_card_holder_name);
1402 oe_debug_pub.add('p_credit_card_number ' || p_credit_card_number);
1403 oe_debug_pub.add('p_x_header_payment_rec.credit_card_number ' || p_x_header_payment_rec.credit_card_number);
1404 oe_debug_pub.add('p_credit_card_expiration_date ' || p_credit_card_expiration_date);
1405 oe_debug_pub.add('p_x_header_payment_rec.credit_card_expiration_date ' || p_x_header_payment_rec.credit_card_expiration_date);
1406
1407 oe_debug_pub.add('p_x_header_payment_rec.payment_collection_event ' || p_x_header_payment_rec.payment_collection_event);
1408 */
1409 if p_x_header_payment_rec.payment_type_code IS NOT NULL and
1410 (((nvl(p_payment_type_code, '-1') <> nvl(p_x_header_payment_rec.payment_type_code, '-1') or
1411 -- nvl(p_payment_amount, -1) <> nvl(p_x_header_payment_rec.payment_amount,-1) or
1412 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
1413 nvl(p_credit_card_holder_name, '-1') <> nvl(p_x_header_payment_rec.credit_card_holder_name, '-1') or
1414 NOT OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
1415 p_x_Header_Payment_rec.credit_card_number,
1416 p_old_Header_Payment_rec.cc_instrument_id,
1417 p_x_Header_Payment_rec.cc_instrument_id) or
1418 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
1419 nvl(p_x_header_payment_rec.payment_collection_event,'PREPAY') = 'INVOICE') or
1420 (nvl(p_x_header_payment_rec.payment_collection_event,'PREPAY') <> nvl(p_old_Header_Payment_rec.payment_collection_event,'PREPAY') and
1421 p_x_header_payment_rec.operation = 'UPDATE')) then
1422 --bug3781675 end
1423
1424
1425 oe_debug_pub.add('logging synch from UHPMB.pls payment delayed request', 1);
1426
1427 OE_delayed_requests_Pvt.log_request
1428 (p_entity_code => OE_GLOBALS.G_ENTITY_HEADER_PAYMENT,
1429 p_entity_id => p_x_Header_Payment_rec.header_id,
1430 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1431 p_requesting_entity_id => p_x_Header_Payment_rec.header_id,
1432 p_request_type => OE_GLOBALS.G_UPDATE_HDR_PAYMENT,
1433 p_param1 => 'UPDATE_HEADER',
1434 x_return_status => l_return_status);
1435
1436
1437 end if; --bug3781675
1438
1439 END IF;
1440
1441 IF l_delete_payment_hold = 'Y' THEN
1442 oe_debug_pub.add('logging request to release payment related holds', 3);
1443 IF nvl(p_old_Header_Payment_rec.payment_collection_event,'PREPAY')
1444 = 'PREPAY' THEN
1445 l_delete_pmt_param1 := 'PREPAYMENT';
1446 ELSE
1447 l_delete_pmt_param1 := 'VERIFY_PAYMENT';
1448 END IF;
1449
1450 OE_delayed_requests_Pvt.log_request
1451 (p_entity_code => OE_GLOBALS.G_ENTITY_HEADER_PAYMENT,
1452 p_entity_id => p_x_Header_Payment_rec.header_id,
1453 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1454 p_requesting_entity_id => p_x_Header_Payment_rec.header_id,
1455 p_request_type => OE_GLOBALS.G_DELETE_PAYMENT_HOLD,
1456 p_param1 => l_delete_pmt_param1,
1457 x_return_status => l_return_status);
1458 END IF;
1459
1460 --ER#7479609 start
1461 --ER#7479609 start
1462 IF NOT OE_GLOBALS.Equal(p_x_Header_Payment_rec.payment_type_code,p_old_Header_Payment_rec.payment_type_code)
1463 THEN
1464 oe_debug_pub.add('logging Delayed request for evaluation of payments hold', 1);
1465
1466 OE_delayed_requests_Pvt.log_request
1467 (p_entity_code => OE_GLOBALS.G_ENTITY_HEADER_PAYMENT,
1468 p_entity_id => p_x_Header_Payment_rec.header_id,
1469 p_requesting_entity_code => OE_GLOBALS.G_ENTITY_HEADER,
1470 p_requesting_entity_id => p_x_Header_Payment_rec.header_id,
1471 p_request_type => OE_GLOBALS.G_EVAL_HOLD_SOURCE,
1472 p_request_unique_key1 => 'PAYMENT_TYPE',
1473 p_param1 => 'P',
1474 p_param2 => p_x_Header_Payment_rec.payment_type_code,
1475 x_return_status => l_return_status);
1476 END IF;
1477 --ER#7479609 end
1478
1479 END Apply_Attribute_Changes;
1480
1481 -- Procedure Complete_Record
1482
1483 PROCEDURE Complete_Record
1484 ( p_x_Header_Payment_rec IN OUT NOCOPY OE_Order_PUB.Header_Payment_Rec_Type
1485 , p_old_Header_Payment_rec IN OE_Order_PUB.Header_Payment_Rec_Type
1486 )
1487 IS
1488 --
1489 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1490 --
1491 BEGIN
1492
1493 IF p_x_Header_Payment_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1494 p_x_Header_Payment_rec.attribute1 := p_old_Header_Payment_rec.attribute1;
1495 END IF;
1496
1497 IF p_x_Header_Payment_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1498 p_x_Header_Payment_rec.attribute2 := p_old_Header_Payment_rec.attribute2;
1499 END IF;
1500
1501 IF p_x_Header_Payment_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1502 p_x_Header_Payment_rec.attribute3 := p_old_Header_Payment_rec.attribute3;
1503 END IF;
1504
1505 IF p_x_Header_Payment_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1506 p_x_Header_Payment_rec.attribute4 := p_old_Header_Payment_rec.attribute4;
1507 END IF;
1508
1509 IF p_x_Header_Payment_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1510 p_x_Header_Payment_rec.attribute5 := p_old_Header_Payment_rec.attribute5;
1511 END IF;
1512
1513 IF p_x_Header_Payment_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1514 p_x_Header_Payment_rec.attribute6 := p_old_Header_Payment_rec.attribute6;
1515 END IF;
1516
1517 IF p_x_Header_Payment_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1518 p_x_Header_Payment_rec.attribute7 := p_old_Header_Payment_rec.attribute7;
1519 END IF;
1520
1521 IF p_x_Header_Payment_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1522 p_x_Header_Payment_rec.attribute8 := p_old_Header_Payment_rec.attribute8;
1523 END IF;
1524
1525 IF p_x_Header_Payment_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1526 p_x_Header_Payment_rec.attribute9 := p_old_Header_Payment_rec.attribute9;
1527 END IF;
1528
1529 IF p_x_Header_Payment_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1530 p_x_Header_Payment_rec.attribute10 := p_old_Header_Payment_rec.attribute10;
1531 END IF;
1532
1533 IF p_x_Header_Payment_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1534 p_x_Header_Payment_rec.attribute11 := p_old_Header_Payment_rec.attribute11;
1535 END IF;
1536
1537 IF p_x_Header_Payment_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1538 p_x_Header_Payment_rec.attribute12 := p_old_Header_Payment_rec.attribute12;
1539 END IF;
1540
1541 IF p_x_Header_Payment_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1542 p_x_Header_Payment_rec.attribute13 := p_old_Header_Payment_rec.attribute13;
1543 END IF;
1544
1545 IF p_x_Header_Payment_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1546 p_x_Header_Payment_rec.attribute14 := p_old_Header_Payment_rec.attribute14;
1547 END IF;
1548
1549 IF p_x_Header_Payment_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1550 p_x_Header_Payment_rec.attribute15 := p_old_Header_Payment_rec.attribute15;
1551 END IF;
1552
1553 IF p_x_Header_Payment_rec.context = FND_API.G_MISS_CHAR THEN
1554 p_x_Header_Payment_rec.context := p_old_Header_Payment_rec.context;
1555 END IF;
1556
1557 IF p_x_Header_Payment_rec.created_by = FND_API.G_MISS_NUM THEN
1558 p_x_Header_Payment_rec.created_by := p_old_Header_Payment_rec.created_by;
1559 END IF;
1560
1561 IF p_x_Header_Payment_rec.creation_date = FND_API.G_MISS_DATE THEN
1562 p_x_Header_Payment_rec.creation_date := p_old_Header_Payment_rec.creation_date;
1563 END IF;
1564
1565 IF p_x_Header_Payment_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1566 p_x_Header_Payment_rec.last_updated_by := p_old_Header_Payment_rec.last_updated_by;
1567 END IF;
1568
1569 IF p_x_Header_Payment_rec.last_update_date = FND_API.G_MISS_DATE THEN
1570 p_x_Header_Payment_rec.last_update_date := p_old_Header_Payment_rec.last_update_date;
1571 END IF;
1572
1573 IF p_x_Header_Payment_rec.last_update_login = FND_API.G_MISS_NUM THEN
1574 p_x_Header_Payment_rec.last_update_login := p_old_Header_Payment_rec.last_update_login;
1575 END IF;
1576
1577 IF p_x_Header_Payment_rec.check_number = FND_API.G_MISS_CHAR THEN
1578 p_x_Header_Payment_rec.check_number := p_old_Header_Payment_rec.check_number;
1579 END IF;
1580
1581 IF p_x_Header_Payment_rec.credit_card_approval_code = FND_API.G_MISS_CHAR THEN
1582 p_x_Header_Payment_rec.credit_card_approval_code := p_old_Header_Payment_rec.credit_card_approval_code;
1583 END IF;
1584
1585 IF p_x_Header_Payment_rec.credit_card_approval_date = FND_API.G_MISS_DATE THEN
1586 p_x_Header_Payment_rec.credit_card_approval_date := p_old_Header_Payment_rec.credit_card_approval_date;
1587 END IF;
1588
1589 IF p_x_Header_Payment_rec.credit_card_code = FND_API.G_MISS_CHAR THEN
1590 p_x_Header_Payment_rec.credit_card_code := p_old_Header_Payment_rec.credit_card_code;
1591 END IF;
1592
1593 IF p_x_Header_Payment_rec.credit_card_expiration_date = FND_API.G_MISS_DATE THEN
1594 p_x_Header_Payment_rec.credit_card_expiration_date := p_old_Header_Payment_rec.credit_card_expiration_date;
1595 END IF;
1596
1597 IF p_x_Header_Payment_rec.credit_card_holder_name = FND_API.G_MISS_CHAR THEN
1598 p_x_Header_Payment_rec.credit_card_holder_name := p_old_Header_Payment_rec.credit_card_holder_name;
1599 END IF;
1600
1601 IF p_x_Header_Payment_rec.credit_card_number = FND_API.G_MISS_CHAR THEN
1602 p_x_Header_Payment_rec.credit_card_number := p_old_Header_Payment_rec.credit_card_number;
1603 END IF;
1604
1605 IF p_x_Header_Payment_rec.payment_level_code = FND_API.G_MISS_CHAR THEN
1606 p_x_Header_Payment_rec.payment_level_code := p_old_Header_Payment_rec.payment_level_code;
1607 END IF;
1608
1609 IF p_x_Header_Payment_rec.commitment_applied_amount = FND_API.G_MISS_NUM THEN
1610 p_x_Header_Payment_rec.commitment_applied_amount := p_old_Header_Payment_rec.commitment_applied_amount;
1611 END IF;
1612
1613 IF p_x_Header_Payment_rec.commitment_interfaced_amount = FND_API.G_MISS_NUM THEN
1614 p_x_Header_Payment_rec.commitment_interfaced_amount := p_old_Header_Payment_rec.commitment_interfaced_amount;
1615 END IF;
1616
1617 IF p_x_Header_Payment_rec.payment_number = FND_API.G_MISS_NUM THEN
1618 p_x_Header_Payment_rec.payment_number := p_old_Header_Payment_rec.payment_number;
1619 END IF;
1620
1621 IF p_x_Header_Payment_rec.header_id = FND_API.G_MISS_NUM THEN
1622 p_x_Header_Payment_rec.header_id := p_old_Header_Payment_rec.header_id;
1623 END IF;
1624
1625 IF p_x_Header_Payment_rec.line_id = FND_API.G_MISS_NUM THEN
1626 p_x_Header_Payment_rec.line_id := p_old_Header_Payment_rec.line_id;
1627 END IF;
1628
1629 IF p_x_Header_Payment_rec.payment_amount = FND_API.G_MISS_NUM THEN
1630 p_x_Header_Payment_rec.payment_amount := p_old_Header_Payment_rec.payment_amount;
1631 END IF;
1632
1633 IF p_x_Header_Payment_rec.payment_collection_event = FND_API.G_MISS_CHAR THEN
1634 p_x_Header_Payment_rec.payment_collection_event := p_old_Header_Payment_rec.payment_collection_event;
1635 END IF;
1636
1637 IF p_x_Header_Payment_rec.defer_payment_processing_flag = FND_API.G_MISS_CHAR THEN
1638 p_x_Header_Payment_rec.defer_payment_processing_flag := p_old_Header_Payment_rec.defer_payment_processing_flag;
1639 END IF;
1640
1641 IF p_x_Header_Payment_rec.payment_trx_id = FND_API.G_MISS_NUM THEN
1642 p_x_Header_Payment_rec.payment_trx_id := p_old_Header_Payment_rec.payment_trx_id;
1643 END IF;
1644
1645 IF p_x_Header_Payment_rec.payment_type_code = FND_API.G_MISS_CHAR THEN
1646 p_x_Header_Payment_rec.payment_type_code := p_old_Header_Payment_rec.payment_type_code;
1647 END IF;
1648
1649 IF p_x_Header_Payment_rec.payment_set_id = FND_API.G_MISS_NUM THEN
1650 p_x_Header_Payment_rec.payment_set_id := p_old_Header_Payment_rec.payment_set_id;
1651 END IF;
1652
1653 IF p_x_Header_Payment_rec.prepaid_amount = FND_API.G_MISS_NUM THEN
1654 p_x_Header_Payment_rec.prepaid_amount := p_old_Header_Payment_rec.prepaid_amount;
1655 END IF;
1656
1657 IF p_x_Header_Payment_rec.program_application_id = FND_API.G_MISS_NUM THEN
1658 p_x_Header_Payment_rec.program_application_id := p_old_Header_Payment_rec.program_application_id;
1659 END IF;
1660
1661 IF p_x_Header_Payment_rec.program_id = FND_API.G_MISS_NUM THEN
1662 p_x_Header_Payment_rec.program_id := p_old_Header_Payment_rec.program_id;
1663 END IF;
1664
1665 IF p_x_Header_Payment_rec.program_update_date = FND_API.G_MISS_DATE THEN
1666 p_x_Header_Payment_rec.program_update_date := p_old_Header_Payment_rec.program_update_date;
1667 END IF;
1668
1669 IF p_x_Header_Payment_rec.receipt_method_id = FND_API.G_MISS_NUM THEN
1670 p_x_Header_Payment_rec.receipt_method_id := p_old_Header_Payment_rec.receipt_method_id;
1671 END IF;
1672
1673 IF p_x_Header_Payment_rec.request_id = FND_API.G_MISS_NUM THEN
1674 p_x_Header_Payment_rec.request_id := p_old_Header_Payment_rec.request_id;
1675 END IF;
1676
1677 IF p_x_Header_Payment_rec.tangible_id = FND_API.G_MISS_CHAR THEN
1678 p_x_Header_Payment_rec.tangible_id := p_old_Header_Payment_rec.tangible_id;
1679 END IF;
1680
1681 IF p_x_Header_Payment_rec.trxn_extension_id = FND_API.G_MISS_NUM THEN
1682 p_x_Header_Payment_rec.trxn_extension_id := p_old_Header_Payment_rec.trxn_extension_id;
1683 END IF;
1684
1685 --R12 CC Encryption
1686 IF p_x_Header_Payment_rec.trxn_extension_id = FND_API.G_MISS_NUM THEN
1687 p_x_Header_Payment_rec.trxn_extension_id := p_old_Header_Payment_rec.trxn_extension_id;
1688 END IF;
1689
1690 IF p_x_Header_Payment_rec.instrument_security_code = FND_API.G_MISS_CHAR THEN
1691 p_x_Header_Payment_rec.instrument_security_code := p_old_Header_Payment_rec.instrument_security_code;
1692 END IF;
1693 --R12 CC Encryption
1694
1695 END Complete_Record;
1696
1697 -- Procedure Convert_Miss_To_Null
1698
1699 PROCEDURE Convert_Miss_To_Null
1700 ( p_x_Header_Payment_rec IN OUT NOCOPY OE_Order_PUB.Header_Payment_Rec_Type
1701 )
1702 IS
1703
1704 --
1705 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1706 --
1707 BEGIN
1708
1709 IF p_x_Header_Payment_rec.attribute1 = FND_API.G_MISS_CHAR THEN
1710 p_x_Header_Payment_rec.attribute1 := NULL;
1711 END IF;
1712
1713 IF p_x_Header_Payment_rec.attribute2 = FND_API.G_MISS_CHAR THEN
1714 p_x_Header_Payment_rec.attribute2 := NULL;
1715 END IF;
1716
1717 IF p_x_Header_Payment_rec.attribute3 = FND_API.G_MISS_CHAR THEN
1718 p_x_Header_Payment_rec.attribute3 := NULL;
1719 END IF;
1720
1721 IF p_x_Header_Payment_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1722 p_x_Header_Payment_rec.attribute4 := NULL;
1723 END IF;
1724
1725 IF p_x_Header_Payment_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1726 p_x_Header_Payment_rec.attribute5 := NULL;
1727 END IF;
1728
1729 IF p_x_Header_Payment_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1730 p_x_Header_Payment_rec.attribute6 := NULL;
1731 END IF;
1732
1733 IF p_x_Header_Payment_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1734 p_x_Header_Payment_rec.attribute7 := NULL;
1735 END IF;
1736
1737 IF p_x_Header_Payment_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1738 p_x_Header_Payment_rec.attribute8 := NULL;
1739 END IF;
1740
1741 IF p_x_Header_Payment_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1742 p_x_Header_Payment_rec.attribute9 := NULL;
1743 END IF;
1744
1745 IF p_x_Header_Payment_rec.attribute10 = FND_API.G_MISS_CHAR THEN
1746 p_x_Header_Payment_rec.attribute10 := NULL;
1747 END IF;
1748
1749 IF p_x_Header_Payment_rec.attribute11 = FND_API.G_MISS_CHAR THEN
1750 p_x_Header_Payment_rec.attribute11 := NULL;
1751 END IF;
1752
1753 IF p_x_Header_Payment_rec.attribute12 = FND_API.G_MISS_CHAR THEN
1754 p_x_Header_Payment_rec.attribute12 := NULL;
1755 END IF;
1756
1757 IF p_x_Header_Payment_rec.attribute13 = FND_API.G_MISS_CHAR THEN
1758 p_x_Header_Payment_rec.attribute13 := NULL;
1759 END IF;
1760
1761 IF p_x_Header_Payment_rec.attribute14 = FND_API.G_MISS_CHAR THEN
1762 p_x_Header_Payment_rec.attribute14 := NULL;
1763 END IF;
1764
1765 IF p_x_Header_Payment_rec.attribute15 = FND_API.G_MISS_CHAR THEN
1766 p_x_Header_Payment_rec.attribute15 := NULL;
1767 END IF;
1768
1769 IF p_x_Header_Payment_rec.context = FND_API.G_MISS_CHAR THEN
1770 p_x_Header_Payment_rec.context := NULL;
1771 END IF;
1772
1773 IF p_x_Header_Payment_rec.created_by = FND_API.G_MISS_NUM THEN
1774 p_x_Header_Payment_rec.created_by := NULL;
1775 END IF;
1776
1777 IF p_x_Header_Payment_rec.creation_date = FND_API.G_MISS_DATE THEN
1778 p_x_Header_Payment_rec.creation_date := NULL;
1779 END IF;
1780
1781 IF p_x_Header_Payment_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1782 p_x_Header_Payment_rec.last_updated_by := NULL;
1783 END IF;
1784
1785 IF p_x_Header_Payment_rec.last_update_date = FND_API.G_MISS_DATE THEN
1786 p_x_Header_Payment_rec.last_update_date := NULL;
1787 END IF;
1788
1789 IF p_x_Header_Payment_rec.last_update_login = FND_API.G_MISS_NUM THEN
1790 p_x_Header_Payment_rec.last_update_login := NULL;
1791 END IF;
1792
1793 IF p_x_Header_Payment_rec.check_number = FND_API.G_MISS_CHAR THEN
1794 p_x_Header_Payment_rec.check_number := NULL;
1795 END IF;
1796
1797 IF p_x_Header_Payment_rec.credit_card_approval_code = FND_API.G_MISS_CHAR THEN
1798 p_x_Header_Payment_rec.credit_card_approval_code := NULL;
1799 END IF;
1800
1801 IF p_x_Header_Payment_rec.credit_card_approval_date = FND_API.G_MISS_DATE THEN
1802 p_x_Header_Payment_rec.credit_card_approval_date := NULL;
1803 END IF;
1804
1805 IF p_x_Header_Payment_rec.credit_card_code = FND_API.G_MISS_CHAR THEN
1806 p_x_Header_Payment_rec.credit_card_code := NULL;
1807 END IF;
1808
1809 IF p_x_Header_Payment_rec.credit_card_expiration_date = FND_API.G_MISS_DATE THEN
1810 p_x_Header_Payment_rec.credit_card_expiration_date := NULL;
1811 END IF;
1812
1813 IF p_x_Header_Payment_rec.credit_card_holder_name = FND_API.G_MISS_CHAR THEN
1814 p_x_Header_Payment_rec.credit_card_holder_name := NULL;
1815 END IF;
1816
1817 IF p_x_Header_Payment_rec.credit_card_number = FND_API.G_MISS_CHAR THEN
1818 p_x_Header_Payment_rec.credit_card_number := NULL;
1819 END IF;
1820
1821 IF p_x_Header_Payment_rec.payment_level_code = FND_API.G_MISS_CHAR THEN
1822 p_x_Header_Payment_rec.payment_level_code := NULL;
1823 END IF;
1824
1825 IF p_x_Header_Payment_rec.commitment_applied_amount = FND_API.G_MISS_NUM THEN
1826 p_x_Header_Payment_rec.commitment_applied_amount := NULL;
1827 END IF;
1828
1829 IF p_x_Header_Payment_rec.commitment_interfaced_amount = FND_API.G_MISS_NUM THEN
1830 p_x_Header_Payment_rec.commitment_interfaced_amount := NULL;
1831 END IF;
1832
1833 IF p_x_Header_Payment_rec.payment_number = FND_API.G_MISS_NUM THEN
1834 p_x_Header_Payment_rec.payment_number := NULL;
1835 END IF;
1836
1837 IF p_x_Header_Payment_rec.header_id = FND_API.G_MISS_NUM THEN
1838 p_x_Header_Payment_rec.header_id := NULL;
1839 END IF;
1840
1841 IF p_x_Header_Payment_rec.line_id = FND_API.G_MISS_NUM THEN
1842 p_x_Header_Payment_rec.line_id := NULL;
1843 END IF;
1844
1845 IF p_x_Header_Payment_rec.payment_amount = FND_API.G_MISS_NUM THEN
1846 p_x_Header_Payment_rec.payment_amount := NULL;
1847 END IF;
1848
1849 IF p_x_Header_Payment_rec.payment_collection_event = FND_API.G_MISS_CHAR THEN
1850 p_x_Header_Payment_rec.payment_collection_event := NULL;
1851 END IF;
1852
1853 IF p_x_Header_Payment_rec.defer_payment_processing_flag = FND_API.G_MISS_CHAR THEN
1854 p_x_Header_Payment_rec.defer_payment_processing_flag := NULL;
1855 END IF;
1856
1857 IF p_x_Header_Payment_rec.payment_trx_id = FND_API.G_MISS_NUM THEN
1858 p_x_Header_Payment_rec.payment_trx_id := NULL;
1859 END IF;
1860
1861 IF p_x_Header_Payment_rec.payment_type_code = FND_API.G_MISS_CHAR THEN
1862 p_x_Header_Payment_rec.payment_type_code := NULL;
1863 END IF;
1864
1865 IF p_x_Header_Payment_rec.payment_set_id = FND_API.G_MISS_NUM THEN
1866 p_x_Header_Payment_rec.payment_set_id := NULL;
1867 END IF;
1868
1869 IF p_x_Header_Payment_rec.prepaid_amount = FND_API.G_MISS_NUM THEN
1870 p_x_Header_Payment_rec.prepaid_amount := NULL;
1871 END IF;
1872
1873 IF p_x_Header_Payment_rec.program_application_id = FND_API.G_MISS_NUM THEN
1874 p_x_Header_Payment_rec.program_application_id := NULL;
1875 END IF;
1876
1877 IF p_x_Header_Payment_rec.program_id = FND_API.G_MISS_NUM THEN
1878 p_x_Header_Payment_rec.program_id := NULL;
1879 END IF;
1880
1881 IF p_x_Header_Payment_rec.program_update_date = FND_API.G_MISS_DATE THEN
1882 p_x_Header_Payment_rec.program_update_date := NULL;
1883 END IF;
1884
1885 IF p_x_Header_Payment_rec.receipt_method_id = FND_API.G_MISS_NUM THEN
1886 p_x_Header_Payment_rec.receipt_method_id := NULL;
1887 END IF;
1888
1889 IF p_x_Header_Payment_rec.request_id = FND_API.G_MISS_NUM THEN
1890 p_x_Header_Payment_rec.request_id := NULL;
1891 END IF;
1892
1893 IF p_x_Header_Payment_rec.tangible_id = FND_API.G_MISS_CHAR THEN
1894 p_x_Header_Payment_rec.tangible_id := NULL;
1895 END IF;
1896
1897 -- R12 CC Encryption
1898 IF p_x_Header_Payment_rec.trxn_extension_id = FND_API.G_MISS_NUM THEN
1899 p_x_Header_Payment_rec.trxn_extension_id := NULL;
1900 END IF;
1901
1902 IF p_x_Header_Payment_rec.instrument_security_code = FND_API.G_MISS_CHAR THEN
1903 p_x_Header_Payment_rec.instrument_security_code := NULL;
1904 END IF;
1905 -- R12 CC Encryption
1906
1907 END Convert_Miss_To_Null;
1908
1909 -- Procedure Update_Row
1910
1911 PROCEDURE Update_Row
1912 ( p_Header_Payment_rec IN OUT NOCOPY OE_Order_PUB.Header_Payment_Rec_Type
1913 )
1914 IS
1915 l_lock_control NUMBER;
1916 --added for notification framework
1917 l_index NUMBER;
1918 l_return_status VARCHAR2(1);
1919
1920
1921 --
1922 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1923 --
1924 BEGIN
1925
1926 SELECT lock_control
1927 INTO l_lock_control
1928 FROM OE_PAYMENTS
1929 WHERE payment_number = p_Header_Payment_rec.payment_number
1930 AND header_id = p_Header_Payment_rec.header_id
1931 AND line_id IS NULL;
1932
1933 l_lock_control := l_lock_control + 1;
1934
1935 --calling notification framework to update global picture
1936 --check code release level first. Notification framework is at Pack H level
1937 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' THEN
1938 IF l_debug_level > 0 THEN
1939 oe_debug_pub.add( 'JFC: payment_number' || P_HEADER_Payment_REC.payment_number ) ;
1940 END IF;
1941 -- Sasi: this should be added by Renga
1942 /* OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
1943 p_Hdr_pmt_rec =>p_header_Payment_rec,
1944 p_hdr_pmt_id => p_header_Payment_rec.payment_number,
1945 x_index => l_index,
1946 x_return_status => l_return_status);*/
1947 IF l_debug_level > 0 THEN
1948 oe_debug_pub.add( 'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_Payment_UTIL.UPDATE_ROW IS: ' || L_RETURN_STATUS ) ;
1949 END IF;
1950 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1951 IF l_debug_level > 0 THEN
1952 oe_debug_pub.add( 'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
1953 END IF;
1954 IF l_debug_level > 0 THEN
1955 oe_debug_pub.add( 'EXITING OE_HEADER_Payment_UTIL.UPDATE_ROW' , 1 ) ;
1956 END IF;
1957 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1958 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1959 IF l_debug_level > 0 THEN
1960 oe_debug_pub.add( 'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_Payment_UTIL.UPDATE_ROW' ) ;
1961 END IF;
1962 IF l_debug_level > 0 THEN
1963 oe_debug_pub.add( 'EXITING OE_HEADER_Payment_UTIL.UPDATE_ROW' , 1 ) ;
1964 END IF;
1965 RAISE FND_API.G_EXC_ERROR;
1966 END IF;
1967 END IF; /*code_release_level*/
1968 -- notification framework end
1969
1970 UPDATE OE_PAYMENTS
1971 SET ATTRIBUTE1 = p_Header_Payment_rec.attribute1
1972 , ATTRIBUTE2 = p_Header_Payment_rec.attribute2
1973 , ATTRIBUTE3 = p_Header_Payment_rec.attribute3
1974 , ATTRIBUTE4 = p_Header_Payment_rec.attribute4
1975 , ATTRIBUTE5 = p_Header_Payment_rec.attribute5
1976 , ATTRIBUTE6 = p_Header_Payment_rec.attribute6
1977 , ATTRIBUTE7 = p_Header_Payment_rec.attribute7
1978 , ATTRIBUTE8 = p_Header_Payment_rec.attribute8
1979 , ATTRIBUTE9 = p_Header_Payment_rec.attribute9
1980 , ATTRIBUTE10 = p_Header_Payment_rec.attribute10
1981 , ATTRIBUTE11 = p_Header_Payment_rec.attribute11
1982 , ATTRIBUTE12 = p_Header_Payment_rec.attribute12
1983 , ATTRIBUTE13 = p_Header_Payment_rec.attribute13
1984 , ATTRIBUTE14 = p_Header_Payment_rec.attribute14
1985 , ATTRIBUTE15 = p_Header_Payment_rec.attribute15
1986 , CONTEXT = p_Header_Payment_rec.context
1987 , CREATED_BY = p_Header_Payment_rec.created_by
1988 , CREATION_DATE = p_Header_Payment_rec.creation_date
1989 , LAST_UPDATED_BY = p_Header_Payment_rec.last_updated_by
1990 , LAST_UPDATE_DATE = p_Header_Payment_rec.last_update_date
1991 , LAST_UPDATE_LOGIN = p_Header_Payment_rec.last_update_login
1992 , CHECK_NUMBER = p_Header_Payment_rec.check_number
1993 /*, CREDIT_CARD_APPROVAL_CODE = p_Header_Payment_rec.credit_card_approval_code --R12 CC Encryption
1994 , CREDIT_CARD_APPROVAL_DATE = p_Header_Payment_rec.credit_card_approval_date
1995 , CREDIT_CARD_CODE = p_Header_Payment_rec.credit_card_code
1996 , CREDIT_CARD_EXPIRATION_DATE = p_Header_Payment_rec.credit_card_expiration_date
1997 , CREDIT_CARD_HOLDER_NAME = p_Header_Payment_rec.credit_card_holder_name
1998 , CREDIT_CARD_NUMBER = p_Header_Payment_rec.credit_card_number*/ --R12 CC Encryption
1999 , PAYMENT_LEVEL_CODE = p_Header_Payment_rec.payment_level_code
2000 , COMMITMENT_APPLIED_AMOUNT = p_Header_Payment_rec.commitment_applied_amount
2001 , COMMITMENT_INTERFACED_AMOUNT = p_Header_Payment_rec.commitment_interfaced_amount
2002 , PAYMENT_NUMBER = p_Header_Payment_rec.payment_number
2003 , HEADER_ID = p_Header_Payment_rec.header_id
2004 , LINE_ID = p_Header_Payment_rec.line_id
2005 , PAYMENT_AMOUNT = p_Header_Payment_rec.payment_amount
2006 , PAYMENT_COLLECTION_EVENT = p_Header_Payment_rec.payment_collection_event
2007 , PAYMENT_TRX_ID = p_Header_Payment_rec.payment_trx_id
2008 , PAYMENT_TYPE_CODE = p_Header_Payment_rec.payment_type_code
2009 , PAYMENT_SET_ID = p_Header_Payment_rec.payment_set_id
2010 , PREPAID_AMOUNT = p_Header_Payment_rec.prepaid_amount
2011 , PROGRAM_APPLICATION_ID = p_Header_Payment_rec.program_application_id
2012 , PROGRAM_ID = p_Header_Payment_rec.program_id
2013 , PROGRAM_UPDATE_DATE = p_Header_Payment_rec.program_update_date
2014 , RECEIPT_METHOD_ID = p_Header_Payment_rec.receipt_method_id
2015 , REQUEST_ID = p_Header_Payment_rec.request_id
2016 --, TANGIBLE_ID = p_Header_Payment_rec.tangible_id --R12 CC Encryption
2017 , DEFER_PAYMENT_PROCESSING_FLAG = p_Header_Payment_rec.defer_payment_processing_flag
2018 , TRXN_EXTENSION_ID = p_Header_Payment_rec.trxn_extension_id
2019 , LOCK_CONTROL = l_lock_control
2020 WHERE PAYMENT_NUMBER = p_Header_Payment_rec.payment_number
2021 AND HEADER_ID = p_Header_Payment_rec.header_id
2022 AND LINE_ID IS NULL;
2023
2024
2025 p_Header_Payment_rec.lock_control := l_lock_control;
2026
2027 EXCEPTION
2028
2029 WHEN OTHERS THEN
2030
2031 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2032 THEN
2033 oe_msg_pub.Add_Exc_Msg
2034 ( G_PKG_NAME
2035 , 'Update_Row'
2036 );
2037 END IF;
2038
2039 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2040
2041 END Update_Row;
2042
2043 -- Procedure Insert_Row
2044
2045 PROCEDURE Insert_Row
2046 ( p_Header_Payment_rec IN OUT NOCOPY OE_Order_PUB.Header_Payment_Rec_Type
2047 )
2048 IS
2049 l_lock_control NUMBER:= 1;
2050 l_index NUMBER;
2051 l_return_status VARCHAR2(1);
2052 --
2053 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2054 --
2055 BEGIN
2056 IF l_debug_level > 0 THEN
2057 oe_debug_pub.add( 'ENTERING OE_HEADER_Payment_UTIL.INSERT_ROW' , 1 ) ;
2058 END IF;
2059
2060 INSERT INTO OE_PAYMENTS
2061 ( ATTRIBUTE1
2062 , ATTRIBUTE2
2063 , ATTRIBUTE3
2064 , ATTRIBUTE4
2065 , ATTRIBUTE5
2066 , ATTRIBUTE6
2067 , ATTRIBUTE7
2068 , ATTRIBUTE8
2069 , ATTRIBUTE9
2070 , ATTRIBUTE10
2071 , ATTRIBUTE11
2072 , ATTRIBUTE12
2073 , ATTRIBUTE13
2074 , ATTRIBUTE14
2075 , ATTRIBUTE15
2076 , CONTEXT
2077 , CREATED_BY
2078 , CREATION_DATE
2079 , LAST_UPDATED_BY
2080 , LAST_UPDATE_DATE
2081 , LAST_UPDATE_LOGIN
2082 , CHECK_NUMBER
2083 /*, CREDIT_CARD_APPROVAL_CODE --R12 CC Encryption
2084 , CREDIT_CARD_APPROVAL_DATE
2085 , CREDIT_CARD_CODE
2086 , CREDIT_CARD_EXPIRATION_DATE
2087 , CREDIT_CARD_HOLDER_NAME
2088 , CREDIT_CARD_NUMBER*/
2089 , PAYMENT_LEVEL_CODE
2090 , COMMITMENT_APPLIED_AMOUNT
2091 , COMMITMENT_INTERFACED_AMOUNT
2092 , PAYMENT_NUMBER
2093 , HEADER_ID
2094 , LINE_ID
2095 , PAYMENT_AMOUNT
2096 , PAYMENT_COLLECTION_EVENT
2097 , PAYMENT_TRX_ID
2098 , PAYMENT_TYPE_CODE
2099 , PAYMENT_SET_ID
2100 , PREPAID_AMOUNT
2101 , PROGRAM_APPLICATION_ID
2102 , PROGRAM_ID
2103 , PROGRAM_UPDATE_DATE
2104 , RECEIPT_METHOD_ID
2105 , REQUEST_ID
2106 --, TANGIBLE_ID
2107 , DEFER_PAYMENT_PROCESSING_FLAG
2108 , TRXN_EXTENSION_ID
2109 , LOCK_CONTROL
2110 )
2111 VALUES
2112 ( p_Header_Payment_rec.attribute1
2113 , p_Header_Payment_rec.attribute2
2114 , p_Header_Payment_rec.attribute3
2115 , p_Header_Payment_rec.attribute4
2116 , p_Header_Payment_rec.attribute5
2117 , p_Header_Payment_rec.attribute6
2118 , p_Header_Payment_rec.attribute7
2119 , p_Header_Payment_rec.attribute8
2120 , p_Header_Payment_rec.attribute9
2121 , p_Header_Payment_rec.attribute10
2122 , p_Header_Payment_rec.attribute11
2123 , p_Header_Payment_rec.attribute12
2124 , p_Header_Payment_rec.attribute13
2125 , p_Header_Payment_rec.attribute14
2126 , p_Header_Payment_rec.attribute15
2127 , p_Header_Payment_rec.context
2128 , p_Header_Payment_rec.created_by
2129 , p_Header_Payment_rec.creation_date
2130 , p_Header_Payment_rec.last_updated_by
2131 , p_Header_Payment_rec.last_update_date
2132 , p_Header_Payment_rec.last_update_login
2133 , p_Header_Payment_rec.check_number
2134 /*, p_Header_Payment_rec.credit_card_approval_code --R12 CC Encryption
2135 , p_Header_Payment_rec.credit_card_approval_date
2136 , p_Header_Payment_rec.credit_card_code
2137 , p_Header_Payment_rec.credit_card_expiration_date
2138 , p_Header_Payment_rec.credit_card_holder_name
2139 , p_Header_Payment_rec.credit_card_number*/ --R12 CC Encryption
2140 , p_Header_Payment_rec.payment_level_code
2141 , p_Header_Payment_rec.commitment_applied_amount
2142 , p_Header_Payment_rec.commitment_interfaced_amount
2143 , p_Header_Payment_rec.payment_number
2144 , p_Header_Payment_rec.header_id
2145 , p_Header_Payment_rec.line_id
2146 , p_Header_Payment_rec.payment_amount
2147 , p_Header_Payment_rec.payment_collection_event
2148 , p_Header_Payment_rec.payment_trx_id
2149 , p_Header_Payment_rec.payment_type_code
2150 , p_Header_Payment_rec.payment_set_id
2151 , p_Header_Payment_rec.prepaid_amount
2152 , p_Header_Payment_rec.program_application_id
2153 , p_Header_Payment_rec.program_id
2154 , p_Header_Payment_rec.program_update_date
2155 , p_Header_Payment_rec.receipt_method_id
2156 , p_Header_Payment_rec.request_id
2157 --, p_Header_Payment_rec.tangible_id --R12 CC Encryption
2158 , p_Header_Payment_rec.defer_payment_processing_flag
2159 , p_Header_Payment_rec.trxn_extension_id
2160 , l_lock_control
2161 );
2162
2163 p_Header_Payment_rec.lock_control := l_lock_control;
2164
2165 --calling notification framework to update global picture
2166 --check code release level first. Notification framework is at Pack H level
2167 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' THEN
2168 /*
2169 OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
2170 p_old_hdr_pmt_rec => NULL,
2171 p_Hdr_pmt_rec =>p_header_Payment_rec,
2172 p_hdr_pmt_id => p_header_Payment_rec.payment_number,
2173 x_index => l_index,
2174 x_return_status => l_return_status); */
2175 IF l_debug_level > 0 THEN
2176 oe_debug_pub.add( 'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_Payment_UTIL.INSERT_ROW IS: ' || L_RETURN_STATUS ) ;
2177 END IF;
2178 IF l_debug_level > 0 THEN
2179 oe_debug_pub.add( 'RETURNED INDEX IS: ' || L_INDEX , 1 ) ;
2180 END IF;
2181
2182 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2183 IF l_debug_level > 0 THEN
2184 oe_debug_pub.add( 'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
2185 END IF;
2186 IF l_debug_level > 0 THEN
2187 oe_debug_pub.add( 'EXITING OE_HEADER_Payment_UTIL.INSERT_ROW' , 1 ) ;
2188 END IF;
2189 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2190 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2191 IF l_debug_level > 0 THEN
2192 oe_debug_pub.add( 'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_Payment_UTIL.INSERT_ROW' ) ;
2193 END IF;
2194 IF l_debug_level > 0 THEN
2195 oe_debug_pub.add( 'EXITING OE_HEADER_Payment_UTIL.INSERT_ROW' , 1 ) ;
2196 END IF;
2197 RAISE FND_API.G_EXC_ERROR;
2198 END IF;
2199 END IF; /*code_release_level*/
2200 -- notification framework end
2201
2202 IF l_debug_level > 0 THEN
2203 oe_debug_pub.add( 'EXITING OE_HEADER_Payment_UTIL.INSERT_ROW' , 1 ) ;
2204 END IF;
2205
2206 EXCEPTION
2207
2208 WHEN OTHERS THEN
2209 oe_debug_pub.add('Sql error'||sqlerrm);
2210 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2211 THEN
2212 oe_msg_pub.Add_Exc_Msg
2213 ( G_PKG_NAME
2214 , 'Insert_Row'
2215 );
2216 END IF;
2217
2218 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2219
2220 END Insert_Row;
2221
2222 -- Procedure Delete_Row
2223
2224 PROCEDURE Delete_Row
2225 ( p_payment_number IN NUMBER :=
2226 FND_API.G_MISS_NUM
2227 , p_header_id IN NUMBER :=
2228 FND_API.G_MISS_NUM
2229 )
2230 IS
2231 l_return_status VARCHAR2(30);
2232 l_msg_count number := 0;
2233 l_msg_data VARCHAR2(2000) := NULL;
2234 l_pmt_collection_event VARCHAR2(30);
2235 l_prepay_count NUMBER := 0;
2236
2237
2238 CURSOR payment IS
2239 SELECT payment_number, payment_collection_event,trxn_extension_id,payment_type_code --R12 CC Encryption
2240 FROM OE_PAYMENTS
2241 WHERE HEADER_ID = p_header_id
2242 AND line_id is NULL;
2243 -- added for notification framework
2244 l_new_header_Payment_rec OE_Order_PUB.Header_Payment_Rec_Type;
2245 l_index NUMBER;
2246 --
2247 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2248 --R12 CC Encryption
2249 l_trxn_extension_id NUMBER;
2250 l_invoice_to_org_id NUMBER;
2251 l_payment_type_code VARCHAR2(80);
2252 --R12 CC Encryption
2253 BEGIN
2254 IF l_debug_level > 0 THEN
2255 oe_debug_pub.add( 'ENTERING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2256 END IF;
2257
2258 IF p_header_id <> FND_API.G_MISS_NUM AND
2259 nvl(p_payment_number, FND_API.G_MISS_NUM) = FND_API.G_MISS_NUM
2260 THEN
2261
2262 FOR l_pmt IN payment LOOP
2263
2264 --added notification framework
2265 --check code release level first. Notification framework is at Pack H level
2266 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110510' THEN
2267 /* Set the operation on the record so that globals are updated as well */
2268 l_new_header_Payment_rec.operation := OE_GLOBALS.G_OPR_DELETE;
2269 l_new_header_Payment_rec.header_id := p_header_id;
2270 l_new_header_Payment_rec.payment_number := l_pmt.payment_number;
2271 l_new_header_Payment_rec.payment_collection_event := l_pmt.payment_collection_event;
2272 --l_new_header_Payment_rec.payment_type_code := l_pmt.
2273 --l_new_header_Payment_rec.trxn_extension_id := l_pmt.trxn_extension_id; --R12 CC Encryption Verify
2274
2275 /* OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
2276 p_Hdr_pmt_rec =>l_new_header_Payment_rec,
2277 p_hdr_pmt_id => payment_number,
2278 x_index => l_index,
2279 x_return_status => l_return_status); */
2280
2281 IF l_debug_level > 0 THEN
2282 oe_debug_pub.add( 'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_Payment_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
2283 END IF;
2284 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2285 IF l_debug_level > 0 THEN
2286 oe_debug_pub.add( 'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
2287 END IF;
2288 IF l_debug_level > 0 THEN
2289 oe_debug_pub.add( 'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2290 END IF;
2291 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2292 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2293 IF l_debug_level > 0 THEN
2294 oe_debug_pub.add( 'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_Payment_UTIL.DELETE_ROW' ) ;
2295 END IF;
2296 IF l_debug_level > 0 THEN
2297 oe_debug_pub.add( 'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2298 END IF;
2299 RAISE FND_API.G_EXC_ERROR;
2300 END IF;
2301 END IF; /*code_release_level*/
2302 -- notification framework end
2303 --R12 CC Encryption
2304 --Calling delete API of Oracle Payments only if the payment
2305 --type is credit card ach or direct debit.
2306 IF l_pmt.payment_type_code in ('CREDIT_CARD','ACH','DIRECT_DEBIT') THEN
2307 --Passing the invoice to org id as null to Delete_Payment_trxn API
2308 --as the old invoice to org id needs to be passed to this api in
2309 --case of deleting the payments due to bill-to site change.
2310
2311 /*select invoice_to_org_id into l_invoice_to_org_id --Verify
2312 from oe_order_headers_all where
2313 header_id = p_header_id;*/
2314 IF l_debug_level > 0 THEN
2315 oe_debug_pub.add('Deleting trxn id...'||l_pmt.trxn_extension_id);
2316 oe_debug_pub.add('Invoice to org.'||l_invoice_to_org_id);
2317 END IF;
2318
2319 OE_PAYMENT_TRXN_UTIL.Delete_Payment_Trxn
2320 (p_header_id => p_header_id,
2321 p_line_id => null,
2322 p_payment_number=> null,
2323 P_site_use_id => l_invoice_to_org_id,
2324 p_trxn_extension_id => l_pmt.trxn_extension_id,
2325 x_return_status =>l_return_status,
2326 x_msg_count => l_msg_count,
2327 x_msg_data => l_msg_data);
2328
2329 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2330 IF l_debug_level > 0 THEN
2331 oe_debug_pub.add( 'Delete Payment at Header - UNEXPECTED ERROR' ) ;
2332 oe_debug_pub.add('Error message'||sqlerrm);
2333 oe_debug_pub.add('Msg data'||l_msg_data);
2334 END IF;
2335 IF l_debug_level > 0 THEN
2336 oe_debug_pub.add( 'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2337 END IF;
2338 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2339 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2340 IF l_debug_level > 0 THEN
2341 oe_debug_pub.add( 'Delete Payment at Header - OE_HEADER_Payment_UTIL.DELETE_ROW' ) ;
2342 oe_debug_pub.add('Error message'||sqlerrm);
2343 oe_debug_pub.add('Msg data'||l_msg_data);
2344 END IF;
2345 IF l_debug_level > 0 THEN
2346 oe_debug_pub.add( 'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2347 END IF;
2348 RAISE FND_API.G_EXC_ERROR;
2349 END IF;
2350 END IF;
2351 --R12 CC Encryption
2352 END LOOP;
2353
2354 OE_Delayed_Requests_Pvt.Delete_Reqs_for_deleted_entity(
2355 p_entity_code => OE_GLOBALS.G_ENTITY_HEADER_PAYMENT,
2356 p_entity_id => p_header_id,
2357 x_return_status => l_return_status
2358 );
2359
2360 DELETE FROM OE_PAYMENTS
2361 WHERE HEADER_ID = p_header_id
2362 AND LINE_ID IS NULL;
2363
2364 --3382262
2365 IF l_debug_level > 0 THEN
2366 oe_debug_pub.add('1: after executing delete statement against oe_payments - before delete_payment_at_header');
2367 END IF;
2368 Delete_Payment_at_header(p_header_id => p_header_id,
2369 x_return_status => l_return_status,
2370 x_msg_count => l_msg_count,
2371 x_msg_data => l_msg_data);
2372 --3382262
2373 -- Release all Prepayment holds;
2374 IF l_debug_level > 0 THEN
2375 oe_debug_pub.add( 'Releasing all payment related holds.' , 3 ) ;
2376 END IF;
2377
2378 OE_Prepayment_PVT.Release_Prepayment_Hold
2379 ( p_header_id => p_header_id
2380 , p_msg_count => l_msg_count
2381 , p_msg_data => l_msg_data
2382 , p_return_status => l_return_status
2383 );
2384
2385 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2386 RAISE FND_API.G_EXC_ERROR;
2387 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2388 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2389 END IF;
2390
2391 -- release any authorization related holds.
2392 OE_Verify_Payment_PUB.Release_Verify_Hold
2393 ( p_header_id => p_header_id
2394 , p_epayment_hold => 'Y'
2395 , p_msg_count => l_msg_count
2396 , p_msg_data => l_msg_data
2397 , p_return_status => l_return_status
2398 );
2399 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2400 RAISE FND_API.G_EXC_ERROR;
2401 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2402 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2403 END IF;
2404
2405
2406 ELSIF p_header_id <> FND_API.G_MISS_NUM AND
2407 p_payment_number <> FND_API.G_MISS_NUM THEN
2408 --added notification framework
2409 --check code release level first. Notification framework is at Pack H level
2410 IF OE_CODE_CONTROL.CODE_RELEASE_LEVEL >= '110508' THEN
2411 /* Set the operation on the record so that globals are updated as well */
2412 l_new_header_Payment_rec.operation := OE_GLOBALS.G_OPR_DELETE;
2413 l_new_header_Payment_rec.payment_number := p_payment_number;
2414 l_new_header_Payment_rec.header_id := p_header_id;
2415 /* OE_ORDER_UTIL.Update_Global_Picture(p_Upd_New_Rec_If_Exists => True,
2416 p_Hdr_pmt_rec =>l_new_header_Payment_rec,
2417 p_hdr_pmt_id => p_payment_number,
2418 x_index => l_index,
2419 x_return_status => l_return_status); */
2420
2421 --ER#7479609 start
2422 Delete_PaymentType_Hold
2423 (
2424 p_header_id => p_header_id
2425 , p_payment_number => p_payment_number
2426 , x_msg_count => l_msg_count
2427 , x_msg_data => l_msg_data
2428 , x_return_status => l_return_status
2429 );
2430 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2431 RAISE FND_API.G_EXC_ERROR;
2432 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2433 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2434 END IF;
2435 --ER#7479609 end
2436
2437
2438 IF l_debug_level > 0 THEN
2439 oe_debug_pub.add( 'UPDATE_GLOBAL RETURN STATUS FROM OE_HEADER_Payment_UTIL.DELETE_ROW IS: ' || L_RETURN_STATUS ) ;
2440 END IF;
2441
2442 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2443 IF l_debug_level > 0 THEN
2444 oe_debug_pub.add( 'EVENT NOTIFY - UNEXPECTED ERROR' ) ;
2445 END IF;
2446 IF l_debug_level > 0 THEN
2447 oe_debug_pub.add( 'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2448 END IF;
2449 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2450 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2451 IF l_debug_level > 0 THEN
2452 oe_debug_pub.add( 'UPDATE_GLOBAL_PICTURE ERROR IN OE_HEADER_Payment_UTIL.DELETE_ROW' ) ;
2453 END IF;
2454 IF l_debug_level > 0 THEN
2455 oe_debug_pub.add( 'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2456 END IF;
2457 RAISE FND_API.G_EXC_ERROR;
2458 END IF;
2459 END IF; /*code_release_level*/
2460 -- notification framework end
2461
2462 OE_Delayed_Requests_Pvt.Delete_Reqs_for_deleted_entity(
2463 p_entity_code => OE_GLOBALS.G_ENTITY_HEADER_Payment,
2464 p_entity_id => p_header_id,
2465 x_return_status => l_return_status
2466 );
2467
2468 BEGIN
2469 SELECT payment_collection_event,trxn_extension_id,payment_type_code --R12 CC Encryption
2470 INTO l_pmt_collection_event,l_trxn_extension_id,l_payment_type_code
2471 FROM oe_payments
2472 WHERE payment_number = p_payment_number
2473 AND header_id = p_header_id
2474 AND line_id is null;
2475 EXCEPTION WHEN NO_DATA_FOUND THEN
2476 null;
2477 END;
2478 --R12 CC Encryption
2479 --Calling delete API of Oracle Payments only if the payment
2480 --type is credit card ach or direct debit.
2481 IF l_payment_type_code in ('CREDIT_CARD','ACH','DIRECT_DEBIT') THEN
2482 --Passing the invoice to org id as null to Delete_Payment_trxn API
2483 --as the old invoice to org id needs to be passed to this api in
2484 --case of deleting the payments due to bill-to site change.
2485
2486 /*select invoice_to_org_id into l_invoice_to_org_id
2487 from oe_order_headers_all where header_id = p_header_id;*/
2488 IF l_debug_level > 0 THEN
2489 oe_debug_pub.add('Deleting trxn id...'||l_trxn_extension_id);
2490 oe_debug_pub.add('Invoice to org.'||l_invoice_to_org_id);
2491 END IF;
2492
2493 OE_PAYMENT_TRXN_UTIL.Delete_Payment_Trxn
2494 (p_header_id => p_header_id,
2495 p_line_id => null,
2496 p_payment_number=> p_payment_number,
2497 P_site_use_id => l_invoice_to_org_id,
2498 p_trxn_extension_id => l_trxn_extension_id,
2499 x_return_status =>l_return_status,
2500 x_msg_count => l_msg_count,
2501 x_msg_data => l_msg_data);
2502
2503
2504 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2505 IF l_debug_level > 0 THEN
2506 oe_debug_pub.add( '2:Delete Payment at Header - UNEXPECTED ERROR' ) ;
2507 END IF;
2508 IF l_debug_level > 0 THEN
2509 oe_debug_pub.add( 'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2510 END IF;
2511 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2512 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
2513 IF l_debug_level > 0 THEN
2514 oe_debug_pub.add( '2:Delete Payment at Header - OE_HEADER_Payment_UTIL.DELETE_ROW' ) ;
2515 END IF;
2516 IF l_debug_level > 0 THEN
2517 oe_debug_pub.add( 'EXITING OE_HEADER_Payment_UTIL.DELETE_ROW' , 1 ) ;
2518 END IF;
2519 RAISE FND_API.G_EXC_ERROR;
2520 END IF;
2521 END IF;
2522 --R12 CC Encryption
2523 DELETE FROM OE_PAYMENTS
2524 WHERE HEADER_ID = p_header_id
2525 AND PAYMENT_NUMBER = p_payment_number
2526 AND LINE_ID IS NULL
2527 ;
2528
2529 --3382262
2530 IF l_debug_level > 0 THEN
2531 oe_debug_pub.add('2: after executing delete statement against oe_payments - before delete_payment_at_header');
2532 END IF;
2533 Delete_Payment_at_header(p_header_id => p_header_id,
2534 x_return_status => l_return_status,
2535 x_msg_count => l_msg_count,
2536 x_msg_data => l_msg_data);
2537 --3382262
2538
2539
2540 IF l_pmt_collection_event = 'INVOICE' THEN
2541 -- release any authorization related holds.
2542 IF l_debug_level > 0 THEN
2543 oe_debug_pub.add( 'releasing all authorization related holds.', 3 ) ;
2544 END IF;
2545 OE_Verify_Payment_PUB.Release_Verify_Hold
2546 ( p_header_id => p_header_id
2547 , p_epayment_hold => 'Y'
2548 , p_msg_count => l_msg_count
2549 , p_msg_data => l_msg_data
2550 , p_return_status => l_return_status
2551 );
2552 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2553 RAISE FND_API.G_EXC_ERROR;
2554 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2555 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2556 END IF;
2557
2558 ELSE
2559 -- the payment being deleted is a prepayment.
2560 BEGIN
2561 SELECT count(*)
2562 INTO l_prepay_count
2563 FROM oe_payments
2564 WHERE nvl(payment_collection_event, 'PREPAY') = 'PREPAY'
2565 AND header_id = p_header_id
2566 AND line_id is null;
2567 EXCEPTION WHEN NO_DATA_FOUND THEN
2568 l_prepay_count := 0;
2569 END;
2570
2571 IF l_prepay_count = 0 THEN
2572 -- Release all Prepayment holds if no prepayment exists any more.
2573 IF l_debug_level > 0 THEN
2574 oe_debug_pub.add( 'releasing all prepayment related holds.', 3 ) ;
2575 END IF;
2576
2577 OE_Prepayment_PVT.Release_Prepayment_Hold
2578 ( p_header_id => p_header_id
2579 , p_msg_count => l_msg_count
2580 , p_msg_data => l_msg_data
2581 , p_return_status => l_return_status
2582 );
2583
2584 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2585 RAISE FND_API.G_EXC_ERROR;
2586 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2587 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2588 END IF;
2589 END IF;
2590
2591 END IF;
2592
2593 oe_debug_pub.add('exiting oe_header_Payment_util.delete_row ',1);
2594
2595 END IF;
2596
2597 EXCEPTION
2598
2599 WHEN OTHERS THEN
2600
2601 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2602 THEN
2603 oe_msg_pub.Add_Exc_Msg
2604 ( G_PKG_NAME
2605 , 'Delete_Row'
2606 );
2607 END IF;
2608
2609 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2610
2611 END Delete_Row;
2612
2613 -- Procedure Query_Row
2614 PROCEDURE Query_Row
2615 ( p_payment_number IN NUMBER,
2616 p_header_id IN NUMBER,
2617 x_Header_Payment_rec IN OUT NOCOPY OE_Order_PUB.Header_Payment_Rec_Type
2618 )
2619 IS
2620 x_Header_Payment_tbl OE_Order_PUB.Header_Payment_Tbl_Type;
2621 CURSOR l_Header_Payment_csr IS
2622 SELECT ATTRIBUTE1
2623 , ATTRIBUTE2
2624 , ATTRIBUTE3
2625 , ATTRIBUTE4
2626 , ATTRIBUTE5
2627 , ATTRIBUTE6
2628 , ATTRIBUTE7
2629 , ATTRIBUTE8
2630 , ATTRIBUTE9
2631 , ATTRIBUTE10
2632 , ATTRIBUTE11
2633 , ATTRIBUTE12
2634 , ATTRIBUTE13
2635 , ATTRIBUTE14
2636 , ATTRIBUTE15
2637 , CONTEXT
2638 , CREATED_BY
2639 , CREATION_DATE
2640 , LAST_UPDATED_BY
2641 , LAST_UPDATE_DATE
2642 , LAST_UPDATE_LOGIN
2643 , CHECK_NUMBER --R12 CC Encryption Verify
2644 , CREDIT_CARD_APPROVAL_CODE
2645 , CREDIT_CARD_APPROVAL_DATE
2646 , CREDIT_CARD_CODE
2647 , CREDIT_CARD_EXPIRATION_DATE
2648 , CREDIT_CARD_HOLDER_NAME
2649 , CREDIT_CARD_NUMBER --R12 CC Encryption Verify
2650 , PAYMENT_LEVEL_CODE
2651 , COMMITMENT_APPLIED_AMOUNT
2652 , COMMITMENT_INTERFACED_AMOUNT
2653 , HEADER_ID
2654 , LINE_ID
2655 , PAYMENT_AMOUNT
2656 , PAYMENT_COLLECTION_EVENT
2657 , PAYMENT_TRX_ID
2658 , PAYMENT_TYPE_CODE
2659 , PAYMENT_SET_ID
2660 , PREPAID_AMOUNT
2661 , PROGRAM_APPLICATION_ID
2662 , PROGRAM_ID
2663 , PROGRAM_UPDATE_DATE
2664 , RECEIPT_METHOD_ID
2665 , REQUEST_ID
2666 , TANGIBLE_ID --R12 CC Encryption Verify
2667 , LOCK_CONTROL
2668 , PAYMENT_NUMBER
2669 , DEFER_PAYMENT_PROCESSING_FLAG
2670 , TRXN_EXTENSION_ID
2671 FROM OE_PAYMENTS
2672 WHERE ( PAYMENT_NUMBER = p_payment_number
2673 AND HEADER_ID = p_header_id
2674 AND LINE_ID IS NULL);
2675
2676 --
2677 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2678 --R12 CC Encryption Verify
2679 x_bank_account_number VARCHAR2(100);
2680 x_check_number varchar2(100);
2681 l_return_status VARCHAR2(30) := NULL ;
2682 l_msg_count NUMBER := 0 ;
2683 l_msg_data VARCHAR2(2000) := NULL ;
2684
2685 --R12 CC Encryption
2686 BEGIN
2687
2688 -- Loop over fetched records
2689
2690 FOR l_implicit_rec IN l_Header_Payment_csr LOOP
2691
2692 x_Header_Payment_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
2693 x_Header_Payment_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
2694 x_Header_Payment_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
2695 x_Header_Payment_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
2696 x_Header_Payment_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
2697 x_Header_Payment_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
2698 x_Header_Payment_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
2699 x_Header_Payment_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
2700 x_Header_Payment_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
2701 x_Header_Payment_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
2702 x_Header_Payment_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
2703 x_Header_Payment_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
2704 x_Header_Payment_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
2705 x_Header_Payment_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
2706 x_Header_Payment_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
2707 x_Header_Payment_rec.context := l_implicit_rec.CONTEXT;
2708 x_Header_Payment_rec.created_by := l_implicit_rec.CREATED_BY;
2709 x_Header_Payment_rec.creation_date := l_implicit_rec.CREATION_DATE;
2710 x_Header_Payment_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
2711 x_Header_Payment_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
2712 x_Header_Payment_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
2713 --R12 CC Encryption Verify
2714 x_Header_Payment_rec.check_number := l_implicit_rec.CHECK_NUMBER;
2715 x_Header_Payment_rec.credit_card_approval_code := l_implicit_rec.CREDIT_CARD_APPROVAL_CODE;
2716 x_Header_Payment_rec.credit_card_approval_date := l_implicit_rec.CREDIT_CARD_APPROVAL_DATE;
2717 x_Header_Payment_rec.credit_card_code := l_implicit_rec.CREDIT_CARD_CODE;
2718 x_Header_Payment_rec.credit_card_expiration_date := l_implicit_rec.CREDIT_CARD_EXPIRATION_DATE;
2719 x_Header_Payment_rec.credit_card_holder_name := l_implicit_rec.CREDIT_CARD_HOLDER_NAME;
2720 x_Header_Payment_rec.credit_card_number := l_implicit_rec.CREDIT_CARD_NUMBER;
2721 --R12 CC Encryption Verify
2722 x_Header_Payment_rec.payment_level_code := l_implicit_rec.PAYMENT_LEVEL_CODE;
2723 x_Header_Payment_rec.commitment_applied_amount := l_implicit_rec.COMMITMENT_APPLIED_AMOUNT;
2724 x_Header_Payment_rec.commitment_interfaced_amount := l_implicit_rec.COMMITMENT_INTERFACED_AMOUNT;
2725 x_Header_Payment_rec.header_id := l_implicit_rec.HEADER_ID;
2726 x_Header_Payment_rec.line_id := l_implicit_rec.LINE_ID;
2727 x_Header_Payment_rec.payment_amount := l_implicit_rec.PAYMENT_AMOUNT;
2728 x_Header_Payment_rec.payment_collection_event := l_implicit_rec.PAYMENT_COLLECTION_EVENT;
2729 x_Header_Payment_rec.payment_trx_id := l_implicit_rec.PAYMENT_TRX_ID;
2730 x_Header_Payment_rec.payment_type_code := l_implicit_rec.PAYMENT_TYPE_CODE;
2731 x_Header_Payment_rec.payment_set_id := l_implicit_rec.PAYMENT_SET_ID;
2732 x_Header_Payment_rec.prepaid_amount := l_implicit_rec.PREPAID_AMOUNT;
2733 x_Header_Payment_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
2734 x_Header_Payment_rec.program_id := l_implicit_rec.PROGRAM_ID;
2735 x_Header_Payment_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
2736 x_Header_Payment_rec.receipt_method_id := l_implicit_rec.RECEIPT_METHOD_ID;
2737 x_Header_Payment_rec.request_id := l_implicit_rec.REQUEST_ID;
2738 x_Header_Payment_rec.tangible_id := l_implicit_rec.TANGIBLE_ID; --R12 CC Encryption Verify
2739 x_Header_Payment_rec.lock_control := l_implicit_rec.LOCK_CONTROL;
2740 x_Header_Payment_rec.payment_number := l_implicit_rec.PAYMENT_NUMBER;
2741 x_Header_Payment_rec.defer_payment_processing_flag := l_implicit_rec.defer_payment_processing_flag;
2742 --R12 CC Encryption
2743 x_Header_Payment_rec.trxn_extension_id := l_implicit_rec.trxn_extension_id;
2744 --Populating the header payment record by querying the Payments tables
2745 --as they are no longer stored in OM tables
2746 IF l_implicit_rec.trxn_extension_id is not null then
2747 OE_Payment_Trxn_Util.Get_Payment_Trxn_Info(p_header_id => p_header_id,
2748 P_trxn_extension_id => x_Header_Payment_rec.trxn_extension_id,
2749 P_payment_type_code => x_Header_Payment_rec.payment_type_code ,
2750 X_credit_card_number => x_Header_Payment_rec.credit_card_number,
2751 X_credit_card_holder_name => x_Header_Payment_rec.credit_card_holder_name,
2752 X_credit_card_expiration_date => x_Header_Payment_rec.credit_card_expiration_date,
2753 X_credit_card_code => x_Header_Payment_rec.credit_card_code,
2754 X_credit_card_approval_code => x_Header_Payment_rec.credit_card_approval_code,
2755 X_credit_card_approval_date => x_Header_Payment_rec.credit_card_approval_date,
2756 X_bank_account_number => X_bank_account_number,
2757 --X_check_number => X_check_number ,
2758 X_instrument_security_code => x_Header_Payment_rec.instrument_security_code,
2759 X_instrument_id => x_Header_Payment_rec.cc_instrument_id,
2760 X_instrument_assignment_id => x_Header_Payment_rec.cc_instrument_assignment_id,
2761 X_return_status => l_return_status,
2762 X_msg_count => l_msg_count,
2763 X_msg_data => l_msg_data);
2764 END IF;
2765 --R12 CC Encryption
2766 x_Header_Payment_tbl(x_Header_Payment_tbl.COUNT + 1) := x_Header_Payment_rec;
2767
2768 END LOOP;
2769 x_Header_Payment_rec := x_Header_Payment_tbl(1);
2770
2771 -- PK sent and no rows found
2772
2773 IF
2774 (p_payment_number IS NOT NULL
2775 AND
2776 p_payment_number <> FND_API.G_MISS_NUM)
2777 AND
2778 (p_header_id IS NOT NULL
2779 AND
2780 p_header_id <> FND_API.G_MISS_NUM)
2781 AND
2782 (x_Header_Payment_tbl.COUNT = 0)
2783 THEN
2784 RAISE NO_DATA_FOUND;
2785 END IF;
2786
2787
2788 EXCEPTION
2789
2790 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2791
2792 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2793
2794 WHEN OTHERS THEN
2795
2796 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2797 THEN
2798 oe_msg_pub.Add_Exc_Msg
2799 ( G_PKG_NAME
2800 , 'Query_Row'
2801 );
2802 END IF;
2803
2804 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2805
2806 END Query_Row;
2807
2808
2809
2810 -- Procedure Query_Rows
2811
2812 --
2813
2814 Procedure Query_Rows
2815 ( p_payment_number IN NUMBER :=
2816 FND_API.G_MISS_NUM
2817 , p_header_id IN NUMBER :=
2818 FND_API.G_MISS_NUM
2819 , x_header_Payment_tbl IN OUT NOCOPY OE_Order_PUB.Header_Payment_Tbl_Type
2820 )
2821 IS
2822 l_Header_Payment_rec OE_Order_PUB.Header_Payment_Rec_Type;
2823
2824 CURSOR l_Header_Payment_csr IS
2825 SELECT ATTRIBUTE1
2826 , ATTRIBUTE2
2827 , ATTRIBUTE3
2828 , ATTRIBUTE4
2829 , ATTRIBUTE5
2830 , ATTRIBUTE6
2831 , ATTRIBUTE7
2832 , ATTRIBUTE8
2833 , ATTRIBUTE9
2834 , ATTRIBUTE10
2835 , ATTRIBUTE11
2836 , ATTRIBUTE12
2837 , ATTRIBUTE13
2838 , ATTRIBUTE14
2839 , ATTRIBUTE15
2840 , CONTEXT
2841 , CREATED_BY
2842 , CREATION_DATE
2843 , LAST_UPDATED_BY
2844 , LAST_UPDATE_DATE
2845 , LAST_UPDATE_LOGIN
2846 , CHECK_NUMBER --R12 CC Encryption Verify
2847 , CREDIT_CARD_APPROVAL_CODE
2848 , CREDIT_CARD_APPROVAL_DATE
2849 , CREDIT_CARD_CODE
2850 , CREDIT_CARD_EXPIRATION_DATE
2851 , CREDIT_CARD_HOLDER_NAME
2852 , CREDIT_CARD_NUMBER --R12 CC Encryption Verify
2853 , PAYMENT_LEVEL_CODE
2854 , COMMITMENT_APPLIED_AMOUNT
2855 , COMMITMENT_INTERFACED_AMOUNT
2856 , HEADER_ID
2857 , LINE_ID
2858 , PAYMENT_AMOUNT
2859 , PAYMENT_COLLECTION_EVENT
2860 , PAYMENT_TRX_ID
2861 , PAYMENT_TYPE_CODE
2862 , PAYMENT_SET_ID
2863 , PREPAID_AMOUNT
2864 , PROGRAM_APPLICATION_ID
2865 , PROGRAM_ID
2866 , PROGRAM_UPDATE_DATE
2867 , RECEIPT_METHOD_ID
2868 , REQUEST_ID
2869 , TANGIBLE_ID --R12 CC Encryption Verify
2870 , LOCK_CONTROL
2871 , PAYMENT_NUMBER
2872 , DEFER_PAYMENT_PROCESSING_FLAG
2873 , TRXN_EXTENSION_ID
2874 FROM OE_PAYMENTS
2875 WHERE HEADER_ID = p_header_id
2876 AND LINE_ID IS NULL
2877 ;
2878
2879 --
2880 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2881 --
2882 --R12 CC Encryption Verify
2883 x_bank_account_number VARCHAR2(100); --bug 5170754
2884 x_check_number varchar2(100);
2885 l_return_status VARCHAR2(30) := NULL ;
2886 l_msg_count NUMBER := 0 ;
2887 l_msg_data VARCHAR2(2000) := NULL ;
2888 --R12 CC Encryption
2889
2890 BEGIN
2891
2892 -- Loop over fetched records
2893
2894 FOR l_implicit_rec IN l_Header_Payment_csr LOOP
2895
2896 l_Header_Payment_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
2897 l_Header_Payment_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
2898 l_Header_Payment_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
2899 l_Header_Payment_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
2900 l_Header_Payment_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
2901 l_Header_Payment_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
2902 l_Header_Payment_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
2903 l_Header_Payment_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
2904 l_Header_Payment_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
2905 l_Header_Payment_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
2906 l_Header_Payment_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
2907 l_Header_Payment_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
2908 l_Header_Payment_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
2909 l_Header_Payment_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
2910 l_Header_Payment_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
2911 l_Header_Payment_rec.context := l_implicit_rec.CONTEXT;
2912 l_Header_Payment_rec.created_by := l_implicit_rec.CREATED_BY;
2913 l_Header_Payment_rec.creation_date := l_implicit_rec.CREATION_DATE;
2914 l_Header_Payment_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
2915 l_Header_Payment_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
2916 l_Header_Payment_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
2917 --R12 CC Encryption Verify
2918 l_Header_Payment_rec.check_number := l_implicit_rec.CHECK_NUMBER;
2919 l_Header_Payment_rec.credit_card_approval_code := l_implicit_rec.CREDIT_CARD_APPROVAL_CODE;
2920 l_Header_Payment_rec.credit_card_approval_date := l_implicit_rec.CREDIT_CARD_APPROVAL_DATE;
2921 l_Header_Payment_rec.credit_card_code := l_implicit_rec.CREDIT_CARD_CODE;
2922 l_Header_Payment_rec.credit_card_expiration_date := l_implicit_rec.CREDIT_CARD_EXPIRATION_DATE;
2923 l_Header_Payment_rec.credit_card_holder_name := l_implicit_rec.CREDIT_CARD_HOLDER_NAME;
2924 l_Header_Payment_rec.credit_card_number := l_implicit_rec.CREDIT_CARD_NUMBER;
2925 --R12 CC Encryption Verify
2926 l_Header_Payment_rec.payment_level_code := l_implicit_rec.PAYMENT_LEVEL_CODE;
2927 l_Header_Payment_rec.commitment_applied_amount := l_implicit_rec.COMMITMENT_APPLIED_AMOUNT;
2928 l_Header_Payment_rec.commitment_interfaced_amount := l_implicit_rec.COMMITMENT_INTERFACED_AMOUNT;
2929 l_Header_Payment_rec.header_id := l_implicit_rec.HEADER_ID;
2930 l_Header_Payment_rec.line_id := l_implicit_rec.LINE_ID;
2931 l_Header_Payment_rec.payment_amount := l_implicit_rec.PAYMENT_AMOUNT;
2932 l_Header_Payment_rec.payment_collection_event := l_implicit_rec.PAYMENT_COLLECTION_EVENT;
2933 l_Header_Payment_rec.payment_trx_id := l_implicit_rec.PAYMENT_TRX_ID;
2934 l_Header_Payment_rec.payment_type_code := l_implicit_rec.PAYMENT_TYPE_CODE;
2935 l_Header_Payment_rec.payment_set_id := l_implicit_rec.PAYMENT_SET_ID;
2936 l_Header_Payment_rec.prepaid_amount := l_implicit_rec.PREPAID_AMOUNT;
2937 l_Header_Payment_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
2938 l_Header_Payment_rec.program_id := l_implicit_rec.PROGRAM_ID;
2939 l_Header_Payment_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
2940 l_Header_Payment_rec.receipt_method_id := l_implicit_rec.RECEIPT_METHOD_ID;
2941 l_Header_Payment_rec.request_id := l_implicit_rec.REQUEST_ID;
2942 l_Header_Payment_rec.tangible_id := l_implicit_rec.TANGIBLE_ID; --R12 CC Encryption Verify
2943 l_Header_Payment_rec.lock_control := l_implicit_rec.LOCK_CONTROL;
2944 l_Header_Payment_rec.payment_number := l_implicit_rec.PAYMENT_NUMBER;
2945 l_Header_Payment_rec.defer_payment_processing_flag := l_implicit_rec.DEFER_PAYMENT_PROCESSING_FLAG;
2946 --R12 CC Encryption
2947 l_Header_Payment_rec.trxn_extension_id := l_implicit_rec.trxn_extension_id;
2948 --Populating the header payment record by querying the Payments tables
2949 --as they are no longer stored in OM tables
2950 IF l_implicit_rec.trxn_extension_id is not null then
2951 OE_Payment_Trxn_Util.Get_Payment_Trxn_Info(p_header_id => p_header_id,
2952 P_trxn_extension_id => l_Header_Payment_rec.trxn_extension_id,
2953 P_payment_type_code => l_Header_Payment_rec.payment_type_code ,
2954 X_credit_card_number => l_Header_Payment_rec.credit_card_number,
2955 X_credit_card_holder_name => l_Header_Payment_rec.credit_card_holder_name,
2956 X_credit_card_expiration_date => l_Header_Payment_rec.credit_card_expiration_date,
2957 X_credit_card_code => l_Header_Payment_rec.credit_card_code,
2958 X_credit_card_approval_code => l_Header_Payment_rec.credit_card_approval_code,
2959 X_credit_card_approval_date => l_Header_Payment_rec.credit_card_approval_date,
2960 X_bank_account_number => X_bank_account_number,
2961 --X_check_number => X_check_number ,
2962 X_instrument_security_code => l_Header_Payment_rec.instrument_security_code,
2963 X_instrument_id => l_Header_Payment_rec.cc_instrument_id,
2964 X_instrument_assignment_id => l_Header_Payment_rec.cc_instrument_assignment_id,
2965 X_return_status => l_return_status,
2966 X_msg_count => l_msg_count,
2967 X_msg_data => l_msg_data);
2968 END IF;
2969 --R12 CC Encryption
2970
2971 x_Header_Payment_tbl(x_Header_Payment_tbl.COUNT + 1) := l_Header_Payment_rec;
2972
2973 END LOOP;
2974
2975 -- Return fetched table
2976
2977
2978 EXCEPTION
2979
2980 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2981
2982 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2983
2984 WHEN OTHERS THEN
2985
2986 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2987 THEN
2988 oe_msg_pub.Add_Exc_Msg
2989 ( G_PKG_NAME
2990 , 'Query_Rows'
2991 );
2992 END IF;
2993
2994 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2995
2996 END Query_Rows;
2997
2998 -- Procedure lock_Row
2999 --
3000
3001 PROCEDURE Lock_Row
3002 ( x_return_status OUT NOCOPY VARCHAR2
3003 , p_x_Header_Payment_rec IN OUT NOCOPY OE_Order_PUB.Header_Payment_Rec_Type
3004 , p_payment_number IN NUMBER
3005 , p_header_id IN NUMBER
3006 )
3007 IS
3008 l_payment_number NUMBER;
3009 l_header_id NUMBER;
3010 l_Header_Payment_rec OE_Order_PUB.Header_Payment_Rec_Type;
3011 l_lock_control NUMBER;
3012 --
3013 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3014 --
3015 BEGIN
3016
3017 IF l_debug_level > 0 THEN
3018 oe_debug_pub.add( 'ENTERING OE_HEADER_Payment_UTIL.LOCK_ROW' , 1 ) ;
3019 END IF;
3020
3021 SAVEPOINT Lock_Row;
3022
3023 l_lock_control := NULL;
3024
3025 -- Retrieve the primary key.
3026 IF p_payment_number <> FND_API.G_MISS_NUM AND
3027 p_header_id <> FND_API.G_MISS_NUM THEN
3028 l_payment_number := p_payment_number;
3029 l_header_id := p_header_id;
3030 ELSE
3031 l_payment_number := p_x_header_Payment_rec.payment_number;
3032 l_header_id := p_x_header_Payment_rec.header_id;
3033 l_lock_control := p_x_header_Payment_rec.lock_control;
3034 END IF;
3035
3036 SELECT payment_number
3037 INTO l_payment_number
3038 FROM oe_payments
3039 WHERE payment_number = l_payment_number
3040 AND header_id = l_header_id
3041 AND line_id is null
3042 FOR UPDATE NOWAIT;
3043
3044 IF l_debug_level > 0 THEN
3045 oe_debug_pub.add( 'SELECTED FOR UPDATE' , 1 ) ;
3046 END IF;
3047
3048 OE_Header_Payment_Util.Query_Row
3049 (p_payment_number => l_payment_number
3050 ,p_header_id => l_header_id
3051 ,x_header_Payment_rec => p_x_header_Payment_rec );
3052
3053
3054 -- If lock_control is null / missing, then return the locked record.
3055
3056 IF l_lock_control is null OR
3057 l_lock_control <> FND_API.G_MISS_NUM THEN
3058
3059 -- Set return status
3060 x_return_status := FND_API.G_RET_STS_SUCCESS;
3061 p_x_header_Payment_rec.return_status := FND_API.G_RET_STS_SUCCESS;
3062
3063 RETURN;
3064
3065 END IF;
3066
3067 -- Row locked. If the whole record is passed, then
3068 -- Compare IN attributes to DB attributes.
3069
3070 IF OE_GLOBALS.Equal(p_x_Header_Payment_rec.lock_control,
3071 l_lock_control)
3072 THEN
3073
3074 -- Row has not changed. Set out parameter.
3075
3076 p_x_Header_Payment_rec := l_Header_Payment_rec;
3077
3078 -- Set return status
3079
3080 x_return_status := FND_API.G_RET_STS_SUCCESS;
3081 p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_SUCCESS;
3082
3083 ELSE
3084
3085 -- Row has changed by another user.
3086
3087 x_return_status := FND_API.G_RET_STS_ERROR;
3088 p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
3089
3090 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3091 THEN
3092
3093 -- Release the lock
3094 ROLLBACK TO Lock_Row;
3095
3096 FND_MESSAGE.SET_NAME('ONT','OE_LOCK_ROW_CHANGED');
3097 oe_msg_pub.Add;
3098
3099 END IF;
3100
3101 END IF;
3102
3103 EXCEPTION
3104
3105 WHEN NO_DATA_FOUND THEN
3106
3107 x_return_status := FND_API.G_RET_STS_ERROR;
3108 p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
3109
3110 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3111 THEN
3112
3113 FND_MESSAGE.SET_NAME('ONT','OE_LOCK_ROW_DELETED');
3114 oe_msg_pub.Add;
3115
3116 END IF;
3117 WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
3118
3119 x_return_status := FND_API.G_RET_STS_ERROR;
3120 p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
3121
3122 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3123 THEN
3124
3125 FND_MESSAGE.SET_NAME('ONT','OE_LOCK_ROW_ALREADY_LOCKED');
3126 oe_msg_pub.Add;
3127
3128 END IF;
3129 WHEN OTHERS THEN
3130
3131 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3132 p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3133
3134 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3135 THEN
3136 oe_msg_pub.Add_Exc_Msg
3137 ( G_PKG_NAME
3138 , 'Lock_Row'
3139 );
3140 END IF;
3141
3142 END Lock_Row;
3143
3144 PROCEDURE Lock_Rows
3145 ( p_payment_number IN NUMBER :=
3146 FND_API.G_MISS_NUM
3147 , p_header_id IN NUMBER :=
3148 FND_API.G_MISS_NUM
3149 , x_header_Payment_tbl OUT NOCOPY OE_Order_PUB.header_Payment_Tbl_Type
3150 , x_return_status OUT NOCOPY VARCHAR2
3151 )
3152 IS
3153 CURSOR lock_hdr_Payments(p_header_id NUMBER) IS
3154 SELECT payment_number
3155 FROM oe_payments
3156 WHERE header_id = p_header_id
3157 AND line_id is NULL
3158 FOR UPDATE NOWAIT;
3159
3160 l_payment_number NUMBER;
3161 --
3162 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3163 --
3164 BEGIN
3165
3166 IF l_debug_level > 0 THEN
3167 oe_debug_pub.add( 'ENTERING OE_HEADER_PaymentS_UTIL.LOCK_ROWS' , 1 ) ;
3168 END IF;
3169 /*
3170 IF (p_payment_number IS NOT NULL AND
3171 p_payment_number <> FND_API.G_MISS_NUM) AND
3172 (p_header_id IS NOT NULL AND
3173 p_header_id <> FND_API.G_MISS_NUM)
3174 THEN
3175 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3176 THEN
3177 OE_MSG_PUB.Add_Exc_Msg
3178 ( G_PKG_NAME
3179 , 'Lock Rows'
3180 , 'Keys are mutually exclusive: payment_number = '||
3181 p_payment_number || ', header_id = '|| p_header_id );
3182 END IF;
3183
3184 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3185
3186 END IF;
3187 */
3188 IF p_payment_number <> FND_API.G_MISS_NUM AND
3189 p_header_id <> FND_API.G_MISS_NUM THEN
3190
3191 SELECT payment_number
3192 INTO l_payment_number
3193 FROM OE_PAYMENTS
3194 WHERE payment_number = p_payment_number
3195 AND header_id = p_header_id
3196 AND line_id is NULL
3197 FOR UPDATE NOWAIT;
3198
3199 ELSE
3200
3201 BEGIN
3202
3203 IF p_header_id <> FND_API.G_MISS_NUM THEN
3204
3205 SAVEPOINT LOCK_ROWS;
3206 OPEN lock_hdr_Payments(p_header_id);
3207
3208 LOOP
3209 FETCH lock_hdr_Payments INTO l_payment_number;
3210 EXIT WHEN lock_hdr_Payments%NOTFOUND;
3211 END LOOP;
3212
3213 CLOSE lock_hdr_Payments;
3214
3215 END IF;
3216
3217 EXCEPTION
3218 WHEN OTHERS THEN
3219 ROLLBACK TO LOCK_ROWS;
3220
3221 IF lock_hdr_Payments%ISOPEN THEN
3222 CLOSE lock_hdr_Payments;
3223 END IF;
3224
3225 RAISE;
3226 END;
3227
3228 END IF;
3229
3230 -- locked all
3231
3232 OE_Header_Payment_Util.Query_Rows
3233 (p_payment_number => p_payment_number
3234 ,p_header_id => p_header_id
3235 ,x_header_Payment_tbl => x_header_Payment_tbl
3236 );
3237
3238 x_return_status := FND_API.G_RET_STS_SUCCESS;
3239
3240 IF l_debug_level > 0 THEN
3241 oe_debug_pub.add( 'EXITING OE_HEADER_PaymentS_UTIL.LOCK_ROWS' , 1 ) ;
3242 END IF;
3243
3244 EXCEPTION
3245 WHEN NO_DATA_FOUND THEN
3246
3247 x_return_status := FND_API.G_RET_STS_ERROR;
3248
3249 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
3250 THEN
3251 fnd_message.set_name('ONT','OE_LOCK_ROW_DELETED');
3252 OE_MSG_PUB.Add;
3253 END IF;
3254
3255 WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
3256
3257 x_return_status := FND_API.G_RET_STS_ERROR;
3258 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
3259 THEN
3260 fnd_message.set_name('ONT','OE_LOCK_ROW_ALREADY_LOCKED');
3261 OE_MSG_PUB.Add;
3262 END IF;
3263
3264 WHEN OTHERS THEN
3265
3266 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3267
3268 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3269 THEN
3270 OE_MSG_PUB.Add_Exc_Msg
3271 ( G_PKG_NAME
3272 , 'Lock_Rows'
3273 );
3274 END IF;
3275
3276 END Lock_Rows;
3277
3278
3279 -- Function Get_Values
3280
3281 FUNCTION Get_Values
3282 ( p_Header_Payment_rec IN OE_Order_PUB.Header_Payment_Rec_Type
3283 , p_old_Header_Payment_rec IN OE_Order_PUB.Header_Payment_Rec_Type :=
3284 OE_Order_PUB.G_MISS_HEADER_Payment_REC
3285 )RETURN OE_Order_PUB.Header_Payment_Val_Rec_Type
3286 IS
3287 l_Header_Payment_val_rec OE_Order_PUB.Header_Payment_Val_Rec_Type;
3288 --
3289 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3290 --
3291 BEGIN
3292
3293 IF (p_Header_Payment_rec.payment_collection_event IS NULL OR
3294 p_Header_Payment_rec.payment_collection_event <> FND_API.G_MISS_CHAR) AND
3295 NOT OE_GLOBALS.Equal(p_Header_Payment_rec.payment_collection_event,
3296 p_old_Header_Payment_rec.payment_collection_event)
3297 THEN
3298 l_Header_Payment_val_rec.payment_collection_event_name := OE_Id_To_Value.payment_collection_event_name
3299 ( p_payment_collection_event => p_Header_Payment_rec.payment_collection_event
3300 );
3301 END IF;
3302
3303 IF (p_Header_Payment_rec.receipt_method_id IS NULL OR
3304 p_Header_Payment_rec.receipt_method_id <> FND_API.G_MISS_NUM) AND
3305 NOT OE_GLOBALS.Equal(p_Header_Payment_rec.receipt_method_id,
3306 p_old_Header_Payment_rec.receipt_method_id)
3307 THEN
3308 l_Header_Payment_val_rec.receipt_method := OE_Id_To_Value.Receipt_Method
3309 ( p_receipt_method => p_Header_Payment_rec.receipt_method_id
3310 );
3311 END IF;
3312
3313 IF (p_Header_Payment_rec.payment_type_code IS NULL OR
3314 p_Header_Payment_rec.payment_type_code <> FND_API.G_MISS_CHAR) AND
3315 NOT OE_GLOBALS.Equal(p_Header_Payment_rec.payment_type_code,
3316 p_old_Header_Payment_rec.payment_type_code)
3317 THEN
3318 l_Header_Payment_val_rec.payment_type := OE_Id_To_Value.payment_type
3319 ( p_payment_type_code => p_Header_Payment_rec.payment_type_code
3320 );
3321 END IF;
3322
3323 RETURN l_Header_Payment_val_rec;
3324
3325 END Get_Values;
3326
3327 -- Procedure Get_Ids
3328
3329 PROCEDURE Get_Ids
3330 ( p_x_Header_Payment_rec IN OUT NOCOPY OE_Order_PUB.Header_Payment_Rec_Type
3331 , p_Header_Payment_val_rec IN OE_Order_PUB.Header_Payment_Val_Rec_Type
3332 )
3333 IS
3334
3335 --
3336 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3337 --
3338 BEGIN
3339
3340 -- initialize return_status.
3341
3342 p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_SUCCESS;
3343
3344 -- initialize l_Header_Payment_rec.
3345
3346
3347
3348 IF p_Header_Payment_val_rec.payment_collection_event_name <> FND_API.G_MISS_CHAR
3349 THEN
3350
3351 IF p_x_Header_Payment_rec.payment_collection_event <> FND_API.G_MISS_CHAR THEN
3352
3353 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
3354 THEN
3355
3356 FND_MESSAGE.SET_NAME('ONT','OE_BOTH_VAL_AND_ID_EXIST');
3357 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','payment_collection_event_name');
3358 oe_msg_pub.Add;
3359
3360 END IF;
3361
3362 ELSE
3363
3364 p_x_Header_Payment_rec.payment_collection_event := OE_Value_To_Id.payment_collection_event_name
3365 ( p_payment_collection_event => p_Header_Payment_val_rec.payment_collection_event_name
3366 );
3367
3368 IF p_x_Header_Payment_rec.payment_collection_event = FND_API.G_MISS_CHAR THEN
3369 p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
3370 END IF;
3371
3372 END IF;
3373
3374 END IF;
3375
3376 IF p_Header_Payment_val_rec.payment_type <> FND_API.G_MISS_CHAR
3377 THEN
3378
3379 IF p_x_Header_Payment_rec.payment_type_code <> FND_API.G_MISS_CHAR THEN
3380
3381
3382 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
3383 THEN
3384
3385 FND_MESSAGE.SET_NAME('ONT','OE_BOTH_VAL_AND_ID_EXIST');
3386 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','payment_type');
3387 oe_msg_pub.Add;
3388
3389 END IF;
3390
3391 ELSE
3392
3393 p_x_Header_Payment_rec.payment_type_code := OE_Value_To_Id.payment_type
3394 ( p_payment_type => p_Header_Payment_val_rec.payment_type
3395 );
3396
3397 IF p_x_Header_Payment_rec.payment_type_code = FND_API.G_MISS_CHAR THEN
3398 p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
3399 END IF;
3400
3401 END IF;
3402
3403 END IF;
3404
3405
3406 IF p_Header_Payment_val_rec.receipt_method <> FND_API.G_MISS_CHAR
3407 THEN
3408
3409 IF p_x_Header_Payment_rec.receipt_method_id <> FND_API.G_MISS_NUM THEN
3410
3411
3412 IF oe_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_SUCCESS)
3413 THEN
3414
3415 FND_MESSAGE.SET_NAME('ONT','OE_BOTH_VAL_AND_ID_EXIST');
3416 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','Receipt_Method');
3417 oe_msg_pub.Add;
3418
3419 END IF;
3420
3421 ELSE
3422
3423 p_x_Header_Payment_rec.receipt_method_id := OE_Value_To_Id.Receipt_Method
3424 ( p_receipt_method => p_Header_Payment_val_rec.receipt_method
3425 );
3426
3427 IF p_x_Header_Payment_rec.receipt_method_id = FND_API.G_MISS_NUM THEN
3428 p_x_Header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
3429 END IF;
3430
3431 END IF;
3432
3433 END IF;
3434
3435
3436
3437 END Get_Ids;
3438
3439 PROCEDURE Pre_Write_Process
3440 ( p_x_header_Payment_rec IN OUT NOCOPY OE_ORDER_PUB.header_Payment_rec_type,
3441 p_old_header_Payment_rec IN OE_ORDER_PUB.header_Payment_rec_type := OE_ORDER_PUB.G_MISS_HEADER_PAYMENT_REC )
3442 IS
3443 l_return_status varchar2(30);
3444 l_ordered_date DATE;
3445 l_transactional_curr_code VARCHAR2(30);
3446 l_invoice_to_org_id NUMBER;
3447 l_bank_acct_id NUMBER;
3448 l_bank_acct_uses_id NUMBER;
3449 l_hdr_inv_to_cust_id NUMBER;
3450 l_trx_date DATE;
3451 --
3452 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3453 --
3454 --R12 CC Encryption
3455 l_update_card_flag VARCHAR2(1) := 'N';
3456 l_trxn_extension_id NUMBER;
3457 l_msg_count NUMBER;
3458 l_msg_data VARCHAR2(2000);
3459 l_exists_flag VARCHAR2(1) := 'N';
3460 l_payment_exists VARCHAR2(1) := 'N';
3461 l_old_trxn_extension_id NUMBER;
3462 --R12 CC Encryption
3463
3464 BEGIN
3465
3466 IF l_debug_level > 0 THEN
3467 oe_debug_pub.add( 'entering oe_header_payment_util.Pre_Write_Process. payment_type_code'||p_x_header_Payment_rec.payment_type_code);
3468 END IF;
3469 --R12 CC Encryption
3470 --Querying the invoice to org id before checking the payment type
3471 --as it is needed for both credit card and check payments.
3472 select ordered_date, transactional_curr_code, invoice_to_org_id
3473 into l_ordered_date, l_transactional_curr_code, l_invoice_to_org_id
3474 from oe_order_headers
3475 where header_id=p_x_header_Payment_rec.header_id;
3476
3477 IF l_debug_level > 0 THEN
3478 oe_debug_pub.add( 'l_transactional_curr_code:'||l_transactional_curr_code||':l_invoice_to_org_id:'||l_invoice_to_org_id);
3479 oe_debug_pub.add(' old trxn extn id ksurendr'||p_old_header_Payment_rec.trxn_extension_id);
3480 END IF;
3481
3482 --For payment types like Credit Card, ACH and Direct Debit, the processing
3483 --is handled in OE_PAYMENT_TRXN_UTIL package. So need to modify this part
3484 --to call the appropriate procedures for create, update or copy.
3485 IF p_x_header_Payment_rec.payment_type_code IN ('CREDIT_CARD','ACH','DIRECT_DEBIT') THEN
3486 --Verify
3487
3488 BEGIN
3489 SELECT customer_id
3490 INTO l_hdr_inv_to_cust_id
3491 FROM oe_invoice_to_orgs_v
3492 WHERE organization_id = l_invoice_to_org_id;
3493 EXCEPTION
3494 WHEN OTHERS THEN
3495 IF l_debug_level > 0 THEN
3496 oe_debug_pub.add( 'IN OTHERS EXCEPTION ( OE_INVOICE_TO_ORGS_V ) '||SQLERRM , 1 ) ;
3497 END IF;
3498 END;
3499
3500 IF l_debug_level > 0 THEN
3501 oe_debug_pub.add('l_hdr_inv_to_cust_id -->' || l_hdr_inv_to_cust_id );
3502 oe_debug_pub.add('p_site_use_id --->'||l_invoice_to_org_id);
3503 oe_debug_pub.add('cc number : ' || p_x_header_payment_rec.credit_card_number );
3504 oe_debug_pub.add('cc name : ' || p_x_header_payment_rec.credit_card_holder_name );
3505 oe_debug_pub.add('exp date : ' || to_char(p_x_header_payment_rec.credit_card_expiration_date, 'DD-MON-YYYY') );
3506 oe_debug_pub.add('instr id...'||p_x_header_payment_rec.cc_instrument_id);
3507 oe_debug_pub.add('instr assgn id'||p_x_header_payment_rec.cc_instrument_assignment_id);
3508 oe_debug_pub.add('Operation...'||p_x_header_Payment_rec.operation);
3509 oe_debug_pub.add('trxn extn id'||p_x_header_Payment_rec.trxn_extension_id);
3510 oe_debug_pub.add('New name'||p_x_header_Payment_rec.credit_card_holder_name);
3511 oe_debug_pub.add('Old name'||p_old_header_Payment_rec.credit_card_holder_name);
3512 --Bug 7460481
3513 oe_debug_pub.add('New Approval Code'||p_x_header_Payment_rec.credit_card_approval_code);
3514 oe_debug_pub.add('Old Approval Code'||p_old_header_Payment_rec.credit_card_approval_code);
3515 oe_debug_pub.add('New Approval Date'||p_x_header_Payment_rec.credit_card_approval_date);
3516 oe_debug_pub.add('Old Approval Date'||p_old_header_Payment_rec.credit_card_approval_date);
3517 END IF;
3518
3519 IF p_x_header_Payment_rec.trxn_extension_id IS NOT NULL AND
3520 p_x_header_Payment_rec.trxn_extension_id <> FND_API.G_MISS_NUM
3521 AND p_x_header_Payment_rec.operation = OE_GLOBALS.G_OPR_CREATE AND
3522 nvl(oe_order_cache.g_header_rec.source_document_type_id, -99) <> 2 -- not a copy order Verify
3523 THEN
3524 --R12 CC Encryption
3525 --for orders coming from outside of Order Management, we need to call Oracle
3526 --Payments Copy Transaction API to get a new transaction extension id.
3527 BEGIN
3528 OE_PAYMENT_TRXN_UTIL.Copy_Payment_TRXN
3529 (P_header_id => p_x_header_Payment_rec.header_id,
3530 p_line_id => p_x_header_payment_rec.line_id,
3531 p_cust_id => l_hdr_inv_to_cust_id,
3532 P_site_use_id => l_invoice_to_org_id,
3533 p_trxn_extension_id => p_x_header_payment_rec.trxn_extension_id,
3534 x_trxn_extension_id => l_trxn_extension_id,
3535 X_return_status => l_return_status,
3536 X_msg_count => l_msg_count,
3537 X_msg_data => l_msg_data);
3538 IF l_debug_level>0 THEN
3539 oe_debug_pub.add('New trxn extension id after calling Copy_Payment_TRXN:'||l_trxn_extension_id);
3540 END IF;
3541 EXCEPTION
3542 WHEN FND_API.G_EXC_ERROR THEN
3543 l_return_status := FND_API.G_RET_STS_ERROR;
3544 RAISE FND_API.G_EXC_ERROR;
3545 WHEN OTHERS THEN
3546 IF l_debug_level>0 THEN
3547 oe_debug_pub.add('After call to copy payment trxn - exception');
3548 END IF;
3549 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3550 END;
3551
3552 p_x_header_payment_rec.trxn_extension_id := l_trxn_extension_id;
3553
3554 ELSIF p_x_header_payment_rec.operation = OE_GLOBALS.G_OPR_UPDATE THEN
3555
3556 IF l_debug_level > 0 THEN
3557 oe_debug_pub.add('trxn id'||p_x_header_payment_rec.trxn_Extension_id);
3558 oe_debug_pub.add('payemnt type'||p_x_header_payment_rec.payment_type_Code);
3559 IF OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
3560 p_x_Header_Payment_rec.credit_card_number,
3561 p_old_Header_Payment_rec.cc_instrument_id,
3562 p_x_Header_Payment_rec.cc_instrument_id) THEN
3563 oe_debug_pub.add('same cc true');
3564 ELSE
3565 oe_debug_pub.add('diff cc');
3566 END IF;
3567 if OE_GLOBALS.Equal(p_old_header_Payment_rec.credit_card_holder_name,
3568 p_x_header_Payment_rec.credit_card_holder_name) THEN
3569 oe_debug_pub.add('Same name');
3570 ELSE
3571 oe_debug_pub.add('Diff name');
3572 END IF;
3573 if OE_GLOBALS.Equal(p_old_header_Payment_rec.credit_card_expiration_date,
3574 p_x_header_Payment_rec.credit_card_expiration_date) THEN
3575 oe_debug_pub.add('Same date');
3576 ELSE
3577 oe_debug_pub.add('Diff date');
3578 END IF;
3579 if OE_GLOBALS.Equal(p_old_header_payment_rec.instrument_security_code,
3580 p_x_header_payment_rec.instrument_security_code) THEN
3581 oe_debug_pub.add('Same cvv2');
3582 ELSE
3583 oe_debug_pub.add('Diff cvv2');
3584 END IF;
3585 if OE_GLOBALS.Equal(p_x_header_Payment_rec.payment_trx_id,
3586 p_old_header_Payment_rec.payment_trx_id) THEN
3587 oe_debug_pub.add('Same trxid');
3588 ELSE
3589 oe_debug_pub.add('Diff trxid');
3590 END IF;
3591 --Bug 7460481
3592 IF OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_approval_code,
3593 p_old_header_Payment_rec.credit_card_approval_code) THEN
3594 oe_debug_pub.add('Same approval code');
3595 ELSE
3596 oe_debug_pub.add('Diff approval code');
3597 END IF;
3598 END IF;
3599 IF p_x_header_payment_rec.trxn_extension_id IS NOT NULL
3600 AND p_x_header_payment_rec.trxn_extension_id <> FND_API.G_MISS_NUM
3601 AND ((p_x_header_Payment_rec.payment_type_code = 'CREDIT_CARD'
3602 AND OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
3603 p_x_Header_Payment_rec.credit_card_number,
3604 p_old_Header_Payment_rec.cc_instrument_id,
3605 p_x_Header_Payment_rec.cc_instrument_id)
3606 AND p_x_header_Payment_rec.credit_card_holder_name =
3607 p_old_header_Payment_rec.credit_card_holder_name
3608 AND p_x_header_Payment_rec.credit_card_expiration_date =
3609 p_old_header_Payment_rec.credit_card_expiration_date
3610 AND OE_GLOBALS.Equal(p_x_header_Payment_rec.instrument_security_code, --Using OE_GLOBALS.Equal for cvv2
3611 p_old_header_payment_rec.instrument_security_code) --as cvv2 might be null for certain cards
3612 --Bug 7460481
3613 AND OE_GLOBALS.Equal(p_x_header_payment_rec.credit_card_approval_code,
3614 p_old_header_Payment_rec.credit_card_approval_code))
3615 OR (p_x_header_Payment_rec.payment_type_code IN ('ACH','DIRECT_DEBIT')
3616 AND OE_GLOBALS.Equal(p_x_header_Payment_rec.payment_trx_id, p_old_header_Payment_rec.payment_trx_id))
3617 OR (p_x_header_Payment_rec.payment_type_code IN ('CASH','WIRE_TRANSFER'))) THEN
3618
3619 --no operation is needed as payment information did not change
3620 IF l_debug_level > 0 THEN
3621 oe_debug_pub.add('No change to payments attributes...');
3622 END IF;
3623 NULL;
3624
3625 --While changing the payment type from cash, check etc to
3626 --credit card payment type, the operation would be update but the
3627 --transaction extension id would be null.
3628 ELSIF p_x_header_payment_rec.trxn_extension_id is null or
3629 p_x_header_payment_rec.trxn_extension_id =FND_API.G_MISS_NUM THEN
3630 IF l_debug_level > 0 THEN
3631 oe_debug_pub.add( 'getting payment_trx_id as cc details changed');
3632 oe_debug_pub.add('Operation is Update and trxn extension id is null');
3633 oe_debug_pub.add('Payment type has changed from check or cash to one which requires trxn extension id...');
3634 END IF;
3635
3636 -- validate cc security code
3637 IF p_x_Header_Payment_rec.payment_type_code = 'CREDIT_CARD' THEN
3638 IF OE_Payment_Trxn_Util.g_CC_Security_Code_Use IS NULL THEN
3639 OE_Payment_Trxn_Util.g_CC_Security_Code_Use := OE_Payment_Trxn_Util.Get_CC_Security_Code_Use;
3640 END IF;
3641
3642 IF OE_Payment_Trxn_Util.g_CC_Security_Code_Use = 'REQUIRED' AND
3643 p_x_Header_Payment_rec.instrument_security_code IS NULL THEN
3644 FND_MESSAGE.SET_NAME('ONT','OE_CC_SECURITY_CODE_REQD');
3645 OE_Msg_Pub.Add;
3646 RAISE FND_API.G_EXC_ERROR;
3647 END IF;
3648 END IF;
3649
3650 --R12 CC Encryption
3651 --Since the credit card numbers are encrypted, passing both the credit card
3652 --numbers as well as instrument ids to determine if both the old and new
3653 --values point to the same credit card number.
3654 IF NOT OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
3655 p_x_Header_Payment_rec.credit_card_number,
3656 p_old_Header_Payment_rec.cc_instrument_id,
3657 p_x_Header_Payment_rec.cc_instrument_id)
3658 OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_code,
3659 p_old_header_Payment_rec.credit_card_code) THEN
3660 IF NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_holder_name,
3661 p_old_header_Payment_rec.credit_card_holder_name)
3662 OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_expiration_date,
3663 p_old_header_Payment_rec.credit_card_expiration_date) THEN
3664 l_update_card_flag := 'Y';
3665 ELSE
3666 l_update_card_flag := 'N';
3667 END IF;
3668 ELSIF NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_holder_name,
3669 p_old_header_Payment_rec.credit_card_holder_name)
3670 OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_expiration_date,
3671 p_old_header_Payment_rec.credit_card_expiration_date) THEN
3672 l_update_card_flag := 'Y';
3673 END IF;
3674 Begin
3675 OE_PAYMENT_TRXN_UTIL.Create_Payment_TRXN
3676 (p_header_id => p_x_header_Payment_rec.header_id,
3677 p_line_id => p_x_header_payment_rec.line_id,
3678 p_cust_id => l_hdr_inv_to_cust_id,
3679 P_site_use_id => l_invoice_to_org_id,
3680 P_payment_trx_id => p_x_header_payment_rec.payment_trx_id,
3681 P_payment_type_code => p_x_header_payment_rec.payment_type_code,
3682 p_payment_number => p_x_header_payment_rec.payment_number,
3683 P_card_number => p_x_header_payment_rec.credit_card_number,
3684 p_card_code => p_x_header_payment_rec.credit_card_code,
3685 P_card_holder_name => p_x_header_payment_rec.credit_card_holder_name,
3686 P_exp_date => p_x_header_payment_rec.credit_card_expiration_date,
3687 P_receipt_method_id => p_x_header_payment_rec.receipt_method_id,
3688 p_instrument_security_code => p_x_header_payment_rec.instrument_security_code,
3689 p_credit_card_approval_code => p_x_header_payment_rec.credit_card_approval_code,
3690 p_credit_card_approval_date => p_x_header_payment_rec.credit_card_approval_date,
3691 p_x_trxn_extension_id => p_x_header_payment_rec.trxn_extension_id,
3692 p_update_card_flag => l_update_card_flag,
3693 p_instrument_id => p_x_header_payment_rec.cc_instrument_id,
3694 p_instrument_assignment_id => p_x_header_payment_rec.cc_instrument_assignment_id,
3695 X_return_status => l_return_status,
3696 X_msg_count => l_msg_count,
3697 X_msg_data => l_msg_data);
3698
3699 IF l_debug_level > 0 THEN
3700 oe_debug_pub.add('New trxn extension id after calling Create_Payment_TRXN:'||p_x_header_payment_rec.trxn_extension_id);
3701 END IF;
3702 Exception
3703 WHEN FND_API.G_EXC_ERROR THEN
3704 OE_MSG_PUB.Count_And_Get
3705 ( p_count => l_msg_count,
3706 p_data => l_msg_data
3707 );
3708 l_return_status := FND_API.G_RET_STS_ERROR;
3709 RAISE FND_API.G_EXC_ERROR;
3710
3711 WHEN OTHERS THEN
3712 OE_MSG_PUB.Count_And_Get
3713 ( p_count => l_msg_count,
3714 p_data => l_msg_data
3715 );
3716 FND_MESSAGE.SET_NAME('ONT','OE_VPM_CC_ACCT_NOT_SET');
3717 OE_MSG_PUB.ADD;
3718 IF l_debug_level > 0 THEN
3719 oe_debug_pub.add( 'OEXUHPMB: ERROR IN ARP_BANK_PKG.PROCESS_CUST_BANK_ACCOUNT'||l_msg_data ) ;
3720 oe_debug_pub.add('Error messsge ksurendr'||l_return_status);
3721 END IF;
3722 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3723 end;
3724
3725 IF l_debug_level > 0 THEN
3726 oe_debug_pub.add( 'Return status...'||l_return_status );
3727 END IF;
3728
3729 p_x_header_payment_rec.payment_trx_id := l_bank_acct_id;
3730 ELSE
3731 --payment transaction id already exists, so need to update the IBY transaction
3732 --extenstion table
3733 BEGIN
3734 -- validate cc security code
3735 /*IF p_x_Header_Payment_rec.payment_type_code = 'CREDIT_CARD' THEN
3736 IF OE_Payment_Trxn_Util.g_CC_Security_Code_Use IS NULL THEN
3737 OE_Payment_Trxn_Util.g_CC_Security_Code_Use := OE_Payment_Trxn_Util.Get_CC_Security_Code_Use;
3738 END IF;
3739 IF OE_Payment_Trxn_Util.g_CC_Security_Code_Use = 'REQUIRED'
3740 AND p_x_Header_Payment_rec.instrument_security_code IS NULL THEN
3741 FND_MESSAGE.SET_NAME('ONT','OE_CC_SECURITY_CODE_REQD');
3742 OE_Msg_Pub.Add;
3743 RAISE FND_API.G_EXC_ERROR;
3744 END IF;
3745 END IF;*/
3746
3747 --R12 CC Encryption
3748 --Since the credit card numbers are encrypted, passing both the credit card
3749 --numbers as well as instrument ids to determine if both the old and new
3750 --values point to the same credit card number.
3751 IF NOT OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
3752 p_x_Header_Payment_rec.credit_card_number,
3753 p_old_Header_Payment_rec.cc_instrument_id,
3754 p_x_Header_Payment_rec.cc_instrument_id)
3755 OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_code,
3756 p_old_header_Payment_rec.credit_card_code) THEN
3757 IF NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_holder_name,
3758 p_old_header_Payment_rec.credit_card_holder_name)
3759 OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_expiration_date,
3760 p_old_header_Payment_rec.credit_card_expiration_date) THEN
3761 l_update_card_flag := 'Y';
3762 ELSE
3763 l_update_card_flag := 'N';
3764 END IF;
3765 ELSIF NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_holder_name,
3766 p_old_header_Payment_rec.credit_card_holder_name)
3767 OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_expiration_date,
3768 p_old_header_Payment_rec.credit_card_expiration_date) THEN
3769 l_update_card_flag := 'Y';
3770 END IF;
3771 oe_debug_pub.add('b4 call to update pay...');
3772 oe_debug_pub.add('Payment trx id'||p_x_header_payment_rec.payment_trx_id);
3773 OE_PAYMENT_TRXN_UTIL.Update_Payment_TRXN
3774 (P_header_id => p_x_header_Payment_rec.header_id,
3775 p_line_id => p_x_header_payment_rec.line_id,
3776 p_cust_id => l_hdr_inv_to_cust_id,
3777 P_site_use_id => l_invoice_to_org_id,
3778 P_payment_trx_id => p_x_header_payment_rec.payment_trx_id,
3779 P_payment_type_code => p_x_header_payment_rec.payment_type_code,
3780 p_payment_number => p_x_header_payment_rec.payment_number,
3781 p_card_number => p_x_header_payment_rec.credit_card_number,
3782 p_card_code => p_x_header_payment_rec.credit_card_code,
3783 p_card_holder_name => p_x_header_payment_rec.credit_card_holder_name,
3784 p_exp_date => p_x_header_payment_rec.credit_card_expiration_date,
3785 p_receipt_method_id => p_x_header_payment_rec.receipt_method_id,
3786 p_instrument_security_code => p_x_header_payment_rec.instrument_security_code,
3787 --Bug 7460481
3788 p_credit_card_approval_code => p_x_header_payment_rec.credit_card_approval_code,
3789 p_credit_card_approval_date => p_x_header_payment_rec.credit_card_approval_date,
3790 --Bug 7460481
3791 p_trxn_extension_id => p_x_header_payment_rec.trxn_extension_id,
3792 p_update_card_flag => l_update_card_flag,
3793 p_instrument_id => p_x_header_payment_rec.cc_instrument_id,
3794 p_instrument_assignment_id => p_x_header_payment_rec.cc_instrument_assignment_id,
3795 X_return_status => l_return_status,
3796 X_msg_count => l_msg_count,
3797 X_msg_data => l_msg_data);
3798 IF l_debug_level > 0 THEN
3799 oe_debug_pub.add('trxn extension id after calling Update_Payment_TRXN:'||p_x_header_payment_rec.trxn_extension_id);
3800 END IF;
3801 EXCEPTION
3802 WHEN FND_API.G_EXC_ERROR THEN
3803
3804 IF l_debug_level > 0 THEN
3805 oe_debug_pub.add('Update_Payment_TRXN error....exc');
3806 oe_debug_pub.add('After call to Update_Payment_TRXN'||l_return_status);
3807 oe_debug_pub.add('Error'||sqlerrm);
3808 END IF;
3809 l_return_status := FND_API.G_RET_STS_ERROR;
3810 OE_MSG_PUB.Count_And_Get
3811 ( p_count => l_msg_count,
3812 p_data => l_msg_data
3813 );
3814 RAISE FND_API.G_EXC_ERROR;
3815
3816 WHEN OTHERS THEN
3817 OE_MSG_PUB.Count_And_Get
3818 ( p_count => l_msg_count,
3819 p_data => l_msg_data
3820 );
3821 IF l_debug_level > 0 THEN
3822 oe_debug_pub.add('After call to Update_Payment_TRXN --> Unexpected error');
3823 oe_debug_pub.add('Error message '||sqlerrm);
3824 END IF;
3825 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3826 END;
3827
3828 END IF;
3829
3830 IF l_debug_level > 0 THEN
3831 oe_debug_pub.add( 'id already derived for this credit card');
3832 END IF;
3833
3834 ELSIF p_x_header_payment_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN --not a copy order Verify
3835
3836 IF l_debug_level > 0 THEN
3837 oe_debug_pub.add( 'getting payment_trx_id as cc details changed');
3838 END IF;
3839
3840 /*l_trx_date := nvl(l_ordered_date, sysdate)
3841 - nvl( to_number(fnd_profile.value('ONT_DAYS_TO_BACKDATE_BANK_ACCT')), 0);*/
3842 -- validate cc security code
3843 IF p_x_Header_Payment_rec.payment_type_code = 'CREDIT_CARD' THEN
3844 IF OE_Payment_Trxn_Util.g_CC_Security_Code_Use IS NULL THEN
3845 OE_Payment_Trxn_Util.g_CC_Security_Code_Use := OE_Payment_Trxn_Util.Get_CC_Security_Code_Use;
3846 END IF;
3847
3848 IF OE_Payment_Trxn_Util.g_CC_Security_Code_Use = 'REQUIRED' AND
3849 p_x_Header_Payment_rec.instrument_security_code IS NULL THEN
3850 FND_MESSAGE.SET_NAME('ONT','OE_CC_SECURITY_CODE_REQD');
3851 OE_Msg_Pub.Add;
3852 RAISE FND_API.G_EXC_ERROR;
3853 END IF;
3854 END IF;
3855
3856 --R12 CC Encryption
3857 --Since the credit card numbers are encrypted, passing both the credit card
3858 --numbers as well as instrument ids to determine if both the old and new
3859 --values point to the same credit card number.
3860 IF NOT OE_GLOBALS.Is_Same_Credit_Card(p_old_Header_Payment_rec.credit_card_number,
3861 p_x_Header_Payment_rec.credit_card_number,
3862 p_old_Header_Payment_rec.cc_instrument_id,
3863 p_x_Header_Payment_rec.cc_instrument_id)
3864 OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_code,
3865 p_old_header_Payment_rec.credit_card_code) THEN
3866 IF l_debug_level > 0 THEN
3867 oe_debug_pub.add('credit card details changed!');
3868 END IF;
3869
3870 IF NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_holder_name,
3871 p_old_header_Payment_rec.credit_card_holder_name)
3872 OR NOT OE_GLOBALS.Equal(p_x_header_Payment_rec.credit_card_expiration_date,
3873 p_old_header_Payment_rec.credit_card_expiration_date) THEN
3874 IF l_debug_level > 0 THEN
3875 oe_debug_pub.add('Need to call update_card API');
3876 END IF;
3877
3878 l_update_card_flag := 'Y';
3879 ELSE
3880 IF l_debug_level > 0 THEN
3881 oe_debug_pub.add('Need not call update_card API');
3882 END IF;
3883
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 IF l_debug_level > 0 THEN
3891 oe_debug_pub.add('Need to call update_card API 1');
3892 END IF;
3893
3894 l_update_card_flag := 'Y';
3895 END IF;
3896
3897
3898 Begin
3899 IF l_debug_level > 0 THEN
3900 oe_debug_pub.add('Before calling create_payment_trxn API');
3901 END IF;
3902 OE_PAYMENT_TRXN_UTIL.Create_Payment_TRXN
3903 (p_header_id => p_x_header_Payment_rec.header_id,
3904 p_line_id => p_x_header_payment_rec.line_id,
3905 p_cust_id => l_hdr_inv_to_cust_id,
3906 P_site_use_id => l_invoice_to_org_id,
3907 P_payment_trx_id => p_x_header_payment_rec.payment_trx_id,
3908 P_payment_type_code => p_x_header_payment_rec.payment_type_code,
3909 p_payment_number => p_x_header_payment_rec.payment_number,
3910 P_card_number => p_x_header_payment_rec.credit_card_number,
3911 p_card_code => p_x_header_payment_rec.credit_card_code,
3912 P_card_holder_name => p_x_header_payment_rec.credit_card_holder_name,
3913 P_exp_date => p_x_header_payment_rec.credit_card_expiration_date,
3914 P_receipt_method_id => p_x_header_payment_rec.receipt_method_id,
3915 p_instrument_security_code => p_x_header_payment_rec.instrument_security_code,
3916 p_credit_card_approval_code => p_x_header_payment_rec.credit_card_approval_code,
3917 p_credit_card_approval_date => p_x_header_payment_rec.credit_card_approval_date,
3918 p_x_trxn_extension_id => p_x_header_payment_rec.trxn_extension_id,
3919 p_update_card_flag => l_update_card_flag,
3920 p_instrument_id => p_x_header_payment_rec.cc_instrument_id,
3921 p_instrument_assignment_id => p_x_header_payment_rec.cc_instrument_assignment_id,
3922 X_return_status => l_return_status,
3923 X_msg_count => l_msg_count,
3924 X_msg_data => l_msg_data);
3925
3926 oe_debug_pub.add('New trxn extension id after calling Create_Payment_TRXN:'||p_x_header_payment_rec.trxn_extension_id);
3927
3928 Exception
3929 WHEN FND_API.G_EXC_ERROR THEN
3930 OE_MSG_PUB.Count_And_Get
3931 ( p_count => l_msg_count,
3932 p_data => l_msg_data
3933 );
3934 l_return_status := FND_API.G_RET_STS_ERROR;
3935
3936 FND_MESSAGE.SET_NAME('ONT','OE_VPM_CC_ACCT_NOT_SET');
3937 OE_MSG_PUB.ADD;
3938
3939 RAISE FND_API.G_EXC_ERROR;
3940
3941 WHEN OTHERS THEN
3942 OE_MSG_PUB.Count_And_Get
3943 ( p_count => l_msg_count,
3944 p_data => l_msg_data
3945 );
3946 FND_MESSAGE.SET_NAME('ONT','OE_VPM_CC_ACCT_NOT_SET');
3947 OE_MSG_PUB.ADD;
3948 IF l_debug_level > 0 THEN
3949 oe_debug_pub.add( 'OEXUHPMB: ERROR IN ARP_BANK_PKG.PROCESS_CUST_BANK_ACCOUNT'||l_msg_data ) ;
3950 oe_debug_pub.add('Error messsge ksurendr'||l_return_status);
3951 END IF;
3952 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3953 end;
3954
3955 IF l_debug_level > 0 THEN
3956 oe_debug_pub.add( 'after calling process_cust_bank_account. l_bank_acct_id:'||l_bank_acct_id);
3957 END IF;
3958
3959 p_x_header_payment_rec.payment_trx_id := l_bank_acct_id;
3960 END IF;
3961 ELSIF p_x_header_Payment_rec.payment_type_code IN ('CHECK','CASH') AND
3962 p_x_header_payment_rec.operation = OE_GLOBALS.G_OPR_UPDATE
3963 AND p_old_header_Payment_rec.trxn_extension_id IS NOT NULL THEN
3964
3965 --For update operation, the trxn extension id of the original
3966 --transaction needs to be deleted if it already exists as
3967 --there is no trxn extension id for check payments.
3968 IF l_debug_level > 0 THEN
3969 oe_debug_pub.add(' Before calling delete payment trxn....');
3970 oe_debug_pub.add(' Trxn extension to delete'||p_old_header_Payment_rec.trxn_extension_id);
3971 END IF;
3972 --Passing the invoice to org id as null as in case of
3973 --deleting payments due to bill to change, we would need the
3974 --old invoice to org id.
3975 OE_PAYMENT_TRXN_UTIL.Delete_Payment_Trxn
3976 (p_header_id => p_x_header_Payment_rec.header_id,
3977 p_line_id => p_x_header_Payment_rec.line_id,
3978 p_payment_number => p_x_header_Payment_rec.payment_number,
3979 x_return_status => l_return_status,
3980 x_msg_count => l_msg_count,
3981 x_msg_data => l_msg_data,
3982 p_trxn_extension_id => p_old_header_Payment_rec.trxn_extension_id,
3983 P_site_use_id => null
3984 );
3985
3986 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
3987 RAISE FND_API.G_EXC_ERROR;
3988 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3989 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3990 ELSIF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
3991 IF l_debug_level > 0 THEN
3992 oe_debug_pub.add('Before setting the trxn extension id to null...');
3993 oe_debug_pub.add('Id that was deleted from iby tables...'||p_old_header_Payment_rec.trxn_extension_id);
3994 END IF;
3995 END IF;
3996
3997 IF l_debug_level > 0 THEN
3998 oe_debug_pub.add('Successful deletion of trxn extension');
3999 oe_debug_pub.add('Return status after delete trxn in pre write process '|| l_return_status);
4000 oe_debug_pub.add('msg data'||l_msg_data);
4001 END IF;
4002 --Setting the trxn extension id as null as for transactions
4003 --coming from sales order others tab, the trxn extension id would
4004 --be updated in oe_payments table during updation.
4005 p_x_header_Payment_rec.trxn_extension_id := null;
4006
4007 END IF;
4008
4009 -- fix bug 3740225, need to round amount according to precision
4010 -- when processing prepayment and refund to be in synch with AR.
4011 IF p_x_header_payment_rec.payment_collection_event = 'PREPAY' THEN
4012 IF OE_ORDER_UTIL.G_Precision IS NULL THEN
4013 OE_ORDER_UTIL.G_Precision:=2;
4014 END IF;
4015
4016 p_x_header_payment_rec.payment_amount
4017 := ROUND(p_x_header_payment_rec.payment_amount, OE_ORDER_UTIL.G_Precision);
4018 END IF;
4019
4020 IF l_debug_level > 0 THEN
4021 oe_debug_pub.add('EXITING OE_HEADER_PAYMENT_UTIL.PRE_WRITE_PROCESS');
4022 END IF;
4023
4024 EXCEPTION
4025 WHEN FND_API.G_EXC_ERROR THEN
4026 IF L_DEBUG_LEVEL > 0 THEN
4027 Oe_debug_pub.add('OEXUHPMB.pls - pre_write_process error ');
4028 END if;
4029 p_x_header_Payment_rec.return_status := FND_API.G_RET_STS_ERROR;
4030 RAISE FND_API.G_EXC_ERROR;
4031 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4032 IF L_DEBUG_LEVEL > 0 THEN
4033 Oe_debug_pub.add('OEXUHPMB.pls - pre_write_process unexpected error ');
4034 END if;
4035 p_x_header_payment_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4036 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4037
4038 WHEN OTHERS THEN
4039 IF L_DEBUG_LEVEL > 0 THEN
4040 Oe_debug_pub.add('OEXUHPMB.pls - pre_write_process unexpected error ');
4041 END if;
4042 raise fnD_API.G_EXC_UNEXPECTED_ERROR;
4043
4044 END Pre_Write_Process;
4045
4046 --3382262
4047 Procedure Delete_Payment_at_header(p_header_id in number,
4048 p_line_id in number := null,
4049 x_return_status out nocopy varchar2,
4050 x_msg_count out nocopy number,
4051 x_msg_data out nocopy varchar2) is
4052 p_count number := -1;
4053 p_x_header_rec OE_ORDER_PUB.Header_Rec_Type;
4054 l_old_header_rec OE_ORDER_PUB.Header_Rec_Type;
4055 l_header_rec OE_ORDER_PUB.Header_Rec_Type;
4056 l_return_status varchar2(30) := NULL;
4057
4058 Begin
4059
4060 Begin
4061
4062 select count(payment_type_code) into p_count
4063 from oe_payments
4064 where header_id = p_header_id
4065 and nvl(payment_collection_event, 'PREPAY') = 'INVOICE'
4066 and line_id is null;
4067
4068 Exception
4069
4070 when others then
4071 oe_debug_pub.add('could not find any records');
4072 return;
4073
4074 End;
4075
4076 if p_count = 0 then --there was only one record and it was deleted
4077
4078 -- Set up the Header record
4079 OE_Header_Util.Lock_Row
4080 (p_header_id => p_header_id
4081 ,p_x_header_rec => l_old_header_rec
4082 ,x_return_status => l_return_status
4083 );
4084 IF l_return_status = FND_API.G_RET_STS_ERROR THEN
4085 RAISE FND_API.G_EXC_ERROR;
4086 ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
4087 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4088 END IF;
4089
4090 l_header_rec := l_old_header_rec;
4091
4092 oe_debug_pub.add('before updating oe_order_headers_all ');
4093
4094 update oe_order_headers_all
4095 set payment_type_code = null,
4096 payment_amount = null,
4097 check_number = null,
4098 credit_card_code = null,
4099 credit_card_holder_name = null,
4100 credit_card_number = null,
4101 credit_card_expiration_date = null,
4102 credit_card_approval_code = null
4103 where header_id = p_header_id;
4104 end if;
4105
4106 Exception
4107
4108 WHEN FND_API.G_EXC_ERROR THEN
4109 x_return_status := FND_API.G_RET_STS_ERROR;
4110 OE_MSG_PUB.Count_And_Get
4111 ( p_count => x_msg_count,
4112 p_data => x_msg_data
4113 );
4114
4115 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4116 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4117 OE_MSG_PUB.Count_And_Get
4118 ( p_count => x_msg_count,
4119 p_data => x_msg_data
4120 );
4121
4122 WHEN OTHERS THEN
4123 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4124 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
4125 THEN
4126 OE_MSG_PUB.Add_Exc_Msg
4127 ( G_PKG_NAME
4128 , 'Delete_Payment_at_Header'
4129 );
4130 END IF;
4131
4132 END Delete_Payment_at_header;
4133 --3382262
4134
4135 END OE_Header_Payment_Util;