project BLF > class BNumber > method ApiSetFreeNumbersValidate
Description
Validation of the input for ApiSetFreeNumbers
Parameters
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
BLF
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: */