project QadFinancials > class BJournalEntry > method GetPostingStatusChange


Parameters


iiCompanyIdinputinteger
itPostingDateFrominputdate
itPostingDateToinputdate
icPostingCreatorinputcharacter
icPostingVerifierinputcharacter
itCreationDateinputdate
itVerificationDateinputdate
icReferenceinputcharacter
iiPostingPeriodinputinteger
iiPostingYearinputinteger
iiPostingVoucherinputinteger
icJournalCodeFrominputcharacter
icJournalCodeToinputcharacter
icJournalTypeCodeinputcharacter
icApproveStatusinputcharacter
icVerifyStatusinputcharacter
icActivityCodeinputcharacter
tPostingStatusChangeoutputtemp-table
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BJournalEntry.ApiGetPostingStatusChange


program code (program1/bjournalentry.p)

assign oiReturnStatus         = -98  
       viLocalReturnStatus    = 0       
       vlUsrQueryStarted      = false
       viVerifierUsr_ID       = ?.

/* Normalize input paramters */
if iiCompanyId = 0 or iiCompanyId = ? 
then assign iiCompanyId = viCompanyId.

POSTINGSTATUSCHANGEBLOCK:
do on error undo, leave:

    empty temp-table tStatusDataDictionaryVerify.
    empty temp-table tStatusDataDictionaryApprove.

    /* ======================= */
    /* Clear the instance Data */
    /* ======================= */
    <M-6 run ClearData  (output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
    if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0   
    then assign viLocalReturnStatus = viFcReturnSuper.
    if viFcReturnSuper < 0
    then leave POSTINGSTATUSCHANGEBLOCK.

    /* ============================================= */
    /* Retrieve the data and load it in the instance */
    /* ============================================= */
    if icActivityCode = 'Verify':U or icActivityCode = 'Approve':U
    then do:
        empty temp-table tPostingStatusChange.
        /* set the ranges for dates */        
        <M-98 run GetDateRangeParameters
           (input-output itPostingDateFrom (btFromDate), 
            input-output itPostingDateTo (btToDate), 
            output vtPostingDate (otOneDate), 
            output oiReturnStatus (oiReturnStatus)) in BJournalEntry>
        /* set the ranges for journal codes */     
        <M-91 run GetCharacterRangeParameters
           (input-output icJournalCodeFrom (bcFromChar), 
            input-output icJournalCodeTo (bcToChar), 
            output vcJournalCode (ocOneChar), 
            output oiReturnStatus (oiReturnStatus)) in BJournalEntry>    
     
        if icActivityCode = 'Verify':U 
        then do:        
            <Q-5 run PostingByVerifyStatus (all) (Read) (NoCache)
               (input iiCompanyId, (CompanyId)
                input itPostingDateFrom, (PostingDateFrom)
                input itPostingDateTo, (PostingDateTo)
                input itCreationDate, (PostingSystemDate)
                input icReference, (PostingText)
                input iiPostingyear, (PostingYear)
                input iiPostingVoucher, (PostingVoucher)
                input icVerifyStatus, (PostingVerifyStatus)
                input icJournalCodeFrom, (JournalCodeFrom)
                input icPostingCreator, (UsrLogin)
                input iiPostingPeriod, (PeriodPeriod)
                input icJournalCodeTo, (JournalCodeTo)
                input icJournalTypeCode, (JournalTypeCode)
                input vtPostingDate, (PostingDate)
                input vcJournalCode, (JournalCode)
                output dataset tqPostingByVerifyStatus) in BJournalEntry>    
                                
             for each tqPostingByVerifyStatus:
                                 
                create tPostingStatusChange.
       
                <M-18 run BufferCopy
                   (input  buffer tqPostingByVerifyStatus:Handle (ihFrom), 
                    input  buffer tPostingStatusChange:Handle (ihTo), 
                    output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
                    
                if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
                    then viLocalReturnStatus = viFcReturnSuper.
                if viFcReturnSuper < 0
                    then leave POSTINGSTATUSCHANGEBLOCK.             
             end.                   
                                                    
        end. /* end of Verify Activity*/     
        else do:             
            if icPostingVerifier <> '':U and icPostingVerifier <> ? 
            then do:
                <Q-3 run UserByUsrLogin (all) (Read) (NoCache)
                   (input icPostingVerifier, (UsrLogin)
                    output dataset tqUserByUsrLogin) in BUser>
                find first tqUserByUsrLogin no-error.
                if not available tqUserByUsrLogin
                then leave POSTINGSTATUSCHANGEBLOCK.               
                else assign viVerifierUsr_ID = tqUserByUsrLogin.tiUsr_ID.
            end. /* if icPostingVerifier <> '':U and icPostingVerifier <> ? */
    
            <Q-9 run PostingByApproveStatus (all) (Read) (NoCache)
               (input iiCompanyId, (CompanyId)
                input itPostingDateFrom, (PostingDateFrom)
                input itPostingDateTo, (PostingDateTo)
                input itVerificationDate, (PostingVerifiedDate)
                input icReference, (PostingText)
                input iiPostingYear, (PostingYear)
                input iiPostingVoucher, (PostingVoucher)
                input icApproveStatus, (PostingApproveStatus)
                input icJournalCodeFrom, (JournalCodeFrom)
                input icPostingCreator, (UsrLogin)
                input iiPostingPeriod, (PeriodPeriod)
                input itCreationDate, (PostingSystemDate)
                input viVerifierUsr_ID, (LastVerifiedUsr_ID)
                input icVerifyStatus, (PostingVerifyStatus)
                input icJournalCodeTo, (JournalCodeTo)
                input icJournalTypeCode, (JournalTypeCode)
                input vtPostingDate, (PostingDate)
                input vcJournalCode, (JournalCode)
                output dataset tqPostingByApproveStatus) in BJournalEntry>  
                                
             for each tqPostingByApproveStatus:
                                 
                create tPostingStatusChange.
       
                <M-59 run BufferCopy
                   (input  buffer tqPostingByApproveStatus:Handle (ihFrom), 
                    input  buffer tPostingStatusChange:Handle (ihTo), 
                    output viFcReturnSuper (oiReturnStatus)) in BJournalEntry>
                    
                if viFcReturnSuper <> 0 and viLocalReturnStatus >= 0
                    then viLocalReturnStatus = viFcReturnSuper.
                if viFcReturnSuper < 0
                    then leave POSTINGSTATUSCHANGEBLOCK.
             
             end.                           
        end. /* end of Approve Activity*/
            
        /* ================================== */
        /* create tPostingStatusChange for UI */
        /* ================================== */
       
        for each tPostingStatusChange:
                                                         
            /*Reinitializing class level variable with null values so as to get new translated value next time when the call is done to above metnods*/
            assign vcPostingVerifyStatusAll = '':U
                       vcPostingApproveStatusAll = '':U.                                              
                       
            /* dont want to get the translatable string each time, so store it in a temp table */      
            find first tStatusDataDictionaryVerify where tStatusDataDictionaryVerify.tcKey = tPostingStatusChange.PostingVerifyStatus no-lock no-error.
                 
            if available tStatusDataDictionaryVerify then
                assign  tPostingStatusChange.PostingVerifyStatus = tStatusDataDictionaryVerify.tcItem.
            else do:
                create tStatusDataDictionaryVerify.
                assign tStatusDataDictionaryVerify.tcKey = tPostingStatusChange.PostingVerifyStatus.
    
                assign  tPostingStatusChange.PostingVerifyStatus  = <M-11 GetPostingVerifyStatusCalc  (input  tPostingStatusChange.PostingVerifyStatus (icStatus)) in BJournalEntry>
                            tStatusDataDictionaryVerify.tcItem = tPostingStatusChange.PostingVerifyStatus.   
            end.             
             
             /* tStatusDataDictionaryApprove */      
            find first tStatusDataDictionaryApprove where tStatusDataDictionaryApprove.tcKey = tPostingStatusChange.PostingApproveStatus no-lock no-error.
             
             if available tStatusDataDictionaryApprove then
                 assign  tPostingStatusChange.PostingApproveStatus = tStatusDataDictionaryApprove.tcItem.
             else do:
                  create tStatusDataDictionaryApprove.
                  assign tStatusDataDictionaryApprove.tcKey = tPostingStatusChange.PostingApproveStatus.
                  assign tPostingStatusChange.PostingApproveStatus = <M-26 GetPostingApproveStatusCalc  (input  tPostingStatusChange.PostingApproveStatus (icStatus)) in BJournalEntry>
                             tStatusDataDictionaryApprove.tcItem = tPostingStatusChange.PostingApproveStatus.   
             end.
             
             if vcListJOURNALTYPECODES = "":U then assign vcListJOURNALTYPECODES = {&JOURNALTYPES}.
             do viCounter = num-entries(vcListJOURNALTYPECODES, chr(2)) to 1 by -2 :
                if entry(viCounter, vcListJOURNALTYPECODES, chr(2)) = tPostingStatusChange.tcJournalTypeCode
                then do :
                    assign tPostingStatusChange.tcJournalTypeCode = entry(viCounter - 1, vcListJOURNALTYPECODES, chr(2)) no-error.
                    leave.
                end. /* if entry(viCounter, vcListJOURNALTYPECODES, chr(2)) */
             end. /* do viCounter = num-entries(vcListJOURNALTYPECODES, chr(2)) */
                     
            /* assign original status, comments */
            if icActivityCode = 'Verify':U 
            then assign tPostingStatusChange.tcOriginalStatus       = tPostingStatusChange.PostingVerifyStatus
                        tPostingStatusChange.tcOriginalComments     = tPostingStatusChange.PostingVerifyComments.
            else assign tPostingStatusChange.tcOriginalComments     = tPostingStatusChange.PostingApproveComments         
                        tPostingStatusChange.tcOriginalStatus       = tPostingStatusChange.PostingApproveStatus
                        tPostingStatusChange.ttOriginalAddGLNbrDate = tPostingStatusChange.PostingAddGLNbrDate.
            assign tPostingStatusChange.tlPostingSelected = false.                          
                          
                                    
            /* ========================= */
            /* Retrieve User information */
            /* ========================= */                       
            if tPostingStatusChange.CreatorUsr_ID <> 0 and
               tPostingStatusChange.CreatorUsr_ID <> ?
            then do:
                <Q-42 run UserById (all) (Read) (Cache)
                   (input tPostingStatusChange.CreatorUsr_ID, (UsrId)
                    output dataset tqUserById) in BUser>
                find first tqUserById no-error.
                if available tqUserById
                then assign tPostingStatusChange.tcCreator = tqUserById.tcUsrLogin.
            end. /* if tPostingStatusChange.CreatorUsr_ID <> 0 and */
            
            if tPostingStatusChange.LastVerifiedUsr_ID <> 0 and
               tPostingStatusChange.LastVerifiedUsr_ID <> ?
            then do:
                <Q-57 run UserById (all) (Read) (Cache)
                   (input tPostingStatusChange.LastVerifiedUsr_ID, (UsrId)
                    output dataset tqUserById) in BUser>
                find first tqUserById no-error.
                if available tqUserById
                then assign tPostingStatusChange.tcVerifier = tqUserById.tcUsrLogin.
            end. /* if tPostingStatusChange.LastVerifiedUsr_ID <> 0 and */
    
            if tPostingStatusChange.LastApprovedUsr_ID <> 0 and
               tPostingStatusChange.LastApprovedUsr_ID <> ?
            then do:
                <Q-64 run UserById (all) (Read) (Cache)
                   (input tPostingStatusChange.LastApprovedUsr_ID, (UsrId)
                    output dataset tqUserById) in BUser>
                find first tqUserById no-error.
                if available tqUserById
                then assign tPostingStatusChange.tcApprover = tqUserById.tcUsrLogin.
            end. /* if tPostingStatusChange.LastApprovedUsr_ID <> 0 and */
                                                                                          
        end. /* for each tPosting  */
    end. /* if icActivityCode = 'Verify':U or icActivityCode = 'Approve':U */

END. /* POSTINGSTATUSCHANGEBLOCK */

/* Error-handling */
assign oiReturnStatus = viLocalReturnStatus.