BSOne.SFC/eCrmHE/EXE_eCrmHomeEdition/Messages/DReqDevExcept.pas

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.