spc-kiosk-pb/Service/BsvBasic/SaleReceipt.cs

611 lines
34 KiB
C#
Raw Normal View History

2019-06-16 05:12:09 +00:00
using System;
using System.Data;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Cosmos.Common;
using Cosmos.UserFrame;
using Cosmos.CommonManager;
using Cosmos.ServiceProvider;
namespace Cosmos.Service
{
public class SaleReceipt : ISaleReceipt
{
private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출
private PosStatus m_cPosStatus = new PosStatus(); //기본정보 참조
private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체)
private IMasterUs m_cMstService = null; // 마스터 인터페이스
private IDatabaseSQL m_cSqlDbService = null; // 데이터베이스 관리
private TranStatus m_cTrnStatus = null; // 거래정보 참조
private ISaleCompleteUs m_cSaleComplete = null; // 거래 완료처리
protected IDataCommonUs m_cDataCommon = null; // 판매공통 모듈
public SaleReceipt()
{
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
m_cTrnStatus = (TranStatus)StateObject.TRAN; //POS 거래정보
m_cMstService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.POS_MASTER);
m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL);
m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
m_cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
}
/// <summary>
/// 거래조회
/// </summary>
/// <param name="sSaleDate"></param>
/// <param name="sPosNo"></param>
/// <param name="sTradeNo"></param>
/// <param name="sPayTime"></param>
/// <param name="sTradeType"></param>
/// <returns></returns>
public DataTable SearchSaleReceiptList(string sSaleDate, string sPosNo, string sTradeNo, string sPayTime, string sTradeType)
{
string sQuery = "";
try
{
sQuery = " DECLARE @CMP_CD AS VARCHAR(5) ";
sQuery += " DECLARE @STOR_CD AS VARCHAR(10) ";
sQuery += " DECLARE @POS_NO AS VARCHAR(2) ";
sQuery += " DECLARE @SALE_DT AS VARCHAR(8) ";
sQuery += " SET @CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
sQuery += " SET @STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
sQuery += " SET @POS_NO = '" + sPosNo + "'";
sQuery += " SET @SALE_DT = '" + sSaleDate + "'";
if (m_cPosStatus.Base.TrainingFlag == "1")
{
sQuery += " SELECT A.SALE_DT ";
sQuery += " , A.POS_NO ";
sQuery += " , A.REG_NO AS TRADE_NO";
sQuery += " , A.SYS_DT ";
sQuery += " , A.PAY_TIME ";
sQuery += " , A.NET_SALE_AMT ";
sQuery += " , A.TRADE_DIV ";
sQuery += " , A.TRADE_KINDPER ";
sQuery += " , A.ORG_BILLDT + A.ORG_BILL_POSNO + A.ORG_BILL_NO AS ORG_INFO ";
sQuery += " , ISNULL(B.SALE_DT + B.POS_NO + B.TRADE_NO,'') AS RTN_INFO ";
sQuery += " , (CASE WHEN ISNULL(G.CASH_APP_AMT,0) > 0 AND C.TRADE_NO IS NULL AND D.TRADE_NO IS NULL THEN '0' ELSE '1' END) AF_CASH ";
sQuery += " , (CASE WHEN (A.AF_ACCUM_POINT_AMT > 0 OR A.AF_ACCUM_POINT_INFO <> '') AND E.TRADE_NO IS NULL AND F.TRADE_NO IS NULL THEN '0' ELSE '1' END) AF_POINT ";
sQuery += " , ISNULL(A.AF_ACCUM_POINT_AMT,0)AF_ACCUM_POINT_AMT ";
sQuery += " , ISNULL(A.AF_ACCUM_POINT_INFO,'')AF_ACCUM_POINT_INFO ";
sQuery += " , ISNULL(G.CASH_APP_AMT,0) CASH_APP_AMT ";
sQuery += " , ISNULL(A.NET_SALE_AMT,0) NET_SALE_AMT ";
sQuery += " , ISNULL(A.TOT_VAT,0) TOT_VAT ";
sQuery += " , ISNULL(A.AF_ACCUM_POINT_AMT,0) AF_ACCUM_POINT_AMT ";
sQuery += " , ISNULL(A.AF_ACCUM_POINT_INFO,'') AF_ACCUM_POINT_INFO ";
sQuery += " FROM POSLOG..ETC_SALE_HEADER A ";
sQuery += " LEFT JOIN (SELECT * FROM POSLOG..ETC_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD AND STOR_CD = @STOR_CD AND TRADE_DIV = '1' AND TRAIN_MODE_YN = '1' ";
sQuery += " ) B ON A.SALE_DT = B.ORG_BILLDT AND A.POS_NO = B.ORG_BILL_POSNO AND A.REG_NO = B.ORG_BILL_NO ";
sQuery += " LEFT JOIN (SELECT * FROM POSLOG..ETC_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD AND STOR_CD = @STOR_CD AND SALE_DT = @SALE_DT AND POS_NO = @POS_NO AND TRADE_DIV = '0' AND TRADE_KINDPER = '31' AND TRAIN_MODE_YN = '1' ";
sQuery += " ) C ON A.SALE_DT = C.ORG_BILLDT AND A.POS_NO = C.ORG_BILL_POSNO AND A.REG_NO = C.ORG_BILL_NO ";
sQuery += " LEFT JOIN (SELECT * FROM POSLOG..ETC_SALE_ETC ";
sQuery += " WHERE CMP_CD = @CMP_CD AND STOR_CD = @STOR_CD AND SALE_DT = @SALE_DT AND POS_NO = @POS_NO AND ETC_WAY_CD ='80' AND ETC_DTL_CD_01='00' AND CANCEL_DIV ='0' ";
sQuery += " ) D ON A.SALE_DT = D.SALE_DT AND A.POS_NO = D.POS_NO AND A.REG_NO = D.REG_NO ";
sQuery += " LEFT JOIN (SELECT * FROM POSLOG..TR_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD AND STOR_CD = @STOR_CD AND SALE_DT = @SALE_DT AND POS_NO = @POS_NO AND TRADE_DIV = '0' AND TRADE_KINDPER = '30' AND TRAIN_MODE_YN = '1' ";
sQuery += " ) E ON A.SALE_DT = E.ORG_BILLDT AND A.POS_NO = E.ORG_BILL_POSNO AND A.REG_NO = E.ORG_BILL_NO ";
sQuery += " LEFT JOIN (SELECT * FROM POSLOG..ETC_SALE_ETC ";
sQuery += " WHERE CMP_CD = @CMP_CD AND STOR_CD = @STOR_CD AND SALE_DT = @SALE_DT AND POS_NO = @POS_NO AND ETC_WAY_CD ='80' AND ETC_DTL_CD_01='01' AND CANCEL_DIV ='0' ";
sQuery += " ) F ON A.SALE_DT = F.SALE_DT AND A.POS_NO = F.POS_NO AND A.REG_NO = F.REG_NO ";
sQuery += " LEFT JOIN (SELECT CMP_CD , SALE_DT , STOR_CD , POS_NO , REG_NO , SUM(CASE WHEN PAY_WAY_CD + PAY_DTL_CD_01 = '0702' THEN AMT_ENTRY_07 ELSE PAY_AMT END) CASH_APP_AMT ";
sQuery += " FROM POSLOG.dbo.ETC_SALE_PAY ";
sQuery += " WHERE CMP_CD = @CMP_CD AND STOR_CD = @STOR_CD AND POS_NO = @POS_NO AND OCCUR_ENTRY_21 ='1' AND CANCEL_DIV = '0' ";
sQuery += " GROUP BY CMP_CD, SALE_DT, STOR_CD, POS_NO, REG_NO ";
sQuery += " ) G ON A.SALE_DT = G.SALE_DT AND A.POS_NO = G.POS_NO AND A.REG_NO = G.REG_NO ";
sQuery += " WHERE A.CMP_CD = @CMP_CD ";
sQuery += " AND A.SALE_DT = @SALE_DT ";
sQuery += " AND A.STOR_CD = @STOR_CD ";
sQuery += " AND A.TRAIN_MODE_YN = '1' ";
if (sTradeNo.Trim().Length == 5)
sQuery += " AND A.REG_NO = '" + sTradeNo + "' ";
if (sPayTime.Trim().Length == 6)
sQuery += " AND A.PAY_TIME = '" + sPayTime + "' ";
}
else
{
sQuery += " SELECT A.SALE_DT ";
sQuery += " , A.POS_NO ";
sQuery += " , A.TRADE_NO ";
sQuery += " , A.SYS_DT ";
sQuery += " , A.PAY_TIME ";
sQuery += " , A.NET_SALE_AMT ";
sQuery += " , A.TRADE_DIV ";
sQuery += " , A.TRADE_KINDPER ";
sQuery += " , A.ORG_BILLDT + A.ORG_BILL_POSNO + A.ORG_BILL_NO ORG_INFO ";
sQuery += " , ISNULL(B.SALE_DT + B.POS_NO + B.TRADE_NO,'') RTN_INFO ";
sQuery += " , (CASE WHEN ISNULL(G.CASH_APP_AMT,0) > 0 AND C.TRADE_NO IS NULL AND D.TRADE_NO IS NULL THEN '0' ELSE '1' END) AF_CASH "; // 현금영수증 발행 가능 여부
sQuery += " , (CASE WHEN (A.AF_ACCUM_POINT_AMT > 0 OR A.AF_ACCUM_POINT_INFO <> '') AND E.TRADE_NO IS NULL AND F.TRADE_NO IS NULL THEN '0' ELSE '1' END) AF_POINT "; // 포인트 발행 가능 여부
sQuery += " , ISNULL(A.AF_ACCUM_POINT_AMT,0)AF_ACCUM_POINT_AMT ";
sQuery += " , ISNULL(A.AF_ACCUM_POINT_INFO,'')AF_ACCUM_POINT_INFO ";
sQuery += " , ISNULL(G.CASH_APP_AMT,0) CASH_APP_AMT ";
sQuery += " , ISNULL(A.NET_SALE_AMT,0) NET_SALE_AMT ";
sQuery += " , ISNULL(A.TOT_VAT,0) TOT_VAT ";
sQuery += " , ISNULL(A.AF_ACCUM_POINT_AMT,0) AF_ACCUM_POINT_AMT ";
sQuery += " , ISNULL(A.AF_ACCUM_POINT_INFO,'') AF_ACCUM_POINT_INFO ";
sQuery += " FROM POSLOG..TR_SALE_HEADER A ";
sQuery += " LEFT JOIN (SELECT * FROM POSLOG..TR_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD AND STOR_CD = @STOR_CD AND TRADE_DIV = '1' AND TRAIN_MODE_YN = '0') B ";
sQuery += " ON A.SALE_DT = B.ORG_BILLDT ";
sQuery += " AND A.POS_NO = B.ORG_BILL_POSNO ";
sQuery += " AND A.TRADE_NO = B.ORG_BILL_NO ";
sQuery += " LEFT JOIN (SELECT * FROM POSLOG..ETC_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD AND STOR_CD = @STOR_CD AND SALE_DT = @SALE_DT AND POS_NO = @POS_NO AND TRADE_DIV = '0' AND TRAIN_MODE_YN = '0' AND TRADE_KINDPER = '31' ) C ";
sQuery += " ON A.SALE_DT = C.ORG_BILLDT ";
sQuery += " AND A.POS_NO = C.ORG_BILL_POSNO ";
sQuery += " AND A.TRADE_NO = C.ORG_BILL_NO ";
sQuery += " LEFT JOIN (SELECT * FROM POSLOG..TR_SALE_ETC ";
sQuery += " WHERE CMP_CD = @CMP_CD AND STOR_CD = @STOR_CD AND SALE_DT = @SALE_DT AND POS_NO = @POS_NO AND ETC_WAY_CD ='80' AND ETC_DTL_CD_01='00' AND CANCEL_DIV ='0' ) D ";
sQuery += " ON A.SALE_DT = D.SALE_DT ";
sQuery += " AND A.POS_NO = D.POS_NO ";
sQuery += " AND A.TRADE_NO = D.TRADE_NO ";
sQuery += " LEFT JOIN (SELECT * FROM POSLOG..ETC_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD AND STOR_CD = @STOR_CD AND SALE_DT = @SALE_DT AND POS_NO = @POS_NO AND TRADE_DIV = '0' AND TRAIN_MODE_YN = '0' AND TRADE_KINDPER = '30' ) E ";
sQuery += " ON A.SALE_DT = E.ORG_BILLDT ";
sQuery += " AND A.POS_NO = E.ORG_BILL_POSNO ";
sQuery += " AND A.TRADE_NO = E.ORG_BILL_NO ";
sQuery += " LEFT JOIN (SELECT * FROM POSLOG..TR_SALE_ETC ";
sQuery += " WHERE CMP_CD = @CMP_CD AND STOR_CD = @STOR_CD AND SALE_DT = @SALE_DT AND POS_NO = @POS_NO AND ETC_WAY_CD ='80' AND ETC_DTL_CD_01='01' AND CANCEL_DIV ='0' ) F ";
sQuery += " ON A.SALE_DT = F.SALE_DT ";
sQuery += " AND A.POS_NO = F.POS_NO ";
sQuery += " AND A.TRADE_NO = F.TRADE_NO ";
sQuery += " LEFT JOIN (SELECT CMP_CD, SALE_DT, STOR_CD, POS_NO, TRADE_NO, SUM(CASE WHEN PAY_WAY_CD + PAY_DTL_CD_01 = '0702' THEN AMT_ENTRY_07 ELSE PAY_AMT END) CASH_APP_AMT ";
sQuery += " FROM POSLOG.dbo.TR_SALE_PAY ";
sQuery += " WHERE CMP_CD = @CMP_CD AND STOR_CD = @STOR_CD AND POS_NO = @POS_NO AND OCCUR_ENTRY_21 ='1' AND CANCEL_DIV = '0' ";
sQuery += " GROUP BY CMP_CD, SALE_DT, STOR_CD, POS_NO, TRADE_NO ) G ";
sQuery += " ON A.SALE_DT = G.SALE_DT ";
sQuery += " AND A.POS_NO = G.POS_NO ";
sQuery += " AND A.TRADE_NO = G.TRADE_NO ";
sQuery += " WHERE A.CMP_CD = @CMP_CD ";
sQuery += " AND A.SALE_DT = @SALE_DT ";
sQuery += " AND A.STOR_CD = @STOR_CD ";
sQuery += " AND A.TRAIN_MODE_YN = '0' ";
if (sTradeNo.Trim().Length == 5)
sQuery += " AND A.TRADE_NO = '" + sTradeNo + "' ";
if (sPayTime.Trim().Length == 6)
sQuery += " AND A.PAY_TIME = '" + sPayTime + "' ";
}
if (sPosNo.Trim().Length == 2)
sQuery += " AND A.POS_NO = '" + sPosNo + "' ";
if (sTradeType == "1")
{
sQuery += " AND A.TRADE_DIV = '0' "; //정상
}
else if (sTradeType == "2")
{
sQuery += " AND A.TRADE_DIV = '1' "; //반품
}
else if (sTradeType == "3")
{
sQuery += " AND A.TRADE_DIV = '0' ";
sQuery += " AND ISNULL(B.TRADE_NO,'') = '' "; //반품건 제외
}
// 영수증반품 => 판매 데이터 만 대상
// 수정 => 판매, 대외거래(o2o), 선불판매, 상품권판매, LOSS
//sQuery += " AND A.TRADE_KINDPER = '" + ItemConst.TRAN_KIND.NORMAL.SALE + "' ";
sQuery += " AND A.TRADE_KINDPER IN ( '" + ItemConst.TRAN_KIND.NORMAL.SALE + "','" + ItemConst.TRAN_KIND.FORIGN.O2O + "','"
+ ItemConst.TRAN_KIND.CHARGESALE.PREPAID + "','" + ItemConst.TRAN_KIND.CHARGESALE.GIFT + "','"
+ ItemConst.TRAN_KIND.ETC.LOSS + "' )";
if (m_cPosStatus.Base.TrainingFlag == "1")
{
sQuery += " ORDER BY A.REG_NO DESC ";
}
else
{
sQuery += " ORDER BY A.TRADE_NO DESC ";
}
return m_cMstService.Select(new string[] { sQuery });
}
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 null;
}
/// <summary>
/// 영수증 출력
/// </summary>
/// <param name="sPrtData"></param>
/// <returns></returns>
public bool PrintSaleReceipt(string sPrtData)
{
//// 영수증 출력
return m_cSaleComplete.PosSaleRePrint(sPrtData);
}
/// <summary>
/// 기념일 배송 주문정보 출력
/// </summary>
/// <param name="sPrtData"></param>
/// <returns></returns>
public bool PrintReceipt(string sPrtData)
{
//// 영수증 출력
return m_cSaleComplete.PosRembOrderPrint(sPrtData);
}
///// <summary>
///// 매출불러오기
///// </summary>
///// <param name="sSaleDate"></param>
///// <param name="sPosNo"></param>
///// <param name="sTradeNo"></param>
///// <returns></returns>
//public string SetTrItem(string sSaleDate, string sPosNo, string sTradeNo)
//{
// string sRet = UserCom.RST_ERR;
// try
// {
// string sItemCdoe = string.Empty;
// string sSubStoreCode = string.Empty;
// //매출 아이템 조회
// DataTable dt = SearchSaleReceiptDetail(sSaleDate, sPosNo, sTradeNo);
// if (dt == null || dt.Rows.Count == 0)
// {
// return sRet;
// }
// else
// {
// ArrayList m_alTrPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
// foreach (DataRow dr in dt.Rows)
// {
// sItemCdoe = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.ITEM_PLU_CD);
// sSubStoreCode = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.SUB_SHOP_CD);
// // 상품 마스터 조회
// DataTable dtDataInfo = m_cDataCommon.SeletItemMstToItemCode(sSubStoreCode, sItemCdoe);
// if (dtDataInfo == null || dtDataInfo.Rows.Count == 0)
// {
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0010); // 등록되지 않은 상품 입니다
// return sRet;
// }
// DataRow drPlu = dtDataInfo.Rows[0];
// // 상품 정보 생성
// Column.TR_PLU.DATA cPluItem = new Column.TR_PLU.DATA();
// cPluItem.ITEM_BRAND_CD = "";
// cPluItem.SUB_SHOP_CD = sSubStoreCode;
// cPluItem.ITEM_PLU_CD = sItemCdoe;
// cPluItem.ITEM_DIV = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.ITEM_DIV);
// cPluItem.SALE_QTY = CmUtil.GetDataRowLong(dr, PosTr.TR_SALE_DETAIL.DATA.SALE_QTY);
// //금액 과 세금 구분은 옵션으로 변경 해야함!!!!
// cPluItem.TAKE_IN_OUT_DIV = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.TAKE_IN_OUT_DIV);
// cPluItem.TAXRATE_CD = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.TAXRATE_CD);
// cPluItem.SALE_GIFT_NO = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.SALE_GIFT_NO);
// cPluItem.SALE_AMT = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.SALE_AMT);
// cPluItem.FLAVOUR_DIV = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.FLAVOUR_DIV);
// cPluItem.FLAVOUR_QTY = CmUtil.GetDataRowLong(dr, PosTr.TR_SALE_DETAIL.DATA.FLAVOUR_QTY);
// cPluItem.FLAVOUR_STOCK = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.FLAVOUR_STOCK);
// cPluItem.ITEM_INPUT_DIV = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.ITEM_INPUT_DIV);
// cPluItem.ITEM_BAR_CD = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.ITEM_BAR_CD);
// cPluItem.ITEM_TAX_DIV = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.ITEM_TAX_DIV);
// cPluItem.TAX_AMT_INCLUDE_YN = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.TAX_AMT_INCLUDE_YN);
// cPluItem.APPLY_TAX_AMT = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.APPLY_TAX_AMT);
// cPluItem.SVC_FEE_AMT = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.SVC_FEE_AMT);
// cPluItem.SVC_FEE_VAT = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.SVC_FEE_VAT);
// cPluItem.BILL_AMT = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.BILL_AMT);
// cPluItem.DC_RATE = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.DC_RATE);
// cPluItem.ITEM_DC_AMT = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.ITEM_DC_AMT);
// cPluItem.DC_DIV = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.DC_DIV);
// cPluItem.NONSALES_RSN_CD = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.NONSALES_RSN_CD);
// cPluItem.SUM_DC_AMT = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.SUM_DC_AMT);
// cPluItem.CPI_DC_AMT = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.CPI_DC_AMT);
// cPluItem.COOP_CARD_DC_AMT = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.COOP_CARD_DC_AMT);
// cPluItem.SET_DC_AMT = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.SET_DC_AMT);
// cPluItem.ETC_DC_DIV = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.ETC_DC_DIV);
// cPluItem.ETC_DC_AMT = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.ETC_DC_AMT);
// cPluItem.EXCEP_DC_DIV = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.EXCEP_DC_DIV);
// cPluItem.EXCEP_DC_AMT = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.EXCEP_DC_AMT);
// cPluItem.PACK_DIV = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.PACK_DIV);
// cPluItem.SET_MENU_CD = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.SET_MENU_CD);
// cPluItem.CPI_PRESENT_DIV = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.CPI_PRESENT_DIV);
// cPluItem.BILLSPR_NO = CmUtil.GetDataRowLong(dr, PosTr.TR_SALE_DETAIL.DATA.BILLSPR_NO);
// cPluItem.CANCEL_DIV = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.CANCEL_DIV);
// cPluItem.CANCEL_DATE = "";
// cPluItem.SUB_SET_MNG_TYPE = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SUB_SET_MNG_TYPE);
// cPluItem.SALE_PRC = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.SALE_PRC);
// cPluItem.SET_MENU_CD = CmUtil.GetDataRowStr(dr, PosTr.TR_SALE_DETAIL.DATA.SET_MENU_CD);
// // 상품추가 정보
// if (cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.OPT_MENU)
// {
// cPluItem.ITEM_NAME = ">>" + CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SHTCUT_ITEMNM);
// }
// else if (cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_DETL)
// {
// cPluItem.ITEM_NAME = ">" + CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SHTCUT_ITEMNM);
// }
// else if (cPluItem.FLAVOUR_DIV == ItemConst.PLU_FLAVOUR_DIV.FLAVOUR)
// {
// cPluItem.ITEM_NAME = ">" + CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SHTCUT_ITEMNM);
// }
// else
// {
// cPluItem.ITEM_NAME = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SHTCUT_ITEMNM);
// }
// cPluItem.CANCEL_DIV_MAIN = "0";
// cPluItem.FREE_GIFT_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.FREE_GIFT_YN);
// cPluItem.DC_PRMT_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.DC_PRMT_YN);
// if (cPluItem.DC_PRMT_YN != "1") cPluItem.DC_PRMT_YN = "0"; // db에서 가져오지 않고 있어 임시 작업
// cPluItem.ACCUM_PRMT_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.ACCUM_PRMT_YN);
// cPluItem.SVC_FEE_TRGT_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SVC_FEE_TRGT_YN);
// cPluItem.COOP_CARD_DC_NOADM_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.COOP_CARD_DC_NOADM_YN);
// cPluItem.TOT_DC_AMT = CmUtil.GetDataRowDouble(dr, PosTr.TR_SALE_DETAIL.DATA.TOT_DC_AMT);
// cPluItem.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_ING;
// cPluItem.L_CLSS = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.L_CLSS);
// cPluItem.M_CLSS = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.M_CLSS);
// cPluItem.S_CLSS = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.S_CLSS);
// m_alTrPluItem.Add(cPluItem); // 등록 처리
// }
// ISalePluItemUs m_cPluService = (ISalePluItemUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_PLU_ITEM);
// m_cPluService.ItemAmountExeccute(true, true);
// IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
// m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
// cFormSaleMain.DisplayInit(false, true);
// cFormSaleMain.DisplayItem(0, false);
// sRet = 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="sSaleDate"></param>
/// <param name="sPosNo"></param>
/// <param name="sTradeNo"></param>
/// <returns></returns>
public DataTable SearchPritSaleReceiptDetail(string sSaleDate, string sPosNo, string sTradeNo)
{
string sQuery = "";
try
{
if (m_cPosStatus.Base.TrainingFlag == "1")
{
sQuery = " SELECT JOURNAL_DATA";
sQuery += " FROM POSLOG.dbo.ETC_SALE_JOURNAL ";
sQuery += " WHERE 1 = 1 ";
sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
sQuery += " AND SALE_DT = '" + sSaleDate + "'";
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
sQuery += " AND POS_NO = '" + sPosNo + "'";
sQuery += " AND REG_NO = '" + sTradeNo + "'";
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' ";
}
else
{
sQuery = " SELECT JOURNAL_DATA";
sQuery += " FROM POSLOG.dbo.TR_SALE_JOURNAL ";
sQuery += " WHERE 1 = 1 ";
sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
sQuery += " AND SALE_DT = '" + sSaleDate + "'";
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
sQuery += " AND POS_NO = '" + sPosNo + "'";
sQuery += " AND TRADE_NO = '" + sTradeNo + "'";
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' ";
}
return m_cMstService.Select(new string[] { sQuery });
}
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 null;
}
/// <summary>
/// 아이템 상세 조회
/// </summary>
/// <param name="sSaleDate"></param>
/// <param name="sPosNo"></param>
/// <param name="sTradeNo"></param>
/// <returns></returns>
private DataTable SearchSaleReceiptDetail(string sSaleDate, string sPosNo, string sTradeNo)
{
string sQuery = "";
try
{
if (m_cPosStatus.Base.TrainingFlag == "1")
{
sQuery = " SELECT *";
sQuery += " FROM POSLOG..ETC_SALE_DETAIL ";
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
sQuery += " AND SALE_DT = '" + sSaleDate + "'";
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
sQuery += " AND POS_NO = '" + sPosNo + "'";
sQuery += " AND REG_NO = '" + sTradeNo + "'";
sQuery += " AND CANCEL_DIV = '" + ItemConst.PAY_CANCEL_DIV.NORMAL + "'";
}
else
{
sQuery = " SELECT *";
sQuery += " FROM POSLOG..TR_SALE_DETAIL ";
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
sQuery += " AND SALE_DT = '" + sSaleDate + "'";
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
sQuery += " AND POS_NO = '" + sPosNo + "'";
sQuery += " AND TRADE_NO = '" + sTradeNo + "'";
sQuery += " AND CANCEL_DIV = '" + ItemConst.PAY_CANCEL_DIV.NORMAL + "'";
}
return m_cMstService.Select(new string[] { sQuery });
}
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 null;
}
/// <summary>
/// 거래반품
/// </summary>
/// <param name="sSaleDate"></param>
/// <param name="sPosNo"></param>
/// <param name="sTradeNo"></param>
/// <returns></returns>
public bool ReturnSaleReceipt(string sSaleDate, string sPosNo, string sTradeNo)
{
bool bRet = false;
try
{
//반품 유무 조회
DataTable dt = ReturnSearch(sSaleDate, sPosNo, sTradeNo);
if (dt == null || dt.Rows.Count == 0)
{
//반품 처리
bRet = true;
}
else
{
//이미 반품된 거래 입니다.
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0229));
}
}
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="sSaleDate"></param>
/// <param name="sPosNo"></param>
/// <param name="sTradeNo"></param>
/// <returns></returns>
private DataTable ReturnSearch(string sSaleDate, string sPosNo, string sTradeNo)
{
string sQuery = "";
try
{
if (m_cPosStatus.Base.TrainingFlag == "1")
{
sQuery = " SELECT *";
sQuery += " FROM POSLOG.dbo.ETC_SALE_JOURNAL ";
sQuery += " WHERE 1 = 1 ";
sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
sQuery += " AND ORG_BILLDT = '" + sSaleDate + "'";
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
sQuery += " AND ORG_BILL_POSNO = '" + sTradeNo + "'";
sQuery += " AND TRADE_DIV = '1' ";
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' ";
}
else
{
sQuery = " SELECT *";
sQuery += " FROM POSLOG.dbo.TR_SALE_JOURNAL ";
sQuery += " WHERE 1 = 1 ";
sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
sQuery += " AND ORG_BILLDT = '" + sSaleDate + "'";
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
sQuery += " AND ORG_BILL_POSNO = '" + sTradeNo + "'";
sQuery += " AND TRADE_DIV = '1' ";
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' ";
}
return m_cMstService.Select(new string[] { sQuery });
}
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 null;
}
}
}