project QadFinancials > class BPosting > method CalcCrossCompanyBusinessRelation
Description
Calculate cross company business relation code
Parameters
iiCrossCompanyId | input | integer | |
icCrossCompanyCode | input | character | CrossCompanyCode: this paramater is only used in case parameter CrossCompanyID is zero. |
ocBusinessRelationICCode | output | character | BusinessRelationICCode |
oiBusinessRelationId | output | integer | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/bposting.p)
/* =============================================================================== */
/* Method: CalcCrossCompanyBusinessRelation */
/* Descript: This method calculates code of business relation for cross company */
/* posting */
/* Parameters -------------------------------------------------------------------- */
/* Input: CrossCompanyId Id of cross company where cross company */
/* posting points to */
/* Output: BusinessRelationICCode IC-Code of business relation of cross cy */
/* BusinessRelationId ID of business relation of cross company */
/* =============================================================================== */
assign oiReturnStatus = -98
ocBusinessRelationiCCode = '':U
oiBusinessRelationId = ?.
/* ============================================================================ */
/* Validate input parameters */
/* ============================================================================ */
if (iiCrossCompanyId = 0 or iiCrossCompanyId = ?) and
(icCrossCompanyCode = "":U or icCrossCompanyCode = ?)
then do:
assign oiReturnStatus = 0.
return.
end.
/* =============================================== */
/* Convert the company-code into to the company-id */
/* =============================================== */
if iiCrossCompanyId = 0 or
iiCrossCompanyId = ?
then do :
<Q-4 run CompanyPrim (all) (Read) (NoCache)
(input ?, (LookupCompanyId)
input icCrossCompanyCode, (CompanyCode)
output dataset tqCompanyPrim) in BCompany >
find tqCompanyPrim where
tqCompanyPrim.tcCompanyCode = icCrossCompanyCode
no-lock no-error.
if not available tqCompanyPrim
then do :
assign vcMessageText = trim(substitute(#T-6'Cannot convert the cross-company-code &1 into the associated company ID because the associated company does not exist.':255(62229)T-6#,string(iiCrossCompanyId)))
oiReturnStatus = -1
vcMsgExplanation = '':U.
if available tPosting then
assign vcMsgExplanation = <M-79 GetErrorExplanation
(input tPosting.tc_Rowid (icPostingRowId),
input ? (icPostingLineRowId),
output viFcReturnSuper (oiReturnStatus)) in BPosting>.
<M-5 run SetMessage
(input vcMessageText (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QadFin-6344':U (icFcMsgNumber),
input vcMsgExplanation (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BPosting>
return.
end. /* if not available tqCompanyPrim */
assign iiCrossCompanyId = tqCompanyPrim.tiCompany_ID.
end. /* if iiCrossCompanyId = 0 or */
/* ============================================================================ */
/* Get business relation for company */
/* ============================================================================ */
<Q-2 run CompanyBusinessRelation (all) (Read) (NoCache)
(input iiCrossCompanyId, (CompanyId)
output dataset tqCompanyBusinessRelation) in BCompany >
find first tqCompanyBusinessRelation no-error.
if not available tqCompanyBusinessRelation
then do:
assign vcMessageText = #T-1'Cannot retrieve the business relation code for cross-company &1.':255(59317)T-1#
vcMessageText = substitute(vcMessageText, string(iiCrossCompanyId))
oiReturnStatus = -1
vcMsgExplanation = '':U.
if available tPosting then
assign vcMsgExplanation = <M-26 GetErrorExplanation
(input tPosting.tc_Rowid (icPostingRowId),
input ? (icPostingLineRowId),
output viFcReturnSuper (oiReturnStatus)) in BPosting>.
<M-3 run SetMessage
(input vcMessageText (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QadFin-5972':U (icFcMsgNumber),
input vcMsgExplanation (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BPosting>
return.
end.
assign ocBusinessRelationICCode = tqCompanyBusinessRelation.tcBusinessRelationICCode
oiBusinessRelationId = tqCompanyBusinessRelation.tiBusinessRelation_ID.
if ocBusinessRelationICCode = ? or
ocBusinessRelationICCode = "":U
then do:
assign vcMessageText = #T-8'The intercompany code of the business relation for company &1 was not defined. The system requires an intercompany code to process cross-company postings.':255(62385)T-8#
vcMessageText = substitute(vcMessageText, string(icCrossCompanyCode))
oiReturnStatus = -1
vcMsgExplanation = '':U.
if available tPosting then
assign vcMsgExplanation = <M-68 GetErrorExplanation
(input tPosting.tc_Rowid (icPostingRowId),
input ? (icPostingLineRowId),
output viFcReturnSuper (oiReturnStatus)) in BPosting>.
<M-7 run SetMessage
(input vcMessageText (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QadFin-6353':U (icFcMsgNumber),
input vcMsgExplanation (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BPosting>
return.
end.
/* ============================================================================ */
/* Return */
/* ============================================================================ */
if oiReturnStatus = -98 then assign oiReturnStatus = 0.