project QadFinancials > class BAPMatching > method GetJournalSequenceNumber


Parameters


icJournalCodeinputcharacter
iiYearinputinteger
oiVoucheroutputinteger
icAPMatchingTcRowidinputcharactericAPMatchingTcRowid
icstatusinputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program7/bapmatching.p)

/* A number can only be taken when year and journal is available. */
if iiYear        = 0    or
   iiYear        = ?    or
   icJournalCode = "":U or
   icJournalCode = ?
then return.

find tAPMatching where tAPMatching.tc_Rowid = icAPMatchingTcRowid no-error.

if not available tAPMatching
then do:
    <M-28 run SetMessage
       (input  trim(substitute(#T-18'The system cannot find the matching based upon its row ID (&1)':255(999890413)T-18#, icAPMatchingTcRowid)) (icMessage), 
        input  '':U (icArguments), 
        input  '':U (icFieldName), 
        input  '':U (icFieldValue), 
        input  'E':U (icType), 
        input  3 (iiSeverity), 
        input  '':U (icRowid), 
        input  'qadfin-500635':U (icFcMsgNumber), 
        input  '':U (icFcExplanation), 
        input  '':U (icFcIdentification), 
        input  '':U (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
    assign oiReturnStatus = -3.
    return.
end. /* if not available tAPMatching */

if icstatus <> {&APMATCHINGSTATUS-INITIAL}
then do:

    if tAPMatching.tiPeriodYear      = iiYear        and
       tAPMatching.tcJournalCode     = icJournalCode and
       tAPMatching.tiPostingVoucher <> 0
    then do:
        assign oiVoucher = tAPMatching.tiPostingVoucher.
        return.
    end. /* if tAPMatching.tiPeriodYear.... */

    <Q-9 run JournalPrim (all) (Read) (NoCache)
       (input viCompanyId, (CompanyId)
        input icJournalCode, (JournalCode)
        input ?, (JournalID)
        output dataset tqJournalPrim) in BJournal>

    find first tqJournalPrim where
               tqJournalPrim.tcJournalCode = icJournalCode
    no-error.

    if not available tqJournalPrim
    then do:
        <M-24 run SetMessage
           (input  trim(#T-40'Invalid journal code ($1) passed.':255(63241)T-40#) (icMessage), 
            input  icJournalCode (icArguments), 
            input  'tAPMatching.tcJournalCode':U (icFieldName), 
            input  icJournalCode (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  '':U (icRowid), 
            input  'qadfin-264512':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
        assign oiReturnStatus = -1.
        return.
    end. /* if not available tqJournalPrim */

    if available tqJournalPrim and
        tqJournalPrim.tcLayerTypeCode <> {&LAYERTYPECODE-OFFICIAL}
    then do:
        <M-39 run SetMessage
           (input  trim(#T-33'The selected daybook (&1) should be in the official layer.':241(56075)T-33#) (icMessage), 
            input  '':U (icArguments), 
            input  'tAPMatching.tcJournalCode':U (icFieldName), 
            input  icJournalCode (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  '':U (icRowid), 
            input  'qadfin-510567':U (icFcMsgNumber), 
            input  '':U (icFcExplanation), 
            input  '':U (icFcIdentification), 
            input  '':U (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BAPMatching>
        assign oiReturnStatus = -1.
        return.
    end. /* if available tqJournalPrim and ... */

    assign vhFcComponent = ?.
    <M-80 run GetNumber
       (input  viCompanyId (iiCompanyId), 
        input  iiYear (iiNumbrYear), 
        input  icJournalCode (icNumbrType), 
        output oiVoucher (oiNumber), 
        input  viFcCurrentInstanceId (iiInstanceId), 
        input  vcFcComponentName (icClassName), 
        output viFcReturnSuper (oiReturnStatus)) in BNumber>

    if viFcReturnSuper < 0 or
       oiReturnStatus  = 0
    then assign oiReturnStatus = viFcReturnSuper.

    if oiReturnStatus < 0
    then return.

    assign vhFcComponent = ?.

    if tAPMatching.tcJournalCode    <> "":U and
       tAPMatching.tiPeriodYear     <> 0    and
       tAPMatching.tiPostingVoucher <> 0
    then do:
         <M-17 run ReleaseNumber
            (input  viCompanyId (iiCompanyId), 
             input  tAPMatching.tiPeriodYear (iiNumbrYear), 
             input  tAPMatching.tcJournalCode (icNumbrType), 
             input  tAPMatching.tiPostingVoucher (iiNumbr), 
             input  viFcCurrentInstanceId (iiInstanceId), 
             input  vcFcComponentName (icClassName), 
             output viFcReturnSuper (oiReturnStatus)) in BNumber>

        if viFcReturnSuper < 0 or
           oiReturnStatus  = 0
        then assign oiReturnStatus = viFcReturnSuper.

        if oiReturnStatus < 0
        then return.
    end. /* if tAPMatching.tcJournalCode <> "":U..... */

    assign
       tAPMatching.tiPeriodYear     = iiYear
       tAPMatching.tcJournalCode    = icJournalCode
       tAPMatching.tiPostingVoucher = oiVoucher.
end. /*if icstatus <> {&APMATCHINGSTATUS-INITIAL} ...*/

if icstatus = {&APMATCHINGSTATUS-INITIAL} and
   tAPMatching.tiPostingVoucher <> 0
then do:
    assign vhFcComponent = ?.
     <M-12 run ReleaseNumber
        (input  viCompanyId (iiCompanyId), 
         input  tAPMatching.tiPeriodYear (iiNumbrYear), 
         input  tAPMatching.tcJournalCode (icNumbrType), 
         input  tAPMatching.tiPostingVoucher (iiNumbr), 
         input  viFcCurrentInstanceId (iiInstanceId), 
         input  vcFcComponentName (icClassName), 
         output viFcReturnSuper (oiReturnStatus)) in BNumber>

    if viFcReturnSuper < 0 or
       oiReturnStatus  = 0
    then assign oiReturnStatus = viFcReturnSuper.

    if oiReturnStatus < 0
    then return.

    assign tAPMatching.tiPostingVoucher = 0.
end. /* if icstatus = {&APMATCHINGSTATUS-INITIAL}... */