| iiCompanyID | input | integer | Entity ID |
| ilIncludeAllCompanies | input | logical | IncludeAllCompanies |
| iiBankStateLineID | input | integer | BankStateLine ID wherefor the allocations need to be proposed |
| icBankStateLineTcRowid | input | character | BankStateLine TcRowid wherefor the allocations need to be proposed |
| icBusinessRelationCode | input | character | |
| icCode | input | character | DebtorCreditorEmployeeCode Code of the debtor/creditor/employee |
| icReference | input | character | Reference of the debtor/creditor/employee |
| icCurrencyCode | input | character | CurrencyCode that should fit the Invoice/Collection/Document. This is not used in case iiCurrencyID is passed |
| icBankAccountNumber | input | character | BankAccountNumber that should fit the Creditor-Invoice or the Debtor |
| iiPeriodYear | input | integer | |
| icJournalCode | input | character | Daybook Code |
| iiVoucher | input | integer | Voucher |
| icBankCurrencyCode | input | character | Bank Currency Code |
| itBankStateLineValueDate | input | date | Value Date of the Bank State Line |
| icTSMNumber | input | character | TSMNumber |
| icShipperCode | input | character | |
| tPossibleBankStateAlloc | output | temp-table | Table containing all possibilities that fit the selection critaria. |
| tPossibleBankStateStageAlloc | output | temp-table | Table containing all possibilities for staged payments that fit the selection critaria. |
| iiBillYear | input | integer | |
| iiBillNumber | input | integer | |
| oiReturnStatus | output | integer | Return status of the method. |
QadFinancials
/* Start the queries used inside the for... each */
assign vcShipperValues = "":U
viDebtor_ID = ?.
if icCode <> ? and icCode <> ''
then do :
<Q-5 run DebtorPrim (all) (Read) (NoCache)
(input ?, (CompanyId)
input icCode, (DebtorCode)
input ?, (Debtor_ID)
output dataset tqDebtorPrim) in BDebtor >
find tqDebtorPrim where tqDebtorPrim.tcDebtorCode = icCode no-error.
if available tqDebtorPrim
then assign viDebtor_ID = tqDebtorPrim.tiDebtor_ID.
end. /* IF icCode <> ? and icCode <> '' */
<Q-49 run DInvoiceByAllocationInfo (all) (Read) (NoCache)
(input if ilIncludeAllCompanies then ? else iiCompanyID, (CompanyId)
input icBusinessRelationCode, (BusinessRelationCode)
input ?, (DInvoiceID)
input icReference, (DInvoiceDescription)
input icCode, (DebtorCode)
input icCurrencyCode, (CurrencyCode)
input true, (DInvoiceIsOpen)
input vdMinimumAmount, (DInvoiceAmountTCMinimum)
input vdMaximumAmount, (DInvoiceAmountTCMaximum)
input ?, (PeriodYearMinimum)
input icJournalCode, (JournalCode)
input iiPeriodYear, (PeriodYear)
input iiVoucher, (Voucher)
input icTSMNumber, (DInvoiceTSMNumber)
input icShipperCode, (ShipperCode)
input ?, (CorporateGroupCode)
input ?, (CompIsOICrossCy)
input viDebtor_ID, (Debtor_ID)
input false, (DInvoiceIsSelected)
input iiBillNumber, (BillNumber)
input iiBillYear, (BillYear)
output dataset tqDInvoiceByAllocationInfo) in BDInvoice>
for each tqDInvoiceByAllocationInfo where
tqDInvoiceByAllocationInfo.tdDInvoiceBalanceDebitTC <> 0 or
tqDInvoiceByAllocationInfo.tdDInvoiceBalanceCreditTC <> 0
no-lock
break by tqDInvoiceByAllocationInfo.tiDInvoice_ID
by tqDInvoiceByAllocationInfo.tcDInvoiceOpInfoType
by tqDInvoiceByAllocationInfo.tcDInvoiceOpInfoCode:
assign vcShipperValues = if vcShipperValues = "":U
then tqDInvoiceByAllocationInfo.tcDInvoiceOpInfoCode
else vcShipperValues + ",":U + tqDInvoiceByAllocationInfo.tcDInvoiceOpInfoCode.
if last-of(tqDInvoiceByAllocationInfo.tiDInvoice_ID)
then do:
/* Check if the banknumber fits the input in case it is filled */
if icBankAccountNumber <> "":U
then do :
<Q-50 assign vlFcQueryRecordsAvailable = BankNumberPrim (Cache)
(input ?, (BankNumberId)
input tqDInvoiceByAllocationInfo.tiDebtor_ID, (ParentObjectId)
input icBankAccountNumber, (BankNumber)
input ?, (BankNumberExtension)
input ?, (BankPayFormatID)) in BBankNumber >
if vlFcQueryRecordsAvailable = false
then next.
end. /* if icBankAccountNumber <> "":U */
/* Create output records */
create tPossibleBankStateAlloc.
assign tPossibleBankStateAlloc.Company_ID = tqDInvoiceByAllocationInfo.tiCompany_ID
tPossibleBankStateAlloc.tcCompanyCode = tqDInvoiceByAllocationInfo.tcCompanyCode
tPossibleBankStateAlloc.DInvoice_ID = tqDInvoiceByAllocationInfo.tiDInvoice_ID
tPossibleBankStateAlloc.Currency_ID = ?
tPossibleBankStateAlloc.tcCurrencyCode = icBankCurrencyCode
tPossibleBankStateAlloc.BankStateLine_ID = iiBankStateLineID
tPossibleBankStateAlloc.tc_ParentRowid = icBankStateLineTcRowid
tPossibleBankStateAlloc.tc_Rowid = entry(1,tqDInvoiceByAllocationInfo.tc_rowid)
tPossibleBankStateAlloc.tcDocBusinessRelationCode = tqDInvoiceByAllocationInfo.tcBusinessRelationCode
tPossibleBankStateAlloc.tcDocNumberReference = trim(string(tqDInvoiceByAllocationInfo.tiPeriodYear)) + "/":U + trim(tqDInvoiceByAllocationInfo.tcJournalCode) + "/":U + string(tqDInvoiceByAllocationInfo.tiDInvoiceVoucher,"999999999":U) + "/":U + tqDInvoiceByAllocationInfo.tcDInvoiceDescription
tPossibleBankStateAlloc.ttDocDueDate = tqDInvoiceByAllocationInfo.ttDInvoiceDueDate
tPossibleBankStateAlloc.ttDocDiscountDueDate = tqDInvoiceByAllocationInfo.ttDInvoiceDiscountDueDate
tPossibleBankStateAlloc.ttDocInvDate = tqDInvoiceByAllocationInfo.ttDInvoiceDate
tPossibleBankStateAlloc.tdDocBalance = if tqDInvoiceByAllocationInfo.tdDInvoiceBalanceDebitTC <> 0 and tqDInvoiceByAllocationInfo.tdDInvoiceBalanceDebitTC <> ? then tqDInvoiceByAllocationInfo.tdDInvoiceBalanceDebitTC else tqDInvoiceByAllocationInfo.tdDInvoiceBalanceCreditTC
tPossibleBankStateAlloc.tdDocOriginal = abs(tqDInvoiceByAllocationInfo.tdDInvoiceOriginalCreditTC - tqDInvoiceByAllocationInfo.tdDInvoiceOriginalDebitTC)
tPossibleBankStateAlloc.BankStateAllocOpenBalTC = if tqDInvoiceByAllocationInfo.tdDInvoiceBalanceDebitTC <> 0 and tqDInvoiceByAllocationInfo.tdDInvoiceBalanceDebitTC <> ? then tqDInvoiceByAllocationInfo.tdDInvoiceBalanceDebitTC else tqDInvoiceByAllocationInfo.tdDInvoiceBalanceCreditTC
tPossibleBankStateAlloc.tcDocBalanceCrDt = if tqDInvoiceByAllocationInfo.tdDInvoiceBalanceDebitTC <> 0 and tqDInvoiceByAllocationInfo.tdDInvoiceBalanceDebitTC <> ? then {&CREDITDEBITABBREVIATION-DEBIT} else {&CREDITDEBITABBREVIATION-CREDIT}
tPossibleBankStateAlloc.tdDocVatBase = Abs(tqDInvoiceByAllocationInfo.tdDInvoiceVatBaseDebitTC - tqDInvoiceByAllocationInfo.tdDInvoiceVatBaseCreditTC)
tPossibleBankStateAlloc.tcDocVatBaseCrDt = if (tqDInvoiceByAllocationInfo.tdDInvoiceVatBaseDebitTC - tqDInvoiceByAllocationInfo.tdDInvoiceVatBaseCreditTC) >= 0 then {&CREDITDEBITABBREVIATION-DEBIT} else {&CREDITDEBITABBREVIATION-CREDIT}
tPossibleBankStateAlloc.tdDocVat = Abs(tqDInvoiceByAllocationInfo.tdDInvoiceVatDebitTC - tqDInvoiceByAllocationInfo.tdDInvoiceVatCreditTC)
tPossibleBankStateAlloc.tcDocVatCrDt = if (tqDInvoiceByAllocationInfo.tdDInvoiceVatDebitTC - tqDInvoiceByAllocationInfo.tdDInvoiceVatCreditTC) >= 0 then {&CREDITDEBITABBREVIATION-DEBIT} else {&CREDITDEBITABBREVIATION-CREDIT}
tPossibleBankStateAlloc.tcDocCurrencyCode = tqDInvoiceByAllocationInfo.tcCurrencyCode
tPossibleBankStateAlloc.tiDocPostingID = tqDInvoiceByAllocationInfo.tiPosting_ID
tPossibleBankStateAlloc.tcLocalCurrencyCode = vcCompanyLC
tPossibleBankStateAlloc.tdDocExchangeRate = tqDInvoiceByAllocationInfo.tdDInvoiceExchangeRate
tPossibleBankStateAlloc.tdDocExchangeRateScale = tqDInvoiceByAllocationInfo.tdDInvoiceRateScale
tPossibleBankStateAlloc.tdDocCCExchangeRate = tqDInvoiceByAllocationInfo.tdDInvoiceCCRate
tPossibleBankStateAlloc.tdDocCCExchangeRateScale = tqDInvoiceByAllocationInfo.tdDInvoiceCCScale
tPossibleBankStateAlloc.tcDocTSMNumber = tqDInvoiceByAllocationInfo.tcDInvoiceTSMNumber
tPossibleBankStateAlloc.tcNewBalanceCrDt = tPossibleBankStateAlloc.tcDocBalanceCrDt
tPossibleBankStateAlloc.tdNewBalanceTC = if tqDInvoiceByAllocationInfo.tdDInvoiceBalanceDebitTC <> 0 and tqDInvoiceByAllocationInfo.tdDInvoiceBalanceDebitTC <> ? then tqDInvoiceByAllocationInfo.tdDInvoiceBalanceDebitTC else tqDInvoiceByAllocationInfo.tdDInvoiceBalanceCreditTC
tPossibleBankStateAlloc.tcAllocAmountCrDt = (if tPossibleBankStateAlloc.tcDocBalanceCrDt = {&CREDITDEBITABBREVIATION-CREDIT} then {&CREDITDEBITABBREVIATION-DEBIT} else {&CREDITDEBITABBREVIATION-CREDIT})
tPossibleBankStateAlloc.tcShipperCode = vcShipperValues
/* fields must be filled, otherwise errors on save */
tPossibleBankStateAlloc.tcCurrDifferenceCrDt = {&CREDITDEBITABBREVIATION-DEBIT}
tPossibleBankStateAlloc.tcCCCurrDifferenceCrDt = {&CREDITDEBITABBREVIATION-DEBIT}
tPossibleBankStateAlloc.tcCollBalanceCrDt = {&CREDITDEBITABBREVIATION-DEBIT}
tPossibleBankStateAlloc.BankStateAllocType = "?":U
tPossibleBankStateAlloc.BankStateAllocBankRate = vdBankRate
tPossibleBankStateAlloc.BankStateAllocBankRteScale = vdBankRateScale
tPossibleBankStateAlloc.tcReasonCode = tqDInvoiceByAllocationInfo.tcReasonCode
tPossibleBankStateAlloc.tcDInvoiceDIText = tqDInvoiceByAllocationInfo.tcDInvoiceDIText
tPossibleBankStateAlloc.tcInvoiceDescription = tqDInvoiceByAllocationInfo.tcDInvoiceDescription
tPossibleBankStateAlloc.tdBankStateAllocOpenBalTCSign = if tPossibleBankStateAlloc.tcDocBalanceCrDt = {&CREDITDEBITABBREVIATION-DEBIT}
then tPossibleBankStateAlloc.BankStateAllocOpenBalTC
else (0 - tPossibleBankStateAlloc.BankStateAllocOpenBalTC)
tPossibleBankStateAlloc.tdDiscountPercentage = if /*tqDInvoiceByAllocationInfo.tiDiscPaymentCondition_ID <> 0 and tqDInvoiceByAllocationInfo.tiDiscPaymentCondition_ID <> ? and*/
itBankStateLineValueDate <= tqDInvoiceByAllocationInfo.ttDInvoiceDiscountDueDate
then tqDInvoiceByAllocationInfo.tdPaymentConditionPercentage
else 0
tPossibleBankStateAlloc.tdNonDiscAmtTC = tqDInvoiceByAllocationInfo.tdDInvoiceNonDiscAmtTC
tPossibleBankStateAlloc.ttDocPostingDate = tqDInvoiceByAllocationInfo.ttDInvoicePostingDate.
tPossibleBankStateAlloc.tiBillNumber = if tqDInvoiceByAllocationInfo.tiBillNumber <> 0
then tqDInvoiceByAllocationInfo.tiBillNumber
else ?.
tPossibleBankStateAlloc.tiBillYear = if tqDInvoiceByAllocationInfo.tiBillYear <> 0
then tqDInvoiceByAllocationInfo.tiBillYear
else ?.
tPossibleBankStateAlloc.tcDocDescription = tqDInvoiceByAllocationInfo.tcDInvoiceDescription.
/* GET THE DEDUCTION DETAIL STATUS FOR DEDUCTION INVOICE */
if tqDInvoiceByAllocationInfo.tcDInvoiceType = {&INVOICETYPE-DEDUCTION} then
do:
<Q-42 run DInvoiceDedStatusByDInvoiceID (all) (Read) (NoCache)
(input tqDInvoiceByAllocationInfo.tiCompany_ID, (CompanyId)
input tqDInvoiceByAllocationInfo.tiDInvoice_ID, (DInvoiceID)
output dataset tqDInvoiceDedStatusByDInvoiceID) in BDInvoice>
find first tqDInvoiceDedStatusByDInvoiceID where tqDInvoiceDedStatusByDInvoiceID.tcDInvoiceDeductionStatus = {&INVOICEDEDUCTSTATUS-REJECTED} no-error.
if available tqDInvoiceDedStatusByDInvoiceID then
do:
assign tPossibleBankStateAlloc.tcDInvoiceDeductionStatus = {&INVOICEDEDUCTSTATUS-REJECTED}.
assign tPossibleBankStateAlloc.tcDInvoiceDeductionStatus = {&INVOICEDEDUCTSTATUS-REJECTED}.
end.
end.
do viCounter = num-entries(vcInvoiceTypes,chr(2)) to 1 by -2 :
if entry(viCounter,vcInvoiceTypes,chr(2)) = tqDInvoiceByAllocationInfo.tcDInvoiceType
then do :
/* put untranslatable value in it */
assign tPossibleBankStateAlloc.BankStateAllocType = entry(viCounter,vcInvoiceTypes,chr(2)) no-error.
leave.
end. /* if entry */
end.
/* Miz FIN-2314 ====================================================================================== *
* Calculate correct amount of LC and CC for the invoice *
* =================================================================================================== */
<M-11 run GetPossibleAllocationsDInvoiceCrossCy
(input iiCompanyID (iiCompanyID),
output viFcReturnSuper (oiReturnStatus)) in BBankEntry>
if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then leave.
assign tPossibleBankStateAlloc.tlDiscountTaxAtPayment = false.
<Q-39 run DInvoiceVatByDInvoiceId (all) (Read) (NoCache)
(input tqDInvoiceByAllocationInfo.tiDInvoice_ID, (DInvoiceId)
output dataset tqDInvoiceVatByDInvoiceId) in BDInvoice >
for each tqDInvoiceVatByDInvoiceId where
tqDInvoiceVatByDInvoiceId.tiDInvoice_ID = tqDInvoiceByAllocationInfo.tiDInvoice_ID :
<Q-40 assign vlFcQueryRecordsAvailable = MfgTaxCodeByTaxCode (NoCache)
(input tqDInvoiceVatByDInvoiceId.tcVatCode, (TaxCode)
input tqDInvoiceVatByDInvoiceId.tcDomainCode, (DomainCode)
input true, (DiscountAtPayment)
input ?, (IsTaxByLine)) in BMfgTaxCode >
if vlFcQueryRecordsAvailable = yes or vlFcQueryRecordsAvailable = ?
then do:
assign tPossibleBankStateAlloc.tlDiscountTaxAtPayment = true
vlDiscountTaxAtInvoice = true.
leave.
end.
end. /* for each tqDInvoiceVatByDInvoiceId */
/* ================================================== */
/* Create extra records for staged payment conditions */
/* ================================================== */
if tqDInvoiceByAllocationInfo.tcPaymentConditionPaymentTyp = {&PAYMENTCONDITIONPAYMENTTYPE-STAGED}
then do:
assign vdTotalDefaultPaymentAmountTC = 0
vdTotalDefaultDiscountAmountTC = 0.
/* Calculate discountable amount of whole invoice */
if tPossibleBankStateAlloc.tlDiscountTaxAtPayment
then assign vdDiscountableInvoiceTC = tPossibleBankStateAlloc.tdDocOriginal - tPossibleBankStateAlloc.tdNonDiscAmtTC.
else assign vdDiscountableInvoiceTC = tPossibleBankStateAlloc.tdDocOriginal - tPossibleBankStateAlloc.tdNonDiscAmtTC - tPossibleBankStateAlloc.tdDocVat.
<Q-58 run DInvoiceStageByDueDate (all) (Read) (NoCache)
(input tqDInvoiceByAllocationInfo.tiDInvoice_ID, (DInvoiceID)
input ?, (DueDate)
output dataset tqDInvoiceStageByDueDate) in BDInvoice >
for each tqDInvoiceStageByDueDate where
tqDInvoiceStageByDueDate.tiDInvoice_ID = tqDInvoiceByAllocationInfo.tiDInvoice_ID :
create tPossibleBankStateStageAlloc.
assign tPossibleBankStateStageAlloc.tc_ParentRowid = tPossibleBankStateAlloc.tc_Rowid
tPossibleBankStateStageAlloc.tc_Rowid = tqDInvoiceStageByDueDate.tc_rowid
tPossibleBankStateStageAlloc.DInvoiceStage_ID = tqDInvoiceStageByDueDate.tiDInvoiceStage_ID
tPossibleBankStateStageAlloc.tdDefaultDiscountPerc = tqDInvoiceStageByDueDate.tdDInvoiceStageDiscPerc
tPossibleBankStateStageAlloc.ttDefaultDueDate = tqDInvoiceStageByDueDate.ttDInvoiceStageDueDate
tPossibleBankStateStageAlloc.ttDefaultDiscDate = tqDInvoiceStageByDueDate.ttDInvoiceStageDiscDate
vdDefaultAllocAmountTC = tqDInvoiceStageByDueDate.tdDInvoiceStageAmountTC - tqDInvoiceStageByDueDate.tdDInvoiceStageAmtAppliedTC.
if itBankStateLineValueDate <= tqDInvoiceStageByDueDate.ttDInvoiceStageDiscDate
then assign tPossibleBankStateStageAlloc.tdDefaultDiscountAmountTC = vdDiscountableInvoiceTC
* (vdDefaultAllocAmountTC / tPossibleBankStateAlloc.tdDocOriginal)
* (tqDInvoiceStageByDueDate.tdDInvoiceStageDiscPerc / 100)
tPossibleBankStateStageAlloc.tdDefaultDiscountAmountTC = <M-60 RoundAmount
(input tPossibleBankStateStageAlloc.tdDefaultDiscountAmountTC (idUnroundedAmount),
input tqDInvoiceByAllocationInfo.tiDInvoiceCurrency_ID (iiCurrencyID),
input tqDInvoiceByAllocationInfo.tcCurrencyCode (icCurrencyCode)) in BBankEntry>
tPossibleBankStateStageAlloc.tdDefaultPaymentAmountTC = vdDefaultAllocAmountTC - tPossibleBankStateStageAlloc.tdDefaultDiscountAmountTC.
else assign tPossibleBankStateStageAlloc.tdDefaultDiscountAmountTC = 0
tPossibleBankStateStageAlloc.tdDefaultPaymentAmountTC = vdDefaultAllocAmountTC.
assign vdTotalDefaultPaymentAmountTC = vdTotalDefaultPaymentAmountTC + tPossibleBankStateStageAlloc.tdDefaultPaymentAmountTC
vdTotalDefaultDiscountAmountTC = vdTotalDefaultDiscountAmountTC + tPossibleBankStateStageAlloc.tdDefaultDiscountAmountTC
tPossibleBankStateStageAlloc.tdDefaultAllocAmountTC = vdDefaultAllocAmountTC.
end. /* for each tqDInvoiceStageByDueDate */
assign tPossibleBankStateAlloc.tdDefaultPaymentAmountTC = vdTotalDefaultPaymentAmountTC
tPossibleBankStateAlloc.tdDefaultDiscountAmountTC = vdTotalDefaultDiscountAmountTC.
end. /* PAYMENTCONDITIONPAYMENTTYPE-STAGED */
else do:
/******************************************************************************************************************/
/* Calculation of Discount Amount */
/* ============================== */
/* 1) In case of Discount Tax at Payment = YES */
/* Discount Amount = Invoice amount with Tax * */
/* ((Invoice amount without Tax ?- Non-discountable amount) / Invoice amount without Tax) */
/* Discount % * */
/* (Invoice open amount / Invoice amount with Tax). */
/* 2) In case of Discount Tax at Payment = NO */
/* Discount Amount = (Invoice amount without Tax - Non-discountable amount) * */
/* Discount % * */
/* (Invoice open amount / Invoice amount with Tax). */
/******************************************************************************************************************/
if itBankStateLineValueDate <= tqDInvoiceByAllocationInfo.ttDInvoiceDiscountDueDate
then assign vdDiscountBaseTC = if tPossibleBankStateAlloc.tlDiscountTaxAtPayment
then abs(tqDInvoiceByAllocationInfo.tdDInvoiceOriginalDebitTC - tqDInvoiceByAllocationInfo.tdDInvoiceOriginalCreditTC) *
(((abs(tqDInvoiceByAllocationInfo.tdDInvoiceOriginalDebitTC - tqDInvoiceByAllocationInfo.tdDInvoiceOriginalCreditTC) -
abs(tqDInvoiceByAllocationInfo.tdDInvoiceVatDebitTC - tqDInvoiceByAllocationInfo.tdDInvoiceVatCreditTC)) - tPossibleBankStateAlloc.tdNonDiscAmtTC) /
(abs(tqDInvoiceByAllocationInfo.tdDInvoiceOriginalDebitTC - tqDInvoiceByAllocationInfo.tdDInvoiceOriginalCreditTC) -
abs(tqDInvoiceByAllocationInfo.tdDInvoiceVatDebitTC - tqDInvoiceByAllocationInfo.tdDInvoiceVatCreditTC))) *
(tPossibleBankStateAlloc.BankStateAllocOpenBalTC /
abs(tqDInvoiceByAllocationInfo.tdDInvoiceOriginalDebitTC - tqDInvoiceByAllocationInfo.tdDInvoiceOriginalCreditTC))
else ((abs(tqDInvoiceByAllocationInfo.tdDInvoiceOriginalDebitTC - tqDInvoiceByAllocationInfo.tdDInvoiceOriginalCreditTC) -
abs(tqDInvoiceByAllocationInfo.tdDInvoiceVatDebitTC - tqDInvoiceByAllocationInfo.tdDInvoiceVatCreditTC)) - tPossibleBankStateAlloc.tdNonDiscAmtTC)*
(tPossibleBankStateAlloc.BankStateAllocOpenBalTC /
abs(tqDInvoiceByAllocationInfo.tdDInvoiceOriginalDebitTC - tqDInvoiceByAllocationInfo.tdDInvoiceOriginalCreditTC))
tPossibleBankStateAlloc.tdDefaultDiscountAmountTC = <M-56 RoundAmount
(input (tqDInvoiceByAllocationInfo.tdPaymentConditionPercentage / 100) * vdDiscountBaseTC (idUnroundedAmount),
input 0 (iiCurrencyID),
input icBankCurrencyCode (icCurrencyCode)) in business>
tPossibleBankStateAlloc.tdDefaultPaymentAmountTC = tPossibleBankStateAlloc.BankStateAllocOpenBalTC -
tPossibleBankStateAlloc.tdDefaultDiscountAmountTC.
else assign tPossibleBankStateAlloc.tdDefaultPaymentAmountTC = tPossibleBankStateAlloc.BankStateAllocOpenBalTC
tPossibleBankStateAlloc.tdDefaultDiscountAmountTC = 0.
end. /* NOT PAYMENTCONDITIONPAYMENTTYPE-STAGED */
assign vcShipperValues = "":U.
end. /* End last-of */
end. /* for each tqDInvoiceByAllocationInfo no-lock */