project QadFinancials > class BJournalEntry > method CopyPostingToNew

Description

Create new posting as copy of existing one. Existing one has to be loaded in the instance.


Parameters


icPostingRowIdinputcharacter
ocNewPostingRowIdoutputcharacter
ilLinkedCrCyDaemonReqExistsinputlogical
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BJournalEntry.CreateReplaceEntry
method BJournalEntry.CreateReverseEntry


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.