[Home] [Help]
PACKAGE BODY: APPS.JL_BR_AR_LOG_VALIDATION
Source
1 PACKAGE BODY JL_BR_AR_LOG_VALIDATION as
2 /* $Header: jlbrrvlb.pls 120.11 2006/05/05 21:21:12 appradha ship $ */
3
4 PROCEDURE logical_validation(
5 p_file_control IN jl_br_ar_ret_interface_all.file_control%TYPE,
6 p_bank_number IN jl_br_ar_ret_interface_all.bank_number%TYPE,
7 p_company_code IN jl_br_ar_ret_interface_all.company_code%TYPE,
8 p_inscription_number IN jl_br_ar_ret_interface_all.inscription_number%TYPE,
9 p_bank_occurrence_code IN jl_br_ar_ret_interface_all.bank_occurrence_code%TYPE,
10 p_occurrence_date IN jl_br_ar_ret_interface_all.occurrence_date%TYPE,
11 p_company_use IN jl_br_ar_ret_interface_all.company_use%TYPE,
12 p_your_number IN jl_br_ar_ret_interface_all.your_number%TYPE,
13 p_customer_name IN jl_br_ar_ret_interface_all.customer_name%TYPE,
14 p_trade_note_amount IN jl_br_ar_ret_interface_all.trade_note_amount%TYPE,
15 p_credit_amount IN jl_br_ar_ret_interface_all.credit_amount%TYPE,
16 p_interest_amount_received IN jl_br_ar_ret_interface_all.interest_amount_received%TYPE,
17 p_discount_amount IN jl_br_ar_ret_interface_all.discount_amount%TYPE,
18 p_abatement_amount IN jl_br_ar_ret_interface_all.abatement_amount%TYPE,
19 p_bank_party_id OUT NOCOPY NUMBER,
20 p_error_code IN OUT NOCOPY varchar2)
21 IS
22 X_bank_number jl_br_ar_ret_interface_all.bank_number%TYPE;
23 X_jlbr_bank_number jl_br_ar_ret_interface_all.bank_number%TYPE;
24 X_remittance_bank jl_br_ar_ret_interface_all.bank_number%TYPE;
25 X_company_code jl_br_ar_ret_interface_all.company_code%TYPE;
26 X_inscription_number jl_br_ar_ret_interface_all.inscription_number%TYPE;
27 X_cgc jl_br_ar_ret_interface_all.inscription_number%TYPE;
28 X_bank_occurrence_code jl_br_ar_ret_interface_all.bank_occurrence_code%TYPE;
29 X_company_use jl_br_ar_ret_interface_all.company_use%TYPE;
30 X_your_number jl_br_ar_ret_interface_all.your_number%TYPE;
31 X_bank_occurrence_code_std jl_br_ar_bank_occurrences.std_occurrence_code%TYPE;
32 X_document_status jl_br_ar_collection_docs_all.document_status%TYPE;
33 X_customer_name jl_br_ar_ret_interface_all.customer_name%TYPE;
34 X_payment_schedule_id jl_br_ar_collection_docs_all.payment_schedule_id%TYPE;
35 X_trade_note_amount jl_br_ar_ret_interface_all.trade_note_amount%TYPE;
36 X_document_amount jl_br_ar_ret_interface_all.trade_note_amount%TYPE;
37 X_credit_amount jl_br_ar_ret_interface_all.credit_amount%TYPE;
38 X_interest_amount_received jl_br_ar_ret_interface_all.interest_amount_received%TYPE;
39 X_discount_amount jl_br_ar_ret_interface_all.discount_amount%TYPE;
40 X_abatement_amount jl_br_ar_ret_interface_all.abatement_amount%TYPE;
41 X_customer_name1 jl_br_ar_ret_interface_all.customer_name%TYPE;
42 X_dual_num number;
43 X_remittance_bank_id NUMBER;
44 error_validation EXCEPTION;
45 valid_date BOOLEAN;
46 ------------------------------------------------------------------------
47 --Bug 4192066: Added required variables for parameters required to call
48 -- XLE API to get the tax registration number
49 ------------------------------------------------------------------------
50
51 l_init_msg_list VARCHAR2(2000);
52 l_commit VARCHAR2(2000);
53 l_validation_level NUMBER;
54 l_msg_count NUMBER;
55 l_msg_data VARCHAR2(2000);
56 l_return_status VARCHAR2(2000);
57 l_ledger_id ar_system_parameters.set_of_books_id%TYPE;
58 l_acct_balancing_segment ar_system_parameters.global_attribute1%TYPE;
59 l_ledger_info xle_businessinfo_grp.le_ledger_rec_type;
60 l_legal_entity_id xle_entity_profiles.legal_entity_id%TYPE;
61 l_legal_entity_name xle_entity_profiles.name%TYPE;
62 l_party_id hz_parties.party_id%TYPE;
63 l_party_type hz_parties.party_type%TYPE;
64
65 BEGIN
66
67 X_bank_number := p_bank_number;
68 X_company_code := p_company_code;
69 X_inscription_number := nvl(p_inscription_number,0);
70 X_bank_occurrence_code := p_bank_occurrence_code;
71 X_company_use := p_company_use;
72 X_your_number := p_your_number;
73 X_customer_name := p_customer_name;
74 X_trade_note_amount := p_trade_note_amount;
75 X_credit_amount := p_credit_amount;
76 X_interest_amount_received := p_interest_amount_received;
77 X_discount_amount := p_discount_amount;
78 X_abatement_amount := p_abatement_amount;
79
80
81 /* Validate Occurrence Code */
82 /*******************************/
83
84 BEGIN
85 -- CE uptake - Bug#2932986
86 SELECT occ.std_occurrence_code
87 INTO X_bank_occurrence_code_std
88 FROM jl_br_ar_bank_occurrences occ,
89 hz_organization_profiles prof
90 WHERE occ.bank_occurrence_code = X_bank_occurrence_code
91 AND prof.bank_or_branch_number = X_bank_number
92 AND occ.bank_party_id = prof.party_id
93 AND prof.home_country ='BR'
94 AND occ.bank_occurrence_type = 'RETURN_OCCURRENCE';
95
96 EXCEPTION
97 WHEN NO_DATA_FOUND THEN
98 p_error_code := 'INVALID_BANK_OCCURRENCE_CODE';
99 RAISE error_validation;
100 END;
101
102 /****************************/
103 /* Validate Occurrence Date */
104 /****************************/
105
106 BEGIN
107 valid_date := ARP_UTIL.IS_GL_DATE_VALID(p_occurrence_date);
108 IF NOT valid_date THEN
109 p_error_code := 'INVALID_OCCURRENCE_DATE';
110 RAISE error_validation;
111 END IF;
112 END;
113
114 /****************************/
115 /* Validate Bank Number */
116 /****************************/
117
118 BEGIN
119 /* CE uptake - Bug#2932986
120 SELECT distinct bank_number
121 INTO X_jlbr_bank_number
122 FROM jl_br_ar_bank_occurrences
123 WHERE bank_number = X_bank_number
124 AND ROWNUM < 2;
125 */
126
127 SELECT prof.bank_or_branch_number,
128 occ.bank_party_id
129 INTO X_jlbr_bank_number,
130 p_bank_party_id
131 FROM jl_br_ar_bank_occurrences occ,
132 hz_organization_profiles prof
133 WHERE prof.bank_or_branch_number = X_bank_number
134 AND occ.bank_party_id = prof.party_id
135 AND prof.home_country ='BR'
136 AND rownum = 1;
137
138 EXCEPTION
139 WHEN NO_DATA_FOUND THEN
140 p_error_code := 'INVALID_BANK_NUMBER';
141 RAISE error_validation;
142 END;
143
144 /****************************/
145 /* Validate Company Code */
146 /****************************/
147
148 BEGIN
149 /*
150 SELECT distinct aba.global_attribute7
151 INTO X_dual_num
152 FROM ap_bank_accounts_all aba,
153 jl_br_ar_collection_docs cd,
154 ar_payment_schedules_all arps
155 WHERE cd.document_id = X_company_use
156 AND aba.bank_account_id = cd.bank_account_id
157 AND arps.payment_schedule_id = cd.payment_schedule_id
158 -- bug 1892303
159 -- AND arps.trx_number||'-'||to_char(arps.terms_sequence_number) = X_your_number
160 AND to_number(aba.global_attribute7) = X_company_code;
161 */
162
163 SELECT distinct acct.secondary_account_reference
164 INTO X_dual_num
165 FROM ce_bank_accounts acct,
166 ce_bank_acct_uses_all acctUse,
167 jl_br_ar_collection_docs cd,
168 ar_payment_schedules_all arps
169 WHERE cd.document_id = X_company_use
170 AND acctUse.bank_acct_use_id = cd.bank_acct_use_id
171 AND acct.bank_account_id = acctUse.bank_account_id
172 AND arps.payment_schedule_id = cd.payment_schedule_id
173 -- bug 1892303
174 AND arps.trx_number||'-'||to_char(arps.terms_sequence_number) = X_your_number
175 AND to_number(acct.secondary_account_reference) = X_company_code;
176
177 EXCEPTION
178 WHEN NO_DATA_FOUND THEN
179 p_error_code := 'INVALID_COMPANY_CODE_FOR_BANK';
180 RAISE error_validation;
181 WHEN TOO_MANY_ROWS THEN
182 null;
183 END;
184
185 /********************/
186 /* Validate Document*/
187 /********************/
188
189 IF X_company_use IS NOT null THEN
190 BEGIN
191
192 /* CE uptake - Bug#2932986
193 SELECT doc.payment_schedule_id,
194 doc.document_status,
195 bra.bank_number
196 INTO X_payment_schedule_id,
197 X_document_status,
198 X_remittance_bank
199 FROM jl_br_ar_collection_docs doc,
200 ap_bank_accounts_all acc,
201 ap_bank_branches bra
202 WHERE doc.document_id = X_company_use
203 AND doc.bank_account_id = acc.bank_account_id
204 AND acc.bank_branch_id = bra.bank_branch_id;
205 */
206
207 SELECT doc.payment_schedule_id,
208 doc.document_status,
209 HzPartyBank.party_id bank_id
210 INTO X_payment_schedule_id,
211 X_document_status,
212 X_remittance_bank_id
213 FROM jl_br_ar_collection_docs doc,
214 ce_bank_accounts CeBankAccount,
215 ce_bank_acct_uses_all CeBankAcctUse,
216 hz_parties HzPartyBank
217 Where doc.bank_acct_use_id = CeBankAcctUse.bank_acct_use_id
218 And CeBankAcctUse.bank_account_id = CeBankAccount.bank_account_id
219 And CeBankAccount.BANK_ID = HzPartyBank.PARTY_ID
220 --And HzPartyBank.Country = 'BR'
221 And doc.document_id = X_company_use;
222 --End of CE uptake
223
224
225 EXCEPTION
226 WHEN NO_DATA_FOUND THEN
227 p_error_code := 'COLL_DOC_NOT_EXIST';
228 RAISE error_validation;
229 WHEN others THEN
230 null;
231 END;
232
233 BEGIN
234 SELECT payment_schedule_id
235 INTO X_payment_schedule_id
236 FROM ar_payment_schedules
237 WHERE payment_schedule_id = X_payment_schedule_id;
238
239 EXCEPTION
240 WHEN NO_DATA_FOUND THEN
241 p_error_code := 'TRADE_NOTE_NOT_EXIST';
242 RAISE error_validation;
243 WHEN TOO_MANY_ROWS THEN
244 null;
245 END;
246
247 /*
248 ELSE
249
250 BEGIN
251 SELECT payment_schedule_id
252 INTO X_payment_schedule_id
253 FROM ar_payment_schedules
254 WHERE trx_number|| '-' ||to_char(terms_sequence_number)=X_your_number;
255
256 EXCEPTION
257 WHEN NO_DATA_FOUND THEN
258 p_error_code := 'TRADE_NOTE_NOT_EXIST';
259 RAISE error_validation;
260 WHEN others THEN
261 null;
262 END;
263
264 BEGIN
265 SELECT doc.document_status,
266 bra.bank_number
267 INTO X_document_status,
268 X_remittance_bank
269 FROM jl_br_ar_collection_docs doc,
270 ap_bank_accounts_all acc,
271 ap_bank_branches bra
272 WHERE doc.payment_schedule_id = X_payment_schedule_id
273 AND doc.bank_account_id = acc.bank_account_id
274 AND acc.bank_branch_id = bra.bank_branch_id;
275
276 EXCEPTION
277 WHEN NO_DATA_FOUND THEN
278 p_error_code := 'COLL_DOC_NOT_EXIST';
279 RAISE error_validation;
280 WHEN others THEN
281 null;
282 END;
283
284 */
285 END IF;
286
287 /****************************/
288 /* Validate Bank */
289 /****************************/
290
291 -- CE uptake - Bug#2932986
292 IF X_remittance_bank_id <> p_bank_party_id THEN
293 p_error_code := 'INVALID_BANK_NUMBER';
294 RAISE error_validation;
295 END IF;
296
297 /****************/
298 /* Validate CGC */
299 /****************/
300
301 BEGIN
302
303 ----------------------------------------------------------------------
304 -- BUG 4192066. JL_BR_COMPANY_INFOS is being obsoleted. To obtaint the
305 -- registration number a new API is being called.
306 -- To obtain the Reg Number we need to pass the party_id
307 -- party_type and effective_date.
308 ----------------------------------------------------------------------
309
310 -----------------------------------------------------------
311 -- Retrieve the set_of_books_id and acct_balancing_segment
312 -- from ar_system_parameters
313 -----------------------------------------------------------
314 SELECT set_of_books_id,
315 global_attribute1
316 INTO l_ledger_id,
317 l_acct_balancing_segment
318 FROM ar_system_parameters;
319
320 ------------------------------------------------------------
321 -- Proceed to retrieve the Ledger Information which contains
322 -- the Legal Entity Id as well
323 ------------------------------------------------------------
324 /* XLE_BUSINESSINFO_GRP.Get_Ledger_Info(
325 x_return_status => l_return_status ,
326 x_msg_data => l_msg_data ,
327 P_Ledger_ID => l_ledger_id ,
328 P_BSV => l_acct_balancing_segment,
329 x_Ledger_info => l_ledger_info
330 );
331 -------------------------------------------------------------
332 -- Retrieve the Name of the Legal Entity
333 -------------------------------------------------------------
334 l_legal_entity_name := l_ledger_info(1).Name;
335 l_party_id := l_ledger_info(1).Party_id;
336 l_legal_entity_id := l_ledger_info(1).legal_entity_id;
337
338
342 XLE_UTILITIES_GRP.get_fp_vatregistration_LEID
339 -------------------------------------------------------------
340 -- Retrieve the Registration Number
341 -------------------------------------------------------------
343 (p_api_version => 1.0,
344 p_init_msg_list => l_init_msg_list,
345 p_commit => l_commit,
346 p_effective_date => sysdate,
347 x_return_status => l_return_status,
348 x_msg_count => l_msg_count,
349 x_msg_data => l_msg_data,
350 p_legal_entity_id => l_legal_entity_id,
351 x_registration_number => x_cgc
352 );*/
353
354 Select etb.registration_number
355 INTO x_cgc
356 From
357 xle_establishment_v etb
358 ,xle_bsv_associations bsv
359 ,gl_ledger_le_v gl
360 Where
361 etb.legal_entity_id = gl.legal_entity_id
362 And bsv.legal_parent_id = etb.legal_entity_id
363 And etb.establishment_id = bsv.legal_construct_id
364 And bsv.entity_name = l_acct_balancing_segment
365 And gl.ledger_id = l_ledger_id;
366
367
368 /* SELECT distinct (decode(inf.register_type, 3, '00000000000000',
369 to_number(lpad(inf.register_number,9,'0')||
370 lpad(inf.register_subsidiary,4,'0')||
371 lpad(inf.register_digit,2,'0'))))
372 INTO X_cgc
373 FROM jl_br_company_infos inf,
374 hz_cust_acct_sites_all adr,
375 ra_customer_trx_all trx,
376 ar_payment_schedules pay
377 WHERE pay.payment_schedule_id = X_payment_schedule_id
378 AND trx.customer_trx_id = pay.customer_trx_id
379 AND adr.cust_acct_site_id = trx.remit_to_address_id
380 AND inf.accounting_balancing_segment = adr.global_attribute1
381 AND inf.set_of_books_id = trx.set_of_books_id; */
382
383 IF nvl(X_cgc,0) <> X_inscription_number THEN
384 p_error_code := 'INVALID_COMPANY_INSCRIPT_NUM';
385 RAISE error_validation;
386 END IF;
387
388 EXCEPTION
389 --WHEN NO_DATA_FOUND THEN
390 WHEN OTHERS THEN
391 p_error_code := 'INVALID_COMPANY_INSCRIPT_NUM';
392 RAISE error_validation;
393 /*WHEN TOO_MANY_ROWS THEN
394 null;*/
395 END;
396
397 /**************************************/
398 /* Validate Occurrence Code */
399 /**************************************/
400
401 IF X_bank_occurrence_code_std = 'CONFIRMED_ENTRY'
402 AND X_document_status = 'CANCELED'
403 THEN p_error_code := 'COLL_DOC_CANCELED';
404 RAISE error_validation;
405 ELSIF X_bank_occurrence_code_std = 'CONFIRMED_ENTRY'
406 AND X_document_status = 'REFUSED'
407 THEN p_error_code := 'COLL_DOC_REFUSED';
408 RAISE error_validation;
409 ELSIF X_bank_occurrence_code_std = 'CONFIRMED_ENTRY'
410 AND X_document_status = 'WRITTEN_OFF'
411 THEN p_error_code := 'COLL_DOC_WRITTEN_OFF';
412 RAISE error_validation;
413 ELSIF X_bank_occurrence_code_std = 'PARTIAL_SETTLEMENT'
414 AND X_document_status = 'PARTIALLY_RECEIVED'
415 THEN p_error_code := 'COLL_DOC_PARTIAL_RECEIVED';
416 RAISE error_validation;
417 ELSIF X_bank_occurrence_code_std = 'CONFIRMED_ENTRY'
418 AND X_document_status = 'PARTIALLY_RECEIVED'
419 THEN p_error_code := 'COLL_DOC_PARTIAL_RECEIVED';
420 RAISE error_validation;
421 ELSIF X_bank_occurrence_code_std = 'CONFIRMED_ENTRY'
422 AND X_document_status = 'TOTALLY_RECEIVED'
423 THEN p_error_code := 'COLL_DOC_FULLY_RECEIVED';
424 RAISE error_validation;
425 ELSIF X_bank_occurrence_code_std = 'REJECTED_ENTRY'
426 AND X_document_status = 'CANCELED'
427 THEN p_error_code := 'COLL_DOC_CANCELED';
428 RAISE error_validation;
429 ELSIF X_bank_occurrence_code_std = 'REJECTED_ENTRY'
430 AND X_document_status <> 'FORMATTED'
431 THEN p_error_code := 'COLL_DOC_NOT_REJECTED';
432 RAISE error_validation;
433 ELSIF X_bank_occurrence_code_std in
434 ('FULL_SETTLEMENT','PARTIAL_SETTLEMENT')
435 AND X_document_status = 'TOTALLY_RECEIVED'
436 THEN p_error_code := 'COLL_DOC_FULLY_RECEIVED';
437 RAISE error_validation;
438 ELSIF X_bank_occurrence_code_std in
439 ('FULL_SETTLEMENT','PARTIAL_SETTLEMENT')
440 AND X_document_status = 'REFUSED'
441 THEN p_error_code := 'COLL_DOC_REFUSED';
442 RAISE error_validation;
443 ELSIF X_bank_occurrence_code_std in
444 ('FULL_SETTLEMENT','PARTIAL_SETTLEMENT')
445 AND X_document_status = 'WRITTEN_OFF'
446 THEN p_error_code := 'COLL_DOC_WRITTEN_OFF';
447 RAISE error_validation;
448 ELSIF X_bank_occurrence_code_std in
449 ('FULL_SETTLEMENT','PARTIAL_SETTLEMENT')
450 AND X_document_status = 'CANCELED'
451 THEN p_error_code := 'COLL_DOC_CANCELED';
452 RAISE error_validation;
453 /*
454 ELSIF X_bank_occurrence_code_std = 'DEBIT_BALANCE_SETTLEMENT'
458 ELSIF X_bank_occurrence_code_std = 'DEBIT_BALANCE_SETTLEMENT'
455 AND X_document_status = 'TOTALLY_RECEIVED'
456 THEN p_error_code := 'COLL_DOC_FULLY_RECEIVED';
457 RAISE error_validation;
459 AND X_document_status = 'REFUSED'
460 THEN p_error_code := 'COLL_DOC_REFUSED';
461 RAISE error_validation;
462 ELSIF X_bank_occurrence_code_std = 'DEBIT_BALANCE_SETTLEMENT'
463 AND X_document_status = 'WRITTEN_OFF'
464 THEN p_error_code := 'COLL_DOC_WRITTEN_OFF';
465 RAISE error_validation;
466 ELSIF X_bank_occurrence_code_std = 'DEBIT_BALANCE_SETTLEMENT'
467 AND X_document_status = 'CANCELED'
468 THEN p_error_code := 'COLL_DOC_CANCELED';
469 RAISE error_validation;
470 */
471 ELSIF X_bank_occurrence_code_std = 'AUTOMATIC_WRITE_OFF'
472 AND X_document_status = 'WRITTEN_OFF'
473 THEN p_error_code := 'COLL_DOC_WRITTEN_OFF';
474 RAISE error_validation;
475 ELSIF X_bank_occurrence_code_std = 'AUMOMATIC_WRITE_OFF'
476 AND X_document_status = 'REFUSED'
477 THEN p_error_code := 'COLL_DOC_REFUSED';
478 RAISE error_validation;
479 ELSIF X_bank_occurrence_code_std = 'AUMOMATIC_WRITE_OFF'
480 AND X_document_status = 'PARTIALLY_RECEIVED'
481 THEN p_error_code := 'COLL_DOC_PARTIAL_RECEIVED';
482 RAISE error_validation;
483 ELSIF X_bank_occurrence_code_std = 'AUMOMATIC_WRITE_OFF'
484 AND X_document_status = 'TOTALLY_RECEIVED'
485 THEN p_error_code := 'COLL_DOC_FULLY_RECEIVED';
486 RAISE error_validation;
487 ELSIF X_bank_occurrence_code_std = 'AUMOMATIC_WRITE_OFF'
488 AND X_document_status = 'CANCELED'
489 THEN p_error_code := 'COLL_DOC_CANCELED';
490 RAISE error_validation;
491 ELSIF X_bank_occurrence_code_std = 'PAYMENT_AFTER_WRITE_OFF'
492 AND X_document_status = 'REFUSED'
493 THEN p_error_code := 'COLL_DOC_REFUSED';
494 RAISE error_validation;
495 ELSIF X_bank_occurrence_code_std = 'PAYMENT_AFTER_WRITE_OFF'
496 AND X_document_status = 'PARTIALLY_RECEIVED'
497 THEN p_error_code := 'COLL_DOC_PARTIAL_RECEIVED';
498 RAISE error_validation;
499 ELSIF X_bank_occurrence_code_std = 'PAYMENT_AFTER_WRITE_OFF'
500 AND X_document_status = 'TOTALLY_RECEIVED'
501 THEN p_error_code := 'COLL_DOC_FULLY_RECEIVED';
502 RAISE error_validation;
503 ELSIF X_bank_occurrence_code_std = 'PAYMENT_AFTER_WRITE_OFF'
504 AND X_document_status = 'CANCELED'
505 THEN p_error_code := 'COLL_DOC_CANCELED';
506 RAISE error_validation;
507 ELSIF X_bank_occurrence_code_std = 'PAYMENT_AFTER_WRITE_OFF'
508 AND X_document_status <> 'WRITTEN_OFF'
509 THEN p_error_code := 'COLL_DOC_NOT_WRITTEN_OFF';
510 RAISE error_validation;
511 END IF;
512
513 /******************************************/
514 /* Validate Customer Name */
515 /******************************************/
516
517 /* Old code replaced because of translation issues */
518
519 /* IF X_customer_name IS NOT null THEN
520 BEGIN
521 SELECT substr(pty.party_name, 1,50)
522 INTO X_customer_name1
523 FROM hz_cust_accounts_all cst,
524 hz_parties pty,
525 ra_customer_trx trx
526 WHERE trx.bill_to_customer_id = cst.cust_account_id
527 AND cst.party_id = pty.party_id
528 AND trx.customer_trx_id = (SELECT customer_trx_id
529 FROM ar_payment_schedules
530 WHERE payment_schedule_id =
531 X_payment_schedule_id);
532 EXCEPTION
533 WHEN NO_DATA_FOUND THEN
534 p_error_code := 'INVALID_CUSTOMER_NAME';
535 RAISE error_validation;
536 WHEN TOO_MANY_ROWS THEN
537 null;
538 END;
539
540 IF rpad(substr(X_customer_name1,1,30),30) <>
541 rpad(substr(X_customer_name,1,30),30)
542 THEN p_error_code := 'INVALID_CUSTOMER_NAME';
543 RAISE error_validation;
544 END IF;
545
546 END IF; */
547
548 /* New Code for Validate customer name because of translation issues */
549
550 /* Bug 1329486 Customer name validation removed from logical val procedure */
551 /* because of special characters */
552
553 IF X_bank_occurrence_code_std = 'FULL_SETTLEMENT' THEN
554
555 /*************************/
556 /* Validate Credit Amount*/
557 /*************************/
558
559 IF nvl(X_trade_note_amount,0) <> nvl(X_credit_amount,0) -
560 nvl(X_interest_amount_received,0) +
561 nvl(X_discount_amount,0) +
562 nvl(X_abatement_amount,0)
563 THEN
564 p_error_code := 'INCORRECT_AMOUNT';
565 RAISE error_validation;
566 END IF;
567
568 END IF;
569
570 /*************************************************/
571 /* Validate Document Amount with Original Amount */
572 /*************************************************/
573
574 BEGIN
575 SELECT nvl(doc.document_amount,0)
576 INTO X_document_amount
577 FROM jl_br_ar_bank_occurrences ban,
578 jl_br_ar_occurrence_docs_all doc,
579 jl_br_ar_collection_docs cob
580 WHERE ban.std_occurrence_code = 'REMITTANCE'
581 AND ban.bank_occurrence_type = 'REMITTANCE_OCCURRENCE'
582 --AND ban.bank_number = X_bank_number
583 AND ban.bank_party_id = p_bank_party_id
584 AND doc.bank_occurrence_code = ban.bank_occurrence_code
585 AND doc.occurrence_status in ('CONFIRMED')
586 --AND doc.bank_number = ban.bank_number
587 AND doc.bank_party_id = ban.bank_party_id
588 AND doc.bank_occurrence_type = ban.bank_occurrence_type
589 AND doc.document_id = cob.document_id
590 /*
591 AND cob.document_status in ('FORMATTED','CONFIRMED')
592 AND cob.payment_schedule_id = X_payment_schedule_id;
593 */
594 AND cob.document_id = X_company_use;
595
596 EXCEPTION
597 WHEN others THEN
598 X_document_amount := -1;
599 END;
600
601 IF X_document_amount <> X_trade_note_amount THEN
602 p_error_code := 'COLL_DOC_AMOUNT_NOT_MATCH';
603 RAISE error_validation;
604 END IF;
605
606
607 /****************************/
608 /* No Validation Error */
609 /****************************/
610
611 p_error_code := 'SUCCESS';
612
613 EXCEPTION
614 WHEN error_validation THEN null;
615
616 END logical_validation;
617
618 END JL_BR_AR_LOG_VALIDATION;
619