iiCompanyID | input | integer | ID of the company; if unknown value or zero is passed then the current company will be used |
icInvoiceOrigin | input | character | Inidcates if it concerns a debtor or creditor. Use preprocessors for this paramater: {&INVOICEORIGIN-CREDITOR} {&INVOICEORIGIN-DEBTOR} |
icCreditorCodeDebtorCode | input | character | Code of the debtor or creditor |
ocBusinessRelationCode | output | character | BusinessRelationCode: BusinessRelation of the debtor or creditor |
ocDefaultReasonCode | output | character | Default reson-code for the debtor or creditor |
oiReturnStatus | output | integer | Return status of the method. |
/* ================== */ /* Exception handling */ /* ================== */ assign oiReturnStatus = -98 viLocalReturnStatus = 0. /* ==================== */ /* Parameter validation */ /* ==================== */ if iiCompanyID = ? or iiCompanyID = 0 then assign iiCompanyID = viCompanyId. if icInvoiceOrigin <> {&INVOICEORIGIN-CREDITOR} and icInvoiceOrigin <> {&INVOICEORIGIN-DEBTOR} then do : assign vcMsgOIAdj = trim(substitute(#T-1'Internal error. The parameter value provided for method &1 is invalid.':255(69469)T-1#,"GetBusinessRelationForCredDeb":U)) + chr(10) + trim(substitute(#T-2'Valid values for parameter &1 are &2 and &3':255(733716348)T-2#,"InvoiceOrigin":U, {&INVOICEORIGIN-CREDITOR}, {&INVOICEORIGIN-DEBTOR})) oiReturnStatus = -3. <M-3 run SetMessage (input vcMsgOIAdj (icMessage), input '':U (icArguments), input '':U (icFieldName), input '':U (icFieldValue), input 'E':U (icType), input 3 (iiSeverity), input '':U (icRowid), input 'QadFin-8107':U (icFcMsgNumber), input '':U (icFcExplanation), input '':U (icFcIdentification), input '':U (icFcContext), output viFcReturnSuper (oiReturnStatus)) in BOpenItemAdjustment> Return. end. /* if icInvoiceOrigin <> {&INVOICEORIGIN-CREDITOR} and */ if icCreditorCodeDebtorCode = "":U or icCreditorCodeDebtorCode = ? then do : assign vcMsgOIAdj = trim(substitute(#T-5'Internal error: mandatory parameter (&1) is missing':255(69471)T-5#,"CreditorCodeDebtorCode":U)) oiReturnStatus = -3. <M-4 run SetMessage (input vcMsgOIAdj (icMessage), input '':U (icArguments), input '':U (icFieldName), input '':U (icFieldValue), input 'E':U (icType), input 3 (iiSeverity), input '':U (icRowid), input 'QadFin-8108':U (icFcMsgNumber), input '':U (icFcExplanation), input '':U (icFcIdentification), input '':U (icFcContext), output viFcReturnSuper (oiReturnStatus)) in BOpenItemAdjustment> Return. end. /* if icCreditorCodeDebtorCode = "":U or */ /* =========================== */ /* Query the business-relation */ /* =========================== */ if icInvoiceOrigin = {&INVOICEORIGIN-CREDITOR} then do : <Q-12 run CreditorForReasonBusRel (all) (Read) (NoCache) (input iiCompanyID, (CompanyId) input icCreditorCodeDebtorCode, (CreditorCode) input ?, (CreditorID) output dataset tqCreditorForReasonBusRel) in BCreditor > Find first tqCreditorForReasonBusRel no-lock no-error. if not available tqCreditorForReasonBusRel then do : assign vcMsgOIAdj = trim(substitute(#T-8'The system cannot find the business relation of supplier &1.':255(69472)T-8#,icCreditorCodeDebtorCode)) oiReturnStatus = -3. <M-7 run SetMessage (input vcMsgOIAdj (icMessage), input '':U (icArguments), input '':U (icFieldName), input '':U (icFieldValue), input 'E':U (icType), input 3 (iiSeverity), input '':U (icRowid), input 'QadFin-8109':U (icFcMsgNumber), input '':U (icFcExplanation), input '':U (icFcIdentification), input '':U (icFcContext), output viFcReturnSuper (oiReturnStatus)) in BOpenItemAdjustment> Return. end. /* if not available tqCreditorForReasonBusRel */ assign ocBusinessRelationCode = tqCreditorForReasonBusRel.tcBusinessRelationCode ocDefaultReasonCode = tqCreditorForReasonBusRel.tcReasonCode. end. /* if icInvoiceOrigin = {&INVOICEORIGIN-CREDITOR} */ else do : <Q-13 run DebtorForReasonBusRel (all) (Read) (NoCache) (input iiCompanyID, (CompanyId) input icCreditorCodeDebtorCode, (DebtorCode) input ?, (DebtorID) output dataset tqDebtorForReasonBusRel) in BDebtor > Find first tqDebtorForReasonBusRel no-lock no-error. if not available tqDebtorForReasonBusRel then do : assign vcMsgOIAdj = trim(substitute(#T-10'The system cannot find the business relation of customer &1.':255(69473)T-10#,icCreditorCodeDebtorCode)) oiReturnStatus = -3. <M-9 run SetMessage (input vcMsgOIAdj (icMessage), input '':U (icArguments), input '':U (icFieldName), input '':U (icFieldValue), input 'E':U (icType), input 3 (iiSeverity), input '':U (icRowid), input 'QadFin-8110':U (icFcMsgNumber), input '':U (icFcExplanation), input '':U (icFcIdentification), input '':U (icFcContext), output viFcReturnSuper (oiReturnStatus)) in BOpenItemAdjustment> Return. end. /* if not available tqDebtorForReasonBusRel */ assign ocBusinessRelationCode = tqDebtorForReasonBusRel.tcBusinessRelationCode ocDefaultReasonCode = tqDebtorForReasonBusRel.tcReasonCode. end. /* Not if icInvoiceOrigin = {&INVOICEORIGIN-CREDITOR} */ /*If Reason Code is not "No Allocation" then it should not be default*/ if ocDefaultReasonCode <> "":U and ocDefaultReasonCode <> ? then do: <Q-32 run ReasonByIdCode (all) (Read) (NoCache) (input ?, (ReasonId) input ocDefaultReasonCode, (ReasonCode) output dataset tqReasonByIdCode) in BReason > find first tqReasonByIdCode where tqReasonByIdCode.tcReasonCode = ocDefaultReasonCode no-error. if available tqReasonByIdCode then do: if tqReasonByIdCode.tcReasonAllocationStatus <> {&ALLOCSTATUS-NOALLOC} then ocDefaultReasonCode = '':U. end. /* if available tqReasonByIdCode then do*/ end. /* if ocDefaultReasonCode <> "":U*/ /* ================== */ /* Exception handling */ /* ================== */ assign oiReturnStatus = viLocalReturnStatus.