project QadFinancials > class BCInvoice > method DefaultValuesSupplier
Description
default some fields based on the supplier
Parameters
| icPoNbr | input | character | |
| bcCreditorCode | input-output | character | |
| icCInvoiceType | input | character | |
| itCInvoicePostingDate | input | date | |
| itCInvoiceDate | input | date | |
| icOwnVatCurrencyCode | input | character | |
| itCInvoiceTaxPointDate | input | date | |
| icCInvoiceRowID | input | character | |
| idCInvoiceOriginalTC | input | decimal | |
| iiCInvoicePostingYear | input | integer | |
| icCInvoiceJournalCode | input | character | |
| iiCInvoiceVoucher | input | integer | Voucher |
| ocBusinessRelationCode | output | character | |
| ocBusinessRelationName1 | output | character | |
| ocCInvoiceCreditorVatNumber | output | character | |
| ocCurrencyCode | output | character | |
| ocNormalPaymentConditionCode | output | character | |
| ocNormalPaymentConditionType | output | character | |
| ocReasonAllocationStatus | output | character | |
| ocReasonCode | output | character | |
| olCInvoiceIsTaxable | output | logical | |
| olCInvoiceIsInvoiceApproved | output | logical | |
| olCInvoiceIsLockPayment | output | logical | |
| olCInvoiceIsLogisticMatching | output | logical | |
| ocCreditorTaxClass | output | character | |
| ocCreditorTaxUsage | output | character | |
| ocCreditorTaxZone | output | character | |
| oiCreditorCnControlGLProfileId | output | integer | |
| oiCreditorInvControlGLProfileId | output | integer | |
| oiCreditorDivisionProfileId | output | integer | |
| olCreditorIsIndividualPayment | output | logical | |
| ocCredVatNumberCountryCode | output | character | |
| ocTransactionStartCountryCode | output | character | |
| oiShipFromAddressId | output | integer | |
| olControlGLIsDivisionAccount | output | logical | |
| ocDivisionCode | output | character | |
| ocCostCentreCode | output | character | |
| ocProjectCode | output | character | |
| ocBLWIGroupCode | output | character | |
| odCInvoiceExchangeRate | output | decimal | |
| odCInvoiceRateScale | output | decimal | |
| otCInvoiceDueDate | output | date | |
| otCInvoiceDiscountDueDate | output | date | |
| ocMFJournalCode | output | character | |
| odCInvoiceVatExchangeRate | output | decimal | |
| odCInvoiceVatRateScale | output | decimal | |
| ocPurchaseTypeCode | output | character | |
| oiCreditorId | output | integer | |
| olBusinessRelationIsInterco | output | logical | |
| ocBusinessRelationICCode | output | character | |
| olCountryIsEUCountry | output | logical | |
| ocJournalCode | output | character | |
| ocDaybookSet | output | character | |
| ocSite | output | character | |
| tApiCInvoiceStage | output | temp-table | |
| oiCInvoiceVoucher | output | integer | |
| olCInvoiceIsInitialStatus | output | logical | |
| ocRoleName | output | character | This parameter is not set anywhere in the business logic currently. It was added to enable NI Customizations default it per customer's specification. May be added to standard product in the future |
| olCreditorIsWHT | output | logical | |
| ocDefaultWHTCode | output | character | Default WHT Code for creditor based on the current domain |
| ocWHTType | output | character | |
| ocWHTDesc | output | character | |
| odWHTPct | output | decimal | |
| odWHTPctRecv | output | decimal | |
| ocWHTGLCode | output | character | |
| ocWHTDivisionCode | output | character | |
| ocControlGLCode | output | character | control GL Code |
| oiControlGLID | output | integer | Control GL ID |
| odCInvoiceCCExchangeRate | output | decimal | |
| odCInvoiceCCRateScale | output | decimal | |
| oiBusinessRelationID | output | integer | |
| oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
QadFitnesse
program code (program3/bcinvoice.p)
if bcCreditorCode = ?
then assign bcCreditorCode = "":U.
if bcCreditorCode = "":U
then return.
find first tCInvoice where
tCInvoice.tc_Rowid = icCInvoiceRowId
no-error.
if not available tCInvoice
then do:
<M-32 run SetMessage
(input #T-33'Invalid Supplier Invoice':255(999890851)T-33# (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'D':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QadFin-9369':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
assign oiReturnStatus = -3.
return.
end.
assign vcOrginialCreditorCode = bcCreditorCode.
<Q-26 run CreditorBeginsForCIDefault (all) (Read) (NoCache)
(input viCompanyId, (CompanyId)
input bcCreditorCode, (CreditorCode)
input {&ADDRESSTYPECODESYSTEM-HEADOFFICE}, (AddressTypeCode)
output dataset tqCreditorBeginsForCIDefault) in BCreditor >
find first tqCreditorBeginsForCIDefault no-error.
if not available tqCreditorBeginsForCIDefault
then do:
assign oiReturnStatus = -4.
return.
end.
else do:
find first tqCreditorBeginsForCIDefault
where tqCreditorBeginsForCIDefault.tcCreditorCode = bcCreditorCode no-error.
if not available tqCreditorBeginsForCIDefault
then do:
find tqCreditorBeginsForCIDefault
where tqCreditorBeginsForCIDefault.tcCreditorCode BEGINS bcCreditorCode no-error.
/* if there's only one record - ambiguous records will not be found and available will be
false */
if available tqCreditorBeginsForCIDefault
then do:
assign bcCreditorCode = tqCreditorBeginsForCIDefault.tcCreditorCode.
end.
else do:
assign bcCreditorCode = vcOrginialCreditorCode
oiReturnStatus = -4.
return.
end.
end.
end.
assign ocBusinessRelationCode = tqCreditorBeginsForCIDefault.tcBusinessRelationCode
ocBusinessRelationName1 = tqCreditorBeginsForCIDefault.tcBusinessRelationName1
olBusinessRelationIsInterco = tqCreditorBeginsForCIDefault.tlBusinessRelationIsInterco
ocBusinessRelationICCode = if olBusinessRelationIsInterco
then tqCreditorBeginsForCIDefault.tcBusinessRelationICCode
else "":U
ocCInvoiceCreditorVatNumber = tqCreditorBeginsForCIDefault.tcCreditorTaxIDState
ocCurrencyCode = tqCreditorBeginsForCIDefault.tcCurrencyCode
ocNormalPaymentConditionCode = tqCreditorBeginsForCIDefault.tcPaymentConditionCode
ocNormalPaymentConditionType = tqCreditorBeginsForCIDefault.tcPaymentConditionPaymentTyp
ocReasonAllocationStatus = tqCreditorBeginsForCIDefault.tcReasonAllocationStatus
ocReasonCode = tqCreditorBeginsForCIDefault.tcReasonCode
olCInvoiceIsTaxable = tqCreditorBeginsForCIDefault.tlCreditorIsTaxable
olCInvoiceIsInvoiceApproved = tqCreditorBeginsForCIDefault.tlReasonIsInvoiceApproved
olCInvoiceIsLockPayment = tqCreditorBeginsForCIDefault.tlReasonIsLockPayment
olCInvoiceIsLogisticMatching = tqCreditorBeginsForCIDefault.tlReasonIsLogisticMatching
olCInvoiceIsInitialStatus = tqCreditorBeginsForCIDefault.tlReasonIsInitialStatus
ocCreditorTaxUsage = tqCreditorBeginsForCIDefault.tcTxuTaxUsage
ocCreditorTaxZone = tqCreditorBeginsForCIDefault.tcTxzTaxZone
ocCreditorTaxClass = tqCreditorBeginsForCIDefault.tcTxclTaxCls
oiCreditorCnControlGLProfileId = tqCreditorBeginsForCIDefault.tiCnControlGLProfile_ID
oiCreditorInvControlGLProfileId = tqCreditorBeginsForCIDefault.tiInvControlGLProfile_ID
oiCreditorDivisionProfileId = tqCreditorBeginsForCIDefault.tiDivisionProfile_ID
olCreditorIsIndividualPayment = tqCreditorBeginsForCIDefault.tlCreditorIsIndividualPaymnt
oiCreditorId = tqCreditorBeginsForCIDefault.tiCreditor_ID
olCreditorIsWHT = tqCreditorBeginsForCIDefault.tlCreditorIsWHT
oiBusinessRelationID = tqCreditorBeginsForCIDefault.tiBusinessRelation_ID.
/* Get control account */
assign viControlGLProfileId = if icCInvoiceType = {&INVOICETYPE-PREPAYMENT}
then tqCreditorBeginsForCIDefault.tiPrePayControlGLProfile_ID
else
if icCInvoiceType = {&INVOICETYPE-INVOICE} or
icCInvoiceType = {&INVOICETYPE-INVOICECORRECTION}
then tqCreditorBeginsForCIDefault.tiInvControlGLProfile_ID
else tqCreditorBeginsForCIDefault.tiCnControlGLProfile_ID.
if viControlGLProfileId = ? or viControlGLProfileId = 0
then assign vlError = true.
else do:
<Q-29 run ProfileLinkByGL (all) (Read) (NoCache)
(input viControlGLProfileId, (GlProfileId)
input viCompanyId, (CompanyId)
output dataset tqProfileLinkByGL) in BProfile >
find first tqProfileLinkByGL where
tqProfileLinkByGL.tiProfile_ID = viControlGLProfileId
no-error.
if not available tqProfileLinkByGL
then assign vlError = true.
end.
if vlError
then do:
<M-30 run SetMessage
(input trim(#T-31'The system could not find a supplier control account record.':150(1053)T-31#) (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input tCInvoice.tc_Rowid (icRowid),
input 'QadFin-9368':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
assign oiReturnStatus = -1.
return.
end. /* end if not available tqProfileLinkByGL */
assign tCInvoice.tcControlGLCode = tqProfileLinkByGL.tcGLCode
tCInvoice.ControlGL_ID = tqProfileLinkByGL.tiGL_ID
/* needed on ui for drafts, otherwise ui overwrite values of business */
ocControlGLCode = tqProfileLinkByGL.tcGLCode
oiControlGLID = tqProfileLinkByGL.tiGL_ID.
if (vcActivityCode = "InitialCreate":U and olCInvoiceIsInitialStatus = false)
then do:
assign ocReasonAllocationStatus = '':U
ocReasonCode = '':U
olCInvoiceIsInvoiceApproved = false
olCInvoiceIsLockPayment = false
olCInvoiceIsLogisticMatching = false
olCInvoiceIsInitialStatus = false.
/* check for unique code where initial = true */
<Q-25 run ReasonByInitialStatus (all) (Read) (NoCache)
(input true, (ReasonIsInitialStatus)
output dataset tqReasonByInitialStatus) in BReason >
find first tqReasonByInitialStatus where
tqReasonByInitialStatus.tlReasonIsInitialStatus = true
no-error.
if available tqReasonByInitialStatus
then do:
assign ocReasonAllocationStatus = tqReasonByInitialStatus.tcReasonAllocationStatus
ocReasonCode = tqReasonByInitialStatus.tcReasonCode
olCInvoiceIsInvoiceApproved = tqReasonByInitialStatus.tlReasonIsInvoiceApproved
olCInvoiceIsLockPayment = tqReasonByInitialStatus.tlReasonIsLockPayment
olCInvoiceIsLogisticMatching = tqReasonByInitialStatus.tlReasonIsLogisticMatching
olCInvoiceIsInitialStatus = tqReasonByInitialStatus.tlReasonIsInitialStatus.
find next tqReasonByInitialStatus where
tqReasonByInitialStatus.tlReasonIsInitialStatus = true no-error.
if available tqReasonByInitialStatus
then do:
assign ocReasonAllocationStatus = '':U
ocReasonCode = '':U
olCInvoiceIsInvoiceApproved = false
olCInvoiceIsLockPayment = false
olCInvoiceIsLogisticMatching = false
olCInvoiceIsInitialStatus = false.
end.
end.
end.
<Q-22 run AddressForInvoiceDefault (all) (Read) (NoCache)
(input tqCreditorBeginsForCIDefault.tiBusinessRelation_ID, (BusinessRelationId)
input {&ADDRESSTYPECODESYSTEM-HEADOFFICE}, (AddressTypeCode)
output dataset tqAddressForInvoiceDefault) in BBusinessRelation >
find first tqAddressForInvoiceDefault where
tqAddressForInvoiceDefault.tiBusinessRelation_ID = tqCreditorBeginsForCIDefault.tiBusinessRelation_ID and
tqAddressForInvoiceDefault.tcAddressTypeCode = {&ADDRESSTYPECODESYSTEM-HEADOFFICE}
no-error.
assign ocCredVatNumberCountryCode = if available tqAddressForInvoiceDefault
then tqAddressForInvoiceDefault.tcCountryCode
else "":U
ocTransactionStartCountryCode = if available tqAddressForInvoiceDefault
then tqAddressForInvoiceDefault.tcCountryCode
else "":U
olCountryIsEUCountry = if available tqAddressForInvoiceDefault
then tqAddressForInvoiceDefault.tlCountryIsEUCountry
else false
oiShipFromAddressId = if available tqAddressForInvoiceDefault
then tqAddressForInvoiceDefault.tiAddress_ID
else 0.
<M-15 run DefaultValuesInvoiceType
(input icCInvoiceRowID (icCInvoiceRowId),
input icCInvoiceType (icCInvoiceType),
input tqCreditorBeginsForCIDefault.tiInvControlGLProfile_ID (iiCreditorInvControlGLProfileId),
input tqCreditorBeginsForCIDefault.tiCnControlGLProfile_ID (iiCreditorCnControlGLProfileId),
input tqCreditorBeginsForCIDefault.tiDivisionProfile_ID (iiDivisionProfileId),
input iiCInvoiceVoucher (iiOldCInvoiceVoucher),
input icCInvoiceJournalCode (icOldJournalCode),
input iiCInvoicePostingYear (iiJournalYear),
input olCInvoiceIsInitialStatus (ilCInvoiceIsInitialStatus),
output olControlGLIsDivisionAccount (olControlGLIsDivisionAccount),
output ocDivisionCode (ocDivisionCode),
output ocCostCentreCode (ocCostCentreCode),
output ocProjectCode (ocProjectCode),
output ocJournalCode (ocJournalCode),
output oiCInvoiceVoucher (oiCInvoiceVoucher),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
if tqCreditorBeginsForCIDefault.tiBLWIGroup_ID <> 0 and
tqCreditorBeginsForCIDefault.tiBLWIGroup_ID <> ?
then do:
<Q-8 run BLWIGroupPrim (all) (Read) (NoCache)
(input tqCreditorBeginsForCIDefault.tiBLWIGroup_ID, (BLWIGroupId)
input ?, (BLWIGroupCode)
output dataset tqBLWIGroupPrim) in BBLWIGroup >
find first tqBLWIGroupPrim where
tqBLWIGroupPrim.tiBLWIGroup_ID = tqCreditorBeginsForCIDefault.tiBLWIGroup_ID
no-error.
assign ocBLWIGroupCode = if available tqBLWIGroupPrim
then tqBLWIGroupPrim.tcBLWIGroupCode
else "":U.
end.
else assign ocBLWIGroupCode = "":U.
<M-16 run DefaultValuesCurrency
(input tCInvoice.Company_ID (iiCompanyID),
input tqCreditorBeginsForCIDefault.tcCurrencyCode (icCurrencyCode),
input tqCreditorBeginsForCIDefault.tiCurrency_ID (iiCurrencyId),
input itCInvoicePostingDate (itCInvoicePostingDate),
input icOwnVatCurrencyCode (icOwnVatCurrencyCode),
input itCInvoiceTaxPointDate (itCInvoiceTaxPointDate),
input itCInvoiceDate (itCInvoiceDate),
output odCInvoiceExchangeRate (odCInvoiceExchangeRate),
output odCInvoiceRateScale (odCInvoiceRateScale),
output odCInvoiceVatExchangeRate (odCInvoiceVatExchangeRate),
output odCInvoiceVatRateScale (odCInvoiceVatRateScale),
output odCInvoiceCcExchangeRate (odCInvoiceCCExchangeRate),
output odCInvoiceCCRateScale (odCInvoiceCCRateScale),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
assign viPaymentConditionID = if tqCreditorBeginsForCIDefault.tcPaymentConditionPaymentTyp = {&PAYMENTCONDITIONPAYMENTTYPE-STAGED}
then tqCreditorBeginsForCIDefault.tiNormalPaymentCondition_ID
else ?.
<M-19 run DefaultValuesPaymentCondition
(input ? (icPaymentConditionCode),
input viPaymentConditionID (iiPaymentConditionID),
input itCInvoiceDate (itCInvoiceDate),
input icCInvoiceRowID (icCInvoiceRowID),
input idCInvoiceOriginalTC (idCInvoiceOriginalTC),
input ocCurrencyCode (icCurrencyCode),
input false (ilCInvoiceIsTaxExcluded),
input tqCreditorBeginsForCIDefault.tcPaymentConditionPaymentTyp (icPaymentConditionPaymentType),
input tqCreditorBeginsForCIDefault.tcPaymentConditionPeriodType (icPaymentConditionPeriodType),
input tqCreditorBeginsForCIDefault.ttPaymentConditionBaseDate (itPaymentConditionBaseDate),
input tqCreditorBeginsForCIDefault.tiPaymentConditionDaysMonths (iiPaymentConditionDaysMonths),
input tqCreditorBeginsForCIDefault.tiPaymentConditionSupplDays (iiPaymentConditionSupplDays),
input tqCreditorBeginsForCIDefault.tiPaymentConditionBaseDays (iiPaymentConditionBaseDays),
input tqCreditorBeginsForCIDefault.tiPaymentConditionDueDays (iiPaymentConditionDueDays),
input tqCreditorBeginsForCIDefault.tcPaymentConditionDescript (icPaymentConditionDescript),
input tqCreditorBeginsForCIDefault.tdPaymentConditionPercentage (idPaymentConditionPercentage),
input tqCreditorBeginsForCIDefault.tcPaymentConditionPdDiscType (icPaymentConditionPdtypediscount),
input tqCreditorBeginsForCIDefault.tiPaymentConditionDayMthDisc (iiPaymentConditionDayMthsDisc),
input tqCreditorBeginsForCIDefault.tiPaymentConditionSupDayDisc (iiPaymentConditionSupDaysDisc),
output tqCreditorBeginsForCIDefault.tcPaymentConditionPaymentTyp (ocPaymentConditionPaymentType),
output otCInvoiceDueDate (otCInvoiceDueDate),
output otCInvoiceDiscountDueDate (otCInvoiceDiscountDueDate),
output tApiCInvoiceStage (tApiCInvoiceStage),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
<M-17 run GetMFJournal
(input viCompanyId (iiCompanyId),
input tqCreditorBeginsForCIDefault.tcReasonAllocationStatus (icReasonAllocationStatus),
output ocMFJournalCode (ocMFJournalCode),
output vcDummy (ocLayerTypeCode),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
if tqCreditorBeginsForCIDefault.tiPurchaseType_ID <> 0 and
tqCreditorBeginsForCIDefault.tiPurchaseType_ID <> ?
then do:
<Q-21 run PurchaseTypePrim (all) (Read) (NoCache)
(input tqCreditorBeginsForCIDefault.tiPurchaseType_ID, (PurchaseTypeId)
input ?, (PurchaseTypeCode)
output dataset tqPurchaseTypePrim) in BPurchaseType >
find first tqPurchaseTypePrim where
tqPurchaseTypePrim.tiPurchaseType_ID = tqCreditorBeginsForCIDefault.tiPurchaseType_ID
no-error.
assign ocPurchaseTypeCode = if available tqPurchaseTypePrim
then tqPurchaseTypePrim.tcPurchaseTypeCode
else "":U.
end.
else assign ocPurchaseTypeCode = "":U.
<Q-36 run SupplierForDaybookSetSite (all) (Read) (NoCache)
(input vcDomainCode, (DomainCode)
input bcCreditorCode, (SupplierCode)
output dataset tqSupplierForDaybookSetSite) in BMfgSupplier >
find first tqSupplierForDaybookSetSite where tqSupplierForDaybookSetSite.tcvd_addr = bcCreditorCode no-error.
if available tqSupplierForDaybookSetSite
then do:
assign ocSite = tqSupplierForDaybookSetSite.tcvd_site.
if tqSupplierForDaybookSetSite.tcvd_daybookset <> "":U and
tqSupplierForDaybookSetSite.tcvd_daybookset <> ?
then assign ocDaybookSet = tqSupplierForDaybookSetSite.tcvd_daybookset.
else assign ocDaybookSet = vcPOCDefaultDaybookSet.
if icPoNbr = "":U or
icPoNbr = ?
then do:
<M-34 run DefaultValuesDaybookSetCodeSite
(input icCInvoiceRowID (icCInvoiceRowID),
input icCInvoiceType (icInvoiceType),
input olCInvoiceIsInitialStatus (ilCInvoiceIsInitialStatus),
input-output ocDaybookSet (bcDaybookSetCode),
input-output ocSite (bcSite),
input true (ilUpdateDaybookAndVoucher),
input-output ocJournalCode (bcDaybook),
input-output oiCInvoiceVoucher (biVoucher),
input 0 (iiOldCInvoicePostingYear),
input ? (icOldJournalCode),
input 0 (iiOldCInvoiceVoucher),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then return.
end. /* if icPoNbr = "":U or */
else do:
<M-68 run DefaultValuesDaybookSetCodeSite
(input icCInvoiceRowID (icCInvoiceRowID),
input icCInvoiceType (icInvoiceType),
input olCInvoiceIsInitialStatus (ilCInvoiceIsInitialStatus),
input-output ocDaybookSet (bcDaybookSetCode),
input-output ocSite (bcSite),
input false (ilUpdateDaybookAndVoucher),
input-output ocJournalCode (bcDaybook),
input-output oiCInvoiceVoucher (biVoucher),
input 0 (iiOldCInvoicePostingYear),
input ? (icOldJournalCode),
input 0 (iiOldCInvoiceVoucher),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then return.
end.
end.
/* Get default WHT Code for supplier */
<Q-13 run CreditorVatByCreditorDomainId (all) (Read) (NoCache)
(input viCompanyId, (CompanyId)
input ?, (CreditorId)
input bcCreditorCode, (CreditorCode)
input viDomainID, (DomainId)
output dataset tqCreditorVatByCreditorDomainId) in BCreditor >
find first tqCreditorVatByCreditorDomainId where
tqCreditorVatByCreditorDomainId.tcCreditorCode = bcCreditorCode and
tqCreditorVatByCreditorDomainId.tiDomain_ID = viDomainID
no-error.
if available tqCreditorVatByCreditorDomainId
then do:
assign ocDefaultWHTCode = tqCreditorVatByCreditorDomainId.tcVatCode
vdDummy = 0.
<M-61 run DefaultValuesWHTCode
(input icCInvoiceRowID (icCInvoiceRowId),
input icCInvoiceType (icCInvoiceType),
input ocDefaultWHTCode (icWHTCode),
input-output vdDummy (bdCInvoiceWHTFeesDebitTC),
input-output vdDummy (bdCInvoiceWHTFeesCreditTC),
input ocCurrencyCode (icCInvoiceCurrencyCode),
input '':U (iiCInvoiceCurrencyId),
input '':U (idCInvoiceExchangeRate),
input '':U (idCInvoiceExchangeRateScale),
input itCInvoicePostingDate (itCInvoicePostingDate),
input itCInvoiceDate (itCInvoiceDate),
output ocWHTType (ocTx2TaxType),
output ocWHTDesc (ocTx2Desc),
output odWHTPct (odTx2TaxPct),
output odWHTPctRecv (odWHTBasePercentage),
output ocWHTGLCode (ocWHTAcct),
output ocWHTDivisionCode (ocWHTSubAcct),
output vdDummy (odCInvoiceWHTTaxableFeesDebitTC),
output vdDummy (odCInvoiceWHTTaxableFeesCreditTC),
output vdDummy (odCInvoiceWHTTaxableFeesDebitLC),
output vdDummy (odCInvoiceWHTTaxableFeesCreditLC),
output vdDummy (odCInvoiceWHTTaxableFeesDebitCC),
output vdDummy (odCInvoiceWHTTaxableFeesCreditCC),
output vdDummy (odCInvoiceWHTAmountDebitTC),
output vdDummy (odCInvoiceWHTAmountCreditTC),
output vdDummy (odCInvoiceWHTAmountDebitLC),
output vdDummy (odCInvoiceWHTAmountCreditLC),
output vdDummy (odCInvoiceWHTAmountDebitCC),
output vdDummy (odCInvoiceWHTAmountCreditCC),
output vlDummy (olWHTIsUpdAllow),
output viFcReturnSuper (oiReturnStatus)) in BCInvoice>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then return.
end.