| [453] | 1 | //kt -- Modified with SourceScanner on 8/8/2007
 | 
|---|
 | 2 | unit fOtherSchedule;
 | 
|---|
 | 3 | 
 | 
|---|
 | 4 | interface
 | 
|---|
 | 5 | 
 | 
|---|
 | 6 | uses
 | 
|---|
 | 7 |   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 | 
|---|
 | 8 |   Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, fAutoSz, rMisc, DKLang;
 | 
|---|
 | 9 | 
 | 
|---|
 | 10 | //const
 | 
|---|
 | 11 | //NSS_TXT = 'This order will not become active until a valid schedule is used.';  <-- original line.  //kt 8/8/2007
 | 
|---|
 | 12 | function NSS_TXT : string;  //kt
 | 
|---|
 | 13 | 
 | 
|---|
 | 14 | type
 | 
|---|
 | 15 |   TfrmOtherSchedule = class(TfrmAutoSz)
 | 
|---|
 | 16 |     Panel1: TPanel;
 | 
|---|
 | 17 |     Image1: TImage;
 | 
|---|
 | 18 |     Panel3: TPanel;
 | 
|---|
 | 19 |     GroupBox1: TGroupBox;
 | 
|---|
 | 20 |     cbo7: TCheckBox;
 | 
|---|
 | 21 |     cbo1: TCheckBox;
 | 
|---|
 | 22 |     cbo2: TCheckBox;
 | 
|---|
 | 23 |     cbo3: TCheckBox;
 | 
|---|
 | 24 |     cbo4: TCheckBox;
 | 
|---|
 | 25 |     cbo5: TCheckBox;
 | 
|---|
 | 26 |     cbo6: TCheckBox;
 | 
|---|
 | 27 |     GroupBox2: TGroupBox;
 | 
|---|
 | 28 |     lstHour: TListBox;
 | 
|---|
 | 29 |     lstMinute: TListBox;
 | 
|---|
 | 30 |     Panel4: TPanel;
 | 
|---|
 | 31 |     btn0k1: TButton;
 | 
|---|
 | 32 |     btnCancel: TButton;
 | 
|---|
 | 33 |     txtSchedule: TEdit;
 | 
|---|
 | 34 |     Label1: TLabel;
 | 
|---|
 | 35 |     btnReset: TButton;
 | 
|---|
 | 36 |     btnRemove: TButton;
 | 
|---|
 | 37 |     memMessage: TMemo;
 | 
|---|
 | 38 |     Splitter1: TSplitter;
 | 
|---|
 | 39 |     btnAdd: TButton;
 | 
|---|
 | 40 |     Button1: TButton;
 | 
|---|
 | 41 |     DKLanguageController1: TDKLanguageController;
 | 
|---|
 | 42 |     procedure FormCreate(Sender: TObject);
 | 
|---|
 | 43 |     procedure btnCancelClick(Sender: TObject);
 | 
|---|
 | 44 |     procedure btn0k1Click(Sender: TObject);
 | 
|---|
 | 45 |     procedure cbo7Click(Sender: TObject);
 | 
|---|
 | 46 |     procedure cbo1Click(Sender: TObject);
 | 
|---|
 | 47 |     procedure cbo2Click(Sender: TObject);
 | 
|---|
 | 48 |     procedure cbo3Click(Sender: TObject);
 | 
|---|
 | 49 |     procedure cbo4Click(Sender: TObject);
 | 
|---|
 | 50 |     procedure cbo5Click(Sender: TObject);
 | 
|---|
 | 51 |     procedure cbo6Click(Sender: TObject);
 | 
|---|
 | 52 |     procedure btnAddClick(Sender: TObject);
 | 
|---|
 | 53 |     procedure btnResetClick(Sender: TObject);
 | 
|---|
 | 54 |     procedure btnRemoveClick(Sender: TObject);
 | 
|---|
 | 55 |     procedure FormClose(Sender: TObject; var Action: TCloseAction);
 | 
|---|
 | 56 |     procedure lstHourClick(Sender: TObject);
 | 
|---|
 | 57 |     procedure txtScheduleChange(Sender: TObject);
 | 
|---|
 | 58 |     procedure lstMinuteMouseUp(Sender: TObject; Button: TMouseButton;
 | 
|---|
 | 59 |       Shift: TShiftState; X, Y: Integer);
 | 
|---|
 | 60 |     procedure lstMinuteKeyDown(Sender: TObject; var Key: Word;
 | 
|---|
 | 61 |       Shift: TShiftState);
 | 
|---|
 | 62 |     procedure Button1Click(Sender: TObject);
 | 
|---|
 | 63 |   private
 | 
|---|
 | 64 |     FDaySchedule: array [1..7] of string;
 | 
|---|
 | 65 |     FTimeSchedule: TStringList;
 | 
|---|
 | 66 |     FOtherSchedule: String;
 | 
|---|
 | 67 |     FFromCheckBox: boolean;
 | 
|---|
 | 68 |     FFromEditBox: boolean;
 | 
|---|
 | 69 |     function GetSiteMessage: string;
 | 
