spc-kiosk-pb/Window/WinBasic/frmRembOrderPrint.cs

465 lines
19 KiB
C#
Raw Normal View History

2019-06-16 05:12:09 +00:00
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.IO;
using System.Diagnostics;
using System.Threading;
using Cosmos.Common;
using Cosmos.CommonManager;
using Cosmos.ServiceProvider;
using Cosmos.UserFrame;
using Cosmos.BaseFrame;
namespace Cosmos.Win
{
public partial class frmRembOrderPrint : Form
{
#region
private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체)
private PosStatus m_cPosStatus = new PosStatus(); // 기본정보 참조
private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출
private ISaleReceipt m_cTradeDeal = null; // 출력 서비스
private IDataServiceUs m_cWebBiz = null; // 웹업무 서비스
#endregion
#region &
public frmRembOrderPrint()
{
InitializeComponent();
base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true);
//this.UpdateStyles();
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
m_cTradeDeal = (ISaleReceipt)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.SALE_RECEIPT);
m_cWebBiz = (IDataServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.WEB_POS);
}
private void frmRembOrderPrint_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();
//17.07.25 dkshin PBILL실행 및 종료
#region ASIS PBILL.exe ( )
try
{
if (m_cPosStatus.Base.TrainingFlag == "0")
{
//#20170918 기념일 배송 출력 start
//기존
//// PBILL 환경 설정 프로그램 실행
//string fileName = "C:\\SPCPOS\\EXE\\PBILL.exe";
///*if (m_cTrnStatus.Head.CmpCd == "SLKR")
//{
// fileName = "C:\\SLPOS\\EXE\\PBILL.exe";
//}
//*/
//ProcessStartInfo startInfo_PBILL = new ProcessStartInfo(fileName);
//startInfo_PBILL.WindowStyle = ProcessWindowStyle.Normal;
//startInfo_PBILL.CreateNoWindow = false;
//Process.Start(startInfo_PBILL);
//변경
//#20180511 기념일배송시 구포스 PBILL 실행되는 증상 수정 start
//기존 주석처리
string fileName = "C:\\SPCPOS\\EXE\\PBILL.exe";
//구포스 EXE 폴더 안에 PBILL 있으면 그것 실행.
if (File.Exists(fileName) == true)
{
// PBILL 데몬 실행
ProcessStartInfo startInfo = new ProcessStartInfo(fileName);
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.CreateNoWindow = false;
Process.Start(startInfo);
}
//차세대 포스 BIN 폴더 안에 PBILL 실행.
else
{
// PBILL 데몬 실행
ProcessStartInfo startInfo = new ProcessStartInfo(Directory.GetCurrentDirectory().ToString() + @"\PBILL.exe");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.CreateNoWindow = false;
Process.Start(startInfo);
}
//#20170918 기념일 배송 출력 end
//변경
/*
// PBILL 데몬 실행
ProcessStartInfo startInfo = new ProcessStartInfo(Directory.GetCurrentDirectory().ToString() + @"\PBILL.exe");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.CreateNoWindow = false;
Process.Start(startInfo);
*/
//#20180511 기념일배송시 구포스 PBILL 실행되는 증상 수정 end
}
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.ToString());
}
#endregion
}
private void frmRembOrderPrint_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);
}
#endregion &
#region
/// <summary>
/// 폼 컨트롤 초기화
/// </summary>
private void InitControl()
{
try
{
FormManager.SetFormAllControlFont(this, m_cPosStatus.Base.FONT);
FormManager.SetTextBoxGlobalInfo(this, m_cPosStatus.Global.m_stCultureMaster.nGroupingDigits, m_cPosStatus.Global.m_stCultureMaster.strGroupingSymbol
, m_cPosStatus.Global.m_stCultureMaster.nDecimalDigits, m_cPosStatus.Global.m_stCultureMaster.strDecimalSymbol);
picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_SIZE_S);
// 라벨 이름 설정
lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0763);
lblPrtFileName.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0764);
btnOpen.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0004);
btnWebLink.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0765);
btnPrint.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0257);
//this.Location = new Point(216, 173);
this.Size = new Size(788, 402);
txtPrtData.Text = "";
txtPath.Text = "";
}
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 Control Event
/// <summary>
/// 출력 파일 열기
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnOpen_Click(object sender, EventArgs e)
{
// 출력파일 열기
ShowFileOpenDialog();
}
/// <summary>
/// 출력
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnPrint_Click(object sender, EventArgs e)
{
if (txtPrtData.Text == "")
{
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0302));
return;
}
PrintRembOrder();
}
/// <summary>
/// 주문관리 페이지 접속하기
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnWebLink_Click(object sender, EventArgs e)
{
WinBasic.ShowWebPos(PosKey.MENU_KEY.REMB_ORDER_PRINT);
//WebStart(PosKey.MENU_KEY.REMB_ORDER_PRINT);
}
/// <summary>
/// 종료
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnExit_Click(object sender, EventArgs e)
{
//17.07.25 dkshin PBILL실행 및 종료
try
{
if (m_cPosStatus.Base.TrainingFlag == "0")
{
//#20170918 기념일 배송 출력 start
//기존
/*
// PBILL 프로그램 강제 종료(구포스 WBP.exe가 실행이 되지 않았을 경우)
Process[] arPosPgm_WBP = Process.GetProcessesByName("WBP");
bool WBP_Check = false;
foreach (Process pPosPgm in arPosPgm_WBP)
{
WBP_Check = true;
}
if (!WBP_Check)
{
Process[] arPosPgm_PBILL = Process.GetProcessesByName("PBILL");
foreach (Process pPosPgm in arPosPgm_PBILL)
{
pPosPgm.Kill();
Thread.Sleep(1000);
}
}
*/
//변경
// PBILL 프로그램 강제 종료(구포스 WBP.exe가 실행이 되지 않았을 경우)
//#20180511 기념일배송시 구포스 PBILL 실행되는 증상 수정 start
//기존 주석처리
Process[] arPosPgm_WBP = Process.GetProcessesByName("WBP");
bool WBP_Check = false;
foreach (Process pPosPgm in arPosPgm_WBP)
{
WBP_Check = true;
}
if (!WBP_Check)
{
Process[] arPosPgm_PBILL = Process.GetProcessesByName("PBILL");
foreach (Process pPosPgm in arPosPgm_PBILL)
{
pPosPgm.Kill();
Thread.Sleep(1000);
}
}
else
{
string fileName = "C:\\SPCPOS\\EXE\\PBILL.exe";
if (File.Exists(fileName) != true)
{
Process[] arPosPgm_PBILL = Process.GetProcessesByName("PBILL");
foreach (Process pPosPgm in arPosPgm_PBILL)
{
pPosPgm.Kill();
Thread.Sleep(1000);
}
}
}
//#20170918 기념일 배송 출력 end
//변경
/*
Process[] arPosPgm_PBILL = Process.GetProcessesByName("PBILL");
foreach (Process pPosPgm in arPosPgm_PBILL)
{
pPosPgm.Kill();
Thread.Sleep(1000);
}
*/
//#20180511 기념일배송시 구포스 PBILL 실행되는 증상 수정 end
}
}
catch { }
this.Close();
}
#endregion Control Event
#region User Method
/// <summary>
/// 출력 파일 선택 창 열기
/// </summary>
/// <returns></returns>
private string ShowFileOpenDialog()
{
string sRet = UserCom.RST_ERR;
string sData = string.Empty;
try
{
// 파일 오픈창 생성 및 설정
OpenFileDialog ofd = new OpenFileDialog();
//ofd.Filter = "텍스트 파일(*.txt) |*.txt|모든파일 (*.*)|*.*";
ofd.Filter = "텍스트 파일(*.txt) |*.txt";
//파일 오픈창 로드
DialogResult dr = ofd.ShowDialog();
if (dr == DialogResult.OK)
{
//file명과 확장자를 가지고 온다.
string fileName = ofd.SafeFileName;
//file경로와 확장자를 가지고 온다.
string fileFullName = ofd.FileName;
//file경로만 가지고 온다.
string filePath = fileFullName.Replace(fileName, "");
txtPath.Text = fileFullName;
FileStream fsVersion = new FileStream(fileFullName, FileMode.Open, FileAccess.Read);
StreamReader srVersion = new StreamReader(fsVersion, Encoding.GetEncoding("ks_c_5601-1987"));
//StreamReader srVersion = new StreamReader(fsVersion, Encoding.UTF8);
srVersion.BaseStream.Seek(0, SeekOrigin.Begin);
txtPrtData.Text = "";
txtPrtData.Tag = "";
while (srVersion.Peek() > -1)
{
//기념일배송 주문정보 출력 수정(2017.07.21)
//sData = srVersion.ReadToEnd().Replace("\r\n","");
//txtPrtData.Text = PrintDispCuting(sData);
sData = srVersion.ReadToEnd();
txtPrtData.Text = PrintDispCuting(sData);
txtPrtData.Text = sData;
txtPrtData.Tag = sData;
}
srVersion.Close();
fsVersion.Close();
sRet = UserCom.RST_OK;
}
else
{
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0441));
return sRet;
}
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return sRet;
}
/// <summary>
/// 기념일 배송 주문정보 출력
/// </summary>
/// <returns></returns>
private bool PrintRembOrder()
{
bool bRet = false;
try
{
if (txtPrtData.Tag.ToString() == "")
{
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0413));
return bRet;
}
bRet = m_cTradeDeal.PrintReceipt(txtPrtData.Tag.ToString());
if (bRet != true)
{
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0442));
}
}
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 bRet;
}
/// <summary>
/// 저널 데이터 컷팅
/// </summary>
/// <param name="sPrtData"></param>
/// <returns></returns>
private string PrintDispCuting(string sPrtData)
{
string sRecvData = string.Empty;
int iDataLen = 0;
try
{
while (iDataLen <= sPrtData.Length)
{
sRecvData += CmUtil.MidH(sPrtData, iDataLen + 5, 42) + Convert.ToChar(13).ToString() + Convert.ToChar(10).ToString();
iDataLen += 47;
}
}
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 sRecvData;
}
///// <summary>
///// 웹브라우저 띄우기
///// </summary>
///// <param name="sFuncKey"></param>
///// <returns></returns>
//private string WebStart(string sFuncKey)
//{
// string sRet = UserCom.RST_ERR;
// try
// {
// string sUrl = string.Empty;
// sUrl = (string)m_cWebBiz.GetData(new string[] { sFuncKey });
// if (sUrl == null || sUrl == "") return sRet;
// if (sUrl.StartsWith("2") == true) // 1: WEB POS, 2:WEB LINK
// {
// System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo("IExplore.exe");
// startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;
// startInfo.Arguments = CmUtil.MidH(sUrl, 31, 100).Trim() + CmUtil.MidH(sUrl, 131, 100).Trim();
// System.Diagnostics.Process.Start(startInfo);
// sRet = UserCom.RST_OK;
// }
// if (sUrl != UserCom.ERROR && sUrl != null)
// {
// System.Diagnostics.Process.Start("iexplore.exe", sUrl);
// sRet = UserCom.RST_OK;
// return sRet;
// }
// return sRet;
// }
// 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 sRet;
//}
#endregion User Method
}
}