project QadFinancials > class BCOACrossRef > method GetCOACrossRefAltCombined1

Description

Get the correct mapping record for COA Cross Reference Types Alternate & Combined. This is the first step using an equatlity on the AccountSourceFrom.


Parameters


olMappingFoundoutputlogical
iiCOACrossRefIDinputinteger
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BCOACrossRef.GetCOACrossRef


program code (program6/bcoacrossref.p)

/* ==================================== */
/* Use following sequence to check      */
/* 1. GL, Division, CostCentre, Project */
/* 2. GL, Division, CostCentre          */
/* 3. GL, Division,           , Project */
/* 4. GL, Division,           ,         */
/* 5. GL,         ,           ,         */
/* ==================================== */
assign viLocalReturnStatus = 0
       oiReturnStatus      = -98.             

STEPSBLOCK:    
do viSteps = 1 to 5:

    DETAILBLOCK:
    for each tqCOACrossRefDetByIDParentID where
             tqCOACrossRefDetByIDParentID.tiCOACrossRef_ID          = iiCOACrossRefID and
             tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLFrom = tCOACrossRefResult.tcGLCode
             use-index SortOrder:
             
        /* =============================== */              
        /* Skip the line with only the '*' */
        /* =============================== */                      
        if tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLFrom = '*' and
           tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLTo   = ''  and
           tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCFrom = '' and
           tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo   = '' and
           tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivFrom = '' and
           tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo   = '' and
           tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjFrom = '' and
           tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo = ''
        then next.

        /* ======== */
        /* Check GL */
        /* ======== */
        if can-do("1,2,3,4,5", string(viSteps))  
        then do:
            if not (((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLTo = ? or 
                     tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLTo = '':U) and
                     tCOACrossRefResult.tcGLCode matches tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLFrom) or
                    ((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLTo <> ? and 
                      tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLTo <> '':U) and
                     tCOACrossRefResult.tcGLCode >= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLFrom and
                     tCOACrossRefResult.tcGLCode <= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcGLTo))
            then next DETAILBLOCK.
        end. /* if tCOACrossRefResult.tcGLCode <> ? */               
    
        /* ============== */
        /* Check Division */
        /* ============== */
        if can-do("1,2,3,4", string(viSteps))      
        then do:
            if not (((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo = ? or 
                     tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo = '':U) and
                     tCOACrossRefResult.tcDivisionCode matches tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivFrom) or
                    ((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo <> ? and 
                      tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo <> '':U) and
                     tCOACrossRefResult.tcDivisionCode >= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivFrom and
                     tCOACrossRefResult.tcDivisionCode <= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo))
            then next DETAILBLOCK.
        end. /* if tCOACrossRefResult.tcDivisionCode <> ? */

        if viSteps = 5 and
          ((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivFrom <> '':U and
            tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivFrom <> ?)       or
           (tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo   <> '':U and
            tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcDivTo   <> ?))
        then next DETAILBLOCK.

        /* ================= */
        /* Check Cost Centre */
        /* ================= */
        if can-do("1,2", string(viSteps))      
        then do:
            if not (((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo = ? or 
                     tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo = '':U) and
                     tCOACrossRefResult.tcCostCentreCode matches tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCFrom) or
                    ((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo <> ? and 
                      tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo <> '':U) and
                     tCOACrossRefResult.tcCostCentreCode >= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCFrom and
                     tCOACrossRefResult.tcCostCentreCode <= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo))
            then next DETAILBLOCK.
        end. /* if tCOACrossRefResult.tcCostCentreCode <> ? */ 

        if can-do("3,4,5", string(viSteps)) and
          ((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCFrom <> '':U and
            tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCFrom <> ?)       or
           (tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo   <> '':U and
            tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcCCTo   <> ?))
        then next DETAILBLOCK.

        /* ============= */
        /* Check Project */
        /* ============= */
        if can-do("1,3", string(viSteps))        
        then do:
            if not (((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo = ? or 
                     tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo = '':U) and
                     tCOACrossRefResult.tcProjectCode matches tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjFrom) or
                    ((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo <> ? and 
                      tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo <> '':U) and
                     tCOACrossRefResult.tcProjectCode >= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjFrom and
                     tCOACrossRefResult.tcProjectCode <= tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo))
            then next DETAILBLOCK.
        end. /* if tCOACrossRefResult.tcProjectCode <> ? */ 

        if can-do("2,4,5", string(viSteps)) and
          ((tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjFrom <> '':U and
            tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjFrom <> ?)       or
           (tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo   <> '':U and
            tqCOACrossRefDetByIDParentID.tcCOACrossRefDetSrcProjTo   <> ?))
        then next DETAILBLOCK.

        assign olMappingFound                                  = yes
               tCOACrossRefResult.tcTargetGLCode               = tqCOACrossRefDetByIDParentID.tcTargetGLCode
               tCOACrossRefResult.tiTargetGL_ID                = tqCOACrossRefDetByIDParentID.tiTargetGL_ID
               tCOACrossRefResult.tcTargetDivisionCode         = tqCOACrossRefDetByIDParentID.tcTargetDivisionCode
               tCOACrossRefResult.tiTargetDivision_ID          = tqCOACrossRefDetByIDParentID.tiTargetDivision_ID
               tCOACrossRefResult.tcTargetCostCentreCode       = tqCOACrossRefDetByIDParentID.tcTargetCostCentreCode
               tCOACrossRefResult.tiTargetCostCentre_ID        = tqCOACrossRefDetByIDParentID.tiTargetCostCentre_ID
               tCOACrossRefResult.tcTargetProjectCode          = tqCOACrossRefDetByIDParentID.tcTargetProjectCode
               tCOACrossRefResult.tiTargetProject_ID           = tqCOACrossRefDetByIDParentID.tiTargetProject_ID
               tCOACrossRefResult.tcTargetAltCOAStructDetCode  = tqCOACrossRefDetByIDParentID.tcTargetAltCOAStructDetCode
               tCOACrossRefResult.tiTargetAltCOAStructDet_ID   = tqCOACrossRefDetByIDParentID.tiTargetAltCOAStructDet_ID
               tCOACrossRefResult.tlGLIsDivisionAccount        = tqCOACrossRefDetByIDParentID.tlGLIsDivisionAccount
               tCOACrossRefResult.tlGLIsCostCentreAccount      = tqCOACrossRefDetByIDParentID.tlGLIsCostCentreAccount
               tCOACrossRefResult.tlGLIsProjectAccount         = tqCOACrossRefDetByIDParentID.tlGLIsProjectAccount
               tCOACrossRefResult.tlGLIsSafAccount             = tqCOACrossRefDetByIDParentID.tlGLIsSafAccount
               tCOACrossRefResult.tlCostCentreIsWithSaf        = tqCOACrossRefDetByIDParentID.tlCostCentreIsWithSaf
               tCOACrossRefResult.tlProjectIsWithSaf           = tqCOACrossRefDetByIDParentID.tlProjectIsWithSaf
               tCOACrossRefResult.tcGLExchangeMethod           = tqCOACrossRefDetByIDParentID.tcGLExchangeMethod
               tCOACrossRefResult.tcExchangeRateTypeCode       = tqCOACrossRefDetByIDParentID.tcExchangeRateTypeCode
               tCOACrossRefResult.tcAltCOAStructDetDescription = tqCOACrossRefDetByIDParentID.tcAltCOAStructDetDescription
               tCOACrossRefResult.tcAltCOAStructDetSeq         = tqCOACrossRefDetByIDParentID.tcAltCOAStructDetSeq
               tCOACrossRefResult.tiAltCOAStruct_ID            = tqCOACrossRefDetByIDParentID.tiAltCOAStruct_ID.

        leave STEPSBLOCK.

    end. /* DETAILBLOCK: */

end. /* STEPSBLOCK */
                                            
assign oiReturnStatus = viLocalReturnStatus.