|---|
 | 70 |     procedure SetDaySchedule(Sender: TObject);
 | 
|---|
 | 71 |     procedure SetTimeSchedule;
 | 
|---|
 | 72 |     procedure UpdateOnFreeTextInput;
 | 
|---|
 | 73 |     function CheckDay(ADayStr: string): string;
 | 
|---|
 | 74 | 
 | 
|---|
 | 75 |   public
 | 
|---|
 | 76 |   end;
 | 
|---|
 | 77 | 
 | 
|---|
 | 78 | function ShowOtherSchedule(var ASchedule: string): boolean;
 | 
|---|
 | 79 | 
 | 
|---|
 | 80 | implementation
 | 
|---|
 | 81 | 
 | 
|---|
 | 82 | uses ORFn, ORNet, rOrders;
 | 
|---|
 | 83 | {$R *.dfm}
 | 
|---|
 | 84 | 
 | 
|---|
 | 85 | function NSS_TXT : string;  //kt added to replace const
 | 
|---|
 | 86 | begin Result := DKLangConstW('fOtherSchedule_This_order_will_not_become_active_until_a_valid_schedule_is_usedx'); //kt added 8/8/2007
 | 
|---|
 | 87 | end;
 | 
|---|
 | 88 | 
 | 
|---|
 | 89 | function ShowOtherSchedule(var ASchedule: string): boolean;
 | 
|---|
 | 90 | var
 | 
|---|
 | 91 |   frmOtherSchedule: TfrmOtherSchedule;
 | 
|---|
 | 92 | begin
 | 
|---|
 | 93 |   Result := False;
 | 
|---|
 | 94 |   try
 | 
|---|
 | 95 |    frmOtherSchedule := TfrmOtherSchedule.Create(Application);
 | 
|---|
 | 96 |    ResizeFormToFont(TForm(frmOtherSchedule));
 | 
|---|
 | 97 |    SetFormPosition(frmOtherSchedule);
 | 
|---|
 | 98 |    if frmOtherSchedule.ShowModal = mrOK then
 | 
|---|
 | 99 |    begin
 | 
|---|
 | 100 |      ASchedule := UpperCase(frmOtherSchedule.FOtherSchedule);
 | 
|---|
 | 101 |      Result := True;
 | 
|---|
 | 102 |    end;
 | 
|---|
 | 103 |   except
 | 
|---|
 | 104 | // ShowMessage('Error happen when building other schedule');  <-- original line.  //kt 8/8/2007
 | 
|---|
 | 105 |    ShowMessage(DKLangConstW('fOtherSchedule_Error_happen_when_building_other_schedule')); //kt added 8/8/2007
 | 
|---|
 | 106 |   end;
 | 
|---|
 | 107 | end;
 | 
|---|
 | 108 | 
 | 
|---|
 | 109 | 
 | 
|---|
 | 110 | procedure TfrmOtherSchedule.FormCreate(Sender: TObject);
 | 
|---|
 | 111 | var
 | 
|---|
 | 112 |   i: integer;
 | 
|---|
 | 113 |   nssMsg: string;
 | 
|---|
 | 114 | begin
 | 
|---|
 | 115 |   FFromCheckBox := False;
 | 
|---|
 | 116 |   FFromEditBox := False;
 | 
|---|
 | 117 |   image1.Picture.Icon.Handle := LoadIcon(0, IDI_WARNING);
 | 
|---|
 | 118 |   for i := 1 to 7 do
 | 
|---|
 | 119 |    FDaySchedule[i] := '';
 | 
|---|
 | 120 |   FTimeSchedule := TStringlist.Create;
 | 
|---|
 | 121 |   FOtherSchedule := '';
 | 
|---|
 | 122 |   nssMsg := GetSiteMessage;
 | 
|---|
 | 123 |   if Length(nssMsg)< 1 then
 | 
|---|
 | 124 |     nssMsg := NSS_TXT;
 | 
|---|
 | 125 |   memMessage.Lines.Add(nssMsg);
 | 
|---|
 | 126 | end;
 | 
|---|
 | 127 | 
 | 
|---|
 | 128 | procedure TfrmOtherSchedule.btnCancelClick(Sender: TObject);
 | 
|---|
 | 129 | begin
 | 
|---|
 | 130 |   modalResult := mrCancel;
 | 
|---|
 | 131 | end;
 | 
|---|
 | 132 | 
 | 
|---|
 | 133 | procedure TfrmOtherSchedule.btn0k1Click(Sender: TObject);
 | 
|---|
 | 134 | begin
 | 
|---|
 | 135 |   if (cbo1.Checked = false) and (cbo2.Checked = false) and (cbo3.Checked = false) and (cbo4.Checked = false) and (cbo5.Checked = false) and
 | 
|---|
 | 136 |     (cbo6.Checked = false) and (cbo7.Checked = false) then
 | 
|---|
 | 137 |     begin
 | 
|---|
 | 138 | //    ShowMessage('A day of week must be selected!');  <-- original line.  //kt 8/8/2007
 | 
