project QadFinancials > class BYearClosing > method AdditionalUpdatesPostingCloseOpen

Description

Additional Updates Posting Closing & Reopening


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BYearClosing.AdditionalUpdatesPosting


program code (program5/byearclosing.p)

/* Create the postings for the Closing */
assign oiReturnStatus = -98.

CLOSINGBLOCK:
for each tYearClosing where
         tYearClosing.tc_Status = 'N':U:

    /* Retrieve last accounting period */
    <Q-1 run PeriodByYearPeriod (all) (Read) (NoCache)
       (input tYearClosing.Company_ID, (CompanyId)
        input tYearClosing.YearClosingAccountingYear, (PeriodYear)
        input 0, (PeriodPeriod)
        input 0, (PeriodId)
        output dataset tqPeriodByYearPeriod) in BPeriod>

    find last tqPeriodByYearPeriod where
              tqPeriodByYearPeriod.tiCompany_ID = tYearClosing.Company_ID and
              tqPeriodByYearPeriod.tiPeriodYear = tYearClosing.YearClosingAccountingYear and
              tqPeriodByYearPeriod.tcPeriodTypeCode <> {&PERIODTYPECODE-YEARCLOSING} 
              no-error.
    if not available tqPeriodByYearPeriod
    then do:
        assign vcMessage           = trim(substitute(#T-3'Cannot find a GL period for GL calendar year &1.':200(999890616)T-3#, trim(string(tYearClosing.YearClosingAccountingYear)) ))
               viLocalReturnStatus = -1.
        <M-2 run SetMessage
           (input  vcMessage (icMessage), 
            input  '':U (icArguments), 
            input  'tYearClosing.YearClosingAccountingYear':U (icFieldName), 
            input  tYearClosing.YearClosingAccountingYear (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  tYearClosing.tc_Rowid (icRowid), 
            input  'QadFin-4664':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BYearClosing>               
        leave CLOSINGBLOCK.
    end.                                                 
    
    /* ================================================================== */
    /* Get the balances per GL/Div for the official layer for this entity */
    /* ================================================================== */
    
    
    <M-76 run CalculateBalanceByGLByDivDIRECT
       (input  tYearClosing.Company_ID (iiCompanyID), 
        input  tYearClosing.tcLayerTypeCode (icLayerTypeCode), 
        input  (tqPeriodByYearPeriod.tiPeriodYear * 100) + tqPeriodByYearPeriod.tiPeriodPeriod (iiYearPeriod), 
        input  tYearClosing.YearClosingIsInclDivision (ilIsInclDivision), 
        output viPostingHistRecordsRead (oiPostingHistRecordsRead), 
        input  tYearClosing.tcLayerCode (icLayerCode), 
        output viFcReturnSuper (oiReturnStatus)) in BYearClosing>
                  
    /* ================================ */
    /* Closing Postings for PL accounts */
    /* ================================ */
    <M-39 run AdditionalUpdatesPostingCloseOpenPL  (output viFcReturnSuper (oiReturnStatus)) in BYearClosing>
    
    if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
    then assign viLocalReturnStatus = viFcReturnSuper.                           
    if viFcReturnSuper < 0 
    then leave CLOSINGBLOCK.            

    /* =========================================== */
    /* Closing Postings for Balance Sheet accounts */
    /* =========================================== */
    <M-40 run AdditionalUpdatesPostingCloseOpenBS  (output viFcReturnSuper (oiReturnStatus)) in BYearClosing>

    if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
    then assign viLocalReturnStatus = viFcReturnSuper.                           
    if viFcReturnSuper < 0 
    then leave CLOSINGBLOCK.                                                        

end. /* for each tYearClosing where tc_status = 'N' */         
    
assign oiReturnStatus = viLocalReturnStatus.