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