|---|
 | 139 |       ShowMessage(DKLangConstW('fOtherSchedule_A_day_of_week_must_be_selectedx')); //kt added 8/8/2007
 | 
|---|
 | 140 |       Exit;
 | 
|---|
 | 141 |     end;
 | 
|---|
 | 142 |   if not IsValidSchStr(FOtherSchedule) then
 | 
|---|
 | 143 |   begin
 | 
|---|
 | 144 | //  ShowMessage('The schedule you entered is invalid!');  <-- original line.  //kt 8/8/2007
 | 
|---|
 | 145 |     ShowMessage(DKLangConstW('fOtherSchedule_The_schedule_you_entered_is_invalidx')); //kt added 8/8/2007
 | 
|---|
 | 146 |     Exit;
 | 
|---|
 | 147 |   end;
 | 
|---|
 | 148 |   modalResult := mrOK;
 | 
|---|
 | 149 | end;
 | 
|---|
 | 150 | 
 | 
|---|
 | 151 | procedure TfrmOtherSchedule.SetDaySchedule(Sender: TObject);
 | 
|---|
 | 152 | var
 | 
|---|
 | 153 |   i : integer;
 | 
|---|
 | 154 |   TimePart, DayPart: string;
 | 
|---|
 | 155 | begin
 | 
|---|
 | 156 |   with (Sender as TCheckBox) do
 | 
|---|
 | 157 |   begin
 | 
|---|
 | 158 |     try
 | 
|---|
 | 159 |       if TCheckBox(Sender).Checked then
 | 
|---|
 | 160 |         FDaySchedule[TCheckBox(Sender).Tag] := Copy(TCheckBox(Sender).Caption,0,2)
 | 
|---|
 | 161 |       else
 | 
|---|
 | 162 |         FDaySchedule[TCheckBox(Sender).Tag] := '';
 | 
|---|
 | 163 |     except
 | 
|---|
 | 164 | //    ShowMessage('Error happened when building day schedule.');  <-- original line.  //kt 8/8/2007
 | 
|---|
 | 165 |       ShowMessage(DKLangConstW('fOtherSchedule_Error_happened_when_building_day_schedulex')); //kt added 8/8/2007
 | 
|---|
 | 166 |       Exit;
 | 
|---|
 | 167 |     end;
 | 
|---|
 | 168 |   end;
 | 
|---|
 | 169 | 
 | 
|---|
 | 170 |   TimePart := '';
 | 
|---|
 | 171 |   DayPart := '';
 | 
|---|
 | 172 |   for i := 0 to FTimeSchedule.Count - 1 do
 | 
|---|
 | 173 |   begin
 | 
|---|
 | 174 |     if i = 0 then TimePart := TimePart + FTimeSchedule[i]
 | 
|---|
 | 175 |     else TimePart := TimePart + '-' + FTimeSchedule[i];
 | 
|---|
 | 176 |   end;
 | 
|---|
 | 177 |   for i := Low(FDaySchedule) to High(FDaySchedule) do
 | 
|---|
 | 178 |   begin
 | 
|---|
 | 179 |     if Length(FDaySchedule[i])>0 then
 | 
|---|
 | 180 |     begin
 | 
|---|
 | 181 |       if DayPart = '' then DayPart := FDaySchedule[i]
 | 
|---|
 | 182 |       else DayPart := DayPart + '-' + FDaySchedule[i];
 | 
|---|
 | 183 |     end;
 | 
|---|
 | 184 |   end;
 | 
|---|
 | 185 |   if Length(TimePart) > 0 then
 | 
|---|
 | 186 |   begin
 | 
|---|
 | 187 |     if Length(DayPart) > 0 then
 | 
|---|
 | 188 |       FOtherSchedule := DayPart + '@' + TimePart
 | 
|---|
 | 189 |     else if Length(DayPart) = 0 then
 | 
|---|
 | 190 |       FOtherSchedule := TimePart;
 | 
|---|
 | 191 |   end
 | 
|---|
 | 192 |   else FOtherSchedule := DayPart;
 | 
|---|
 | 193 |   txtSchedule.Text := FOtherSchedule;
 | 
|---|
 | 194 | end;
 | 
|---|
 | 195 | 
 | 
|---|
 | 196 | procedure TfrmOtherSchedule.SetTimeSchedule;
 | 
|---|
 | 197 | var
 | 
|---|
 | 198 |   i : integer;
 | 
|---|
 | 199 |   TimePart, DayPart,APRN,ASearchTxt: string;
 | 
|---|
 | 200 | begin
 | 
|---|
 | 201 |   TimePart := '';
 | 
|---|
 | 202 |   DayPart := '';
 | 
|---|
 | 203 |   APRN := '';
 | 
|---|
 | 204 |   ASearchTxt := UpperCase(txtSchedule.Text);
 | 
|---|
 | 205 |   if StrPos(PChar(ASearchTxt),PChar('PRN')) <> nil then APRN := ' PRN'; //hds8326 retain PRN free text if data time entered
 | 
|---|
 | 206 |   for i := 0 to FTimeSchedule.Count - 1 do
 | 
|---|
 | 207 |   begin
 | 
