project BLF > class BReportSchedule > method PreSave

Description

Actions to take before writing current instance to the database (inside the db transaction!).
Use the field tc_status to test the status of the updated records:
'' = unchanged
'N' = new
'C' = changed
'D' = deleted


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program/breportschedule.p)

<ANCESTOR-CODE>

/* ================================================================= */
/* Convert start time to UTC before saving.                          */
/* ================================================================= */
if viTimeOffset = ?
then viUseTimeOffset = timezone(now).
else viUseTimeOffset = viTimeOffset.

for each tRptRequestSchedule where tRptRequestSchedule.tc_Status <> "D":
    assign vtStartDateUTC = tRptRequestSchedule.RptRequestScheduleDate
           viStartTimeUTC = tRptRequestSchedule.RptRequestScheduleTime - viUseTimeOffset * 60.
    if viStartTimeUTC < 0
    then assign vtStartDateUTC = vtStartDateUTC - 1
                viStartTimeUTC = viStartTimeUTC + 24 * 60 * 60.
    assign tRptRequestSchedule.RptRequestScheduleDate = vtStartDateUTC
           tRptRequestSchedule.RptRequestScheduleTime = viStartTimeUTC.
end.