697 lines
36 KiB
C#
697 lines
36 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.IO.Ports;
|
|
using System.ComponentModel;
|
|
|
|
using Cosmos.Common;
|
|
using Cosmos.CommonManager;
|
|
using Cosmos.BaseFrame;
|
|
using Cosmos.UserFrame;
|
|
|
|
|
|
namespace Cosmos.Measuring
|
|
{
|
|
public class MeasuringMain : IMeasuring
|
|
{
|
|
#region 클래스 변수 선언
|
|
/// <summary>
|
|
/// StateServer Object (StateServer 객체)
|
|
/// </summary>
|
|
public StateServer StateObject = (StateServer)StateServer.GetInstance();
|
|
/// <summary>
|
|
/// POS Status Value (POS 상태값)
|
|
/// </summary>
|
|
private PosStatus m_cPosStatus = null;
|
|
/// <summary>
|
|
/// POS 주변장치
|
|
/// </summary>
|
|
private DeviceStatus m_cDevStatus = null;
|
|
|
|
/// <summary>
|
|
/// 중량 출력 모드
|
|
/// </summary>
|
|
private PosConst.MEASURING_AGENT_PRINT_MODE PrintMode;
|
|
|
|
/// <summary>
|
|
/// 출력용 핸드폰번호
|
|
/// </summary>
|
|
private string m_sCPNum = "";
|
|
public string CPNum { get { return m_sCPNum; } set { m_sCPNum = value; } }
|
|
/// <summary>
|
|
/// 출력용 플레이버
|
|
/// </summary>
|
|
private string m_sFlavour1 = "";
|
|
public string Flavour1 { get { return m_sFlavour1; } set { m_sFlavour1 = value; } }
|
|
private string m_sFlavour2 = "";
|
|
public string Flavour2 { get { return m_sFlavour2; } set { m_sFlavour2 = value; } }
|
|
/// <summary>
|
|
/// 출력용 주문시간
|
|
/// </summary>
|
|
private string m_sOrdDT = "";
|
|
public string OrdDT { get { return m_sOrdDT; } set { m_sOrdDT = value; } }
|
|
|
|
private Scale m_cScaleDevice = null;
|
|
private LabelPrinter m_cLabelPrtDevice = null;
|
|
private ScalePoleDisplay m_cScalePoleDisplay = null;
|
|
|
|
private string m_sOldOrdDate = "";
|
|
private string m_sOldOrdTime = "";
|
|
|
|
/// <summary>
|
|
/// MSSQL DB 관련 객체
|
|
/// </summary>
|
|
private static SqlDB sqlDb = null;
|
|
|
|
/// <summary>
|
|
/// Measuring Thread 작동 여부
|
|
/// </summary>
|
|
private bool m_MeasuringRunning = true;
|
|
|
|
/// <summary>
|
|
/// Measuring Thread
|
|
/// </summary>
|
|
private Thread m_tMeasuring = null;
|
|
|
|
/// <summary>
|
|
/// 대기시간
|
|
/// </summary>
|
|
private int WAIT_TIME = 60000 * 30;
|
|
|
|
/// <summary>
|
|
/// 저울 델리게이트
|
|
/// </summary>
|
|
/// <param name="bPrintYn"></param>
|
|
/// <param name="iWeight"></param>
|
|
/// <param name="sUnit"></param>
|
|
/// <param name="sItemNm"></param>
|
|
public delegate void DelegateScaleDevice(bool bPrintYn, int iWeight, string sUnit, string sItemNm);
|
|
|
|
public delegate void DelegateScaleDeviceRaw(string sScaleData);
|
|
|
|
public static DelegateScaleDevice m_delegateScaleDev = null;
|
|
public static DelegateScaleDeviceRaw m_delegateScaleDevRaw = null;
|
|
|
|
private bool m_bOncePrint = false;
|
|
#endregion 클래스 변수 선언
|
|
|
|
#region 생성자
|
|
public MeasuringMain()
|
|
{
|
|
m_cPosStatus = (PosStatus)StateObject.POS;
|
|
m_cDevStatus = (DeviceStatus)StateObject.DEVICE;
|
|
|
|
m_cScaleDevice = new Scale();
|
|
m_cLabelPrtDevice = new LabelPrinter();
|
|
m_cScalePoleDisplay = new ScalePoleDisplay();
|
|
}
|
|
|
|
public void Initialize()
|
|
{
|
|
// Default 출력 모드는 일반중량출력
|
|
PrintMode = PosConst.MEASURING_AGENT_PRINT_MODE.NORMAL;
|
|
|
|
CPNum = "";
|
|
Flavour1 = "";
|
|
Flavour2 = "";
|
|
OrdDT = "";
|
|
}
|
|
#endregion 생성자
|
|
|
|
#region Measuring 데몬 기동/종료
|
|
public void StartMeasuring()
|
|
{
|
|
try
|
|
{
|
|
Initialize();
|
|
|
|
// 저울 델리게이트 생성
|
|
m_delegateScaleDev = new DelegateScaleDevice(OnScaleDeviceEvent);
|
|
// 저울 RAW Data 델리게이트 생성
|
|
m_delegateScaleDevRaw = new DelegateScaleDeviceRaw(OnScaleDataEvent);
|
|
|
|
if (m_tMeasuring == null)
|
|
{
|
|
m_tMeasuring = new Thread(new ThreadStart(ThreadMeasuringRun));
|
|
m_MeasuringRunning = true;
|
|
m_tMeasuring.Start();
|
|
}
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
|
|
public void StopMeasuring()
|
|
{
|
|
try
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
UserCom.INFO_LEVEL,
|
|
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 (함수명))
|
|
"Measuring Service Stop!!!");
|
|
|
|
m_MeasuringRunning = false;
|
|
|
|
int count = 0;
|
|
while(count < 10)
|
|
{
|
|
if (m_tMeasuring != null && m_tMeasuring.IsAlive) m_MeasuringRunning = false;
|
|
else break;
|
|
|
|
count++;
|
|
Thread.Sleep(300);
|
|
}
|
|
|
|
if(count >= 10)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
UserCom.INFO_LEVEL,
|
|
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 (함수명))
|
|
"Force Measuring Service Stop!!!");
|
|
m_tMeasuring.Abort();
|
|
}
|
|
|
|
m_tMeasuring = null;
|
|
|
|
// 저울 델리게이트 Release
|
|
m_delegateScaleDev = null;
|
|
|
|
// 전자저울 SerialPort Close
|
|
m_cScaleDevice.CloseScale();
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
#endregion Measuring 데몬 기동/종료
|
|
|
|
#region Measuring Main
|
|
private void ThreadMeasuringRun()
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
UserCom.INFO_LEVEL,
|
|
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 (함수명))
|
|
"Measuring Service Run!!");
|
|
|
|
while(m_MeasuringRunning)
|
|
{
|
|
try
|
|
{
|
|
// 전자저울 SerialPort Open
|
|
bool bReturn = m_cScaleDevice.OpenScale(m_cPosStatus.Base.OlePosScaleSerialPortNumber, m_cPosStatus.Base.OlePosScaleSerialBaudRate);
|
|
// 2017.05.17
|
|
Thread.Sleep(500);
|
|
|
|
if (bReturn == true)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
UserCom.INFO_LEVEL,
|
|
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 (함수명))
|
|
"Scale port open succeed");
|
|
}
|
|
else
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
UserCom.INFO_LEVEL,
|
|
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 (함수명))
|
|
"Scale port open failed");
|
|
}
|
|
|
|
int nNowSleepTerm = 0;
|
|
while(nNowSleepTerm < WAIT_TIME)
|
|
{
|
|
if (m_MeasuringRunning == false) break;
|
|
Thread.Sleep(100);
|
|
nNowSleepTerm += 100;
|
|
}
|
|
m_cScaleDevice.CloseScale();
|
|
|
|
// 2017.05.17
|
|
Thread.Sleep(500);
|
|
}
|
|
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 (함수명))
|
|
"Measuring Service Exception : " + ex.Message);
|
|
break;
|
|
}
|
|
}
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
UserCom.INFO_LEVEL,
|
|
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 (함수명))
|
|
"Measuring Service Exit!!");
|
|
}
|
|
#endregion
|
|
|
|
#region 중량 출력 모드 변경
|
|
public void SetPrintMode(PosConst.MEASURING_AGENT_PRINT_MODE sMode)
|
|
{
|
|
try
|
|
{
|
|
PrintMode = sMode;
|
|
|
|
if(PrintMode == PosConst.MEASURING_AGENT_PRINT_MODE.NORMAL)
|
|
{
|
|
Initialize();
|
|
}
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
#endregion 중량 출력 모드 변경
|
|
|
|
#region 플레이버 내용 등록(출력용)
|
|
public void SetHappyOrderData(string[] sData)
|
|
{
|
|
try
|
|
{
|
|
if (sData.Length == 1)
|
|
{
|
|
CPNum = sData[0];
|
|
Flavour1 = "";
|
|
Flavour2 = "";
|
|
}
|
|
else if (sData.Length == 2)
|
|
{
|
|
CPNum = sData[0];
|
|
Flavour1 = sData[1];
|
|
Flavour2 = "";
|
|
}
|
|
else if(sData.Length > 2)
|
|
{
|
|
CPNum = sData[0];
|
|
Flavour1 = sData[1];
|
|
Flavour2 = sData[2];
|
|
OrdDT = sData[3];
|
|
}
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
#endregion 플레이버 내용 등록(출력용)
|
|
|
|
#region Scale Device Event 관련
|
|
public void OnScaleDeviceEvent(bool bPrintYn, int iWeight, string sUnit, string sItemNm)
|
|
{
|
|
try
|
|
{
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start
|
|
#if true // 로그추가
|
|
//grayber@20171222 디버그 로그 추가 - 저울 디버그
|
|
UserLog.WriteLogFile(UserCom.LOG_OP,
|
|
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 (함수명))
|
|
"▶▶ [OPEN]");
|
|
#endif
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end
|
|
if (m_bOncePrint == false)
|
|
{
|
|
m_bOncePrint = true;
|
|
string sCurDT = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
string sScaleDate = sCurDT.Substring(0, 10).Replace("-", "");
|
|
string sScaleTime = sCurDT.Substring(11, 8).Replace(":", "");
|
|
|
|
if (m_sOldOrdTime == "" || (m_sOldOrdTime.Equals(sScaleTime) == false))
|
|
{
|
|
m_sOldOrdDate = sScaleDate;
|
|
m_sOldOrdTime = sScaleTime;
|
|
|
|
// 정상중량일 경우에만 라벨프린터 출력함
|
|
if (bPrintYn == true)
|
|
{
|
|
if (PrintMode == PosConst.MEASURING_AGENT_PRINT_MODE.NORMAL)
|
|
ProcWeightInfo(sItemNm, iWeight, sUnit, sCurDT);
|
|
else
|
|
ProcWeightInfoOnHappyOrder(sItemNm, iWeight, sUnit, sCurDT);
|
|
}
|
|
|
|
// 저울 데이터 저장
|
|
// 중량 미달일 경우에도 저울 데이터는 저장
|
|
InsertScaleLog(sScaleDate, sScaleTime, iWeight, sItemNm, bPrintYn ? "1" : "0");
|
|
}
|
|
}
|
|
}
|
|
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);
|
|
}
|
|
finally
|
|
{
|
|
m_bOncePrint = false;
|
|
}
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start
|
|
#if true // 로그추가
|
|
//grayber@20171222 디버그 로그 추가 - 저울 디버그
|
|
UserLog.WriteLogFile(UserCom.LOG_OP,
|
|
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 (함수명))
|
|
"▶▶ [CLOSE]");
|
|
#endif
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end
|
|
}
|
|
|
|
public void OnScaleDataEvent(string sScaleData)
|
|
{
|
|
try
|
|
{
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start
|
|
#if true // 로그추가
|
|
//grayber@20171222 디버그 로그 추가 - 저울 디버그
|
|
UserLog.WriteLogFile(UserCom.LOG_OP,
|
|
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 (함수명))
|
|
"▶▶ [OPEN]");
|
|
#endif
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end
|
|
// ScalePoleDisplay 사용일 경우에만 출력
|
|
if(m_cDevStatus.ScalePoleDisplay.UseYn == true)
|
|
{
|
|
ProcScalePoleDisplay(sScaleData);
|
|
}
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start
|
|
#if true // 로그추가
|
|
//grayber@20171222 디버그 로그 추가 - 저울 디버그
|
|
UserLog.WriteLogFile(UserCom.LOG_OP,
|
|
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 (함수명))
|
|
"▶▶ [CLOSE]");
|
|
#endif
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
#endregion Device Event 관련
|
|
|
|
#region DB 관련
|
|
public void InsertScaleLog(string sDate, string sTime, int iWeight, string sItemNm, string sNormalYn)
|
|
{
|
|
string sQuery = "";
|
|
string sInsQuery = "";
|
|
sqlDb = null;
|
|
|
|
try
|
|
{
|
|
sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
|
|
|
|
sQuery = "INSERT INTO POSLOG..ETC_SCALE_LOG ";
|
|
sQuery += " ( CMP_CD, BRAND_CD, SALE_DT, STOR_CD, POS_NO ";
|
|
sQuery += " , SCALE_DT, SCALE_TM, WEIGHT, ITEM_NM, NORMAL_YN ";
|
|
sQuery += " , SEND_YN, REG_DATE, UPD_DATE ) ";
|
|
sQuery += "VALUES ";
|
|
sQuery += " ( '{0}', '{1}', '{2}', '{3}', '{4}' ";
|
|
sQuery += " , '{5}', '{6}', {7}, N'{8}', '{9}' ";
|
|
sQuery += " , '{10}', '{11}', '{12}' ) ";
|
|
|
|
sInsQuery = string.Format( sQuery
|
|
, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.BrandCd, m_cPosStatus.Base.SaleDate, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.PosNo
|
|
, sDate, sTime, iWeight, sItemNm, sNormalYn
|
|
, "0", DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss"));
|
|
|
|
int iRet = sqlDb.DBExecuteNonQuery(sInsQuery, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null);
|
|
if(iRet != UserCom.OK)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
UserCom.WARNING_LEVEL,
|
|
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 (함수명))
|
|
"Insert Failed!! " + "[" + sInsQuery + "]");
|
|
}
|
|
}
|
|
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);
|
|
}
|
|
finally
|
|
{
|
|
if (sqlDb != null)
|
|
{
|
|
sqlDb.DBClose();
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 라벨프린터 출력 함수
|
|
public void ProcWeightInfo(string sItemNm, int iWeight, string sUnit, string sCurTime)
|
|
{
|
|
bool bRet = false;
|
|
try
|
|
{
|
|
//if (m_bOncePrint == false)
|
|
//{
|
|
|
|
// 라벨프린터 Open
|
|
bRet = m_cLabelPrtDevice.OpenLabelPrinter(m_cPosStatus.Base.OlePosLabelPrinterSerialPortNumber, m_cPosStatus.Base.OlePosLabelPrinterSerialBaudRate);
|
|
|
|
if(bRet == false)
|
|
{
|
|
return;
|
|
}
|
|
|
|
//m_bOncePrint = true;
|
|
//grayber@20180228 중량 라벨 출력 변경 start
|
|
//기존
|
|
//string sContent = sItemNm + " : " + iWeight.ToString() + sUnit;
|
|
//변경
|
|
string sContent = sItemNm + " : " + string.Format( "{0:#,###}",iWeight) + sUnit;
|
|
//grayber@20180228 중량 라벨 출력 변경 start
|
|
|
|
string sDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start
|
|
#if true // 로그추가
|
|
//grayber@20171222 디버그 로그 추가 - 저울 디버그
|
|
UserLog.WriteLogFile(UserCom.LOG_OP,
|
|
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 (함수명))
|
|
"▶▶ LabelPrt: [" + sContent + "]");
|
|
#endif
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end
|
|
// 중량정보 출력
|
|
|
|
//grayber@20180228 중량 라벨 출력 변경 start
|
|
// 기존
|
|
//m_cLabelPrtDevice.PrintWeightInfo(sContent, sDateTime, CmUtil.GetDataRowStr(PosMstManager.GetMstStore(), PosMst.MST_STORE.DATA.STORNM));
|
|
// 변경
|
|
m_cLabelPrtDevice.PrintWeightInfo(sContent, sDateTime, CmUtil.GetDataRowStr(PosMstManager.GetMstStore(), PosMst.MST_STORE.DATA.STORNM) + " 점");
|
|
//grayber@20180228 중량 라벨 출력 변경 end
|
|
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start
|
|
#if true // 로그추가
|
|
//grayber@20171222 디버그 로그 추가 - 저울 디버그
|
|
UserLog.WriteLogFile(UserCom.LOG_OP,
|
|
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 (함수명))
|
|
"▶▶ [CLOSE]");
|
|
#endif
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end
|
|
|
|
// 라벨프린터 Close
|
|
bRet = m_cLabelPrtDevice.CloseLabelPrinter();
|
|
|
|
//m_bOncePrint = false;
|
|
//}
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
|
|
public void ProcWeightInfoOnHappyOrder(string sItemNm, int iWeight, string sUnit, string sCurTime)
|
|
{
|
|
bool bRet = false;
|
|
try
|
|
{
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start
|
|
#if true // 로그추가
|
|
//grayber@20171222 디버그 로그 추가 - 저울 디버그
|
|
UserLog.WriteLogFile(UserCom.LOG_OP,
|
|
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 (함수명))
|
|
"▶▶ [OPEN]");
|
|
#endif
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end
|
|
// 라벨프린터 Open
|
|
bRet = m_cLabelPrtDevice.OpenLabelPrinter(m_cPosStatus.Base.OlePosLabelPrinterSerialPortNumber, m_cPosStatus.Base.OlePosLabelPrinterSerialBaudRate);
|
|
|
|
if (bRet == false)
|
|
{
|
|
return;
|
|
}
|
|
|
|
m_bOncePrint = true;
|
|
|
|
string sContent = sItemNm + " / " + iWeight.ToString() + sUnit + " (" + CPNum + ")";
|
|
string sOrdDateTime = "주문 " + OrdDT;
|
|
string sPckDateTime = "포장 " + sCurTime;
|
|
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start
|
|
#if true // 로그추가
|
|
//grayber@20171222 디버그 로그 추가 - 저울 디버그
|
|
UserLog.WriteLogFile(UserCom.LOG_OP,
|
|
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 (함수명))
|
|
"▶▶ LabelPrt: [" + sContent + "]");
|
|
#endif
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end
|
|
|
|
// 중량정보 출력
|
|
m_cLabelPrtDevice.PrintWeightInfo(sContent, Flavour1, Flavour2, sOrdDateTime, sPckDateTime);
|
|
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start
|
|
#if true // 로그추가
|
|
//grayber@20171222 디버그 로그 추가 - 저울 디버그
|
|
UserLog.WriteLogFile(UserCom.LOG_OP,
|
|
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 (함수명))
|
|
"▶▶ [CLOSE]");
|
|
#endif
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end
|
|
|
|
// 라벨프린터 Close
|
|
bRet = m_cLabelPrtDevice.CloseLabelPrinter();
|
|
|
|
m_bOncePrint = false;
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
#endregion 라벨프린터 출력 함수
|
|
|
|
#region ScalePoleDisplay 출력 함수
|
|
/// <summary>
|
|
/// ScalePoleDisplay 출력
|
|
/// </summary>
|
|
/// <param name="sScaleData">저울에서 입력된 값 Ex) ST,+00000.00__g</param>
|
|
public void ProcScalePoleDisplay(string sScaleData)
|
|
{
|
|
try
|
|
{
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start
|
|
#if true // 로그추가
|
|
//grayber@20171222 디버그 로그 추가 - 저울 디버그
|
|
UserLog.WriteLogFile(UserCom.LOG_OP,
|
|
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 (함수명))
|
|
"▶▶ [OPEN]");
|
|
#endif
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end
|
|
m_cScalePoleDisplay.OpenScalePoleDisplay(m_cPosStatus.Base.OleScalePoleDisplayPortNumber, m_cPosStatus.Base.OleScalePoleDisplayBaudRate);
|
|
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start
|
|
#if true // 로그추가
|
|
//grayber@20171222 디버그 로그 추가 - 저울 디버그
|
|
UserLog.WriteLogFile(UserCom.LOG_OP,
|
|
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 (함수명))
|
|
"▶▶ " + "PoleDisplay: " + "[" + sScaleData + "]");
|
|
#endif
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end
|
|
|
|
m_cScalePoleDisplay.WriteToScalePoleDisplay(sScaleData);
|
|
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start
|
|
#if true // 로그추가
|
|
//grayber@20171222 디버그 로그 추가 - 저울 디버그
|
|
UserLog.WriteLogFile(UserCom.LOG_OP,
|
|
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 (함수명))
|
|
"▶▶ CLOSE");
|
|
#endif
|
|
//grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end
|
|
|
|
m_cScalePoleDisplay.CloseScalePoleDisplay();
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
#endregion ScalePoleDisplay 출력 함수
|
|
}
|
|
}
|