|---|
 | 208 |     if i = 0 then TimePart := TimePart + FTimeSchedule[i]
 | 
|---|
 | 209 |     else TimePart := TimePart + '-' + FTimeSchedule[i];
 | 
|---|
 | 210 |   end;
 | 
|---|
 | 211 |   for i := Low(FDaySchedule) to High(FDaySchedule) do
 | 
|---|
 | 212 |   begin
 | 
|---|
 | 213 |     if Length(FDaySchedule[i])>0 then
 | 
|---|
 | 214 |     begin
 | 
|---|
 | 215 |       if DayPart = '' then DayPart := FDaySchedule[i]
 | 
|---|
 | 216 |       else DayPart := DayPart + '-' + FDaySchedule[i];
 | 
|---|
 | 217 |     end;
 | 
|---|
 | 218 |   end;
 | 
|---|
 | 219 |   if Length(DayPart) > 0 then
 | 
|---|
 | 220 |   begin
 | 
|---|
 | 221 |     if Length(TimePart) > 0 then
 | 
|---|
 | 222 |       FOtherSchedule := DayPart + '@' + TimePart
 | 
|---|
 | 223 |     else
 | 
|---|
 | 224 |       FOtherSchedule := DayPart;
 | 
|---|
 | 225 |   end
 | 
|---|
 | 226 |   else FOtherSchedule := TimePart;
 | 
|---|
 | 227 |   if Length(APRN) > 0 then FOtherSchedule := FOtherSchedule + APRN; //hds8326 retain PRN free text if data time entered
 | 
|---|
 | 228 |   txtSchedule.Text := FOtherSchedule;
 | 
|---|
 | 229 | end;
 | 
|---|
 | 230 | 
 | 
|---|
 | 231 | procedure TfrmOtherSchedule.cbo7Click(Sender: TObject);
 | 
|---|
 | 232 | begin
 | 
|---|
 | 233 |   FFromCheckBox := True;
 | 
|---|
 | 234 |   if not FFromEditBox then
 | 
|---|
 | 235 |     SetDaySchedule(Sender);
 | 
|---|
 | 236 |   FFromCheckBox := False;
 | 
|---|
 | 237 | end;
 | 
|---|
 | 238 | 
 | 
|---|
 | 239 | procedure TfrmOtherSchedule.cbo1Click(Sender: TObject);
 | 
|---|
 | 240 | begin
 | 
|---|
 | 241 |   FFromCheckBox := True;
 | 
|---|
 | 242 |   if not FFromEditBox then
 | 
|---|
 | 243 |     SetDaySchedule(Sender);
 | 
|---|
 | 244 |   FFromCheckBox := False;
 | 
|---|
 | 245 | end;
 | 
|---|
 | 246 | 
 | 
|---|
 | 247 | procedure TfrmOtherSchedule.cbo2Click(Sender: TObject);
 | 
|---|
 | 248 | begin
 | 
|---|
 | 249 |   FFromCheckBox := True;
 | 
|---|
 | 250 |   if not FFromEditBox then
 | 
|---|
 | 251 |     SetDaySchedule(Sender);
 | 
|---|
 | 252 |   FFromCheckBox := False;
 | 
|---|
 | 253 | end;
 | 
|---|
 | 254 | 
 | 
|---|
 | 255 | procedure TfrmOtherSchedule.cbo3Click(Sender: TObject);
 | 
|---|
 | 256 | begin
 | 
|---|
 | 257 |   FFromCheckBox := True;
 | 
|---|
 | 258 |   if not FFromEditBox then
 | 
|---|
 | 259 |     SetDaySchedule(Sender);
 | 
|---|
 | 260 |   FFromCheckBox := False;
 | 
|---|
 | 261 | end;
 | 
|---|
 | 262 | 
 | 
|---|
 | 263 | procedure TfrmOtherSchedule.cbo4Click(Sender: TObject);
 | 
|---|
 | 264 | begin
 | 
|---|
 | 265 |   FFromCheckBox := True;
 | 
|---|
 | 266 |   if not FFromEditBox then
 | 
|---|
 | 267 |     SetDaySchedule(Sender);
 | 
|---|
 | 268 |   FFromCheckBox := False;
 | 
|---|
 | 269 | end;
 | 
|---|
 | 270 | 
 | 
|---|
 | 271 | procedure TfrmOtherSchedule.cbo5Click(Sender: TObject);
 | 
|---|
 | 272 | begin
 | 
|---|
 | 273 |   FFromCheckBox := True;
 | 
|---|
 | 274 |   if not FFromEditBox then
 | 
|---|
 | 275 |     SetDaySchedule(Sender);
 | 
|---|
 | 276 |   FFromCheckBox := False;
 | 
|---|
 | 277 | end;
 | 
|---|
 | 278 | 
 | 
|---|
 | 279 | procedure TfrmOtherSchedule.cbo6Click(Sender: TObject);
 | 
|---|
 | 280 | begin
 | 
|---|
 | 281 |   FFromCheckBox := True;
 | 
|---|
 | 282 |   if not FFromEditBox then
 | 
