VistA-cprs/CPRS-Chart/Orders/fOrdersRefill.pas

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.