[Home] [Help]
PACKAGE BODY: APPS.HZ_CUST_ACCT_BO_PVT
Source
1 PACKAGE BODY hz_cust_acct_bo_pvt AS
2 /*$Header: ARHBCAVB.pls 120.12.12010000.2 2009/06/25 22:14:05 awu ship $ */
3
4 -- PRIVATE PROCEDURE assign_bank_acct_use_rec
5 --
6 -- DESCRIPTION
7 -- Assign attribute value from bank account use object to plsql record.
8 --
9 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
10 --
11 -- ARGUMENTS
12 -- IN:
13 -- p_bank_acct_use_obj Bank account use object.
14 -- p_party_id Party Id.
15 -- p_cust_acct_id Customer account Id.
16 -- p_site_use_id Customer account site use Id.
17 -- IN/OUT:
18 -- px_payer_context_rec Payer context plsql record.
19 -- px_pmtinstrument_rec Payment instrument plsql record.
20 --
21 -- NOTES
22 --
23 -- MODIFICATION HISTORY
24 --
25 -- 14-DEC-2004 Arnold Ng Created.
26
27 PROCEDURE assign_bank_acct_use_rec(
28 p_bank_acct_use_obj IN HZ_BANK_ACCT_USE_OBJ,
29 p_party_id IN NUMBER,
30 p_cust_acct_id IN NUMBER,
31 p_site_use_id IN NUMBER,
32 px_payer_context_rec IN OUT NOCOPY IBY_FNDCPT_COMMON_PUB.PayerContext_Rec_Type,
33 px_pmtinstrument_rec IN OUT NOCOPY IBY_FNDCPT_SETUP_PUB.PmtInstrAssignment_Rec_Type
34 );
35
36 -- PRIVATE PROCEDURE assign_payment_method_rec
37 --
38 -- DESCRIPTION
39 -- Assign attribute value from payment method object to plsql record.
40 --
41 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
42 --
43 -- ARGUMENTS
44 -- IN:
45 -- p_payment_method_obj Payment method object.
46 -- p_cust_acct_id Customer account Id.
47 -- p_site_use_id Customer account site use Id.
48 -- IN/OUT:
49 -- px_payment_method_rec Payment method plsql record.
50 --
51 -- NOTES
52 --
53 -- MODIFICATION HISTORY
54 --
55 -- 14-DEC-2004 Arnold Ng Created.
56
57 PROCEDURE assign_payment_method_rec(
58 p_payment_method_obj IN HZ_PAYMENT_METHOD_OBJ,
59 p_cust_acct_id IN NUMBER,
60 p_site_use_id IN NUMBER,
61 px_payment_method_rec IN OUT NOCOPY HZ_PAYMENT_METHOD_PUB.PAYMENT_METHOD_REC_TYPE
62 );
63
64 -- PRIVATE PROCEDURE assign_cust_profile_amt_rec
65 --
66 -- DESCRIPTION
67 -- Assign attribute value from customer profile amount object to plsql record.
68 --
69 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
70 --
71 -- ARGUMENTS
72 -- IN:
73 -- p_cust_profile_amt_obj Customer profile amount object.
74 -- p_cust_profile_id Customer profile Id.
75 -- p_cust_acct_id Customer account Id.
76 -- p_site_use_id Customer account site use Id.
77 -- IN/OUT:
78 -- px_cust_profile_amt_rec Customer profile amount plsql record.
79 --
80 -- NOTES
81 --
82 -- MODIFICATION HISTORY
83 --
84 -- 14-DEC-2004 Arnold Ng Created.
85
86 PROCEDURE assign_cust_profile_amt_rec(
87 p_cust_profile_amt_obj IN HZ_CUST_PROFILE_AMT_OBJ,
88 p_cust_profile_id IN NUMBER,
89 p_cust_acct_id IN NUMBER,
90 p_site_use_id IN NUMBER,
91 px_cust_profile_amt_rec IN OUT NOCOPY HZ_CUSTOMER_PROFILE_V2PUB.CUST_PROFILE_AMT_REC_TYPE
92 );
93
94 -- PRIVATE PROCEDURE assign_cust_acct_relate_rec
95 --
96 -- DESCRIPTION
97 -- Assign attribute value from customer account relationship object to plsql record.
98 --
99 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
100 --
101 -- ARGUMENTS
102 -- IN:
103 -- p_cust_acct_relate_obj Customer account relationship object.
104 -- p_cust_acct_id Customer account Id.
105 -- p_related_cust_acct_id Related customer account Id.
106 -- IN/OUT:
107 -- px_cust_acct_relate_rec Customer account relationship plsql record.
108 --
109 -- NOTES
110 --
111 -- MODIFICATION HISTORY
112 --
113 -- 14-DEC-2004 Arnold Ng Created.
114
115 PROCEDURE assign_cust_acct_relate_rec(
116 p_cust_acct_relate_obj IN HZ_CUST_ACCT_RELATE_OBJ,
117 p_cust_acct_id IN NUMBER,
118 p_related_cust_acct_id IN NUMBER,
119 px_cust_acct_relate_rec IN OUT NOCOPY HZ_CUST_ACCOUNT_V2PUB.CUST_ACCT_RELATE_REC_TYPE
120 );
121
122 -- PRIVATE PROCEDURE assign_bank_acct_use_rec
123 --
124 -- DESCRIPTION
125 -- Assign attribute value from bank account use object to plsql record.
126 --
127 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
128 --
129 -- ARGUMENTS
130 -- IN:
131 -- p_bank_acct_use_obj Bank account use object.
132 -- p_party_id Party Id.
133 -- p_cust_acct_id Customer account Id.
134 -- p_site_use_id Customer account site use Id.
135 -- IN/OUT:
136 -- px_payer_context_rec Payer context plsql record.
137 -- px_pmtinstrument_rec Payment instrument plsql record.
138 --
139 -- NOTES
140 --
141 -- MODIFICATION HISTORY
142 --
143 -- 14-DEC-2004 Arnold Ng Created.
144
145 PROCEDURE assign_bank_acct_use_rec(
146 p_bank_acct_use_obj IN HZ_BANK_ACCT_USE_OBJ,
147 p_party_id IN NUMBER,
148 p_cust_acct_id IN NUMBER,
149 p_site_use_id IN NUMBER,
150 px_payer_context_rec IN OUT NOCOPY IBY_FNDCPT_COMMON_PUB.PayerContext_Rec_Type,
151 px_pmtinstrument_rec IN OUT NOCOPY IBY_FNDCPT_SETUP_PUB.PmtInstrAssignment_Rec_Type
152 ) IS
153 BEGIN
154 px_pmtinstrument_rec.assignment_id := p_bank_acct_use_obj.bank_acct_use_id;
155 px_payer_context_rec.payment_function := p_bank_acct_use_obj.payment_function;
156 IF(p_site_use_id IS NOT NULL) THEN
157 px_payer_context_rec.org_type := p_bank_acct_use_obj.org_type;
158 px_payer_context_rec.org_id := p_bank_acct_use_obj.org_id;
159 ELSE
160 px_payer_context_rec.org_type := NULL;
161 px_payer_context_rec.org_id := NULL;
162 END IF;
163 px_payer_context_rec.party_id := p_party_id;
164 px_payer_context_rec.cust_account_id := p_cust_acct_id;
165 px_payer_context_rec.account_site_id := p_site_use_id;
166 px_pmtinstrument_rec.instrument.instrument_id := p_bank_acct_use_obj.instrument_id;
167 px_pmtinstrument_rec.instrument.instrument_type := p_bank_acct_use_obj.instrument_type;
168 px_pmtinstrument_rec.priority := p_bank_acct_use_obj.priority;
169 px_pmtinstrument_rec.start_date := p_bank_acct_use_obj.start_date;
170 px_pmtinstrument_rec.end_date := p_bank_acct_use_obj.end_date;
171 END assign_bank_acct_use_rec;
172
173 -- PRIVATE PROCEDURE assign_payment_method_rec
174 --
175 -- DESCRIPTION
176 -- Assign attribute value from payment method object to plsql record.
177 --
178 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
179 --
180 -- ARGUMENTS
181 -- IN:
182 -- p_payment_method_obj Payment method object.
183 -- p_cust_acct_id Customer account Id.
184 -- p_site_use_id Customer account site use Id.
185 -- IN/OUT:
186 -- px_payment_method_rec Payment method plsql record.
187 --
188 -- NOTES
189 --
190 -- MODIFICATION HISTORY
191 --
192 -- 14-DEC-2004 Arnold Ng Created.
193
194 PROCEDURE assign_payment_method_rec(
195 p_payment_method_obj IN HZ_PAYMENT_METHOD_OBJ,
196 p_cust_acct_id IN NUMBER,
197 p_site_use_id IN NUMBER,
198 px_payment_method_rec IN OUT NOCOPY HZ_PAYMENT_METHOD_PUB.PAYMENT_METHOD_REC_TYPE
199 ) IS
200 BEGIN
201 px_payment_method_rec.cust_receipt_method_id := p_payment_method_obj.payment_method_id;
202 px_payment_method_rec.cust_account_id := p_cust_acct_id;
203 px_payment_method_rec.receipt_method_id := p_payment_method_obj.receipt_method_id;
204 px_payment_method_rec.primary_flag := p_payment_method_obj.primary_flag;
205 px_payment_method_rec.site_use_id := p_site_use_id;
206 px_payment_method_rec.start_date := p_payment_method_obj.start_date;
207 px_payment_method_rec.end_date := p_payment_method_obj.end_date;
208 px_payment_method_rec.attribute_category := p_payment_method_obj.attribute_category;
209 px_payment_method_rec.attribute1 := p_payment_method_obj.attribute1;
210 px_payment_method_rec.attribute2 := p_payment_method_obj.attribute2;
211 px_payment_method_rec.attribute3 := p_payment_method_obj.attribute3;
212 px_payment_method_rec.attribute4 := p_payment_method_obj.attribute4;
213 px_payment_method_rec.attribute5 := p_payment_method_obj.attribute5;
214 px_payment_method_rec.attribute6 := p_payment_method_obj.attribute6;
215 px_payment_method_rec.attribute7 := p_payment_method_obj.attribute7;
216 px_payment_method_rec.attribute8 := p_payment_method_obj.attribute8;
217 px_payment_method_rec.attribute9 := p_payment_method_obj.attribute9;
218 px_payment_method_rec.attribute10 := p_payment_method_obj.attribute10;
219 px_payment_method_rec.attribute11 := p_payment_method_obj.attribute11;
220 px_payment_method_rec.attribute12 := p_payment_method_obj.attribute12;
221 px_payment_method_rec.attribute13 := p_payment_method_obj.attribute13;
222 px_payment_method_rec.attribute14 := p_payment_method_obj.attribute14;
223 px_payment_method_rec.attribute15 := p_payment_method_obj.attribute15;
224 END assign_payment_method_rec;
225
226 -- PRIVATE PROCEDURE assign_cust_profile_amt_rec
227 --
228 -- DESCRIPTION
229 -- Assign attribute value from customer profile amount object to plsql record.
230 --
231 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
232 --
233 -- ARGUMENTS
234 -- IN:
235 -- p_cust_profile_amt_obj Customer profile amount object.
236 -- p_cust_profile_id Customer profile Id.
237 -- p_cust_acct_id Customer account Id.
238 -- p_site_use_id Customer account site use Id.
239 -- IN/OUT:
240 -- px_cust_profile_amt_rec Customer profile amount plsql record.
241 --
242 -- NOTES
243 --
244 -- MODIFICATION HISTORY
245 --
246 -- 14-DEC-2004 Arnold Ng Created.
247
248 PROCEDURE assign_cust_profile_amt_rec(
249 p_cust_profile_amt_obj IN HZ_CUST_PROFILE_AMT_OBJ,
250 p_cust_profile_id IN NUMBER,
251 p_cust_acct_id IN NUMBER,
252 p_site_use_id IN NUMBER,
253 px_cust_profile_amt_rec IN OUT NOCOPY HZ_CUSTOMER_PROFILE_V2PUB.CUST_PROFILE_AMT_REC_TYPE
254 ) IS
255 BEGIN
256 px_cust_profile_amt_rec.cust_acct_profile_amt_id := p_cust_profile_amt_obj.cust_acct_profile_amt_id;
257 px_cust_profile_amt_rec.cust_account_profile_id := p_cust_profile_id;
258 px_cust_profile_amt_rec.cust_account_id := p_cust_acct_id;
259 px_cust_profile_amt_rec.currency_code := p_cust_profile_amt_obj.currency_code;
260 px_cust_profile_amt_rec.trx_credit_limit := p_cust_profile_amt_obj.trx_credit_limit;
261 px_cust_profile_amt_rec.overall_credit_limit := p_cust_profile_amt_obj.overall_credit_limit;
262 px_cust_profile_amt_rec.min_dunning_amount := p_cust_profile_amt_obj.min_dunning_amount;
263 px_cust_profile_amt_rec.min_dunning_invoice_amount := p_cust_profile_amt_obj.min_dunning_invoice_amount;
264 px_cust_profile_amt_rec.max_interest_charge := p_cust_profile_amt_obj.max_interest_charge;
265 px_cust_profile_amt_rec.min_statement_amount := p_cust_profile_amt_obj.min_statement_amount;
266 px_cust_profile_amt_rec.auto_rec_min_receipt_amount := p_cust_profile_amt_obj.auto_rec_min_receipt_amount;
267 px_cust_profile_amt_rec.interest_rate := p_cust_profile_amt_obj.interest_rate;
268 px_cust_profile_amt_rec.min_fc_balance_amount := p_cust_profile_amt_obj.min_fc_balance_amount;
269 px_cust_profile_amt_rec.min_fc_invoice_amount := p_cust_profile_amt_obj.min_fc_invoice_amount;
270 px_cust_profile_amt_rec.site_use_id := p_site_use_id;
271 px_cust_profile_amt_rec.expiration_date := p_cust_profile_amt_obj.expiration_date;
272 px_cust_profile_amt_rec.attribute_category := p_cust_profile_amt_obj.attribute_category;
273 px_cust_profile_amt_rec.attribute1 := p_cust_profile_amt_obj.attribute1;
274 px_cust_profile_amt_rec.attribute2 := p_cust_profile_amt_obj.attribute2;
275 px_cust_profile_amt_rec.attribute3 := p_cust_profile_amt_obj.attribute3;
276 px_cust_profile_amt_rec.attribute4 := p_cust_profile_amt_obj.attribute4;
277 px_cust_profile_amt_rec.attribute5 := p_cust_profile_amt_obj.attribute5;
278 px_cust_profile_amt_rec.attribute6 := p_cust_profile_amt_obj.attribute6;
279 px_cust_profile_amt_rec.attribute7 := p_cust_profile_amt_obj.attribute7;
280 px_cust_profile_amt_rec.attribute8 := p_cust_profile_amt_obj.attribute8;
281 px_cust_profile_amt_rec.attribute9 := p_cust_profile_amt_obj.attribute9;
282 px_cust_profile_amt_rec.attribute10 := p_cust_profile_amt_obj.attribute10;
283 px_cust_profile_amt_rec.attribute11 := p_cust_profile_amt_obj.attribute11;
284 px_cust_profile_amt_rec.attribute12 := p_cust_profile_amt_obj.attribute12;
285 px_cust_profile_amt_rec.attribute13 := p_cust_profile_amt_obj.attribute13;
286 px_cust_profile_amt_rec.attribute14 := p_cust_profile_amt_obj.attribute14;
287 px_cust_profile_amt_rec.attribute15 := p_cust_profile_amt_obj.attribute15;
288 px_cust_profile_amt_rec.jgzz_attribute_category := p_cust_profile_amt_obj.jgzz_attribute_category;
289 px_cust_profile_amt_rec.jgzz_attribute1 := p_cust_profile_amt_obj.jgzz_attribute1;
290 px_cust_profile_amt_rec.jgzz_attribute2 := p_cust_profile_amt_obj.jgzz_attribute2;
291 px_cust_profile_amt_rec.jgzz_attribute3 := p_cust_profile_amt_obj.jgzz_attribute3;
292 px_cust_profile_amt_rec.jgzz_attribute4 := p_cust_profile_amt_obj.jgzz_attribute4;
293 px_cust_profile_amt_rec.jgzz_attribute5 := p_cust_profile_amt_obj.jgzz_attribute5;
294 px_cust_profile_amt_rec.jgzz_attribute6 := p_cust_profile_amt_obj.jgzz_attribute6;
295 px_cust_profile_amt_rec.jgzz_attribute7 := p_cust_profile_amt_obj.jgzz_attribute7;
296 px_cust_profile_amt_rec.jgzz_attribute8 := p_cust_profile_amt_obj.jgzz_attribute8;
297 px_cust_profile_amt_rec.jgzz_attribute9 := p_cust_profile_amt_obj.jgzz_attribute9;
298 px_cust_profile_amt_rec.jgzz_attribute10 := p_cust_profile_amt_obj.jgzz_attribute10;
299 px_cust_profile_amt_rec.jgzz_attribute11 := p_cust_profile_amt_obj.jgzz_attribute11;
300 px_cust_profile_amt_rec.jgzz_attribute12 := p_cust_profile_amt_obj.jgzz_attribute12;
301 px_cust_profile_amt_rec.jgzz_attribute13 := p_cust_profile_amt_obj.jgzz_attribute13;
302 px_cust_profile_amt_rec.jgzz_attribute14 := p_cust_profile_amt_obj.jgzz_attribute14;
303 px_cust_profile_amt_rec.jgzz_attribute15 := p_cust_profile_amt_obj.jgzz_attribute15;
304 px_cust_profile_amt_rec.global_attribute_category := p_cust_profile_amt_obj.global_attribute_category;
305 px_cust_profile_amt_rec.global_attribute1 := p_cust_profile_amt_obj.global_attribute1;
306 px_cust_profile_amt_rec.global_attribute2 := p_cust_profile_amt_obj.global_attribute2;
307 px_cust_profile_amt_rec.global_attribute3 := p_cust_profile_amt_obj.global_attribute3;
308 px_cust_profile_amt_rec.global_attribute4 := p_cust_profile_amt_obj.global_attribute4;
309 px_cust_profile_amt_rec.global_attribute5 := p_cust_profile_amt_obj.global_attribute5;
310 px_cust_profile_amt_rec.global_attribute6 := p_cust_profile_amt_obj.global_attribute6;
311 px_cust_profile_amt_rec.global_attribute7 := p_cust_profile_amt_obj.global_attribute7;
312 px_cust_profile_amt_rec.global_attribute8 := p_cust_profile_amt_obj.global_attribute8;
313 px_cust_profile_amt_rec.global_attribute9 := p_cust_profile_amt_obj.global_attribute9;
314 px_cust_profile_amt_rec.global_attribute10 := p_cust_profile_amt_obj.global_attribute10;
315 px_cust_profile_amt_rec.global_attribute11 := p_cust_profile_amt_obj.global_attribute11;
316 px_cust_profile_amt_rec.global_attribute12 := p_cust_profile_amt_obj.global_attribute12;
317 px_cust_profile_amt_rec.global_attribute13 := p_cust_profile_amt_obj.global_attribute13;
318 px_cust_profile_amt_rec.global_attribute14 := p_cust_profile_amt_obj.global_attribute14;
319 px_cust_profile_amt_rec.global_attribute15 := p_cust_profile_amt_obj.global_attribute15;
320 px_cust_profile_amt_rec.global_attribute16 := p_cust_profile_amt_obj.global_attribute16;
321 px_cust_profile_amt_rec.global_attribute17 := p_cust_profile_amt_obj.global_attribute17;
322 px_cust_profile_amt_rec.global_attribute18 := p_cust_profile_amt_obj.global_attribute18;
323 px_cust_profile_amt_rec.global_attribute19 := p_cust_profile_amt_obj.global_attribute19;
324 px_cust_profile_amt_rec.global_attribute20 := p_cust_profile_amt_obj.global_attribute20;
325 px_cust_profile_amt_rec.created_by_module := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
326 px_cust_profile_amt_rec.exchange_rate_type := p_cust_profile_amt_obj.exchange_rate_type;
327 px_cust_profile_amt_rec.min_fc_invoice_overdue_type := p_cust_profile_amt_obj.min_fc_invoice_overdue_type;
328 px_cust_profile_amt_rec.min_fc_invoice_percent := p_cust_profile_amt_obj.min_fc_invoice_percent;
329 px_cust_profile_amt_rec.min_fc_balance_overdue_type := p_cust_profile_amt_obj.min_fc_balance_overdue_type;
330 px_cust_profile_amt_rec.min_fc_balance_percent := p_cust_profile_amt_obj.min_fc_balance_percent;
331 px_cust_profile_amt_rec.interest_type := p_cust_profile_amt_obj.interest_type;
332 px_cust_profile_amt_rec.interest_fixed_amount := p_cust_profile_amt_obj.interest_fixed_amount;
333 px_cust_profile_amt_rec.interest_schedule_id := p_cust_profile_amt_obj.interest_schedule_id;
334 px_cust_profile_amt_rec.penalty_type := p_cust_profile_amt_obj.penalty_type;
335 px_cust_profile_amt_rec.penalty_rate := p_cust_profile_amt_obj.penalty_rate;
336 px_cust_profile_amt_rec.min_interest_charge := p_cust_profile_amt_obj.min_interest_charge;
337 px_cust_profile_amt_rec.penalty_fixed_amount := p_cust_profile_amt_obj.penalty_fixed_amount;
338 px_cust_profile_amt_rec.penalty_schedule_id := p_cust_profile_amt_obj.penalty_schedule_id;
339 END assign_cust_profile_amt_rec;
340
341 -- PROCEDURE assign_cust_profile_rec
342 --
343 -- DESCRIPTION
344 -- Assign attribute value from customer profile object to plsql record.
345 --
346 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
347 --
348 -- ARGUMENTS
349 -- IN:
350 -- p_cust_profile_obj Customer profile object.
351 -- p_cust_acct_id Customer account Id.
352 -- p_site_use_id Customer account site use Id.
353 -- IN/OUT:
354 -- px_cust_profile_rec Customer profile plsql record.
355 --
356 -- NOTES
357 --
358 -- MODIFICATION HISTORY
359 --
360 -- 14-DEC-2004 Arnold Ng Created.
361
362 PROCEDURE assign_cust_profile_rec(
363 p_cust_profile_obj IN HZ_CUSTOMER_PROFILE_BO,
364 p_cust_acct_id IN NUMBER,
365 p_site_use_id IN NUMBER,
366 px_cust_profile_rec IN OUT NOCOPY HZ_CUSTOMER_PROFILE_V2PUB.CUSTOMER_PROFILE_REC_TYPE
367 ) IS
368 BEGIN
369 px_cust_profile_rec.cust_account_profile_id :=p_cust_profile_obj.cust_acct_profile_id;
370 px_cust_profile_rec.cust_account_id :=p_cust_acct_id;
371 IF(p_cust_profile_obj.status in ('A','I')) THEN
372 px_cust_profile_rec.status :=p_cust_profile_obj.status;
373 END IF;
374 px_cust_profile_rec.collector_id :=p_cust_profile_obj.collector_id;
375 px_cust_profile_rec.credit_analyst_id :=p_cust_profile_obj.credit_analyst_id;
376 px_cust_profile_rec.credit_checking :=p_cust_profile_obj.credit_checking;
377 px_cust_profile_rec.next_credit_review_date :=p_cust_profile_obj.next_credit_review_date;
378 px_cust_profile_rec.tolerance :=p_cust_profile_obj.tolerance;
379 IF(p_cust_profile_obj.discount_terms in ('Y','N')) THEN
380 px_cust_profile_rec.discount_terms :=p_cust_profile_obj.discount_terms;
381 END IF;
382 px_cust_profile_rec.dunning_letters :=p_cust_profile_obj.dunning_letters;
383 IF(p_cust_profile_obj.interest_charges in ('Y','N')) THEN
384 px_cust_profile_rec.interest_charges :=p_cust_profile_obj.interest_charges;
385 END IF;
386 IF(p_cust_profile_obj.send_statements in ('Y','N')) THEN
387 px_cust_profile_rec.send_statements :=p_cust_profile_obj.send_statements;
388 END IF;
389 IF(p_cust_profile_obj.credit_balance_statements in ('Y','N')) THEN
390 px_cust_profile_rec.credit_balance_statements :=p_cust_profile_obj.credit_balance_statements;
391 END IF;
392 IF(p_cust_profile_obj.credit_hold in ('Y','N')) THEN
393 px_cust_profile_rec.credit_hold :=p_cust_profile_obj.credit_hold;
394 END IF;
395 px_cust_profile_rec.profile_class_id :=p_cust_profile_obj.profile_class_id;
396 px_cust_profile_rec.site_use_id :=p_site_use_id;
397 px_cust_profile_rec.credit_rating :=p_cust_profile_obj.credit_rating;
398 px_cust_profile_rec.risk_code :=p_cust_profile_obj.risk_code;
399 px_cust_profile_rec.standard_terms :=p_cust_profile_obj.standard_terms;
400 px_cust_profile_rec.override_terms :=p_cust_profile_obj.override_terms;
401 px_cust_profile_rec.dunning_letter_set_id :=p_cust_profile_obj.dunning_letter_set_id;
402 px_cust_profile_rec.interest_period_days :=p_cust_profile_obj.interest_period_days;
403 px_cust_profile_rec.payment_grace_days :=p_cust_profile_obj.payment_grace_days;
404 px_cust_profile_rec.discount_grace_days :=p_cust_profile_obj.discount_grace_days;
405 px_cust_profile_rec.statement_cycle_id :=p_cust_profile_obj.statement_cycle_id;
406 px_cust_profile_rec.account_status :=p_cust_profile_obj.account_status;
407 px_cust_profile_rec.percent_collectable :=p_cust_profile_obj.percent_collectable;
408 px_cust_profile_rec.autocash_hierarchy_id :=p_cust_profile_obj.autocash_hierarchy_id;
409 px_cust_profile_rec.attribute_category :=p_cust_profile_obj.attribute_category;
410 px_cust_profile_rec.attribute1 :=p_cust_profile_obj.attribute1;
411 px_cust_profile_rec.attribute2 :=p_cust_profile_obj.attribute2;
412 px_cust_profile_rec.attribute3 :=p_cust_profile_obj.attribute3;
413 px_cust_profile_rec.attribute4 :=p_cust_profile_obj.attribute4;
414 px_cust_profile_rec.attribute5 :=p_cust_profile_obj.attribute5;
415 px_cust_profile_rec.attribute6 :=p_cust_profile_obj.attribute6;
416 px_cust_profile_rec.attribute7 :=p_cust_profile_obj.attribute7;
417 px_cust_profile_rec.attribute8 :=p_cust_profile_obj.attribute8;
418 px_cust_profile_rec.attribute9 :=p_cust_profile_obj.attribute9;
419 px_cust_profile_rec.attribute10 :=p_cust_profile_obj.attribute10;
420 px_cust_profile_rec.attribute11 :=p_cust_profile_obj.attribute11;
421 px_cust_profile_rec.attribute12 :=p_cust_profile_obj.attribute12;
422 px_cust_profile_rec.attribute13 :=p_cust_profile_obj.attribute13;
423 px_cust_profile_rec.attribute14 :=p_cust_profile_obj.attribute14;
424 px_cust_profile_rec.attribute15 :=p_cust_profile_obj.attribute15;
425 px_cust_profile_rec.auto_rec_incl_disputed_flag :=p_cust_profile_obj.auto_rec_incl_disputed_flag;
426 px_cust_profile_rec.tax_printing_option :=p_cust_profile_obj.tax_printing_option;
427 IF(p_cust_profile_obj.charge_on_fin_charge_flag in ('Y','N')) THEN
428 px_cust_profile_rec.charge_on_finance_charge_flag :=p_cust_profile_obj.charge_on_fin_charge_flag;
429 END IF;
430 px_cust_profile_rec.grouping_rule_id :=p_cust_profile_obj.grouping_rule_id;
431 px_cust_profile_rec.clearing_days :=p_cust_profile_obj.clearing_days;
432 px_cust_profile_rec.jgzz_attribute_category :=p_cust_profile_obj.jgzz_attribute_category;
433 px_cust_profile_rec.jgzz_attribute1 :=p_cust_profile_obj.jgzz_attribute1;
434 px_cust_profile_rec.jgzz_attribute2 :=p_cust_profile_obj.jgzz_attribute2;
435 px_cust_profile_rec.jgzz_attribute3 :=p_cust_profile_obj.jgzz_attribute3;
436 px_cust_profile_rec.jgzz_attribute4 :=p_cust_profile_obj.jgzz_attribute4;
437 px_cust_profile_rec.jgzz_attribute5 :=p_cust_profile_obj.jgzz_attribute5;
438 px_cust_profile_rec.jgzz_attribute6 :=p_cust_profile_obj.jgzz_attribute6;
439 px_cust_profile_rec.jgzz_attribute7 :=p_cust_profile_obj.jgzz_attribute7;
440 px_cust_profile_rec.jgzz_attribute8 :=p_cust_profile_obj.jgzz_attribute8;
441 px_cust_profile_rec.jgzz_attribute9 :=p_cust_profile_obj.jgzz_attribute9;
442 px_cust_profile_rec.jgzz_attribute10 :=p_cust_profile_obj.jgzz_attribute10;
443 px_cust_profile_rec.jgzz_attribute11 :=p_cust_profile_obj.jgzz_attribute11;
444 px_cust_profile_rec.jgzz_attribute12 :=p_cust_profile_obj.jgzz_attribute12;
445 px_cust_profile_rec.jgzz_attribute13 :=p_cust_profile_obj.jgzz_attribute13;
446 px_cust_profile_rec.jgzz_attribute14 :=p_cust_profile_obj.jgzz_attribute14;
447 px_cust_profile_rec.jgzz_attribute15 :=p_cust_profile_obj.jgzz_attribute15;
448 px_cust_profile_rec.global_attribute1 :=p_cust_profile_obj.global_attribute1;
449 px_cust_profile_rec.global_attribute2 :=p_cust_profile_obj.global_attribute2;
450 px_cust_profile_rec.global_attribute3 :=p_cust_profile_obj.global_attribute3;
451 px_cust_profile_rec.global_attribute4 :=p_cust_profile_obj.global_attribute4;
452 px_cust_profile_rec.global_attribute5 :=p_cust_profile_obj.global_attribute5;
453 px_cust_profile_rec.global_attribute6 :=p_cust_profile_obj.global_attribute6;
454 px_cust_profile_rec.global_attribute7 :=p_cust_profile_obj.global_attribute7;
455 px_cust_profile_rec.global_attribute8 :=p_cust_profile_obj.global_attribute8;
456 px_cust_profile_rec.global_attribute9 :=p_cust_profile_obj.global_attribute9;
457 px_cust_profile_rec.global_attribute10 :=p_cust_profile_obj.global_attribute10;
458 px_cust_profile_rec.global_attribute11 :=p_cust_profile_obj.global_attribute11;
459 px_cust_profile_rec.global_attribute12 :=p_cust_profile_obj.global_attribute12;
460 px_cust_profile_rec.global_attribute13 :=p_cust_profile_obj.global_attribute13;
461 px_cust_profile_rec.global_attribute14 :=p_cust_profile_obj.global_attribute14;
462 px_cust_profile_rec.global_attribute15 :=p_cust_profile_obj.global_attribute15;
463 px_cust_profile_rec.global_attribute16 :=p_cust_profile_obj.global_attribute16;
464 px_cust_profile_rec.global_attribute17 :=p_cust_profile_obj.global_attribute17;
465 px_cust_profile_rec.global_attribute18 :=p_cust_profile_obj.global_attribute18;
466 px_cust_profile_rec.global_attribute19 :=p_cust_profile_obj.global_attribute19;
467 px_cust_profile_rec.global_attribute20 :=p_cust_profile_obj.global_attribute20;
468 px_cust_profile_rec.global_attribute_category :=p_cust_profile_obj.global_attribute_category;
469 IF(p_cust_profile_obj.cons_inv_flag in ('Y','N')) THEN
470 px_cust_profile_rec.cons_inv_flag :=p_cust_profile_obj.cons_inv_flag;
471 END IF;
472 px_cust_profile_rec.cons_inv_type :=p_cust_profile_obj.cons_inv_type;
473 px_cust_profile_rec.autocash_hierarchy_id_for_adr :=p_cust_profile_obj.autocash_hier_id_for_adr;
474 px_cust_profile_rec.lockbox_matching_option :=p_cust_profile_obj.lockbox_matching_option;
475 px_cust_profile_rec.created_by_module :=HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
476 px_cust_profile_rec.review_cycle :=p_cust_profile_obj.review_cycle;
477 px_cust_profile_rec.last_credit_review_date :=p_cust_profile_obj.last_credit_review_date;
478 --px_cust_profile_rec.party_id :=p_cust_profile_obj.party_id;
479 px_cust_profile_rec.credit_classification :=p_cust_profile_obj.credit_classification;
480 px_cust_profile_rec.cons_bill_level :=p_cust_profile_obj.cons_bill_level;
481 px_cust_profile_rec.late_charge_calculation_trx := p_cust_profile_obj.late_charge_calculation_trx;
482 px_cust_profile_rec.credit_items_flag := p_cust_profile_obj.credit_items_flag;
483 px_cust_profile_rec.disputed_transactions_flag := p_cust_profile_obj.disputed_transactions_flag;
484 px_cust_profile_rec.late_charge_type := p_cust_profile_obj.late_charge_type;
485 px_cust_profile_rec.late_charge_term_id := p_cust_profile_obj.late_charge_term_id;
486 px_cust_profile_rec.interest_calculation_period := p_cust_profile_obj.interest_calculation_period;
487 px_cust_profile_rec.hold_charged_invoices_flag := p_cust_profile_obj.hold_charged_invoices_flag;
488 px_cust_profile_rec.message_text_id := p_cust_profile_obj.message_text_id;
489 px_cust_profile_rec.multiple_interest_rates_flag := p_cust_profile_obj.multiple_interest_rates_flag;
490 px_cust_profile_rec.charge_begin_date := p_cust_profile_obj.charge_begin_date;
491 END assign_cust_profile_rec;
492
493 -- PRIVATE PROCEDURE assign_cust_acct_relate_rec
494 --
495 -- DESCRIPTION
496 -- Assign attribute value from customer account relationship object to plsql record.
497 --
498 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
499 --
500 -- ARGUMENTS
501 -- IN:
502 -- p_cust_acct_relate_obj Customer account relationship object.
503 -- p_cust_acct_id Customer account Id.
504 -- p_related_cust_acct_id Related customer account Id.
505 -- IN/OUT:
506 -- px_cust_acct_relate_rec Customer account relationship plsql record.
507 --
508 -- NOTES
509 --
510 -- MODIFICATION HISTORY
511 --
512 -- 14-DEC-2004 Arnold Ng Created.
513
514 PROCEDURE assign_cust_acct_relate_rec(
515 p_cust_acct_relate_obj IN HZ_CUST_ACCT_RELATE_OBJ,
516 p_cust_acct_id IN NUMBER,
517 p_related_cust_acct_id IN NUMBER,
518 px_cust_acct_relate_rec IN OUT NOCOPY HZ_CUST_ACCOUNT_V2PUB.CUST_ACCT_RELATE_REC_TYPE
519 ) IS
520 BEGIN
521 px_cust_acct_relate_rec.cust_account_id := p_cust_acct_id;
522 px_cust_acct_relate_rec.related_cust_account_id := p_related_cust_acct_id;
523 px_cust_acct_relate_rec.relationship_type := p_cust_acct_relate_obj.relationship_type;
524 px_cust_acct_relate_rec.comments := p_cust_acct_relate_obj.comments;
525 IF(p_cust_acct_relate_obj.customer_reciprocal_flag in ('Y','N')) THEN
526 px_cust_acct_relate_rec.customer_reciprocal_flag := p_cust_acct_relate_obj.customer_reciprocal_flag;
527 END IF;
528 px_cust_acct_relate_rec.attribute_category := p_cust_acct_relate_obj.attribute_category;
529 px_cust_acct_relate_rec.attribute1 := p_cust_acct_relate_obj.attribute1;
530 px_cust_acct_relate_rec.attribute2 := p_cust_acct_relate_obj.attribute2;
531 px_cust_acct_relate_rec.attribute3 := p_cust_acct_relate_obj.attribute3;
532 px_cust_acct_relate_rec.attribute4 := p_cust_acct_relate_obj.attribute4;
533 px_cust_acct_relate_rec.attribute5 := p_cust_acct_relate_obj.attribute5;
534 px_cust_acct_relate_rec.attribute6 := p_cust_acct_relate_obj.attribute6;
535 px_cust_acct_relate_rec.attribute7 := p_cust_acct_relate_obj.attribute7;
536 px_cust_acct_relate_rec.attribute8 := p_cust_acct_relate_obj.attribute8;
537 px_cust_acct_relate_rec.attribute9 := p_cust_acct_relate_obj.attribute9;
538 px_cust_acct_relate_rec.attribute10 := p_cust_acct_relate_obj.attribute10;
539 px_cust_acct_relate_rec.attribute11 := p_cust_acct_relate_obj.attribute11;
540 px_cust_acct_relate_rec.attribute12 := p_cust_acct_relate_obj.attribute12;
541 px_cust_acct_relate_rec.attribute13 := p_cust_acct_relate_obj.attribute13;
542 px_cust_acct_relate_rec.attribute14 := p_cust_acct_relate_obj.attribute14;
543 px_cust_acct_relate_rec.attribute15 := p_cust_acct_relate_obj.attribute15;
544 IF(p_cust_acct_relate_obj.status in ('A','I')) THEN
545 px_cust_acct_relate_rec.status := p_cust_acct_relate_obj.status;
546 END IF;
547 px_cust_acct_relate_rec.bill_to_flag := p_cust_acct_relate_obj.bill_to_flag;
548 px_cust_acct_relate_rec.ship_to_flag := p_cust_acct_relate_obj.ship_to_flag;
549 px_cust_acct_relate_rec.created_by_module := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
550 px_cust_acct_relate_rec.org_id := p_cust_acct_relate_obj.org_id;
551 END assign_cust_acct_relate_rec;
552
553 -- PROCEDURE create_cust_profile
554 --
555 -- DESCRIPTION
556 -- Create customer profile.
557 --
558 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
559 --
560 -- ARGUMENTS
561 -- IN:
562 -- p_cp_obj Customer profile object.
563 -- p_ca_id Customer account Id.
564 -- p_casu_id Customer account site use Id.
565 -- OUT:
566 -- x_cp_id Customer profile Id.
567 -- x_return_status Return status after the call. The status can
568 -- be fnd_api.g_ret_sts_success (success),
569 -- fnd_api.g_ret_sts_error (error),
570 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
571 -- x_msg_count Number of messages in message stack.
572 -- x_msg_data Message text if x_msg_count is 1.
573 --
574 -- NOTES
575 --
576 -- MODIFICATION HISTORY
577 --
578 -- 14-DEC-2004 Arnold Ng Created.
579
580 PROCEDURE create_cust_profile(
581 p_cp_obj IN OUT NOCOPY HZ_CUSTOMER_PROFILE_BO,
582 p_ca_id IN NUMBER,
583 p_casu_id IN NUMBER,
584 x_cp_id OUT NOCOPY NUMBER,
585 x_return_status OUT NOCOPY VARCHAR2,
586 x_msg_count OUT NOCOPY NUMBER,
587 x_msg_data OUT NOCOPY VARCHAR2
588 ) IS
589 l_debug_prefix VARCHAR2(30) := '';
590 l_cp_rec HZ_CUSTOMER_PROFILE_V2PUB.CUSTOMER_PROFILE_REC_TYPE;
591 BEGIN
592 -- Standard start of API savepoint
593 SAVEPOINT create_cp_pvt;
594
595 -- initialize API return status to success.
596 x_return_status := FND_API.G_RET_STS_SUCCESS;
597
598 -- Debug info.
599 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
600 hz_utility_v2pub.debug(p_message=>'create_cust_profile(+)',
601 p_prefix=>l_debug_prefix,
602 p_msg_level=>fnd_log.level_procedure);
603 END IF;
604
605 -- Create cust profile
606 assign_cust_profile_rec(
607 p_cust_profile_obj => p_cp_obj,
608 p_cust_acct_id => p_ca_id,
609 p_site_use_id => p_casu_id,
610 px_cust_profile_rec => l_cp_rec
611 );
612
613 HZ_CUSTOMER_PROFILE_V2PUB.create_customer_profile (
614 p_customer_profile_rec => l_cp_rec,
615 p_create_profile_amt => FND_API.G_FALSE,
616 x_cust_account_profile_id => x_cp_id,
617 x_return_status => x_return_status,
618 x_msg_count => x_msg_count,
619 x_msg_data => x_msg_data
620 );
621
622 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
623 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
624 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_cust_acct_bo_pvt.create_cust_profile, cust account id: '||p_ca_id||' cust site use id: '||p_casu_id,
625 p_prefix=>l_debug_prefix,
626 p_msg_level=>fnd_log.level_procedure);
627 END IF;
628 RAISE fnd_api.g_exc_error;
629 END IF;
630
631 -- assign profile_id
632 p_cp_obj.cust_acct_profile_id := x_cp_id;
633
634 -- Debug info.
635 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
636 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
637 p_msg_data=>x_msg_data,
638 p_msg_type=>'WARNING',
639 p_msg_level=>fnd_log.level_exception);
640 END IF;
641 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
642 hz_utility_v2pub.debug(p_message=>'create_cust_profile(-)',
643 p_prefix=>l_debug_prefix,
644 p_msg_level=>fnd_log.level_procedure);
645 END IF;
646 EXCEPTION
647 WHEN fnd_api.g_exc_error THEN
648 ROLLBACK TO create_cp_pvt;
649 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_STRUCT_ERROR');
650 FND_MESSAGE.SET_TOKEN('STRUCTURE', 'HZ_CUSTOMER_PROFILES');
651 FND_MSG_PUB.ADD;
652
653 x_return_status := fnd_api.g_ret_sts_error;
654
655 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
656 p_count => x_msg_count,
657 p_data => x_msg_data);
658
659 -- Debug info.
660 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
661 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
662 p_msg_data=>x_msg_data,
663 p_msg_type=>'ERROR',
664 p_msg_level=>fnd_log.level_error);
665 END IF;
666 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
667 hz_utility_v2pub.debug(p_message=>'create_cust_profile(-)',
668 p_prefix=>l_debug_prefix,
669 p_msg_level=>fnd_log.level_procedure);
670 END IF;
671
672 WHEN fnd_api.g_exc_unexpected_error THEN
673 ROLLBACK TO create_cp_pvt;
674 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_STRUCT_ERROR');
675 FND_MESSAGE.SET_TOKEN('STRUCTURE', 'HZ_CUSTOMER_PROFILES');
676 FND_MSG_PUB.ADD;
677
678 x_return_status := fnd_api.g_ret_sts_unexp_error;
679
680 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
681 p_count => x_msg_count,
682 p_data => x_msg_data);
683
684 -- Debug info.
685 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
686 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
687 p_msg_data=>x_msg_data,
688 p_msg_type=>'UNEXPECTED ERROR',
689 p_msg_level=>fnd_log.level_error);
690 END IF;
691 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
692 hz_utility_v2pub.debug(p_message=>'create_cust_profile(-)',
693 p_prefix=>l_debug_prefix,
694 p_msg_level=>fnd_log.level_procedure);
695 END IF;
696
697 WHEN OTHERS THEN
698 ROLLBACK TO create_cp_pvt;
699 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_STRUCT_ERROR');
700 FND_MESSAGE.SET_TOKEN('STRUCTURE', 'HZ_CUSTOMER_PROFILES');
701 FND_MSG_PUB.ADD;
702
703 x_return_status := fnd_api.g_ret_sts_unexp_error;
704
705 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
706 fnd_message.set_token('ERROR' ,SQLERRM);
707 fnd_msg_pub.add;
708
709 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
710 p_count => x_msg_count,
711 p_data => x_msg_data);
712
713 -- Debug info.
714 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
715 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
716 p_msg_data=>x_msg_data,
717 p_msg_type=>'SQL ERROR',
718 p_msg_level=>fnd_log.level_error);
719 END IF;
720 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
721 hz_utility_v2pub.debug(p_message=>'create_cust_profile(-)',
722 p_prefix=>l_debug_prefix,
723 p_msg_level=>fnd_log.level_procedure);
724 END IF;
725 END create_cust_profile;
726
727 -- PROCEDURE update_cust_profile
728 --
729 -- DESCRIPTION
730 -- Update customer profile.
731 --
732 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
733 --
734 -- ARGUMENTS
735 -- IN:
736 -- p_cp_obj Customer profile object.
737 -- p_ca_id Customer account Id.
738 -- p_casu_id Customer account site use Id.
739 -- OUT:
740 -- x_cp_id Customer profile Id.
741 -- x_return_status Return status after the call. The status can
742 -- be fnd_api.g_ret_sts_success (success),
743 -- fnd_api.g_ret_sts_error (error),
744 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
745 -- x_msg_count Number of messages in message stack.
746 -- x_msg_data Message text if x_msg_count is 1.
747 --
748 -- NOTES
749 --
750 -- MODIFICATION HISTORY
751 --
752 -- 14-DEC-2004 Arnold Ng Created.
753
754 PROCEDURE update_cust_profile(
755 p_cp_obj IN OUT NOCOPY HZ_CUSTOMER_PROFILE_BO,
756 p_ca_id IN NUMBER,
757 p_casu_id IN NUMBER,
758 x_cp_id OUT NOCOPY NUMBER,
759 x_return_status OUT NOCOPY VARCHAR2,
760 x_msg_count OUT NOCOPY NUMBER,
761 x_msg_data OUT NOCOPY VARCHAR2
762 ) IS
763 l_debug_prefix VARCHAR2(30) := '';
764 l_cp_rec HZ_CUSTOMER_PROFILE_V2PUB.CUSTOMER_PROFILE_REC_TYPE;
765 l_cp_ovn NUMBER;
766 l_ca_id NUMBER;
767 l_casu_id NUMBER;
768
769 CURSOR get_ovn(l_ca_id NUMBER, l_casu_id NUMBER) IS
770 SELECT cp.cust_account_profile_id, cp.object_version_number
771 FROM HZ_CUSTOMER_PROFILES cp
772 WHERE cp.cust_account_id = l_ca_id
773 AND nvl(cp.site_use_id, -99) = nvl(l_casu_id, -99);
774
775 CURSOR get_ovn_by_cpid(l_cp_id NUMBER) IS
776 SELECT cp.cust_account_profile_id, cp.object_version_number, cp.cust_account_id, cp.site_use_id
777 FROM HZ_CUSTOMER_PROFILES cp
778 WHERE cp.cust_account_profile_id = l_cp_id;
779 BEGIN
780 -- Standard start of API savepoint
781 SAVEPOINT update_cp_pvt;
782
783 -- initialize API return status to success.
784 x_return_status := FND_API.G_RET_STS_SUCCESS;
785
786 -- Debug info.
787 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
788 hz_utility_v2pub.debug(p_message=>'update_cust_profile(+)',
789 p_prefix=>l_debug_prefix,
790 p_msg_level=>fnd_log.level_procedure);
791 END IF;
792
793 -- check if user pass in cust profile id but with different cust account id
794 -- and/or site use id
795 IF(p_cp_obj.cust_acct_profile_id IS NOT NULL) THEN
796 OPEN get_ovn_by_cpid(p_cp_obj.cust_acct_profile_id);
797 FETCH get_ovn_by_cpid INTO x_cp_id, l_cp_ovn, l_ca_id, l_casu_id;
798 CLOSE get_ovn_by_cpid;
799 IF(nvl(l_ca_id, -99) <> nvl(p_ca_id, -99)) THEN
800 FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_NONUPDATEABLE_COLUMN' );
801 FND_MESSAGE.SET_TOKEN( 'COLUMN', 'cust_account_id');
802 FND_MSG_PUB.ADD();
803 RAISE fnd_api.g_exc_error;
804 END IF;
805 IF(nvl(l_casu_id, -99) <> nvl(p_casu_id, -99)) THEN
806 FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_NONUPDATEABLE_COLUMN' );
807 FND_MESSAGE.SET_TOKEN( 'COLUMN', 'site_use_id');
808 FND_MSG_PUB.ADD();
809 RAISE fnd_api.g_exc_error;
810 END IF;
811 ELSE
812 OPEN get_ovn(p_ca_id, p_casu_id);
813 FETCH get_ovn INTO x_cp_id, l_cp_ovn;
814 CLOSE get_ovn;
815 END IF;
816
817 -- Create cust profile
818 assign_cust_profile_rec(
819 p_cust_profile_obj => p_cp_obj,
820 p_cust_acct_id => p_ca_id,
821 p_site_use_id => p_casu_id,
822 px_cust_profile_rec => l_cp_rec
823 );
824
825 l_cp_rec.cust_account_profile_id := x_cp_id;
826 l_cp_rec.created_by_module := NULL;
827
828 HZ_CUSTOMER_PROFILE_V2PUB.update_customer_profile (
829 p_customer_profile_rec => l_cp_rec,
830 p_object_version_number => l_cp_ovn,
831 x_return_status => x_return_status,
832 x_msg_count => x_msg_count,
833 x_msg_data => x_msg_data
834 );
835
836 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
837 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
838 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_cust_acct_bo_pvt.update_cust_profile, cust account id: '||p_ca_id||' cust site use id: '||p_casu_id,
839 p_prefix=>l_debug_prefix,
840 p_msg_level=>fnd_log.level_procedure);
841 END IF;
842 RAISE fnd_api.g_exc_error;
843 END IF;
844
845 -- assign profile_id
846 p_cp_obj.cust_acct_profile_id := x_cp_id;
847
848 -- Debug info.
849 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
850 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
851 p_msg_data=>x_msg_data,
852 p_msg_type=>'WARNING',
853 p_msg_level=>fnd_log.level_exception);
854 END IF;
855 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
856 hz_utility_v2pub.debug(p_message=>'update_cust_profile(-)',
857 p_prefix=>l_debug_prefix,
858 p_msg_level=>fnd_log.level_procedure);
859 END IF;
860 EXCEPTION
861 WHEN fnd_api.g_exc_error THEN
862 ROLLBACK TO update_cp_pvt;
863 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_STRUCT_ERROR');
864 FND_MESSAGE.SET_TOKEN('STRUCTURE', 'HZ_CUSTOMER_PROFILES');
865 FND_MSG_PUB.ADD;
866
867 x_return_status := fnd_api.g_ret_sts_error;
868
869 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
870 p_count => x_msg_count,
871 p_data => x_msg_data);
872
873 -- Debug info.
874 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
875 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
876 p_msg_data=>x_msg_data,
877 p_msg_type=>'ERROR',
878 p_msg_level=>fnd_log.level_error);
879 END IF;
880 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
881 hz_utility_v2pub.debug(p_message=>'update_cust_profile(-)',
882 p_prefix=>l_debug_prefix,
883 p_msg_level=>fnd_log.level_procedure);
884 END IF;
885
886 WHEN fnd_api.g_exc_unexpected_error THEN
887 ROLLBACK TO update_cp_pvt;
888 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_STRUCT_ERROR');
889 FND_MESSAGE.SET_TOKEN('STRUCTURE', 'HZ_CUSTOMER_PROFILES');
890 FND_MSG_PUB.ADD;
891
892 x_return_status := fnd_api.g_ret_sts_unexp_error;
893
894 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
895 p_count => x_msg_count,
896 p_data => x_msg_data);
897
898 -- Debug info.
899 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
900 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
901 p_msg_data=>x_msg_data,
902 p_msg_type=>'UNEXPECTED ERROR',
903 p_msg_level=>fnd_log.level_error);
904 END IF;
905 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
906 hz_utility_v2pub.debug(p_message=>'update_cust_profile(-)',
907 p_prefix=>l_debug_prefix,
908 p_msg_level=>fnd_log.level_procedure);
909 END IF;
910
911 WHEN OTHERS THEN
912 ROLLBACK TO update_cp_pvt;
913 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_STRUCT_ERROR');
914 FND_MESSAGE.SET_TOKEN('STRUCTURE', 'HZ_CUSTOMER_PROFILES');
915 FND_MSG_PUB.ADD;
916
917 x_return_status := fnd_api.g_ret_sts_unexp_error;
918
919 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
920 fnd_message.set_token('ERROR' ,SQLERRM);
921 fnd_msg_pub.add;
922
923 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
924 p_count => x_msg_count,
925 p_data => x_msg_data);
926
927 -- Debug info.
928 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
929 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
930 p_msg_data=>x_msg_data,
931 p_msg_type=>'SQL ERROR',
932 p_msg_level=>fnd_log.level_error);
933 END IF;
934 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
935 hz_utility_v2pub.debug(p_message=>'update_cust_profile(-)',
936 p_prefix=>l_debug_prefix,
937 p_msg_level=>fnd_log.level_procedure);
938 END IF;
939 END update_cust_profile;
940
941 -- PROCEDURE create_cust_profile_amts
942 --
943 -- DESCRIPTION
944 -- Create customer profile amounts.
945 --
946 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
947 --
948 -- ARGUMENTS
949 -- IN:
950 -- p_cpa_objs List of customer profile amount objects.
951 -- p_cp_id Customer profile Id.
952 -- p_ca_id Customer account Id.
953 -- p_casu_id Customer account site use Id.
954 -- OUT:
955 -- x_return_status Return status after the call. The status can
956 -- be fnd_api.g_ret_sts_success (success),
957 -- fnd_api.g_ret_sts_error (error),
958 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
959 -- x_msg_count Number of messages in message stack.
960 -- x_msg_data Message text if x_msg_count is 1.
961 --
962 -- NOTES
963 --
964 -- MODIFICATION HISTORY
965 --
966 -- 14-DEC-2004 Arnold Ng Created.
967
968 PROCEDURE create_cust_profile_amts(
969 p_cpa_objs IN OUT NOCOPY HZ_CUST_PROFILE_AMT_OBJ_TBL,
970 p_cp_id IN NUMBER,
971 p_ca_id IN NUMBER,
972 p_casu_id IN NUMBER,
973 x_return_status OUT NOCOPY VARCHAR2,
974 x_msg_count OUT NOCOPY NUMBER,
975 x_msg_data OUT NOCOPY VARCHAR2
976 ) IS
977 l_debug_prefix VARCHAR2(30) := '';
978 l_cpa_rec HZ_CUSTOMER_PROFILE_V2PUB.CUST_PROFILE_AMT_REC_TYPE;
979 l_cpa_id NUMBER;
980 BEGIN
981 -- Standard start of API savepoint
982 SAVEPOINT create_cpa_pvt;
983
984 -- initialize API return status to success.
985 x_return_status := FND_API.G_RET_STS_SUCCESS;
986
987 -- Debug info.
988 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
989 hz_utility_v2pub.debug(p_message=>'create_cust_profile_amts(+)',
990 p_prefix=>l_debug_prefix,
991 p_msg_level=>fnd_log.level_procedure);
992 END IF;
993
994 FOR i IN 1..p_cpa_objs.COUNT LOOP
995 assign_cust_profile_amt_rec(
996 p_cust_profile_amt_obj => p_cpa_objs(i),
997 p_cust_profile_id => p_cp_id,
998 p_cust_acct_id => p_ca_id,
999 p_site_use_id => p_casu_id,
1000 px_cust_profile_amt_rec => l_cpa_rec
1001 );
1002
1003 HZ_CUSTOMER_PROFILE_V2PUB.create_cust_profile_amt (
1004 p_check_foreign_key => FND_API.G_FALSE,
1005 p_cust_profile_amt_rec => l_cpa_rec,
1006 x_cust_acct_profile_amt_id => l_cpa_id,
1007 x_return_status => x_return_status,
1008 x_msg_count => x_msg_count,
1009 x_msg_data => x_msg_data
1010 );
1011
1012 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1013 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1014 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_cust_acct_bo_pvt.create_cust_profile_amts, cust acct profile id: '||p_cp_id||' cust acct id: '||p_ca_id,
1015 p_prefix=>l_debug_prefix,
1016 p_msg_level=>fnd_log.level_procedure);
1017 END IF;
1018 RAISE FND_API.G_EXC_ERROR;
1019 END IF;
1020
1021 -- assign profile amount id
1022 p_cpa_objs(i).cust_acct_profile_amt_id := l_cpa_id;
1023 END LOOP;
1024
1025 -- Debug info.
1026 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1027 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1028 p_msg_data=>x_msg_data,
1029 p_msg_type=>'WARNING',
1030 p_msg_level=>fnd_log.level_exception);
1031 END IF;
1032 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1033 hz_utility_v2pub.debug(p_message=>'create_cust_profile_amts(-)',
1034 p_prefix=>l_debug_prefix,
1035 p_msg_level=>fnd_log.level_procedure);
1036 END IF;
1037
1038 EXCEPTION
1039 WHEN fnd_api.g_exc_error THEN
1040 ROLLBACK TO create_cpa_pvt;
1041 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1042 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_PROFILE_AMTS');
1043 FND_MSG_PUB.ADD;
1044
1045 x_return_status := fnd_api.g_ret_sts_error;
1046
1047 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1048 p_count => x_msg_count,
1049 p_data => x_msg_data);
1050
1051 -- Debug info.
1052 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1053 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1054 p_msg_data=>x_msg_data,
1055 p_msg_type=>'ERROR',
1056 p_msg_level=>fnd_log.level_error);
1057 END IF;
1058 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1059 hz_utility_v2pub.debug(p_message=>'create_cust_profile_amts(-)',
1060 p_prefix=>l_debug_prefix,
1061 p_msg_level=>fnd_log.level_procedure);
1062 END IF;
1063
1064 WHEN fnd_api.g_exc_unexpected_error THEN
1065 ROLLBACK TO create_cpa_pvt;
1066 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1067 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_PROFILE_AMTS');
1068 FND_MSG_PUB.ADD;
1069
1070 x_return_status := fnd_api.g_ret_sts_unexp_error;
1071
1072 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1073 p_count => x_msg_count,
1074 p_data => x_msg_data);
1075
1076 -- Debug info.
1077 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1078 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1079 p_msg_data=>x_msg_data,
1080 p_msg_type=>'UNEXPECTED ERROR',
1081 p_msg_level=>fnd_log.level_error);
1082 END IF;
1083 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1084 hz_utility_v2pub.debug(p_message=>'create_cust_profile_amts(-)',
1085 p_prefix=>l_debug_prefix,
1086 p_msg_level=>fnd_log.level_procedure);
1087 END IF;
1088
1089 WHEN OTHERS THEN
1090 ROLLBACK TO create_cpa_pvt;
1091 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1092 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_PROFILE_AMTS');
1093 FND_MSG_PUB.ADD;
1094
1095 x_return_status := fnd_api.g_ret_sts_unexp_error;
1096
1097 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1098 fnd_message.set_token('ERROR' ,SQLERRM);
1099 fnd_msg_pub.add;
1100
1101 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1102 p_count => x_msg_count,
1103 p_data => x_msg_data);
1104
1105 -- Debug info.
1106 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1107 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1108 p_msg_data=>x_msg_data,
1109 p_msg_type=>'SQL ERROR',
1110 p_msg_level=>fnd_log.level_error);
1111 END IF;
1112 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1113 hz_utility_v2pub.debug(p_message=>'create_cust_profile_amts(-)',
1114 p_prefix=>l_debug_prefix,
1115 p_msg_level=>fnd_log.level_procedure);
1116 END IF;
1117 END create_cust_profile_amts;
1118
1119 -- PROCEDURE save_cust_profile_amts
1120 --
1121 -- DESCRIPTION
1122 -- Create or update customer profile amounts.
1123 --
1124 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1125 --
1126 -- ARGUMENTS
1127 -- IN:
1128 -- p_cpa_objs List of customer profile amount objects.
1129 -- p_cp_id Customer profile Id.
1130 -- p_ca_id Customer account Id.
1131 -- p_casu_id Customer account site use Id.
1132 -- OUT:
1133 -- x_return_status Return status after the call. The status can
1134 -- be fnd_api.g_ret_sts_success (success),
1135 -- fnd_api.g_ret_sts_error (error),
1136 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1137 -- x_msg_count Number of messages in message stack.
1138 -- x_msg_data Message text if x_msg_count is 1.
1139 --
1140 -- NOTES
1141 --
1142 -- MODIFICATION HISTORY
1143 --
1144 -- 14-DEC-2004 Arnold Ng Created.
1145
1146 PROCEDURE save_cust_profile_amts(
1147 p_cpa_objs IN OUT NOCOPY HZ_CUST_PROFILE_AMT_OBJ_TBL,
1148 p_cp_id IN NUMBER,
1149 p_ca_id IN NUMBER,
1150 p_casu_id IN NUMBER,
1151 x_return_status OUT NOCOPY VARCHAR2,
1152 x_msg_count OUT NOCOPY NUMBER,
1153 x_msg_data OUT NOCOPY VARCHAR2
1154 )IS
1155 l_debug_prefix VARCHAR2(30) := '';
1156 l_cpa_rec HZ_CUSTOMER_PROFILE_V2PUB.CUST_PROFILE_AMT_REC_TYPE;
1157 l_cpa_id NUMBER;
1158 l_cpa_ovn NUMBER;
1159 BEGIN
1160 -- Standard start of API savepoint
1161 SAVEPOINT save_cpa_pvt;
1162
1163 -- initialize API return status to success.
1164 x_return_status := FND_API.G_RET_STS_SUCCESS;
1165
1166 -- Debug info.
1167 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1168 hz_utility_v2pub.debug(p_message=>'save_cust_profile_amts(+)',
1169 p_prefix=>l_debug_prefix,
1170 p_msg_level=>fnd_log.level_procedure);
1171 END IF;
1172
1173 FOR i IN 1..p_cpa_objs.COUNT LOOP
1174 -- Update cust profile amount
1175 assign_cust_profile_amt_rec(
1176 p_cust_profile_amt_obj => p_cpa_objs(i),
1177 p_cust_profile_id => p_cp_id,
1178 p_cust_acct_id => p_ca_id,
1179 p_site_use_id => p_casu_id,
1180 px_cust_profile_amt_rec => l_cpa_rec
1181 );
1182
1183 -- check if the role resp record is create or update
1184 hz_registry_validate_bo_pvt.check_cust_profile_amt_op(
1185 p_cust_profile_id => p_cp_id,
1186 px_cust_acct_prof_amt_id => l_cpa_rec.cust_acct_profile_amt_id,
1187 p_currency_code => l_cpa_rec.currency_code,
1188 x_object_version_number => l_cpa_ovn
1189 );
1190
1191 IF(l_cpa_ovn = -1) THEN
1192 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1193 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_cust_acct_bo_pvt.check_cust_profile_amt_op, cust acct profile id: '||p_cp_id||' cust acct id: '||p_ca_id,
1194 p_prefix=>l_debug_prefix,
1195 p_msg_level=>fnd_log.level_procedure);
1196 END IF;
1197 FND_MESSAGE.SET_NAME('AR', 'HZ_API_INVALID_ID');
1198 FND_MSG_PUB.ADD;
1199 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1200 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_PROFILE_AMTS');
1201 FND_MSG_PUB.ADD;
1202 RAISE FND_API.G_EXC_ERROR;
1203 END IF;
1204
1205 IF(l_cpa_ovn IS NULL) THEN
1206 HZ_CUSTOMER_PROFILE_V2PUB.create_cust_profile_amt(
1207 p_check_foreign_key => FND_API.G_FALSE,
1208 p_cust_profile_amt_rec => l_cpa_rec,
1209 x_cust_acct_profile_amt_id => l_cpa_id,
1210 x_return_status => x_return_status,
1211 x_msg_count => x_msg_count,
1212 x_msg_data => x_msg_data
1213 );
1214
1215 -- assign profile amount id
1216 p_cpa_objs(i).cust_acct_profile_amt_id := l_cpa_id;
1217 ELSE
1218 -- clean up created_by_module for update
1219 l_cpa_rec.created_by_module := NULL;
1220 HZ_CUSTOMER_PROFILE_V2PUB.update_cust_profile_amt(
1221 p_cust_profile_amt_rec => l_cpa_rec,
1222 p_object_version_number => l_cpa_ovn,
1223 x_return_status => x_return_status,
1224 x_msg_count => x_msg_count,
1225 x_msg_data => x_msg_data
1226 );
1227
1228 -- assign profile amount id
1229 p_cpa_objs(i).cust_acct_profile_amt_id := l_cpa_rec.cust_acct_profile_amt_id;
1230 END IF;
1231
1232 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1233 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1234 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_cust_acct_bo_pvt.save_cust_profile_amts, cust acct profile id: '||p_cp_id||' cust acct id: '||p_ca_id,
1235 p_prefix=>l_debug_prefix,
1236 p_msg_level=>fnd_log.level_procedure);
1237 END IF;
1238 RAISE FND_API.G_EXC_ERROR;
1239 END IF;
1240 END LOOP;
1241
1242 -- Debug info.
1243 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1244 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1245 p_msg_data=>x_msg_data,
1246 p_msg_type=>'WARNING',
1247 p_msg_level=>fnd_log.level_exception);
1248 END IF;
1249 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1250 hz_utility_v2pub.debug(p_message=>'save_cust_profile_amts(-)',
1251 p_prefix=>l_debug_prefix,
1252 p_msg_level=>fnd_log.level_procedure);
1253 END IF;
1254 EXCEPTION
1255 WHEN fnd_api.g_exc_error THEN
1256 ROLLBACK TO save_cpa_pvt;
1257 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1258 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_PROFILE_AMTS');
1259 FND_MSG_PUB.ADD;
1260
1261 x_return_status := fnd_api.g_ret_sts_error;
1262
1263 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1264 p_count => x_msg_count,
1265 p_data => x_msg_data);
1266
1267 -- Debug info.
1268 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1269 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1270 p_msg_data=>x_msg_data,
1271 p_msg_type=>'ERROR',
1272 p_msg_level=>fnd_log.level_error);
1273 END IF;
1274 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1275 hz_utility_v2pub.debug(p_message=>'save_cust_profile_amts(-)',
1276 p_prefix=>l_debug_prefix,
1277 p_msg_level=>fnd_log.level_procedure);
1278 END IF;
1279
1280 WHEN fnd_api.g_exc_unexpected_error THEN
1281 ROLLBACK TO save_cpa_pvt;
1282 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1283 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_PROFILE_AMTS');
1284 FND_MSG_PUB.ADD;
1285
1286 x_return_status := fnd_api.g_ret_sts_unexp_error;
1287
1288 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1289 p_count => x_msg_count,
1290 p_data => x_msg_data);
1291
1292 -- Debug info.
1293 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1294 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1295 p_msg_data=>x_msg_data,
1296 p_msg_type=>'UNEXPECTED ERROR',
1297 p_msg_level=>fnd_log.level_error);
1298 END IF;
1299 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1300 hz_utility_v2pub.debug(p_message=>'save_cust_profile_amts(-)',
1301 p_prefix=>l_debug_prefix,
1302 p_msg_level=>fnd_log.level_procedure);
1303 END IF;
1304
1305 WHEN OTHERS THEN
1306 ROLLBACK TO save_cpa_pvt;
1307 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1308 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_PROFILE_AMTS');
1309 FND_MSG_PUB.ADD;
1310
1311 x_return_status := fnd_api.g_ret_sts_unexp_error;
1312
1313 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1314 fnd_message.set_token('ERROR' ,SQLERRM);
1315 fnd_msg_pub.add;
1316
1317 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1318 p_count => x_msg_count,
1319 p_data => x_msg_data);
1320
1321 -- Debug info.
1322 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1323 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1324 p_msg_data=>x_msg_data,
1325 p_msg_type=>'SQL ERROR',
1326 p_msg_level=>fnd_log.level_error);
1327 END IF;
1328 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1329 hz_utility_v2pub.debug(p_message=>'save_cust_profile_amts(-)',
1330 p_prefix=>l_debug_prefix,
1331 p_msg_level=>fnd_log.level_procedure);
1332 END IF;
1333 END save_cust_profile_amts;
1334
1335 -- PROCEDURE create_cust_acct_relates
1336 --
1337 -- DESCRIPTION
1338 -- Create customer account relationships.
1339 --
1340 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1341 --
1342 -- ARGUMENTS
1343 -- IN:
1344 -- p_car_objs List of customer account relationship objects.
1345 -- p_ca_id Customer account Id.
1346 -- OUT:
1347 -- x_return_status Return status after the call. The status can
1348 -- be fnd_api.g_ret_sts_success (success),
1349 -- fnd_api.g_ret_sts_error (error),
1350 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1351 -- x_msg_count Number of messages in message stack.
1352 -- x_msg_data Message text if x_msg_count is 1.
1353 --
1354 -- NOTES
1355 --
1356 -- MODIFICATION HISTORY
1357 --
1358 -- 14-DEC-2004 Arnold Ng Created.
1359
1360 PROCEDURE create_cust_acct_relates(
1361 p_car_objs IN OUT NOCOPY HZ_CUST_ACCT_RELATE_OBJ_TBL,
1362 p_ca_id IN NUMBER,
1363 x_return_status OUT NOCOPY VARCHAR2,
1364 x_msg_count OUT NOCOPY NUMBER,
1365 x_msg_data OUT NOCOPY VARCHAR2
1366 ) IS
1367 l_debug_prefix VARCHAR2(30) := '';
1368 l_car_rec HZ_CUST_ACCOUNT_V2PUB.CUST_ACCT_RELATE_REC_TYPE;
1369 l_rca_id NUMBER;
1370 l_rca_os VARCHAR2(30);
1371 l_rca_osr VARCHAR2(255);
1372 BEGIN
1373 -- Standard start of API savepoint
1374 SAVEPOINT create_car_pvt;
1375
1376 -- initialize API return status to success.
1377 x_return_status := FND_API.G_RET_STS_SUCCESS;
1378
1379 -- Debug info.
1380 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1381 hz_utility_v2pub.debug(p_message=>'create_cust_acct_relates(+)',
1382 p_prefix=>l_debug_prefix,
1383 p_msg_level=>fnd_log.level_procedure);
1384 END IF;
1385
1386 -- Create cust account relates
1387 FOR i IN 1..p_car_objs.COUNT LOOP
1388 -- get related cust account id
1389 -- check if related cust account os and osr is valid
1390 l_rca_id := p_car_objs(i).related_cust_acct_id;
1391 l_rca_os := p_car_objs(i).related_cust_acct_os;
1392 l_rca_osr := p_car_objs(i).related_cust_acct_osr;
1393
1394 -- check cust_account_id and os+osr
1395 hz_registry_validate_bo_pvt.validate_ssm_id(
1396 px_id => l_rca_id,
1397 px_os => l_rca_os,
1398 px_osr => l_rca_osr,
1399 p_obj_type => 'HZ_CUST_ACCOUNTS',
1400 p_create_or_update => 'U',
1401 x_return_status => x_return_status,
1402 x_msg_count => x_msg_count,
1403 x_msg_data => x_msg_data);
1404
1405 -- proceed if cust_account_id and os+osr are valid
1406 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
1407 assign_cust_acct_relate_rec(
1408 p_cust_acct_relate_obj => p_car_objs(i),
1409 p_cust_acct_id => p_ca_id,
1410 p_related_cust_acct_id => l_rca_id,
1411 px_cust_acct_relate_rec => l_car_rec
1412 );
1413
1414 HZ_CUST_ACCOUNT_V2PUB.create_cust_acct_relate(
1415 p_cust_acct_relate_rec => l_car_rec,
1416 x_return_status => x_return_status,
1417 x_msg_count => x_msg_count,
1418 x_msg_data => x_msg_data
1419 );
1420
1421 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1422 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1423 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_cust_acct_bo_pvt.create_cust_acct_relates, cust acct id: '||p_ca_id||' related cust acct id: '||l_rca_id,
1424 p_prefix=>l_debug_prefix,
1425 p_msg_level=>fnd_log.level_procedure);
1426 END IF;
1427 RAISE FND_API.G_EXC_ERROR;
1428 END IF;
1429 ELSE
1430 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1431 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_cust_acct_bo_pvt.create_cust_acct_relates, cust acct id: '||p_ca_id||' related cust acct id: '||l_rca_id,
1432 p_prefix=>l_debug_prefix,
1433 p_msg_level=>fnd_log.level_procedure);
1434 END IF;
1435 RAISE FND_API.G_EXC_ERROR;
1436 END IF;
1437 END LOOP;
1438
1439 -- Debug info.
1440 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1441 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1442 p_msg_data=>x_msg_data,
1443 p_msg_type=>'WARNING',
1444 p_msg_level=>fnd_log.level_exception);
1445 END IF;
1446 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1447 hz_utility_v2pub.debug(p_message=>'create_cust_acct_relates(-)',
1448 p_prefix=>l_debug_prefix,
1449 p_msg_level=>fnd_log.level_procedure);
1450 END IF;
1451 EXCEPTION
1452 WHEN fnd_api.g_exc_error THEN
1453 ROLLBACK TO create_car_pvt;
1454 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1455 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_ACCT_RELATE_ALL');
1456 FND_MSG_PUB.ADD;
1457
1458 x_return_status := fnd_api.g_ret_sts_error;
1459
1460 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1461 p_count => x_msg_count,
1462 p_data => x_msg_data);
1463
1464 -- Debug info.
1465 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1466 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1467 p_msg_data=>x_msg_data,
1468 p_msg_type=>'ERROR',
1469 p_msg_level=>fnd_log.level_error);
1470 END IF;
1471 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1472 hz_utility_v2pub.debug(p_message=>'create_cust_acct_relates(-)',
1473 p_prefix=>l_debug_prefix,
1474 p_msg_level=>fnd_log.level_procedure);
1475 END IF;
1476
1477 WHEN fnd_api.g_exc_unexpected_error THEN
1478 ROLLBACK TO create_car_pvt;
1479 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1480 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_ACCT_RELATE_ALL');
1481 FND_MSG_PUB.ADD;
1482
1483 x_return_status := fnd_api.g_ret_sts_unexp_error;
1484
1485 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1486 p_count => x_msg_count,
1487 p_data => x_msg_data);
1488
1489 -- Debug info.
1490 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1491 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1492 p_msg_data=>x_msg_data,
1493 p_msg_type=>'UNEXPECTED ERROR',
1494 p_msg_level=>fnd_log.level_error);
1495 END IF;
1496 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1497 hz_utility_v2pub.debug(p_message=>'create_cust_acct_relates(-)',
1498 p_prefix=>l_debug_prefix,
1499 p_msg_level=>fnd_log.level_procedure);
1500 END IF;
1501
1502 WHEN OTHERS THEN
1503 ROLLBACK TO create_car_pvt;
1504 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1505 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_ACCT_RELATE_ALL');
1506 FND_MSG_PUB.ADD;
1507
1508 x_return_status := fnd_api.g_ret_sts_unexp_error;
1509
1510 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1511 fnd_message.set_token('ERROR' ,SQLERRM);
1512 fnd_msg_pub.add;
1513
1514 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1515 p_count => x_msg_count,
1516 p_data => x_msg_data);
1517
1518 -- Debug info.
1519 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1520 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1521 p_msg_data=>x_msg_data,
1522 p_msg_type=>'SQL ERROR',
1523 p_msg_level=>fnd_log.level_error);
1524 END IF;
1525 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1526 hz_utility_v2pub.debug(p_message=>'create_cust_acct_relates(-)',
1527 p_prefix=>l_debug_prefix,
1528 p_msg_level=>fnd_log.level_procedure);
1529 END IF;
1530 END create_cust_acct_relates;
1531
1532 -- PROCEDURE save_cust_acct_relates
1533 --
1534 -- DESCRIPTION
1535 -- Create or update customer account relationships.
1536 --
1537 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1538 --
1539 -- ARGUMENTS
1540 -- IN:
1541 -- p_car_objs List of customer account relationship objects.
1542 -- p_ca_id Customer account Id.
1543 -- OUT:
1544 -- x_return_status Return status after the call. The status can
1545 -- be fnd_api.g_ret_sts_success (success),
1546 -- fnd_api.g_ret_sts_error (error),
1547 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1548 -- x_msg_count Number of messages in message stack.
1549 -- x_msg_data Message text if x_msg_count is 1.
1550 --
1551 -- NOTES
1552 --
1553 -- MODIFICATION HISTORY
1554 --
1555 -- 14-DEC-2004 Arnold Ng Created.
1556
1557 PROCEDURE save_cust_acct_relates(
1558 p_car_objs IN OUT NOCOPY HZ_CUST_ACCT_RELATE_OBJ_TBL,
1559 p_ca_id IN NUMBER,
1560 x_return_status OUT NOCOPY VARCHAR2,
1561 x_msg_count OUT NOCOPY NUMBER,
1562 x_msg_data OUT NOCOPY VARCHAR2
1563 ) IS
1564 l_debug_prefix VARCHAR2(30) := '';
1565 l_car_rec HZ_CUST_ACCOUNT_V2PUB.CUST_ACCT_RELATE_REC_TYPE;
1566 l_rca_id NUMBER;
1567 l_rca_os VARCHAR2(30);
1568 l_rca_osr VARCHAR2(255);
1569 l_ovn NUMBER;
1570 BEGIN
1571 -- Standard start of API savepoint
1572 SAVEPOINT save_car_pvt;
1573
1574 -- initialize API return status to success.
1575 x_return_status := FND_API.G_RET_STS_SUCCESS;
1576
1577 -- Debug info.
1578 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1579 hz_utility_v2pub.debug(p_message=>'save_cust_acct_relates(+)',
1580 p_prefix=>l_debug_prefix,
1581 p_msg_level=>fnd_log.level_procedure);
1582 END IF;
1583
1584 -- Create/Update cust account relate
1585 FOR i IN 1..p_car_objs.COUNT LOOP
1586 -- get related cust account id
1587 -- check if related cust account os and osr is valid
1588 l_rca_id := p_car_objs(i).related_cust_acct_id;
1589 l_rca_os := p_car_objs(i).related_cust_acct_os;
1590 l_rca_osr := p_car_objs(i).related_cust_acct_osr;
1591
1592 -- check related cust_account_id and os+osr
1593 hz_registry_validate_bo_pvt.validate_ssm_id(
1594 px_id => l_rca_id,
1595 px_os => l_rca_os,
1596 px_osr => l_rca_osr,
1597 p_obj_type => 'HZ_CUST_ACCOUNTS',
1598 p_create_or_update => 'U',
1599 x_return_status => x_return_status,
1600 x_msg_count => x_msg_count,
1601 x_msg_data => x_msg_data);
1602
1603 -- proceed if cust_account_id and os+osr are valid
1604 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
1605 assign_cust_acct_relate_rec(
1606 p_cust_acct_relate_obj => p_car_objs(i),
1607 p_cust_acct_id => p_ca_id,
1608 p_related_cust_acct_id => l_rca_id,
1609 px_cust_acct_relate_rec => l_car_rec
1610 );
1611
1612 -- check if the role resp record is create or update
1613 hz_registry_validate_bo_pvt.check_cust_acct_relate_op(
1614 p_cust_acct_id => p_ca_id,
1615 p_related_cust_acct_id => l_rca_id,
1616 p_org_id => l_car_rec.org_id,
1617 x_object_version_number => l_ovn
1618 );
1619
1620 IF(l_ovn IS NULL) THEN
1621 HZ_CUST_ACCOUNT_V2PUB.create_cust_acct_relate(
1622 p_cust_acct_relate_rec => l_car_rec,
1623 x_return_status => x_return_status,
1624 x_msg_count => x_msg_count,
1625 x_msg_data => x_msg_data
1626 );
1627 ELSE
1628 -- clean up created_by_module for update
1629 l_car_rec.created_by_module := NULL;
1630 HZ_CUST_ACCOUNT_V2PUB.update_cust_acct_relate(
1631 p_cust_acct_relate_rec => l_car_rec,
1632 p_object_version_number => l_ovn,
1633 x_return_status => x_return_status,
1634 x_msg_count => x_msg_count,
1635 x_msg_data => x_msg_data
1636 );
1637 END IF;
1638
1639 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1640 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1641 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_cust_acct_bo_pvt.save_cust_acct_relates, cust acct id: '||p_ca_id||' related cust acct id: '||l_rca_id,
1642 p_prefix=>l_debug_prefix,
1643 p_msg_level=>fnd_log.level_procedure);
1644 END IF;
1645 RAISE FND_API.G_EXC_ERROR;
1646 END IF;
1647 ELSE
1648 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1649 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_cust_acct_bo_pvt.save_cust_acct_relates, cust acct id: '||p_ca_id||' related cust acct id: '||l_rca_id,
1650 p_prefix=>l_debug_prefix,
1651 p_msg_level=>fnd_log.level_procedure);
1652 END IF;
1653 RAISE FND_API.G_EXC_ERROR;
1654 END IF;
1655 END LOOP;
1656
1657 -- Debug info.
1658 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1659 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1660 p_msg_data=>x_msg_data,
1661 p_msg_type=>'WARNING',
1662 p_msg_level=>fnd_log.level_exception);
1663 END IF;
1664 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1665 hz_utility_v2pub.debug(p_message=>'save_cust_acct_relates(-)',
1666 p_prefix=>l_debug_prefix,
1667 p_msg_level=>fnd_log.level_procedure);
1668 END IF;
1669 EXCEPTION
1670 WHEN fnd_api.g_exc_error THEN
1671 ROLLBACK TO save_car_pvt;
1672 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1673 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_ACCT_RELATE_ALL');
1674 FND_MSG_PUB.ADD;
1675
1676 x_return_status := fnd_api.g_ret_sts_error;
1677
1678 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1679 p_count => x_msg_count,
1680 p_data => x_msg_data);
1681
1682 -- Debug info.
1683 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1684 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1685 p_msg_data=>x_msg_data,
1686 p_msg_type=>'ERROR',
1687 p_msg_level=>fnd_log.level_error);
1688 END IF;
1689 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1690 hz_utility_v2pub.debug(p_message=>'save_cust_acct_relates(-)',
1691 p_prefix=>l_debug_prefix,
1692 p_msg_level=>fnd_log.level_procedure);
1693 END IF;
1694
1695 WHEN fnd_api.g_exc_unexpected_error THEN
1696 ROLLBACK TO save_car_pvt;
1697 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1698 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_ACCT_RELATE_ALL');
1699 FND_MSG_PUB.ADD;
1700
1701 x_return_status := fnd_api.g_ret_sts_unexp_error;
1702
1703 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1704 p_count => x_msg_count,
1705 p_data => x_msg_data);
1706
1707 -- Debug info.
1708 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1709 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1710 p_msg_data=>x_msg_data,
1711 p_msg_type=>'UNEXPECTED ERROR',
1712 p_msg_level=>fnd_log.level_error);
1713 END IF;
1714 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1715 hz_utility_v2pub.debug(p_message=>'save_cust_acct_relates(-)',
1716 p_prefix=>l_debug_prefix,
1717 p_msg_level=>fnd_log.level_procedure);
1718 END IF;
1719
1720 WHEN OTHERS THEN
1721 ROLLBACK TO save_car_pvt;
1722 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1723 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_ACCT_RELATE_ALL');
1724 FND_MSG_PUB.ADD;
1725
1726 x_return_status := fnd_api.g_ret_sts_unexp_error;
1727
1728 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1729 fnd_message.set_token('ERROR' ,SQLERRM);
1730 fnd_msg_pub.add;
1731
1732 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1733 p_count => x_msg_count,
1734 p_data => x_msg_data);
1735
1736 -- Debug info.
1737 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1738 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1739 p_msg_data=>x_msg_data,
1740 p_msg_type=>'SQL ERROR',
1741 p_msg_level=>fnd_log.level_error);
1742 END IF;
1743 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1744 hz_utility_v2pub.debug(p_message=>'save_cust_acct_relates(-)',
1745 p_prefix=>l_debug_prefix,
1746 p_msg_level=>fnd_log.level_procedure);
1747 END IF;
1748 END save_cust_acct_relates;
1749
1750 -- PROCEDURE save_bank_acct_uses
1751 --
1752 -- DESCRIPTION
1753 -- Create or update bank account assignments.
1754 --
1755 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1756 --
1757 -- ARGUMENTS
1758 -- IN:
1759 -- p_bank_acct_use_objs List of bank account assignment objects.
1760 -- p_party_id Party Id.
1761 -- p_ca_id Customer account Id.
1762 -- p_casu_id Customer account site use Id.
1763 -- OUT:
1764 -- x_return_status Return status after the call. The status can
1765 -- be fnd_api.g_ret_sts_success (success),
1766 -- fnd_api.g_ret_sts_error (error),
1767 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1768 -- x_msg_count Number of messages in message stack.
1769 -- x_msg_data Message text if x_msg_count is 1.
1770 --
1771 -- NOTES
1772 --
1773 -- MODIFICATION HISTORY
1774 --
1775 -- 14-DEC-2004 Arnold Ng Created.
1776
1777 PROCEDURE save_bank_acct_uses(
1778 p_bank_acct_use_objs IN OUT NOCOPY HZ_BANK_ACCT_USE_OBJ_TBL,
1779 p_party_id IN NUMBER,
1780 p_ca_id IN NUMBER,
1781 p_casu_id IN NUMBER,
1782 x_return_status OUT NOCOPY VARCHAR2,
1783 x_msg_count OUT NOCOPY NUMBER,
1784 x_msg_data OUT NOCOPY VARCHAR2
1785 ) IS
1786 l_debug_prefix VARCHAR2(30) := '';
1787 l_payer_context_rec IBY_FNDCPT_COMMON_PUB.PayerContext_Rec_Type;
1788 l_pmtinstrument_rec IBY_FNDCPT_SETUP_PUB.PmtInstrAssignment_Rec_Type;
1789 l_assign_id NUMBER;
1790 l_response IBY_FNDCPT_COMMON_PUB.Result_Rec_Type;
1791 BEGIN
1792 -- Standard start of API savepoint
1793 SAVEPOINT save_bau_pvt;
1794
1795 -- initialize API return status to success.
1796 x_return_status := FND_API.G_RET_STS_SUCCESS;
1797
1798 -- Debug info.
1799 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1800 hz_utility_v2pub.debug(p_message=>'save_bank_acct_uses(+)',
1801 p_prefix=>l_debug_prefix,
1802 p_msg_level=>fnd_log.level_procedure);
1803 END IF;
1804
1805 FOR i IN 1..p_bank_acct_use_objs.COUNT LOOP
1806 assign_bank_acct_use_rec(
1807 p_bank_acct_use_obj => p_bank_acct_use_objs(i),
1808 p_party_id => p_party_id,
1809 p_cust_acct_id => p_ca_id,
1810 p_site_use_id => p_casu_id,
1811 px_payer_context_rec => l_payer_context_rec,
1812 px_pmtinstrument_rec => l_pmtinstrument_rec
1813 );
1814
1815 IBY_FNDCPT_SETUP_PUB.Set_Payer_Instr_Assignment(
1816 p_api_version => 1.0,
1817 p_commit => FND_API.G_FALSE,
1818 x_return_status => x_return_status,
1819 x_msg_count => x_msg_count,
1820 x_msg_data => x_msg_data,
1821 p_payer => l_payer_context_rec,
1822 p_assignment_attribs => l_pmtinstrument_rec,
1823 x_assign_id => l_assign_id,
1824 x_response => l_response
1825 );
1826
1827 -- assign bank_acct_use_id
1828 p_bank_acct_use_objs(i).bank_acct_use_id := l_assign_id;
1829
1830 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1831 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1832 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_cust_acct_bo_pvt.save_bank_acct_uses, cust acct id: '||p_ca_id||' cust site use id: '||p_casu_id,
1833 p_prefix=>l_debug_prefix,
1834 p_msg_level=>fnd_log.level_procedure);
1835 END IF;
1836 RAISE FND_API.G_EXC_ERROR;
1837 END IF;
1838 END LOOP;
1839
1840 -- Debug info.
1841 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1842 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1843 p_msg_data=>x_msg_data,
1844 p_msg_type=>'WARNING',
1845 p_msg_level=>fnd_log.level_exception);
1846 END IF;
1847 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1848 hz_utility_v2pub.debug(p_message=>'save_bank_acct_uses(-)',
1849 p_prefix=>l_debug_prefix,
1850 p_msg_level=>fnd_log.level_procedure);
1851 END IF;
1852 EXCEPTION
1853 WHEN fnd_api.g_exc_error THEN
1854 ROLLBACK TO save_bau_pvt;
1855 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1856 FND_MESSAGE.SET_TOKEN('ENTITY', 'IBY_FNDCPT_PAYER_ASSGN_INSTR_V');
1857 FND_MSG_PUB.ADD;
1858
1859 x_return_status := fnd_api.g_ret_sts_error;
1860
1861 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1862 p_count => x_msg_count,
1863 p_data => x_msg_data);
1864
1865 -- Debug info.
1866 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1867 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1868 p_msg_data=>x_msg_data,
1869 p_msg_type=>'ERROR',
1870 p_msg_level=>fnd_log.level_error);
1871 END IF;
1872 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1873 hz_utility_v2pub.debug(p_message=>'save_bank_acct_uses(-)',
1874 p_prefix=>l_debug_prefix,
1875 p_msg_level=>fnd_log.level_procedure);
1876 END IF;
1877
1878 WHEN fnd_api.g_exc_unexpected_error THEN
1879 ROLLBACK TO save_bau_pvt;
1880 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1881 FND_MESSAGE.SET_TOKEN('ENTITY', 'IBY_FNDCPT_PAYER_ASSGN_INSTR_V');
1882 FND_MSG_PUB.ADD;
1883
1884 x_return_status := fnd_api.g_ret_sts_unexp_error;
1885
1886 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1887 p_count => x_msg_count,
1888 p_data => x_msg_data);
1889
1890 -- Debug info.
1891 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1892 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1893 p_msg_data=>x_msg_data,
1894 p_msg_type=>'UNEXPECTED ERROR',
1895 p_msg_level=>fnd_log.level_error);
1896 END IF;
1897 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1898 hz_utility_v2pub.debug(p_message=>'save_bank_acct_uses(-)',
1899 p_prefix=>l_debug_prefix,
1900 p_msg_level=>fnd_log.level_procedure);
1901 END IF;
1902
1903 WHEN OTHERS THEN
1904 ROLLBACK TO save_bau_pvt;
1905 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1906 FND_MESSAGE.SET_TOKEN('ENTITY', 'IBY_FNDCPT_PAYER_ASSGN_INSTR_V');
1907 FND_MSG_PUB.ADD;
1908
1909 x_return_status := fnd_api.g_ret_sts_unexp_error;
1910
1911 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1912 fnd_message.set_token('ERROR' ,SQLERRM);
1913 fnd_msg_pub.add;
1914
1915 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1916 p_count => x_msg_count,
1917 p_data => x_msg_data);
1918
1919 -- Debug info.
1920 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1921 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1922 p_msg_data=>x_msg_data,
1923 p_msg_type=>'SQL ERROR',
1924 p_msg_level=>fnd_log.level_error);
1925 END IF;
1926 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1927 hz_utility_v2pub.debug(p_message=>'save_bank_acct_uses(-)',
1928 p_prefix=>l_debug_prefix,
1929 p_msg_level=>fnd_log.level_procedure);
1930 END IF;
1931 END save_bank_acct_uses;
1932
1933 -- PROCEDURE create_payment_method
1934 --
1935 -- DESCRIPTION
1936 -- Create payment method.
1937 --
1938 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1939 --
1940 -- ARGUMENTS
1941 -- IN:
1942 -- p_payment_method_obj Payment method object.
1943 -- p_ca_id Customer account Id.
1944 -- p_casu_id Customer account site use Id.
1945 -- OUT:
1946 -- x_return_status Return status after the call. The status can
1947 -- be fnd_api.g_ret_sts_success (success),
1948 -- fnd_api.g_ret_sts_error (error),
1949 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1950 -- x_msg_count Number of messages in message stack.
1951 -- x_msg_data Message text if x_msg_count is 1.
1952 --
1953 -- NOTES
1954 --
1955 -- MODIFICATION HISTORY
1956 --
1957 -- 14-DEC-2004 Arnold Ng Created.
1958
1959 PROCEDURE create_payment_method(
1960 p_payment_method_obj IN OUT NOCOPY HZ_PAYMENT_METHOD_OBJ,
1961 p_ca_id IN NUMBER,
1962 p_casu_id IN NUMBER,
1963 x_return_status OUT NOCOPY VARCHAR2,
1964 x_msg_count OUT NOCOPY NUMBER,
1965 x_msg_data OUT NOCOPY VARCHAR2
1966 ) IS
1967 l_debug_prefix VARCHAR2(30) := '';
1968 l_payment_method_rec HZ_PAYMENT_METHOD_PUB.PAYMENT_METHOD_REC_TYPE;
1969 l_pm_id NUMBER;
1970 BEGIN
1971 -- Standard start of API savepoint
1972 SAVEPOINT create_pm_pvt;
1973
1974 -- initialize API return status to success.
1975 x_return_status := FND_API.G_RET_STS_SUCCESS;
1976
1977 -- Debug info.
1978 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1979 hz_utility_v2pub.debug(p_message=>'create_payment_method(+)',
1980 p_prefix=>l_debug_prefix,
1981 p_msg_level=>fnd_log.level_procedure);
1982 END IF;
1983
1984 assign_payment_method_rec(
1985 p_payment_method_obj => p_payment_method_obj,
1986 p_cust_acct_id => p_ca_id,
1987 p_site_use_id => p_casu_id,
1988 px_payment_method_rec => l_payment_method_rec
1989 );
1990
1991 HZ_PAYMENT_METHOD_PUB.create_payment_method(
1992 p_payment_method_rec => l_payment_method_rec,
1993 x_cust_receipt_method_id => l_pm_id,
1994 x_return_status => x_return_status,
1995 x_msg_count => x_msg_count,
1996 x_msg_data => x_msg_data
1997 );
1998
1999 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2000 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2001 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_cust_acct_bo_pvt.create_payment_method, cust acct id: '||p_ca_id||' cust site use id: '||p_casu_id,
2002 p_prefix=>l_debug_prefix,
2003 p_msg_level=>fnd_log.level_procedure);
2004 END IF;
2005 RAISE FND_API.G_EXC_ERROR;
2006 END IF;
2007
2008 -- assign payment_method_id
2009 p_payment_method_obj.payment_method_id := l_pm_id;
2010
2011 -- Debug info.
2012 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2013 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2014 p_msg_data=>x_msg_data,
2015 p_msg_type=>'WARNING',
2016 p_msg_level=>fnd_log.level_exception);
2017 END IF;
2018 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2019 hz_utility_v2pub.debug(p_message=>'create_payment_method(-)',
2020 p_prefix=>l_debug_prefix,
2021 p_msg_level=>fnd_log.level_procedure);
2022 END IF;
2023 EXCEPTION
2024 WHEN fnd_api.g_exc_error THEN
2025 ROLLBACK TO create_pm_pvt;
2026 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2027 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2028 FND_MSG_PUB.ADD;
2029
2030 x_return_status := fnd_api.g_ret_sts_error;
2031
2032 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2033 p_count => x_msg_count,
2034 p_data => x_msg_data);
2035
2036 -- Debug info.
2037 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2038 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2039 p_msg_data=>x_msg_data,
2040 p_msg_type=>'ERROR',
2041 p_msg_level=>fnd_log.level_error);
2042 END IF;
2043 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2044 hz_utility_v2pub.debug(p_message=>'create_payment_method(-)',
2045 p_prefix=>l_debug_prefix,
2046 p_msg_level=>fnd_log.level_procedure);
2047 END IF;
2048
2049 WHEN fnd_api.g_exc_unexpected_error THEN
2050 ROLLBACK TO create_pm_pvt;
2051 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2052 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2053 FND_MSG_PUB.ADD;
2054
2055 x_return_status := fnd_api.g_ret_sts_unexp_error;
2056
2057 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2058 p_count => x_msg_count,
2059 p_data => x_msg_data);
2060
2061 -- Debug info.
2062 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2063 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2064 p_msg_data=>x_msg_data,
2065 p_msg_type=>'UNEXPECTED ERROR',
2066 p_msg_level=>fnd_log.level_error);
2067 END IF;
2068 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2069 hz_utility_v2pub.debug(p_message=>'create_payment_method(-)',
2070 p_prefix=>l_debug_prefix,
2071 p_msg_level=>fnd_log.level_procedure);
2072 END IF;
2073
2074 WHEN OTHERS THEN
2075 ROLLBACK TO create_pm_pvt;
2076 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2077 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2078 FND_MSG_PUB.ADD;
2079
2080 x_return_status := fnd_api.g_ret_sts_unexp_error;
2081
2082 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2083 fnd_message.set_token('ERROR' ,SQLERRM);
2084 fnd_msg_pub.add;
2085
2086 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2087 p_count => x_msg_count,
2088 p_data => x_msg_data);
2089
2090 -- Debug info.
2091 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2092 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2093 p_msg_data=>x_msg_data,
2094 p_msg_type=>'SQL ERROR',
2095 p_msg_level=>fnd_log.level_error);
2096 END IF;
2097 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2098 hz_utility_v2pub.debug(p_message=>'create_payment_method(-)',
2099 p_prefix=>l_debug_prefix,
2100 p_msg_level=>fnd_log.level_procedure);
2101 END IF;
2102 END create_payment_method;
2103
2104 -- PROCEDURE save_payment_method
2105 --
2106 -- DESCRIPTION
2107 -- Create or update payment method.
2108 --
2109 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2110 --
2111 -- ARGUMENTS
2112 -- IN:
2113 -- p_payment_method_obj Payment method object.
2114 -- p_ca_id Customer account Id.
2115 -- p_casu_id Customer account site use Id.
2116 -- OUT:
2117 -- x_return_status Return status after the call. The status can
2118 -- be fnd_api.g_ret_sts_success (success),
2119 -- fnd_api.g_ret_sts_error (error),
2120 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2121 -- x_msg_count Number of messages in message stack.
2122 -- x_msg_data Message text if x_msg_count is 1.
2123 --
2124 -- NOTES
2125 --
2126 -- MODIFICATION HISTORY
2127 --
2128 -- 14-DEC-2004 Arnold Ng Created.
2129
2130 PROCEDURE save_payment_method(
2131 p_payment_method_obj IN OUT NOCOPY HZ_PAYMENT_METHOD_OBJ,
2132 p_ca_id IN NUMBER,
2133 p_casu_id IN NUMBER,
2134 x_return_status OUT NOCOPY VARCHAR2,
2135 x_msg_count OUT NOCOPY NUMBER,
2136 x_msg_data OUT NOCOPY VARCHAR2
2137 ) IS
2138 l_debug_prefix VARCHAR2(30) := '';
2139 l_payment_method_rec HZ_PAYMENT_METHOD_PUB.PAYMENT_METHOD_REC_TYPE;
2140 l_lud DATE;
2141 l_pm_id NUMBER;
2142 BEGIN
2143 -- Standard start of API savepoint
2144 SAVEPOINT save_pm_pvt;
2145
2146 -- initialize API return status to success.
2147 x_return_status := FND_API.G_RET_STS_SUCCESS;
2148
2149 -- Debug info.
2150 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2151 hz_utility_v2pub.debug(p_message=>'save_payment_method(+)',
2152 p_prefix=>l_debug_prefix,
2153 p_msg_level=>fnd_log.level_procedure);
2154 END IF;
2155
2156 assign_payment_method_rec(
2157 p_payment_method_obj => p_payment_method_obj,
2158 p_cust_acct_id => p_ca_id,
2159 p_site_use_id => p_casu_id,
2160 px_payment_method_rec => l_payment_method_rec
2161 );
2162
2163 hz_registry_validate_bo_pvt.check_payment_method_op(
2164 p_cust_receipt_method_id => l_payment_method_rec.cust_receipt_method_id,
2165 x_last_update_date => l_lud
2166 );
2167
2168 IF(l_lud IS NULL) THEN
2169 HZ_PAYMENT_METHOD_PUB.create_payment_method(
2170 p_payment_method_rec => l_payment_method_rec,
2171 x_cust_receipt_method_id => l_pm_id,
2172 x_return_status => x_return_status,
2173 x_msg_count => x_msg_count,
2174 x_msg_data => x_msg_data
2175 );
2176
2177 -- assign payment_method_id
2178 p_payment_method_obj.payment_method_id := l_pm_id;
2179 ELSE
2180 HZ_PAYMENT_METHOD_PUB.update_payment_method(
2181 p_payment_method_rec => l_payment_method_rec,
2182 px_last_update_date => l_lud,
2183 x_return_status => x_return_status,
2184 x_msg_count => x_msg_count,
2185 x_msg_data => x_msg_data
2186 );
2187
2188 -- assign payment_method_id
2189 p_payment_method_obj.payment_method_id := l_payment_method_rec.cust_receipt_method_id;
2190 END IF;
2191
2192 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2193 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2194 hz_utility_v2pub.debug(p_message=>'Error occurred at hz_cust_acct_bo_pvt.save_payment_method, cust acct id: '||p_ca_id||' cust site use id: '||p_casu_id,
2195 p_prefix=>l_debug_prefix,
2196 p_msg_level=>fnd_log.level_procedure);
2197 END IF;
2198 RAISE FND_API.G_EXC_ERROR;
2199 END IF;
2200
2201 -- Debug info.
2202 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2203 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2204 p_msg_data=>x_msg_data,
2205 p_msg_type=>'WARNING',
2206 p_msg_level=>fnd_log.level_exception);
2207 END IF;
2208 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2209 hz_utility_v2pub.debug(p_message=>'save_payment_method(-)',
2210 p_prefix=>l_debug_prefix,
2211 p_msg_level=>fnd_log.level_procedure);
2212 END IF;
2213 EXCEPTION
2214 WHEN fnd_api.g_exc_error THEN
2215 ROLLBACK TO save_pm_pvt;
2216 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2217 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2218 FND_MSG_PUB.ADD;
2219
2220 x_return_status := fnd_api.g_ret_sts_error;
2221
2222 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2223 p_count => x_msg_count,
2224 p_data => x_msg_data);
2225
2226 -- Debug info.
2227 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2228 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2229 p_msg_data=>x_msg_data,
2230 p_msg_type=>'ERROR',
2231 p_msg_level=>fnd_log.level_error);
2232 END IF;
2233 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2234 hz_utility_v2pub.debug(p_message=>'save_payment_method(-)',
2235 p_prefix=>l_debug_prefix,
2236 p_msg_level=>fnd_log.level_procedure);
2237 END IF;
2238
2239 WHEN fnd_api.g_exc_unexpected_error THEN
2240 ROLLBACK TO save_pm_pvt;
2241 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2242 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2243 FND_MSG_PUB.ADD;
2244
2245 x_return_status := fnd_api.g_ret_sts_unexp_error;
2246
2247 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2248 p_count => x_msg_count,
2249 p_data => x_msg_data);
2250
2251 -- Debug info.
2252 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2253 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2254 p_msg_data=>x_msg_data,
2255 p_msg_type=>'UNEXPECTED ERROR',
2256 p_msg_level=>fnd_log.level_error);
2257 END IF;
2258 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2259 hz_utility_v2pub.debug(p_message=>'save_payment_method(-)',
2260 p_prefix=>l_debug_prefix,
2261 p_msg_level=>fnd_log.level_procedure);
2262 END IF;
2263
2264 WHEN OTHERS THEN
2265 ROLLBACK TO save_pm_pvt;
2266 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2267 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2268 FND_MSG_PUB.ADD;
2269
2270 x_return_status := fnd_api.g_ret_sts_unexp_error;
2271
2272 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2273 fnd_message.set_token('ERROR' ,SQLERRM);
2274 fnd_msg_pub.add;
2275
2276 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2277 p_count => x_msg_count,
2278 p_data => x_msg_data);
2279
2280 -- Debug info.
2281 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2282 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2283 p_msg_data=>x_msg_data,
2284 p_msg_type=>'SQL ERROR',
2285 p_msg_level=>fnd_log.level_error);
2286 END IF;
2287 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2288 hz_utility_v2pub.debug(p_message=>'save_payment_method(-)',
2289 p_prefix=>l_debug_prefix,
2290 p_msg_level=>fnd_log.level_procedure);
2291 END IF;
2292 END save_payment_method;
2293
2294 -- PROCEDURE save_cust_accts
2295 --
2296 -- DESCRIPTION
2297 -- Create or update customer accounts.
2298 --
2299 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2300 --
2301 -- ARGUMENTS
2302 -- IN:
2303 -- p_ca_objs List of customer account objects.
2304 -- p_create_update_flag Create or update flag.
2305 -- p_parent_id Parent Id.
2306 -- p_parent_os Parent original system.
2307 -- p_parent_osr Parent original system reference.
2308 -- p_parent_obj_type Parent object type.
2309 -- OUT:
2310 -- x_return_status Return status after the call. The status can
2311 -- be fnd_api.g_ret_sts_success (success),
2312 -- fnd_api.g_ret_sts_error (error),
2313 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2314 -- x_msg_count Number of messages in message stack.
2315 -- x_msg_data Message text if x_msg_count is 1.
2316 --
2317 -- NOTES
2318 --
2319 -- MODIFICATION HISTORY
2320 --
2321 -- 14-DEC-2004 Arnold Ng Created.
2322
2323 PROCEDURE save_cust_accts(
2324 p_ca_objs IN OUT NOCOPY HZ_CUST_ACCT_BO_TBL,
2325 p_create_update_flag IN VARCHAR2,
2326 p_obj_source IN VARCHAR2 := null,
2327 x_return_status OUT NOCOPY VARCHAR2,
2328 x_msg_count OUT NOCOPY NUMBER,
2329 x_msg_data OUT NOCOPY VARCHAR2,
2330 p_parent_id IN NUMBER,
2331 p_parent_os IN VARCHAR2,
2332 p_parent_osr IN VARCHAR2,
2333 p_parent_obj_type IN VARCHAR2
2334 ) IS
2335 l_debug_prefix VARCHAR2(30) := '';
2336 l_ca_id NUMBER;
2337 l_ca_os VARCHAR2(30);
2338 l_ca_osr VARCHAR2(255);
2339 l_parent_id NUMBER;
2340 l_parent_os VARCHAR2(30);
2341 l_parent_osr VARCHAR2(255);
2342 l_parent_obj_type VARCHAR2(30);
2343 l_cbm VARCHAR2(30);
2344 BEGIN
2345 -- initialize API return status to success
2346 x_return_status := FND_API.G_RET_STS_SUCCESS;
2347
2348 -- Debug info.
2349 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2350 hz_utility_v2pub.debug(p_message=>'save_cust_accts(+)',
2351 p_prefix=>l_debug_prefix,
2352 p_msg_level=>fnd_log.level_procedure);
2353 END IF;
2354
2355 l_parent_id := p_parent_id;
2356 l_parent_os := p_parent_os;
2357 l_parent_osr := p_parent_osr;
2358 l_parent_obj_type := p_parent_obj_type;
2359
2360 l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
2361
2362 IF(p_create_update_flag = 'C') THEN
2363 -- Create cust accounts
2364 FOR i IN 1..p_ca_objs.COUNT LOOP
2365 HZ_CUST_ACCT_BO_PUB.do_create_cust_acct_bo(
2366 p_validate_bo_flag => fnd_api.g_false,
2367 p_cust_acct_obj => p_ca_objs(i),
2368 p_created_by_module => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
2369 p_obj_source => p_obj_source,
2370 x_return_status => x_return_status,
2371 x_msg_count => x_msg_count,
2372 x_msg_data => x_msg_data,
2373 x_cust_acct_id => l_ca_id,
2374 x_cust_acct_os => l_ca_os,
2375 x_cust_acct_osr => l_ca_osr,
2376 px_parent_id => l_parent_id,
2377 px_parent_os => l_parent_os,
2378 px_parent_osr => l_parent_osr,
2379 px_parent_obj_type => l_parent_obj_type
2380 );
2381
2382 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2383 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2384 hz_utility_v2pub.debug(p_message=>'Create error occurred at hz_cust_acct_bo_pvt.save_cust_accts, parent id: '||l_parent_id||' '||l_parent_os||'-'||l_parent_osr,
2385 p_prefix=>l_debug_prefix,
2386 p_msg_level=>fnd_log.level_procedure);
2387 END IF;
2388 RAISE FND_API.G_EXC_ERROR;
2389 END IF;
2390
2391 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2392 END LOOP;
2393 ELSE
2394 -- Create/update cust accounts
2395 FOR i IN 1..p_ca_objs.COUNT LOOP
2396 HZ_CUST_ACCT_BO_PUB.do_save_cust_acct_bo(
2397 p_validate_bo_flag => fnd_api.g_false,
2398 p_cust_acct_obj => p_ca_objs(i),
2399 p_created_by_module => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
2400 p_obj_source => p_obj_source,
2401 x_return_status => x_return_status,
2402 x_msg_count => x_msg_count,
2403 x_msg_data => x_msg_data,
2404 x_cust_acct_id => l_ca_id,
2405 x_cust_acct_os => l_ca_os,
2406 x_cust_acct_osr => l_ca_osr,
2407 px_parent_id => l_parent_id,
2408 px_parent_os => l_parent_os,
2409 px_parent_osr => l_parent_osr,
2410 px_parent_obj_type => l_parent_obj_type
2411 );
2412
2413 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2414 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2415 hz_utility_v2pub.debug(p_message=>'Save error occurred at hz_cust_acct_bo_pvt.save_cust_accts, parent id: '||l_parent_id||' '||l_parent_os||'-'||l_parent_osr,
2416 p_prefix=>l_debug_prefix,
2417 p_msg_level=>fnd_log.level_procedure);
2418 END IF;
2419 RAISE FND_API.G_EXC_ERROR;
2420 END IF;
2421
2422 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2423 END LOOP;
2424 END IF;
2425
2426 -- Debug info.
2427 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2428 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2429 p_msg_data=>x_msg_data,
2430 p_msg_type=>'WARNING',
2431 p_msg_level=>fnd_log.level_exception);
2432 END IF;
2433 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2434 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2435 p_prefix=>l_debug_prefix,
2436 p_msg_level=>fnd_log.level_procedure);
2437 END IF;
2438 EXCEPTION
2439 WHEN fnd_api.g_exc_error THEN
2440 x_return_status := fnd_api.g_ret_sts_error;
2441
2442 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2443 p_count => x_msg_count,
2444 p_data => x_msg_data);
2445
2446 -- Debug info.
2447 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2448 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2449 p_msg_data=>x_msg_data,
2450 p_msg_type=>'ERROR',
2451 p_msg_level=>fnd_log.level_error);
2452 END IF;
2453 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2454 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2455 p_prefix=>l_debug_prefix,
2456 p_msg_level=>fnd_log.level_procedure);
2457 END IF;
2458 WHEN fnd_api.g_exc_unexpected_error THEN
2459 x_return_status := fnd_api.g_ret_sts_unexp_error;
2460
2461 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2462 p_count => x_msg_count,
2463 p_data => x_msg_data);
2464
2465 -- Debug info.
2466 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2467 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2468 p_msg_data=>x_msg_data,
2469 p_msg_type=>'UNEXPECTED ERROR',
2470 p_msg_level=>fnd_log.level_error);
2471 END IF;
2472 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2473 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2474 p_prefix=>l_debug_prefix,
2475 p_msg_level=>fnd_log.level_procedure);
2476 END IF;
2477 WHEN OTHERS THEN
2478 x_return_status := fnd_api.g_ret_sts_unexp_error;
2479
2480 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2481 fnd_message.set_token('ERROR' ,SQLERRM);
2482 fnd_msg_pub.add;
2483
2484 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2485 p_count => x_msg_count,
2486 p_data => x_msg_data);
2487
2488 -- Debug info.
2489 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2490 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2491 p_msg_data=>x_msg_data,
2492 p_msg_type=>'SQL ERROR',
2493 p_msg_level=>fnd_log.level_error);
2494 END IF;
2495 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2496 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2497 p_prefix=>l_debug_prefix,
2498 p_msg_level=>fnd_log.level_procedure);
2499 END IF;
2500 END save_cust_accts;
2501
2502 -- PROCEDURE create_payment_methods
2503 --
2504 -- DESCRIPTION
2505 -- Create payment methods.
2506 --
2507 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2508 --
2509 -- ARGUMENTS
2510 -- IN:
2511 -- p_payment_method_objs Payment method objects.
2512 -- p_ca_id Customer account Id.
2513 -- p_casu_id Customer account site use Id.
2514 -- OUT:
2515 -- x_return_status Return status after the call. The status can
2516 -- be fnd_api.g_ret_sts_success (success),
2517 -- fnd_api.g_ret_sts_error (error),
2518 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2519 -- x_msg_count Number of messages in message stack.
2520 -- x_msg_data Message text if x_msg_count is 1.
2521 --
2522 -- NOTES
2523 --
2524 -- MODIFICATION HISTORY
2525 --
2526 -- 1-FEB-2008 vsegu Created.
2527
2528 PROCEDURE create_payment_methods(
2529 p_payment_method_objs IN OUT NOCOPY HZ_PAYMENT_METHOD_OBJ_TBL,
2530 p_ca_id IN NUMBER,
2531 p_casu_id IN NUMBER,
2532 x_return_status OUT NOCOPY VARCHAR2,
2533 x_msg_count OUT NOCOPY NUMBER,
2534 x_msg_data OUT NOCOPY VARCHAR2
2535 ) IS
2536 l_debug_prefix VARCHAR2(30) := '';
2537 BEGIN
2538 -- Standard start of API savepoint
2539 SAVEPOINT create_pms_v2_pvt;
2540
2541 -- initialize API return status to success.
2542 x_return_status := FND_API.G_RET_STS_SUCCESS;
2543
2544 -- Debug info.
2545 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2546 hz_utility_v2pub.debug(p_message=>'create_payment_method(+)',
2547 p_prefix=>l_debug_prefix,
2548 p_msg_level=>fnd_log.level_procedure);
2549 END IF;
2550
2551 FOR i IN 1..p_payment_method_objs.COUNT LOOP
2552
2553 HZ_CUST_ACCT_BO_PVT.create_payment_method(
2554 p_payment_method_obj => p_payment_method_objs(i),
2555 p_ca_id => p_ca_id,
2556 p_casu_id => p_casu_id,
2557 x_return_status => x_return_status,
2558 x_msg_count => x_msg_count,
2559 x_msg_data => x_msg_data
2560 );
2561
2562 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2563 RAISE FND_API.G_EXC_ERROR;
2564 END IF;
2565 END LOOP;
2566
2567
2568 EXCEPTION
2569 WHEN fnd_api.g_exc_error THEN
2570 ROLLBACK TO create_pms_v2_pvt;
2571
2572 x_return_status := fnd_api.g_ret_sts_error;
2573
2574 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2575 p_count => x_msg_count,
2576 p_data => x_msg_data);
2577
2578 -- Debug info.
2579 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2580 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2581 p_msg_data=>x_msg_data,
2582 p_msg_type=>'ERROR',
2583 p_msg_level=>fnd_log.level_error);
2584 END IF;
2585 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2586 hz_utility_v2pub.debug(p_message=>'create_payment_methods(-)',
2587 p_prefix=>l_debug_prefix,
2588 p_msg_level=>fnd_log.level_procedure);
2589 END IF;
2590
2591 WHEN fnd_api.g_exc_unexpected_error THEN
2592 ROLLBACK TO create_pms_v2_pvt;
2593
2594 x_return_status := fnd_api.g_ret_sts_unexp_error;
2595
2596 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2597 p_count => x_msg_count,
2598 p_data => x_msg_data);
2599
2600 -- Debug info.
2601 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2602 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2603 p_msg_data=>x_msg_data,
2604 p_msg_type=>'UNEXPECTED ERROR',
2605 p_msg_level=>fnd_log.level_error);
2606 END IF;
2607 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2608 hz_utility_v2pub.debug(p_message=>'create_payment_methods(-)',
2609 p_prefix=>l_debug_prefix,
2610 p_msg_level=>fnd_log.level_procedure);
2611 END IF;
2612
2613 WHEN OTHERS THEN
2614 ROLLBACK TO create_pms_v2_pvt;
2615
2616 x_return_status := fnd_api.g_ret_sts_unexp_error;
2617
2618 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2619 fnd_message.set_token('ERROR' ,SQLERRM);
2620 fnd_msg_pub.add;
2621
2622 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2623 p_count => x_msg_count,
2624 p_data => x_msg_data);
2625
2626 -- Debug info.
2627 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2628 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2629 p_msg_data=>x_msg_data,
2630 p_msg_type=>'SQL ERROR',
2631 p_msg_level=>fnd_log.level_error);
2632 END IF;
2633 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2634 hz_utility_v2pub.debug(p_message=>'create_payment_methods(-)',
2635 p_prefix=>l_debug_prefix,
2636 p_msg_level=>fnd_log.level_procedure);
2637 END IF;
2638 END create_payment_methods;
2639
2640 -- PROCEDURE save_payment_methods
2641 --
2642 -- DESCRIPTION
2643 -- Create or update payment methods.
2644 --
2645 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2646 --
2647 -- ARGUMENTS
2648 -- IN:
2649 -- p_payment_method_objs Payment method object.
2650 -- p_ca_id Customer account Id.
2651 -- p_casu_id Customer account site use Id.
2652 -- OUT:
2653 -- x_return_status Return status after the call. The status can
2654 -- be fnd_api.g_ret_sts_success (success),
2655 -- fnd_api.g_ret_sts_error (error),
2656 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2657 -- x_msg_count Number of messages in message stack.
2658 -- x_msg_data Message text if x_msg_count is 1.
2659 --
2660 -- NOTES
2661 --
2662 -- MODIFICATION HISTORY
2663 --
2664 -- 1-FEB-2008 vsegu Created.
2665
2666 PROCEDURE save_payment_methods(
2667 p_payment_method_objs IN OUT NOCOPY HZ_PAYMENT_METHOD_OBJ_TBL,
2668 p_ca_id IN NUMBER,
2669 p_casu_id IN NUMBER,
2670 x_return_status OUT NOCOPY VARCHAR2,
2671 x_msg_count OUT NOCOPY NUMBER,
2672 x_msg_data OUT NOCOPY VARCHAR2
2673 ) IS
2674 l_debug_prefix VARCHAR2(30) := '';
2675 BEGIN
2676 -- Standard start of API savepoint
2677 SAVEPOINT save_pm_v2_pvt;
2678
2679 -- initialize API return status to success.
2680 x_return_status := FND_API.G_RET_STS_SUCCESS;
2681
2682 -- Debug info.
2683 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2684 hz_utility_v2pub.debug(p_message=>'create_payment_method(+)',
2685 p_prefix=>l_debug_prefix,
2686 p_msg_level=>fnd_log.level_procedure);
2687 END IF;
2688
2689 FOR i IN 1..p_payment_method_objs.COUNT LOOP
2690
2691 HZ_CUST_ACCT_BO_PVT.save_payment_method(
2692 p_payment_method_obj => p_payment_method_objs(i),
2693 p_ca_id => p_ca_id,
2694 p_casu_id => p_casu_id,
2695 x_return_status => x_return_status,
2696 x_msg_count => x_msg_count,
2697 x_msg_data => x_msg_data
2698 );
2699
2700 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2701 RAISE FND_API.G_EXC_ERROR;
2702 END IF;
2703 END LOOP;
2704
2705
2706 EXCEPTION
2707 WHEN fnd_api.g_exc_error THEN
2708 ROLLBACK TO save_pm_v2_pvt;
2709 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2710 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2711 FND_MSG_PUB.ADD;
2712
2713 x_return_status := fnd_api.g_ret_sts_error;
2714
2715 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2716 p_count => x_msg_count,
2717 p_data => x_msg_data);
2718
2719 -- Debug info.
2720 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2721 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2722 p_msg_data=>x_msg_data,
2723 p_msg_type=>'ERROR',
2724 p_msg_level=>fnd_log.level_error);
2725 END IF;
2726 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2727 hz_utility_v2pub.debug(p_message=>'save_payment_methods(-)',
2728 p_prefix=>l_debug_prefix,
2729 p_msg_level=>fnd_log.level_procedure);
2730 END IF;
2731
2732 WHEN fnd_api.g_exc_unexpected_error THEN
2733 ROLLBACK TO save_pm_v2_pvt;
2734 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2735 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2736 FND_MSG_PUB.ADD;
2737
2738 x_return_status := fnd_api.g_ret_sts_unexp_error;
2739
2740 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2741 p_count => x_msg_count,
2742 p_data => x_msg_data);
2743
2744 -- Debug info.
2745 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2746 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2747 p_msg_data=>x_msg_data,
2748 p_msg_type=>'UNEXPECTED ERROR',
2749 p_msg_level=>fnd_log.level_error);
2750 END IF;
2751 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2752 hz_utility_v2pub.debug(p_message=>'save_payment_methods(-)',
2753 p_prefix=>l_debug_prefix,
2754 p_msg_level=>fnd_log.level_procedure);
2755 END IF;
2756
2757 WHEN OTHERS THEN
2758 ROLLBACK TO save_pm_v2_pvt;
2759 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2760 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2761 FND_MSG_PUB.ADD;
2762
2763 x_return_status := fnd_api.g_ret_sts_unexp_error;
2764
2765 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2766 fnd_message.set_token('ERROR' ,SQLERRM);
2767 fnd_msg_pub.add;
2768
2769 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2770 p_count => x_msg_count,
2771 p_data => x_msg_data);
2772
2773 -- Debug info.
2774 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2775 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2776 p_msg_data=>x_msg_data,
2777 p_msg_type=>'SQL ERROR',
2778 p_msg_level=>fnd_log.level_error);
2779 END IF;
2780 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2781 hz_utility_v2pub.debug(p_message=>'save_payment_methods(-)',
2782 p_prefix=>l_debug_prefix,
2783 p_msg_level=>fnd_log.level_procedure);
2784 END IF;
2785 END save_payment_methods;
2786
2787 -- PROCEDURE save_cust_accts
2788 --
2789 -- DESCRIPTION
2790 -- Create or update customer accounts.
2791 --
2792 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2793 --
2794 -- ARGUMENTS
2795 -- IN:
2796 -- p_ca_v2_objs List of customer account objects.
2797 -- p_create_update_flag Create or update flag.
2798 -- p_parent_id Parent Id.
2799 -- p_parent_os Parent original system.
2800 -- p_parent_osr Parent original system reference.
2801 -- p_parent_obj_type Parent object type.
2802 -- OUT:
2803 -- x_return_status Return status after the call. The status can
2804 -- be fnd_api.g_ret_sts_success (success),
2805 -- fnd_api.g_ret_sts_error (error),
2806 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2807 -- x_msg_count Number of messages in message stack.
2808 -- x_msg_data Message text if x_msg_count is 1.
2809 --
2810 -- NOTES
2811 --
2812 -- MODIFICATION HISTORY
2813 --
2814 -- 1-FEB-2008 vsegu Created.
2815
2816 PROCEDURE save_cust_accts(
2817 p_ca_v2_objs IN OUT NOCOPY HZ_CUST_ACCT_V2_BO_TBL,
2818 p_create_update_flag IN VARCHAR2,
2819 p_obj_source IN VARCHAR2 := null,
2820 x_return_status OUT NOCOPY VARCHAR2,
2821 x_msg_count OUT NOCOPY NUMBER,
2822 x_msg_data OUT NOCOPY VARCHAR2,
2823 p_parent_id IN NUMBER,
2824 p_parent_os IN VARCHAR2,
2825 p_parent_osr IN VARCHAR2,
2826 p_parent_obj_type IN VARCHAR2
2827 ) IS
2828 l_debug_prefix VARCHAR2(30) := '';
2829 l_ca_id NUMBER;
2830 l_ca_os VARCHAR2(30);
2831 l_ca_osr VARCHAR2(255);
2832 l_parent_id NUMBER;
2833 l_parent_os VARCHAR2(30);
2834 l_parent_osr VARCHAR2(255);
2835 l_parent_obj_type VARCHAR2(30);
2836 l_cbm VARCHAR2(30);
2837 BEGIN
2838 -- initialize API return status to success
2839 x_return_status := FND_API.G_RET_STS_SUCCESS;
2840
2841 -- Debug info.
2842 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2843 hz_utility_v2pub.debug(p_message=>'save_cust_accts(+)',
2844 p_prefix=>l_debug_prefix,
2845 p_msg_level=>fnd_log.level_procedure);
2846 END IF;
2847
2848 l_parent_id := p_parent_id;
2849 l_parent_os := p_parent_os;
2850 l_parent_osr := p_parent_osr;
2851 l_parent_obj_type := p_parent_obj_type;
2852
2853 l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
2854
2855 IF(p_create_update_flag = 'C') THEN
2856 -- Create cust accounts
2857 FOR i IN 1..p_ca_v2_objs.COUNT LOOP
2858 HZ_CUST_ACCT_BO_PUB.do_create_cust_acct_v2_bo(
2859 p_validate_bo_flag => fnd_api.g_false,
2860 p_cust_acct_v2_obj => p_ca_v2_objs(i),
2861 p_created_by_module => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
2862 p_obj_source => p_obj_source,
2863 x_return_status => x_return_status,
2864 x_msg_count => x_msg_count,
2865 x_msg_data => x_msg_data,
2866 x_cust_acct_id => l_ca_id,
2867 x_cust_acct_os => l_ca_os,
2868 x_cust_acct_osr => l_ca_osr,
2869 px_parent_id => l_parent_id,
2870 px_parent_os => l_parent_os,
2871 px_parent_osr => l_parent_osr,
2872 px_parent_obj_type => l_parent_obj_type
2873 );
2874
2875 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2876 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2877 hz_utility_v2pub.debug(p_message=>'Create error occurred at hz_cust_acct_bo_pvt.save_cust_accts, parent id: '||l_parent_id||' '||l_parent_os||'-'||l_parent_osr,
2878 p_prefix=>l_debug_prefix,
2879 p_msg_level=>fnd_log.level_procedure);
2880 END IF;
2881 RAISE FND_API.G_EXC_ERROR;
2882 END IF;
2883
2884 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2885 END LOOP;
2886 ELSE
2887 -- Create/update cust accounts
2888 FOR i IN 1..p_ca_v2_objs.COUNT LOOP
2889 HZ_CUST_ACCT_BO_PUB.do_save_cust_acct_v2_bo(
2890 p_validate_bo_flag => fnd_api.g_false,
2891 p_cust_acct_v2_obj => p_ca_v2_objs(i),
2892 p_created_by_module => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
2893 p_obj_source => p_obj_source,
2894 x_return_status => x_return_status,
2895 x_msg_count => x_msg_count,
2896 x_msg_data => x_msg_data,
2897 x_cust_acct_id => l_ca_id,
2898 x_cust_acct_os => l_ca_os,
2899 x_cust_acct_osr => l_ca_osr,
2900 px_parent_id => l_parent_id,
2901 px_parent_os => l_parent_os,
2902 px_parent_osr => l_parent_osr,
2903 px_parent_obj_type => l_parent_obj_type
2904 );
2905
2906 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2907 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2908 hz_utility_v2pub.debug(p_message=>'Save error occurred at hz_cust_acct_bo_pvt.save_cust_accts, parent id: '||l_parent_id||' '||l_parent_os||'-'||l_parent_osr,
2909 p_prefix=>l_debug_prefix,
2910 p_msg_level=>fnd_log.level_procedure);
2911 END IF;
2912 RAISE FND_API.G_EXC_ERROR;
2913 END IF;
2914
2915 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2916 END LOOP;
2917 END IF;
2918
2919 -- Debug info.
2920 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2921 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2922 p_msg_data=>x_msg_data,
2923 p_msg_type=>'WARNING',
2924 p_msg_level=>fnd_log.level_exception);
2925 END IF;
2926 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2927 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2928 p_prefix=>l_debug_prefix,
2929 p_msg_level=>fnd_log.level_procedure);
2930 END IF;
2931 EXCEPTION
2932 WHEN fnd_api.g_exc_error THEN
2933 x_return_status := fnd_api.g_ret_sts_error;
2934
2935 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2936 p_count => x_msg_count,
2937 p_data => x_msg_data);
2938
2939 -- Debug info.
2940 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2941 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2942 p_msg_data=>x_msg_data,
2943 p_msg_type=>'ERROR',
2944 p_msg_level=>fnd_log.level_error);
2945 END IF;
2946 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2947 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2948 p_prefix=>l_debug_prefix,
2949 p_msg_level=>fnd_log.level_procedure);
2950 END IF;
2951 WHEN fnd_api.g_exc_unexpected_error THEN
2952 x_return_status := fnd_api.g_ret_sts_unexp_error;
2953
2954 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2955 p_count => x_msg_count,
2956 p_data => x_msg_data);
2957
2958 -- Debug info.
2959 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2960 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2961 p_msg_data=>x_msg_data,
2962 p_msg_type=>'UNEXPECTED ERROR',
2963 p_msg_level=>fnd_log.level_error);
2964 END IF;
2965 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2966 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2967 p_prefix=>l_debug_prefix,
2968 p_msg_level=>fnd_log.level_procedure);
2969 END IF;
2970 WHEN OTHERS THEN
2971 x_return_status := fnd_api.g_ret_sts_unexp_error;
2972
2973 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2974 fnd_message.set_token('ERROR' ,SQLERRM);
2975 fnd_msg_pub.add;
2976
2977 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2978 p_count => x_msg_count,
2979 p_data => x_msg_data);
2980
2981 -- Debug info.
2982 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2983 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2984 p_msg_data=>x_msg_data,
2985 p_msg_type=>'SQL ERROR',
2986 p_msg_level=>fnd_log.level_error);
2987 END IF;
2988 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2989 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2990 p_prefix=>l_debug_prefix,
2991 p_msg_level=>fnd_log.level_procedure);
2992 END IF;
2993 END save_cust_accts;
2994
2995
2996 END hz_cust_acct_bo_pvt;