|---|
 | 283 |     SetDaySchedule(Sender);
 | 
|---|
 | 284 |   FFromCheckBox := False;
 | 
|---|
 | 285 | end;
 | 
|---|
 | 286 | 
 | 
|---|
 | 287 | procedure TfrmOtherSchedule.btnAddClick(Sender: TObject);
 | 
|---|
 | 288 | var
 | 
|---|
 | 289 |   hour, min: string;
 | 
|---|
 | 290 | begin
 | 
|---|
 | 291 |   if lstHour.ItemIndex < 0 then exit;
 | 
|---|
 | 292 |   hour := lstHour.Items[lstHour.ItemIndex];
 | 
|---|
 | 293 |   hour := Trim(Copy(hour,1,3));
 | 
|---|
 | 294 |   if length(Trim(hour)) = 1 then
 | 
|---|
 | 295 |     hour := '0' + Trim(hour);
 | 
|---|
 | 296 |   if lstMinute.ItemIndex >= 0 then
 | 
|---|
 | 297 |   begin
 | 
|---|
 | 298 |     min := lstMinute.Items[lstMinute.itemIndex];
 | 
|---|
 | 299 |     min := Copy(min,2,2);
 | 
|---|
 | 300 |   end;
 | 
|---|
 | 301 |   if min = '' then min := '00';
 | 
|---|
 | 302 |   if (hour='00') and (min='00') then hour := '24';
 | 
|---|
 | 303 |   if FTimeSchedule.IndexOf(hour)>=0 then
 | 
|---|
 | 304 |   begin
 | 
|---|
 | 305 |     FTimeSchedule[FTimeSchedule.IndexOf(hour)] := hour + min;
 | 
|---|
 | 306 |   end;
 | 
|---|
 | 307 |   if FTimeSchedule.IndexOf(hour+min) < 0 then
 | 
|---|
 | 308 |     FTimeSchedule.Add(hour+min);
 | 
|---|
 | 309 |   FTimeSchedule.Sort;
 | 
|---|
 | 310 |   SetTimeSchedule;
 | 
|---|
 | 311 | end;
 | 
|---|
 | 312 | 
 | 
|---|
 | 313 | procedure TfrmOtherSchedule.btnResetClick(Sender: TObject);
 | 
|---|
 | 314 | var
 | 
|---|
 | 315 |   i : integer;
 | 
|---|
 | 316 | begin
 | 
|---|
 | 317 |   cbo1.Checked := false;
 | 
|---|
 | 318 |   cbo2.Checked := false;
 | 
|---|
 | 319 |   cbo3.Checked:= false;
 | 
|---|
 | 320 |   cbo4.Checked := false;
 | 
|---|
 | 321 |   cbo5.Checked := false;
 | 
|---|
 | 322 |   cbo6.Checked := false;
 | 
|---|
 | 323 |   cbo7.Checked := false;
 | 
|---|
 | 324 |   lstHour.ItemIndex := -1;
 | 
|---|
 | 325 |   lstMinute.ItemIndex := -1;
 | 
|---|
 | 326 |   for i := low(FDaySchedule) to high(FDaySchedule) do
 | 
|---|
 | 327 |     FDaySchedule[i] := '';
 | 
|---|
 | 328 |   FTimeSchedule.Clear;
 | 
|---|
 | 329 |   FOtherSchedule := '';
 | 
|---|
 | 330 |   txtSchedule.Text := '';
 | 
|---|
 | 331 | end;
 | 
|---|
 | 332 | 
 | 
|---|
 | 333 | procedure TfrmOtherSchedule.btnRemoveClick(Sender: TObject);
 | 
|---|
 | 334 | var
 | 
|---|
 | 335 |   hour, min: string;
 | 
|---|
 | 336 |   idx : integer;
 | 
|---|
 | 337 | begin
 | 
|---|
 | 338 |   FFromCheckBox := True;
 | 
|---|
 | 339 |   if lstHour.ItemIndex >= 0 then
 | 
|---|
 | 340 |   begin
 | 
|---|
 | 341 |     hour := lstHour.Items[lstHour.ItemIndex];
 | 
|---|
 | 342 |     hour := Trim(Copy(hour,1,3));
 | 
|---|
 | 343 |     if length(hour) = 1 then
 | 
|---|
 | 344 |       hour := '0' + Trim(hour);
 | 
|---|
 | 345 |   end;
 | 
|---|
 | 346 |   if lstMinute.ItemIndex >= 0 then
 | 
|---|
 | 347 |   begin
 | 
|---|
 | 348 |     min := lstMinute.Items[lstMinute.itemIndex];
 | 
|---|
 | 349 |     min := Copy(min,2,2);
 | 
|---|
 | 350 |   end;
 | 
|---|
 | 351 |   if min = '' then min := '00';
 | 
|---|
 | 352 |   if (hour='00') and (min='00') then hour := '24';
 | 
|---|
 | 353 |   idx := FTimeSchedule.IndexOf(hour+min);
 | 
|---|
 | 354 |   if idx > -1 then
 | 
|---|
 | 355 |     FTimeSchedule.Delete(idx);
 | 
