project QadFinancials > class BDInvoice > method ValidateComponentAllJournal

Description

This method is a submethod of ValidateComponentAll.

This method validates the Journal of the debtor invoice.


Parameters


blstartJrnlByJrnlIDCodeTypeinput-outputlogicalis query tqJournalByJournalIDCodeType already started or not ?
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BDInvoice.ValidateComponentAll


program code (program5/bdinvoice.p)

for each t_sDInvoice where
         t_sDInvoice.tc_Status <> "D":U :

    if can-find(first t_sDInvoiceOpInfo where
                      t_sDInvoiceOpInfo.tc_ParentRowid = t_sDInvoice.tc_Rowid and
                      t_sDInvoiceOpInfo.tc_Rowid       <> "D":U)
    then next.

    if can-find(first t_sDInvoiceMovement where
                      t_sDInvoiceMovement.DInvoice_ID          = t_sDInvoice.DInvoice_ID  and
                      t_sDInvoiceMovement.DInvoiceMovementType = {&MOVEMENTTYPE-MOVEMENT} and
                      t_sDInvoiceMovement.tc_Status            = "N":U)
    then next.

    if t_sDInvoice.tcJournalCode <> "":U and t_sDInvoice.tcJournalCode <> ?
    then do:
        if blstartJrnlByJrnlIDCodeType = false
        then do:
             <Q-14 run JournalByJournalIDCodeType  (Start) in BJournal >
            assign blstartJrnlByJrnlIDCodeType = true.
        end.
         <Q-13 run JournalByJournalIDCodeType (all) (Read) (NoCache)
            (input ?, (CompanyId)
             input t_sDInvoice.Journal_ID, (JournalID)
             input ?, (JournalCode)
             input ?, (JournalTypeCode)
             output dataset tqJournalByJournalIDCodeType) in BJournal >
        find first tqJournalByJournalIDCodeType where
                   tqJournalByJournalIDCodeType.tiJournal_ID = t_sDInvoice.Journal_ID
                   no-lock no-error.
        if not available tqJournalByJournalIDCodeType
        then do:
            assign vcMessage      = trim(substitute(#T-4'Daybook &1 is not defined in the system.':150(60889)T-4#, t_sDInvoice.tcJournalCode))
                   oiReturnStatus = -1.
            <M-2 run SetMessage
               (input  vcMessage (icMessage), 
                input  '':U (icArguments), 
                input  'tDInvoice.tcJournalCode':U (icFieldName), 
                input  t_sDInvoice.tcJournalCode (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  t_sDInvoice.tc_Rowid (icRowid), 
                input  'QadFin-6176':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
                return.
        end.
        
        if tqJournalByJournalIDCodeType.tlJournalIsActive = false
        then do:
            assign vcMessage      = #T-8'Only active daybooks are allowed.':150(1077)T-8#
                   oiReturnStatus = -1.
            <M-7 run SetMessage
               (input  vcMessage (icMessage), 
                input  '':U (icArguments), 
                input  'DInvoice.Journal_ID':U (icFieldName), 
                input  t_sDInvoice.Journal_ID (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  t_sDInvoice.tc_Rowid (icRowid), 
                input  'QadFin-7417':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
        end.    
    

        if tqJournalByJournalIDCodeType.tcJournalControl <> {&JOURNALCONTROL-FINANCIAL}
        then do:
            assign vcMessage      = trim(substitute(#T-5'Thhe daybook is defined with an invalid daybook control (&1).':150(60885)T-5#, tqJournalByJournalIDCodeType.tcJournalControl)) + chr(10) +
                                    trim(substitute(#T-6'Only &1 daybook controls are allowed.':150(60886)T-6#,{&JOURNALCONTROL-FINANCIAL-TR}))
                   oiReturnStatus = -1.
            <M-3 run SetMessage
               (input  vcMessage (icMessage), 
                input  '':U (icArguments), 
                input  'tDInvoice.tcJournalCode':U (icFieldName), 
                input  t_sDInvoice.tcJournalCode (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  t_sDInvoice.tc_Rowid (icRowid), 
                input  'QadFin-6177':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
        end.
        
        if (t_sDInvoice.DInvoiceType    = {&INVOICETYPE-INVOICE} and
            tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-DEBTORINVOICE} and
            tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-SELFBILLINVOICE}) or
           (t_sDInvoice.DInvoiceType    = {&INVOICETYPE-FINANCECHARGE} and
           tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-DEBTORFINANCECHARGE}) or
           (t_sDInvoice.DInvoiceType    = {&INVOICETYPE-CREDITNOTE} and
           tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-DEBTORCREDITNOTE}) or
           (t_sDInvoice.DInvoiceType    = {&INVOICETYPE-INVOICECORRECTION} and
           tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-DEBTORINVOICECORRECT}) or
           (t_sDInvoice.DInvoiceType    = {&INVOICETYPE-CREDITNOTECORRECTION} and
           tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-DEBTORCREDITNOTECORRECT}) or
           (t_sDInvoice.DInvoiceType    = {&INVOICETYPE-DEDUCTION} and
           tqJournalByJournalIDCodeType.tcJournalTypeCode <> {&JOURNALTYPE-DEDUCTION})
        then do:
            assign vcMessage      = trim(substitute(#T-10'The daybook has an invalid daybook type (&1).':150(1078)T-10#,tqJournalByJournalIDCodeType.tcJournalTypeCode)) + chr(10) +
                                    trim(substitute(#T-11'You can only specify the following daybook types: &1, &2, &3, &4, &5, &6,&7.':150(664236560)T-11#,{&JOURNALTYPE-DEBTORINVOICE-TR},{&JOURNALTYPE-DEBTORCREDITNOTE-TR},{&JOURNALTYPE-DEBTORFINANCECHARGE-TR},{&JOURNALTYPE-DEBTORINVOICECORRECT-TR},{&JOURNALTYPE-DEBTORCREDITNOTECORRECT-TR},{&JOURNALTYPE-SELFBILLINVOICE-TR},{&JOURNALTYPE-DEDUCTION}))
                   oiReturnStatus = -1.
            <M-9 run SetMessage
               (input  vcMessage (icMessage), 
                input  '':U (icArguments), 
                input  'Dinvoice.Journal_ID':U (icFieldName), 
                input  t_sDInvoice.DInvoiceType (icFieldValue), 
                input  'E':U (icType), 
                input  3 (iiSeverity), 
                input  t_sDInvoice.tc_Rowid (icRowid), 
                input  'QadFin-7428':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BDInvoice>
        end.
 

    end.
end.