project QadFinancials > class BCompanyGroup > method DataLoadByInputCyGroupCompany


Parameters


oiReturnStatusoutputinteger


Internal usage


QadFinancials
method BCompanyGroup.DataLoadByInput


program code (program2/bcompanygroup.p)

/* ================================================================= */
/* CyGroupCompany                                                      */
/* ================================================================= */
/* Delete existing detail                                            */
/* ================================================================= */
for each tCyGroupCompany where
         tCyGroupCompany.tc_ParentRowid = tCyGroup.tc_Rowid:
    assign tCyGroupCompany.tc_Status = "D":U.
end.

/* ================================================================= */
/* Update / add detail                                               */
/* ================================================================= */
for each t_sCyGroupCompany where
         t_sCyGroupCompany.tc_ParentRowid = t_sCyGroup.tc_Rowid and
         t_sCyGroupCompany.tc_Status     <> "D":U:
    
    assign t_sCyGroupCompany.CyGroup_ID = t_sCyGroup.CyGroup_ID.

    if (t_sCyGroupCompany.Company_ID = 0 or 
        t_sCyGroupCompany.Company_ID = ?)       and
        t_sCyGroupCompany.tcCompanyCode <> "":U and
        t_sCyGroupCompany.tcCompanyCode <> ?   
    then do:
        <Q-18 run CompanyPrim (all) (Read) (NoCache)
           (input ?, (LookupCompanyId)
            input t_sCyGroupCompany.tcCompanyCode, (CompanyCode)
            output dataset tqCompanyPrim) in BCompany>
        find first tqCompanyPrim no-error.
        if available tqCompanyPrim
        then assign t_sCyGroupCompany.Company_ID = tqCompanyPrim.tiCompany_ID.
    end.

    find first tCyGroupCompany where
               tCyGroupCompany.tc_ParentRowid       = tCyGroup.tc_Rowid and                   
               tCyGroupCompany.Company_ID           = t_sCyGroupCompany.Company_ID no-error.
    if available tCyGroupCompany
    then assign t_sCyGroupCompany.tc_Status         = "C":U
                t_sCyGroupCompany.CyGroupCompany_ID = tCyGroupCompany.CyGroupCompany_ID.
    else do:             
        <M-29 run AddDetailLine
           (input  'CyGroupCompany':U (icTable), 
            input  tCyGroup.tc_Rowid (icParentRowid), 
            output viFcReturnSuper (oiReturnStatus)) in BCMask>
        if viFcReturnSuper <> 0 then oiReturnStatus = viFcReturnSuper.
        if viFcReturnSuper < 0  then return.
        
        assign t_sCyGroupCompany.tc_Status = "N":U.
    end.

    /* ================================================================= */
    /* override value for identity fields in input                       */
    /* ================================================================= */
    assign t_sCyGroupCompany.CyGroupCompany_ID = tCyGroupCompany.CyGroupCompany_ID
           /* ================================================================= */
           /* Update input to allow correct matching                            */
           /* ================================================================= */
           t_sCyGroupCompany.CyGroup_ID      = tCyGroupCompany.CyGroup_ID
           t_sCyGroupCompany.tc_Rowid        = tCyGroupCompany.tc_Rowid
           t_sCyGroupCompany.tc_ParentRowid  = tCyGroup.tc_Rowid.
end.