% % administrator in status mode, can command system % *skedresp { false !Sked.IsDriver false !Sked.IsSlot empty !Sked.Data false !Sked.Focusing _Sked.IsDocket { %%% "Pickup number - " &_Sked.Docket true !Sked.Focusing } { _Sked.IsDate { %%% "New Date - " &_Sked.Date true !Sked.Focusing } { % % further decode the data sent % _Sms.Body trim length < |10 % % possible driver phone number % dup numeric { % % this is driver % !Sked.Driver true !Sked.Focusing } { !Sked.Data } ifelse %%% *skedfocs |1 % % possible focus request or slot setting % dup < |. % % focus report % true !Sked.Focusing pop > not { %%% !Sked.Data "xx" *skedspan dup numeric { % % number is good % } { upper 0x40 sub 9 add } ifelse dup _Sked.Slots le second positive and { !Sked.Slot true !Sked.Focusing } { !Sked.Data } ifelse } if %%% *skedfocs > not { % % data for command % !Sked.Data %%% *skedfocs } if %%% Time.Now " " left$ !Sked.Date % % end of not a date % } ifelse % % end of not a docket % } ifelse _Sked.Phone !Sked.HoldPhone _Sked.Mode *skednumb % % this is admin % _Sked.Command any? { % % only need first 3 letters of command % %%% 3 left upper < |HOLD % % put the slot on hold if unreserved % _Sked.Slot !Sked.HoldSlot *skedslod _Sked.Smode < |Open % % available to hold this slot % empty !Sked.Sphone empty !Sked.Sdocket _Sked.HoldSlot !Sked.Slot empty !Sked.Sname empty !Sked.Scompany "Reserved" !Sked.Smode _Sked.HoldSlot 2 prezero text ^_Sked.Dfold "skedwrslot" log)( empty "Sked.Slot" sval "Sked.Smode" sval "Sked.Sname" sval "Sked.Scompany" sval "Sked.Sdocket" sval "Sked.Sphone" sval exch write "The time slot was put on hold." _Sked.HoldPhone dup !Sked.Phone *skedplod > not { "Slot " &_Sked.Slot &" is not open." _Sked.Phone *skedplod } if |UNHOLD % % put the slot on hold if unreserved % _Sked.Slot !Sked.HoldSlot *skedslod _Sked.Smode < |Reserved % % available to un-hold this slot % _Sked.Sphone any)? { "A driver assignment was made to this slot." catcr &"Use the PULL command to open it" &" and change the driver's schedule." } { "Open" !Sked.Smode _Sked.HoldSlot 2 prezero text ^_Sked.Dfold "skedwrslot" log)( empty "Sked.Slot" sval "Sked.Smode" sval "Sked.Sname" sval "Sked.Scompany" sval "Sked.Sdocket" sval "Sked.Sphone" sval exch write "The time slot was released from hold." _Sked.HoldPhone dup !Sked.Phone *skedplod } ifelse > not { "Slot " &_Sked.Slot &" is not reserved." _Sked.Phone *skedplod } if |SCHED % % assign this to the driver in focus % with pickup number, date. and slot currently set % *skedschd |SHOW % % show the driver info % _Sked.Driver any)? { empty !Sked.Company _Sked.Driver dup !Sked.Phone *skedplod _Sked.Company any)? { "Driver is: " &_Sked.Name &" with " &_Sked.Company catcr *skedrepp & } { "Driver phone is not registered yet." } ifelse _Sked.HoldPhone dup !Sked.Phone *skedplod } { "No Driver phone." } ifelse |FOCUS % % focus on the slot of this days schedule % *skedslod _Sked.Smode < |Reserved % % driver has reserved this slot % _Sked.Phone *skedplod _Sked.Sphone !Sked.Driver _Sked.Sdocket !Sked.Docket _Sked.Mode *skednumb *skedfocs > not { "No driver assigned to slot " &_Sked.Slot _Sked.Phone *skedplod } if |PULL *skedpull > not { % % treat as status command % *skedrprt %%% "status command" } if } { % % no command given % _Sked.Focusing { *skedfocs } { *skedrprt } ifelse } ifelse } { % % not valid message % *skedfocs } ifelse *skedxmit