project QadFinancials > class BFixedAssetReport > method MutationsByGL

report procedure


Parameters


icLanguageCodeinputcharacter
tFilterinputtemp-table
dcrMutationsByGLoutputdataset
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program7/bfixedassetreport.p)

empty temp-table tqMutationsByGL.

<M-1 run GetReportLabels (input  'MutationsByGL':U (icReportName), 
                          input  icLanguageCode (icLanguageCode), 
                          input  tFilter (tFilter), 
                          output tqHeader (tqHeader), 
                          output tqFilter (tqFilter), 
                          output tqText (tqText), 
                          output oiReturnStatus (oiReturnStatus)) in BFixedAssetReport>
                          
if oiReturnStatus <> 0
then return.

<M-2 run SetDataItemsBasedOnFilterTT (output viFcReturnSuper (oiReturnStatus)) in BFixedAssetReport>

assign vcErrorMsg = "":U.

if vcBookCodeFilter = ?
then do:
    assign vcErrorMsg = #T-3'You must specify a value for the book filter.':50(14284)t-3#.
    <M-4 run SetMessage (input  vcErrorMsg (icMessage), 
                     input  '':U (icArguments), 
                     input  '':U (icFieldName), 
                     input  '':U (icFieldValue), 
                     input  '':U (icType), 
                     input  3 (iiSeverity), 
                     input  '':U (icRowid), 
                     input  'QADFIN-3240':U (icFcMsgNumber), 
                     input  '':U (icFcExplanation), 
                     input  '':U (icFcIdentification), 
                     input  '':U (icFcContext), 
                     output viFcReturnSuper (oiReturnStatus)) in BFixedAssetReport>    
end.

if vcCurrencyLCCCFilter = ?
then do:
    assign vcErrorMsg = #T-6'You must specify a value for the currency filter.':50(14285)t-6#.
    <M-5 run SetMessage (input  vcErrorMsg (icMessage), 
                     input  '':U (icArguments), 
                     input  '':U (icFieldName), 
                     input  '':U (icFieldValue), 
                     input  '':U (icType), 
                     input  3 (iiSeverity), 
                     input  '':U (icRowid), 
                     input  'QADFIN-3241':U (icFcMsgNumber), 
                     input  '':U (icFcExplanation), 
                     input  '':U (icFcIdentification), 
                     input  '':U (icFcContext), 
                     output viFcReturnSuper (oiReturnStatus)) in BFixedAssetReport>    
end.

if (viFromBreakOffPeriodFilter = ? or viToBreakOffPeriodFilter = ?)
then do:
    assign vcErrorMsg = #T-8'You enter a value for the From-To Break-Off Period filter.':100(14286)t-8#.
    <M-7 run SetMessage (input  vcErrorMsg (icMessage), 
                     input  '':U (icArguments), 
                     input  '':U (icFieldName), 
                     input  '':U (icFieldValue), 
                     input  '':U (icType), 
                     input  3 (iiSeverity), 
                     input  '':U (icRowid), 
                     input  'QADFIN-3242':U (icFcMsgNumber), 
                     input  '':U (icFcExplanation), 
                     input  '':U (icFcIdentification), 
                     input  '':U (icFcContext), 
                     output viFcReturnSuper (oiReturnStatus)) in BFixedAssetReport>    
end.

if (viFromBreakOffYearFilter = ? or viToBreakOffYearFilter = ?)
then do:
    assign vcErrorMsg = #T-22'You must enter a value for the From - To Break-Off Year filter.':100(14346)t-22#.
    <M-20 run SetMessage (input  vcErrorMsg (icMessage), 
                     input  '':U (icArguments), 
                     input  '':U (icFieldName), 
                     input  '':U (icFieldValue), 
                     input  '':U (icType), 
                     input  3 (iiSeverity), 
                     input  '':U (icRowid), 
                     input  'QADFIN-3276':U (icFcMsgNumber), 
                     input  '':U (icFcExplanation), 
                     input  '':U (icFcIdentification), 
                     input  '':U (icFcContext), 
                     output viFcReturnSuper (oiReturnStatus)) in BFixedAssetReport>    
end.

if vcErrorMsg <> "":U
then do:     
    assign oiReturnStatus = -1.
    return.
end.

assign vifromperiodyearperiod   = viFromBreakOffYearFilter * 100 + viFromBreakOffPeriodFilter
    vitoperiodyearperiod        = viToBreakOffYearFilter * 100 + viToBreakOffPeriodFilter.        
                               
