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 Cosmos.BaseFrame;
using Cosmos.UserFrame;
using Cosmos.ServiceProvider;
using Cosmos.Common;
using Cosmos.CommonManager;
using Cosmos.UI;
using Cosmos.Win;
namespace TableConfiguration
{
public partial class frmBackground : Form
{
private static Cosmos.ServiceProvider.Activator m_ServiceProvider = new Cosmos.ServiceProvider.Activator();
private SManager sManager = new SManager(); //이 객체를 통해 업무 Service 호출
private StateServer StateObject = (StateServer)StateServer.GetInstance(); //StateObject : StateServer Object(객체)
private PosStatus m_cPosStatus = new PosStatus(); //기본정보 참조
private ITableUs m_cTableSvr = null;
private IDataCommonUs m_cDataCommon = null; // POS 공통함수 인터페이스
///
/// 사용자ID
///
private string userId = string.Empty;
///
/// 사용자명
///
private string userNm = string.Empty;
///
/// 원 사용자ID
///
private string orgUserId = string.Empty;
///
/// 원 사용자명
///
private string orgUserNm = string.Empty;
public frmBackground(string[] args)
{
InitializeComponent();
base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true);
//this.UpdateStyles();
m_cPosStatus = (PosStatus)StateObject.POS; //POS 기본정보
// 서비스
m_cTableSvr = (ITableUs)sManager.InitServiceInstance(ServiceLists.BSV_TABLE.DLL, ServiceLists.BSV_TABLE.TABLE_SERVICE);
m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
// 명령인수
if (args.Length > 0)
{
this.userId = args[0].Trim();
}
}
private void Form_Load(object sender, EventArgs e)
{
try
{
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");
PosOLEDevice.SetEventHandle(null);
this.SetBounds(0, 0, 1024, 768);
}
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 Form_Shown(object sender, EventArgs e)
{
try
{
string ret = UserCom.RST_ERR;
// 환경설정 파일 읽기
IServiceUs cPgmStart = (IServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_OPEN_CLOSE.DLL, ServiceLists.BSV_OPEN_CLOSE.PROGRAM_START);
ret = cPgmStart.Execute(new string[] { });
if (ret != UserCom.RST_OK)
{
}
// POS 마스터 읽기
IServiceUs cLoadMstSrv = (IServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_OPEN_CLOSE.DLL, ServiceLists.BSV_OPEN_CLOSE.LOAD_MASTER_INFO);
ret = cLoadMstSrv.Execute(new string[] { });
if (ret != UserCom.RST_OK)
{
}
// 테이블 서비스 데이터베이스 연결
m_cTableSvr.DBConnection();
// POS 설정정보 확인
if (CheckConfigInfo() == false)
{
this.DialogResult = System.Windows.Forms.DialogResult.Abort;
this.Close();
return;
}
//
if (m_cPosStatus.ScnMst.ThemeColor.Trim().Length != 6)
{
m_cPosStatus.ScnMst.ThemeColor = "022187238";
}
//
if (string.IsNullOrWhiteSpace(m_cPosStatus.Base.FONT))
m_cPosStatus.Base.FONT = SystemFonts.DefaultFont.Name;
// 점주로그온
bool checkUser = true;
if (string.IsNullOrWhiteSpace(this.userId) == false)
{
// 관리자 조회
IMasterUs cService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.CASHIER_MASTER);
DataTable dt = cService.Select(new string[] { m_cPosStatus.Base.StoreNo, CmUtil.RightH(this.userId, 3) });
if (dt == null || dt.Rows.Count == 0)
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0309);
}
else
{
string div = CmUtil.GetDataRowStr(dt.Rows[0], PosMst.MST_USER.DATA.CASHIER_DIV);
if (div == PosConst.CASHIER_DIV.OWNER || div == PosConst.CASHIER_DIV.MANAGER)
{
this.userNm = CmUtil.GetDataRowStr(dt.Rows[0], PosMst.MST_USER.DATA.CASHIER_NM);
checkUser = false;
}
}
}
if (checkUser)
{
ret = WinBasic.ShowForm(new string[] { FormManager.FORM_LOG_ON, PosKey.MENU_KEY.REGISTER_ADMIN });
if (ret == UserCom.RST_ERR)
{
this.Close();
return;
}
try
{
string[] user = ret.Split('|');
this.userId = user[0].Trim();
this.userNm = user[1].Trim();
}
catch
{
this.Close();
return;
}
}
orgUserId = m_cPosStatus.Base.CashierNo;
orgUserNm = m_cPosStatus.Base.CashierName;
m_cPosStatus.Base.CashierNo = userId;
m_cPosStatus.Base.CashierName = userNm;
// 테이블편집 실행
frmTableEditor frm = new frmTableEditor();
frm.ShowDialog();
// 사용자 원복
m_cPosStatus.Base.CashierNo = this.orgUserId;
m_cPosStatus.Base.CashierName = this.orgUserNm;
Application.Exit();
}
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 Form_Closing(object sender, FormClosingEventArgs e)
{
try
{
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");
}
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 bool CheckConfigInfo()
{
try
{
if (string.IsNullOrWhiteSpace(m_cPosStatus.Base.CmpCd))
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0492);
return false;
}
if (string.IsNullOrWhiteSpace(m_cPosStatus.Base.StoreNo))
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0493);
return false;
}
if (string.IsNullOrWhiteSpace(m_cPosStatus.Base.PosType))
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0378);
return false;
}
if (m_cPosStatus.Base.PosType != PosConst.POS_TYPE.DEFERRED_PAYMENT)
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0494);
return false;
}
if (m_cPosStatus.Base.PosCommunicationType != PosConst.MAIN_POS_DIV.MAIN_POS)
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0668);
return 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;
}
}
}
}