Description
Create new posting as copy of existing one. Existing one has to be loaded in the instance.
Parameters
| icPostingRowId | input | character | |
| ocNewPostingRowId | output | character | |
| ilLinkedCrCyDaemonReqExists | input | logical | |
| oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program9/bjournalentry.p)
/* =================================================================================================== */
/* Method : CopyPostingToNew */
/* Desc : Create new posting as copy of existing one */
/* --------------------------------------------------------------------------------------------------- */
/* Params: (I) PostingRowId Row Id of existing posting */
/* (O) NewPostingRowId Row Id of new posting */
/* =================================================================================================== */
assign oiReturnStatus = -98.
/* =================================================================================================== */
/* Default output values */
/* =================================================================================================== */
assign ocNewPostingRowId = ?.
/* ============================================================================ */
/* Create new posting based on original one */
/* ============================================================================ */
for each bOrigPosting where
bOrigPosting.tc_Rowid = icPostingRowid:
<M-1 run AddDetailLine
(input 'Posting':U (icTable),
input ? (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then return.
buffer-copy bOrigPosting
except bOrigPosting.Posting_ID
bOrigPosting.tc_Status
bOrigPosting.tc_Rowid
bOrigPosting.tc_ParentRowid
bOrigPosting.tcTemplateCode
bOrigPosting.tlSaveAsTemplate
bOrigPosting.PostingIsAutoReversal
bOrigPosting.PostingApproveStatus
bOrigPosting.PostingVerifyStatus
bOrigPosting.CreatorUsr_ID
bOrigPosting.tcUsrLogin
bOrigPosting.LastApprovedUsr_ID
bOrigPosting.PostingApprovedDate
bOrigPosting.PostingApprovedTime
bOrigPosting.Journal_ID
to tPosting.
/* Posting Line */
for each bOrigPostingLine where
bOrigPostingLine.tc_ParentRowid = bOrigPosting.tc_Rowid:
<M-2 run AddDetailLine
(input 'PostingLine':U (icTable),
input tPosting.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then return.
buffer-copy bOrigPostingLine
except bOrigPostingLine.Posting_ID
bOrigPostingLine.PostingLine_ID
bOrigPostingLine.tc_Status
bOrigPostingLine.tc_Rowid
bOrigPostingLine.tc_ParentRowid
to tPostingLine.
assign tPostingLine.tlLinkedCrCyDaemonReqExists = ilLinkedCrCyDaemonReqExists.
/* Posting Saf */
for each bOrigPostingSaf where
bOrigPostingSaf.tc_ParentRowid = bOrigPostingLine.tc_Rowid:
<M-3 run AddDetailLine
(input 'PostingSaf':U (icTable),
input tPostingLine.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then return.
buffer-copy bOrigPostingSaf
except bOrigPostingSaf.Posting_ID
bOrigPostingSaf.PostingLine_ID
bOrigPostingSaf.PostingSaf_ID
bOrigPostingSaf.tc_Status
bOrigPostingSaf.tc_Rowid
bOrigPostingSaf.tc_ParentRowid
to tPostingSaf.
end. /* for each bOrigPostingSaf where */
/* Posting VAT */
for each bOrigPostingVat where
bOrigPostingVat.tc_ParentRowid = bOrigPostingLine.tc_Rowid:
<M-5 run AddDetailLine
(input 'PostingVat':U (icTable),
input tPostingLine.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then return.
buffer-copy bOrigPostingVat
except bOrigPostingVat.Posting_ID
bOrigPostingVat.PostingLine_ID
bOrigPostingVat.PostingVat_ID
bOrigPostingVat.tc_Status
bOrigPostingVat.tc_Rowid
bOrigPostingVat.tc_ParentRowid
to tPostingVat.
end. /* for each bOrigPostingSaf where */
/* Posting WHT */
for each bOrigPostingWHT where
bOrigPostingWHT.tc_ParentRowid = bOrigPostingLine.tc_Rowid:
<M-97 run AddDetailLine
(input 'PostingVat':U (icTable),
input tPostingLine.tc_Rowid (icParentRowid),
output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
if viFcReturnSuper <> 0 then assign oiReturnStatus = viFcReturnSuper.
if viFcReturnSuper < 0 then return.
assign tPostingVat.Currency_ID = bOrigPostingWHT.Currency_ID
tPostingVat.PeriodMark_ID = bOrigPostingWHT.PeriodMark_ID
tPostingVat.Vat_ID = bOrigPostingWHT.Vat_ID
tPostingVat.PostingVatBaseCreditCC = bOrigPostingWHT.PostingWHTBaseCreditCC
tPostingVat.PostingVatBaseCreditLC = bOrigPostingWHT.PostingWHTBaseCreditLC
tPostingVat.PostingVatBaseCreditTC = bOrigPostingWHT.PostingWHTBaseCreditTC
tPostingVat.PostingVatBaseDebitCC = bOrigPostingWHT.PostingWHTBaseDebitCC
tPostingVat.PostingVatBaseDebitLC = bOrigPostingWHT.PostingWHTBaseDebitLC
tPostingVat.PostingVatBaseDebitTC = bOrigPostingWHT.PostingWHTBaseDebitTC
tPostingVat.PostingVatExchangeRate = bOrigPostingWHT.PostingWHTExchangeRate
tPostingVat.PostingVatInOut = bOrigPostingWHT.PostingWHTInOut
tPostingVat.PostingVatOwnTaxDeclarat = bOrigPostingWHT.PostingWHTOwnTaxDeclarat
tPostingVat.PostingVatOwnTaxIDFeder = bOrigPostingWHT.PostingWHTOwnTaxIDFeder
tPostingVat.PostingVatOwnTaxIDMisc1 = bOrigPostingWHT.PostingWHTOwnTaxIDMisc1
tPostingVat.PostingVatOwnTaxIDMisc2 = bOrigPostingWHT.PostingWHTOwnTaxIDMisc2
tPostingVat.PostingVatOwnTaxIDMisc3 = bOrigPostingWHT.PostingWHTOwnTaxIDMisc3
tPostingVat.PostingVatOwnTaxIDState = bOrigPostingWHT.PostingWHTOwnTaxIDState
tPostingVat.PostingVatRateScale = bOrigPostingWHT.PostingWHTRateScale
tPostingVat.PostingVatTaxCreditCC = bOrigPostingWHT.PostingWHTTaxCreditCC
tPostingVat.PostingVatTaxCreditLC = bOrigPostingWHT.PostingWHTTaxCreditLC
tPostingVat.PostingVatTaxCreditTC = bOrigPostingWHT.PostingWHTTaxCreditTC
tPostingVat.PostingVatTaxDebitCC = bOrigPostingWHT.PostingWHTTaxDebitCC
tPostingVat.PostingVatTaxDebitLC = bOrigPostingWHT.PostingWHTTaxDebitLC
tPostingVat.PostingVatTaxDebitTC = bOrigPostingWHT.PostingWHTTaxDebitTC
tPostingVat.PostingVatTaxIDFeder = bOrigPostingWHT.PostingWHTTaxIDFeder
tPostingVat.PostingVatTaxIDMisc1 = bOrigPostingWHT.PostingWHTTaxIDMisc1
tPostingVat.PostingVatTaxIDMisc2 = bOrigPostingWHT.PostingWHTTaxIDMisc2
tPostingVat.PostingVatTaxIDMisc3 = bOrigPostingWHT.PostingWHTTaxIDMisc3
tPostingVat.PostingVatTaxIDState = bOrigPostingWHT.PostingWHTTaxIDState
tPostingVat.PostingVatTaxPointDate = bOrigPostingWHT.PostingWHTTaxPointDate
tPostingVat.PostingVatTaxTransType = bOrigPostingWHT.PostingWHTTaxTransType
tPostingVat.PostingVatTransType = bOrigPostingWHT.PostingWHTTransType
tPostingVat.FromTxzTaxZone = bOrigPostingWHT.PostingWHTFromTxzTaxZone
tPostingVat.ToTxzTaxZone = bOrigPostingWHT.PostingWHTToTxzTaxZone
tPostingVat.tcCurrencyCode = bOrigPostingWHT.tcCurrencyCode
tPostingVat.tcDomainCode = bOrigPostingWHT.tcDomainCode
tPostingVat.tcVatCode = bOrigPostingWHT.tcVatCode
tPostingVat.tcVatInOut = bOrigPostingWHT.tcVatInOut
tPostingVat.tdFullCreditTC = bOrigPostingWHT.tdFullCreditTC
tPostingVat.tdFullDebitTC = bOrigPostingWHT.tdFullDebitTC
tPostingVat.TxclTaxCls = bOrigPostingWHT.PostingWHTTxclTaxCls
tPostingVat.TxenvTaxEnv = bOrigPostingWHT.PostingWHTTxenvTaxEnv
tPostingVat.TxtyTaxType = bOrigPostingWHT.PostingWHTTxtyTaxType
tPostingVat.Txutaxusage = bOrigPostingWHT.PostingWHTTxutaxusage.
end. /* for each bOrigPostingWHT where */
end. /* for each bOrigPostingLine */
assign ocNewPostingRowId = tPosting.tc_Rowid.
end. /* for each bOrigPosting where */
/* =================================================================================================== */
/* Return */
/* =================================================================================================== */
if oiReturnStatus = -98 then assign oiReturnStatus = 0.