DBA Data[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