Description
AdditonalUpdatesDeleteSub; Submethod of AdditionalUpdatesDelete because it could not haold all the data
Parameters
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program6/bqbudgetcommitment.p)
/* ======================== */
/* Read once all currencies */
/* ======================== */
<Q-5 run CurrencyByCode (all) (Read) (NoCache)
(input ?, (CurrencyCode)
output dataset tqCurrencyByCode) in BCurrency >
/* ========================================================================== */
/* Go through all tBudgetCheckInfoWBSQBA-record (returned by the resolving) */
/* Note that the currency of the Q-record amy differ from the Budget-currency */
/* ========================================================================== */
for each tQBudgetLinkCommit where
tQBudgetLinkCommit.tc_Status = "D":U ,
each tBudgetCheckInfoQBC where
tBudgetCheckInfoQBC.tcParentTcRowid = string(rowid(tQBudgetLinkCommit)) ,
each tBudgetCheckInfoWBSQBC where
tBudgetCheckInfoWBSQBC.tiBudgetCheckInfoID = tBudgetCheckInfoQBC.tiBudgetCheckInfoID :
/* ======================================= */
/* Create the new BudgetLinkActual-records */
/* ======================================= */
create tNewBudgetLinkCommitFromBQ.
assign tNewBudgetLinkCommitFromBQ.Budget_ID = tBudgetCheckInfoWBSQBC.tiBudgetID
tNewBudgetLinkCommitFromBQ.BudgetPeriod_ID = tBudgetCheckInfoWBSQBC.tiBudgetPeriodID
tNewBudgetLinkCommitFromBQ.BudgetWBS_ID = tBudgetCheckInfoWBSQBC.tiBudgetWBSID
tNewBudgetLinkCommitFromBQ.POLine_ID = tQBudgetLinkCommit.POLine_ID
tNewBudgetLinkCommitFromBQ.Company_ID = tQBudgetLinkCommit.Company_ID
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitDate = tQBudgetLinkCommit.BudgetLinkCommitDate
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitInfo = tQBudgetLinkCommit.BudgetLinkCommitInfo
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitDivCode = tQBudgetLinkCommit.BudgetLinkCommitDivCode
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitGLCode = tQBudgetLinkCommit.BudgetLinkCommitGLCode
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitPrjCode = tQBudgetLinkCommit.BudgetLinkCommitPrjCode
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitCCCode = tQBudgetLinkCommit.BudgetLinkCommitCCCode
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitSafStruct = tQBudgetLinkCommit.BudgetLinkCommitSafStruct
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitSaf1Code = tQBudgetLinkCommit.budgetLinkCommitSaf1Code
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitSaf2Code = tQBudgetLinkCommit.budgetLinkCommitSaf2Code
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitSaf3Code = tQBudgetLinkCommit.budgetLinkCommitSaf3Code
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitSaf4Code = tQBudgetLinkCommit.BudgetLinkCommitSaf4Code
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitSaf5Code = tQBudgetLinkCommit.budgetLinkCommitSaf5Code
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitSaf1Concpt = tQBudgetLinkCommit.BudgetLinkCommitSaf1Concpt
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitSaf2Concpt = tQBudgetLinkCommit.BudgetLinkCommitSaf2Concpt
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitSaf3Concpt = tQBudgetLinkCommit.BudgetLinkCommitSaf3Concpt
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitSaf4Concpt = tQBudgetLinkCommit.BudgetLinkCommitSaf4Concpt
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitSaf5Concpt = tQBudgetLinkCommit.BudgetLinkCommitSaf5Concpt
tNewBudgetLinkCommitFromBQ.tc_Rowid = string(rowid(tBudgetCheckInfoWBSQBC))
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitTC = tQBudgetLinkCommit.BudgetLinkCommitTC
tNewBudgetLinkCommitFromBQ.BudgetLinkCommitQTY = (if tQBudgetLinkCommit.Unit_ID = tBudgetCheckInfoWBSQBC.tiUnitID then tQBudgetLinkCommit.BudgetLinkCommitQTY else 0).
/* ===================================== */
/* Get the exchange-rate (if applicable) */
/* ===================================== */
if tQBudgetLinkCommit.Currency_ID /* PO currency */ <> tBudgetCheckInfoWBSQBC.tiCurrencyID /* Budget-currency */
then do :
<M-36 run GetExchangeRate
(input ? (iiCompanyID),
input tQBudgetLinkCommit.Currency_ID (iiFromCurrencyID),
input ? (icFromCurrencyCode),
input tBudgetCheckInfoWBSQBC.tiCurrencyID (iiToCurrencyID),
input ? (icToCurrencyCode),
input ? (iiExchangeRateTypeID),
input {&EXCHANGERATETYPE-ACCOUNTING} (icExchangeRateTypeCode),
input tQBudgetLinkCommit.BudgetLinkCommitDate (itValidityDate),
output vdExchangeRate (odExchangeRate),
output vdExchangeRateScale (odExchangeScaleFactor),
output viFcReturnSuper (oiReturnStatus)) in BQBudgetCommitment>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then Return.
if vdExchangeRate <> 1
then do :
assign tNewBudgetLinkCommitFromBQ.BudgetLinkCommitTC = tNewBudgetLinkCommitFromBQ.BudgetLinkCommitTC * vdExchangeRate * vdExchangeRateScale.
if tBudgetCheckInfoWBSQBC.tiCurrencyID = viCompanyLCId
then assign tNewBudgetLinkCommitFromBQ.BudgetLinkCommitTC = <M-6 RoundAmount
(input tNewBudgetLinkCommitFromBQ.BudgetLinkCommitTc (idUnroundedAmount),
input viCompanyLCId (iiCurrencyID),
input '':U (icCurrencyCode)) in business>.
/* round(tNewBudgetLinkCommitFromBQ.BudgetLinkCommitTc,viCompanyLCDec). */
else if tBudgetCheckInfoWBSQBC.tiCurrencyID = viCompanyCCId
then assign tNewBudgetLinkCommitFromBQ.BudgetLinkCommitTC = <M-7 RoundAmount
(input tNewBudgetLinkCommitFromBQ.BudgetLinkCommitTC (idUnroundedAmount),
input viCompanyCCId (iiCurrencyID),
input '':U (icCurrencyCode)) in business>.
/* round(tNewBudgetLinkCommitFromBQ.BudgetLinkCommitTC,viCompanyCCDec). */
else do :
find first tqCurrencyByCode where
tqCurrencyByCode.tiCurrency_ID = tBudgetCheckInfoWBSQBC.tiCurrencyID
no-lock no-error.
if available tqCurrencyByCode
then assign tNewBudgetLinkCommitFromBQ.BudgetLinkCommitTC = <M-8 RoundAmount
(input tNewBudgetLinkCommitFromBQ.BudgetLinkCommitTC (idUnroundedAmount),
input tQBudgetLinkCommit.Currency_ID (iiCurrencyID),
input '':U (icCurrencyCode)) in business>.
end. /* if tBudgetCheckInfoWBSQBC.tiCurrencyID <> viCompanyCCId */
end. /* if vdExchangeRate <> 1 */
end. /* if tQBudgetLinkCommit.Currency_ID <> tBudgetCheckInfoWBSQBC.tiCurrencyID */
end. /* for each tBudgetCheckInfoQBC */