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