project QadFinancials > class BDDocument > method InitialValues

Description

Add code here to initialize the calculated fields of a 'new' record (= a record that must be created in the application database) in a class temp-table.


Parameters


icTableNameinputcharacterName of the database table of which a record is created in the class temp-table.
oiReturnStatusoutputinteger


Internal usage


unused


program code (program/bddocument.p)

<ANCESTOR-CODE>

if icTableName = "DDocument":U
then do:
    <Q-5 run DDocumentStatusByTypeStatusGL (Start) in BDDocumentStatus >
    
    /* First try to find the status with Type=Cheque and Status=Init */
    <Q-59 run DDocumentStatusByTypeStatusGL (all) (Read) (Cache)
       (input viCompanyId, (CompanyId)
        input {&PAYFORMATPAYINSTRUMENT-CHEQUE}, (DDocumentStatusDocumentType)
        input {&DOCUMENTSTATUS-INIT}, (DDocumentStatusStatus)
        input ?, (BankGLId)
        input ?, (BankGLCode)
        output dataset tqDDocumentStatusByTypeStatusGL) in BDDocumentStatus>
    
    find first tqDDocumentStatusByTypeStatusGL where
               tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusDocType = {&PAYFORMATPAYINSTRUMENT-CHEQUE} and
               tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusStatus  = {&DOCUMENTSTATUS-INIT}
               no-error.
    
    if not available tqDDocumentStatusByTypeStatusGL
    then do : 
        
        /* Then try to find the status with Type=Cheque and Status<>Bounced/PaidCon/Paid */
        <Q-6 run DDocumentStatusByTypeStatusGL (all) (Read) (Cache)
           (input viCompanyId, (CompanyId)
            input {&PAYFORMATPAYINSTRUMENT-CHEQUE}, (DDocumentStatusDocumentType)
            input ?, (DDocumentStatusStatus)
            input ?, (BankGLId)
            input ?, (BankGLCode)
            output dataset tqDDocumentStatusByTypeStatusGL) in BDDocumentStatus>
    
        find first tqDDocumentStatusByTypeStatusGL where
                   tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusDocType = {&PAYFORMATPAYINSTRUMENT-CHEQUE} and
                   tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusStatus <> {&DOCUMENTSTATUS-BOUNCED}    and
                   tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusStatus <> {&DOCUMENTSTATUS-PAIDCON}    and
                   tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusStatus <> {&DOCUMENTSTATUS-PAID}
                   no-error.
        
    end. /* if not available tqDDocumentStatusByTypeStatusGL */ 
    
    if not available tqDDocumentStatusByTypeStatusGL
    then do:
        
        /* Then try to find the status with Status<>Bounced/PaidCon/Paid */
        <Q-12 run DDocumentStatusByTypeStatusGL (all) (Read) (Cache)
           (input viCompanyId, (CompanyId)
            input ?, (DDocumentStatusDocumentType)
            input {&DOCUMENTSTATUS-INIT}, (DDocumentStatusStatus)
            input ?, (BankGLId)
            input ?, (BankGLCode)
            output dataset tqDDocumentStatusByTypeStatusGL) in BDDocumentStatus>

        find first tqDDocumentStatusByTypeStatusGL where
                   tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusStatus = {&DOCUMENTSTATUS-INIT}
                   no-error.
                   
    end. /* if not available tqDDocumentStatusByTypeStatusGL */

    if not available tqDDocumentStatusByTypeStatusGL
    then do:
        
        /* Then try to find the first status  */
        <Q-13 run DDocumentStatusByTypeStatusGL (all) (Read) (Cache)
           (input viCompanyId, (CompanyId)
            input ?, (DDocumentStatusDocumentType)
            input ?, (DDocumentStatusStatus)
            input ?, (BankGLId)
            input ?, (BankGLCode)
            output dataset tqDDocumentStatusByTypeStatusGL) in BDDocumentStatus>

        find first tqDDocumentStatusByTypeStatusGL
                   no-error.
    end. /*  if not available tqDDocumentStatusByTypeStatusGL */

    assign tDDocument.Company_ID            = viCompanyId
           tDDocument.DDocumentCreationDate = today
           tDDocument.DDocumentCreationTime = time
           tDDocument.DDocumentDueDate      = today
           tDDocument.DDocumentStatus       = if available tqDDocumentStatusByTypeStatusGL
                                              then tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusStatus
                                              else "":U
           tDDocument.DDocumentSubType      = {&DOCUMENTSUBTYPE-MAN}
           tDDocument.DDocumentTimesPrinted = 0
           tDDocument.DDocumentType         = if available tqDDocumentStatusByTypeStatusGL
                                              then tqDDocumentStatusByTypeStatusGL.tcDDocumentStatusDocType
                                              else {&PAYFORMATPAYINSTRUMENT-CHEQUE}
           tDDocument.DDocumentYear         = year(today)
           tDDocument.tcCreationUsrLogin    = vcUserLogin
           tDDocument.tlInvoicesLinked      = false
           tDDocument.ttPostingDate         = today.

    if tDDocument.DDocumentStatus = {&DOCUMENTSTATUS-INIT}
    then assign tDDocument.DDocumentValueDays = tqDDocumentStatusByTypeStatusGL.tiDDocumentStatusDefValDays.

    <Q-9 run DDocumentStatusByTypeStatusGL (Stop) in BDDocumentStatus >
end.