473 lines
21 KiB
C#
473 lines
21 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.Collections;
|
|
using System.Runtime.InteropServices;
|
|
using System.IO;
|
|
|
|
using Cosmos.BaseFrame;
|
|
using Cosmos.UserFrame;
|
|
using Cosmos.ServiceProvider;
|
|
using Cosmos.Common;
|
|
using Cosmos.CommonManager;
|
|
using Cosmos.UI;
|
|
|
|
/*-----------------------------------------------------------------------------------------------*/
|
|
// 설 명 : 화면보호기
|
|
// 작 성 자 :
|
|
// 변경 이력 :
|
|
/*-----------------------------------------------------------------------------------------------*/
|
|
namespace Cosmos.Service
|
|
{
|
|
public partial class frmScreenSaver : Form
|
|
{
|
|
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 IMasterUs m_cMstService = null; //마스터 관리
|
|
|
|
private ArrayList m_alMedia = new ArrayList(); // 이미지 리스트
|
|
private int m_nMediaPos = 0; // 이미지 표시 위치
|
|
private int m_nCurrTime = 0; // 이미지 표시 경과시간
|
|
|
|
public frmScreenSaver()
|
|
{
|
|
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_cMstService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.POS_MASTER);
|
|
}
|
|
|
|
private void frmScreenSaver_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();
|
|
}
|
|
|
|
private void frmScreenSaver_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 + "()", "");
|
|
}
|
|
|
|
#region 컨트롤 초기화
|
|
/// <summary>
|
|
/// 폼 컨트롤 초기화
|
|
/// </summary>
|
|
private void InitControl()
|
|
{
|
|
try
|
|
{
|
|
FormManager.SetFormAllControlFont(this, m_cPosStatus.Base.FONT);
|
|
|
|
// 폼 크기 설정
|
|
this.Location = new Point(0, 0);
|
|
picMedia.Location = new Point(1, 1);
|
|
//wmpMedia.Location = new Point(1, 1);
|
|
|
|
btnFunc1.BackColor = CmUtil.GetColorToString(m_cPosStatus.ScnMst.ThemeColor);
|
|
btnFunc2.BackColor = CmUtil.GetColorToString(m_cPosStatus.ScnMst.ThemeColor);
|
|
btnFunc1.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BTN_SAVER_PART);
|
|
btnFunc2.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BTN_SAVER_OWN);
|
|
|
|
lblFunc1.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0033);
|
|
lblFunc2.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0034);
|
|
|
|
btnFunc1.Size = new Size(273, 159);
|
|
btnFunc2.Size = new Size(273, 159);
|
|
lblFunc1.Size = new Size(178, 66);
|
|
lblFunc2.Size = new Size(178, 66);
|
|
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start
|
|
|
|
txtInPut.Text = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0805);
|
|
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end
|
|
|
|
if (m_cPosStatus.Sale.ScreenSizeUser == 800)
|
|
{
|
|
this.Size = new Size(800, 600);
|
|
picMedia.Size = new Size(798, 598);
|
|
//wmpMedia.Size = new Size(798, 598);
|
|
|
|
btnFunc1.Location = new Point(85, 223);
|
|
btnFunc2.Location = new Point(443, 223);
|
|
lblFunc1.Location = new Point(171, 269);
|
|
lblFunc2.Location = new Point(528, 269);
|
|
}
|
|
else
|
|
{
|
|
this.Size = new Size(1024, 768);
|
|
picMedia.Size = new Size(1022, 766);
|
|
//wmpMedia.Size = new Size(1022, 766);
|
|
|
|
btnFunc1.Location = new Point(187, 305);
|
|
btnFunc2.Location = new Point(565, 305);
|
|
lblFunc1.Location = new Point(273, 351);
|
|
lblFunc2.Location = new Point(650, 351);
|
|
}
|
|
this.Refresh();
|
|
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start
|
|
//기존
|
|
/*
|
|
txtInPut.Text = "";
|
|
txtInPut.Top = this.Height + 10;
|
|
picMedia.Visible = false;
|
|
//wmpMedia.Visible = false;
|
|
*/
|
|
|
|
//변경
|
|
txtInPut.Top = 0;
|
|
txtInPut.Left = 0;
|
|
txtInPut.Width = this.Width;
|
|
|
|
txtInPut.Visible = false;
|
|
picMedia.Visible = false;
|
|
|
|
btnFunc1.Visible = false;
|
|
btnFunc2.Visible = false;
|
|
lblFunc1.Visible = false;
|
|
lblFunc2.Visible = false;
|
|
|
|
tmrMedia.Enabled = false;
|
|
|
|
m_nMediaPos = 0;
|
|
m_nCurrTime = 0;
|
|
|
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT556) == "1")
|
|
{
|
|
//frmScreenSaver.Opacity = 100;
|
|
this.Opacity = 10D;
|
|
|
|
txtInPut.Visible = true;
|
|
txtInPut.BringToFront();
|
|
|
|
if (m_alMedia.Count == 0)
|
|
{
|
|
m_alMedia.Clear();
|
|
|
|
if (CmUtil.Exists(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CUSTOMER + "ScreenSaver1.png") == true)
|
|
{
|
|
m_alMedia.Add(new string[] { "1", //파일구분(1:이미지,2:동영상)
|
|
"30", //표시시간
|
|
"ScreenSaver1.png", //파일명
|
|
"000000", //시작시간
|
|
"235959"}); //끝 시간
|
|
}
|
|
if (CmUtil.Exists(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CUSTOMER + "ScreenSaver2.png") == true)
|
|
{
|
|
m_alMedia.Add(new string[] { "1", //파일구분(1:이미지,2:동영상)
|
|
"30", //표시시간
|
|
"ScreenSaver2.png", //파일명
|
|
"000000", //시작시간
|
|
"235959"}); //끝 시간
|
|
}
|
|
}
|
|
tmrMedia.Enabled = true;
|
|
}
|
|
else
|
|
{
|
|
this.Opacity = 0.9D;
|
|
|
|
btnFunc1.Visible = true;
|
|
btnFunc2.Visible = true;
|
|
lblFunc1.Visible = true;
|
|
lblFunc2.Visible = true;
|
|
}
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end
|
|
|
|
//m_nMediaPos = 0;
|
|
//m_nCurrTime = 0;
|
|
//if (m_alMedia.Count == 0)
|
|
//{
|
|
// m_alMedia.Clear();
|
|
|
|
// // 마스터 로딩
|
|
// string sQuery = "";
|
|
// sQuery += " SELECT * FROM POSMST..MST_CUST_DSP ";
|
|
// sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
|
|
// sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
|
|
// sQuery += " AND '" + m_cPosStatus.Base.SaleDate + "' BETWEEN START_DT AND FNSH_DT ";
|
|
// sQuery += " AND DISP_KIND = '3' "; // 표시종류(1:고객메인, 2:고객컨텐츠, 3:화면보호기)
|
|
// sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'";
|
|
// sQuery += " ORDER BY DISP_DIV DESC, SEQ ";
|
|
|
|
// DataTable dtDspData = m_cMstService.Select(new string[] { sQuery });
|
|
// if (dtDspData == null || dtDspData.Rows.Count == 0) return;
|
|
|
|
// // 이벤트 컨텐츠 있으며 이벤트만 표시
|
|
// foreach (DataRow dr in dtDspData.Rows)
|
|
// {
|
|
// string sDow = CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.DOW);
|
|
// if (sDow.Length >= 7)
|
|
// {
|
|
// DateTime dt = new DateTime(int.Parse(m_cPosStatus.Base.SaleDate.Substring(0, 4)), int.Parse(m_cPosStatus.Base.SaleDate.Substring(4, 2)), int.Parse(m_cPosStatus.Base.SaleDate.Substring(6, 2)));
|
|
|
|
// if (sDow.Substring((int)dt.DayOfWeek, 1) == "0") continue;
|
|
// }
|
|
|
|
// if (CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.DISP_KIND) == "3")
|
|
// {
|
|
// // 파일구분(1:이미지,2:동영상), 표시시간, 파일명
|
|
// m_alMedia.Add(new string[] { CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.FILE_TYPE)
|
|
// , CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.FILE_TIME)
|
|
// , CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.FILE_NM)
|
|
// , CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.START_HOUR)
|
|
// , CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.FNSH_HOUR)});
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
//DisplayMedia();
|
|
|
|
//tmrMedia.Enabled = 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);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region DisplayMedia(컨텐츠 표시)
|
|
/// <summary>
|
|
/// 컨텐츠 표시
|
|
/// </summary>
|
|
public void DisplayMedia()
|
|
{
|
|
try
|
|
{
|
|
if (m_alMedia.Count <= 0) return;
|
|
|
|
if (m_nMediaPos >= m_alMedia.Count) m_nMediaPos = 0;
|
|
|
|
// 파일구분(1:이미지,2:동영상), 표시시간, 파일명
|
|
string[] saMedia = (string[])m_alMedia[m_nMediaPos];
|
|
if (File.Exists(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CUSTOMER + saMedia[2]) == false) return;
|
|
|
|
if (CmUtil.IntParse(saMedia[3]) > CmUtil.IntParse(DateTime.Now.ToString("HHmmss")) || CmUtil.IntParse(saMedia[4]) < CmUtil.IntParse(DateTime.Now.ToString("HHmmss"))) return;
|
|
|
|
if (saMedia[0] == PosConst.MEDIA_FILE_DIV.IMAGE) // 이미지
|
|
{
|
|
//wmpMedia.Visible = false;
|
|
picMedia.Visible = true;
|
|
picMedia.Image = CmUtil.LoadImage(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CUSTOMER + saMedia[2]);
|
|
m_nCurrTime = CmUtil.IntParse(saMedia[1]);
|
|
}
|
|
else if (saMedia[0] == PosConst.MEDIA_FILE_DIV.MOVIE) // 동영상
|
|
{
|
|
picMedia.Visible = false;
|
|
//wmpMedia.Visible = true;
|
|
//wmpMedia.URL = BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CUSTOMER + saMedia[2];
|
|
m_nCurrTime = 0;
|
|
}
|
|
}
|
|
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
|
|
|
|
#region 다음 컨텐츠 표시 체크
|
|
/// <summary>
|
|
/// 다음 컨텐츠 표시 체크
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void tmrMedia_Tick(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
tmrMedia.Enabled = false;
|
|
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start
|
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT556) == "1")
|
|
{
|
|
m_nCurrTime = m_nCurrTime - 1;
|
|
|
|
if (m_nCurrTime <= 0)
|
|
{
|
|
m_nMediaPos++;
|
|
DisplayMedia();
|
|
}
|
|
|
|
picMedia.Focus();
|
|
}
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end
|
|
|
|
//// 컨텐츠 완료 체크
|
|
//if (wmpMedia.Visible == true)
|
|
//{
|
|
// // 동영상
|
|
// if (wmpMedia.playState != WMPLib.WMPPlayState.wmppsPlaying && wmpMedia.playState != WMPLib.WMPPlayState.wmppsWaiting
|
|
// && wmpMedia.playState != WMPLib.WMPPlayState.wmppsTransitioning)
|
|
// {
|
|
// m_nMediaPos++;
|
|
// DisplayMedia();
|
|
// }
|
|
//}
|
|
//else
|
|
//{
|
|
// // 이미지
|
|
// m_nCurrTime = m_nCurrTime - 1;
|
|
// if (m_nCurrTime <= 0)
|
|
// {
|
|
// m_nMediaPos++;
|
|
// DisplayMedia();
|
|
// }
|
|
//}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
}
|
|
tmrMedia.Enabled = true;
|
|
}
|
|
#endregion
|
|
|
|
#region StoDisplay(컨텐츠 표시 종료)
|
|
/// <summary>
|
|
/// 컨텐츠 표시 종료
|
|
/// </summary>
|
|
public void StopDisplay()
|
|
{
|
|
try
|
|
{
|
|
//if (wmpMedia.Visible == true)
|
|
//{
|
|
// wmpMedia.Ctlcontrols.stop();
|
|
// wmpMedia.URL = "";
|
|
//}
|
|
//tmrMedia.Enabled = false;
|
|
|
|
this.DialogResult = DialogResult.OK;
|
|
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);
|
|
}
|
|
}
|
|
|
|
private void frmScreenSaver_KeyPress(object sender, KeyPressEventArgs e)
|
|
{
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start, 20181012
|
|
//대기화면 표시된 상태에서 바코드 리딩시 첫번째자리 짤리는 증상으로 주석 처리
|
|
/*
|
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT556) == "1")
|
|
{
|
|
StopDisplay();
|
|
}
|
|
*/
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end, 20181012
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end
|
|
}
|
|
|
|
private void frmScreenSaver_Click(object sender, EventArgs e)
|
|
{
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start
|
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT556) == "1")
|
|
{
|
|
StopDisplay();
|
|
}
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end
|
|
}
|
|
|
|
//private void wmpMedia_ClickEvent(object sender, AxWMPLib._WMPOCXEvents_ClickEvent e)
|
|
//{
|
|
// //StopDisplay();
|
|
//}
|
|
#endregion
|
|
|
|
private void btnFunc1_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (((Button)sender) == btnFunc1) // 알바
|
|
{
|
|
if (m_cPosStatus.Base.OwnPartDiv == PosConst.OWN_PART_DIV.OWN_DIV)
|
|
{
|
|
m_cPosStatus.Base.OwnPartDiv = PosConst.OWN_PART_DIV.PART_DIV;
|
|
//전송데이터 저장
|
|
IDataCommonUs cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
|
|
cDataCommon.SaveServerRequestTransactionData(PosConst.RE_TRANSACTIONDATA.OWNER_MODE, new string[] { m_cPosStatus.Base.OwnPartDiv });
|
|
}
|
|
}
|
|
else if (((Button)sender) == btnFunc2) // 점주
|
|
{
|
|
if (m_cPosStatus.Base.OwnPartDiv == PosConst.OWN_PART_DIV.PART_DIV)
|
|
{
|
|
m_cPosStatus.Base.OwnPartDiv = PosConst.OWN_PART_DIV.OWN_DIV;
|
|
//전송데이터 저장
|
|
IDataCommonUs cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
|
|
cDataCommon.SaveServerRequestTransactionData(PosConst.RE_TRANSACTIONDATA.OWNER_MODE, new string[] { m_cPosStatus.Base.OwnPartDiv });
|
|
}
|
|
}
|
|
StopDisplay();
|
|
|
|
}
|
|
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 lblFunc1_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (((Label)sender) == lblFunc1) // 알바
|
|
{
|
|
btnFunc1_Click(btnFunc1, e);
|
|
}
|
|
else if (((Label)sender) == lblFunc2) // 점주
|
|
{
|
|
btnFunc1_Click(btnFunc2, e);
|
|
}
|
|
}
|
|
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 txtInPut_Click(object sender, EventArgs e)
|
|
{
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start
|
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT556) == "1")
|
|
{
|
|
StopDisplay();
|
|
}
|
|
//#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end
|
|
}
|
|
}
|
|
}
|