[Home] [Help]
Skip to content
PACKAGE BODY: APPS.HZ_CUST_ACCT_BO_PVT
Source
1 PACKAGE BODY hz_cust_acct_bo_pvt AS
2 /*$Header: ARHBCAVB.pls 120.12 2008/02/07 14:15:45 vsegu 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;
320 px_cust_profile_amt_rec.global_attribute16 := p_cust_profile_amt_obj.global_attribute16;
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;
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;
408 px_cust_profile_rec.autocash_hierarchy_id :=p_cust_profile_obj.autocash_hierarchy_id;
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;
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;
466 px_cust_profile_rec.global_attribute19 :=p_cust_profile_obj.global_attribute19;
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;
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;
552
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;
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,
672 WHEN fnd_api.g_exc_unexpected_error THEN
669 p_msg_level=>fnd_log.level_procedure);
670 END IF;
671
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);
794 -- and/or site use id
791 END IF;
792
793 -- check if user pass in cust profile id but with different cust account 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);
912 ROLLBACK TO update_cp_pvt;
909 END IF;
910
911 WHEN OTHERS THEN
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;
1035 p_msg_level=>fnd_log.level_procedure);
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,
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,
1155 l_debug_prefix VARCHAR2(30) := '';
1152 x_msg_count OUT NOCOPY NUMBER,
1153 x_msg_data OUT NOCOPY VARCHAR2
1154 )IS
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.
1271 p_msg_type=>'ERROR',
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,
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
1392 l_rca_osr := p_car_objs(i).related_cust_acct_osr;
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;
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,
1502 WHEN OTHERS THEN
1499 p_msg_level=>fnd_log.level_procedure);
1500 END IF;
1501
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 x_object_version_number => l_ovn
1617 );
1618
1619 IF(l_ovn IS NULL) THEN
1620 HZ_CUST_ACCOUNT_V2PUB.create_cust_acct_relate(
1621 p_cust_acct_relate_rec => l_car_rec,
1622 x_return_status => x_return_status,
1626 ELSE
1623 x_msg_count => x_msg_count,
1624 x_msg_data => x_msg_data
1625 );
1627 -- clean up created_by_module for update
1628 l_car_rec.created_by_module := NULL;
1629 HZ_CUST_ACCOUNT_V2PUB.update_cust_acct_relate(
1630 p_cust_acct_relate_rec => l_car_rec,
1631 p_object_version_number => l_ovn,
1632 x_return_status => x_return_status,
1633 x_msg_count => x_msg_count,
1634 x_msg_data => x_msg_data
1635 );
1636 END IF;
1637
1638 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1639 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1640 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,
1641 p_prefix=>l_debug_prefix,
1642 p_msg_level=>fnd_log.level_procedure);
1643 END IF;
1644 RAISE FND_API.G_EXC_ERROR;
1645 END IF;
1646 ELSE
1647 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1648 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,
1649 p_prefix=>l_debug_prefix,
1650 p_msg_level=>fnd_log.level_procedure);
1651 END IF;
1652 RAISE FND_API.G_EXC_ERROR;
1653 END IF;
1654 END LOOP;
1655
1656 -- Debug info.
1657 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1658 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1659 p_msg_data=>x_msg_data,
1660 p_msg_type=>'WARNING',
1661 p_msg_level=>fnd_log.level_exception);
1662 END IF;
1663 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1664 hz_utility_v2pub.debug(p_message=>'save_cust_acct_relates(-)',
1665 p_prefix=>l_debug_prefix,
1666 p_msg_level=>fnd_log.level_procedure);
1667 END IF;
1668 EXCEPTION
1669 WHEN fnd_api.g_exc_error THEN
1670 ROLLBACK TO save_car_pvt;
1671 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1672 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_ACCT_RELATE_ALL');
1673 FND_MSG_PUB.ADD;
1674
1675 x_return_status := fnd_api.g_ret_sts_error;
1676
1677 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1678 p_count => x_msg_count,
1679 p_data => x_msg_data);
1680
1681 -- Debug info.
1682 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1683 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1684 p_msg_data=>x_msg_data,
1685 p_msg_type=>'ERROR',
1686 p_msg_level=>fnd_log.level_error);
1687 END IF;
1688 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1689 hz_utility_v2pub.debug(p_message=>'save_cust_acct_relates(-)',
1690 p_prefix=>l_debug_prefix,
1691 p_msg_level=>fnd_log.level_procedure);
1692 END IF;
1693
1694 WHEN fnd_api.g_exc_unexpected_error THEN
1695 ROLLBACK TO save_car_pvt;
1696 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1697 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_ACCT_RELATE_ALL');
1698 FND_MSG_PUB.ADD;
1699
1700 x_return_status := fnd_api.g_ret_sts_unexp_error;
1701
1702 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1703 p_count => x_msg_count,
1704 p_data => x_msg_data);
1705
1706 -- Debug info.
1707 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1708 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1709 p_msg_data=>x_msg_data,
1710 p_msg_type=>'UNEXPECTED ERROR',
1711 p_msg_level=>fnd_log.level_error);
1712 END IF;
1713 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1714 hz_utility_v2pub.debug(p_message=>'save_cust_acct_relates(-)',
1715 p_prefix=>l_debug_prefix,
1716 p_msg_level=>fnd_log.level_procedure);
1717 END IF;
1718
1719 WHEN OTHERS THEN
1720 ROLLBACK TO save_car_pvt;
1721 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1722 FND_MESSAGE.SET_TOKEN('ENTITY', 'HZ_CUST_ACCT_RELATE_ALL');
1723 FND_MSG_PUB.ADD;
1724
1725 x_return_status := fnd_api.g_ret_sts_unexp_error;
1726
1727 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1728 fnd_message.set_token('ERROR' ,SQLERRM);
1729 fnd_msg_pub.add;
1730
1731 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1732 p_count => x_msg_count,
1733 p_data => x_msg_data);
1734
1735 -- Debug info.
1736 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1740 p_msg_level=>fnd_log.level_error);
1737 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1738 p_msg_data=>x_msg_data,
1739 p_msg_type=>'SQL ERROR',
1741 END IF;
1742 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1743 hz_utility_v2pub.debug(p_message=>'save_cust_acct_relates(-)',
1744 p_prefix=>l_debug_prefix,
1745 p_msg_level=>fnd_log.level_procedure);
1746 END IF;
1747 END save_cust_acct_relates;
1748
1749 -- PROCEDURE save_bank_acct_uses
1750 --
1751 -- DESCRIPTION
1752 -- Create or update bank account assignments.
1753 --
1754 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1755 --
1756 -- ARGUMENTS
1757 -- IN:
1758 -- p_bank_acct_use_objs List of bank account assignment objects.
1759 -- p_party_id Party Id.
1760 -- p_ca_id Customer account Id.
1761 -- p_casu_id Customer account site use Id.
1762 -- OUT:
1763 -- x_return_status Return status after the call. The status can
1764 -- be fnd_api.g_ret_sts_success (success),
1765 -- fnd_api.g_ret_sts_error (error),
1766 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1767 -- x_msg_count Number of messages in message stack.
1768 -- x_msg_data Message text if x_msg_count is 1.
1769 --
1770 -- NOTES
1771 --
1772 -- MODIFICATION HISTORY
1773 --
1774 -- 14-DEC-2004 Arnold Ng Created.
1775
1776 PROCEDURE save_bank_acct_uses(
1777 p_bank_acct_use_objs IN OUT NOCOPY HZ_BANK_ACCT_USE_OBJ_TBL,
1778 p_party_id IN NUMBER,
1779 p_ca_id IN NUMBER,
1780 p_casu_id IN NUMBER,
1781 x_return_status OUT NOCOPY VARCHAR2,
1782 x_msg_count OUT NOCOPY NUMBER,
1783 x_msg_data OUT NOCOPY VARCHAR2
1784 ) IS
1785 l_debug_prefix VARCHAR2(30) := '';
1786 l_payer_context_rec IBY_FNDCPT_COMMON_PUB.PayerContext_Rec_Type;
1787 l_pmtinstrument_rec IBY_FNDCPT_SETUP_PUB.PmtInstrAssignment_Rec_Type;
1788 l_assign_id NUMBER;
1789 l_response IBY_FNDCPT_COMMON_PUB.Result_Rec_Type;
1790 BEGIN
1791 -- Standard start of API savepoint
1792 SAVEPOINT save_bau_pvt;
1793
1794 -- initialize API return status to success.
1795 x_return_status := FND_API.G_RET_STS_SUCCESS;
1796
1797 -- Debug info.
1798 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1799 hz_utility_v2pub.debug(p_message=>'save_bank_acct_uses(+)',
1800 p_prefix=>l_debug_prefix,
1801 p_msg_level=>fnd_log.level_procedure);
1802 END IF;
1803
1804 FOR i IN 1..p_bank_acct_use_objs.COUNT LOOP
1805 assign_bank_acct_use_rec(
1806 p_bank_acct_use_obj => p_bank_acct_use_objs(i),
1807 p_party_id => p_party_id,
1808 p_cust_acct_id => p_ca_id,
1809 p_site_use_id => p_casu_id,
1810 px_payer_context_rec => l_payer_context_rec,
1811 px_pmtinstrument_rec => l_pmtinstrument_rec
1812 );
1813
1814 IBY_FNDCPT_SETUP_PUB.Set_Payer_Instr_Assignment(
1815 p_api_version => 1.0,
1816 p_commit => FND_API.G_FALSE,
1817 x_return_status => x_return_status,
1818 x_msg_count => x_msg_count,
1819 x_msg_data => x_msg_data,
1820 p_payer => l_payer_context_rec,
1821 p_assignment_attribs => l_pmtinstrument_rec,
1822 x_assign_id => l_assign_id,
1823 x_response => l_response
1824 );
1825
1826 -- assign bank_acct_use_id
1827 p_bank_acct_use_objs(i).bank_acct_use_id := l_assign_id;
1828
1829 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1830 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1831 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,
1832 p_prefix=>l_debug_prefix,
1833 p_msg_level=>fnd_log.level_procedure);
1834 END IF;
1835 RAISE FND_API.G_EXC_ERROR;
1836 END IF;
1837 END LOOP;
1838
1839 -- Debug info.
1840 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1841 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1842 p_msg_data=>x_msg_data,
1843 p_msg_type=>'WARNING',
1844 p_msg_level=>fnd_log.level_exception);
1845 END IF;
1846 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1847 hz_utility_v2pub.debug(p_message=>'save_bank_acct_uses(-)',
1848 p_prefix=>l_debug_prefix,
1849 p_msg_level=>fnd_log.level_procedure);
1850 END IF;
1851 EXCEPTION
1852 WHEN fnd_api.g_exc_error THEN
1853 ROLLBACK TO save_bau_pvt;
1857
1854 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1855 FND_MESSAGE.SET_TOKEN('ENTITY', 'IBY_FNDCPT_PAYER_ASSGN_INSTR_V');
1856 FND_MSG_PUB.ADD;
1858 x_return_status := fnd_api.g_ret_sts_error;
1859
1860 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1861 p_count => x_msg_count,
1862 p_data => x_msg_data);
1863
1864 -- Debug info.
1865 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1866 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1867 p_msg_data=>x_msg_data,
1868 p_msg_type=>'ERROR',
1869 p_msg_level=>fnd_log.level_error);
1870 END IF;
1871 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1872 hz_utility_v2pub.debug(p_message=>'save_bank_acct_uses(-)',
1873 p_prefix=>l_debug_prefix,
1874 p_msg_level=>fnd_log.level_procedure);
1875 END IF;
1876
1877 WHEN fnd_api.g_exc_unexpected_error THEN
1878 ROLLBACK TO save_bau_pvt;
1879 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1880 FND_MESSAGE.SET_TOKEN('ENTITY', 'IBY_FNDCPT_PAYER_ASSGN_INSTR_V');
1881 FND_MSG_PUB.ADD;
1882
1883 x_return_status := fnd_api.g_ret_sts_unexp_error;
1884
1885 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1886 p_count => x_msg_count,
1887 p_data => x_msg_data);
1888
1889 -- Debug info.
1890 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1891 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1892 p_msg_data=>x_msg_data,
1893 p_msg_type=>'UNEXPECTED ERROR',
1894 p_msg_level=>fnd_log.level_error);
1895 END IF;
1896 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1897 hz_utility_v2pub.debug(p_message=>'save_bank_acct_uses(-)',
1898 p_prefix=>l_debug_prefix,
1899 p_msg_level=>fnd_log.level_procedure);
1900 END IF;
1901
1902 WHEN OTHERS THEN
1903 ROLLBACK TO save_bau_pvt;
1904 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
1905 FND_MESSAGE.SET_TOKEN('ENTITY', 'IBY_FNDCPT_PAYER_ASSGN_INSTR_V');
1906 FND_MSG_PUB.ADD;
1907
1908 x_return_status := fnd_api.g_ret_sts_unexp_error;
1909
1910 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1911 fnd_message.set_token('ERROR' ,SQLERRM);
1912 fnd_msg_pub.add;
1913
1914 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1915 p_count => x_msg_count,
1916 p_data => x_msg_data);
1917
1918 -- Debug info.
1919 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1920 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1921 p_msg_data=>x_msg_data,
1922 p_msg_type=>'SQL ERROR',
1923 p_msg_level=>fnd_log.level_error);
1924 END IF;
1925 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1926 hz_utility_v2pub.debug(p_message=>'save_bank_acct_uses(-)',
1927 p_prefix=>l_debug_prefix,
1928 p_msg_level=>fnd_log.level_procedure);
1929 END IF;
1930 END save_bank_acct_uses;
1931
1932 -- PROCEDURE create_payment_method
1933 --
1934 -- DESCRIPTION
1935 -- Create payment method.
1936 --
1937 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1938 --
1939 -- ARGUMENTS
1940 -- IN:
1941 -- p_payment_method_obj Payment method object.
1942 -- p_ca_id Customer account Id.
1943 -- p_casu_id Customer account site use Id.
1944 -- OUT:
1945 -- x_return_status Return status after the call. The status can
1946 -- be fnd_api.g_ret_sts_success (success),
1947 -- fnd_api.g_ret_sts_error (error),
1948 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1949 -- x_msg_count Number of messages in message stack.
1950 -- x_msg_data Message text if x_msg_count is 1.
1951 --
1952 -- NOTES
1953 --
1954 -- MODIFICATION HISTORY
1955 --
1956 -- 14-DEC-2004 Arnold Ng Created.
1957
1958 PROCEDURE create_payment_method(
1959 p_payment_method_obj IN OUT NOCOPY HZ_PAYMENT_METHOD_OBJ,
1960 p_ca_id IN NUMBER,
1961 p_casu_id IN NUMBER,
1962 x_return_status OUT NOCOPY VARCHAR2,
1963 x_msg_count OUT NOCOPY NUMBER,
1964 x_msg_data OUT NOCOPY VARCHAR2
1965 ) IS
1966 l_debug_prefix VARCHAR2(30) := '';
1967 l_payment_method_rec HZ_PAYMENT_METHOD_PUB.PAYMENT_METHOD_REC_TYPE;
1968 l_pm_id NUMBER;
1969 BEGIN
1970 -- Standard start of API savepoint
1971 SAVEPOINT create_pm_pvt;
1972
1973 -- initialize API return status to success.
1974 x_return_status := FND_API.G_RET_STS_SUCCESS;
1975
1979 p_prefix=>l_debug_prefix,
1976 -- Debug info.
1977 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1978 hz_utility_v2pub.debug(p_message=>'create_payment_method(+)',
1980 p_msg_level=>fnd_log.level_procedure);
1981 END IF;
1982
1983 assign_payment_method_rec(
1984 p_payment_method_obj => p_payment_method_obj,
1985 p_cust_acct_id => p_ca_id,
1986 p_site_use_id => p_casu_id,
1987 px_payment_method_rec => l_payment_method_rec
1988 );
1989
1990 HZ_PAYMENT_METHOD_PUB.create_payment_method(
1991 p_payment_method_rec => l_payment_method_rec,
1992 x_cust_receipt_method_id => l_pm_id,
1993 x_return_status => x_return_status,
1994 x_msg_count => x_msg_count,
1995 x_msg_data => x_msg_data
1996 );
1997
1998 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1999 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2000 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,
2001 p_prefix=>l_debug_prefix,
2002 p_msg_level=>fnd_log.level_procedure);
2003 END IF;
2004 RAISE FND_API.G_EXC_ERROR;
2005 END IF;
2006
2007 -- assign payment_method_id
2008 p_payment_method_obj.payment_method_id := l_pm_id;
2009
2010 -- Debug info.
2011 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2012 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2013 p_msg_data=>x_msg_data,
2014 p_msg_type=>'WARNING',
2015 p_msg_level=>fnd_log.level_exception);
2016 END IF;
2017 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2018 hz_utility_v2pub.debug(p_message=>'create_payment_method(-)',
2019 p_prefix=>l_debug_prefix,
2020 p_msg_level=>fnd_log.level_procedure);
2021 END IF;
2022 EXCEPTION
2023 WHEN fnd_api.g_exc_error THEN
2024 ROLLBACK TO create_pm_pvt;
2025 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2026 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2027 FND_MSG_PUB.ADD;
2028
2029 x_return_status := fnd_api.g_ret_sts_error;
2030
2031 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2032 p_count => x_msg_count,
2033 p_data => x_msg_data);
2034
2035 -- Debug info.
2036 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2037 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2038 p_msg_data=>x_msg_data,
2039 p_msg_type=>'ERROR',
2040 p_msg_level=>fnd_log.level_error);
2041 END IF;
2042 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2043 hz_utility_v2pub.debug(p_message=>'create_payment_method(-)',
2044 p_prefix=>l_debug_prefix,
2045 p_msg_level=>fnd_log.level_procedure);
2046 END IF;
2047
2048 WHEN fnd_api.g_exc_unexpected_error THEN
2049 ROLLBACK TO create_pm_pvt;
2050 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2051 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2052 FND_MSG_PUB.ADD;
2053
2054 x_return_status := fnd_api.g_ret_sts_unexp_error;
2055
2056 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2057 p_count => x_msg_count,
2058 p_data => x_msg_data);
2059
2060 -- Debug info.
2061 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2062 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2063 p_msg_data=>x_msg_data,
2064 p_msg_type=>'UNEXPECTED ERROR',
2065 p_msg_level=>fnd_log.level_error);
2066 END IF;
2067 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2068 hz_utility_v2pub.debug(p_message=>'create_payment_method(-)',
2069 p_prefix=>l_debug_prefix,
2070 p_msg_level=>fnd_log.level_procedure);
2071 END IF;
2072
2073 WHEN OTHERS THEN
2074 ROLLBACK TO create_pm_pvt;
2075 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2076 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2077 FND_MSG_PUB.ADD;
2078
2079 x_return_status := fnd_api.g_ret_sts_unexp_error;
2080
2081 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2082 fnd_message.set_token('ERROR' ,SQLERRM);
2083 fnd_msg_pub.add;
2084
2085 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2086 p_count => x_msg_count,
2087 p_data => x_msg_data);
2088
2089 -- Debug info.
2090 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2091 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2095 END IF;
2092 p_msg_data=>x_msg_data,
2093 p_msg_type=>'SQL ERROR',
2094 p_msg_level=>fnd_log.level_error);
2096 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2097 hz_utility_v2pub.debug(p_message=>'create_payment_method(-)',
2098 p_prefix=>l_debug_prefix,
2099 p_msg_level=>fnd_log.level_procedure);
2100 END IF;
2101 END create_payment_method;
2102
2103 -- PROCEDURE save_payment_method
2104 --
2105 -- DESCRIPTION
2106 -- Create or update payment method.
2107 --
2108 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2109 --
2110 -- ARGUMENTS
2111 -- IN:
2112 -- p_payment_method_obj Payment method object.
2113 -- p_ca_id Customer account Id.
2114 -- p_casu_id Customer account site use Id.
2115 -- OUT:
2116 -- x_return_status Return status after the call. The status can
2117 -- be fnd_api.g_ret_sts_success (success),
2118 -- fnd_api.g_ret_sts_error (error),
2119 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2120 -- x_msg_count Number of messages in message stack.
2121 -- x_msg_data Message text if x_msg_count is 1.
2122 --
2123 -- NOTES
2124 --
2125 -- MODIFICATION HISTORY
2126 --
2127 -- 14-DEC-2004 Arnold Ng Created.
2128
2129 PROCEDURE save_payment_method(
2130 p_payment_method_obj IN OUT NOCOPY HZ_PAYMENT_METHOD_OBJ,
2131 p_ca_id IN NUMBER,
2132 p_casu_id IN NUMBER,
2133 x_return_status OUT NOCOPY VARCHAR2,
2134 x_msg_count OUT NOCOPY NUMBER,
2135 x_msg_data OUT NOCOPY VARCHAR2
2136 ) IS
2137 l_debug_prefix VARCHAR2(30) := '';
2138 l_payment_method_rec HZ_PAYMENT_METHOD_PUB.PAYMENT_METHOD_REC_TYPE;
2139 l_lud DATE;
2140 l_pm_id NUMBER;
2141 BEGIN
2142 -- Standard start of API savepoint
2143 SAVEPOINT save_pm_pvt;
2144
2145 -- initialize API return status to success.
2146 x_return_status := FND_API.G_RET_STS_SUCCESS;
2147
2148 -- Debug info.
2149 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2150 hz_utility_v2pub.debug(p_message=>'save_payment_method(+)',
2151 p_prefix=>l_debug_prefix,
2152 p_msg_level=>fnd_log.level_procedure);
2153 END IF;
2154
2155 assign_payment_method_rec(
2156 p_payment_method_obj => p_payment_method_obj,
2157 p_cust_acct_id => p_ca_id,
2158 p_site_use_id => p_casu_id,
2159 px_payment_method_rec => l_payment_method_rec
2160 );
2161
2162 hz_registry_validate_bo_pvt.check_payment_method_op(
2163 p_cust_receipt_method_id => l_payment_method_rec.cust_receipt_method_id,
2164 x_last_update_date => l_lud
2165 );
2166
2167 IF(l_lud IS NULL) THEN
2168 HZ_PAYMENT_METHOD_PUB.create_payment_method(
2169 p_payment_method_rec => l_payment_method_rec,
2170 x_cust_receipt_method_id => l_pm_id,
2171 x_return_status => x_return_status,
2172 x_msg_count => x_msg_count,
2173 x_msg_data => x_msg_data
2174 );
2175
2176 -- assign payment_method_id
2177 p_payment_method_obj.payment_method_id := l_pm_id;
2178 ELSE
2179 HZ_PAYMENT_METHOD_PUB.update_payment_method(
2180 p_payment_method_rec => l_payment_method_rec,
2181 px_last_update_date => l_lud,
2182 x_return_status => x_return_status,
2183 x_msg_count => x_msg_count,
2184 x_msg_data => x_msg_data
2185 );
2186
2187 -- assign payment_method_id
2188 p_payment_method_obj.payment_method_id := l_payment_method_rec.cust_receipt_method_id;
2189 END IF;
2190
2191 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2192 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2193 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,
2194 p_prefix=>l_debug_prefix,
2195 p_msg_level=>fnd_log.level_procedure);
2196 END IF;
2197 RAISE FND_API.G_EXC_ERROR;
2198 END IF;
2199
2200 -- Debug info.
2201 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2202 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2203 p_msg_data=>x_msg_data,
2204 p_msg_type=>'WARNING',
2205 p_msg_level=>fnd_log.level_exception);
2206 END IF;
2207 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2208 hz_utility_v2pub.debug(p_message=>'save_payment_method(-)',
2209 p_prefix=>l_debug_prefix,
2210 p_msg_level=>fnd_log.level_procedure);
2211 END IF;
2212 EXCEPTION
2213 WHEN fnd_api.g_exc_error THEN
2217 FND_MSG_PUB.ADD;
2214 ROLLBACK TO save_pm_pvt;
2215 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2216 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2218
2219 x_return_status := fnd_api.g_ret_sts_error;
2220
2221 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2222 p_count => x_msg_count,
2223 p_data => x_msg_data);
2224
2225 -- Debug info.
2226 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2227 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2228 p_msg_data=>x_msg_data,
2229 p_msg_type=>'ERROR',
2230 p_msg_level=>fnd_log.level_error);
2231 END IF;
2232 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2233 hz_utility_v2pub.debug(p_message=>'save_payment_method(-)',
2234 p_prefix=>l_debug_prefix,
2235 p_msg_level=>fnd_log.level_procedure);
2236 END IF;
2237
2238 WHEN fnd_api.g_exc_unexpected_error THEN
2239 ROLLBACK TO save_pm_pvt;
2240 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2241 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2242 FND_MSG_PUB.ADD;
2243
2244 x_return_status := fnd_api.g_ret_sts_unexp_error;
2245
2246 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2247 p_count => x_msg_count,
2248 p_data => x_msg_data);
2249
2250 -- Debug info.
2251 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2252 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2253 p_msg_data=>x_msg_data,
2254 p_msg_type=>'UNEXPECTED ERROR',
2255 p_msg_level=>fnd_log.level_error);
2256 END IF;
2257 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2258 hz_utility_v2pub.debug(p_message=>'save_payment_method(-)',
2259 p_prefix=>l_debug_prefix,
2260 p_msg_level=>fnd_log.level_procedure);
2261 END IF;
2262
2263 WHEN OTHERS THEN
2264 ROLLBACK TO save_pm_pvt;
2265 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2266 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2267 FND_MSG_PUB.ADD;
2268
2269 x_return_status := fnd_api.g_ret_sts_unexp_error;
2270
2271 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2272 fnd_message.set_token('ERROR' ,SQLERRM);
2273 fnd_msg_pub.add;
2274
2275 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2276 p_count => x_msg_count,
2277 p_data => x_msg_data);
2278
2279 -- Debug info.
2280 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2281 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2282 p_msg_data=>x_msg_data,
2283 p_msg_type=>'SQL ERROR',
2284 p_msg_level=>fnd_log.level_error);
2285 END IF;
2286 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2287 hz_utility_v2pub.debug(p_message=>'save_payment_method(-)',
2288 p_prefix=>l_debug_prefix,
2289 p_msg_level=>fnd_log.level_procedure);
2290 END IF;
2291 END save_payment_method;
2292
2293 -- PROCEDURE save_cust_accts
2294 --
2295 -- DESCRIPTION
2296 -- Create or update customer accounts.
2297 --
2298 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2299 --
2300 -- ARGUMENTS
2301 -- IN:
2302 -- p_ca_objs List of customer account objects.
2303 -- p_create_update_flag Create or update flag.
2304 -- p_parent_id Parent Id.
2305 -- p_parent_os Parent original system.
2306 -- p_parent_osr Parent original system reference.
2307 -- p_parent_obj_type Parent object type.
2308 -- OUT:
2309 -- x_return_status Return status after the call. The status can
2310 -- be fnd_api.g_ret_sts_success (success),
2311 -- fnd_api.g_ret_sts_error (error),
2312 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2313 -- x_msg_count Number of messages in message stack.
2314 -- x_msg_data Message text if x_msg_count is 1.
2315 --
2316 -- NOTES
2317 --
2318 -- MODIFICATION HISTORY
2319 --
2320 -- 14-DEC-2004 Arnold Ng Created.
2321
2322 PROCEDURE save_cust_accts(
2323 p_ca_objs IN OUT NOCOPY HZ_CUST_ACCT_BO_TBL,
2324 p_create_update_flag IN VARCHAR2,
2325 p_obj_source IN VARCHAR2 := null,
2326 x_return_status OUT NOCOPY VARCHAR2,
2327 x_msg_count OUT NOCOPY NUMBER,
2328 x_msg_data OUT NOCOPY VARCHAR2,
2329 p_parent_id IN NUMBER,
2330 p_parent_os IN VARCHAR2,
2331 p_parent_osr IN VARCHAR2,
2332 p_parent_obj_type IN VARCHAR2
2333 ) IS
2334 l_debug_prefix VARCHAR2(30) := '';
2335 l_ca_id NUMBER;
2339 l_parent_os VARCHAR2(30);
2336 l_ca_os VARCHAR2(30);
2337 l_ca_osr VARCHAR2(255);
2338 l_parent_id NUMBER;
2340 l_parent_osr VARCHAR2(255);
2341 l_parent_obj_type VARCHAR2(30);
2342 l_cbm VARCHAR2(30);
2343 BEGIN
2344 -- initialize API return status to success
2345 x_return_status := FND_API.G_RET_STS_SUCCESS;
2346
2347 -- Debug info.
2348 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2349 hz_utility_v2pub.debug(p_message=>'save_cust_accts(+)',
2350 p_prefix=>l_debug_prefix,
2351 p_msg_level=>fnd_log.level_procedure);
2352 END IF;
2353
2354 l_parent_id := p_parent_id;
2355 l_parent_os := p_parent_os;
2356 l_parent_osr := p_parent_osr;
2357 l_parent_obj_type := p_parent_obj_type;
2358
2359 l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
2360
2361 IF(p_create_update_flag = 'C') THEN
2362 -- Create cust accounts
2363 FOR i IN 1..p_ca_objs.COUNT LOOP
2364 HZ_CUST_ACCT_BO_PUB.do_create_cust_acct_bo(
2365 p_validate_bo_flag => fnd_api.g_false,
2366 p_cust_acct_obj => p_ca_objs(i),
2367 p_created_by_module => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
2368 p_obj_source => p_obj_source,
2369 x_return_status => x_return_status,
2370 x_msg_count => x_msg_count,
2371 x_msg_data => x_msg_data,
2372 x_cust_acct_id => l_ca_id,
2373 x_cust_acct_os => l_ca_os,
2374 x_cust_acct_osr => l_ca_osr,
2375 px_parent_id => l_parent_id,
2376 px_parent_os => l_parent_os,
2377 px_parent_osr => l_parent_osr,
2378 px_parent_obj_type => l_parent_obj_type
2379 );
2380
2381 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2382 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2383 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,
2384 p_prefix=>l_debug_prefix,
2385 p_msg_level=>fnd_log.level_procedure);
2386 END IF;
2387 RAISE FND_API.G_EXC_ERROR;
2388 END IF;
2389
2390 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2391 END LOOP;
2392 ELSE
2393 -- Create/update cust accounts
2394 FOR i IN 1..p_ca_objs.COUNT LOOP
2395 HZ_CUST_ACCT_BO_PUB.do_save_cust_acct_bo(
2396 p_validate_bo_flag => fnd_api.g_false,
2397 p_cust_acct_obj => p_ca_objs(i),
2398 p_created_by_module => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
2399 p_obj_source => p_obj_source,
2400 x_return_status => x_return_status,
2401 x_msg_count => x_msg_count,
2402 x_msg_data => x_msg_data,
2403 x_cust_acct_id => l_ca_id,
2404 x_cust_acct_os => l_ca_os,
2405 x_cust_acct_osr => l_ca_osr,
2406 px_parent_id => l_parent_id,
2407 px_parent_os => l_parent_os,
2408 px_parent_osr => l_parent_osr,
2409 px_parent_obj_type => l_parent_obj_type
2410 );
2411
2412 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2413 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2414 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,
2415 p_prefix=>l_debug_prefix,
2416 p_msg_level=>fnd_log.level_procedure);
2417 END IF;
2418 RAISE FND_API.G_EXC_ERROR;
2419 END IF;
2420
2421 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2422 END LOOP;
2423 END IF;
2424
2425 -- Debug info.
2426 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2427 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2428 p_msg_data=>x_msg_data,
2429 p_msg_type=>'WARNING',
2430 p_msg_level=>fnd_log.level_exception);
2431 END IF;
2432 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2433 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2434 p_prefix=>l_debug_prefix,
2435 p_msg_level=>fnd_log.level_procedure);
2436 END IF;
2437 EXCEPTION
2438 WHEN fnd_api.g_exc_error THEN
2439 x_return_status := fnd_api.g_ret_sts_error;
2440
2441 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2442 p_count => x_msg_count,
2443 p_data => x_msg_data);
2444
2445 -- Debug info.
2446 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2447 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2448 p_msg_data=>x_msg_data,
2449 p_msg_type=>'ERROR',
2450 p_msg_level=>fnd_log.level_error);
2451 END IF;
2455 p_msg_level=>fnd_log.level_procedure);
2452 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2453 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2454 p_prefix=>l_debug_prefix,
2456 END IF;
2457 WHEN fnd_api.g_exc_unexpected_error THEN
2458 x_return_status := fnd_api.g_ret_sts_unexp_error;
2459
2460 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2461 p_count => x_msg_count,
2462 p_data => x_msg_data);
2463
2464 -- Debug info.
2465 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2466 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2467 p_msg_data=>x_msg_data,
2468 p_msg_type=>'UNEXPECTED ERROR',
2469 p_msg_level=>fnd_log.level_error);
2470 END IF;
2471 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2472 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2473 p_prefix=>l_debug_prefix,
2474 p_msg_level=>fnd_log.level_procedure);
2475 END IF;
2476 WHEN OTHERS THEN
2477 x_return_status := fnd_api.g_ret_sts_unexp_error;
2478
2479 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2480 fnd_message.set_token('ERROR' ,SQLERRM);
2481 fnd_msg_pub.add;
2482
2483 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2484 p_count => x_msg_count,
2485 p_data => x_msg_data);
2486
2487 -- Debug info.
2488 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2489 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2490 p_msg_data=>x_msg_data,
2491 p_msg_type=>'SQL ERROR',
2492 p_msg_level=>fnd_log.level_error);
2493 END IF;
2494 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2495 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2496 p_prefix=>l_debug_prefix,
2497 p_msg_level=>fnd_log.level_procedure);
2498 END IF;
2499 END save_cust_accts;
2500
2501 -- PROCEDURE create_payment_methods
2502 --
2503 -- DESCRIPTION
2504 -- Create payment methods.
2505 --
2506 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2507 --
2508 -- ARGUMENTS
2509 -- IN:
2510 -- p_payment_method_objs Payment method objects.
2511 -- p_ca_id Customer account Id.
2512 -- p_casu_id Customer account site use Id.
2513 -- OUT:
2514 -- x_return_status Return status after the call. The status can
2515 -- be fnd_api.g_ret_sts_success (success),
2516 -- fnd_api.g_ret_sts_error (error),
2517 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2518 -- x_msg_count Number of messages in message stack.
2519 -- x_msg_data Message text if x_msg_count is 1.
2520 --
2521 -- NOTES
2522 --
2523 -- MODIFICATION HISTORY
2524 --
2525 -- 1-FEB-2008 vsegu Created.
2526
2527 PROCEDURE create_payment_methods(
2528 p_payment_method_objs IN OUT NOCOPY HZ_PAYMENT_METHOD_OBJ_TBL,
2529 p_ca_id IN NUMBER,
2530 p_casu_id IN NUMBER,
2531 x_return_status OUT NOCOPY VARCHAR2,
2532 x_msg_count OUT NOCOPY NUMBER,
2533 x_msg_data OUT NOCOPY VARCHAR2
2534 ) IS
2535 l_debug_prefix VARCHAR2(30) := '';
2536 BEGIN
2537 -- Standard start of API savepoint
2538 SAVEPOINT create_pms_v2_pvt;
2539
2540 -- initialize API return status to success.
2541 x_return_status := FND_API.G_RET_STS_SUCCESS;
2542
2543 -- Debug info.
2544 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2545 hz_utility_v2pub.debug(p_message=>'create_payment_method(+)',
2546 p_prefix=>l_debug_prefix,
2547 p_msg_level=>fnd_log.level_procedure);
2548 END IF;
2549
2550 FOR i IN 1..p_payment_method_objs.COUNT LOOP
2551
2552 HZ_CUST_ACCT_BO_PVT.create_payment_method(
2553 p_payment_method_obj => p_payment_method_objs(i),
2554 p_ca_id => p_ca_id,
2555 p_casu_id => p_casu_id,
2556 x_return_status => x_return_status,
2557 x_msg_count => x_msg_count,
2558 x_msg_data => x_msg_data
2559 );
2560
2561 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2562 RAISE FND_API.G_EXC_ERROR;
2563 END IF;
2564 END LOOP;
2565
2566
2567 EXCEPTION
2568 WHEN fnd_api.g_exc_error THEN
2569 ROLLBACK TO create_pms_v2_pvt;
2570
2571 x_return_status := fnd_api.g_ret_sts_error;
2572
2573 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2574 p_count => x_msg_count,
2575 p_data => x_msg_data);
2576
2577 -- Debug info.
2578 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2579 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2583 END IF;
2580 p_msg_data=>x_msg_data,
2581 p_msg_type=>'ERROR',
2582 p_msg_level=>fnd_log.level_error);
2584 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2585 hz_utility_v2pub.debug(p_message=>'create_payment_methods(-)',
2586 p_prefix=>l_debug_prefix,
2587 p_msg_level=>fnd_log.level_procedure);
2588 END IF;
2589
2590 WHEN fnd_api.g_exc_unexpected_error THEN
2591 ROLLBACK TO create_pms_v2_pvt;
2592
2593 x_return_status := fnd_api.g_ret_sts_unexp_error;
2594
2595 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2596 p_count => x_msg_count,
2597 p_data => x_msg_data);
2598
2599 -- Debug info.
2600 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2601 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2602 p_msg_data=>x_msg_data,
2603 p_msg_type=>'UNEXPECTED ERROR',
2604 p_msg_level=>fnd_log.level_error);
2605 END IF;
2606 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2607 hz_utility_v2pub.debug(p_message=>'create_payment_methods(-)',
2608 p_prefix=>l_debug_prefix,
2609 p_msg_level=>fnd_log.level_procedure);
2610 END IF;
2611
2612 WHEN OTHERS THEN
2613 ROLLBACK TO create_pms_v2_pvt;
2614
2615 x_return_status := fnd_api.g_ret_sts_unexp_error;
2616
2617 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2618 fnd_message.set_token('ERROR' ,SQLERRM);
2619 fnd_msg_pub.add;
2620
2621 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2622 p_count => x_msg_count,
2623 p_data => x_msg_data);
2624
2625 -- Debug info.
2626 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2627 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2628 p_msg_data=>x_msg_data,
2629 p_msg_type=>'SQL ERROR',
2630 p_msg_level=>fnd_log.level_error);
2631 END IF;
2632 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2633 hz_utility_v2pub.debug(p_message=>'create_payment_methods(-)',
2634 p_prefix=>l_debug_prefix,
2635 p_msg_level=>fnd_log.level_procedure);
2636 END IF;
2637 END create_payment_methods;
2638
2639 -- PROCEDURE save_payment_methods
2640 --
2641 -- DESCRIPTION
2642 -- Create or update payment methods.
2643 --
2644 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2645 --
2646 -- ARGUMENTS
2647 -- IN:
2648 -- p_payment_method_objs Payment method object.
2649 -- p_ca_id Customer account Id.
2650 -- p_casu_id Customer account site use Id.
2651 -- OUT:
2652 -- x_return_status Return status after the call. The status can
2653 -- be fnd_api.g_ret_sts_success (success),
2654 -- fnd_api.g_ret_sts_error (error),
2655 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2656 -- x_msg_count Number of messages in message stack.
2657 -- x_msg_data Message text if x_msg_count is 1.
2658 --
2659 -- NOTES
2660 --
2661 -- MODIFICATION HISTORY
2662 --
2663 -- 1-FEB-2008 vsegu Created.
2664
2665 PROCEDURE save_payment_methods(
2666 p_payment_method_objs IN OUT NOCOPY HZ_PAYMENT_METHOD_OBJ_TBL,
2667 p_ca_id IN NUMBER,
2668 p_casu_id IN NUMBER,
2669 x_return_status OUT NOCOPY VARCHAR2,
2670 x_msg_count OUT NOCOPY NUMBER,
2671 x_msg_data OUT NOCOPY VARCHAR2
2672 ) IS
2673 l_debug_prefix VARCHAR2(30) := '';
2674 BEGIN
2675 -- Standard start of API savepoint
2676 SAVEPOINT save_pm_v2_pvt;
2677
2678 -- initialize API return status to success.
2679 x_return_status := FND_API.G_RET_STS_SUCCESS;
2680
2681 -- Debug info.
2682 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2683 hz_utility_v2pub.debug(p_message=>'create_payment_method(+)',
2684 p_prefix=>l_debug_prefix,
2685 p_msg_level=>fnd_log.level_procedure);
2686 END IF;
2687
2688 FOR i IN 1..p_payment_method_objs.COUNT LOOP
2689
2690 HZ_CUST_ACCT_BO_PVT.save_payment_method(
2691 p_payment_method_obj => p_payment_method_objs(i),
2692 p_ca_id => p_ca_id,
2693 p_casu_id => p_casu_id,
2694 x_return_status => x_return_status,
2695 x_msg_count => x_msg_count,
2696 x_msg_data => x_msg_data
2697 );
2698
2699 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2700 RAISE FND_API.G_EXC_ERROR;
2701 END IF;
2702 END LOOP;
2703
2704
2705 EXCEPTION
2706 WHEN fnd_api.g_exc_error THEN
2707 ROLLBACK TO save_pm_v2_pvt;
2708 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2709 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2713
2710 FND_MSG_PUB.ADD;
2711
2712 x_return_status := fnd_api.g_ret_sts_error;
2714 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2715 p_count => x_msg_count,
2716 p_data => x_msg_data);
2717
2718 -- Debug info.
2719 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2720 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2721 p_msg_data=>x_msg_data,
2722 p_msg_type=>'ERROR',
2723 p_msg_level=>fnd_log.level_error);
2724 END IF;
2725 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2726 hz_utility_v2pub.debug(p_message=>'save_payment_methods(-)',
2727 p_prefix=>l_debug_prefix,
2728 p_msg_level=>fnd_log.level_procedure);
2729 END IF;
2730
2731 WHEN fnd_api.g_exc_unexpected_error THEN
2732 ROLLBACK TO save_pm_v2_pvt;
2733 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2734 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2735 FND_MSG_PUB.ADD;
2736
2737 x_return_status := fnd_api.g_ret_sts_unexp_error;
2738
2739 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2740 p_count => x_msg_count,
2741 p_data => x_msg_data);
2742
2743 -- Debug info.
2744 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2745 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2746 p_msg_data=>x_msg_data,
2747 p_msg_type=>'UNEXPECTED ERROR',
2748 p_msg_level=>fnd_log.level_error);
2749 END IF;
2750 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2751 hz_utility_v2pub.debug(p_message=>'save_payment_methods(-)',
2752 p_prefix=>l_debug_prefix,
2753 p_msg_level=>fnd_log.level_procedure);
2754 END IF;
2755
2756 WHEN OTHERS THEN
2757 ROLLBACK TO save_pm_v2_pvt;
2758 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_ENTITY_ERROR');
2759 FND_MESSAGE.SET_TOKEN('ENTITY', 'RA_CUST_RECEIPT_METHODS');
2760 FND_MSG_PUB.ADD;
2761
2762 x_return_status := fnd_api.g_ret_sts_unexp_error;
2763
2764 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2765 fnd_message.set_token('ERROR' ,SQLERRM);
2766 fnd_msg_pub.add;
2767
2768 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2769 p_count => x_msg_count,
2770 p_data => x_msg_data);
2771
2772 -- Debug info.
2773 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2774 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2775 p_msg_data=>x_msg_data,
2776 p_msg_type=>'SQL ERROR',
2777 p_msg_level=>fnd_log.level_error);
2778 END IF;
2779 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2780 hz_utility_v2pub.debug(p_message=>'save_payment_methods(-)',
2781 p_prefix=>l_debug_prefix,
2782 p_msg_level=>fnd_log.level_procedure);
2783 END IF;
2784 END save_payment_methods;
2785
2786 -- PROCEDURE save_cust_accts
2787 --
2788 -- DESCRIPTION
2789 -- Create or update customer accounts.
2790 --
2791 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2792 --
2793 -- ARGUMENTS
2794 -- IN:
2795 -- p_ca_v2_objs List of customer account objects.
2796 -- p_create_update_flag Create or update flag.
2797 -- p_parent_id Parent Id.
2798 -- p_parent_os Parent original system.
2799 -- p_parent_osr Parent original system reference.
2800 -- p_parent_obj_type Parent object type.
2801 -- OUT:
2802 -- x_return_status Return status after the call. The status can
2803 -- be fnd_api.g_ret_sts_success (success),
2804 -- fnd_api.g_ret_sts_error (error),
2805 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2806 -- x_msg_count Number of messages in message stack.
2807 -- x_msg_data Message text if x_msg_count is 1.
2808 --
2809 -- NOTES
2810 --
2811 -- MODIFICATION HISTORY
2812 --
2813 -- 1-FEB-2008 vsegu Created.
2814
2815 PROCEDURE save_cust_accts(
2816 p_ca_v2_objs IN OUT NOCOPY HZ_CUST_ACCT_V2_BO_TBL,
2817 p_create_update_flag IN VARCHAR2,
2818 p_obj_source IN VARCHAR2 := null,
2819 x_return_status OUT NOCOPY VARCHAR2,
2820 x_msg_count OUT NOCOPY NUMBER,
2821 x_msg_data OUT NOCOPY VARCHAR2,
2822 p_parent_id IN NUMBER,
2823 p_parent_os IN VARCHAR2,
2824 p_parent_osr IN VARCHAR2,
2825 p_parent_obj_type IN VARCHAR2
2826 ) IS
2827 l_debug_prefix VARCHAR2(30) := '';
2828 l_ca_id NUMBER;
2829 l_ca_os VARCHAR2(30);
2833 l_parent_osr VARCHAR2(255);
2830 l_ca_osr VARCHAR2(255);
2831 l_parent_id NUMBER;
2832 l_parent_os VARCHAR2(30);
2834 l_parent_obj_type VARCHAR2(30);
2835 l_cbm VARCHAR2(30);
2836 BEGIN
2837 -- initialize API return status to success
2838 x_return_status := FND_API.G_RET_STS_SUCCESS;
2839
2840 -- Debug info.
2841 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2842 hz_utility_v2pub.debug(p_message=>'save_cust_accts(+)',
2843 p_prefix=>l_debug_prefix,
2844 p_msg_level=>fnd_log.level_procedure);
2845 END IF;
2846
2847 l_parent_id := p_parent_id;
2848 l_parent_os := p_parent_os;
2849 l_parent_osr := p_parent_osr;
2850 l_parent_obj_type := p_parent_obj_type;
2851
2852 l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
2853
2854 IF(p_create_update_flag = 'C') THEN
2855 -- Create cust accounts
2856 FOR i IN 1..p_ca_v2_objs.COUNT LOOP
2857 HZ_CUST_ACCT_BO_PUB.do_create_cust_acct_v2_bo(
2858 p_validate_bo_flag => fnd_api.g_false,
2859 p_cust_acct_v2_obj => p_ca_v2_objs(i),
2860 p_created_by_module => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
2861 p_obj_source => p_obj_source,
2862 x_return_status => x_return_status,
2863 x_msg_count => x_msg_count,
2864 x_msg_data => x_msg_data,
2865 x_cust_acct_id => l_ca_id,
2866 x_cust_acct_os => l_ca_os,
2867 x_cust_acct_osr => l_ca_osr,
2868 px_parent_id => l_parent_id,
2869 px_parent_os => l_parent_os,
2870 px_parent_osr => l_parent_osr,
2871 px_parent_obj_type => l_parent_obj_type
2872 );
2873
2874 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2875 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2876 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,
2877 p_prefix=>l_debug_prefix,
2878 p_msg_level=>fnd_log.level_procedure);
2879 END IF;
2880 RAISE FND_API.G_EXC_ERROR;
2881 END IF;
2882
2883 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2884 END LOOP;
2885 ELSE
2886 -- Create/update cust accounts
2887 FOR i IN 1..p_ca_v2_objs.COUNT LOOP
2888 HZ_CUST_ACCT_BO_PUB.do_save_cust_acct_v2_bo(
2889 p_validate_bo_flag => fnd_api.g_false,
2890 p_cust_acct_v2_obj => p_ca_v2_objs(i),
2891 p_created_by_module => HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE,
2892 p_obj_source => p_obj_source,
2893 x_return_status => x_return_status,
2894 x_msg_count => x_msg_count,
2895 x_msg_data => x_msg_data,
2896 x_cust_acct_id => l_ca_id,
2897 x_cust_acct_os => l_ca_os,
2898 x_cust_acct_osr => l_ca_osr,
2899 px_parent_id => l_parent_id,
2900 px_parent_os => l_parent_os,
2901 px_parent_osr => l_parent_osr,
2902 px_parent_obj_type => l_parent_obj_type
2903 );
2904
2905 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2906 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2907 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,
2908 p_prefix=>l_debug_prefix,
2912 END IF;
2909 p_msg_level=>fnd_log.level_procedure);
2910 END IF;
2911 RAISE FND_API.G_EXC_ERROR;
2913
2914 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2915 END LOOP;
2916 END IF;
2917
2918 -- Debug info.
2919 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2920 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2921 p_msg_data=>x_msg_data,
2922 p_msg_type=>'WARNING',
2923 p_msg_level=>fnd_log.level_exception);
2924 END IF;
2925 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2926 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2927 p_prefix=>l_debug_prefix,
2928 p_msg_level=>fnd_log.level_procedure);
2929 END IF;
2930 EXCEPTION
2931 WHEN fnd_api.g_exc_error THEN
2932 x_return_status := fnd_api.g_ret_sts_error;
2933
2934 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2935 p_count => x_msg_count,
2936 p_data => x_msg_data);
2937
2938 -- Debug info.
2939 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2940 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2941 p_msg_data=>x_msg_data,
2942 p_msg_type=>'ERROR',
2943 p_msg_level=>fnd_log.level_error);
2944 END IF;
2945 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2946 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2947 p_prefix=>l_debug_prefix,
2948 p_msg_level=>fnd_log.level_procedure);
2949 END IF;
2950 WHEN fnd_api.g_exc_unexpected_error THEN
2951 x_return_status := fnd_api.g_ret_sts_unexp_error;
2952
2953 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2954 p_count => x_msg_count,
2955 p_data => x_msg_data);
2956
2957 -- Debug info.
2958 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2959 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2960 p_msg_data=>x_msg_data,
2961 p_msg_type=>'UNEXPECTED ERROR',
2962 p_msg_level=>fnd_log.level_error);
2963 END IF;
2964 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2965 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2966 p_prefix=>l_debug_prefix,
2967 p_msg_level=>fnd_log.level_procedure);
2968 END IF;
2969 WHEN OTHERS THEN
2970 x_return_status := fnd_api.g_ret_sts_unexp_error;
2971
2972 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2973 fnd_message.set_token('ERROR' ,SQLERRM);
2974 fnd_msg_pub.add;
2975
2976 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2977 p_count => x_msg_count,
2978 p_data => x_msg_data);
2979
2980 -- Debug info.
2981 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2982 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2983 p_msg_data=>x_msg_data,
2984 p_msg_type=>'SQL ERROR',
2985 p_msg_level=>fnd_log.level_error);
2986 END IF;
2987 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2988 hz_utility_v2pub.debug(p_message=>'save_cust_accts(-)',
2989 p_prefix=>l_debug_prefix,
2990 p_msg_level=>fnd_log.level_procedure);
2991 END IF;
2992 END save_cust_accts;
2993
2994
2995 END hz_cust_acct_bo_pvt;