154 lines
4.5 KiB
Plaintext
154 lines
4.5 KiB
Plaintext
unit fODChangeUnreleasedRenew;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, ExtCtrls, StdCtrls, ORCtrls, fAutoSz, uOrders, ORFn, ORDtTm, rOrders,
|
|
VA508AccessibilityManager;
|
|
|
|
type
|
|
TfrmODChangeUnreleasedRenew = class(TFrmAutoSz)
|
|
memOrder: TCaptionMemo;
|
|
Panel1: TPanel;
|
|
btnOK: TButton;
|
|
btnCancel: TButton;
|
|
Panel2: TPanel;
|
|
edtRefill: TCaptionEdit;
|
|
lblRefill: TLabel;
|
|
lblPickUp: TLabel;
|
|
cboPickup: TORComboBox;
|
|
Panel3: TPanel;
|
|
Label1: TLabel;
|
|
Label2: TLabel;
|
|
txtStart: TORDateBox;
|
|
txtStop: TORDateBox;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure btnCancelClick(Sender: TObject);
|
|
procedure btnOKClick(Sender: TObject);
|
|
private
|
|
OKPressed: boolean;
|
|
FCategory: integer;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
procedure ExecuteChangeRenewedOrder(const AnID: string; var param1, param2: string; Category: integer);
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
const
|
|
TX_ERR_REFILL = 'Refills must be a number from 0 to 11.';
|
|
TC_ERR_REFILL = 'Refills';
|
|
TC_INVALID_DATE = 'Unable to interpret date/time entry.';
|
|
TX_BAD_START = 'The start date is not valid.';
|
|
TX_BAD_STOP = 'The stop date is not valid.';
|
|
TX_STOPSTART = 'The stop date must be after the start date.';
|
|
|
|
procedure ExecuteChangeRenewedOrder(const AnID: string; var param1, param2: string; Category: integer);
|
|
var
|
|
frmODChangeUnreleasedRenew: TfrmODChangeUnreleasedRenew;
|
|
theText: string;
|
|
tmpRefills: integer;
|
|
begin
|
|
tmpRefills := 0;
|
|
theText := Trim(RetrieveOrderText(AnID));
|
|
if Pos('>> RENEW', UpperCase(theText)) = 1 then Delete(theText,1,length('>> RENEW'))
|
|
else if Pos('RENEW',UpperCase(theText))= 1 then Delete(theText,1,length('RENEW'));
|
|
frmODChangeUnreleasedRenew := TfrmODChangeUnreleasedRenew.Create(Application);
|
|
try
|
|
frmODChangeUnreleasedRenew.FCategory := Category;
|
|
ResizeFormToFont(TForm(frmODChangeUnreleasedRenew));
|
|
if Category = 0 then
|
|
begin
|
|
frmODChangeUnreleasedRenew.Panel3.Visible := False;
|
|
tmpRefills := StrToIntDef(param1,0);
|
|
frmODChangeUnreleasedRenew.edtRefill.Text := param1;
|
|
frmODChangeUnreleasedRenew.cboPickup.SelectByID(param2);
|
|
frmODChangeUnreleasedRenew.memOrder.SetTextBuf(PChar(theText));
|
|
end
|
|
else if Category = 1 then
|
|
begin
|
|
frmODChangeUnreleasedRenew.Panel2.Visible := false;
|
|
frmODChangeUnreleasedRenew.txtStart.Text := param1;
|
|
frmODChangeUnreleasedRenew.txtStop.Text := param2;
|
|
frmODChangeUnreleasedRenew.memOrder.SetTextBuf(PChar(theText));
|
|
end;
|
|
frmODChangeUnreleasedRenew.ShowModal;
|
|
if frmODChangeUnreleasedRenew.OKPressed then
|
|
begin
|
|
if Category = 0 then
|
|
begin
|
|
tmpRefills := StrToIntDef(frmODChangeUnreleasedRenew.edtRefill.Text, tmpRefills);
|
|
param1 := IntToStr(tmpRefills);
|
|
param2 := frmODChangeUnreleasedRenew.cboPickup.ItemID;
|
|
end
|
|
else if Category = 1 then
|
|
begin
|
|
param1 := frmODChangeUnreleasedRenew.txtStart.Text;
|
|
param2 := frmODChangeUnreleasedRenew.txtStop.Text;
|
|
end;
|
|
end;
|
|
finally
|
|
frmODChangeUnreleasedRenew.Release;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmODChangeUnreleasedRenew.FormCreate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
OKPressed := False;
|
|
with cboPickup.Items do
|
|
begin
|
|
Add('W^at Window');
|
|
Add('M^by Mail');
|
|
Add('C^in Clinic');
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmODChangeUnreleasedRenew.btnCancelClick(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
Close;
|
|
end;
|
|
|
|
procedure TfrmODChangeUnreleasedRenew.btnOKClick(Sender: TObject);
|
|
var
|
|
NumRefills: Integer;
|
|
x, ErrMsg: string;
|
|
begin
|
|
inherited;
|
|
if panel2.Visible then
|
|
begin
|
|
NumRefills := StrToIntDef(edtRefill.Text, -1);
|
|
if (NumRefills < 0) or (NumRefills > 11) then
|
|
begin
|
|
InfoBox(TX_ERR_REFILL, TC_ERR_REFILL, MB_OK);
|
|
Exit;
|
|
end;
|
|
end
|
|
else if panel3.Visible then
|
|
begin
|
|
ErrMsg := '';
|
|
txtStart.Validate(x);
|
|
if Length(x) > 0 then ErrMsg := ErrMsg + TX_BAD_START + CRLF;
|
|
with txtStop do
|
|
begin
|
|
Validate(x);
|
|
if Length(x) > 0 then ErrMsg := ErrMsg + TX_BAD_STOP + CRLF;
|
|
if (Length(Text) > 0) and (FMDateTime <= txtStart.FMDateTime)
|
|
then ErrMsg := ErrMsg + TX_STOPSTART;
|
|
end;
|
|
if Length(ErrMsg) > 0 then
|
|
begin
|
|
InfoBox(ErrMsg, TC_INVALID_DATE, MB_OK);
|
|
Exit;
|
|
end;
|
|
end;
|
|
OKPressed := True;
|
|
Close;
|
|
end;
|
|
|
|
end.
|