295 lines
8.0 KiB
Plaintext
295 lines
8.0 KiB
Plaintext
unit DReqDevExcept;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls,
|
|
Vcl.Imaging.pngimage, Vcl.ExtCtrls, Vcl.Styles, Vcl.Themes, System.ImageList,
|
|
Vcl.ImgList, PngImageList, Define;
|
|
|
|
type
|
|
TDlgReqDevExcept = class(TForm)
|
|
Label1: TLabel;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
Label4: TLabel;
|
|
Label5: TLabel;
|
|
edDevName: TEdit;
|
|
edDevKind: TEdit;
|
|
edSerial: TEdit;
|
|
dpExpireDate: TDateTimePicker;
|
|
lbUntil: TLabel;
|
|
mmReason: TMemo;
|
|
Label7: TLabel;
|
|
cbTarget: TComboBox;
|
|
imgBack: TImage;
|
|
Shape1: TShape;
|
|
lbTitle: TLabel;
|
|
imgOk: TImage;
|
|
imgCancel: TImage;
|
|
lbOk: TLabel;
|
|
lbCancel: TLabel;
|
|
imgClose: TImage;
|
|
imgBtnList2: TPngImageList;
|
|
imgBtnList: TPngImageCollection;
|
|
dpExpireTime: TDateTimePicker;
|
|
dpBeginDate: TDateTimePicker;
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure imgBackMouseDown(Sender: TObject; Button: TMouseButton;
|
|
Shift: TShiftState; X, Y: Integer);
|
|
procedure imgCloseMouseEnter(Sender: TObject);
|
|
procedure imgCloseMouseLeave(Sender: TObject);
|
|
procedure imgCloseMouseDown(Sender: TObject; Button: TMouseButton;
|
|
Shift: TShiftState; X, Y: Integer);
|
|
procedure imgOkMouseEnter(Sender: TObject);
|
|
procedure imgOkMouseLeave(Sender: TObject);
|
|
procedure imgOkMouseDown(Sender: TObject; Button: TMouseButton;
|
|
Shift: TShiftState; X, Y: Integer);
|
|
procedure imgOkClick(Sender: TObject);
|
|
procedure imgCancelClick(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
Info_: TReqDevExceptInfo;
|
|
procedure SetImgBtn(nImgIdx: Integer);
|
|
procedure SetImgBtn2(aImg: TImage; nImgIdx: Integer);
|
|
public
|
|
{ Public declarations }
|
|
Constructor Create(aOwner: TComponent; aInfo: TReqDevExceptInfo);
|
|
procedure CreateParams(var Params: TCreateParams); override; // 작업표시줄에 표시
|
|
end;
|
|
|
|
var
|
|
DlgReqDevExcept: TDlgReqDevExcept;
|
|
|
|
implementation
|
|
|
|
uses
|
|
{$IFDEF _HE_}
|
|
ManagerService,
|
|
{$ELSE}
|
|
ProcessParam, DefineHelper, superobject, Tocsg.Json,
|
|
{$ENDIF}
|
|
System.DateUtils, GlobalDefine, Condition;
|
|
|
|
resourcestring
|
|
RS_InputReason = '요청 사유를 입력해 주십시오.';
|
|
RS_InvalidDate = '시작 이후의 날짜를 선택해 주십시오.';
|
|
RS_FileConvDateTime = '날짜 정보를 가져오는 중 오류가 발생했습니다.';
|
|
|
|
{$R *.dfm}
|
|
|
|
Constructor TDlgReqDevExcept.Create(aOwner: TComponent; aInfo: TReqDevExceptInfo);
|
|
begin
|
|
Inherited Create(aOwner);
|
|
|
|
SetImgBtn(0);
|
|
SetImgBtn2(imgOk, 0);
|
|
SetImgBtn2(imgCancel, 3);
|
|
|
|
Info_ := aInfo;
|
|
|
|
dpBeginDate.Date := Now;
|
|
dpBeginDate.Time := EncodeTime(0, 0, 0, 0);
|
|
dpExpireDate.Date := IncDay(dpBeginDate.Date); //, 180);
|
|
if CUSTOMER_TYPE = CUSTOMER_KISTEP then
|
|
dpExpireDate.MaxDate := IncYear(dpBeginDate.Date);
|
|
dpExpireTime.Time := EncodeTime(23, 59, 59, 0);
|
|
edDevName.Text := Trim(aInfo.sDevName);
|
|
edSerial.Text := Trim(aInfo.sSerial);
|
|
cbTarget.ItemIndex := 0;
|
|
case aInfo.ReqDevType of
|
|
rdtUsbDrive : edDevKind.Text := 'USB';
|
|
rdtMtp : edDevKind.Text := 'MTP';
|
|
rdtBluetooth : edDevKind.Text := 'Bluetooth';
|
|
rdtCdrom : edDevKind.Text := 'CD/DVD';
|
|
else edDevKind.Text := 'Unknown';
|
|
end;
|
|
|
|
if CUSTOMER_TYPE = CUSTOMER_KBIZ then
|
|
begin
|
|
// "요청 사용자" 제거 요청 24_0823 10:22:24 kku
|
|
if cbTarget.Items.Count > 1 then
|
|
cbTarget.Items.Delete(1);
|
|
|
|
// 기본 문구 추가
|
|
mmReason.Text := '** 해당 팝업에서 매체예외 신청 후, 별도로 SIMMS에서 서비스 신청 필요 **' + #13#10 +
|
|
'(simms.kbiz.or.kr 접속하여 ''보안-보안 USB-보안USB해제'' 선택 후 목적과 사용기한 기입)' + #13#10;
|
|
mmReason.SelStart := Length(mmReason.Text);
|
|
end;
|
|
end;
|
|
|
|
procedure TDlgReqDevExcept.CreateParams(var Params: TCreateParams);
|
|
begin
|
|
Inherited CreateParams(Params);
|
|
Params.ExStyle := WS_EX_APPWINDOW;
|
|
end;
|
|
|
|
procedure TDlgReqDevExcept.SetImgBtn(nImgIdx: Integer);
|
|
begin
|
|
imgBtnList2.GetIcon(nImgIdx, imgClose.Picture.Icon);
|
|
imgClose.Repaint
|
|
end;
|
|
|
|
procedure TDlgReqDevExcept.SetImgBtn2(aImg: TImage; nImgIdx: Integer);
|
|
begin
|
|
aImg.Picture.Assign(imgBtnList.Items[nImgIdx].PngImage)
|
|
end;
|
|
|
|
procedure TDlgReqDevExcept.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
Action := caFree;
|
|
end;
|
|
|
|
procedure TDlgReqDevExcept.imgBackMouseDown(Sender: TObject;
|
|
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
begin
|
|
ReleaseCapture;
|
|
SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
|
|
end;
|
|
|
|
procedure TDlgReqDevExcept.imgCancelClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TDlgReqDevExcept.imgCloseMouseDown(Sender: TObject;
|
|
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
begin
|
|
SetImgBtn(2);
|
|
end;
|
|
|
|
procedure TDlgReqDevExcept.imgCloseMouseEnter(Sender: TObject);
|
|
begin
|
|
SetImgBtn(1);
|
|
end;
|
|
|
|
procedure TDlgReqDevExcept.imgCloseMouseLeave(Sender: TObject);
|
|
begin
|
|
SetImgBtn(0);
|
|
end;
|
|
|
|
procedure TDlgReqDevExcept.imgOkClick(Sender: TObject);
|
|
var
|
|
sData: String;
|
|
dtBegin, dtEnd: TDateTime;
|
|
wY, wM, wD: WORD;
|
|
nTgIdx: Integer;
|
|
begin
|
|
mmReason.Text := Trim(mmReason.Text);
|
|
if mmReason.Text = '' then
|
|
begin
|
|
MessageBox(Handle, PChar(RS_InputReason), PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
exit;
|
|
end;
|
|
|
|
try
|
|
DecodeDate(dpBeginDate.Date, wY, wM, wD);
|
|
// DecodeTime(dpExpireTime.Time, wH, wN, wS, wMM);
|
|
except
|
|
MessageBox(Handle, PChar(RS_FileConvDateTime), PChar(APP_TITLE), MB_ICONWARNING or MB_OK);
|
|
exit;
|
|
end;
|
|
dtBegin := EncodeDateTime(wY, wM, wD, 0, 0, 0, 0);
|
|
|
|
try
|
|
DecodeDate(dpExpireDate.Date, wY, wM, wD);
|
|
// DecodeTime(dpExpireTime.Time, wH, wN, wS, wMM);
|
|
except
|
|
MessageBox(Handle, PChar(RS_FileConvDateTime), PChar(APP_TITLE), MB_ICONWARNING or MB_OK);
|
|
exit;
|
|
end;
|
|
dtEnd := EncodeDateTime(wY, wM, wD, 23, 59, 59, 0);
|
|
|
|
if dtEnd <= dtBegin then
|
|
begin
|
|
MessageBox(Handle, PChar(RS_InvalidDate), PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
exit;
|
|
end;
|
|
|
|
nTgIdx := cbTarget.ItemIndex;
|
|
|
|
if CUSTOMER_TYPE = CUSTOMER_KBIZ then
|
|
begin
|
|
if nTgIdx > 0 then
|
|
Inc(nTgIdx);
|
|
end;
|
|
|
|
with Info_ do
|
|
sData := Format('SERIAL:%s|TYPE:%d|DESC:%s|DUEDATE:%s|NAME:%s|TARGET:%d|STDATE:%s',
|
|
[sSerial, Integer(ReqDevType), mmReason.Text, FormatDateTime('yyyy-mm-dd', dtEnd), sDevName, nTgIdx, FormatDateTime('yyyy-mm-dd', dtBegin)]);
|
|
// [sSerial, Integer(ReqDevType), mmReason.Text, FormatDateTime('yyyy-mm-dd hh:nn:ss', dt), sDevName, cbTarget.ItemIndex]);
|
|
|
|
{$IFDEF _HE_}
|
|
if gMgSvc.IsNewApi then
|
|
gMgSvc.SendRequest(LOGCODE_EVENT_USB_REQUEST, Info_, mmReason.Text,
|
|
FormatDateTime('yyyy-mm-dd', dtBegin), FormatDateTime('yyyy-mm-dd', dtEnd), nTgIdx, sData)
|
|
else
|
|
gMgSvc.SendEventLog(URI_USER_ACTION, LOGCODE_EVENT_USB_REQUEST, sData);
|
|
{$ELSE}
|
|
var O: ISuperObject := SO;
|
|
O.O['ReqInfo'] := TTgJson.ValueToJsonObject<TReqDevExceptInfo>(Info_);
|
|
O.S['R'] := mmReason.Text;
|
|
O.I['T'] := nTgIdx;
|
|
O.S['D'] := sData;
|
|
O.D['BDT'] := dtBegin;
|
|
O.D['DT'] := dtEnd;
|
|
gParam.SendData(HPCMD_REQ_DEVICE_EXCEPT, O.AsString);
|
|
{$ENDIF}
|
|
Close;
|
|
end;
|
|
|
|
procedure TDlgReqDevExcept.imgOkMouseDown(Sender: TObject; Button: TMouseButton;
|
|
Shift: TShiftState; X, Y: Integer);
|
|
var
|
|
img: TImage;
|
|
begin
|
|
if Sender = nil then
|
|
exit;
|
|
|
|
if Sender is TImage then
|
|
img := TImage(Sender)
|
|
else if Sender = lbOk then
|
|
img := imgOk
|
|
else
|
|
img := imgCancel;
|
|
|
|
SetImgBtn2(img, img.Tag + 2);
|
|
end;
|
|
|
|
procedure TDlgReqDevExcept.imgOkMouseEnter(Sender: TObject);
|
|
var
|
|
img: TImage;
|
|
begin
|
|
if Sender = nil then
|
|
exit;
|
|
|
|
if Sender is TImage then
|
|
img := TImage(Sender)
|
|
else if Sender = lbOk then
|
|
img := imgOk
|
|
else
|
|
img := imgCancel;
|
|
|
|
SetImgBtn2(img, img.Tag + 1);
|
|
end;
|
|
|
|
procedure TDlgReqDevExcept.imgOkMouseLeave(Sender: TObject);
|
|
var
|
|
img: TImage;
|
|
begin
|
|
if Sender = nil then
|
|
exit;
|
|
|
|
if Sender is TImage then
|
|
img := TImage(Sender)
|
|
else if Sender = lbOk then
|
|
img := imgOk
|
|
else
|
|
img := imgCancel;
|
|
|
|
SetImgBtn2(img, img.Tag);
|
|
end;
|
|
|
|
end.
|