285 lines
8.7 KiB
Plaintext
285 lines
8.7 KiB
Plaintext
unit DInputEmpNo;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Imaging.pngimage,
|
|
Vcl.ExtCtrls, System.ImageList, Vcl.ImgList, PngImageList, IdHTTP, Vcl.Buttons;
|
|
|
|
type
|
|
TDlgInputEmpNo = class(TForm)
|
|
imgTop: TImage;
|
|
Label1: TLabel;
|
|
Label9: TLabel;
|
|
Label10: TLabel;
|
|
edEmpNo: TEdit;
|
|
edVpnId: TEdit;
|
|
btnOk: TButton;
|
|
btnCancel: TButton;
|
|
btnInfo: TSpeedButton;
|
|
procedure btnOkClick(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure btnCancelClick(Sender: TObject);
|
|
procedure btnInfoClick(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
HTTP_: TIdHTTP;
|
|
public
|
|
{ Public declarations }
|
|
Constructor Create(aOwner: TComponent; aHTTP: TIdHTTP);
|
|
|
|
procedure process_WM_COPYDATA(var msg: TMessage); Message WM_COPYDATA;
|
|
end;
|
|
|
|
var
|
|
DlgInputEmpNo: TDlgInputEmpNo;
|
|
|
|
implementation
|
|
|
|
uses
|
|
Tocsg.Safe, ManagerService, superobject, CrmUtil, Condition, Tocsg.Path,
|
|
GlobalDefine, DefineHelper, Tocsg.Shell, Tocsg.Trace, Tocsg.Exception,
|
|
Tocsg.Process, Define;
|
|
|
|
resourcestring
|
|
RS_NoConnectServer = '서버에 연결할 수 없습니다.';
|
|
RS_WaitRetry = '잠시 후 다시 시도해 주십시오.';
|
|
RS_SameCurEmpNo = '현재 사번과 같습니다. ';
|
|
RS_SameCurEmpNo2 = '현재 ID와 같습니다. ';
|
|
RS_WatchTry = '확인 후 다시 시도해 주십시오.';
|
|
RS_InputEmpNo = '사번을 입력해주십시오.';
|
|
RS_InputEmpNo2 = 'ID를 입력해주십시오.';
|
|
RS_InputEmpNoOver = '사번을 24자 이내로 입력해주십시오.';
|
|
RS_InputEmpNoOver2 = 'ID를 24자 이내로 입력해주십시오.';
|
|
RS_InputVpnAccount = 'VPN 계정을 입력해주십시오.';
|
|
RS_InvaludEmpNo = '유효하지 않은 사번입니다.';
|
|
RS_InvaludEmpNo2 = '유효하지 않은 ID입니다.';
|
|
RS_Q_Change = '변경 하시겠습니까?';
|
|
RS_Q_EmpNo = '사용자 정보를 변경하시겠습니까?';
|
|
RS_Q_EmpNo2 = 'ID를 변경하시겠습니까?';
|
|
RS_FMT_EmpNoInfo = '사번 : %s'#13#10'이름 : %s'#13#10'부서 : %s'#13#10'상태 : %s';
|
|
RS_FMT_EmpNoInfo2 = 'ID : %s'#13#10'이름 : %s'#13#10'부서 : %s'#13#10'상태 : %s';
|
|
RS_GetEmpNoInfo = '사번 정보를 확인했습니다.';
|
|
RS_GetEmpNoInfo2 = 'ID 정보를 확인했습니다.';
|
|
RS_Deleted = '삭제됨';
|
|
RS_Normal = '정상';
|
|
|
|
{$R *.dfm}
|
|
|
|
Constructor TDlgInputEmpNo.Create(aOwner: TComponent; aHTTP: TIdHTTP);
|
|
begin
|
|
Inherited Create(aOwner);
|
|
HTTP_ := aHTTP;
|
|
|
|
Caption := APP_TITLE;
|
|
if IsCJ_Affiliates then
|
|
begin
|
|
Label9.Caption := 'ID';
|
|
end;
|
|
end;
|
|
|
|
procedure TDlgInputEmpNo.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
Action := caFree;
|
|
end;
|
|
|
|
procedure TDlgInputEmpNo.btnCancelClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TDlgInputEmpNo.btnInfoClick(Sender: TObject);
|
|
var
|
|
sInfo: String;
|
|
O: ISuperObject;
|
|
begin
|
|
edEmpNo.Text := Trim(edEmpNo.Text);
|
|
if edEmpNo.Text = '' then
|
|
begin
|
|
if IsCJ_Affiliates then
|
|
MessageBox(Handle, PChar(RS_InputEmpNo2), PChar(Caption), MB_ICONWARNING or MB_OK)
|
|
else
|
|
MessageBox(Handle, PChar(RS_InputEmpNo ), PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
edEmpNo.SetFocus;
|
|
exit;
|
|
end;
|
|
|
|
sInfo := GetEmpNoInfo(gMgSvc.DestServerUrl, HTTP_, edEmpNo.Text);
|
|
try
|
|
O := SO(sInfo);
|
|
except
|
|
// ..
|
|
end;
|
|
|
|
if (O <> nil) and (O.S['result'] <> 'false') then
|
|
begin
|
|
if O.S['deleteyn'] = 'true' then
|
|
sInfo := RS_Deleted
|
|
else
|
|
sInfo := RS_Normal;
|
|
|
|
if IsCJ_Affiliates then
|
|
begin
|
|
sInfo := Format(RS_FMT_EmpNoInfo2,
|
|
[O.S['empno'], O.S['name'], O.S['dept'], sInfo]);
|
|
MessageBox(Handle, PChar(RS_GetEmpNoInfo2 + #13#10#13#10 + sInfo), PChar(Caption), MB_ICONINFORMATION or MB_OK)
|
|
end else begin
|
|
sInfo := Format(RS_FMT_EmpNoInfo,
|
|
[O.S['empno'], O.S['name'], O.S['dept'], sInfo]);
|
|
MessageBox(Handle, PChar(RS_GetEmpNoInfo + #13#10#13#10 + sInfo), PChar(Caption), MB_ICONINFORMATION or MB_OK);
|
|
end;
|
|
end else
|
|
if IsCJ_Affiliates then
|
|
MessageBox(Handle, PChar(RS_InvaludEmpNo2), PChar(Caption), MB_ICONWARNING or MB_OK)
|
|
else
|
|
MessageBox(Handle, PChar(RS_InvaludEmpNo), PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
end;
|
|
|
|
procedure TDlgInputEmpNo.btnOkClick(Sender: TObject);
|
|
begin
|
|
edEmpNo.Text := Trim(edEmpNo.Text);
|
|
// edVpnId.Text := Trim(edVpnId.Text);
|
|
|
|
if not gMgSvc.Connected then
|
|
begin
|
|
MessageBox(Handle, PChar(RS_NoConnectServer+#13+#10+RS_WaitRetry),
|
|
PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
exit;
|
|
end;
|
|
|
|
if CompareText(gMgSvc.AgentModel.EmpNo, edEmpNo.Text) = 0 then
|
|
begin
|
|
if IsCJ_Affiliates then
|
|
MessageBox(Handle, PChar(RS_SameCurEmpNo2+#13+#10+RS_WatchTry),
|
|
PChar(Caption), MB_ICONWARNING or MB_OK)
|
|
else
|
|
MessageBox(Handle, PChar(RS_SameCurEmpNo+#13+#10+RS_WatchTry),
|
|
PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
edEmpNo.SetFocus;
|
|
exit;
|
|
end;
|
|
|
|
if edEmpNo.Text = '' then
|
|
begin
|
|
if IsCJ_Affiliates then
|
|
MessageBox(Handle, PChar(RS_InputEmpNo2), PChar(Caption), MB_ICONWARNING or MB_OK)
|
|
else
|
|
MessageBox(Handle, PChar(RS_InputEmpNo), PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
edEmpNo.SetFocus;
|
|
exit;
|
|
end;
|
|
|
|
if Length(edEmpNo.Text) > 24 then
|
|
begin
|
|
if IsCJ_Affiliates then
|
|
MessageBox(Handle, PChar(RS_InputEmpNoOver2), PChar(Caption), MB_ICONWARNING or MB_OK)
|
|
else
|
|
MessageBox(Handle, PChar(RS_InputEmpNoOver), PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
edEmpNo.SetFocus;
|
|
exit;
|
|
end;
|
|
|
|
// if edVpnId.Text = '' then
|
|
// begin
|
|
// MessageBox(Handle, PChar(RS_InputVpnAccount), PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
// edVpnId.SetFocus;
|
|
// exit;
|
|
// end;
|
|
|
|
if not VerifyEmpNo(gMgSvc.DestServerUrl, HTTP_, edEmpNo.Text) then
|
|
begin
|
|
case CUSTOMER_TYPE of
|
|
CUSTOMER_KFTC,
|
|
CUSTOMER_SERVE1 :
|
|
begin
|
|
MessageBox(Handle, PChar(RS_InvaludEmpNo), PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
exit;
|
|
end;
|
|
else begin
|
|
if IsCJ_Affiliates then
|
|
begin
|
|
MessageBox(Handle, PChar(RS_InvaludEmpNo2), PChar(Caption), MB_ICONWARNING or MB_OK);
|
|
exit;
|
|
end else
|
|
if MessageBox(Handle, PChar(RS_InvaludEmpNo+#13+#10+RS_Q_Change),
|
|
PChar(Caption), MB_ICONWARNING or MB_YESNO) = IDNO then exit;
|
|
end;
|
|
end;
|
|
end else begin
|
|
if CUSTOMER_TYPE = CUSTOMER_KFTC then
|
|
begin
|
|
var sExe: String := GetRunExePathDir + DIR_CONF + EXE_HLP;
|
|
if FileExists(sExe) then
|
|
begin
|
|
var O: ISuperObject := SO;
|
|
O.I['RcvWnd'] := Handle;
|
|
O.I['Cmd'] := HPCMD_PERSONALINFO_AGREE;
|
|
SaveJsonObjToFile(O, GetRunExePathDir + DIR_CONF + DAT_PARAM);
|
|
{$IFDEF DEBUG}
|
|
ExecutePath(sExe);
|
|
{$ELSE}
|
|
ExecuteAppAsUser('explorer.exe', sExe, '', SW_SHOWNORMAL);
|
|
{$ENDIF}
|
|
end;
|
|
exit;
|
|
end;
|
|
|
|
if IsCJ_Affiliates then
|
|
begin
|
|
if MessageBox(Handle, PChar(RS_Q_EmpNo2),
|
|
PChar(Caption), MB_ICONQUESTION or MB_YESNO) = IDNO then exit;
|
|
end else begin
|
|
if MessageBox(Handle, PChar(RS_Q_EmpNo),
|
|
PChar(Caption), MB_ICONQUESTION or MB_YESNO) = IDNO then exit;
|
|
end;
|
|
end;
|
|
|
|
TTgTrace.T('[02] 사번 변경, %s > %s', [gMgSvc.AgentModel.EmpNo, edEmpNo.Text], 1);
|
|
gMgSvc.SendEventLogEx(LOG_CHANGE_EMPNO, Format('[User] EmpId Changed. (%s > %s)', [gMgSvc.AgentModel.EmpNo, edEmpNo.Text]), false);
|
|
gMgSvc.AgentModel.EmpNo := edEmpNo.Text;
|
|
// gMgSvc.AgentModel.VpnInfo := edEmpNo.Text;
|
|
// gMgSvc.AgentModel.VpnInfo := edVpnId.Text;
|
|
gMgSvc.AgentModel.Save;
|
|
gMgSvc.UpdateAgentInfo;
|
|
if (gMgSvc.HeModeKind = hmkSecurity) and IsCJ_Affiliates then
|
|
gMgSvc.DoEmpNoCheck := IsCheckEmpNo and gMgSvc.PrefModel.IsEmpVerify;
|
|
|
|
Close;
|
|
end;
|
|
|
|
procedure TDlgInputEmpNo.process_WM_COPYDATA(var msg: TMessage);
|
|
var
|
|
dwData: DWORD;
|
|
pCpData: PCopyDataStruct;
|
|
O: ISuperObject;
|
|
begin
|
|
msg.Result := 0;
|
|
|
|
dwData := 0;
|
|
pCpData := PCopyDataStruct(msg.LParam);
|
|
try
|
|
dwData := pCpData.dwData;
|
|
case dwData of
|
|
HPCMD_PERSONALINFO_AGREE :
|
|
begin
|
|
TTgTrace.T('[03] 사번 변경, %s > %s', [gMgSvc.AgentModel.EmpNo, edEmpNo.Text], 1);
|
|
gMgSvc.SendEventLogEx(LOG_CHANGE_EMPNO, Format('[User] EmpId Changed. (%s > %s)', [gMgSvc.AgentModel.EmpNo, edEmpNo.Text]), false);
|
|
gMgSvc.AgentModel.EmpNo := edEmpNo.Text;
|
|
gMgSvc.AgentModel.Save;
|
|
gMgSvc.UpdateAgentInfo;
|
|
|
|
if (gMgSvc.HeModeKind = hmkSecurity) and IsCJ_Affiliates then
|
|
gMgSvc.DoEmpNoCheck := IsCheckEmpNo and gMgSvc.PrefModel.IsEmpVerify;
|
|
|
|
Close;
|
|
end;
|
|
end;
|
|
except
|
|
on E: Exception do
|
|
ETgException.TraceException(Self, E, Format('Fail .. process_WM_COPYDATA(), dwData=%d', [dwData]));
|
|
end;
|
|
end;
|
|
|
|
end.
|