|---|
 | 356 |   FTimeSchedule.Sort;
 | 
|---|
 | 357 |   SetTimeSchedule;
 | 
|---|
 | 358 |   FFromCheckBox := False;
 | 
|---|
 | 359 | end;
 | 
|---|
 | 360 | 
 | 
|---|
 | 361 | function TfrmOtherSchedule.GetSiteMessage: string;
 | 
|---|
 | 362 | var
 | 
|---|
 | 363 |   i: integer;
 | 
|---|
 | 364 |   rstStr: string;
 | 
|---|
 | 365 | begin
 | 
|---|
 | 366 |   rstStr := '';
 | 
|---|
 | 367 |   CallV('ORWNSS NSSMSG',[nil]);
 | 
|---|
 | 368 |   for i := 0 to RPCBrokerV.Results.Count - 1 do
 | 
|---|
 | 369 |     rstStr := rstStr + RPCBrokerV.Results[i];
 | 
|---|
 | 370 |   Result := rstStr;
 | 
|---|
 | 371 | end;
 | 
|---|
 | 372 | 
 | 
|---|
 | 373 | procedure TfrmOtherSchedule.FormClose(Sender: TObject;
 | 
|---|
 | 374 |   var Action: TCloseAction);
 | 
|---|
 | 375 | begin
 | 
|---|
 | 376 |   try
 | 
|---|
 | 377 |     inherited;
 | 
|---|
 | 378 |     SaveUserBounds(Self);
 | 
|---|
 | 379 |     Action := caFree;
 | 
|---|
 | 380 |   except
 | 
|---|
 | 381 |     Action := caFree;
 | 
|---|
 | 382 |   end;
 | 
|---|
 | 383 | end;
 | 
|---|
 | 384 | 
 | 
|---|
 | 385 | procedure TfrmOtherSchedule.UpdateOnFreeTextInput;
 | 
|---|
 | 386 | var
 | 
|---|
 | 387 |   dayStr,timeStr: string;
 | 
|---|
 | 388 |   dayList: TStringList;
 | 
|---|
 | 389 |   i,Code,cnt : integer;
 | 
|---|
 | 390 |   OrigSch: string;
 | 
|---|
 | 391 | 
 | 
|---|
 | 392 |   procedure updateCheckbox(aDList: TStringList);
 | 
|---|
 | 393 |   var
 | 
|---|
 | 394 |     idx: integer;
 | 
|---|
 | 395 |     x: string;
 | 
|---|
 | 396 |   begin
 | 
|---|
 | 397 |     for idx := aDList.Count - 1 downto 0 do
 | 
|---|
 | 398 |     begin
 | 
|---|
 | 399 |     // cq hds8326 PRN entered manually split PRN from DOW to retain last DOW
 | 
|---|
 | 400 |       x := UpperCase(aDList.Strings[idx]); // added to properly process DOW when followed by a space "PRN".
 | 
|---|
 | 401 |       if Piece(x,' ',2) = 'PRN' then
 | 
|---|
 | 402 |          aDLIst.Strings[idx] := Piece(x,' ',1);
 | 
|---|
 | 403 |     // cq hds8326
 | 
|---|
 | 404 |       if ((CheckDay(aDList[idx]) = 'SUN') or (CheckDay(aDList[idx]) = 'SU')) then
 | 
|---|
 | 405 |         begin
 | 
|---|
 | 406 |           cbo7.Checked := true;
 | 
|---|
 | 407 |           aDList[idx] := 'SU';
 | 
|---|
 | 408 |           FDaySchedule[cbo7.tag] := 'SU';
 | 
|---|
 | 409 |         end
 | 
|---|
 | 410 |       else if ((CheckDay(aDList[idx]) = 'MON') or (CheckDay(aDList[idx]) = 'MO')) then
 | 
|---|
 | 411 |         begin
 | 
|---|
 | 412 |           cbo1.Checked := true;
 | 
|---|
 | 413 |           aDList[idx] := 'MO';
 | 
|---|
 | 414 |           FDaySchedule[cbo1.tag] := 'MO';
 | 
|---|
 | 415 |         end
 | 
|---|
 | 416 |       else if ((CheckDay(aDList[idx]) = 'TUE') or (CheckDay(aDList[idx]) = 'TU')) then
 | 
|---|
 | 417 |         begin
 | 
|---|
 | 418 |           cbo2.Checked := true;
 | 
|---|
 | 419 |           aDList[idx] := 'TU';
 | 
|---|
 | 420 |           FDaySchedule[cbo2.tag] := 'TU';
 | 
|---|
 | 421 |         end
 | 
|---|
 | 422 |       else if ((CheckDay(aDList[idx]) = 'WED') or (CheckDay(aDList[idx]) = 'WE')) then
 | 
|---|
 | 423 |         begin
 | 
|---|
 | 424 |           cbo3.Checked := true;
 | 
|---|
 | 425 |           aDList[idx] := 'WE';
 | 
|---|
 | 426 |           FDaySchedule[cbo3.tag] := 'WE';
 | 
|---|
 | 427 |         end
 | 
