project QadFinancials > class BExpenseNote > method GetExpenseNoteNumber


Parameters


iiExpenseNoteYearinputinteger
oiExpenseNoteNumberoutputinteger
icExpenseNoteRowIDinputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program3/bexpensenote.p)

/* ================================================================= */
/* Reserve a number for this sheet.                                  */
/* This number will be released again by housekeeping if the         */
/* transaction was not committed by then.                            */
/* ================================================================= */
assign vhFcComponent = ?.
<M-2 run GetNumber
   (input  viCompanyId (iiCompanyId), 
    input  iiExpenseNoteYear (iiNumbrYear), 
    input  'EXPNOTE':U (icNumbrType), 
    output oiExpenseNoteNumber (oiNumber), 
    input  viFcCurrentInstanceId (iiInstanceId), 
    input  vcFcComponentName (icClassName), 
    output viFcReturnSuper (oiReturnStatus)) in BNumber>

if viFcReturnSuper <> 0
then do:
    assign vcMessage = trim(subst(#T-4'The systen cannot retrieve the expense note number (error number: &1).':255(1899)t-4#, string(viFcReturnSuper))).
    <M-3 run SetMessage (input  vcMessage (icMessage),
                     input  '':U (icArguments),
                     input  '':U (icFieldName),
                     input  '':U (icFieldValue),
                     input  'E':U (icType),
                     input  3 (iiSeverity),
                     input  '':U (icRowid),
                     input  'QADFIN-2383':U (icFcMsgNumber),
                     input  '' (icFcExplanation),
                     input  '' (icFcIdentification),
                     input  '' (icFcContext),
                     output viFcReturnSuper (oiReturnStatus)) in BExpenseNote>

end.
if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and oiReturnStatus = 0)
then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0
then return.

find first tExpNote where tExpNote.tc_Rowid = icExpenseNoteRowID no-error.
if available tExpNote
then do:
    /* ================================================================= */
    /* Release previously reserved number.                               */
    /* ================================================================= */
    if tExpNote.ExpNoteNumber <> 0
    then do:
        assign vhFcComponent = ?.
        <M-1 run ReleaseNumber
           (input  viCompanyId (iiCompanyId), 
            input  tExpNote.ExpNoteYear (iiNumbrYear), 
            input  'EXPNOTE':U (icNumbrType), 
            input  tExpNote.ExpNoteNumber (iiNumbr), 
            input  viFcCurrentInstanceId (iiInstanceId), 
            input  vcFcComponentName (icClassName), 
            output viFcReturnSuper (oiReturnStatus)) in BNumber>
        if viFcReturnSuper < 0 or (viFcReturnSuper > 0 and oiReturnStatus = 0)
        then assign oiReturnStatus = viFcReturnSuper.
    end.
    assign tExpNote.ExpNoteYear   = iiExpenseNoteYear
           tExpNote.ExpNoteNumber = oiExpenseNoteNumber.
    if tExpNote.tc_Status = "":U
    then tExpNote.tc_Status = "C":U.
end.
if oiReturnStatus < 0
then return.