project BLF > class BNumber > method ApiSetFreeNumbersValidate

Description

Validation of the input for ApiSetFreeNumbers


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method BNumber.ApiSetFreeNumbers


program code (program1/bnumber.p)

for each tNumberFree on error undo, throw:
    
    if (tNumberFree.tcNumbrStatus <> {&NUMBERSTATUS-FREE})
    then do:
        assign vcNumbrMsg = #T-1'Only numbering records of status $1 are allowed for processing.':255(23983684)T-1#
               oiReturnStatus = -1.
        <M-5 run SetMessage (input  trim(vcnumbrMsg) (icMessage), 
                     input  {&NUMBERSTATUS-FREE} (icArguments), 
                     input  '':U (icFieldName), 
                     input  '':U (icFieldValue), 
                     input  'E':U (icType), 
                     input  3 (iiSeverity), 
                     input  ? (icRowid), 
                     input  'BLF-120':U (icFcMsgNumber), 
                     input  '' (icFcExplanation), 
                     input  '' (icFcIdentification), 
                     input  '' (icFcContext), 
                     output viFcReturnSuper (oiReturnStatus)) in BNumber>
        return.
    end.
    
    if (not can-do('N,C':U, tNumberFree.tcUpdateStatus))
    then do:
        assign vcNumbrMsg = #T-2'Only modified or newly added numbering records can be provided for processing.':200(492)T-2#
               oiReturnStatus = -1.
        <M-6 run SetMessage (input  trim(vcnumbrMsg) (icMessage), 
                     input  '':U (icArguments), 
                     input  '':U (icFieldName), 
                     input  '':U (icFieldValue), 
                     input  'E':U (icType), 
                     input  3 (iiSeverity), 
                     input  ? (icRowid), 
                     input  'BLF-121':U (icFcMsgNumber), 
                     input  '' (icFcExplanation), 
                     input  '' (icFcIdentification), 
                     input  '' (icFcContext), 
                     output viFcReturnSuper (oiReturnStatus)) in BNumber>
        return.
    end.

    if (tNumberFree.tiNumbrYear <= 0 or tNumberFree.tiNumbrYear = ?)
    then do:
        assign vcNumbrMsg = #T-3'You must enter the year.':200(493)T-3#
               oiReturnStatus = -1.
        <M-7 run SetMessage (input  trim(vcnumbrMsg) (icMessage), 
                     input  '':U (icArguments), 
                     input  '':U (icFieldName), 
                     input  '':U (icFieldValue), 
                     input  'E':U (icType), 
                     input  3 (iiSeverity), 
                     input  ? (icRowid), 
                     input  'BLF-122':U (icFcMsgNumber), 
                     input  '' (icFcExplanation), 
                     input  '' (icFcIdentification), 
                     input  '' (icFcContext), 
                     output viFcReturnSuper (oiReturnStatus)) in BNumber>
        return.
    end.

    if (tNumberFree.tcNumbrType = '':U or tNumberFree.tcNumbrType = ?)
    then do:
        assign vcNumbrMsg = #T-4'You must enter the type.':200(494)T-4#
               oiReturnStatus = -1.
        <M-8 run SetMessage (input  trim(vcnumbrMsg) (icMessage), 
                     input  '':U (icArguments), 
                     input  '':U (icFieldName), 
                     input  '':U (icFieldValue), 
                     input  'E':U (icType), 
                     input  3 (iiSeverity), 
                     input  ? (icRowid), 
                     input  'BLF-123':U (icFcMsgNumber), 
                     input  '' (icFcExplanation), 
                     input  '' (icFcIdentification), 
                     input  '' (icFcContext), 
                     output viFcReturnSuper (oiReturnStatus)) in BNumber>
        return.
    end.
    
    /* Raise a warning when the new number is approaching the limit of 9 digits and raise an error when it exceeds the limit */
    if tNumberFree.tiNumbr  > 999999999
    then do:
        assign oiReturnStatus = -3
               vcNumbrMsg    = trim(substitute(#T-57'The next number (&2) for this sequence (&1) cannot be longer than 9 digits.':255(360348246)T-57#,trim(string(tNumberFree.tiNumbrYear)) + '/':U + trim(tNumberFree.tcNumbrType),string(tNumberFree.tiNumbr))).
        <M-48 run SetMessage
           (input  vcNumbrMsg (icMessage), 
            input  '':U (icArguments), 
            input  '' (icFieldName), 
            input  '' (icFieldValue), 
            input  'E':U (icType), 
            input  3 (iiSeverity), 
            input  '' (icRowid), 
            input  'blf-843169':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BNumber>
        Return.
    end. /* if tNumberFree.tiNumbr > 999999999 */
    else if tNumberFree.tiNumbr  > 999900000
         then do:
            assign vcNumbrMsg    = trim(substitute(#T-86'Warning: the next number (&2) for this sequence (&1) is approaching the maximum of 9 digits.':255(167815287)T-86#,trim(string(tNumberFree.tiNumbrYear)) + '/':U + trim(tNumberFree.tcNumbrType),string(tNumberFree.tiNumbr))).
            if oiReturnStatus >= 0 then assign oiReturnStatus = +1.
            <M-47 run SetMessage
               (input  vcNumbrMsg (icMessage), 
                input  '':U (icArguments), 
                input  '' (icFieldName), 
                input  '' (icFieldValue), 
                input  'W':U (icType), 
                input  4 (iiSeverity), 
                input  '' (icRowid), 
                input  'blf-818918':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BNumber>
         end. /* if tNumberFree.tiNumbr  > 999900000 */
    
end. /* for each tNumberFree on error undo, throw: */