project QadFinancials > class BPosting > method CalculateCrossCy

Description

CalculateCrossCy


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BPosting.Calculate


program code (program1/bposting.p)

/* ==================================================================== */
/* Return if there is no cross-cy                                       */
/* ==================================================================== */
if not can-find (first tPostingLine where
                       tPostingLine.CrossCompany_ID             <> 0 and 
                       tPostingLine.CrossCompany_ID             <> ? and 
                       tPostingLine.CrossCompanyPosting_ID      <> 0 and 
                       tPostingLine.CrossCompanyPosting_ID      <> ? and 
                       tPostingLine.CrossCompanyPostingLine_ID  <> 0 and 
                       tPostingLine.CrossCompanyPostingLine_ID  <> ?)
then return.

/* ==================================================================== */
/* Start queries to Resolve the non-RKBL on PostingLine.CrossCompany_ID */
/* ==================================================================== */
<Q-1 run PostingLineByLineIDCrossCy (Start) in BPosting >

/* ===================================== */
/* Go through all cross-cy posting-lines */
/* ===================================== */
for each tPostingLine where
         tPostingLine.CrossCompany_ID             <> 0 and 
         tPostingLine.CrossCompany_ID             <> ? and 
         tPostingLine.CrossCompanyPosting_ID      <> 0 and 
         tPostingLine.CrossCompanyPosting_ID      <> ? and 
         tPostingLine.CrossCompanyPostingLine_ID  <> 0 and 
         tPostingLine.CrossCompanyPostingLine_ID  <> ? :
    
    /* =================================================== */
    /* Resolve the non-RKBL on PostingLine.CrossCompany_ID */
    /* =================================================== */
    <Q-3 run PostingLineByLineIDCrossCy (all) (Read) (NoCache)
       (input tPostingLine.CrossCompany_ID, (CompanyId)
        input tPostingLine.CrossCompanyPostingLine_ID, (PostingLineID)
        input ?, (SharedSetId)
        output dataset tqPostingLineByLineIDCrossCy) in BPosting >
    find first tqPostingLineByLineIDCrossCy where 
               tqPostingLineByLineIDCrossCy.tiPostingLine_ID = tPostingLine.CrossCompanyPostingLine_ID
               no-lock no-error.
    if available tqPostingLineByLineIDCrossCy
    then assign tPostingLine.tcCrossCompanyCode         = tqPostingLineByLineIDCrossCy.tcCompanyCode
                tPostingLine.tcCrossCompanyGLCode       = tqPostingLineByLineIDCrossCy.tcGLCode
                tPostingLine.tcCrossCompanyCurrencyCode = tqPostingLineByLineIDCrossCy.tcCurrencyCode
                tPostingLine.tcCrossCompanyIntercoCode  = tqPostingLineByLineIDCrossCy.tcBusinessRelationICCode.
    else assign tPostingLine.tcCrossCompanyCode         = "?":U
                tPostingLine.tcCrossCompanyGLCode       = "?":U
                tPostingLine.tcCrossCompanyCurrencyCode = "?":U
                tPostingLine.tcCrossCompanyIntercoCode  = "?":U.

    find first t_iPostingLine where
               t_iPostingLine.tc_Rowid = tPostingLine.tc_Rowid
               no-error.
    if available t_iPostingLine
    then assign t_iPostingLine.tcCrossCompanyCode         = tPostingLine.tcCrossCompanyCode
                t_iPostingLine.tcCrossCompanyGLCode       = tPostingLine.tcCrossCompanyGLCode
                t_iPostingLine.tcCrossCompanyCurrencyCode = tPostingLine.tcCrossCompanyCurrencyCode
                t_iPostingLine.tcCrossCompanyIntercoCode  = tPostingLine.tcCrossCompanyIntercoCode.
end. /* for each tPostingLine where */

/* ==================================================================== */
/* Stop queries to Resolve the non-RKBL on PostingLine.CrossCompany_ID  */
/* ==================================================================== */
<Q-4 run PostingLineByLineIDCrossCy (Stop) in BPosting >