<Q-10 run CapitalizedFixedAsset (all) (Read) (NoCache)
          (input viCompanyId, (CompanyId)
           input vcCandoAssetCodeFilter, (CandoFAAssetCode)
           input vcFromAssetCodeFilter, (FromFAAssetCode)
           input vcToAssetCodeFilter, (ToFAAssetCode)
           input vcBookCodeFilter, (BookCode)
           input vcCandoAssetTypeFilter, (CandoFAAssetType)
           input vcFromAssetTypeFilter, (FromFAAssetType)
           input vcToAssetTypeFilter, (ToFAAssetType)
           input vcCandoGLCodeFilter, (CandoGLCode)
           input vcFromGLCodeFilter, (FromGLCode)
           input vcToGLCodeFilter, (ToGLCode)
           input ?, (FromBreakOffPeriod)
           input vitoperiodyearperiod, (ToBreakOffPeriod)
           input vcCandoFACatalogueValue2Filter, (CandoFACatalogueValue2)
           input vcCandoFACatalogueValue3Filter, (CandoFACatalogueValue3)
           input vcCandoFACatalogueValue4Filter, (CandoFACatalogueValue4)
           input vcCandoFACatalogueValue5Filter, (CandoFACatalogueValue5)
           input vcCandoFACatalogueValue6Filter, (CandoFACatalogueValue6)
           output dataset tqCapitalizedFixedAsset) in BFixedAssetReport >                               

<Q-11 run DepriciationTrans (Start) in BFixedAssetReport >
<Q-12 run DisposalTrans (Start) in BFixedAssetReport >
<Q-13 run RevaluationTrans (Start) in BFixedAssetReport >

for each tqCapitalizedFixedAsset break by tqCapitalizedFixedAsset.tiFAAsset_ID:

    if first-of(tqCapitalizedFixedAsset.tiFAAsset_ID)
    then do:
        create tqMutationsByGL.
        buffer-copy tqCapitalizedFixedAsset to tqMutationsByGL.
        tqMutationsByGL.tdFAAssetBookSalvageAmountLCCC =
                   if vcCurrencyLCCCFilter = "LC":U
                   then tqCapitalizedFixedAsset.tdFAAssetBookSalvageAmountLC
                   else tqCapitalizedFixedAsset.tdFAAssetBookSalvageAmountCC.        
        if tqCapitalizedFixedAsset.tiPeriodYearPeriod >= vifromperiodyearperiod
        then do:
            if vcCurrencyLCCCFilter = "LC":U
            then assign tqMutationsByGL.tdAcqAdditionsXC        = tqCapitalizedFixedAsset.tdFACapitalAmountLC.
            else assign tqMutationsByGL.tdAcqAdditionsXC        = tqCapitalizedFixedAsset.tdPostingLineDebitCC.
        end.
        else do:                                    
            if vcCurrencyLCCCFilter = "LC":U
            then assign tqMutationsByGL.tdAcqOpeningBalanceXC   = tqCapitalizedFixedAsset.tdFACapitalAmountLC.
            else assign tqMutationsByGL.tdAcqOpeningBalanceXC   = tqCapitalizedFixedAsset.tdPostingLineDebitCC.
        end.
    end.
    else do:
        if tqCapitalizedFixedAsset.tiPeriodYearPeriod >= vifromperiodyearperiod
        then do:
            if vcCurrencyLCCCFilter = "LC":U
            then assign tqMutationsByGL.tdAcqAdditionsXC = 
                tqMutationsByGL.tdAcqAdditionsXC + tqCapitalizedFixedAsset.tdFACapitalAmountLC.
            else assign tqMutationsByGL.tdAcqAdditionsXC =
                tqMutationsByGL.tdAcqAdditionsXC + tqCapitalizedFixedAsset.tdPostingLineDebitCC.
        end.
        else do:
            if vcCurrencyLCCCFilter = "LC":U
            then assign tqMutationsByGL.tdAcqOpeningBalanceXC = 
                tqMutationsByGL.tdAcqOpeningBalanceXC + tqCapitalizedFixedAsset.tdFACapitalAmountLC.
            else assign tqMutationsByGL.tdAcqOpeningBalanceXC =
                tqMutationsByGL.tdAcqOpeningBalanceXC + tqCapitalizedFixedAsset.tdPostingLineDebitCC.
        end.                
    end.
    

    
    if last-of(tqCapitalizedFixedAsset.tiFAAsset_ID)                   
    then do:       
/*depreciation*/
        <Q-17 run DepriciationTrans (all) (Read) (NoCache)
          (input viCompanyId, (CompanyId)
           input ?, (FromBreakOffPeriod)
           input vitoperiodyearperiod, (ToBreakOffPeriod)
           input tqCapitalizedFixedAsset.tiFAAsset_ID, (FAAssetID)
           input vcBookCodeFilter, (BookCode)
           output dataset tqDepriciationTrans) in BFixedAssetReport >
        for each tqDepriciationTrans:
            if tqDepriciationTrans.tiPeriodYearPeriod >= vifromperiodyearperiod
            then do:
                if vcCurrencyLCCCFilter = "LC":U
                then do:
                    if tqDepriciationTrans.tdFADepreciationAmountLC > 0
                    then assign tqMutationsByGL.tdDepAddedXC    = 
                        tqMutationsByGL.tdDepAddedXC + tqDepriciationTrans.tdFADepreciationAmountLC.
                    else assign tqMutationsByGL.tdDepRevokedXC  = 
                        tqMutationsByGL.tdDepRevokedXC + (tqDepriciationTrans.tdFADepreciationAmountLC * (-1)).    
                end.
                else do:
                    if tqDepriciationTrans.tdFADepreciationAmountCC > 0
                    then assign tqMutationsByGL.tdDepAddedXC    = 
                        tqMutationsByGL.tdDepAddedXC + tqDepriciationTrans.tdFADepreciationAmountCC.
                    else assign tqMutationsByGL.tdDepRevokedXC  = 
                        tqMutationsByGL.tdDepRevokedXC + (tqDepriciationTrans.tdFADepreciationAmountCC * (-1)).
                end.
            end.                
            else do:
                if vcCurrencyLCCCFilter = "LC":U
                then assign tqMutationsByGL.tdDepOpeningBalanceXC = 
                    tqMutationsByGL.tdDepOpeningBalanceXC + tqDepriciationTrans.tdFADepreciationAmountLC.    
                else assign tqMutationsByGL.tdDepOpeningBalanceXC = 
                    tqMutationsByGL.tdDepOpeningBalanceXC + tqDepriciationTrans.tdFADepreciationAmountCC.            
            end.                                
        end.
          
