project QadFinancials > class BDebtor > method ValReasonCode

Description

Validates Reason Code field


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BDebtor.PostValidateComponent


program code (program1/bdebtor.p)

/*error: Reason must exist - checked by FC*/
/*error: Reason must be active*/
if t_sDebtor.Reason_ID <> 0 and 
   t_sDebtor.Reason_ID <> ? and 
   (t_sDebtor.tc_Status = "N":U or 
    (t_sDebtor.tc_Status = "C" and 
     can-find (t_iDebtor where 
               t_iDebtor.tc_Rowid   = t_sDebtor.tc_Rowid and 
               t_iDebtor.Reason_ID <> t_sDebtor.Reason_ID )))
then do:
    <Q-2 run ReasonByIdCode (all) (Read) (Cache)
       (input t_sDebtor.Reason_ID, (ReasonId)
        input ?, (ReasonCode)
        output dataset tqReasonByIdCode) in BReason>
    find first tqReasonByIdCode no-error.
    if available tqReasonByIdCode and
       not tqReasonByIdCode.tlReasonIsActive
    then do:
        assign vcMessage     = trim(substitute(#T-4'The invoice status code (&1) is not active.':200(1444)T-4#, 
                                                trim(tqReasonByIdCode.tcReasonCode))) + chr(10) + 
                               program-name(1)
              oiReturnStatus = -1.
        <M-3 run SetMessage (input  vcMessage (icMessage),
                     input  '':U (icArguments),
                     input  'tDebtor.tcReasonCode':U (icFieldName),
                     input  t_sDebtor.tcReasonCode (icFieldValue),
                     input  'E':U (icType),
                     input  3 (iiSeverity),
                     input  t_sDebtor.tc_Rowid (icRowid),
                     input  'QADFIN-323':U (icFcMsgNumber),
                     input  '' (icFcExplanation),
                     input  '' (icFcIdentification),
                     input  '' (icFcContext),
                     output viFcReturnSuper (oiReturnStatus)) in BDebtor>        
    end.
end.