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

151 lines
4.3 KiB
Plaintext

unit DPrintApproveReq;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, ManagerPrint;
type
TDlgPrintApproveReq = class(TForm)
Label1: TLabel;
btnApprove: TButton;
btnCancel: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btnApproveClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
private
{ Private declarations }
pEnt_: PPrtEnt;
public
{ Public declarations }
Constructor Create(aOwner: TComponent; pEnt: PPrtEnt);
procedure CreateParams(var Params: TCreateParams); override; // 작업표시줄에 표시
procedure process_WM_SYSCOMMAND(var msg: TWMSysCommand); Message WM_SYSCOMMAND;
end;
var
DlgPrintApproveReq: TDlgPrintApproveReq;
implementation
uses
ManagerService, Tocsg.Convert, Tocsg.Trace, Define, Tocsg.Shell, GlobalDefine, Tocsg.Path,
DefineHelper,
superobject, Tocsg.Process, ManagerModel, Condition;
resourcestring
RS_NotFoundInfo = '결재자 정보를 가져올 수 없습니다.';
RS_MsgApproval1 = '출력을 위해 승인이 필요합니다.';
RS_MsgApprova2 = '아래 [결재요청] 버튼으로 승인을 받아주세요.';
RS_MsgApprova3 = '아래 [결재요청] 버튼을 눌러 진행해주세요.';
RS_MsgApprovalVio = '개인(신용)정보가 검출된 문서는 승인 후 출력이 가능합니다.';
RS_MsgPostApproval = '중요 정보가 검출 되어 결재 요청 후 출력이 가능합니다.';
{$R *.dfm}
Constructor TDlgPrintApproveReq.Create(aOwner: TComponent; pEnt: PPrtEnt);
begin
Inherited Create(aOwner);
pEnt_ := pEnt;
ASSERT(pEnt_ <> nil);
if pEnt_.bPostApv then
begin
Label1.Caption := RS_MsgPostApproval + #13#10#13#10 + RS_MsgApprova3;
end else
if pEnt_.sVioText = '' then
begin
Label1.Caption := RS_MsgApproval1 + #13#10#13#10 + RS_MsgApprova2;
end else begin
case CUSTOMER_TYPE of
CUSTOMER_SHSC,
CUSTOMER_SHCI : Label1.Caption := RS_MsgApprovalVio + #13#10#13#10 + RS_MsgApprova2;
end;
end;
end;
procedure TDlgPrintApproveReq.CreateParams(var Params: TCreateParams);
begin
Inherited CreateParams(Params);
Params.ExStyle := WS_EX_APPWINDOW;
end;
procedure TDlgPrintApproveReq.btnApproveClick(Sender: TObject);
var
sUrl: String;
LogInfo: TLogInfo;
begin
Hide;
if pEnt_.bPostApv then
sUrl := gMgSvc.SendApproval(13, pEnt_)
else
sUrl := gMgSvc.SendApproval(0, pEnt_);
if sUrl = '' then
begin
gMgSvc.MgPrt.DelPrintInfo(pEnt_.sId);
TTgTrace.T('Fail .. SendApprovalPrint()');
MessageBox(Handle, PChar(RS_NotFoundInfo), PChar(APP_TITLE), MB_ICONWARNING or MB_OK);
end else begin
// ExecutePath(gMgSvc.DestIPort + sUrl);
ZeroMemory(@LogInfo, SizeOf(LogInfo));
LogInfo.sCode := REQUEST_APPROVAL;
LogInfo.sDevName := pEnt_.WInfo.sPtrName;
LogInfo.sPath := pEnt_.WInfo.sDocName;
LogInfo.sActionId := pEnt_.WInfo.sPrtDocId;
if pEnt_.bPostApv then
LogInfo.sSummary := 'Post-Approval Request : Print'
else
LogInfo.sSummary := 'Approval Request : Print';
gMgSvc.SendEventLogEx(@LogInfo, false);
var sHlpExe: String := GetRunExePathDir + DIR_CONF + EXE_HLP;
if FileExists(sHlpExe) then
begin
var O: ISuperObject := SO;
O.I['RcvWnd'] := Handle;
O.I['Cmd'] := HPCMD_EXECUTE_FILE;
O.S['Path'] := gMgSvc.DestIPort + sUrl;
SaveJsonObjToFile(O, GetRunExePathDir + DIR_CONF + DAT_PARAM);
{$IFDEF DEBUG}
ExecutePath(sHlpExe);
{$ELSE}
ExecuteAppAsUser('explorer.exe', sHlpExe, '', SW_SHOWNORMAL);
{$ENDIF}
end else
ExecutePath(gMgSvc.DestIPort + sUrl);
// if pEnt_.bPostApv then // 승인 요청 응답오면 처리하는 걸로 변경 25_1216 16:07:32 kku
// gMgSvc.DoPrint(pEnt_);
end;
Close;
end;
procedure TDlgPrintApproveReq.btnCancelClick(Sender: TObject);
begin
gMgSvc.MgPrt.DelPrintInfo(pEnt_.sId, true);
Close;
end;
procedure TDlgPrintApproveReq.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := TCloseAction.caFree;
end;
procedure TDlgPrintApproveReq.process_WM_SYSCOMMAND(var msg: TWMSysCommand);
begin
if msg.Msg = SC_CLOSE then
begin
btnCancel.Click;
exit;
end;
Inherited;
end;
end.