/*disposal*/
        <Q-18 run DisposalTrans (all) (Read) (NoCache)
          (input viCompanyId, (CompanyId)
           input tqCapitalizedFixedAsset.tiFAAsset_ID, (FAAssetID)
           input vcBookCodeFilter, (BookType)
           input ?, (PeriodFrom)
           input vitoperiodyearperiod, (PeriodTo)
           output dataset tqDisposalTrans) in BFixedAssetReport >        
        for each tqDisposalTrans:        
            if tqDisposalTrans.tiPeriodYearPeriod >= vifromperiodyearperiod
            then do:
                if vcCurrencyLCCCFilter = "LC":U
                then assign tqMutationsByGL.tdAcqDisposalXC         = 
                    tqMutationsByGL.tdAcqDisposalXC + tqDisposalTrans.tdFADisposalAmountLC.
                else assign tqMutationsByGL.tdAcqDisposalXC         = 
                    tqMutationsByGL.tdAcqDisposalXC + tqDisposalTrans.tdFADisposalAmountCC.
            end.
            else do:
                if vcCurrencyLCCCFilter = "LC":U
                then assign tqMutationsByGL.tdAcqOpeningBalanceXC   = 
                    tqMutationsByGL.tdAcqOpeningBalanceXC - tqDisposalTrans.tdFADisposalAmountLC.
                else assign tqMutationsByGL.tdAcqOpeningBalanceXC   = 
                    tqMutationsByGL.tdAcqOpeningBalanceXC - tqDisposalTrans.tdFADisposalAmountCC.
            end.                           
        end.
    
/*reval*/
        <Q-19 run RevaluationTrans (all) (Read) (NoCache)
          (input viCompanyId, (CompanyId)
           input ?, (FromBreakOffPeriod)
           input vitoperiodyearperiod, (ToBreakOffPeriod)
           input tqCapitalizedFixedAsset.tiFAAsset_ID, (FAAssetID)
           input vcBookCodeFilter, (BookCode)
           output dataset tqRevaluationTrans) in BFixedAssetReport >
        for each tqRevaluationTrans:      
            if tqRevaluationTrans.tiPeriodYearPeriod >= vifromperiodyearperiod
            then do:
                if vcCurrencyLCCCFilter = "LC":U
                then assign tqMutationsByGL.tdAcqRevaluationXC      = 
                    tqMutationsByGL.tdAcqRevaluationXC + tqRevaluationTrans.tdFARevalAmountLC.
                else assign tqMutationsByGL.tdAcqRevaluationXC      = 
                    tqMutationsByGL.tdAcqRevaluationXC + tqRevaluationTrans.tdFARevalAmountCC.
            end.                            
            else do:
                if vcCurrencyLCCCFilter = "LC":U
                then assign tqMutationsByGL.tdAcqOpeningBalanceXC   = 
                    tqMutationsByGL.tdAcqOpeningBalanceXC + tqRevaluationTrans.tdFARevalAmountLC.
                else assign tqMutationsByGL.tdAcqOpeningBalanceXC   = 
                    tqMutationsByGL.tdAcqOpeningBalanceXC + tqRevaluationTrans.tdFARevalAmountCC.
            end.
        end.                                                  
    end.  
/*closing balances*/                                          
    assign tqMutationsByGL.tdAcqClosingBalanceXC = tqMutationsByGL.tdAcqOpeningBalanceXC +
        tqMutationsByGL.tdAcqAdditionsXC + tqMutationsByGL.tdAcqRevaluationXC + tqMutationsByGL.tdAcqDisposalXC
           tqMutationsByGL.tdDepClosingBalanceXC = tqMutationsByGL.tdDepOpeningBalanceXC + 
        tqMutationsByGL.tdDepAddedXC - tqMutationsByGL.tdDepRevokedXC
           tqMutationsByGL.tdNBV = tqMutationsByGL.tdAcqClosingBalanceXC - tqMutationsByGL.tdDepClosingBalanceXC. 
        
end.

<Q-14 run DepriciationTrans (Stop) in BFixedAssetReport >
<Q-15 run DisposalTrans (Stop) in BFixedAssetReport >
<Q-16 run RevaluationTrans (Stop) in BFixedAssetReport >