% % check for a new docket number % empty !Sked.Command false !Sked.IsAdmin false !Sked.InWindow false !Sked.InFuture false !Sked.InPast false !Sked.IsDocket false !Sked.IsChange false !Sked.IsMessage false !Sked.IsDate true !Sked.SameDate true !Ske.IsSame _Sked.Docket !Sked.PriorDocket _Sked.Date !Sked.PriorDate % % insure admin response % _Sked.Admin _Sked.Phone found)? { true !Sked.IsAdmin _Sms.Body trim 1 left "," eq$ { % % admin is commanding the system, remove the comma lead in % and accept the data after the command % _Sms.Body trim -1 left dup !Sms.Body " " slice any? { % % there is data after the command % trim !Sms.Body } { % % no data after command % "Status" !Sms.Body } ifelse any? { % % there is a command % % check that a date was sent instead of a command % length 6 eq second numeric and { % % this is a status request for the date, inject the status command % !Sms.Body "Status" } { % %pass the command through % } ifelse } { % % no command % "Status" } ifelse !Sked.Command } { } ifelse } { false !Sked.IsAdmin % % check for past pickup time % Time.Now Time.Datels pop exch "/" catpref "/" catpref !Sked.Now _Sked.Slot *skedspan _Sked.Date " " left$ &" " &_Sked.Stime "skedpickt" log)( dup !Sked.Pickup isdate { _Sked.Pickup Time.Now "n" Time.Diff "skeddiffnow" log)( dup !Sked.TillPickup negative { % % pickup is still in future % true !Sked.InFuture } { % % pickup time may have passed % false !Sked.InFuture _Sked.TillPickup _Sked.Span gt { % % past pickup window % false !Sked.InWindow true !Sked.InPast } { % % within pickup window % true !Sked.InWindow false !Sked.InPast } ifelse } ifelse } { } ifelse } ifelse "sked admined" log)( _Sms.Body trim any? { % % is there a correct docket number % *skedhdkt { true !Sked.IsDocket } { % % no docket number, check for a change request % false !Sked.IsDocket _Sms.Body trim lower 4 left "chan" eq$ { % % should be a change request % true !Sked.IsChange } { false !Sked.IsChange } ifelse } ifelse _Sked.IsDocket _Sked.IsChange or "skedisdockchange" log)( { % % already parsed submission % } { % % not parsed yet, check for a submitted date % _Sms.Body trim *skedater { _Sked.DateHold " " left$ !Sked.Date true !Sked.IsDate } { % % not a date, check if a multi-word message % _Sms.Body trim " " found? { % % is a multi-word message % !Sked.Message true !Sked.IsMessage } { % % single word response % pop false !Sked.IsMessage } ifelse } ifelse } ifelse true } { false } ifelse _Sked.Docket _Sked.PriorDocket eq$ dup !Sked.IsSame { empty !Sked.PriorDocket } { } ifelse _Sked.Date _Sked.PriorDate eq$ dup !Sked.SameDate { empty !Sked.PriorDate } { } ifelse "skedresp" log)(