project QadFinancials > class BPosting > method AdditionalUpdatesBQBudgetActualN
Description
AdditionalUpdatesBQBudgetActualN; sub-method of AdditionalUpdatesBQBudgetActual that works on the new instance-data
Parameters
biQBudgetLinkActualIDCounter | input-output | integer | QBudgetLinkActualIDCounter |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program5/bposting.p)
/* Return in case we have no TC-amount */
if tPostingLine.PostingLineCreditTC = 0 and
tPostingLine.PostingLineDebitTC = 0 and
tPostingLine.PostingLineQTY = 0
then Return.
/* State the Line-info */
/* We save the IDs of GL, Project and CostCentre together with the code, they will be removed later on */
create tNewQBudgetLinkAct.
assign biQBudgetLinkActualIDCounter = biQBudgetLinkActualIDCounter + 1
tNewQBudgetLinkAct.tc_Rowid = string(biQBudgetLinkActualIDCounter)
tNewQBudgetLinkAct.Company_ID = tPosting.Company_ID
tNewQBudgetLinkAct.Journal_ID = tPosting.Journal_ID
tNewQBudgetLinkAct.BudgetLinkActualDate = tPosting.PostingDate
tNewQBudgetLinkAct.Layer_ID = tPosting.tiLayer_ID
tNewQBudgetLinkAct.LayerTypeCode = tPosting.tcLayerTypeCode
tNewQBudgetLinkAct.JournalTypeCode = tPosting.tcJournalTypeCode
tNewQBudgetLinkAct.PostingLine_ID = tPostingLine.PostingLine_ID
tNewQBudgetLinkAct.BudgetLinkActualTC = tPostingLine.PostingLineDebitTC - tPostingLine.PostingLineCreditTC
tNewQBudgetLinkAct.Currency_ID = tPostingLine.Currency_ID
tNewQBudgetLinkAct.BudgetLinkActualInfo = string(tPosting.PostingYear, "9999":U) + "/":U +
string(tPosting.PostingPeriod, "99":U) + "/":U +
tPosting.tcJournalCode + "/":U +
string(tPosting.PostingVoucher, "999999999":U)
tNewQBudgetLinkAct.BudgetLinkActualDivCode = tPostingLine.tcDivisionCode
tNewQBudgetLinkAct.BudgetLinkActualGLCode = tPostingLine.tcGLCode + chr(2) +
string(tPostingLine.GL_ID) + chr(2) +
string(true)
tNewQBudgetLinkAct.BudgetLinkActualPrjCode = if tPostingLine.Project_ID = 0 or
tPostingLine.Project_ID = ?
then "":U
else tPostingLine.tcProjectCode + chr(2) +
string(tPostingLine.Project_ID)
tNewQBudgetLinkAct.BudgetLinkActualCCCode = if tPostingLine.CostCentre_ID = 0 or
tPostingLine.CostCentre_ID = ?
then "":U
else tPostingLine.tcCostCentreCode + chr(2) +
string(tPostingLine.CostCentre_ID).
if tPostingLine.PostingLineQTY <> 0 and
tPostingLine.PostingLineQTY <> ?
then do:
assign tNewQBudgetLinkAct.BudgetLinkActualQTY = tPostingLine.PostingLineQTY.
if tPostingLine.tcUnitCode = "":U or
tPostingLine.tcUnitCode = ?
then assign tNewQBudgetLinkAct.Unit_ID = 0.
else do:
<Q-2 run UnitPrim (all) (Read) (Cache)
(input ?, (UnitID)
input tPostingLine.tcUnitCode, (UnitCode)
output dataset tqUnitPrim) in BUnit >
find first tqUnitPrim where
tqUnitPrim.tcUnitCode = tPostingLine.tcUnitCode
no-error.
assign tNewQBudgetLinkAct.Unit_ID = if available tqUnitPrim
then tqUnitPrim.tiUnit_ID
else 0.
end.
end.
/* State the SAF-info */
for each tPostingSaf where
tPostingSaf.tc_ParentRowid = tPostingLine.tc_Rowid
by tPostingSaf.PostingSafParentType
by tPostingSaf.PostingSafInputSequence:
case tPostingSaf.PostingSafParentType:
when {&POSTINGSAFPARENTTYPE-COSTCENTRE}
then find tNewQBudgetLinkAct where
tNewQBudgetLinkAct.PostingLine_ID = tPostingSaf.PostingLine_ID and
tNewQBudgetLinkAct.BudgetLinkActualCCCode <> "":U
no-error.
when {&POSTINGSAFPARENTTYPE-PROJECT}
then find tNewQBudgetLinkAct where
tNewQBudgetLinkAct.PostingLine_ID = tPostingSaf.PostingLine_ID and
tNewQBudgetLinkAct.BudgetLinkActualPrjCode <> "":U
no-error.
when {&POSTINGSAFPARENTTYPE-GL}
then find tNewQBudgetLinkAct where
tNewQBudgetLinkAct.PostingLine_ID = tPostingSaf.PostingLine_ID and
tNewQBudgetLinkAct.BudgetLinkActualCCCode = "":U and
tNewQBudgetLinkAct.BudgetLinkActualPrjCode = "":U
no-error.
end case.
if not available tNewQBudgetLinkAct
then leave.
assign tNewQBudgetLinkAct.BudgetLinkActualSafStruct = tPostingSaf.tcSafStructureCode + chr(2) +
string(tPostingSaf.SafStructure_ID).
case tPostingSaf.PostingSafInputSequence:
when 1
then assign tNewQBudgetLinkAct.BudgetLinkActualSaf1Code = tPostingSaf.tcSafCode
tNewQBudgetLinkAct.BudgetLinkActualSaf1Concpt = tPostingSaf.tcSafConceptCode.
when 2
then assign tNewQBudgetLinkAct.BudgetLinkActualSaf2Code = tPostingSaf.tcSafCode
tNewQBudgetLinkAct.BudgetLinkActualSaf2Concpt = tPostingSaf.tcSafConceptCode.
when 3
then assign tNewQBudgetLinkAct.BudgetLinkActualSaf3Code = tPostingSaf.tcSafCode
tNewQBudgetLinkAct.BudgetLinkActualSaf3Concpt = tPostingSaf.tcSafConceptCode.
when 4
then assign tNewQBudgetLinkAct.BudgetLinkActualSaf4Code = tPostingSaf.tcSafCode
tNewQBudgetLinkAct.BudgetLinkActualSaf4Concpt = tPostingSaf.tcSafConceptCode.
when 5
then assign tNewQBudgetLinkAct.BudgetLinkActualSaf5Code = tPostingSaf.tcSafCode
tNewQBudgetLinkAct.BudgetLinkActualSaf5Concpt = tPostingSaf.tcSafConceptCode.
end.
end.