project QadFinancials > class BPosting > method CalculateCrossCy
Description
CalculateCrossCy
Parameters
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
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 >