project QadFinancials > class BCashReport > method RecalculateGLAmount

Description

Recalculate the cash report GL amounts for LC, TC and CC until the end of the Cut-Off Period.


Parameters


ilGLIsBalanceAccountinputlogical
iiGLByCodeGL_IDinputinteger
ilGLByCodeGLIsBalanceAccountinputlogical
iiCashReportGLCurrency_IDinputinteger
iiCashReportPeriodYearinputinteger
iiGLDivisionIDinputinteger
iiPeriodinputinteger
bdBalanceLCinput-outputdecimal
bdBalanceTCinput-outputdecimal
bdBalanceCCinput-outputdecimal
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BCashReport.Recalculate


program code (program4/bcashreport.p)

oiReturnStatus = -98.

<Q-13 run PostingHistForMovements
   (Start) in BPostingHist >
<Q-14 run PostingHistByBalance
   (Start) in BPostingHist >

if ilGLIsBalanceAccount
then do:   
   <Q-15 run PostingHistByBalance (all) (Read) (NoCache)
          (input viCompanyId, (CompanyId)
           input iiGLByCodeGL_ID, (GLID)
           input iiGLDivisionID, (DivisionID)
           input iiPeriod, (YearPeriod)
           input ?, (JournalID)
           input ?, (GLIsBalanceAccount)
           input ?, (LayerCando)
           input ?, (JournalCando)
           input ?, (DivisionCando)
           input ?, (CostCentreCando)
           input ?, (ProjectCando)
           input ?, (Currency)
           input ?, (FromICBusinessRelation)
           input ?, (ToICBusinessRelation)
           input ?, (ExcludeJournalTypeCode)
           output dataset tqPostingHistByBalance) in BPostingHist >

    for each tqPostingHistByBalance where
             tqPostingHistByBalance.tiGL_ID = iiGLByCodeGL_ID :
        
        /* Profit&Loss accounts have a cleared balance at the beginning of the year,    */
        /* so don't take into account postings that occurred in the previous year       */
        /* to determine the balance.                                                    */
        if (ilGLByCodeGLIsBalanceAccount = false and
          tqPostingHistByBalance.tiPostingHistYearPeriodFrom < iiCashReportPeriodYear * 100)
        then next.
                    
        if iiGLDivisionID <> 0 and 
           iiGLDivisionID <> ? and 
           tqPostingHistByBalance.tiDivision_ID <> iiGLDivisionID
        then next.
        
        if tCashReportGL.CashReportGLCurrencyView  = {&CURRENCYTYPE-TC} and 
           tqPostingHistByBalance.tiCurrency_ID   <> iiCashReportGLCurrency_ID
        then next. 
        
        assign bdBalanceLC = bdBalanceLC + tqPostingHistByBalance.tdPostingHistBalanceDebitLC
                                       - tqPostingHistByBalance.tdPostingHistBalanceCreditLC
             bdBalanceTC = bdBalanceTC + tqPostingHistByBalance.tdPostingHistBalanceDebitTC
                                       - tqPostingHistByBalance.tdPostingHistBalanceCreditTC
             bdBalanceCC = bdBalanceCC + tqPostingHistByBalance.tdPostingHistBalanceDebitCC
                                       - tqPostingHistByBalance.tdPostingHistBalanceCreditCC.
    
    end. /* for each tqPostingHistByBalance: */
end.    /* if ilGLIsBalanceAccount */

else do:
   
   <Q-16 run PostingHistForMovements (all) (Read) (NoCache)
      (input viCompanyId, (CompanyId)
       input iiGLByCodeGL_ID, (GLID)
       input iiGLDivisionID, (DivisionID)
       input iiPeriod, (Period)
       output dataset tqPostingHistForMovements) in BPostingHist >

    for each tqPostingHistForMovements where
             tqPostingHistForMovements.tiGL_ID                     = iiGLByCodeGL_ID    and
             tqPostingHistForMovements.tiPostingHistYearPeriodFrom = iiPeriod :

        if iiGLDivisionID <> 0 and 
           iiGLDivisionID <> ? and 
           tqPostingHistForMovements.tiDivision_ID <> iiGLDivisionID
        then next.
        
        if tCashReportGL.CashReportGLCurrencyView     = {&CURRENCYTYPE-TC} and 
           tqPostingHistForMovements.tiCurrency_ID   <> iiCashReportGLCurrency_ID
        then next. 
        
        assign bdBalanceLC = bdBalanceLC + tqPostingHistForMovements.tdPostingHistMovemntDebitLC
                                         - tqPostingHistForMovements.tdPostingHistMovemntCreditLC
               bdBalanceTC = bdBalanceTC + tqPostingHistForMovements.tdPostingHistMovemntDebitTC
                                         - tqPostingHistForMovements.tdPostingHistMovemntCreditTC
               bdBalanceCC = bdBalanceCC + tqPostingHistForMovements.tdPostingHistMovemntDebitCC
                                         - tqPostingHistForMovements.tdPostingHistMovemntCreditCC.
                                                                                                      
    end. /* for each tqPostingHistByForMovements: */
                 
end.    /* NOT if vlGLIsBalanceAccount */

<Q-11 run PostingHistForMovements
   (Stop) in BPostingHist >
<Q-12 run PostingHistByBalance
   (Stop) in BPostingHist >

if oiReturnStatus = -98
then oiReturnStatus = 0.