validation procedure
Parameters
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/bbillschedule.p)
assign oiReturnStatus = -98
viLocalReturnStatus = 0
vcMessageBuffer = "".
/* PreValidates all New and Changed Items */
for each t_sBillSchedule where
t_sBillSchedule.tc_Status <> 'D':U:
/* Day in month pattern */
if t_sBillSchedule.BillSchedulePattern = {&BILLSCHEDULEPATTERN-DAYINMTH}
then do:
/* First Date cannot be empty. */
if t_sBillSchedule.BillScheduleMthBillDay1 = 0
then do:
assign vcMessageBuffer = #T-7'Occurrence':255(101094581)T-7# + " ":U + '1':U.
<M-73 run SetMessage
(input trim(substitute(#T-54'If you select Day in Month, you must specify a value in the Billing Day (&1) field.':255(884870611)T-54#, vcMessageBuffer)) (icMessage),
input '':U (icArguments),
input 'tBillSchedule.BillScheduleMthBillDay1':U (icFieldName),
input t_sBillSchedule.BillScheduleMthBillDay1 (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input ? (icRowid),
input 'qadfin-709262':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
assign oiReturnStatus = -1.
return.
end.
/* Validate billing day range */
<M-41 run ValidateCompnentDayRange
(input t_sBillSchedule.BillScheduleMthBillDay1 (iiTargetField),
input 'tBillSchedule.BillScheduleMthBillDay1':U (icTargetFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-19 run ValidateCompnentDayRange
(input t_sBillSchedule.BillScheduleMthBillDay2 (iiTargetField),
input 'tBillSchedule.BillScheduleMthBillDay2':U (icTargetFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-14 run ValidateCompnentDayRange
(input t_sBillSchedule.BillScheduleMthBillDay3 (iiTargetField),
input 'tBillSchedule.BillScheduleMthBillDay3':U (icTargetFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-43 run ValidateCompnentDayRange
(input t_sBillSchedule.BillScheduleMthBillDay4 (iiTargetField),
input 'tBillSchedule.BillScheduleMthBillDay4':U (icTargetFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
if viLocalReturnStatus < 0
then do:
assign oiReturnStatus = viLocalReturnStatus.
return.
end.
/* Date must be set one by one */
if (t_sBillSchedule.BillScheduleMthBillDay1 = 0 and
(t_sBillSchedule.BillScheduleMthBillDay2 <> 0 or
t_sBillSchedule.BillScheduleMthBillDay3 <> 0 or
t_sBillSchedule.BillScheduleMthBillDay4 <> 0)) or
(t_sBillSchedule.BillScheduleMthBillDay2 = 0 and
(t_sBillSchedule.BillScheduleMthBillDay3 <> 0 or
t_sBillSchedule.BillScheduleMthBillDay4 <> 0)) or
(t_sBillSchedule.BillScheduleMthBillDay3 = 0 and
t_sBillSchedule.BillScheduleMthBillDay4 <> 0)
then do:
<M-23 run SetMessage
(input trim(#T-42'You must set the billing days consecutively without gaps.':255(428283025)T-42#) (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input ? (icRowid),
input 'qadfin-662622':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
assign oiReturnStatus = -1.
return.
end.
/* Bill date must be less than next one */
<M-48 run ValidateComponentBillingDayCompare
(input t_sBillSchedule.BillScheduleMthBillDay2 (iiTargetBillingDay),
input 'tBillSchedule.BillScheduleMthBillDay2':U (icTargetFieldName),
input t_sBillSchedule.BillScheduleMthBillDay1 (iiPreviousBillingDay),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-82 run ValidateComponentBillingDayCompare
(input t_sBillSchedule.BillScheduleMthBillDay3 (iiTargetBillingDay),
input 'tBillSchedule.BillScheduleMthBillDay3':U (icTargetFieldName),
input t_sBillSchedule.BillScheduleMthBillDay2 (iiPreviousBillingDay),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-47 run ValidateComponentBillingDayCompare
(input t_sBillSchedule.BillScheduleMthBillDay4 (iiTargetBillingDay),
input 'tBillSchedule.BillScheduleMthBillDay4':U (icTargetFieldName),
input t_sBillSchedule.BillScheduleMthBillDay3 (iiPreviousBillingDay),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
if viLocalReturnStatus < 0
then do:
assign oiReturnStatus = viLocalReturnStatus.
return.
end.
end.
else do: /* Weekly pattern */
if not(t_sBillSchedule.BillScheduleIsWeek1InMnth) and
not(t_sBillSchedule.BillScheduleIsWeek2InMnth) and
not(t_sBillSchedule.BillScheduleIsWeek3InMnth) and
not(t_sBillSchedule.BillScheduleIsWeek4InMnth)
then do:
<M-93 run SetMessage
(input trim(#T-76'You must choose at least one week for a Weekly pattern.':255(706964756)T-76#) (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input t_sBillSchedule.tc_Rowid (icRowid),
input 'qadfin-213542':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input '':U (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
assign viLocalReturnStatus = -1.
end.
end.
/* Due date patern is "Months Delay and Due Date"*/
if t_sBillSchedule.BillScheduleDueDateCalType = {&BILLSCHEDULEDUEDATE-MTHDELAYDUEDAY}
then do:
/* validate due date range */
<M-17 run ValidateCompnentDayRange
(input t_sBillSchedule.BillScheduleMthDueDay1 (iiTargetField),
input 'tBillSchedule.BillScheduleMthDueDay1':U (icTargetFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-39 run ValidateCompnentDayRange
(input t_sBillSchedule.BillScheduleMthDueDay2 (iiTargetField),
input 'tBillSchedule.BillScheduleMthDueDay2':U (icTargetFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-92 run ValidateCompnentDayRange
(input t_sBillSchedule.BillScheduleMthDueDay3 (iiTargetField),
input 'tBillSchedule.BillScheduleMthDueDay3':U (icTargetFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-51 run ValidateCompnentDayRange
(input t_sBillSchedule.BillScheduleMthDueDay4 (iiTargetField),
input 'tBillSchedule.BillScheduleMthDueDay4':U (icTargetFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
if viLocalReturnStatus < 0
then do:
assign oiReturnStatus = viLocalReturnStatus.
return.
end.
/* Day In Month */
if t_sBillSchedule.BillSchedulePattern = {&BILLSCHEDULEPATTERN-DAYINMTH}
then do:
/* validate due date in step with billing date */
<M-35 run ValidateComponentDueDayForDayInMth
(input t_sBillSchedule.BillScheduleMthDueDay1 (iiDueDate),
input 'tBillSchedule.BillScheduleMthDueDay1':U (icDueDateFieldName),
input t_sBillSchedule.BillScheduleMthBillDay1 (iiBillingDate),
input t_sBillSchedule.BillScheduleMthDelay1 (iiDelayMth),
input '1':U (icOccuranceNbr),
input 'tBillSchedule.BillScheduleMthDelay1':U (icMonthsDelayFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-3 run ValidateComponentDueDayForDayInMth
(input t_sBillSchedule.BillScheduleMthDueDay2 (iiDueDate),
input 'tBillSchedule.BillScheduleMthDueDay2':U (icDueDateFieldName),
input t_sBillSchedule.BillScheduleMthBillDay2 (iiBillingDate),
input t_sBillSchedule.BillScheduleMthDelay2 (iiDelayMth),
input '2':U (icOccuranceNbr),
input 'tBillSchedule.BillScheduleMthDelay2':U (icMonthsDelayFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-42 run ValidateComponentDueDayForDayInMth
(input t_sBillSchedule.BillScheduleMthDueDay3 (iiDueDate),
input 'tBillSchedule.BillScheduleMthDueDay3':U (icDueDateFieldName),
input t_sBillSchedule.BillScheduleMthBillDay3 (iiBillingDate),
input t_sBillSchedule.BillScheduleMthDelay3 (iiDelayMth),
input '3':U (icOccuranceNbr),
input 'tBillSchedule.BillScheduleMthDelay3':U (icMonthsDelayFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-69 run ValidateComponentDueDayForDayInMth
(input t_sBillSchedule.BillScheduleMthDueDay4 (iiDueDate),
input 'tBillSchedule.BillScheduleMthDueDay4':U (icDueDateFieldName),
input t_sBillSchedule.BillScheduleMthBillDay4 (iiBillingDate),
input t_sBillSchedule.BillScheduleMthDelay4 (iiDelayMth),
input '4':U (icOccuranceNbr),
input 'tBillSchedule.BillScheduleMthDelay4':U (icMonthsDelayFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
if viLocalReturnStatus < 0
then do:
assign oiReturnStatus = viLocalReturnStatus.
return.
end.
end.
/* Day In Month */
else do:
<M-33 run ValidateComponentDueDayForDayInWeek
(input t_sBillSchedule.BillScheduleMthDueDay1 (iiDueDate),
input 'tBillSchedule.BillScheduleMthDueDay1':U (icDueDateFieldName),
input t_sBillSchedule.BillScheduleIsWeek1InMnth (ilWeekInMonth),
input t_sBillSchedule.BillScheduleMthDelay1 (iiDelayMth),
input '1':U (icWeekNbr),
input 'tBillSchedule.BillScheduleMthDelay1':U (icMonthsDelayFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-75 run ValidateComponentDueDayForDayInWeek
(input t_sBillSchedule.BillScheduleMthDueDay2 (iiDueDate),
input 'tBillSchedule.BillScheduleMthDueDay2':U (icDueDateFieldName),
input t_sBillSchedule.BillScheduleIsWeek2InMnth (ilWeekInMonth),
input t_sBillSchedule.BillScheduleMthDelay2 (iiDelayMth),
input '2':U (icWeekNbr),
input 'tBillSchedule.BillScheduleMthDelay2':U (icMonthsDelayFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-40 run ValidateComponentDueDayForDayInWeek
(input t_sBillSchedule.BillScheduleMthDueDay3 (iiDueDate),
input 'tBillSchedule.BillScheduleMthDueDay3':U (icDueDateFieldName),
input t_sBillSchedule.BillScheduleIsWeek3InMnth (ilWeekInMonth),
input t_sBillSchedule.BillScheduleMthDelay3 (iiDelayMth),
input '3':U (icWeekNbr),
input 'tBillSchedule.BillScheduleMthDelay3':U (icMonthsDelayFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
<M-31 run ValidateComponentDueDayForDayInWeek
(input t_sBillSchedule.BillScheduleMthDueDay4 (iiDueDate),
input 'tBillSchedule.BillScheduleMthDueDay4':U (icDueDateFieldName),
input t_sBillSchedule.BillScheduleIsWeek4InMnth (ilWeekInMonth),
input t_sBillSchedule.BillScheduleMthDelay4 (iiDelayMth),
input '4':U (icWeekNbr),
input 'tBillSchedule.BillScheduleMthDelay4':U (icMonthsDelayFieldName),
output viFcReturnSuper (oiReturnStatus)) in BBillSchedule>
if viFcReturnSuper <> 0 then assign viLocalReturnStatus = viFcReturnSuper.
if viLocalReturnStatus < 0
then do:
assign oiReturnStatus = viLocalReturnStatus.
return.
end.
end.
end.
end.
assign oiReturnStatus = viLocalReturnStatus.