|---|
 | 428 |       else if ((CheckDay(aDList[idx]) = 'THU') or (CheckDay(aDList[idx]) = 'TH')) then
 | 
|---|
 | 429 |         begin
 | 
|---|
 | 430 |           cbo4.Checked := true;
 | 
|---|
 | 431 |           aDList[idx] := 'TH';
 | 
|---|
 | 432 |           FDaySchedule[cbo4.tag] := 'TH';
 | 
|---|
 | 433 |         end
 | 
|---|
 | 434 |       else if ((CheckDay(aDList[idx]) = 'FRI') or (CheckDay(aDList[idx]) = 'FR')) then
 | 
|---|
 | 435 |         begin
 | 
|---|
 | 436 |           cbo5.Checked := true;
 | 
|---|
 | 437 |           aDList[idx] := 'FR';
 | 
|---|
 | 438 |           FDaySchedule[cbo5.tag] := 'FR';
 | 
|---|
 | 439 |         end
 | 
|---|
 | 440 |       else if ((CheckDay(aDList[idx]) = 'SAT') or (CheckDay(aDList[idx]) = 'SA')) then
 | 
|---|
 | 441 |         begin
 | 
|---|
 | 442 |           cbo6.Checked := true;
 | 
|---|
 | 443 |           aDList[idx] := 'SA';
 | 
|---|
 | 444 |           FDaySchedule[cbo6.tag] := 'SA';
 | 
|---|
 | 445 |         end
 | 
|---|
 | 446 |       else aDList.Delete(idx);
 | 
|---|
 | 447 |     end;
 | 
|---|
 | 448 |   end;
 | 
|---|
 | 449 | 
 | 
|---|
 | 450 | begin
 | 
|---|
 | 451 |   inherited;
 | 
|---|
 | 452 |   dayStr  := '';
 | 
|---|
 | 453 |   timeStr := '';
 | 
|---|
 | 454 |   if Length (txtSchedule.Text) = 0 then
 | 
|---|
 | 455 |   begin
 | 
|---|
 | 456 |     FOtherSchedule := '';
 | 
|---|
 | 457 |     btnReset.Click;
 | 
|---|
 | 458 |     Exit;
 | 
|---|
 | 459 |   end;
 | 
|---|
 | 460 |   OrigSch := txtSchedule.Text;
 | 
|---|
 | 461 |   dayList  := TStringList.Create;
 | 
|---|
 | 462 |   if Pos('@',txtSchedule.Text)>0 then
 | 
|---|
 | 463 |   begin
 | 
|---|
 | 464 |     dayStr  := Trim(Piece(txtSchedule.Text,'@',1));
 | 
|---|
 | 465 |     timeStr := Trim(Piece(txtSchedule.Text,'@',2));
 | 
|---|
 | 466 |   end  else
 | 
|---|
 | 467 |   begin
 | 
|---|
 | 468 |     Val(Piece(txtSchedule.Text,'-',1), i, Code);
 | 
|---|
 | 469 |     if i = 0 then begin end;  // just to make compiler not give hint
 | 
|---|
 | 470 |     if Code <> 0 then dayStr := Trim(txtSchedule.Text)
 | 
|---|
 | 471 |     else timeStr := Trim(txtSchedule.Text);
 | 
|---|
 | 472 |   end;
 | 
|---|
 | 473 |   FTimeSchedule.Clear;
 | 
|---|
 | 474 |   for cnt := Low(FDaySchedule) to High(FDaySchedule) do
 | 
|---|
 | 475 |     FDaySchedule[cnt] := '';
 | 
|---|
 | 476 |   PiecesToList(timeStr, '-', FTimeSchedule);
 | 
|---|
 | 477 |   if Length(dayStr)>0 then
 | 
|---|
 | 478 |   begin
 | 
|---|
 | 479 |     PiecesToList(dayStr, '-', dayList);
 | 
|---|
 | 480 |     cbo7.Checked := False;
 | 
|---|
 | 481 |     cbo1.Checked := False;
 | 
|---|
 | 482 |     cbo2.Checked := False;
 | 
|---|
 | 483 |     cbo3.Checked := False;
 | 
|---|
 | 484 |     cbo4.Checked := False;
 | 
|---|
 | 485 |     cbo5.Checked := False;
 | 
|---|
 | 486 |     cbo6.Checked := False;
 | 
|---|
 | 487 |     updateCheckbox(dayList);
 | 
|---|
 | 488 |   end;
 | 
|---|
 | 489 | 
 | 
|---|
 | 490 |   FOtherSchedule := txtSchedule.Text;
 | 
|---|
 | 491 | end;
 | 
|---|
 | 492 | 
 | 
|---|
 | 493 | procedure TfrmOtherSchedule.lstHourClick(Sender: TObject);
 | 
|---|
 | 494 | begin
 | 
|---|
 | 495 |   inherited;
 | 
|---|
 | 496 |   if lstMinute.ItemIndex = -1 then lstMinute.ItemIndex :=0;
 | 
|---|
 | 497 | end;
 | 
|---|
 | 498 | 
 | 
