spc-kiosk-pb/Window/WinBasic/frmWebBiz2.cs
2019-06-16 14:12:09 +09:00

291 lines
12 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Net;
using System.IO;
using Cosmos.CommonManager;
using Cosmos.Common;
using Cosmos.ServiceProvider;
using Cosmos.UserFrame;
using Cosmos.BaseFrame;
namespace Cosmos.Win
{
public partial class frmWebBiz2 : Form
{
#region
[DllImport("Ole32.dll", SetLastError = true)]
private static extern void CoFreeUnusedLibraries();
private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출
private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체)
private PosStatus m_cPosStatus = new PosStatus(); // 기본정보 참조
private TranStatus m_cTrnStatus = new TranStatus(); // 거래정보 참조
//private IDataServiceUs m_cWebBiz = null; // WEBPOS 서비스
private string m_sPosMenuKey = "";
/// <summary>
/// POS 기능 키
/// </summary>
public string PosMenuKey { get { return this.m_sPosMenuKey; } set { this.m_sPosMenuKey = value; } }
private string m_sPosMenuName = "";
/// <summary>
/// POS 기능 명
/// </summary>
public string PosMenuName { get { return this.m_sPosMenuName; } set { this.m_sPosMenuName = value; } }
private string m_sPosWebMenuURL = "";
/// <summary>
/// POS WEB URL
/// </summary>
public string PosWebMenuURL { get { return this.m_sPosWebMenuURL; } set { this.m_sPosWebMenuURL = value; } }
private string m_sPosWebMenuId = "";
/// <summary>
/// POS WEB 화면코드
/// </summary>
public string PosWebMenuId { get { return this.m_sPosWebMenuId; } set { this.m_sPosWebMenuId = value; } }
private string m_sPosWebParam = "";
/// <summary>
/// POS WEB 화면 파라메터
/// </summary>
public string PosWebParam { get { return this.m_sPosWebParam; } set { this.m_sPosWebParam = value; } }
#endregion
#region &
public frmWebBiz2()
{
InitializeComponent();
base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true);
//this.UpdateStyles();
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보
//m_cWebBiz = (IDataServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.WEB_BIZ);
}
private void frmWebBiz_Load(object sender, EventArgs e)
{
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");
InitControl(); // 콘트롤 초기화 처리
this.Tag = "START";
}
private void frmWebPos2_Activated(object sender, EventArgs e)
{
if (this.Tag.ToString() == "START")
{
this.Tag = "";
LoadWebPos();
}
}
private void frmWebBiz_FormClosing(object sender, FormClosingEventArgs e)
{
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", lblTitle.Text);
}
private void frmWebBiz2_FormClosed(object sender, FormClosedEventArgs e)
{
try
{
if (this.axNexacroAXCtrl != null)
{
// v8.dll Unload
((IDisposable)this.axNexacroAXCtrl).Dispose();
}
// CoFreeUnusedLibraries();
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
}
private void InitControl()
{
this.Location = new Point(0, 0);
if (m_cPosStatus.Sale.ScreenSizeUser == 1024)
{
// 이미지 로딩 처리
picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_FULL_SIZE);
//this.Size = new Size(1024, 696);
//this.Location = new Point(0, 50);
FormManager.SetControlSize(this, 0, 0, 1024, 768);
FormManager.SetControlSize(this.picBack, 0, 0, 1024, 35);
FormManager.SetControlSize(this.lblTitle, 10, 2, 964, 33);
FormManager.SetControlSize(this.btnExit, 976, 2, 46, 32);
FormManager.SetControlSize(this.axNexacroAXCtrl, 0, 35, 1024, 768 - 35);
}
else
{
// 이미지 로딩 처리
picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_SIZE_800X600);
FormManager.SetControlSize(this, 0, 0, 800, 600);
FormManager.SetControlSize(this.picBack, 0, 0, 800, 35);
FormManager.SetControlSize(this.lblTitle, 10, 2, 740, 33);
FormManager.SetControlSize(this.btnExit, 752, 2, 46, 32);
FormManager.SetControlSize(this.axNexacroAXCtrl, 0, 35, 800, 600 - 35);
}
//picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_FULL_SIZE);
//axNexacroAXCtrl.Location = new Point(0, 35);
//axNexacroAXCtrl.Size = new Size(1024, 768 - 35);
FormManager.MovePopUpForm(this, false, m_cPosStatus.Sale.ScreenSizeUser);
FormManager.SetFormAllControlFont(this, m_cPosStatus.Base.FONT);
axNexacroAXCtrl.Visible = false;
FormManager.SetFormAllControlFont(this, m_cPosStatus.Base.FONT);
btnExit.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BTN_CLOSE);
if (btnExit.Image != null) btnExit.Text = "";
}
#endregion
#region Control Event
private void btnExit_Click(object sender, EventArgs e)
{
try
{
m_sPosMenuKey = "";
this.Close();
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
}
#endregion Control Event
#region User Method
/// <summary>
/// WEB POS 화면 로딩
/// </summary>
public bool LoadWebPos()
{
try
{
UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");
lblTitle.Text = m_sPosMenuName;
//lblTitle.Text = m_sPosMenuName + "[" + PosWebMenuURL + "," + m_cPosStatus.Base.CashierNo + "," + m_sPosWebMenuId + m_sPosWebParam + "]";
// 최초 화면 로딩
string sBrowerKey = m_cPosStatus.Mst.BrowserKey;
//if (m_cPosStatus.Base.CmpCd == ItemConst.COMPANY_CODE.BRKR) sBrowerKey += m_cPosStatus.Base.BrandCd;
if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR) sBrowerKey += m_cPosStatus.Base.BrandCd;
axNexacroAXCtrl.key = sBrowerKey;
axNexacroAXCtrl.bjson = PosWebMenuURL; // "http://10.0.40.98:7003/spcwps/start.json";
axNexacroAXCtrl.run();
if (m_cPosStatus.Base.OlePosPrinterModel != "99")
this.TopMost = true;
else
this.TopMost = false;
return true;
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
return false;
}
}
private void axNexacroAXCtrl_loadingglobalvariables(object sender, AxNexacroAXLib._INexacroAXCtrlEvents_loadingglobalvariablesEvent e)
{
try
{
UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");
if (m_sPosMenuKey == PosKey.MENU_KEY.WEB_WORK)
{
// ID/화면코드를 글로벌 변수에서 가져온다.
if (!axNexacroAXCtrl.setvariablevalue("gv_param", "ceo=Y!@#$decodeYn=Y!@#$id=" + m_cPosStatus.Base.CashierNo + "!@#$pw=" + m_cPosStatus.Base.CashierWebPosPwd))
{
string sgv = (axNexacroAXCtrl.getvariablevalue("gv_param") == null ? "null" : axNexacroAXCtrl.getvariablevalue("gv_param").ToString());
UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", sgv);
}
}
else
{
string sUserID = UserLog.UserAES.StaticKeyEncrypt(m_cPosStatus.Base.CashierNo);
// ID/화면코드
if (!axNexacroAXCtrl.setvariablevalue("gv_param", "null!@#$null!@#$null!@#$USER_ID=" + sUserID + "!@#$SCRN=" + m_sPosWebMenuId + m_sPosWebParam))
{
string sgv = (axNexacroAXCtrl.getvariablevalue("gv_param") == null ? "null" : axNexacroAXCtrl.getvariablevalue("gv_param").ToString());
UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", sgv);
}
}
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
}
private void axNexacroAXCtrl_beforeexit(object sender, AxNexacroAXLib._INexacroAXCtrlEvents_beforeexitEvent e)
{
try
{
e.pbcloseflag = true;
e.pbhandledflag = true;
}
catch { }
}
private void axNexacroAXCtrl_exit(object sender, EventArgs e)
{
try
{
this.axNexacroAXCtrl.quit();
}
catch { }
}
#endregion
private void axNexacroAXCtrl_usernotify(object sender, AxNexacroAXLib._INexacroAXCtrlEvents_usernotifyEvent e)
{
try
{
axNexacroAXCtrl.Visible = true;
}
catch { }
}
}
}