project QadFinancials > class BClosingPostingsReport > method ProcessVoucherCompleteness

Description

This method is to process Voucher Completeness


Parameters


iiPeriodPeriodinputinteger
icFileinputcharacter
iiPeriodYearinputinteger
ocConCheckLineDetResultoutputcharacter
oiConCheckLineDetStartTimeoutputinteger
oiConCheckLineDetDurationoutputinteger
otConCheckLineDetStartDateoutputdate
oiErrorNumbersoutputinteger
iiCompanyIDinputinteger
ocConCheckLineDetVersionoutputcharacter
icAppVersioninputcharacter
icSumFileinputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BConCheckProcessor.ConCheckProcessDet


program code (program7/bclosingpostingsreport.p)

assign vdStartEtime2 = etime(no).
assign otConCheckLineDetStartDate = now
       oiConCheckLineDetStartTime = time
       oiErrorNumbers             = 0
       ocConCheckLineDetVersion   = icAppVersion + '.1'.

empty temp-table tqVoucherCompleteness.

create tFilter.
assign tFilter.tcBusinessFieldName = 'PeriodYear':U
       tFilter.tcOperator          = '='
       tFilter.tcParameterValue    = string(iiPeriodYear).

create tFilter.
assign tFilter.tcBusinessFieldName = 'PeriodPeriod_RANGE':U
       tFilter.tcOperator          = '>='
       tFilter.tcParameterValue    = string(iiPeriodPeriod).


create tFilter.
assign tFilter.tcBusinessFieldName = 'PeriodPeriod_RANGE':U
       tFilter.tcOperator          = '<='
       tFilter.tcParameterValue    = string(iiPeriodPeriod).

<Q-90 run CompanyPrim (all) (Read) (NoCache)
   (input iiCompanyID, (LookupCompanyId)
    input ?, (CompanyCode)
    output dataset tqCompanyPrim) in BCompany >
find first tqCompanyPrim no-error.
if available tqCompanyPrim
then do:
    create tFilter.
    assign tFilter.tcBusinessFieldName = 'Company_CANDO':U
           tFilter.tcOperator          = '='
           tFilter.tcParameterValue    = tqCompanyPrim.tcCompanyCode.
end.

<M-50 run VoucherCompletenessDet
   (output dcrVoucherCompleteness (dcrVoucherCompleteness), 
    output oiReturnStatus (oiReturnStatus)) in BClosingPostingsReport>

if can-find(first tqVoucherCompleteness where tqVoucherCompleteness.tcErrorType <> "":U)
then assign ocConCheckLineDetResult = {&CONCHECKRESULT-FAILED}.
else assign ocConCheckLineDetResult = {&CONCHECKRESULT-PASSED}.

assign oiConcheckLineDetDuration = etime - vdStartEtime2.

output stream sCloseOut to value(icFile) append.

/* to format the total duration time */
assign viMilliSecs2 = oiConCheckLineDetDuration.
assign viSecs2 = TRUNCATE (oiConCheckLineDetDuration / 1000, 0).
assign viMilliSecs2 = viMilliSecs2 mod 1000.
assign vcTotalTime2 = string(viSecs2, 'HH:MM:SS')  +  '.'  +  string(viMilliSecs2).

put stream sCloseOut unformatted ' 'skip.
put stream sCloseOut unformatted '##### Numbering Completeness #####' skip.
PUT STREAM sCloseOut unformatted 'Version: ' ocConCheckLineDetVersion skip.
put stream sCloseOut unformatted 'Validation Start At: ' string(now, '99/99/9999 HH:MM:SS') skip.
put stream sCloseOut unformatted 'Execution Duration: ' vcTotalTime2 skip.
put stream sCloseOut unformatted 'Execution Result: ' ocConCheckLineDetResult skip.

if ocCOnCheckLineDetResult = {&CONCHECKRESULT-FAILED}  
then do:
    /* Header */
    put stream sCloseOut unformatted
                         'Daybook Code':U        at 1
                         'Daybook Description':U at 20
                         'Lowest Number':U       to 70
                         'Highest Number':U      to 90 skip.

    for each tqVoucherCompleteness
        break by tqVoucherCompleteness.tcJournalCode
              by tqVoucherCompleteness.tiFirstVoucherNumber desc
              by tqVoucherCompleteness.tcErrorType: 
        /* Group Header */   
        if first-of(tqVoucherCompleteness.tcJournalCode)
        then do:
            assign oiErrorNumbers = oiErrorNumbers + 1.
            put stream sCloseOut unformatted tqVoucherCompleteness.tcJournalCode        at 1
                                             tqVoucherCompleteness.tcJournalDescription at 20 
                                             tqVoucherCompleteness.tiFirstVoucherNumber to 70
                                             tqVoucherCompleteness.tiLastVoucherNumber  to 90 skip.
        end.
        else put stream sCloseOut unformatted tqVoucherCompleteness.tcErrorType at 25 skip.

        /* output a blank line when group changed */
        if last-of(tqVoucherCompleteness.tcJournalCode)
        then do:
            put stream sCloseOut unformatted ' ' skip.
        end.

    end.
end.

put stream sCloseOut unformatted '<Error Count:> ' oiErrorNumbers skip.
put stream sCloseOut unformatted '**********************************************************************' skip.
output stream sCloseOut close.