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

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.