129 lines
3.4 KiB
Plaintext
129 lines
3.4 KiB
Plaintext
unit fOrdersRefill;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
fAutoSz, StdCtrls, ORFn, ORCtrls, ExtCtrls, VA508AccessibilityManager;
|
|
|
|
type
|
|
TfrmRefillOrders = class(TfrmAutoSz)
|
|
pnlBottom: TPanel;
|
|
cmdOK: TButton;
|
|
cmdCancel: TButton;
|
|
grbPickUp: TGroupBox;
|
|
radWindow: TRadioButton;
|
|
radMail: TRadioButton;
|
|
radClinic: TRadioButton;
|
|
pnlClient: TPanel;
|
|
lstOrders: TCaptionListBox;
|
|
lblOrders: TLabel;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure cmdOKClick(Sender: TObject);
|
|
procedure cmdCancelClick(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure FormShow(Sender: TObject);
|
|
private
|
|
OKPressed: Boolean;
|
|
PickupAt: string;
|
|
end;
|
|
|
|
function ExecuteRefillOrders(SelectedList: TList): Boolean;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
|
|
uses rOrders, rMeds, uCore, uConst, rMisc;
|
|
|
|
function ExecuteRefillOrders(SelectedList: TList): Boolean;
|
|
var
|
|
frmRefillOrders: TfrmRefillOrders;
|
|
AnOrder: TOrder;
|
|
OriginalID: string;
|
|
i: Integer;
|
|
begin
|
|
Result := False;
|
|
if SelectedList.Count = 0 then Exit;
|
|
frmRefillOrders := TfrmRefillOrders.Create(Application);
|
|
try
|
|
ResizeAnchoredFormToFont(frmRefillOrders);
|
|
frmRefillOrders.Left := (Screen.WorkAreaWidth - frmRefillOrders.Width) div 2;
|
|
frmRefillOrders.Top := (Screen.WorkAreaHeight - frmRefillOrders.Height) div 2;
|
|
with SelectedList do for i := 0 to Count - 1 do
|
|
frmRefillOrders.lstOrders.Items.Add(TOrder(Items[i]).Text);
|
|
frmRefillOrders.ShowModal;
|
|
if frmRefillOrders.OKPressed then
|
|
begin
|
|
StatusText('Requesting Refill...');
|
|
with SelectedList do for i := 0 to Count - 1 do
|
|
begin
|
|
AnOrder := TOrder(Items[i]);
|
|
OriginalID := AnOrder.ID;
|
|
Refill(OriginalID, frmRefillOrders.PickupAt);
|
|
AnOrder.ActionOn := OriginalID + '=RF';
|
|
SendMessage(Application.MainForm.Handle, UM_NEWORDER, ORDER_ACT, Integer(Items[i]));
|
|
end;
|
|
Result := True;
|
|
StatusText('');
|
|
end;
|
|
finally
|
|
with SelectedList do for i := 0 to Count - 1 do UnlockOrder(TOrder(Items[i]).ID);
|
|
frmRefillOrders.Release;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmRefillOrders.FormCreate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
OKPressed := False;
|
|
PickupAt := PickUpDefault;
|
|
if PickupAt = 'M' then
|
|
radMail.Checked := true
|
|
else
|
|
if PickupAt = 'C' then
|
|
radClinic.Checked := true
|
|
else
|
|
begin
|
|
PickupAt := 'W';
|
|
radWindow.Checked := true;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmRefillOrders.cmdOKClick(Sender: TObject);
|
|
const
|
|
TX_LOCATION_REQ = 'A location for the refill must be selected.';
|
|
TC_LOCATION_REQ = 'Missing Refill Location';
|
|
begin
|
|
inherited;
|
|
if not (radWindow.Checked or radMail.Checked or radClinic.Checked) then
|
|
begin
|
|
InfoBox(TX_LOCATION_REQ, TC_LOCATION_REQ, MB_OK);
|
|
Exit;
|
|
end;
|
|
OKPressed := True;
|
|
if radWindow.Checked then PickupAt := 'W'
|
|
else if radMail.Checked then PickupAt := 'M'
|
|
else PickupAt := 'C';
|
|
Close;
|
|
end;
|
|
|
|
procedure TfrmRefillOrders.cmdCancelClick(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
Close;
|
|
end;
|
|
|
|
procedure TfrmRefillOrders.FormClose(Sender: TObject;
|
|
var Action: TCloseAction);
|
|
begin
|
|
SaveUserBounds(Self);
|
|
end;
|
|
|
|
procedure TfrmRefillOrders.FormShow(Sender: TObject);
|
|
begin
|
|
SetFormPosition(Self);
|
|
end;
|
|
|
|
end.
|