2460 lines
132 KiB
C#
2460 lines
132 KiB
C#
using System;
|
||
using System.Collections;
|
||
using System.IO;
|
||
|
||
using Cosmos.UserFrame;
|
||
using Cosmos.BaseFrame;
|
||
using Cosmos.ServiceProvider;
|
||
using Cosmos.Common;
|
||
using Cosmos.CommonManager;
|
||
using System.Data;
|
||
|
||
/*-----------------------------------------------------------------------------------------------*/
|
||
// 설 명 : 영수증 출력 처리
|
||
// 작 성 자 :
|
||
// 변경 이력 :
|
||
/*-----------------------------------------------------------------------------------------------*/
|
||
namespace Cosmos.Service
|
||
{
|
||
class PosReceiptBase
|
||
{
|
||
protected SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출
|
||
protected StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체)
|
||
protected PosStatus m_cPosStatus; // 기본정보 참조
|
||
protected TranStatus m_cTrnStatus; // 거래정보 참조
|
||
protected DeviceStatus m_cDevStatus; // 장비정보 참고
|
||
|
||
protected IPosPrinterUs m_cPosPrinter = null;
|
||
protected IDatabaseSQL m_cSqlDbService = null; // 데이터베이스 관리
|
||
protected IMasterUs m_cMstService = null; // 마스터 인터페이스
|
||
|
||
//private MakeTranLog m_cTranService = null;
|
||
private IDataCommonUs m_cDataCommon = null; // POS 공통함수 인터페이스
|
||
|
||
protected static ArrayList m_aPrintBuf = new ArrayList();
|
||
|
||
/// <summary>
|
||
/// 출력데이터(0:RECEIPT:본영수증)
|
||
/// </summary>
|
||
protected static ArrayList m_aRecPrintBuf = new ArrayList();
|
||
/// <summary>
|
||
/// 출력데이터(9:NOJNL:부가영수증(저널 대상아님))
|
||
/// </summary>
|
||
protected static ArrayList m_aEtcPrintBuf = new ArrayList();
|
||
|
||
/// <summary>
|
||
/// 영수증 메시지 마스터 정보
|
||
/// </summary>
|
||
protected DataTable m_dtMstBillMsg = null;
|
||
/// <summary>
|
||
/// 영수증 유형 마스터 정보
|
||
/// </summary>
|
||
protected DataTable m_dtMstBillType = null;
|
||
/// <summary>
|
||
/// 설문참여 메시지 마스터 정보
|
||
/// </summary>
|
||
protected DataTable m_dtMstVoteMsg = null;
|
||
|
||
/// <summary>
|
||
/// 정렬구분('0':오른쪽, '1':가운데, '2':왼쪽)
|
||
/// </summary>
|
||
protected string m_sPaySortDiv;
|
||
/// <summary>
|
||
/// 크기구분(0:보통, 1:굵게, 2:가로확대, 3:세로확대, 4:전체확대)
|
||
/// </summary>
|
||
protected string m_sPaySizeDiv;
|
||
|
||
//grayber@20180226 대기번호표 개선 start - 구분 추가
|
||
/// <summary>
|
||
/// 전자영수증 구분
|
||
/// </summary>
|
||
protected bool m_bElectRec = false;
|
||
//grayber@20180226 대기번호표 개선 end
|
||
|
||
public PosReceiptBase()
|
||
{
|
||
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
|
||
m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보
|
||
m_cDevStatus = (DeviceStatus)StateObject.DEVICE; // POS 장치정보
|
||
|
||
m_cPosPrinter = (IPosPrinterUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_POSPRINTER);
|
||
m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL);
|
||
m_cMstService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.POS_MASTER);
|
||
|
||
//m_cTranService = (MakeTranLog)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.MAKE_TRANLOG);
|
||
m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증 버퍼 초기화
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public void PrintBufClear()
|
||
{
|
||
m_aPrintBuf.Clear();
|
||
|
||
m_aRecPrintBuf.Clear();
|
||
m_aEtcPrintBuf.Clear();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증 상단 영역 출력
|
||
/// </summary>
|
||
/// <param name="sPrtID">0:본영수증, 9:기타영수증</param>
|
||
/// <param name="bTopImg">상단이미지 출력여부</param>
|
||
/// <param name="bStamp">명판 출력여부</param>
|
||
/// <param name="bTopMsg">상단메시지 출력여부</param>
|
||
/// <param name="bTopInfo">일자시간 출력여부</param>
|
||
/// <returns></returns>
|
||
protected bool SetTopPosPrintData(string sPrtID, bool bTopImg, bool bStamp, bool bTopMsg, bool bTopInfo)
|
||
{
|
||
return SetTopPosPrintData(sPrtID, bTopImg, bStamp, bTopMsg, bTopInfo, "");
|
||
}
|
||
protected bool SetTopPosPrintData(string sPrtID, bool bTopImg, bool bStamp, bool bTopMsg, bool bTopInfo, string sTitleName)
|
||
{
|
||
return SetTopPosPrintData(sPrtID, bTopImg, bStamp, bTopMsg, bTopInfo, sTitleName, false);
|
||
}
|
||
protected bool SetTopPosPrintData(string sPrtID, bool bTopImg, bool bStamp, bool bTopMsg, bool bTopInfo, string sTitleName, bool bDisplay)
|
||
{
|
||
try
|
||
{
|
||
// 상단 이미지 출력
|
||
if (bTopImg == true && PosMstManager.GetPosOption(POS_OPTION.OPT409) != "0" && m_cPosStatus.Base.TextLogoMsgUseYn != "1") AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_TBM);
|
||
|
||
// 상단 텍스트로고 출력
|
||
if (m_cPosStatus.Base.TextLogoMsgUseYn == "1") SetTextLogoMsg(sPrtID);
|
||
|
||
// 주문(대기)번호 출력!
|
||
if (bTopMsg == true)
|
||
{
|
||
#region
|
||
//#20170913 TO STAY, TO GO 정보 영수증 출력 start
|
||
string sPackTradeNm = "";
|
||
if (m_cTrnStatus.Head.PackTradeDiv != "")
|
||
{
|
||
#region
|
||
if (m_cTrnStatus.Head.PackTradeDiv == "1")
|
||
{
|
||
sPackTradeNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1003);
|
||
}
|
||
else if (m_cTrnStatus.Head.PackTradeDiv == "2")
|
||
{
|
||
sPackTradeNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1004);
|
||
}
|
||
else if (m_cTrnStatus.Head.PackTradeDiv == "3")
|
||
{
|
||
sPackTradeNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1005);
|
||
}
|
||
#endregion
|
||
|
||
//AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, sPackTradeNm);
|
||
}
|
||
//#20170913 TO STAY, TO GO 정보 영수증 출력 end
|
||
|
||
if (PosMstManager.GetPosOption(POS_OPTION.OPT008) == "1" && m_cTrnStatus.Head.OrderNo != "")
|
||
{
|
||
#region
|
||
if (m_cTrnStatus.Head.IsBellUse.Equals("1"))
|
||
{
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, "진동벨번호");
|
||
}
|
||
else
|
||
{
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0097));
|
||
}
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BIG, PosConst.PRT_FMT.F103, m_cTrnStatus.Head.OrderNo);
|
||
|
||
|
||
//#20170913 TO STAY, TO GO 정보 영수증 출력 start
|
||
if (sPackTradeNm != "")
|
||
{
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, sPackTradeNm);
|
||
}
|
||
//#20170913 TO STAY, TO GO 정보 영수증 출력 end
|
||
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
|
||
|
||
#endregion
|
||
}
|
||
else if (m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.NO_ORDER_SALE)
|
||
{
|
||
#region
|
||
// Add, 2017.03.14 => 후불-판매모드 일때는 영수증에 주문번호를 무조건 출력 한다.
|
||
var temp = string.IsNullOrWhiteSpace(m_cTrnStatus.Head.OrderNo) ? m_cTrnStatus.Head.TradeNo : m_cTrnStatus.Head.OrderNo;
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0097) + ":" + temp);
|
||
|
||
//#20170913 TO STAY, TO GO 정보 영수증 출력 start
|
||
if (sPackTradeNm != "")
|
||
{
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, sPackTradeNm);
|
||
}
|
||
//#20170913 TO STAY, TO GO 정보 영수증 출력 end
|
||
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
|
||
#endregion
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
|
||
// 명판 출력
|
||
if (bStamp == true) SetStampGuidePrintData(sPrtID, PosConst.BILL_PRT_LOC.STAMP);
|
||
|
||
// 상단메시지 출력
|
||
if (bTopMsg == true)
|
||
{
|
||
if (PosMstManager.GetPosOption(POS_OPTION.OPT411) != "0") SetStampGuidePrintData(sPrtID, PosConst.BILL_PRT_LOC.TOP);
|
||
|
||
////주문(대기)번호 출력!
|
||
//if (PosMstManager.GetPosOption(POS_OPTION.OPT008) == "1" && m_cTrnStatus.Head.OrderNo != "")
|
||
//{
|
||
// AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0097) + ":" + m_cTrnStatus.Head.OrderNo);
|
||
//}
|
||
}
|
||
|
||
// 연습모드이면 연습모드 여부 출력
|
||
if (m_cPosStatus.Base.TrainingFlag == ItemConst.TRAINING_FLAG.TRAINING_YES) AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0033));
|
||
|
||
#region
|
||
//// 현금 영수증 타이틀 출력
|
||
//ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
||
//foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
|
||
//{
|
||
// if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
||
// if (cEtcItem.BILLSPR_NO != m_cTrnStatus.Sale.BillSplitNo) continue;
|
||
|
||
// if (cEtcItem.ETC_WAY_CD != ItemConst.TR_ITEM_ID.ETC_INFO_ITEM || cEtcItem.ETC_DTL_CD_01 != ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL) continue;
|
||
|
||
// // 소득공제, 지출증빙 타이틀 출력
|
||
// AddPrintData(sPrtID, bDisplay == true ? PosConst.PRT_HDR.PRT_NOR : PosConst.PRT_HDR.PRT_HOR, PosConst.PRT_FMT.F103
|
||
// , (cEtcItem.OCCUR_ENTRY_11 == "0" ? MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0041) : MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0042)));
|
||
//}
|
||
|
||
#endregion
|
||
|
||
// 반품 타이틀 출력
|
||
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND)
|
||
{
|
||
AddPrintData(sPrtID, bDisplay == true ? PosConst.PRT_HDR.PRT_NOR : PosConst.PRT_HDR.PRT_HOR, PosConst.PRT_FMT.F103, MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0002));
|
||
}
|
||
|
||
// grayber@20180110 전자영수증 주문(대기)번호표 출력 start - 영수증 출력 : 대기번호표 타이틀 출력
|
||
// 개별 타이틀 정보 출력
|
||
// 기존
|
||
//if (sTitleName != "") AddPrintData(sPrtID, bDisplay == true ? PosConst.PRT_HDR.PRT_NOR : PosConst.PRT_HDR.PRT_HOR, PosConst.PRT_FMT.F103, sTitleName);
|
||
|
||
// 변경
|
||
if (sTitleName != "" &&
|
||
//grayber@20180226 대기번호표 조건 변경 start - 조건 단순화
|
||
// 기존
|
||
//PosMstManager.GetPosOption(POS_OPTION.OPT429).Trim().Equals("1") // 전자영수증 발행 여부
|
||
//&& PosMstManager.GetPosOption(POS_OPTION.OPT008).Trim().Equals("1") // 대기(주문) 번호 사용여부
|
||
//&& m_cTrnStatus.Head.OrderNo.Trim().Equals("") != true // 주문번호가 있으면
|
||
//&& m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.REFUND // 반품이 아닐때
|
||
//// grayber@20180122 전자영수증 조건 추가 start - 해피앱 전자영수증 사용 여부 확인
|
||
//&& CheckElectronic_Receipt().Equals("Y") == true // 전자영수증 확인
|
||
//// grayber@20180122 전자영수증 조건 추가 end
|
||
// 변경
|
||
m_bElectRec == true && m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.REFUND
|
||
//grayber@20180226 대기번호표 조건 변경 end
|
||
)
|
||
{
|
||
AddPrintData(sPrtID, bDisplay == true ? PosConst.PRT_HDR.PRT_NOR : PosConst.PRT_HDR.PRT_BGB, PosConst.PRT_FMT.F103, sTitleName);
|
||
AddPrintData(sPrtID, bDisplay == true ? PosConst.PRT_HDR.PRT_NOR : PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " "); // 공백 추가
|
||
}
|
||
else
|
||
{
|
||
if (sTitleName.Trim().Equals("") != true) AddPrintData(sPrtID, bDisplay == true ? PosConst.PRT_HDR.PRT_NOR : PosConst.PRT_HDR.PRT_HOR, PosConst.PRT_FMT.F103, sTitleName);
|
||
}
|
||
// grayber@20180110 전자영수증 주문(대기)번호표 출력 end
|
||
|
||
if (bTopInfo == true)
|
||
{
|
||
#region
|
||
if (PosMstManager.GetPosOption(POS_OPTION.OPT401) == "1")
|
||
{
|
||
// 2019-04-16 - 1997fx11 : 판매일자 및 POS번호, 캐셔이름
|
||
SetBillTypeTopBtmPrintData(sPrtID, PosConst.BILL_TYPE_DIV.TOP_INFO);
|
||
}
|
||
else
|
||
{
|
||
string sCashierName = m_cPosStatus.Base.CashierName; // 판매원명
|
||
|
||
//#20171107 통제관리 start, phj
|
||
//기존
|
||
//if (m_cTrnStatus.Head.CashierId != m_cPosStatus.Base.CashierNo) sCashierName = GetCashierName(m_cTrnStatus.Head.CashierId);
|
||
|
||
//변경
|
||
if (m_cTrnStatus.Head.CashierId != m_cPosStatus.Base.CashierNo)
|
||
{
|
||
if ((m_cTrnStatus.Head.CashierId.Length) > 3)
|
||
{
|
||
sCashierName = GetCashierName(m_cTrnStatus.Head.CashierId.Substring(m_cTrnStatus.Head.StoreCd.Length, 3));
|
||
}
|
||
else
|
||
{
|
||
if (m_cTrnStatus.Head.CashierId != m_cPosStatus.Base.CashierNo) sCashierName = GetCashierName(m_cTrnStatus.Head.CashierId);
|
||
}
|
||
}
|
||
//#20171107 통제관리 end, phj
|
||
|
||
// 거래구분,일자,시간, POS번호,캐셔명
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR,
|
||
(m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND ? MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0002) : MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0001))
|
||
+ " " + m_cPosStatus.Global.DateToCulture(m_cTrnStatus.Head.SysYmd) + " " + CmUtil.StrToTime(m_cTrnStatus.Head.PayHms) + " POS:" + m_cTrnStatus.Head.PosNo + "(" + CmUtil.LeftH(sCashierName, 6) + ")");
|
||
}
|
||
#endregion
|
||
}
|
||
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;
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증 하단 영역 출력
|
||
/// </summary>
|
||
/// <param name="sPrtID">0:본영수증, 9:기타영수증</param>
|
||
/// <param name="bBtmImg">하단이미지 출력여부</param>
|
||
/// <param name="bBtmMsg">하단메시지 출력여부</param>
|
||
/// <param name="bBtmInfo">하단정보 출력여부</param>
|
||
/// <param name="bBarCode">영수증바코드 출력여부</param>
|
||
/// <param name="bAddMsg">추가메시지 출력여부</param>
|
||
/// <returns></returns>
|
||
protected bool SetBtmPosPrintData(string sPrtID, bool bBtmImg, bool bBtmMsg, bool bBtmInfo, bool bBarCode, bool bAddMsg)
|
||
{
|
||
return SetBtmPosPrintData(sPrtID, bBtmImg, bBtmMsg, bBtmInfo, bBarCode, bAddMsg, 1);
|
||
}
|
||
protected bool SetBtmPosPrintData(string sPrtID, bool bBtmImg, bool bBtmMsg, bool bBtmInfo, bool bBarCode, bool bAddMsg, int iPrintCnt)
|
||
{
|
||
string sPrintMsg = "";
|
||
|
||
try
|
||
{
|
||
if (m_cPosStatus.Base.TrainingFlag == ItemConst.TRAINING_FLAG.TRAINING_YES)
|
||
{
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0035));
|
||
}
|
||
|
||
// 하단 메시지 출력
|
||
if (bBtmMsg == true && PosMstManager.GetPosOption(POS_OPTION.OPT412) != "0") SetStampGuidePrintData(sPrtID, PosConst.BILL_PRT_LOC.BOTTOM);
|
||
|
||
|
||
//grayber@20171214 캠페인 리펀드 쿠폰 start
|
||
// 캠페인 리펀드 출력
|
||
if (PosMstManager.GetPosOption(POS_OPTION.OPT431).Equals("1") == true && bAddMsg == true)
|
||
{
|
||
SetCpiRefundPrint(sPrtID);
|
||
}
|
||
//grayber@20171214 캠페인 리펀드 쿠폰 end
|
||
|
||
// 하단정보
|
||
if (bBtmInfo == true && PosMstManager.GetPosOption(POS_OPTION.OPT401) == "1")
|
||
{
|
||
SetBillTypeTopBtmPrintData(sPrtID, PosConst.BILL_TYPE_DIV.BTM_INFO);
|
||
}
|
||
|
||
|
||
//grayber@20171214 캠페인 리펀드 쿠폰 start
|
||
// 해피앱 추후 적립 bBarCode 구분자 추가하여 주석 해제
|
||
// 바코드가 출력시에 출력되도록 처리
|
||
if (bBarCode == true)
|
||
{
|
||
//#20170807 명판 캠페인 커팅 start
|
||
//#해피앱 추후적립 start, sskim
|
||
if (m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.KR)
|
||
{
|
||
//#20180509 해피앱 추후적립 사용여부 옵션 처리 start
|
||
//기존
|
||
//if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL)
|
||
//변경
|
||
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL &&
|
||
PosMstManager.GetPosOption(POS_OPTION.OPT515) == "1") // 해피앱 추후적립 사용 여부(0:사용안함, 1:사용함)
|
||
//#20180509 해피앱 추후적립 사용여부 옵션 처리 end
|
||
{
|
||
|
||
//#17470 패션파이브 영수증 메시지 수정 요청 start
|
||
//기존
|
||
//SetHpAppAfterSavePrint(sPrtID); // 해피앱 추후적립 문구 출력
|
||
//변경
|
||
//패션5, 라뜰리에 영업조직은 해피앱 추후적립 문구 미출력
|
||
if (m_cPosStatus.Base.BrandCd != "009" && m_cPosStatus.Base.BrandCd != "021")
|
||
{
|
||
SetHpAppAfterSavePrint(sPrtID); // 해피앱 추후적립 문구 출력
|
||
}
|
||
//#17470 패션파이브 영수증 메시지 수정 요청 end
|
||
}
|
||
}
|
||
//#해피앱 추후적립 end, sskim
|
||
//#20170807 명판 캠페인 커팅 end
|
||
}
|
||
//grayber@20171214 캠페인 리펀드 쿠폰 end
|
||
|
||
// 바코드 출력
|
||
if (bBarCode == true && PosMstManager.GetPosOption(POS_OPTION.OPT403) != "0" && m_cPosStatus.Sale.DutchPayFlg != "2") // && m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL)
|
||
{
|
||
//2017-06-02 dkshin 해피앱 추후적립 - 영수증 바코드 포맷 변경
|
||
//string sBarData = m_cTrnStatus.Head.SaleDate + m_cTrnStatus.Head.PosNo + m_cTrnStatus.Head.PayHms;
|
||
//AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BA1, sBarData);
|
||
string sBarData = "";
|
||
if (m_cTrnStatus.Head.CmpCd == "PCKR")
|
||
{
|
||
sBarData = "4";
|
||
}
|
||
else if (m_cTrnStatus.Head.CmpCd == "BRKR")
|
||
{
|
||
sBarData = "5";
|
||
}
|
||
else if (m_cTrnStatus.Head.CmpCd == "SLKR")
|
||
{
|
||
sBarData = "6";
|
||
}
|
||
//2017.11.01;중국은 7, 그 외 지역은 BarData 자리 수를 마추기 위해 9 로 추가함;girak.kim; Start
|
||
else if (m_cTrnStatus.Head.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCCN))
|
||
{
|
||
sBarData = "7";
|
||
}
|
||
else if (m_cTrnStatus.Head.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS))
|
||
{
|
||
sBarData = "8";
|
||
}
|
||
else
|
||
{
|
||
sBarData = "9";
|
||
}
|
||
//2017.11.01;그 외 지역은 BarData 자리 수를 마추기 위해 9 로 추가함;girak.kim; End
|
||
|
||
sBarData += m_cTrnStatus.Head.TradeNo.ToString().Substring(4, 1); //빌5
|
||
sBarData += m_cTrnStatus.Head.PosNo.ToString().Substring(0, 1); //P1
|
||
sBarData += m_cTrnStatus.Head.SaleDate.ToString().Substring(0, 1); //년1
|
||
sBarData += m_cTrnStatus.Head.TradeNo.ToString().Substring(3, 1); //빌4
|
||
sBarData += m_cTrnStatus.Head.SaleDate.ToString().Substring(1, 1); //년2
|
||
sBarData += m_cTrnStatus.Head.PosNo.ToString().Substring(1, 1); //P2
|
||
sBarData += m_cTrnStatus.Head.SaleDate.ToString().Substring(2, 1); //년3
|
||
//sBarData += m_cTrnStatus.Head.StoreCd.ToString().Substring(2, 1); //점3
|
||
sBarData += m_cTrnStatus.Head.StoreCd.ToString().Substring(m_cTrnStatus.Head.StoreCd.Length - 5, 1); //점3
|
||
sBarData += m_cTrnStatus.Head.SaleDate.ToString().Substring(3, 1); //년4
|
||
//sBarData += m_cTrnStatus.Head.StoreCd.ToString().Substring(3, 1); //점4
|
||
sBarData += m_cTrnStatus.Head.StoreCd.ToString().Substring(m_cTrnStatus.Head.StoreCd.Length - 4, 1); //점4
|
||
sBarData += m_cTrnStatus.Head.SaleDate.ToString().Substring(4, 1); //월1
|
||
sBarData += m_cTrnStatus.Head.TradeNo.ToString().Substring(2, 1); //빌3
|
||
sBarData += m_cTrnStatus.Head.SaleDate.ToString().Substring(5, 1); //월2
|
||
//sBarData += m_cTrnStatus.Head.StoreCd.ToString().Substring(4, 1); //점5
|
||
sBarData += m_cTrnStatus.Head.StoreCd.ToString().Substring(m_cTrnStatus.Head.StoreCd.Length - 3, 1); //점5
|
||
sBarData += m_cTrnStatus.Head.SaleDate.ToString().Substring(6, 1); //일1
|
||
sBarData += m_cTrnStatus.Head.TradeNo.ToString().Substring(1, 1); //빌2
|
||
sBarData += m_cTrnStatus.Head.SaleDate.ToString().Substring(7, 1); //일2
|
||
//sBarData += m_cTrnStatus.Head.StoreCd.ToString().Substring(5, 1); //점6
|
||
sBarData += m_cTrnStatus.Head.StoreCd.ToString().Substring(m_cTrnStatus.Head.StoreCd.Length - 2, 1); //점6
|
||
//sBarData += m_cTrnStatus.Head.StoreCd.ToString().Substring(6, 1); //점7
|
||
sBarData += m_cTrnStatus.Head.StoreCd.ToString().Substring(m_cTrnStatus.Head.StoreCd.Length - 1, 1); //점7
|
||
|
||
//#15456 영수증 바코드 번호표기 start
|
||
//기존
|
||
//AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BA1, sBarData);
|
||
//변경
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BAR, sBarData);
|
||
//#15456 영수증 바코드 번호표기 end
|
||
|
||
m_cTrnStatus.Head.RcptBarcodeData = sBarData;
|
||
m_cPosStatus.Base.LastRcptBarcodeData = sBarData;
|
||
|
||
}
|
||
|
||
// 하단 고객용/보관용 명칭 출력
|
||
if (m_cTrnStatus.Head.TradeKind.StartsWith(ItemConst.TRAN_KIND.NORMAL.DELIMITER) == true
|
||
|| m_cTrnStatus.Head.TradeKind.StartsWith(ItemConst.TRAN_KIND.UNDECIDED.DELIMITER) == true
|
||
|| m_cTrnStatus.Head.TradeKind.StartsWith(ItemConst.TRAN_KIND.FORIGN.DELIMITER) == true
|
||
|| m_cTrnStatus.Head.TradeKind.StartsWith(ItemConst.TRAN_KIND.AFTER.DELIMITER) == true
|
||
|| m_cTrnStatus.Head.TradeKind.StartsWith(ItemConst.TRAN_KIND.CHARGESALE.DELIMITER) == true)
|
||
{
|
||
if (iPrintCnt == 1)
|
||
{
|
||
sPrintMsg = CmUtil.MidH(MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0136), 0, 42).Trim(); // 고객용
|
||
}
|
||
else //if (iPrintCnt == 2)
|
||
{
|
||
sPrintMsg = CmUtil.MidH(MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0123), 0, 42).Trim(); // 보관용
|
||
}
|
||
}
|
||
else
|
||
{
|
||
sPrintMsg = CmUtil.MidH(MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0123), 0, 42).Trim(); // 보관용
|
||
}
|
||
if (sPrintMsg != "") AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_HOR, PosConst.PRT_FMT.F103, "[" + sPrintMsg + "]");
|
||
|
||
// 추가 메시지 출력
|
||
if (bAddMsg == true)
|
||
{
|
||
SetCampaignPrint(sPrtID); // 영수캠페인(포함) 데이터 출력
|
||
SetVotePrintData(sPrtID); // 설문참여 메시지
|
||
}
|
||
// #20180206 [BR]MST_ITEM 원산지 정보 결제완료 시 콜센터배달 결제, 배달의민족, 요기요 배달 결제일 때만 표기되도록 수정 Start, lsr
|
||
//grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 start - [BR] 분리
|
||
//if ( m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.BR) != true )
|
||
//{
|
||
//if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.FORIGN.O2O)
|
||
|
||
// 해피오더 영양정보 출력
|
||
|
||
if (m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.BR) != true && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.FORIGN.O2O)
|
||
// #20180206 [BR]MST_ITEM 원산지 정보 결제완료 시 콜센터배달 결제, 배달의민족, 요기요 배달 결제일 때만 표기되도록 수정 End, lsr
|
||
{
|
||
// 결제 내역 받아 오기
|
||
ArrayList aPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
||
|
||
// 해피오더 주문번호 가져 오기
|
||
Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)aPayItem[0];
|
||
string sOrderNum = cPayItem.OCCUR_ENTRY_01;
|
||
string sOrderDt = cPayItem.OCCUR_ENTRY_03;
|
||
|
||
// 해피오더 영양정보 조회
|
||
IHappyOrderList cHappyOrder = (IHappyOrderList)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HAPPY_ORDER_LIST);
|
||
DataTable dtReturn = cHappyOrder.GetHappyOrderData(sOrderNum, sOrderDt);
|
||
if (dtReturn != null && dtReturn.Rows.Count > 0)
|
||
{
|
||
DataRow drData = dtReturn.Rows[0];
|
||
|
||
string sNutritionMsg = CmUtil.GetDataRowStr(drData, "NUTRITION_MSG");
|
||
//#17141 [해피오더]배달영수증 주소 추가 start
|
||
string sHappyOrderDeliveryInfo = CmUtil.GetDataRowStr(drData, "FILLER5");
|
||
//#17141 [해피오더]배달영수증 주소 추가 end
|
||
|
||
|
||
//#17141 [해피오더]배달영수증 주소 추가 start
|
||
if (sNutritionMsg != "" || sHappyOrderDeliveryInfo != "")
|
||
{
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
|
||
}
|
||
|
||
if (sNutritionMsg != "")
|
||
{
|
||
//#17141 [해피오더]배달영수증 주소 추가 end
|
||
|
||
//#20180323 해피오더 영수증 재발행시 원산지 정보 출력 기능 수정 start
|
||
//주문서 출력시 원산지 정보 출력, 재발행시 원산지 정보 미출력되도록 수정
|
||
//기존
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, sNutritionMsg);
|
||
//변경
|
||
//AddPrintData(PosConst.PRT_ITEM.REC_TEMP, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, sNutritionMsg);
|
||
//#20180323 해피오더 영수증 재발행시 원산지 정보 출력 기능 수정 end
|
||
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
|
||
|
||
//#17141 [해피오더]배달영수증 주소 추가 start
|
||
}
|
||
|
||
if (sHappyOrderDeliveryInfo != "")
|
||
{
|
||
string[] DeliveryDataList = null;
|
||
DeliveryDataList = sHappyOrderDeliveryInfo.Split(new string[] { "#~" }, StringSplitOptions.None);
|
||
if (DeliveryDataList != null)
|
||
{
|
||
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 start
|
||
string sRecviver = "";
|
||
string sRecviverAddress = "";
|
||
string sReceiverHp = "";
|
||
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 end
|
||
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " [배송지 정보]");
|
||
//고객명
|
||
if (DeliveryDataList[0] != "")
|
||
{
|
||
sRecviver = string.Format("{0}{1}{2}", CmUtil.LeftH(DeliveryDataList[0], 2), ((DeliveryDataList[0].Length > 2) ? new string('*', DeliveryDataList[0].Length - 2) : "*"), CmUtil.RightH(DeliveryDataList[0], 2));
|
||
}
|
||
//주소지
|
||
if (DeliveryDataList[1] != "")
|
||
{
|
||
sRecviverAddress = DeliveryDataList[1].Trim();
|
||
}
|
||
|
||
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 start
|
||
//연락처
|
||
if (DeliveryDataList[2] != "")
|
||
{
|
||
//#17673 PB 안산본오우성 - 해피오더창에서 배달중 누르면 [고객센터로 연락주세요] 팝업 발생 start
|
||
//기존
|
||
//sReceiverHp = sReceiverHp.Substring(sReceiverHp.Length - 4, 4);
|
||
//변경
|
||
sReceiverHp = DeliveryDataList[2].Substring(DeliveryDataList[2].Length - 4, 4);
|
||
//#17673 PB 안산본오우성 - 해피오더창에서 배달중 누르면 [고객센터로 연락주세요] 팝업 발생 end
|
||
}
|
||
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 end
|
||
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1189) + " : " + sRecviver);
|
||
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 start
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0952) + " : " + sReceiverHp);
|
||
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 end
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1087) + " : " + sRecviverAddress);
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
|
||
}
|
||
}
|
||
//#17141 [해피오더]배달영수증 주소 추가 end
|
||
}
|
||
}
|
||
else // 배달결제 영양정보 출력
|
||
{
|
||
// 결제 내역 받아 오기
|
||
ArrayList alTrPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
||
|
||
foreach (Column.TR_PAYMENT.DATA cPayItem in alTrPayItem)
|
||
{
|
||
// #20180206 [BR]MST_ITEM 원산지 정보 결제완료 시 콜센터배달 결제, 배달의민족, 요기요 배달 결제일 때만 표기되도록 수정 Start, lsr
|
||
//if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.ORDER_ITEM &&
|
||
// (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.ORDER.CALLCENTER_PAY || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.ORDER.BAEMIN_PAY))
|
||
|
||
// 배달(콜센터)결제 또는 배달의민족 또는 요기요배달 결제일 경우에 영양정보 & 열량정보 출력
|
||
if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.ORDER_ITEM &&
|
||
(cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.ORDER.CALLCENTER_PAY || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.ORDER.BAEMIN_PAY || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.ORDER.YOGIYO_PAY)
|
||
// grayber@20180213 배달결제 영양정보 출력 거래구분 추가 정상일때만 출력하도록 처리 start
|
||
// 추가
|
||
&& m_cTrnStatus.Head.TradeDiv.Equals(ItemConst.TRAN_DIV.NORMAL) == true // 정상 거래 건
|
||
// grayber@20180213 배달결제 영양정보 출력 거래구분 추가 정상일때만 출력하도록 처리 end
|
||
)
|
||
// #20180206 [BR]MST_ITEM 원산지 정보 결제완료 시 콜센터배달 결제, 배달의민족, 요기요 배달 결제일 때만 표기되도록 수정 End, lsr
|
||
{
|
||
// 상품 내역 받아 오기
|
||
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
||
|
||
int nCnt = 0;
|
||
string sItemInfo = "";
|
||
foreach (Column.TR_PLU.DATA cPluItem in alPluItem)
|
||
{
|
||
DataTable dtData = m_cDataCommon.SearchItemCode(cPluItem.SUB_SHOP_CD, cPluItem.ITEM_PLU_CD, "");
|
||
|
||
if (dtData == null || dtData.Rows.Count == 0) continue;
|
||
|
||
DataRow dr = dtData.Rows[0];
|
||
|
||
// 상품의 영양정보와 열량정보가 존재하지 않으면 Skip 처리
|
||
if (CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.ITEM_INFO)) == "" &&
|
||
CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.CALORY_INFO)) == "")
|
||
{
|
||
continue;
|
||
}
|
||
// grayber@20180213 배달결제 영양정보 출력 양식 변경, 상품명 및 캐리지리턴 추가 start
|
||
// 기존
|
||
//if (nCnt > 0)
|
||
//{
|
||
// sItemInfo += "/";
|
||
//}
|
||
//sItemInfo += CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.ITEM_INFO) + CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.CALORY_INFO);
|
||
|
||
// 변경
|
||
sItemInfo += "- 상품명 : " + cPluItem.ITEM_NAME + "\r\n";
|
||
sItemInfo += CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.ITEM_INFO) + CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.CALORY_INFO) + "\r\n\r\n";
|
||
// grayber@20180213 배달결제 영양정보 출력 양식 변경, 상품명 및 캐리지리턴 추가 end
|
||
nCnt++;
|
||
}
|
||
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, sItemInfo);
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
// #20180206 [BR]MST_ITEM 원산지 정보 결제완료 시 콜센터배달 결제, 배달의민족, 요기요 배달 결제일 때만 표기되도록 수정 Start, lsr
|
||
//}
|
||
//grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 end
|
||
// #20180206 [BR]MST_ITEM 원산지 정보 결제완료 시 콜센터배달 결제, 배달의민족, 요기요 배달 결제일 때만 표기되도록 수정 End, lsr
|
||
|
||
// 하단이미지 출력
|
||
if (bBtmImg == true && PosMstManager.GetPosOption(POS_OPTION.OPT410) != "0") AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BBM);
|
||
|
||
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;
|
||
|
||
}
|
||
|
||
#region 영수 캠페인(포함) 출력 데이터 설정
|
||
/// <summary>
|
||
/// 영수 캠페인(포함) 출력 데이터 설정
|
||
/// </summary>
|
||
/// <param name="sPrtID"></param>
|
||
/// <returns></returns>
|
||
private bool SetCampaignPrint(string sPrtID)
|
||
{
|
||
try
|
||
{
|
||
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND) return true;
|
||
|
||
// 영수 캠페인 출력 데이터 설정
|
||
ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
||
ArrayList alPrtBuf = cCampaingMain.GetCampaignPrintData(new string[] { });
|
||
if (alPrtBuf == null || alPrtBuf.Count <= 0) return true;
|
||
|
||
//AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
|
||
|
||
foreach (string sPrtData in alPrtBuf)
|
||
{
|
||
AddPrintData(sPrtID, sPrtData);
|
||
}
|
||
|
||
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;
|
||
|
||
}
|
||
#endregion
|
||
|
||
/// <summary>
|
||
/// 영수증 상단 텍스트로고 데이터 생성
|
||
/// </summary>
|
||
/// <param name="sPrtID"></param>
|
||
/// <returns></returns>
|
||
protected bool SetTextLogoMsg(string sPrtID)
|
||
{
|
||
try
|
||
{
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, m_cPosStatus.Base.TextLogoMsg1);
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, m_cPosStatus.Base.TextLogoMsg2);
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR);
|
||
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;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증 출력 완료(커팅) 데이터 생성
|
||
/// </summary>
|
||
/// <param name="sPrtID"></param>
|
||
/// <returns></returns>
|
||
protected bool SetEndPosPrintData(string sPrtID)
|
||
{
|
||
try
|
||
{
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR);
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_CUT, ""); // 영수증 커팅
|
||
|
||
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;
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 상품(정상상품) 출력 데이터 생성
|
||
/// </summary>
|
||
/// <param name="sPrtID"></param>
|
||
/// <param name="sPRT_HDR"></param>
|
||
/// <param name="sItemName"></param>
|
||
/// <param name="nSalePrc"></param>
|
||
/// <param name="nSaleQty"></param>
|
||
/// <param name="nDcAmt"></param>
|
||
/// <param name="sSaleAmt"></param>
|
||
/// <param name="sTaxCd"></param>
|
||
/// <returns></returns>
|
||
protected bool SetPluItemPrintData(string sPrtID, string sPRT_HDR, string sItemName, double nSalePrc, long nSaleQty, double nDcAmt, string sSaleAmt, string sTaxCd)
|
||
{
|
||
try
|
||
{
|
||
// 영수증 제품명 두줄 출력(1 : 1줄 출력, 2 : 2줄 출력)
|
||
if (PosMstManager.GetPosOption(POS_OPTION.OPT414) == "2" && m_cPosStatus.Mst.CntryDiv != ItemConst.CNTRY_DIV.FR) // 프랑스는 두줄출력 안함!
|
||
{
|
||
// 상품명
|
||
AddPrintData(sPrtID, sPRT_HDR, sItemName);
|
||
|
||
// 상품 단가 출력(0 : 미 출력, 1 : 출력) 두줄출력일때만 가능
|
||
string sSalePrc = (PosMstManager.GetPosOption(POS_OPTION.OPT415) == "1") ? m_cPosStatus.Global.NumericTOCurrency(nSalePrc) : "";
|
||
|
||
// 단가, 수량, 금액
|
||
AddPrintData(sPrtID, sPRT_HDR, PosConst.PRT_FMT.F300, sSalePrc, nSaleQty.ToString(), sSaleAmt);
|
||
}
|
||
else
|
||
{
|
||
if (m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.FR)
|
||
{
|
||
// 수량, 상품명, 단가, 금액, 세금구분
|
||
AddPrintData(sPrtID, sPRT_HDR, PosConst.PRT_FMT.F501, sItemName, nSaleQty.ToString(),
|
||
m_cPosStatus.Global.NumericTOCurrency(nSalePrc), sSaleAmt, sTaxCd);
|
||
}
|
||
else
|
||
{
|
||
// grayber@20180110 전자영수증 주문(대기)번호표 출력 start - 영수증 출력 : 제품명 , 수량 출력
|
||
// 기존
|
||
// 상품명, 수량, 금액
|
||
//AddPrintData(sPrtID, sPRT_HDR, PosConst.PRT_FMT.F301, sItemName, nSaleQty.ToString(), sSaleAmt);
|
||
|
||
// 변경
|
||
if (
|
||
//grayber@20180226 대기번호표 조건 변경 start - 조건 단순화
|
||
// 기존
|
||
//PosMstManager.GetPosOption(POS_OPTION.OPT429).Trim().Equals("1") // 전자영수증 사용 유무
|
||
//&& PosMstManager.GetPosOption(POS_OPTION.OPT008).Trim().Equals("1") // 대기(주문) 번호 사용여부
|
||
//&& m_cTrnStatus.Head.OrderNo.Trim().Equals("") != true // 주문번호가 있으면
|
||
//&& m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.REFUND // 반품이 아닐때
|
||
//// grayber@20180122 전자영수증 조건 추가 start - 해피앱 전자영수증 사용 여부 확인
|
||
//&& CheckElectronic_Receipt().Equals("Y") == true // 전자영수증 확인
|
||
//// grayber@20180122 전자영수증 조건 추가 end
|
||
// 변경
|
||
m_bElectRec == true && m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.REFUND
|
||
//grayber@20180226 대기번호표 조건 변경 end
|
||
)
|
||
{
|
||
// 제품명 , 수량
|
||
AddPrintData(sPrtID, sPRT_HDR, PosConst.PRT_FMT.F200, sItemName, nSaleQty.ToString());
|
||
return true;
|
||
}
|
||
else
|
||
{
|
||
// 상품명, 수량, 금액
|
||
AddPrintData(sPrtID, sPRT_HDR, PosConst.PRT_FMT.F301, sItemName, nSaleQty.ToString(), sSaleAmt);
|
||
}
|
||
// grayber@20180110 전자영수증 주문(대기)번호표 출력 end
|
||
}
|
||
}
|
||
|
||
return true;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Exception : " + ex.Message);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증 출력 처리
|
||
/// </summary>
|
||
/// <param name="bRecPrt">본영수증출력여부</param>
|
||
/// <param name="bEtcPrt">기타 출력여부</param>
|
||
/// <returns></returns>
|
||
public bool PrintExecute(bool bRecPrt, bool bEtcPrt, bool bSaveFile)
|
||
{
|
||
bool bRet = false;
|
||
try
|
||
{
|
||
string CRLF = "\r\n";
|
||
|
||
if (bSaveFile == true)
|
||
{
|
||
// 최종 영수증데이터 저장
|
||
//WriteReceiptFile("PRT_REC.TXT", m_aPrintBuf, "");
|
||
|
||
WriteReceiptFile("PRT_REC.TXT", m_aRecPrintBuf, PosConst.PRT_ITEM.REC);
|
||
//WriteReceiptFile("PRT_ETC.TXT", m_aEtcPrintBuf, PosConst.PRT_ITEM.ETC);
|
||
}
|
||
|
||
if (m_cPosStatus.Base.OlePosPrinterModel == "" || m_cPosStatus.Base.OlePosPrinterModel == "99")
|
||
{
|
||
#region
|
||
string sPrtData = "";
|
||
frmPrtData fPrtData = new frmPrtData();
|
||
|
||
sPrtData = "";
|
||
for (int i = 0; i < m_aPrintBuf.Count; i++)
|
||
{
|
||
sPrtData += m_aPrintBuf[i].ToString().Substring(1) + PosConst.CRLF;
|
||
}
|
||
fPrtData.txtPrtData.Text = sPrtData;
|
||
|
||
sPrtData = "";
|
||
for (int i = 0; i < m_aRecPrintBuf.Count; i++)
|
||
{
|
||
sPrtData += m_aRecPrintBuf[i].ToString().Substring(1) + PosConst.CRLF;
|
||
}
|
||
fPrtData.txtRecPrtData.Text = sPrtData;
|
||
|
||
sPrtData = "";
|
||
for (int i = 0; i < m_aEtcPrintBuf.Count; i++)
|
||
{
|
||
sPrtData += m_aEtcPrintBuf[i].ToString().Substring(1) + PosConst.CRLF;
|
||
}
|
||
fPrtData.txtEtcPrtData.Text = sPrtData;
|
||
|
||
sPrtData = "";
|
||
// 캠페인 정보
|
||
ArrayList alTrCpiItem = (ArrayList)StateObject.GetItemObject(Column.TR_SALE_CPI_RSLT.ITEM);
|
||
foreach (Column.TR_SALE_CPI_RSLT.DATA cTrPluCpi in alTrCpiItem)
|
||
{
|
||
if (cTrPluCpi.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
|
||
|
||
sPrtData += CmUtil.RPadH(cTrPluCpi.CPI_CD, 8) + CmUtil.RPadH(cTrPluCpi.ITEM_PLU_CD, 14)
|
||
+ CmUtil.LPadH(cTrPluCpi.DC_QTY.ToString(), 5) + CmUtil.LPadH(cTrPluCpi.DC_SUM_AMT.ToString(), 12) + CmUtil.LPadH(cTrPluCpi.ACCUM_POINT.ToString(), 12) + PosConst.CRLF;
|
||
}
|
||
|
||
fPrtData.txtCampaign.Text = sPrtData;
|
||
|
||
fPrtData.ShowDialog();
|
||
|
||
#endregion
|
||
return true;
|
||
|
||
}
|
||
|
||
// 영수증 출력버퍼 배열 사이즈 계산
|
||
int nPrtBufSize = 0;
|
||
if (bRecPrt == true && m_aRecPrintBuf.Count > 0) nPrtBufSize += m_aRecPrintBuf.Count;
|
||
if (bEtcPrt == true && m_aEtcPrintBuf.Count > 0) nPrtBufSize += m_aEtcPrintBuf.Count;
|
||
|
||
string[] aPrtBuf = new string[nPrtBufSize];
|
||
|
||
// 영수증 출력
|
||
int nRow = 0;
|
||
for (int i = 0; i < m_aPrintBuf.Count; i++)
|
||
{
|
||
if (bRecPrt == true
|
||
&& (m_aPrintBuf[i].ToString().StartsWith(PosConst.PRT_ITEM.REC) == true || m_aPrintBuf[i].ToString().StartsWith(PosConst.PRT_ITEM.REC_TEMP) == true))
|
||
{
|
||
aPrtBuf[nRow] = m_aPrintBuf[i].ToString().Substring(1).TrimEnd();
|
||
nRow++;
|
||
}
|
||
else if (bEtcPrt == true && m_aPrintBuf[i].ToString().StartsWith(PosConst.PRT_ITEM.ETC) == true)
|
||
{
|
||
aPrtBuf[nRow] = m_aPrintBuf[i].ToString().Substring(1).TrimEnd();
|
||
nRow++;
|
||
}
|
||
}
|
||
|
||
#region
|
||
//int nRow = 0;
|
||
//if (bRecPrt == true && m_aRecPrintBuf.Count > 0)
|
||
//{
|
||
// // 본영수증 출력
|
||
// for (int i = 0; i < m_aRecPrintBuf.Count; i++, nRow++)
|
||
// {
|
||
// aPrtBuf[nRow] = m_aRecPrintBuf[i].ToString().Substring(1).TrimEnd();
|
||
// }
|
||
//}
|
||
//if (bEtcPrt == true && m_aEtcPrintBuf.Count > 0)
|
||
//{
|
||
// // 기타영수증 출력
|
||
// for (int i = 0; i < m_aEtcPrintBuf.Count; i++, nRow++)
|
||
// {
|
||
// aPrtBuf[nRow] = m_aEtcPrintBuf[i].ToString().Substring(1).TrimEnd();
|
||
// }
|
||
//}
|
||
#endregion
|
||
//if (m_cDevStatus.Printer.UseYn != false) bRet = m_cPosPrinter.ReceiptPrinter(aPrtBuf); // 영수증 출력 처리
|
||
if (m_cDevStatus.Printer.UseYn != false) bRet = m_cPosPrinter.ReceiptPrinter(aPrtBuf, 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 bRet;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 저널데이터 저장
|
||
/// </summary>
|
||
/// <param name="aParam"></param>
|
||
/// <returns></returns>
|
||
public string SaveJnlExecute(string[] aParam)
|
||
{
|
||
string sJnlData = "";
|
||
string sRet = UserCom.RST_ERR;
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start
|
||
string sHPC_SAVE_APPR_DT = string.Empty;
|
||
string sHPC_SAVE_APPR_NO = string.Empty;
|
||
string sHPC_USE_APPR_DT = string.Empty;
|
||
string sHPC_USE_APPR_NO = string.Empty;
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end
|
||
try
|
||
{
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start
|
||
//Params
|
||
if (aParam.Length == 4)
|
||
{
|
||
sHPC_SAVE_APPR_DT = aParam[0];
|
||
sHPC_SAVE_APPR_NO = aParam[1];
|
||
sHPC_USE_APPR_DT = aParam[2];
|
||
sHPC_USE_APPR_NO = aParam[3];
|
||
}
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end
|
||
|
||
// 저널데이터 획득
|
||
int nRow = 0;
|
||
for (int i = 0; i < m_aRecPrintBuf.Count; i++)
|
||
{
|
||
if (m_aRecPrintBuf[i].ToString().Length > 0)
|
||
{
|
||
string sPrtHdr = m_aRecPrintBuf[i].ToString().Substring(1, 5);
|
||
//if (sPrtHdr == PosConst.PRT_HDR.PRT_TBM || sPrtHdr == PosConst.PRT_HDR.PRT_IMG) continue;
|
||
if (sPrtHdr == PosConst.PRT_HDR.PRT_IMG) continue;
|
||
if (m_aRecPrintBuf[i].ToString().StartsWith(PosConst.PRT_ITEM.REC) == true) sJnlData += CmUtil.RPadH(m_aRecPrintBuf[i].ToString().Substring(1), 47);
|
||
|
||
nRow++;
|
||
}
|
||
}
|
||
if (sJnlData == "") sJnlData = "Empty Journal Data";
|
||
|
||
// 저널데이터 저장
|
||
string sQuery = "";
|
||
|
||
if (m_cDataCommon.TradeNoAddCheck("") == false)
|
||
{
|
||
//string sRegNo = string.Empty;
|
||
//DataTable dt = null;
|
||
|
||
//sQuery = " SELECT ISNULL(MAX(REG_NO),0) AS REG_NO ";
|
||
|
||
//sQuery += " WHERE 1 = 1 ";
|
||
//sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
|
||
//sQuery += " AND SALE_DT = '" + m_cPosStatus.Base.SaleDate + "'";
|
||
//sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
|
||
//sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'";
|
||
|
||
//int iRet = m_cSqlDbService.DBSelect(sQuery, out dt);
|
||
|
||
//sRegNo = dt.Rows[0]["REG_NO"].ToString();
|
||
|
||
sQuery += " INSERT INTO POSLOG..ETC_SALE_JOURNAL ( ";
|
||
sQuery += " CMP_CD, STOR_CD, SALE_DT, POS_NO, REG_NO, TRADE_NO, TRADE_DIV, TRAIN_MODE_YN, TRADE_KINDPER, SYS_DT, ";
|
||
sQuery += " SYS_TIME, PIC_NO, BILL_AMT, JOURNAL_DATA, SEND_YN, REG_DATE, UPD_DATE ";
|
||
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start -- 주석 처리 (ETC_SALE_JOURNAL 이라 주석)
|
||
//추가
|
||
//sQuery += " ,HPC_SAVE_APPR_DT, HPC_SAVE_APPR_NO ,HPC_USE_APPR_DT, HPC_USE_APPR_NO";
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end
|
||
|
||
sQuery += " ) VALUES ( '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , '{9}', ";
|
||
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start -- 주석 처리 (ETC_SALE_JOURNAL 이라 주석 처리)
|
||
// 기존
|
||
sQuery += " '{10}','{11}', '{12}', N'{13}', '{14}', '{15}', '{16}' )";
|
||
// 변경
|
||
//sQuery += " '{10}','{11}', '{12}', N'{13}', '{14}', '{15}', {16} ";
|
||
//sQuery += ", '{17}','{18}', '{19}','{20}' ";
|
||
//sQuery += " )";
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end
|
||
|
||
sQuery = string.Format(sQuery
|
||
, m_cTrnStatus.Head.CmpCd // CMP_CD
|
||
, m_cTrnStatus.Head.StoreCd // STOR_CD
|
||
, m_cTrnStatus.Head.SaleDate // SALE_DT
|
||
, m_cTrnStatus.Head.PosNo // POS_NO
|
||
, m_cTrnStatus.Head.RegNo // REG_NO
|
||
, m_cTrnStatus.Head.TradeNo // TRADE_NO
|
||
, m_cTrnStatus.Head.TradeDiv // TRADE_DIV
|
||
, m_cTrnStatus.Head.TrainModeYn // TRAIN_MODE_YN
|
||
, m_cTrnStatus.Head.TradeKind // TRADE_KINDPER
|
||
, m_cTrnStatus.Head.SysYmd // SYS_DT
|
||
, m_cTrnStatus.Head.PayHms // SYS_TIME
|
||
, m_cTrnStatus.Head.CashierId // PIC_NO
|
||
, m_cTrnStatus.Head.NetSaleAmt // BILL_AMT
|
||
, sJnlData
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start -- 주석 처리 ETC_SALE_JOURNAL 이라 주석 처리
|
||
// 기존
|
||
, "0", DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss"));
|
||
// 변경
|
||
//, "0", DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss")
|
||
//, sHPC_SAVE_APPR_DT
|
||
//, sHPC_SAVE_APPR_NO
|
||
//, sHPC_USE_APPR_DT
|
||
//, sHPC_USE_APPR_NO
|
||
//);
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end -- 주석 처리 ETC_SALE_JOURNAL 이라 주석 처리
|
||
}
|
||
else
|
||
{
|
||
sQuery += " INSERT INTO POSLOG..TR_SALE_JOURNAL ( ";
|
||
sQuery += " CMP_CD, STOR_CD, SALE_DT, POS_NO, TRADE_NO, TRADE_DIV, TRAIN_MODE_YN, TRADE_KINDPER, SYS_DT, ";
|
||
sQuery += " SYS_TIME, PIC_NO, BILL_AMT, JOURNAL_DATA, SEND_YN, REG_DATE, UPD_DATE ";
|
||
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start
|
||
// 추가
|
||
sQuery += " ,HPC_SAVE_APPR_DT, HPC_SAVE_APPR_NO ,HPC_USE_APPR_DT, HPC_USE_APPR_NO";
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end
|
||
|
||
sQuery += " ) VALUES ( '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , '{9}', ";
|
||
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start
|
||
// 기존
|
||
//sQuery += " '{10}','{11}', '{12}', N'{13}', '{14}', '{15}' )";
|
||
//변경
|
||
sQuery += " '{10}','{11}', '{12}', N'{13}', '{14}', '{15}' ";
|
||
sQuery += ", '{16}','{17}' , '{18}','{19}' ";
|
||
sQuery += " )";
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end
|
||
|
||
//#20180131 인천공항 통합POS 사용유무가 사용이면 SEND_YN을 A로 설정 start
|
||
//TR_SALE_HEADER, TR_SALE_JOURNAL
|
||
//기존
|
||
/*
|
||
sQuery = string.Format(sQuery
|
||
, m_cTrnStatus.Head.CmpCd // CMP_CD
|
||
, m_cTrnStatus.Head.StoreCd // STOR_CD
|
||
, m_cTrnStatus.Head.SaleDate // SALE_DT
|
||
, m_cTrnStatus.Head.PosNo // POS_NO
|
||
// , m_cTrnStatus.Head.RegNo // REG_NO
|
||
, m_cTrnStatus.Head.TradeNo // TRADE_NO
|
||
, m_cTrnStatus.Head.TradeDiv // TRADE_DIV
|
||
, m_cTrnStatus.Head.TrainModeYn // TRAIN_MODE_YN
|
||
, m_cTrnStatus.Head.TradeKind // TRADE_KINDPER
|
||
, m_cTrnStatus.Head.SysYmd // SYS_DT
|
||
, m_cTrnStatus.Head.PayHms // SYS_TIME
|
||
, m_cTrnStatus.Head.CashierId // PIC_NO
|
||
, m_cTrnStatus.Head.NetSaleAmt // BILL_AMT
|
||
, sJnlData
|
||
, "0", DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss"));
|
||
*/
|
||
//변경
|
||
|
||
if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1"
|
||
//grayber@20180228 [BRKR] 인천공항 SEND_YN 매출전송유무 'A' 제거 start
|
||
&& m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.BR) != true
|
||
//grayber@20180228 [BRKR] 인천공항 SEND_YN 매출전송유무 'A' 제거 end
|
||
)
|
||
{
|
||
sQuery = string.Format(sQuery
|
||
, m_cTrnStatus.Head.CmpCd // CMP_CD
|
||
, m_cTrnStatus.Head.StoreCd // STOR_CD
|
||
, m_cTrnStatus.Head.SaleDate // SALE_DT
|
||
, m_cTrnStatus.Head.PosNo // POS_NO
|
||
// , m_cTrnStatus.Head.RegNo // REG_NO
|
||
, m_cTrnStatus.Head.TradeNo // TRADE_NO
|
||
, m_cTrnStatus.Head.TradeDiv // TRADE_DIV
|
||
, m_cTrnStatus.Head.TrainModeYn // TRAIN_MODE_YN
|
||
, m_cTrnStatus.Head.TradeKind // TRADE_KINDPER
|
||
, m_cTrnStatus.Head.SysYmd // SYS_DT
|
||
, m_cTrnStatus.Head.PayHms // SYS_TIME
|
||
, m_cTrnStatus.Head.CashierId // PIC_NO
|
||
, m_cTrnStatus.Head.NetSaleAmt // BILL_AMT
|
||
, sJnlData
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start
|
||
// 기존
|
||
//, "A", DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss"));
|
||
// 변경
|
||
, "A", DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss")
|
||
, sHPC_SAVE_APPR_DT
|
||
, sHPC_SAVE_APPR_NO
|
||
, sHPC_USE_APPR_DT
|
||
, sHPC_USE_APPR_NO
|
||
);
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end
|
||
|
||
|
||
}
|
||
else
|
||
{
|
||
sQuery = string.Format(sQuery
|
||
, m_cTrnStatus.Head.CmpCd // CMP_CD
|
||
, m_cTrnStatus.Head.StoreCd // STOR_CD
|
||
, m_cTrnStatus.Head.SaleDate // SALE_DT
|
||
, m_cTrnStatus.Head.PosNo // POS_NO
|
||
// , m_cTrnStatus.Head.RegNo // REG_NO
|
||
, m_cTrnStatus.Head.TradeNo // TRADE_NO
|
||
, m_cTrnStatus.Head.TradeDiv // TRADE_DIV
|
||
, m_cTrnStatus.Head.TrainModeYn // TRAIN_MODE_YN
|
||
, m_cTrnStatus.Head.TradeKind // TRADE_KINDPER
|
||
, m_cTrnStatus.Head.SysYmd // SYS_DT
|
||
, m_cTrnStatus.Head.PayHms // SYS_TIME
|
||
, m_cTrnStatus.Head.CashierId // PIC_NO
|
||
, m_cTrnStatus.Head.NetSaleAmt // BILL_AMT
|
||
, sJnlData
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start
|
||
// 기존
|
||
//, "0", DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss"));
|
||
// 변경
|
||
, "0", DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss")
|
||
, sHPC_SAVE_APPR_DT
|
||
, sHPC_SAVE_APPR_NO
|
||
, sHPC_USE_APPR_DT
|
||
, sHPC_USE_APPR_NO
|
||
);
|
||
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end
|
||
}
|
||
|
||
//#20180131 인천공항 통합POS 사용유무가 사용이면 SEND_YN을 A로 설정 end
|
||
|
||
// 쿼리 로그, Rhee
|
||
if (m_cPosStatus.Base.CmpCd.ToUpper().Equals("PCCN"))
|
||
{
|
||
UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "@@SaveJnlExecute=" + sQuery);
|
||
}
|
||
}
|
||
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
|
||
|
||
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) == UserCom.OK) return UserCom.RST_OK;
|
||
}
|
||
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;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 저널데이터 저장 - 서버에서 조회 (복구용)
|
||
/// </summary>
|
||
/// <param name="aParam"></param>
|
||
/// <returns></returns>
|
||
public string SaveJnlDataExecute(string[] aParam)
|
||
{
|
||
string sJnlData = "";
|
||
string sRet = UserCom.RST_ERR;
|
||
|
||
try
|
||
{
|
||
// 저널데이터 획득
|
||
sJnlData = aParam[0];
|
||
|
||
// 저널데이터 저장
|
||
string sQuery = "";
|
||
|
||
if (m_cDataCommon.TradeNoAddCheck("") == false)
|
||
{
|
||
//string sRegNo = string.Empty;
|
||
//DataTable dt = null;
|
||
|
||
//sQuery = " SELECT ISNULL(MAX(REG_NO),0) AS REG_NO ";
|
||
//sQuery += " FROM POSLOG..ETC_SALE_HEADER ";
|
||
//sQuery += " WHERE 1 = 1 ";
|
||
//sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
|
||
//sQuery += " AND SALE_DT = '" + m_cPosStatus.Base.SaleDate + "'";
|
||
//sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
|
||
//sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'";
|
||
|
||
//int iRet = m_cSqlDbService.DBSelect(sQuery, out dt);
|
||
|
||
//sRegNo = dt.Rows[0]["REG_NO"].ToString();
|
||
|
||
sQuery += " INSERT INTO POSLOG..ETC_SALE_JOURNAL ( ";
|
||
sQuery += " CMP_CD, STOR_CD, SALE_DT, POS_NO, REG_NO, TRADE_NO, TRADE_DIV, TRAIN_MODE_YN, TRADE_KINDPER, SYS_DT, ";
|
||
sQuery += " SYS_TIME, PIC_NO, BILL_AMT, JOURNAL_DATA, SEND_YN, REG_DATE, UPD_DATE ";
|
||
sQuery += " ) VALUES ( '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , '{9}', ";
|
||
sQuery += " '{10}','{11}', '{12}', N'{13}', '{14}', '{15}', '{16}' )";
|
||
|
||
sQuery = string.Format(sQuery
|
||
, m_cTrnStatus.Head.CmpCd // CMP_CD
|
||
, m_cTrnStatus.Head.StoreCd // STOR_CD
|
||
, m_cTrnStatus.Head.SaleDate // SALE_DT
|
||
, m_cTrnStatus.Head.PosNo // POS_NO
|
||
, m_cTrnStatus.Head.RegNo // REG_NO
|
||
, m_cTrnStatus.Head.TradeNo // TRADE_NO
|
||
, m_cTrnStatus.Head.TradeDiv // TRADE_DIV
|
||
, m_cTrnStatus.Head.TrainModeYn // TRAIN_MODE_YN
|
||
, m_cTrnStatus.Head.TradeKind // TRADE_KINDPER
|
||
, m_cTrnStatus.Head.SysYmd // SYS_DT
|
||
, m_cTrnStatus.Head.PayHms // SYS_TIME
|
||
, m_cTrnStatus.Head.CashierId // PIC_NO
|
||
, m_cTrnStatus.Head.NetSaleAmt // BILL_AMT
|
||
, sJnlData
|
||
, "1", DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss"));
|
||
}
|
||
else
|
||
{
|
||
sQuery += " INSERT INTO POSLOG..TR_SALE_JOURNAL ( ";
|
||
sQuery += " CMP_CD, STOR_CD, SALE_DT, POS_NO, TRADE_NO, TRADE_DIV, TRAIN_MODE_YN, TRADE_KINDPER, SYS_DT, ";
|
||
sQuery += " SYS_TIME, PIC_NO, BILL_AMT, JOURNAL_DATA, SEND_YN, REG_DATE, UPD_DATE ";
|
||
sQuery += " ) VALUES ( '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , '{9}', ";
|
||
sQuery += " '{10}','{11}', '{12}', N'{13}', '{14}', '{15}' )";
|
||
|
||
sQuery = string.Format(sQuery
|
||
, m_cTrnStatus.Head.CmpCd // CMP_CD
|
||
, m_cTrnStatus.Head.StoreCd // STOR_CD
|
||
, m_cTrnStatus.Head.SaleDate // SALE_DT
|
||
, m_cTrnStatus.Head.PosNo // POS_NO
|
||
// , m_cTrnStatus.Head.RegNo // REG_NO
|
||
, m_cTrnStatus.Head.TradeNo // TRADE_NO
|
||
, m_cTrnStatus.Head.TradeDiv // TRADE_DIV
|
||
, m_cTrnStatus.Head.TrainModeYn // TRAIN_MODE_YN
|
||
, m_cTrnStatus.Head.TradeKind // TRADE_KINDPER
|
||
, m_cTrnStatus.Head.SysYmd // SYS_DT
|
||
, m_cTrnStatus.Head.PayHms // SYS_TIME
|
||
, m_cTrnStatus.Head.CashierId // PIC_NO
|
||
, m_cTrnStatus.Head.NetSaleAmt // BILL_AMT
|
||
, sJnlData
|
||
, "1", DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss"));
|
||
|
||
// 쿼리 로그, Rhee
|
||
if (m_cPosStatus.Base.CmpCd.ToUpper().Equals("PCCN"))
|
||
{
|
||
UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "@@SaveJnlDataExecute=" + sQuery);
|
||
}
|
||
}
|
||
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
|
||
|
||
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) == UserCom.OK) return UserCom.RST_OK;
|
||
}
|
||
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;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 명판 및 영수증 메시지 출력데이터 생성
|
||
/// </summary>
|
||
/// <param name="sPrtID">0:본영수증, 9:기타영수증</param>
|
||
/// <param name="sPrtLoc">BILL_PRT_LOC</param>
|
||
public bool SetStampGuidePrintData(string sPrtID, string sPrtLoc)
|
||
{
|
||
string sQuery = "";
|
||
try
|
||
{
|
||
if (sPrtLoc == PosConst.BILL_PRT_LOC.STAMP)
|
||
{
|
||
// 명판 생성
|
||
if (m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.CN)
|
||
{
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, m_cPosStatus.Mst.StorName);
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, "Tel:" + m_cPosStatus.Mst.StorTelNo);
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, m_cPosStatus.Mst.StorAddr);
|
||
}
|
||
else
|
||
{
|
||
//#15274 영수증 문구 추가 요청 start
|
||
if (m_cPosStatus.Mst.CompNm.Trim() != "")
|
||
{
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, m_cPosStatus.Mst.CompNm);
|
||
}
|
||
//#15274 영수증 문구 추가 요청 end
|
||
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, m_cPosStatus.Mst.StorName);
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, m_cPosStatus.Mst.StorBizPsnNo + " Tel:" + m_cPosStatus.Mst.StorTelNo + " " + m_cPosStatus.Mst.StorOwnName);
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, m_cPosStatus.Mst.StorAddr);
|
||
}
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
|
||
|
||
return true;
|
||
}
|
||
|
||
if (m_dtMstBillMsg == null)
|
||
{
|
||
sQuery += " SELECT * FROM POSMST..MST_BILL_MSG ";
|
||
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
|
||
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
|
||
sQuery += " AND '" + m_cPosStatus.Base.SaleDate + "' BETWEEN PRT_START_DT AND PRT_FNSH_DT ";
|
||
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'";
|
||
// 기존
|
||
//sQuery += " ORDER BY 1, 2, 3, 4, 5";
|
||
// 변경
|
||
sQuery += " ORDER BY 3, 4, 5";
|
||
|
||
m_dtMstBillMsg = m_cMstService.Select(new string[] { sQuery });
|
||
}
|
||
if (m_dtMstBillMsg == null || m_dtMstBillMsg.Rows.Count == 0) return false;
|
||
|
||
bool bExist = false;
|
||
string sWriteDiv = "1"; // 작성자별 영수증 메시지 출력(1:본사, 2:팀, 3:점포)
|
||
for (int i = 0; i < 3; i++)
|
||
{
|
||
// 영수증 메시지 출력 우선순위 CHAR 1 1:본부/팀/매장, 2:매장/팀/본부
|
||
if (i == 0)
|
||
sWriteDiv = (m_cPosStatus.Mst.BillMsgDupPrtRank == "1") ? "1" : "3";
|
||
else if (i == 1)
|
||
sWriteDiv = "2";
|
||
else
|
||
sWriteDiv = (m_cPosStatus.Mst.BillMsgDupPrtRank == "1") ? "3" : "1";
|
||
|
||
foreach (DataRow dr in m_dtMstBillMsg.Rows)
|
||
{
|
||
if (CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_MSG.DATA.PRT_START_DT) == m_cPosStatus.Base.SaleDate
|
||
&& CmUtil.IntParse(CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_MSG.DATA.PRT_START_HOUR)) > CmUtil.IntParse(DateTime.Now.ToString("HHmmss"))) continue;
|
||
|
||
if (CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_MSG.DATA.PRT_LOC) != sPrtLoc) continue;
|
||
if (CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_MSG.DATA.WRITE_DIV) != sWriteDiv) continue;
|
||
|
||
|
||
// 크기구분(0:보통, 1:굵게, 2:가로확대, 3:세로확대, 4:전체확대)
|
||
string sPrtHead = CmUtil.GetPrtMstToPrtHeadConst(CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_MSG.DATA.EXPAND_CHAR), CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_MSG.DATA.BOLD_YN));
|
||
|
||
if (CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_MSG.DATA.ALIGN_TYPE) == PosConst.PRT_ALIGN_TYPE.RIGHT)
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F102, CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_MSG.DATA.CHAR_ROW));
|
||
else if (CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_MSG.DATA.ALIGN_TYPE) == PosConst.PRT_ALIGN_TYPE.CENTER)
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F103, CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_MSG.DATA.CHAR_ROW));
|
||
else
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_MSG.DATA.CHAR_ROW));
|
||
|
||
bExist = true;
|
||
}
|
||
// 영수증 메시지 중복 허용 여부(1:미허용, 1:중복)
|
||
if (bExist == true && m_cPosStatus.Mst.BillMsgDupPrmtYn == "0") break;
|
||
}
|
||
|
||
if (bExist == true) AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
|
||
|
||
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;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 설문참여 메시지 출력데이터 생성
|
||
/// </summary>
|
||
/// <param name="sPrtID">0:본영수증, 9:기타영수증</param>
|
||
public bool SetVotePrintData(string sPrtID)
|
||
{
|
||
string sQuery = "";
|
||
try
|
||
{
|
||
if (m_dtMstVoteMsg == null)
|
||
{
|
||
sQuery += " SELECT * FROM POSMST..MST_SALESORG_SURVY_MSG ";
|
||
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
|
||
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
|
||
sQuery += " AND '" + m_cPosStatus.Base.SaleDate + "' BETWEEN APPLY_START_DT AND APPLY_FNSH_DT ";
|
||
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'";
|
||
sQuery += " ORDER BY APPLY_START_DT, PRT_SEQ";
|
||
|
||
m_dtMstVoteMsg = m_cMstService.Select(new string[] { sQuery });
|
||
}
|
||
if (m_dtMstVoteMsg == null || m_dtMstVoteMsg.Rows.Count == 0) return false;
|
||
|
||
bool bExist = false, bVoteNoPrint = false;
|
||
for (int i = 0; i < m_dtMstVoteMsg.Rows.Count; i++)
|
||
{
|
||
DataRow dr = m_dtMstVoteMsg.Rows[i];
|
||
|
||
if (CmUtil.GetDataRowStr(dr, PosMst.MST_SALESORG_SURVY_MSG.DATA.APLY_START_DT) == m_cPosStatus.Base.SaleDate
|
||
&& CmUtil.IntParse(CmUtil.GetDataRowStr(dr, PosMst.MST_SALESORG_SURVY_MSG.DATA.APPLY_START_HOUR)) > CmUtil.IntParse(DateTime.Now.ToString("HHmmss"))) continue;
|
||
|
||
string sDow = CmUtil.GetDataRowStr(dr, PosMst.MST_SALESORG_SURVY_MSG.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;
|
||
}
|
||
|
||
// 크기구분(0:보통, 1:굵게, 2:가로확대, 3:세로확대, 4:전체확대)
|
||
string sPrtHead = CmUtil.GetPrtMstToPrtHeadConst(CmUtil.GetDataRowStr(dr, PosMst.MST_SALESORG_SURVY_MSG.DATA.PRT_EXPAND_TYPE)
|
||
, CmUtil.GetDataRowStr(dr, PosMst.MST_SALESORG_SURVY_MSG.DATA.BOLD_YN));
|
||
|
||
string sPrtData = CmUtil.GetDataRowStr(dr, PosMst.MST_SALESORG_SURVY_MSG.DATA.MSG_VAL);
|
||
if (sPrtData.StartsWith("참여코드") == true || sPrtData.StartsWith("참여 코드") == true
|
||
|| sPrtData.StartsWith("설문참여코드") == true || sPrtData.StartsWith("설문 참여 코드") == true)
|
||
{
|
||
sPrtData += GetVoteNoPrintData(); // 설문 참여코드 생성
|
||
bVoteNoPrint = true;
|
||
}
|
||
if (i >= m_dtMstVoteMsg.Rows.Count - 1 && bVoteNoPrint == false)
|
||
{
|
||
if (sPrtData.Length <= 20)
|
||
{
|
||
sPrtData += GetVoteNoPrintData(); // 마지막 행에 설문 참여코드 생성
|
||
}
|
||
else
|
||
{
|
||
if (CmUtil.GetDataRowStr(dr, PosMst.MST_SALESORG_SURVY_MSG.DATA.ALIGN_TYPE) == PosConst.PRT_ALIGN_TYPE.RIGHT)
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F102, sPrtData);
|
||
else if (CmUtil.GetDataRowStr(dr, PosMst.MST_SALESORG_SURVY_MSG.DATA.ALIGN_TYPE) == PosConst.PRT_ALIGN_TYPE.CENTER)
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F103, sPrtData);
|
||
else
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, sPrtData);
|
||
|
||
sPrtData = GetVoteNoPrintData(); // 마지막 행에 설문 참여코드 생성
|
||
}
|
||
}
|
||
|
||
if (CmUtil.GetDataRowStr(dr, PosMst.MST_SALESORG_SURVY_MSG.DATA.ALIGN_TYPE) == PosConst.PRT_ALIGN_TYPE.RIGHT)
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F102, sPrtData);
|
||
else if (CmUtil.GetDataRowStr(dr, PosMst.MST_SALESORG_SURVY_MSG.DATA.ALIGN_TYPE) == PosConst.PRT_ALIGN_TYPE.CENTER)
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F103, sPrtData);
|
||
else
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, sPrtData);
|
||
|
||
bExist = true;
|
||
}
|
||
|
||
if (bExist == true) AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
|
||
|
||
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;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 설문참여코드 생성
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public string GetVoteNoPrintData()
|
||
{
|
||
string sVoteNo = "";
|
||
try
|
||
{
|
||
string sStoreCd = m_cPosStatus.Base.StoreNo.PadLeft(7, '0').ToUpper(); // 점포코드 7자리로 패딩(대문자로변환)
|
||
string sBillNo = m_cPosStatus.Base.TradeNo.Substring(m_cPosStatus.Base.TradeNo.Length - 3, 3); // 영수증번호 끝 3자리
|
||
string sPosNo = m_cPosStatus.Base.PosNo.Substring(m_cPosStatus.Base.PosNo.Length - 1, 1); // POS번호 끝 1자리
|
||
string sSaleDate = m_cPosStatus.Base.SaleDate;
|
||
|
||
// 체크 디지트 계산( 각 자리 별 값 곱함[234569812678957]
|
||
int nCheckDigit =
|
||
(CmUtil.IntParse(sSaleDate.Substring(7, 1)) * 2) + // 1. 구매일자 2번째 자리 수
|
||
(CmUtil.IntParse(sSaleDate.Substring(6, 1)) * 3) + // 2. 구매일자 1번째 자리 수
|
||
((CmUtil.IntParse(sBillNo.Substring(2, 1)) + 3) * 4) + // 3. 영수증 번호 3번째 자리 수 + 3 : 16진법으로
|
||
(GetCharToInt(sStoreCd.Substring(4, 1)) * 5) + // 4. 점포코드 5번째 자리 수
|
||
((CmUtil.IntParse(sBillNo.Substring(0, 1)) + 6) * 6) + // 5. 영수증 번호 1번째 자리 수 + 6 : 16진법으로
|
||
(GetCharToInt(sStoreCd.Substring(5, 1)) * 9) + // 6. 점포코드 6번째 자리 수
|
||
(CmUtil.IntParse(sSaleDate.Substring(2, 1)) * 8) + // 7. 구매년도 1번째 자리 수
|
||
(CmUtil.IntParse(sSaleDate.Substring(3, 1)) * 1) + // 8. 구매년도 2번째 자리 수
|
||
(GetCharToInt(sStoreCd.Substring(3, 1)) * 2) + // 9. 점포코드 4번째 자리 수
|
||
((CmUtil.IntParse(sBillNo.Substring(1, 1)) + 1) * 6) + //10. 영수증 번호 2번째 자리 수 + 1 : 16진법으로
|
||
(GetCharToInt(sStoreCd.Substring(6, 1)) * 7) + //11. 점포코드 7번째 자리 수
|
||
(GetCharToInt(sStoreCd.Substring(2, 1)) * 8) + //13. 점포코드 3번째 자리 수
|
||
((CmUtil.IntParse(sPosNo) + 4) * 9) + //14. 포스 번호 + 4 : 16진법으로
|
||
(CmUtil.IntParse(sSaleDate.Substring(5, 1)) * 5) + //15. 구매월 2번째 자리 수
|
||
(CmUtil.IntParse(sSaleDate.Substring(4, 1)) * 7); //17. 구매월 1번째 자리 수
|
||
|
||
nCheckDigit = nCheckDigit % 10; // 합계를 10로 나누어 나머지를 구한다.
|
||
nCheckDigit = 15 - nCheckDigit; // 15에서 나머지 값을 뺀 값을 최종 Check Digit로 정한다.
|
||
|
||
sVoteNo = sSaleDate.Substring(7, 1) + // 1. 구매일자 2번째 자리 수
|
||
sSaleDate.Substring(6, 1) + // 2. 구매일자 1번째 자리 수
|
||
GetIntToHex(CmUtil.IntParse(sBillNo.Substring(2, 1)) + 3) + // 3. 영수증 번호 3번째 자리 수 + 3 : 16진법으로
|
||
sStoreCd.Substring(4, 1) + '-' + // 4. 점포코드 5번째 자리 수
|
||
GetIntToHex(CmUtil.IntParse(sBillNo.Substring(0, 1)) + 6) + // 5. 영수증 번호 1번째 자리 수 + 6 : 16진법으로
|
||
sStoreCd.Substring(5, 1) + // 6. 점포코드 6번째 자리 수
|
||
sSaleDate.Substring(2, 1) + // 7. 구매년도 1번째 자리 수
|
||
sSaleDate.Substring(3, 1) + '-' + // 8. 구매년도 2번째 자리 수
|
||
sStoreCd.Substring(3, 1) + // 9. 점포코드 4번째 자리 수
|
||
GetIntToHex(CmUtil.IntParse(sBillNo.Substring(1, 1)) + 1) + //10. 영수증 번호 2번째 자리 수 + 1 : 16진법으로
|
||
sStoreCd.Substring(6, 1) + //11. 점포코드 7번째 자리 수
|
||
GetIntToHex(nCheckDigit) + '-' + //12. CHECK DIGIT : 16진법으로
|
||
sStoreCd.Substring(2, 1) + //13. 점포코드 3번째 자리 수
|
||
GetIntToHex(CmUtil.IntParse(sPosNo) + 4) + //14. 포스 번호 + 4 : 16진법으로
|
||
sSaleDate.Substring(5, 1) + //15. 구매월 2번째 자리 수
|
||
//영수증설문조사 오류 수정(20170508-조충연K)
|
||
//m_cPosStatus.Base.BrandCd.Substring(0, 1) + //16. 회사코드 (P: PC, B: BRK, S:SL)
|
||
m_cPosStatus.Base.CmpCd.Substring(0, 1) + //16. 회사코드 (P: PC, B: BRK, S:SL)
|
||
sSaleDate.Substring(4, 1); //17. 구매월 1번째 자리 수
|
||
}
|
||
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 sVoteNo;
|
||
}
|
||
|
||
//#해피앱 추후적립 start, sskim
|
||
/// <summary>
|
||
/// 해피앱 추후적립 안내 메세지 출력
|
||
/// </summary>
|
||
/// <param name="sPrtID">0:본영수증, 9:기타영수증</param>
|
||
public bool SetHpAppAfterSavePrint(string sPrtID)
|
||
{
|
||
try
|
||
{
|
||
if (m_cTrnStatus.Head.AftSavePoint > 0)
|
||
{
|
||
string sPrtHead = CmUtil.GetPrtMstToPrtHeadConst("0", "0");
|
||
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, "★ 해피앱 영수증적립 서비스 안내");
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, " 해피앱에서 영수증으로 포인트 적립");
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, " 받으세요~");
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, " ");
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, "* 적립방법");
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, " 해피앱 -> 포인트 거래내역(My포인트) ->");
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, " 바코드 스캔 배너 -> 영수증 하단 바코드");
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, " 스캔 -> 포인트 적립");
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, " ");
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, "(거래시간 기준 24시간내, 매장당 1일 1회)");
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
|
||
}
|
||
|
||
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;
|
||
}
|
||
//#해피앱 추후적립 end, sskim
|
||
|
||
//grayber@20171214 캠페인 리펀드 쿠폰 start
|
||
/// <summary>
|
||
/// 캠페인 리펀드 메시지 출력 ( 상단부 Hard Coding )
|
||
/// </summary>
|
||
/// <param name="sPrtID"></param>
|
||
/// <returns></returns>
|
||
public bool SetCpiRefundPrint(string sPrtID)
|
||
{
|
||
bool bRes = false;
|
||
|
||
try
|
||
{
|
||
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND) return bRes;
|
||
|
||
// 영수 캠페인 출력 데이터 설정
|
||
ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
||
ArrayList alPrtBuf = cCampaingMain.GetRefundCampaignPrintData(new string[] { });
|
||
|
||
// 캠페인 출력 데이터가 없으면 return;
|
||
if (alPrtBuf == null || alPrtBuf.Count <= 0) return bRes;
|
||
|
||
// 메시지 처리 (HARD Coding)
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, "★★★★★★★★★★★★★★★★★★★★★");
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " ");
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BLD, PosConst.PRT_FMT.F101, " * 쿠폰금액 : " + CmUtil.MathRounds(CmUtil.DoubleDivision(m_cTrnStatus.Head.NetSaleAmt, 2), PosConst.MATH_ROUND.TRANCATE, -3).ToString("#,##0") + "원");
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BLD, PosConst.PRT_FMT.F101, " * 점 포 명 : " + m_cPosStatus.Mst.StorName);
|
||
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " ");
|
||
|
||
foreach (string sPrtData in alPrtBuf)
|
||
{
|
||
AddPrintData(sPrtID, sPrtData);
|
||
}
|
||
|
||
bRes = 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 bRes;
|
||
}
|
||
//grayber@20171214 캠페인 리펀드 쿠폰 end
|
||
|
||
|
||
/// <summary>
|
||
/// 코드 숫자 변환(설문조사)
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public int GetCharToInt(string sStr)
|
||
{
|
||
int nRet = 0;
|
||
try
|
||
{
|
||
if (sStr == "") return nRet;
|
||
|
||
if (CmUtil.IsNumber(sStr.Substring(0, 1)) == true)
|
||
{
|
||
nRet = CmUtil.IntParse(sStr.Substring(0, 1));
|
||
}
|
||
else
|
||
{
|
||
nRet = Convert.ToChar(sStr.Substring(0, 1));
|
||
nRet -= 55;
|
||
}
|
||
}
|
||
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 nRet;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 숫자 HEX 변환(설문조사)
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public string GetIntToHex(int nNum)
|
||
{
|
||
string sRet = "";
|
||
try
|
||
{
|
||
sRet = string.Format("{0:X}", nNum);
|
||
}
|
||
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;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증 유형 마스터 로딩 처리
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public bool LoadBillTypeMaster()
|
||
{
|
||
string sQuery = "";
|
||
try
|
||
{
|
||
if (m_dtMstBillType == null)
|
||
{
|
||
sQuery += " SELECT * FROM POSMST..MST_BILL_TYPE ";
|
||
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
|
||
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
|
||
sQuery += " AND BILL_TYPE_GRP_CD = '" + CmUtil.GetDataRowStr(PosMstManager.GetMstPos(), PosMst.MST_POS.DATA.BILL_TYPEGRP) + "'";
|
||
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'";
|
||
sQuery += " ORDER BY 1, 2, 3, 4, 5";
|
||
|
||
m_dtMstBillType = m_cMstService.Select(new string[] { sQuery });
|
||
}
|
||
if (m_dtMstBillType == null || m_dtMstBillType.Rows.Count == 0) 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;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증유형마스터로 상/하단 출력데이터 생성
|
||
/// </summary>
|
||
/// <param name="sPrtID">0:본영수증, 9:기타영수증</param>
|
||
/// <param name="sBillTypeDiv">BILL_TYPE_DIV</param>
|
||
public bool SetBillTypeTopBtmPrintData(string sPrtID, string sBillTypeDiv)
|
||
{
|
||
try
|
||
{
|
||
// 영수증 유형 마스터 로딩 처리
|
||
if (LoadBillTypeMaster() == false) return false;
|
||
|
||
string sCashierName = m_cPosStatus.Base.CashierName; // 판매원명
|
||
if (m_cTrnStatus.Head.CashierId != m_cPosStatus.Base.CashierNo) sCashierName = GetCashierName(m_cTrnStatus.Head.CashierId);
|
||
|
||
// 2019-04-16 - 1997fx11 : 영수증 캐셔명 인쇄
|
||
if (string.IsNullOrEmpty(m_cTrnStatus.Head.CashierId)) { sCashierName = "KIOSK"; }
|
||
|
||
string sOrderName = m_cTrnStatus.Head.OrderPicNm; // 담당자명
|
||
if (m_cTrnStatus.Head.OrderPicNo.Trim() != "" && m_cTrnStatus.Head.OrderPicNm.Trim() == "") sOrderName = GetCashierName(m_cTrnStatus.Head.OrderPicNo.Trim());
|
||
|
||
foreach (DataRow dr in m_dtMstBillType.Rows)
|
||
{
|
||
if (CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_TYPE.DATA.BILL_TYPE_DIV) != sBillTypeDiv) continue;
|
||
|
||
string sPrtData = CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_TYPE.DATA.BILL_TYPE_TAG);
|
||
|
||
//점포코드
|
||
sPrtData = sPrtData.Replace("<STORECODE>", m_cPosStatus.Base.StoreNo);
|
||
//시스템일자
|
||
sPrtData = sPrtData.Replace("<SYSTEMDATE>", m_cPosStatus.Global.DateToCulture(m_cTrnStatus.Head.SysYmd));
|
||
//시스템시간
|
||
sPrtData = sPrtData.Replace("<SYSTEMTIME>", CmUtil.StrToTime(m_cTrnStatus.Head.PayHms));
|
||
//영업일자
|
||
sPrtData = sPrtData.Replace("<SALEDATE>", m_cPosStatus.Global.DateToCulture(m_cTrnStatus.Head.SaleDate));
|
||
//포스번호
|
||
sPrtData = sPrtData.Replace("<POSNO>", m_cTrnStatus.Head.PosNo);
|
||
//판매원번호
|
||
sPrtData = sPrtData.Replace("<CASHIERNO>", m_cTrnStatus.Head.CashierId);
|
||
//판매원명
|
||
sPrtData = sPrtData.Replace("<CASHIERNAME>", sCashierName); // 2019-04-16 - 1997fx11 : 영수증 캐셔명 인쇄
|
||
//층코드
|
||
sPrtData = sPrtData.Replace("<FLOORNO>", m_cTrnStatus.Head.FloorCd);
|
||
//층명
|
||
sPrtData = sPrtData.Replace("<FLOORNM>", m_cTrnStatus.Head.FloorNm);
|
||
//테이블코드
|
||
sPrtData = sPrtData.Replace("<TABLENO>", m_cTrnStatus.Head.TableNo);
|
||
//테이블명
|
||
sPrtData = sPrtData.Replace("<TABLENM>", m_cTrnStatus.Head.TableNm);
|
||
//객층
|
||
sPrtData = sPrtData.Replace("<CUSTAGE>", m_cTrnStatus.Head.CustFloor);
|
||
//고객수
|
||
sPrtData = sPrtData.Replace("<CUSTCOUNT>", m_cTrnStatus.Head.CustCnt.ToString());
|
||
//거래번호
|
||
sPrtData = sPrtData.Replace("<RECEIPTNO>", m_cTrnStatus.Head.TradeNo);
|
||
//주문자 사번
|
||
sPrtData = sPrtData.Replace("<ORDERNO>", m_cTrnStatus.Head.OrderPicNo);
|
||
//주문자 사명
|
||
sPrtData = sPrtData.Replace("<ORDERNAME>", sOrderName);
|
||
//주문시간
|
||
sPrtData = sPrtData.Replace("<ORDERTIME>", CmUtil.StrToTime(m_cTrnStatus.Head.OrderHms));
|
||
//주문번호
|
||
sPrtData = sPrtData.Replace("<ORDERNO>", m_cTrnStatus.Head.OrderNo);
|
||
|
||
// 크기구분(0:보통, 1:굵게, 2:가로확대, 3:세로확대, 4:전체확대)
|
||
string sPrtHead = CmUtil.GetPrtMstToPrtHeadConst(CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_MSG.DATA.EXPAND_CHAR), CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_MSG.DATA.BOLD_YN));
|
||
|
||
string sSortDiv = CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_TYPE.DATA.SORT_DIV);
|
||
if (sSortDiv == PosConst.PRT_ALIGN_TYPE.RIGHT)
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F102, sPrtData);
|
||
else if (sSortDiv == PosConst.PRT_ALIGN_TYPE.CENTER)
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F103, sPrtData);
|
||
else
|
||
AddPrintData(sPrtID, sPrtHead, PosConst.PRT_FMT.F101, sPrtData);
|
||
}
|
||
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;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증유형 결제정보 출력데이터 생성
|
||
/// </summary>
|
||
/// <param name="sPrtID"></param>
|
||
/// <param name="sTypeDiv"></param>
|
||
/// <param name="alPrtTagData"></param>
|
||
public void SetBillTypePaymentPrintData(string sPrtID, string sTypeDiv, ArrayList alPrtTagData)
|
||
{
|
||
string sPrtData = "", sData1 = "", sData2 = "";
|
||
|
||
try
|
||
{
|
||
// 영수증 유형 마스터 로딩 처리
|
||
if (LoadBillTypeMaster() == false) return;
|
||
|
||
foreach (DataRow dr in m_dtMstBillType.Rows)
|
||
{
|
||
if (CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_TYPE.DATA.BILL_TYPE_DIV) != sTypeDiv) continue;
|
||
|
||
// 크기구분(0:보통, 1:굵게, 2:가로확대, 3:세로확대, 4:전체확대)
|
||
string sPrtHead = CmUtil.GetPrtMstToPrtHeadConst(CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_TYPE.DATA.SIZE_DIV), CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_TYPE.DATA.BOLD_YN));
|
||
// 정렬구분
|
||
string sSortDiv = CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_TYPE.DATA.SORT_DIV);
|
||
// 태그유형
|
||
string sTagData = CmUtil.GetDataRowStr(dr, PosMst.MST_BILL_TYPE.DATA.BILL_TYPE_TAG);
|
||
|
||
sData1 = ""; sData2 = "";
|
||
bool bExist = false;
|
||
foreach (string[] aTagData in alPrtTagData)
|
||
{
|
||
if (sPrtData.IndexOf(aTagData[0]) >= 0) //태그유형
|
||
{
|
||
sData1 = aTagData[1];
|
||
sData2 = aTagData[2];
|
||
bExist = true;
|
||
}
|
||
}
|
||
if (bExist == true)
|
||
{
|
||
if (sData2 == "") continue;
|
||
}
|
||
else sData2 = sTagData;
|
||
|
||
SetBillTypePaymentPrintData(sPrtID, sPrtHead, sSortDiv, sData1.Trim() + (sData1.Length == 0 ? "" : " "), sData2.Trim());
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
||
}
|
||
}
|
||
public void SetBillTypePaymentPrintData(string sPrtID, string sPrtHead, string sSortDiv, string sData1, string sData2)
|
||
{
|
||
string sPrtData = "";
|
||
try
|
||
{
|
||
int nFullLen = 42;
|
||
if (sPrtHead == PosConst.PRT_HDR.PRT_HOR || sPrtHead == PosConst.PRT_HDR.PRT_BIG) nFullLen = 42 / 2; //가로확대, 두배확대
|
||
int nHalfLen = nFullLen / 2;
|
||
|
||
switch (sSortDiv)
|
||
{
|
||
case PosConst.PRT_ALIGN_TYPE.RIGHT: //오른쪽
|
||
if (UsUtil.LenH(sData1.Trim()) + UsUtil.LenH(sData2.Trim()) >= nFullLen)
|
||
{
|
||
sPrtData = sData1.Trim() + sData2.Trim();
|
||
}
|
||
else
|
||
{
|
||
sPrtData = sData1.Trim() + CmUtil.LPadH(sData2, nFullLen - UsUtil.LenH(sData1.Trim()));
|
||
}
|
||
AddPrintData(sPrtID, sPrtHead, UsUtil.LPadH(sPrtData.TrimStart(), nFullLen));
|
||
break;
|
||
case PosConst.PRT_ALIGN_TYPE.CENTER: //가운데
|
||
sPrtData = sData1.Trim() + sData2.Trim();
|
||
if (UsUtil.LenH(sPrtData) < nFullLen)
|
||
AddPrintData(sPrtID, sPrtHead, UsUtil.LPadH("", nHalfLen - (UsUtil.LenH(sPrtData) / 2)) + UsUtil.RPadH(sPrtData, nFullLen - (nHalfLen - (UsUtil.LenH(sPrtData) / 2))));
|
||
else
|
||
AddPrintData(sPrtID, sPrtHead, UsUtil.LPadH(sPrtData.Trim(), nFullLen));
|
||
break;
|
||
default: //왼쪽
|
||
sPrtData = sData1.Trim() + sData2.Trim();
|
||
AddPrintData(sPrtID, sPrtHead, UsUtil.RPadH(sPrtData.TrimEnd(), nFullLen));
|
||
break;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증 출력데이터 생성
|
||
/// </summary>
|
||
/// <param name="sPrtID">0:본영수증, 9:기타영수증</param>
|
||
/// <param name="sPrtHead">출력형태(PosConst.PRT_HDR)</param>
|
||
/// <param name="sPrtData"></param>
|
||
public void AddPrintData(string sPrtID, string sPrtHead, string sPrtData)
|
||
{
|
||
try
|
||
{
|
||
sPrtData = ((sPrtData.Length == 0) ? " " : sPrtData);
|
||
|
||
switch (sPrtID)
|
||
{
|
||
case PosConst.PRT_ITEM.ETC:
|
||
case PosConst.PRT_ITEM.ETC_TEMP:
|
||
m_aEtcPrintBuf.Add(CmUtil.RPadH(sPrtID, 1) + sPrtHead + sPrtData);
|
||
break;
|
||
default:
|
||
m_aRecPrintBuf.Add(CmUtil.RPadH(sPrtID, 1) + sPrtHead + sPrtData);
|
||
break;
|
||
}
|
||
m_aPrintBuf.Add(CmUtil.RPadH(sPrtID, 1) + sPrtHead + sPrtData);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
||
}
|
||
}
|
||
|
||
public void AddPrintData(string sPrtID, string sPrtData)
|
||
{
|
||
try
|
||
{
|
||
sPrtData = ((sPrtData.Length == 0) ? " " : sPrtData);
|
||
|
||
switch (sPrtID)
|
||
{
|
||
case PosConst.PRT_ITEM.ETC:
|
||
m_aEtcPrintBuf.Add(CmUtil.RPadH(sPrtID, 1) + sPrtData);
|
||
break;
|
||
default:
|
||
m_aRecPrintBuf.Add(CmUtil.RPadH(sPrtID, 1) + sPrtData);
|
||
break;
|
||
}
|
||
m_aPrintBuf.Add(CmUtil.RPadH(sPrtID, 1) + sPrtData);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증 출력데이터 생성
|
||
/// </summary>
|
||
/// <param name="sPrtID">0:본영수증, 9:기타영수증</param>
|
||
/// <param name="sPrtHead">출력형태(PosConst.PRT_HDR)</param>
|
||
/// <param name="sPrtFmt">출력포멧(PosConst.PRT_FMT)</param>
|
||
/// <param name="sData"></param>
|
||
public void AddPrintData(string sPrtID, string sPrtHead, string sPrtFmt, string sData)
|
||
{
|
||
try
|
||
{
|
||
string sPrtData = "";
|
||
if (sPrtFmt == PosConst.PRT_FMT.F100 && (sData == "-" || sData == "=")) // 선귿기
|
||
{
|
||
//#20170822 영수증 선귿기 실선('─') -> 점선('-')으로 변경 start
|
||
//기존
|
||
/*
|
||
if (sPrtHead == PosConst.PRT_HDR.PRT_BLD)
|
||
for (int i = 1; i <= 21; i++) sPrtData += "━";
|
||
else
|
||
for (int i = 1; i <= 21; i++) sPrtData += "─";
|
||
*/
|
||
//변경
|
||
if (sPrtHead == PosConst.PRT_HDR.PRT_BLD)
|
||
for (int i = 1; i <= 42; i++) sPrtData += "-";
|
||
else
|
||
for (int i = 1; i <= 42; i++) sPrtData += "-";
|
||
//#20170822 영수증 선귿기 실선('─') -> 점선('-')으로 변경 end
|
||
}
|
||
else if (sPrtFmt == PosConst.PRT_FMT.F100) // 선귿기
|
||
{
|
||
for (int i = 1; i <= 42; i++) sPrtData += sData;
|
||
}
|
||
else if (sPrtFmt == PosConst.PRT_FMT.F101) // 왼쪽정렬
|
||
{
|
||
sPrtData = sData;
|
||
}
|
||
else if (sPrtFmt == PosConst.PRT_FMT.F102) // 오른쪽 정렬
|
||
{
|
||
sPrtData = CmUtil.LPadH(sData, 42);
|
||
}
|
||
else if (sPrtFmt == PosConst.PRT_FMT.F103) // 중앙정렬
|
||
{
|
||
if (sPrtHead == PosConst.PRT_HDR.PRT_HOR || sPrtHead == PosConst.PRT_HDR.PRT_BIG || sPrtHead == PosConst.PRT_HDR.PRT_HRB || sPrtHead == PosConst.PRT_HDR.PRT_BGB)
|
||
{
|
||
if (CmUtil.LenH(sData) <= 21) sPrtData = CmUtil.LPadH("", 10 - (CmUtil.LenH(sData) / 2)) + sData;
|
||
}
|
||
else
|
||
{
|
||
if (CmUtil.LenH(sData) <= 42) sPrtData = CmUtil.LPadH("", 21 - (CmUtil.LenH(sData) / 2)) + sData;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
sPrtData = sData;
|
||
}
|
||
AddPrintData(sPrtID, sPrtHead, sPrtData);
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증 출력데이터 생성
|
||
/// </summary>
|
||
/// <param name="sPrtID">0:본영수증, 9:기타영수증</param>
|
||
/// <param name="sPrtHead">출력형태(PosConst.PRT_HDR)</param>
|
||
/// <param name="sPrtFmt">출력포멧(PosConst.PRT_FMT)</param>
|
||
/// <param name="sData1"></param>
|
||
public void AddPrintData(string sPrtID, string sPrtHead, string sPrtFmt, string sData1, string sData2)
|
||
{
|
||
string sPrtData = "";
|
||
try
|
||
{
|
||
if (sPrtFmt == PosConst.PRT_FMT.F200) // 명(31)+금액(11)
|
||
{
|
||
if (sPrtHead == PosConst.PRT_HDR.PRT_HOR || sPrtHead == PosConst.PRT_HDR.PRT_BIG)
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 10) + CmUtil.LPadH(sData2, 11);
|
||
}
|
||
else
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 31) + CmUtil.LPadH(sData2, 11);
|
||
}
|
||
|
||
}
|
||
if (sPrtFmt == PosConst.PRT_FMT.F201) // 명(31)+금액(11)
|
||
{
|
||
if (sPrtHead == PosConst.PRT_HDR.PRT_HOR || sPrtHead == PosConst.PRT_HDR.PRT_BIG)
|
||
{
|
||
sPrtData = CmUtil.LPadH(sData1, 10) + CmUtil.LPadH(sData2, 11);
|
||
}
|
||
else
|
||
{
|
||
sPrtData = CmUtil.LPadH(sData1, 31) + CmUtil.LPadH(sData2, 11);
|
||
}
|
||
|
||
}
|
||
else if (sPrtFmt == PosConst.PRT_FMT.F202) //명(20)+데이터(22)
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 20) + CmUtil.LPadH(sData2, 22);
|
||
}
|
||
else if (sPrtFmt == PosConst.PRT_FMT.F203) //명(16)+데이터(26)
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 11) + CmUtil.RPadH(sData2, 31);
|
||
}
|
||
else if (sPrtFmt == PosConst.PRT_FMT.F204) //명(20)+데이터(22)
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 20) + " " + CmUtil.RPadH(sData2, 21);
|
||
}
|
||
else if (sPrtFmt == PosConst.PRT_FMT.F205) // 명(31-우정렬)+금액(11)
|
||
{
|
||
sPrtData = CmUtil.LPadH(sData1, 31) + CmUtil.LPadH(sData2, 11);
|
||
}
|
||
else if (sPrtFmt == PosConst.PRT_FMT.F206) // 명(20-우정렬)+금액(12)
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 20) + CmUtil.LPadH(sData2, 12);
|
||
}
|
||
//#20171227, 예약증 양식 출력 Start
|
||
else if (sPrtFmt == PosConst.PRT_FMT.F207) // 명(16-우정렬)+데이터(26)
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 16) + CmUtil.RPadH(sData2, 26);
|
||
}
|
||
//#20171227, 예약증 양식 출력 End
|
||
|
||
AddPrintData(sPrtID, sPrtHead, sPrtData);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증 출력데이터 생성
|
||
/// </summary>
|
||
/// <param name="sPrtID">0:본영수증, 9:기타영수증</param>
|
||
/// <param name="sPrtHead">출력형태(PosConst.PRT_HDR)</param>
|
||
/// <param name="sPrtFmt">출력포멧(PosConst.PRT_FMT)</param>
|
||
/// <param name="sData1"></param>
|
||
public void AddPrintData(string sPrtID, string sPrtHead, string sPrtFmt, string sData1, string sData2, string sData3)
|
||
{
|
||
string sPrtData = "";
|
||
try
|
||
{
|
||
if (sPrtFmt == PosConst.PRT_FMT.F300) // 3개=>명LPAD(26)+수량(5)+금액(11)
|
||
{
|
||
sPrtData = CmUtil.LPadH(sData1, 26) + CmUtil.LPadH(sData2, 5) + CmUtil.LPadH(sData3, 11);
|
||
}
|
||
if (sPrtFmt == PosConst.PRT_FMT.F301) // 3개=>명RPAD(26)+수량(5)+금액(11)
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 26) + CmUtil.LPadH(sData2, 5) + CmUtil.LPadH(sData3, 11);
|
||
}
|
||
if (sPrtFmt == PosConst.PRT_FMT.F302) // 3개(카드/승인번호용)=>명RPAD(17)+명LPAD(9)+명LPAD(16)
|
||
{
|
||
// 카드/승인번호
|
||
//Rhee, #2017/08/28 중국 카드번호 프린트 마킹예외처리 Start
|
||
// 기존
|
||
////sPrtData = CmUtil.RPadH(sData1, 17) + CmUtil.LPadH(sData2, 9) + CmUtil.LPadH(sData3, 16);
|
||
// 변경
|
||
// 마킹된 카드번호 16자리 출력(1234********1234), 1라인은 42Byte
|
||
if (m_cPosStatus.Base.CmpCd.ToUpper().Equals("PCCN"))
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 17) + CmUtil.LPadH(sData2, 16) + CmUtil.LPadH(sData3, 9);
|
||
}
|
||
else
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 17) + CmUtil.LPadH(sData2, 9) + CmUtil.LPadH(sData3, 16);
|
||
}
|
||
|
||
//Rhee, #2017/08/28 중국 카드번호 프린트 마킹예외처리 End
|
||
}
|
||
if (sPrtFmt == PosConst.PRT_FMT.F303) // 3개(카드/승인번호용)=>명RPAD(17)+명LPAD(9)+명LPAD(16) 2 // 현금반품 내역 추가 20170830 goblin6
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 23) + CmUtil.RPadH(sData2, 8) + CmUtil.LPadH(sData3, 11);
|
||
}
|
||
//#20171227, 예약증 양식 출력 Start
|
||
if (sPrtFmt == PosConst.PRT_FMT.F304) // 3개=>명RPAD(16)+데이터RPAD(9)+데이터RPAD(17)
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 16) + CmUtil.RPadH(sData2, 9) + CmUtil.RPadH(sData3, 17);
|
||
}
|
||
//#20171227, 예약증 양식 출력 End
|
||
else if (sPrtFmt == PosConst.PRT_FMT.F103) // 중앙정렬
|
||
{
|
||
if (sPrtHead == PosConst.PRT_HDR.PRT_HOR || sPrtHead == PosConst.PRT_HDR.PRT_BIG)
|
||
{
|
||
if (CmUtil.LenH(sData1) <= 21) sPrtData = CmUtil.LPadH("", 10 - (CmUtil.LenH(sData1) / 2)) + sData1;
|
||
}
|
||
else
|
||
{
|
||
if (CmUtil.LenH(sData1) <= 42) sPrtData = CmUtil.LPadH("", 21 - (CmUtil.LenH(sData1) / 2)) + sData1;
|
||
}
|
||
}
|
||
|
||
AddPrintData(sPrtID, sPrtHead, sPrtData);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증 출력데이터 생성
|
||
/// </summary>
|
||
/// <param name="sPrtID">0:본영수증, 9:기타영수증</param>
|
||
/// <param name="sPrtHead">출력형태(PosConst.PRT_HDR)</param>
|
||
/// <param name="sPrtFmt">출력포멧(PosConst.PRT_FMT)</param>
|
||
/// <param name="sData1"></param>
|
||
public void AddPrintData(string sPrtID, string sPrtHead, string sPrtFmt, string sData1, string sData2, string sData3, string sData4)
|
||
{
|
||
string sPrtData = "";
|
||
try
|
||
{
|
||
if (sPrtFmt == PosConst.PRT_FMT.F401) // 명(16)+수량(5)+할인(10)+금액(11)
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 16) + CmUtil.LPadH(sData2, 5) + CmUtil.LPadH(sData3, 10) + CmUtil.LPadH(sData4, 11);
|
||
}
|
||
if (sPrtFmt == PosConst.PRT_FMT.F402) // 명(16)+수량(5)+할인(10)+금액(11)
|
||
{
|
||
sPrtData = CmUtil.LPadH(sData1, 16) + CmUtil.LPadH(sData2, 5) + CmUtil.LPadH(sData3, 10) + CmUtil.LPadH(sData4, 11);
|
||
}
|
||
if (sPrtFmt == PosConst.PRT_FMT.F403) // 명(우)(2)+수량(19)+할인(10)+금액(11)
|
||
{
|
||
sPrtData = CmUtil.LPadH(sData1, 2) + CmUtil.LPadH(sData2, 19) + CmUtil.LPadH(sData3, 10) + CmUtil.LPadH(sData4, 11);
|
||
}
|
||
if (sPrtFmt == PosConst.PRT_FMT.F404) // 명(우)(12)+수량(7)+명(우)(12)+금액(11)
|
||
{
|
||
sPrtData = CmUtil.LPadH(sData1, 12) + CmUtil.LPadH(sData2, 7) + CmUtil.LPadH(sData3, 12) + CmUtil.LPadH(sData4, 11);
|
||
}
|
||
if (sPrtFmt == PosConst.PRT_FMT.F405) // 명(좌)(10)+명(좌)(15)+명(좌)(10)+명(좌)(7)
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 10) + CmUtil.RPadH(sData2, 15) + CmUtil.RPadH(sData3, 10) + CmUtil.RPadH(sData4, 7);
|
||
}
|
||
//#17142 [해피오더]POS로그인 시 영수증프린터로 장부재고 자동 출력 start
|
||
if (sPrtFmt == PosConst.PRT_FMT.F406) // 명(좌)(14)+명(좌)(10)+명(좌)(14)+명(좌)(4)
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 14) + CmUtil.RPadH(sData2, 10) + CmUtil.RPadH(sData3, 14) + CmUtil.LPadH(sData4, 4);
|
||
}
|
||
//#17142 [해피오더]POS로그인 시 영수증프린터로 장부재고 자동 출력 end
|
||
|
||
AddPrintData(sPrtID, sPrtHead, sPrtData);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 영수증 출력데이터 생성
|
||
/// </summary>
|
||
/// <param name="sPrtID">0:본영수증, 9:기타영수증</param>
|
||
/// <param name="sPrtHead">출력형태(PosConst.PRT_HDR)</param>
|
||
/// <param name="sPrtFmt">출력포멧(PosConst.PRT_FMT)</param>
|
||
/// <param name="sData1"></param>
|
||
public void AddPrintData(string sPrtID, string sPrtHead, string sPrtFmt, string sData1, string sData2, string sData3, string sData4, string sData5)
|
||
{
|
||
string sPrtData = "";
|
||
try
|
||
{
|
||
if (sPrtFmt == PosConst.PRT_FMT.F501) // 수량(3)+명(좌)(16)+단가(10)+금액(11)+부가세코드(2)
|
||
{
|
||
sPrtData = CmUtil.LPadH(sData2, 3) + CmUtil.RPadH(sData1, 16) + CmUtil.LPadH(sData3, 10) + CmUtil.LPadH(sData4, 11) + CmUtil.LPadH(sData5, 2);
|
||
}
|
||
if (sPrtFmt == PosConst.PRT_FMT.F502) // 과세코드(4)+과세율(11)+순매출액(9)+과세금액(9)+합계(9)
|
||
{
|
||
sPrtData = CmUtil.RPadH(sData1, 4) + CmUtil.RPadH(sData2, 11) + CmUtil.LPadH(sData3, 9) + CmUtil.LPadH(sData4, 9) + CmUtil.LPadH(sData5, 9);
|
||
}
|
||
|
||
AddPrintData(sPrtID, sPrtHead, sPrtData);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 최근 영수증 저장
|
||
/// </summary>
|
||
/// <param name="sFileName"></param>
|
||
/// <param name="alPrtData"></param>
|
||
/// <returns></returns>
|
||
private void WriteReceiptFile(string sFileName, ArrayList alPrtData, string sPrtItem)
|
||
{
|
||
try
|
||
{
|
||
if (File.Exists(BaseCom.NxDataPath + sFileName) == true) File.Delete(BaseCom.NxDataPath + sFileName);
|
||
|
||
if (alPrtData.Count <= 0) return;
|
||
|
||
FileStream fs = new FileStream(BaseCom.NxDataPath + sFileName, FileMode.Create, FileAccess.Write);
|
||
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
|
||
|
||
try
|
||
{
|
||
for (int i = 0; i < alPrtData.Count; i++)
|
||
{
|
||
if (alPrtData[i].ToString().StartsWith(PosConst.PRT_ITEM.REC) || alPrtData[i].ToString().StartsWith(PosConst.PRT_ITEM.ETC))
|
||
{
|
||
sw.WriteLine(alPrtData[i].ToString());
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
||
}
|
||
finally
|
||
{
|
||
sw.Close();
|
||
fs.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);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 최근 영수증 읽기
|
||
/// </summary>
|
||
/// <param name="sFileName"></param>
|
||
/// <returns></returns>
|
||
protected ArrayList ReadReceiptFile(string sFileName, ArrayList alPrtData)
|
||
{
|
||
try
|
||
{
|
||
string sFilePath = BaseCom.NxDataPath + sFileName;
|
||
if (File.Exists(sFilePath) == false) return alPrtData;
|
||
|
||
using (StreamReader sr = new StreamReader(sFilePath, System.Text.Encoding.Default))
|
||
{
|
||
sr.BaseStream.Seek(0, SeekOrigin.Begin);
|
||
while (sr.Peek() >= 0)
|
||
{
|
||
string sLineData = sr.ReadLine();
|
||
sLineData = sLineData.Replace(PosConst.PRT_HDR.PRT_REP, PosConst.PRT_HDR.PRT_NOR);
|
||
alPrtData.Add(sLineData);
|
||
}
|
||
}
|
||
}
|
||
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 alPrtData;
|
||
}
|
||
|
||
|
||
private string GetCashierName(string sCashierNo)
|
||
{
|
||
try
|
||
{
|
||
// 캐셔마스터 조회
|
||
IMasterUs cService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.CASHIER_MASTER);
|
||
DataTable dtDataInfo = cService.Select(new string[] { m_cPosStatus.Base.StoreNo, sCashierNo });
|
||
if (dtDataInfo != null && dtDataInfo.Rows.Count > 0)
|
||
{
|
||
foreach (DataRow drData in dtDataInfo.Rows)
|
||
{
|
||
return CmUtil.GetDataRowStr(drData, PosMst.MST_USER.DATA.CASHIER_NM);
|
||
}
|
||
}
|
||
}
|
||
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 "";
|
||
}
|
||
|
||
//#20170918 기념일 배송 출력 start
|
||
protected ArrayList ReadAnniversaryFile(string sFileName, ArrayList alPrtData)
|
||
{
|
||
try
|
||
{
|
||
string sFilePath = sFileName; // BaseCom.NxDataPath + sFileName;
|
||
if (File.Exists(sFilePath) == false) return alPrtData;
|
||
|
||
using (StreamReader sr = new StreamReader(sFilePath, System.Text.Encoding.Default))
|
||
{
|
||
sr.BaseStream.Seek(0, SeekOrigin.Begin);
|
||
while (sr.Peek() >= 0)
|
||
{
|
||
string sLineData = sr.ReadLine();
|
||
sLineData = sLineData.Replace(PosConst.PRT_HDR.PRT_REP, PosConst.PRT_HDR.PRT_NOR);
|
||
AddPrintData(PosConst.PRT_ITEM.ETC, PosConst.PRT_HDR.PRT_NOR, sLineData.Trim());
|
||
}
|
||
}
|
||
}
|
||
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 alPrtData;
|
||
}
|
||
//#20170918 기념일 배송 출력 end
|
||
|
||
// grayber@20180122 전자영수증 조건 추가 start - 해피앱 전자영수증 사용 여부 확인 함수
|
||
/// <summary>
|
||
/// 해피앱 전자영수증 확인 함수
|
||
/// </summary>
|
||
/// <returns>전자영수증 사용 유무 (Y:N)</returns>
|
||
public string CheckElectronic_Receipt()
|
||
{
|
||
string sElectronic_ReceiptYN = string.Empty;
|
||
|
||
try
|
||
{
|
||
if (m_bElectRec == true)
|
||
{
|
||
return sElectronic_ReceiptYN = "Y";
|
||
}
|
||
|
||
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
||
foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
|
||
{
|
||
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
|
||
{
|
||
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
||
if (cEtcItem.OCCUR_ENTRY_12 == "Y")
|
||
{
|
||
//해피앱 전자발행설정유무 값
|
||
sElectronic_ReceiptYN = cEtcItem.OCCUR_ENTRY_23;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (sElectronic_ReceiptYN.Equals("Y") == true) return sElectronic_ReceiptYN;
|
||
|
||
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
||
foreach (Column.TR_PAYMENT.DATA cPayItem in alPayItem)
|
||
{
|
||
if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.POINT_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT)
|
||
{
|
||
if (cPayItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
||
if (cPayItem.OCCUR_ENTRY_12 == "Y")
|
||
{
|
||
sElectronic_ReceiptYN = cPayItem.OCCUR_ENTRY_23;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
return sElectronic_ReceiptYN;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "Electronic_Receipt : " + sElectronic_ReceiptYN + "", ex.Message);
|
||
|
||
return sElectronic_ReceiptYN;
|
||
}
|
||
}
|
||
// grayber@20180122 전자영수증 조건 추가 end
|
||
|
||
//#20180202 결제영수증 발행 안해도 직전영수증 발행시 해당 영수증 출력 start
|
||
|
||
/// <summary>
|
||
/// 영수증 저장 처리
|
||
/// </summary>
|
||
public void SaveReceiptFile()
|
||
{
|
||
try
|
||
{
|
||
// 추후적립일때 직전영수증 파일 저장 안함(2017.07.21)
|
||
if (m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.AFTER.HP_SAVE && m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.AFTER.CASH_RECEIPT)
|
||
{
|
||
WriteReceiptFile("PRT_REC.TXT", m_aRecPrintBuf, PosConst.PRT_ITEM.REC);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
||
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
||
}
|
||
}
|
||
|
||
//#20180202 결제영수증 발행 안해도 직전영수증 발행시 해당 영수증 출력 end
|
||
}
|
||
}
|