|---|
 | 499 | procedure TfrmOtherSchedule.txtScheduleChange(Sender: TObject);
 | 
|---|
 | 500 | begin
 | 
|---|
 | 501 |   inherited;
 | 
|---|
 | 502 |   FFromEditBox := True;
 | 
|---|
 | 503 |   if not FFromCheckBox then
 | 
|---|
 | 504 |     UpdateOnFreeTextInput;
 | 
|---|
 | 505 |   FFromEditBox := False;
 | 
|---|
 | 506 | end;
 | 
|---|
 | 507 | 
 | 
|---|
 | 508 | function TfrmOtherSchedule.CheckDay(ADayStr: string): string;
 | 
|---|
 | 509 | var
 | 
|---|
 | 510 |   lng: integer;
 | 
|---|
 | 511 | begin
 | 
|---|
 | 512 |   lng := Length(ADayStr);
 | 
|---|
 | 513 |   if lng <2 then
 | 
|---|
 | 514 |   begin
 | 
|---|
 | 515 |     result := '';
 | 
|---|
 | 516 |     Exit;
 | 
|---|
 | 517 |   end;
 | 
|---|
 | 518 |   if (lng < 7) and ( UpperCase(aDayStr)= Copy('SUNDAY',1,lng)) then
 | 
|---|
 | 519 |     result := 'SU'
 | 
|---|
 | 520 |   else if (lng < 7) and (UpperCase(aDayStr)= Copy('MONDAY',1,lng)) then
 | 
|---|
 | 521 |     result := 'MO'
 | 
|---|
 | 522 |   else if (lng < 8) and (UpperCase(aDayStr)= Copy('TUESDAY',1,lng)) then
 | 
|---|
 | 523 |     result := 'TU'
 | 
|---|
 | 524 |   else if (lng < 10) and (UpperCase(aDayStr)= Copy('WEDNESDAY',1,lng)) then
 | 
|---|
 | 525 |     result := 'WE'
 | 
|---|
 | 526 |   else if (lng < 9) and (UpperCase(aDayStr)= Copy('THURSDAY',1,lng)) then
 | 
|---|
 | 527 |     result := 'TH'
 | 
|---|
 | 528 |   else if (lng < 7) and (UpperCase(aDayStr)= Copy('FRIDAY',1,lng)) then
 | 
|---|
 | 529 |     result := 'FR'
 | 
|---|
 | 530 |   else if (lng < 9) and (UpperCase(aDayStr)= Copy('SATURDAY',1,lng)) then
 | 
|---|
 | 531 |     result := 'SA'
 | 
|---|
 | 532 |   else
 | 
|---|
 | 533 |     result := '';
 | 
|---|
 | 534 | end;
 | 
|---|
 | 535 | 
 | 
|---|
 | 536 | procedure TfrmOtherSchedule.lstMinuteMouseUp(Sender: TObject;
 | 
|---|
 | 537 |   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
 | 
|---|
 | 538 | begin
 | 
|---|
 | 539 |   inherited;
 | 
|---|
 | 540 |   FFromCheckBox := True;
 | 
|---|
 | 541 |   if lstHour.ItemIndex < 0 then Exit;
 | 
|---|
 | 542 |   //btnAddClick(Self);
 | 
|---|
 | 543 |   FFromCheckBox := False;
 | 
|---|
 | 544 | end;
 | 
|---|
 | 545 | 
 | 
|---|
 | 546 | procedure TfrmOtherSchedule.lstMinuteKeyDown(Sender: TObject;
 | 
|---|
 | 547 |   var Key: Word; Shift: TShiftState);
 | 
|---|
 | 548 | begin
 | 
|---|
 | 549 |   inherited;
 | 
|---|
 | 550 |   if (Key=VK_RETURN) then
 | 
|---|
 | 551 |   begin
 | 
|---|
 | 552 |     FFromCheckBox := True;
 | 
|---|
 | 553 |     if lstHour.ItemIndex < 0 then Exit;
 | 
|---|
 | 554 |     //btnAddClick(Self);
 | 
|---|
 | 555 |     FFromCheckBox := False;
 | 
|---|
 | 556 |   end;
 | 
|---|
 | 557 | end;
 | 
|---|
 | 558 | 
 | 
|---|
 | 559 | procedure TfrmOtherSchedule.Button1Click(Sender: TObject);
 | 
|---|
 | 560 | begin
 | 
|---|
 | 561 |   inherited;
 | 
|---|
 | 562 |    cbo1.Checked := true;
 | 
|---|
 | 563 |    cbo2.Checked := true;
 | 
|---|
 | 564 |    cbo3.Checked := true;
 | 
|---|
 | 565 |    cbo4.Checked := true;
 | 
|---|
 | 566 |    cbo5.Checked := true;
 | 
|---|
 | 567 |    cbo6.Checked := true;
 | 
|---|
 | 568 |    cbo7.Checked := true;
 | 
|---|
 | 569 | end;
 | 
|---|
 | 570 | 
 | 
|---|
 | 571 | end.
 | 
|---|
 | 572 | 
 | 
|---|