using System; using System.Text; using System.Collections; using System.Windows.Forms; using Cosmos.UserFrame; using Cosmos.ServiceProvider; using Cosmos.Common; using Cosmos.CommonManager; using System.Data; /*-----------------------------------------------------------------------------------------------*/ // 설 명 : 거래데이터 생성 // 작 성 자 : // 변경 이력 : /*-----------------------------------------------------------------------------------------------*/ namespace Cosmos.Service { class MakeTranLog : IServiceUs, IMakeAccADMT { private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체) private PosStatus m_cPosStatus = null; // 기본정보 참조 private TranStatus m_cTrnStatus = null; // 거래정보 참조 private IDataCommonUs m_cDataCommSrv = null; private IDatabaseSQL m_cSqlDbService = null; // 데이터베이스 관리 /// /// 트란데이터 /// private string m_sTranData; public MakeTranLog() { m_cPosStatus = (PosStatus)StateObject.POS; //POS 기본정보 m_cTrnStatus = (TranStatus)StateObject.TRAN; //POS 거래정보 m_cDataCommSrv = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL); } #region 거래데이터 생성 /// /// 거래데이터 생성 /// /// /// public string Execute(string[] aParam) { string sRet = UserCom.RST_ERR; try { m_sTranData = ""; StringBuilder sb = new StringBuilder(); m_sTranData = sb.ToString(); 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; } #endregion //#region 거래번호 증가 체크 ///// ///// ///// ///// //public bool TradeNoAddCheck() //{ // bool bRet = true; // try // { // if (m_cTrnStatus.Head.TrainModeYn == "0"&& // (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_COMPLETE || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_REG || // m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.FORIGN.O2O || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.FORIGN.SHOPPINGMALL || // m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.CHARGESALE.CHARGE || // m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.CHARGESALE.GIFT || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.CHARGESALE.PREPAID || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.CHARGESALE.REFUND || // m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT || // m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.STATEMENT.CLOSING_MONEY || // m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.STATEMENT.MIDDLE_ADJUSTMENT)) // { // //증가! // } // else // { // //미증가! // bRet = false; // } // } // 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; //} //#endregion #region 거래 데이터 저장 처리 /// /// 거래 데이터 저장 처리 /// /// /// public string SaveTranExecute(string[] aParam) { string sRet = UserCom.RST_ERR; try { if (m_cDataCommSrv.TradeNoAddCheck("") == true) { m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); m_cSqlDbService.Begin(); //17.05.18 dkshin 쇼킹박스 추가 //if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.LOG.SHOCKING_BOX && m_cTrnStatus.Head.ShockingBoxStat == "1") // m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.NORMAL.SALE; sRet = SaveEtcItem(); // 기타정보 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveEtcItem"); return sRet; } sRet = SaveCampaignItem(); // 캠페인정보 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveCampaignItem"); return sRet; } sRet = SaveSignItem(aParam[0]); // 사인데이터 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveSignItem"); return sRet; } sRet = SaveDpstWthdr(); // 입출금정보 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveDpstWthdr"); return sRet; } sRet = SavePluItem(); // 상품정보 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SavePluItem"); return sRet; } sRet = SavePaymentItem(); // 결제정보 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SavePaymentItem"); return sRet; } sRet = SaveTranReservInfo(aParam[0]); // 트란예약 고객 정보 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveTranReservInfo"); return sRet; } sRet = SaveGuestCnt(); // 고객수정보 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveGuestCnt"); return sRet; } DataTable dtReturn = null; sRet = SaveAccADMT(m_cTrnStatus.Head.TradeKind, m_cPosStatus.Base.SaleDate, ref dtReturn, "0"); // 정산지 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveAccADMT"); return sRet; } //#Rhee, 20180116 미국 예약등록으로 결제완료이면 전송안되게 SEND_YN = '1' 변경 start // 기존(Rhee) ////#20180131 인천공항 통합POS 사용유무가 사용이면 SEND_YN을 A로 설정 start ////TR_SALE_HEADER, TR_SALE_JOURNAL ////기존 //sRet = SaveTranHeader(aParam[0]); // 트란해더 저장 ////변경 ///* //if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1") //{ // sRet = SaveTranHeader("A"); // 트란해더 저장 //} //else //{ // sRet = SaveTranHeader(aParam[0]); // 트란해더 저장 //} //*/ ////#20180131 인천공항 통합POS 사용유무가 사용이면 SEND_YN을 A로 설정 end // 변경(Rhee) if ((m_cPosStatus.Base.CmpCd.Equals("PCUS") && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_COMPLETE) && (m_cTrnStatus.Head.TradeDiv == "0")) { m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_PICKUP; // 픽업모드로 변경 sRet = SaveTranHeader("1"); // 트란해더 저장 } //#20180131 인천공항 통합POS 사용유무가 사용이면 SEND_YN을 A로 설정 start else if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1" //grayber@20180228 [BRKR] 인천공항 SEND_YN 매출전송유무 'A' 제거 && m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.BR) != true //grayber@20180228 [BRKR] 인천공항 SEND_YN 매출전송유무 'A' 제거 ) { sRet = SaveTranHeader("A"); // 트란해더 저장 } //#20180131 인천공항 통합POS 사용유무가 사용이면 SEND_YN을 A로 설정 end else { sRet = SaveTranHeader(aParam[0]); // 트란해더 저장 } //#Rhee, 20180116 미국 예약등록으로 결제완료이면 전송안되게 SEND_YN = '1' 변경 end if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveTranHeader"); return sRet; } if (aParam[0] != "1") // 거래데이터 복구시 주방출력 안함(2017.05.24) { sRet = SaveKtchOrdMsg(); // 주방 데이터 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveKtchOrdMsg"); return sRet; } } //17.05.18 dkshin 쇼킹박스 추가 //쇼킹박스 결제 영수증 번호 update(반품시 필요!) if (m_cTrnStatus.Head.ShockingBoxStat == "1") { sRet = UpdateShockingBoxTradeNo(); if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => UpdateShockingBoxTradeNo"); return sRet; } } //2017-06-02 dkshin 해피앱 추후적립 if (m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.KR) { if (m_cTrnStatus.Head.AftSavePoint > 0) { //#20170809 해피포인트 업무 미사용시 해피앱 추후적립 기능 적용 안되도록 수정 start //기존 //sRet = SaveHPAppAfter(); //변경 //#20180509 해피앱 추후적립 사용여부 옵션 처리 start //기존 //if (PosMstManager.GetPosOption(POS_OPTION.OPT316) != "0") // 해피포인트 업무 사용 여부(0:사용안함, 1:사용함(한국), 2:사용함(중국)) //변경 if (PosMstManager.GetPosOption(POS_OPTION.OPT316) == "1" && // 해피포인트 업무 사용 여부(0:사용안함, 1:사용함(한국), 2:사용함(중국)) PosMstManager.GetPosOption(POS_OPTION.OPT515) == "1") // 해피앱 추후적립 사용 여부(0:사용안함, 1:사용함) //#20180509 해피앱 추후적립 사용여부 옵션 처리 end { //#20181023 반품 건에도 해피앱추후적립 데이터 생성되는 현상 막기 start //기존 //sRet = SaveHPAppAfter(); //변경 //일반 TradeDiv 0 && org_info == "" && TradeKind 00 //일반반품 TradeDiv 1 && org_info != "" && TradeKind 00 //낱개반품 TradeDiv 1 && org_info == "" && TradeKind 00 //낱개반품반품 TradeDiv 0 && org_info != "" && TradeKind 00 //로스 TradeDiv 0 && org_info == "" && TradeKind 50 //로스반품 TradeDiv 1 && org_info != "" && TradeKind 50 string org_info = m_cTrnStatus.Head.OrgSaleDate + m_cTrnStatus.Head.OrgPosNo + m_cTrnStatus.Head.OrgTradeNo; if ((m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE) && (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL && org_info == "")) { sRet = SaveHPAppAfter(); } //#20181023 반품 건에도 해피앱추후적립 데이터 생성되는 현상 막기 end if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveHPAppAfter"); return sRet; } } //#20170809 해피포인트 업무 미사용시 해피앱 추후적립 기능 적용 안되도록 수정 end } } m_cSqlDbService.Commit(); } else { EtcSaveDataMain(aParam[0]); } // 보류 로그 남기기! if (m_cTrnStatus.Head.HoldStat != "") SaveHoldLog(m_cTrnStatus.Head.HoldStat, m_cTrnStatus.Head.HoldOrgRegNo, 0, 0); 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; } #endregion #region 트란해더 저장 처리 /// /// 트란해더 저장 처리 /// /// public string SaveTranHeader(string sSendYN) { string sQuery = ""; string sRet = UserCom.RST_ERR; try { sQuery += " INSERT INTO POSLOG..TR_SALE_HEADER ( "; sQuery += " CMP_CD ,STOR_CD ,SALE_DT ,POS_NO, TRADE_NO ,TRADE_DIV ,TRAIN_MODE_YN ,TRADE_KINDPER ,SYS_DT ,ORD_TIME "; sQuery += " ,PAY_TIME ,PIC_NO ,ORD_PIC_NO ,STOR_OWN_PART_TIME_DIV ,ORG_BILL_POSNO ,ORG_BILLDT ,ORG_BILL_NO ,RTN_RSN_CD ,RTN_RSN_MEMO ,NONSALES_RSN_CD "; sQuery += " ,RESERV_NO ,RESERV_DT ,CUST_NO ,ORD_DIV ,FLOOR_CD ,TBL_NO ,GUESTFLOOR ,FRGNR_DIV ,CUSTCNT ,PAY_GNDR_DIV "; sQuery += " ,PAY_AGE ,MAN_CMPNPSN_CNT ,WOMAN_CMPNPSN_CNT ,QTY ,TOTSALE_AMT ,TOTDC_AMT ,NET_SALE_AMT ,ITEM_DC_AMT ,CPI_DC_AMT,COOP_CARD_DC_AMT "; sQuery += " ,POINT_DC_AMT ,CPN_DC_AMT ,EMP_DC_AMT ,SET_DC_AMT ,ETC_AMT ,EXCEP_DC_AMT ,TOT_VAT ,SVC_FEE_AMT ,SVC_FEE_VAT ,ETC_VAT "; sQuery += " ,AF_ACCUM_POINT_AMT ,AF_ACCUM_POINT_INFO ,PPCARD_CUSTNM ,AMT_DUTCHPAY_YN ,BILLSPR_CNT ,ORDER_NO ,SLACK_FIELD ,MID_CLOSE_SEQ ,PPCARD_CUSTID ,PACK_TRADE_DIV "; //#20170828 해피포인트 적립 제외 버튼 추가 phj, start //기존 //sQuery += " ,SEND_YN ,OUT_SEND_YN ,REG_DATE ,UPD_DATE ,VIP_TY"; //변경 sQuery += " ,SEND_YN ,OUT_SEND_YN ,REG_DATE ,UPD_DATE ,VIP_TY, HP_EXCLUDE_YN"; //#20170828 해피포인트 적립 제외 버튼 추가 phj, END sQuery += " ) VALUES ( "; sQuery += " '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', "; sQuery += " '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', N'{18}', '{19}', "; sQuery += " '{20}', '{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', '{28}', '{29}', "; sQuery += " '{30}', '{31}', '{32}', '{33}', '{34}', '{35}', '{36}', '{37}', '{38}', '{39}', "; sQuery += " '{40}', '{41}', '{42}', '{43}', '{44}', '{45}', '{46}', '{47}', '{48}', '{49}', "; sQuery += " '{50}', '{51}', N'{52}', '{53}', '{54}', '{55}', '{56}', '{57}', '{58}', '{59}', "; //#20170828 해피포인트 적립 제외 버튼 추가 phj, start //기존 //sQuery += " '{60}', '{61}', '{62}', '{63}', '{64}' ) "; //변경 sQuery += " '{60}', '{61}', '{62}', '{63}', '{64}', '{65}' ) "; //#20170828 해피포인트 적립 제외 버튼 추가 phj, END string sRegDateTime = DateTime.Now.ToString("yyyyMMddHHmmss"); // 주문시간 if (m_cTrnStatus.Head.OrderHms.Trim() == "") m_cTrnStatus.Head.OrderHms = m_cTrnStatus.Head.PayHms; 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.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.OrderHms // ORD_TIME , m_cTrnStatus.Head.PayHms // PAY_TIME , m_cTrnStatus.Head.CashierId // PIC_NO , m_cTrnStatus.Head.OrderPicNo // ORD_PIC_NO , m_cTrnStatus.Head.OwnPartDiv // STOR_OWN_PART_TIME_DIV , m_cTrnStatus.Head.OrgPosNo // ORG_BILL_POSNO , m_cTrnStatus.Head.OrgSaleDate // ORG_BILLDT , m_cTrnStatus.Head.OrgTradeNo // ORG_BILL_NO , m_cTrnStatus.Head.RtnReasonCd // RTN_RSN_CD , m_cTrnStatus.Head.RtnReasonMemo // RTN_RSN_MEMO , m_cTrnStatus.Head.NonSaleRsnCd =="" ? "0": m_cTrnStatus.Head.NonSaleRsnCd // NONSALES_RSN_CD , m_cTrnStatus.Head.ReserveNo // RESERV_NO , m_cTrnStatus.Head.ReserveYmd // RESERV_DT , m_cTrnStatus.Head.MemberCustNo // CUST_NO , m_cTrnStatus.Head.OrderFlag // ORD_DIV , m_cTrnStatus.Head.FloorCd // FLOOR_CD , m_cTrnStatus.Head.TableNo // TBL_NO , m_cTrnStatus.Head.CustFloor // GUESTFLOOR , m_cTrnStatus.Head.ForeignFlag // FRGNR_DIV , m_cTrnStatus.Head.CustCnt // CUSTCNT , m_cTrnStatus.Head.PayGndrDiv // PAY_GNDR_DIV , m_cTrnStatus.Head.PayAge // PAY_AGE , m_cTrnStatus.Head.ManCmpnpsnCnt // MAN_CMPNPSN_CNT , m_cTrnStatus.Head.WomanCmpnpsnCnt // WOMAN_CMPNPSN_CNT , m_cTrnStatus.Head.TotQty // QTY , m_cTrnStatus.Head.TotSaleAmt // TOTSALE_AMT , m_cTrnStatus.Head.TotDcAmt // TOTDC_AMT , m_cTrnStatus.Head.NetSaleAmt // NET_SALE_AMT , m_cTrnStatus.Head.ItemDcAmt // ITEM_DC_AMT , m_cTrnStatus.Head.CpiDcAmt // CPI_DC_AMT , m_cTrnStatus.Head.CoopCardDcAmt // COOP_CARD_DC_AMT , m_cTrnStatus.Head.PointDcAmt // POINT_DC_AMT , m_cTrnStatus.Head.CpnDcAmt // CPN_DC_AMT , m_cTrnStatus.Head.EmpDcAmt // EMP_DC_AMT , m_cTrnStatus.Head.SetDcAmt // SET_DC_AMT , m_cTrnStatus.Head.EtcDcAmt // ETC_AMT , m_cTrnStatus.Head.ExcepDcAmt // EXCEP_DC_AMT , m_cTrnStatus.Head.TotVatAmt // TOT_VAT , m_cTrnStatus.Head.SvcFeeAmt // SVC_FEE_AMT , m_cTrnStatus.Head.SvcFeeVat // SVC_FEE_VAT , m_cTrnStatus.Head.EtcVatAmt // ETC_VAT , m_cTrnStatus.Head.AftSavePoint // AF_ACCUM_POINT_AMT , m_cTrnStatus.Head.AftSaveAddInfo // AF_ACCUM_POINT_INFO , m_cTrnStatus.Head.PpCardCustNm // PPCARD_CUSTNM , m_cTrnStatus.Head.AmtDutchPayYn // AMT_DUTCHPAY_YN , m_cTrnStatus.Head.BillSplitCnt // BILLSPR_CNT , m_cTrnStatus.Head.OrderNo // ORDER_NO , "" // SLACK_FIELD , m_cTrnStatus.Head.MidCloseSeq // MID_CLOSE_SEQ , m_cTrnStatus.Head.PpCardCustId // PPCARD_CUSTID , m_cTrnStatus.Head.PackTradeDiv // PACK_TRADE_DIV , sSendYN // SEND_YN , '0' // OUT_SEND_YN , sRegDateTime // REG_DATE , sRegDateTime // UPD_DATE , m_cTrnStatus.Head.VipTy // VIP_TY //#20170828 해피포인트 적립 제외 버튼 추가 phj, start , m_cTrnStatus.Head.HP_EXCLUDE_YN // HP_EXCLUDE_YN //#20170828 해피포인트 적립 제외 버튼 추가 phj, END ); 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); } m_cSqlDbService.Rollback(); return sRet; } #endregion #region 상품 저장 처리 /// /// 상품 저장 처리 /// /// public string SavePluItem() { string sQuery = ""; string sSQL = ""; string sRet = UserCom.RST_ERR; int iSeq = 1; //#20170926 매출 생성시 부가상품인 경우 서브점포코드 안들어가는 현상 수정 start string sSubStorCd = ""; //#20170926 매출 생성시 부가상품인 경우 서브점포코드 안들어가는 현상 수정 end //#20180118 KDS 부가 정보 사용시 TAKE IN / TAKE OUT 선택값 TR_SALE_DETAIL.TAKE_IN_OUT_DIV 값 설정 start string sTakeInOutDiv = ""; //#20180118 KDS 부가 정보 사용시 TAKE IN / TAKE OUT 선택값 TR_SALE_DETAIL.TAKE_IN_OUT_DIV 값 설정 end try { //#20171227 거래데이터 저장 오류 관련 로그추가 start /* UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) "SavePluItem STEP 1"); */ //#20171227 거래데이터 저장 오류 관련 로그추가 end // 상품정보 ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); if (aSaleItem.Count == 0) return UserCom.RST_OK; //#20171227 거래데이터 저장 오류 관련 로그추가 start /* UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) "SavePluItem STEP 2"); */ //#20171227 거래데이터 저장 오류 관련 로그추가 end sQuery += " INSERT INTO POSLOG..TR_SALE_DETAIL ( "; sQuery += " CMP_CD ,STOR_CD ,SALE_DT ,POS_NO , TRADE_NO ,SEQ ,ORD_TIME ,FLOOR_CD ,TBL_NO ,SUB_SHOP_CD "; sQuery += " ,ITEM_PLU_CD ,ITEM_DIV ,SALE_QTY ,SALE_PRC ,SALE_AMT ,FLAVOUR_DIV ,FLAVOUR_WEIGHT ,ITEM_INPUT_DIV ,ITEM_BAR_CD ,TAKE_IN_OUT_DIV "; sQuery += " ,ITEM_TAX_DIV ,TAX_AMT_INCLUDE_YN, TAXRATE_CD, APPLY_TAX_AMT, SVC_FEE_AMT ,SVC_FEE_VAT ,NONSALES_RSN_CD, SVC_TAXREATE_CD, BILL_AMT ,DC_DIV "; sQuery += " ,DC_TYPE ,DC_RATE ,ITEM_DC_AMT ,SUM_DC_AMT ,CPI_DC_QTY ,CPI_DC_AMT ,COOP_CARD_DC_DIV ,COOP_CARD_DC_AMT ,POINT_DC_DIV ,POINT_DC_AMT "; sQuery += " ,CPN_DC_DIV ,CPN_DC_AMT ,EMP_DC_DIV ,EMP_DC_AMT ,SET_DC_AMT ,ETC_DC_DIV ,ETC_DC_AMT ,EXCEP_DC_DIV ,EXCEP_DC_AMT ,PACK_DIV "; sQuery += " ,SUBPRC_MENU_KEY_DIV ,SET_MENU_CD ,CPI_PRESENT_DIV ,BILLSPR_NO ,SALE_GIFT_NO ,CPN_NO ,SLACK_FIELD ,DISPO_ITEM_DIV ,CANCEL_DIV ,REG_DATE"; //#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 start //기존 //sQuery += " ,UPD_DATE, NOTAX_DIV "; //변경 sQuery += " ,UPD_DATE, NOTAX_DIV, HPO_REG_YN "; //#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 end sQuery += " ) VALUES ( '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', "; sQuery += " '{10}','{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', "; sQuery += " '{20}','{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', '{28}', '{29}', "; sQuery += " '{30}','{31}', '{32}', '{33}', '{34}', '{35}', '{36}', '{37}', '{38}', '{39}',"; sQuery += " '{40}','{41}', '{42}', '{43}', '{44}', '{45}', '{46}', '{47}', '{48}', '{49}', "; sQuery += " '{50}','{51}', '{52}', '{53}', '{54}', '{55}', '{56}', '{57}', '{58}', '{59}', "; //#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 start //기존 //sQuery += " '{60}','{61}' )"; //변경 sQuery += " '{60}','{61}','{62}' )"; //#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 end string sRegDateTime = DateTime.Now.ToString("yyyyMMddHHmmss"); //#20180118 KDS 부가 정보 사용시 TAKE IN / TAKE OUT 선택값 TR_SALE_DETAIL.TAKE_IN_OUT_DIV 값 설정 start //KDS 부가 정보 사용 여부 [고객명/VIP 구분](0:사용안함, 1:사용함) - 쒝쒝버거용 if (CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT027), "0") == "1") { if (m_cTrnStatus.Head.PackTradeDiv == "1") { sTakeInOutDiv = PosConst.TAKE_IN_OUT_DIV.TAKE_IN; } else if (m_cTrnStatus.Head.PackTradeDiv == "2") { sTakeInOutDiv = PosConst.TAKE_IN_OUT_DIV.TAKE_OUT; } } //#20180118 KDS 부가 정보 사용시 TAKE IN / TAKE OUT 선택값 TR_SALE_DETAIL.TAKE_IN_OUT_DIV 값 설정 end for (int iRow = 0; iRow < aSaleItem.Count; iRow++) { Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iRow]; if (cSaleItem.CANCEL_DIV == "1" || cSaleItem.CANCEL_DIV_MAIN == "1") cSaleItem.CANCEL_DIV = "1"; if (cSaleItem.CANCEL_DIV == "1" && m_cPosStatus.Sale.DutchPayFlg == "1" && (cSaleItem.DUTCH_PAY_CAN_DIV != "1" || cSaleItem.DUTCH_PAY_MAIN_CAN_DIV != "1")) { continue; } // 취소 소계 전후 체크 string sCanDiv = cSaleItem.CANCEL_DIV; if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) { sCanDiv = m_cTrnStatus.Sale.SubTotalCancelDiv == true ? PosConst.CANCEL_DIV.CANCEL_SUBTOT : PosConst.CANCEL_DIV.CANCEL; } // 주문시간 if (cSaleItem.ORD_TIME.Trim() == "") cSaleItem.ORD_TIME = m_cTrnStatus.Head.PayHms; //#20170926 매출 생성시 부가상품인 경우 서브점포코드 안들어가는 현상 수정 start //서브 점포 코드가 없으면 직전 서브 점포 코드로 셋팅 if ((cSaleItem.SUB_SHOP_CD.Trim() == "") && (cSaleItem.ITEM_DIV == "3")) { cSaleItem.SUB_SHOP_CD = sSubStorCd; } else { sSubStorCd = cSaleItem.SUB_SHOP_CD; } //#20170926 매출 생성시 부가상품인 경우 서브점포코드 안들어가는 현상 수정 end sSQL = 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 , iSeq++ //iRow + 1 // SEQ , cSaleItem.ORD_TIME // ORD_TIME , cSaleItem.FLOOR_CD // FLOOR_CD , cSaleItem.TBL_NO // TBL_NO , cSaleItem.SUB_SHOP_CD // SUB_SHOP_CD , cSaleItem.ITEM_PLU_CD // ITEM_PLU_CD , cSaleItem.ITEM_DIV // ITEM_DIV , cSaleItem.SALE_QTY // SALE_QTY , cSaleItem.SALE_PRC // SALE_PRC , cSaleItem.SALE_AMT // SALE_AMT , cSaleItem.FLAVOUR_DIV // FLAVOUR_DIV , cSaleItem.FLAVOUR_STOCK // FLAVOUR_STOCK , cSaleItem.ITEM_INPUT_DIV // ITEM_INPUT_DIV , cSaleItem.ITEM_BAR_CD // ITEM_BAR_CD //#20180118 KDS 부가 정보 사용시 TAKE IN / TAKE OUT 선택값 TR_SALE_DETAIL.TAKE_IN_OUT_DIV 값 설정 start //기존 //, cSaleItem.TAKE_IN_OUT_DIV // TAKE_IN_OUT_DIV //변경 , sTakeInOutDiv == "" ? cSaleItem.TAKE_IN_OUT_DIV : sTakeInOutDiv // TAKE_IN_OUT_DIV //#20180118 KDS 부가 정보 사용시 TAKE IN / TAKE OUT 선택값 TR_SALE_DETAIL.TAKE_IN_OUT_DIV 값 설정 end , cSaleItem.ITEM_TAX_DIV // ITEM_TAX_DIV , cSaleItem.TAX_AMT_INCLUDE_YN // TAX_AMT_INCLUDE_YN , cSaleItem.TAXRATE_CD // TAXRATE_CD , cSaleItem.APPLY_TAX_AMT // APPLY_TAX_AMT , cSaleItem.SVC_FEE_AMT // SVC_FEE_AMT , cSaleItem.SVC_FEE_VAT // SVC_FEE_VAT , cSaleItem.NONSALES_RSN_CD == "" ? "0" : cSaleItem.NONSALES_RSN_CD // NONSALES_RSN_CD , cSaleItem.SVC_TAXREATE_CD //SVC_TAXREATE_CD , cSaleItem.BILL_AMT // BILL_AMT , cSaleItem.DC_DIV , cSaleItem.DC_TYPE , cSaleItem.DC_RATE , cSaleItem.ITEM_DC_AMT , cSaleItem.SUM_DC_AMT , cSaleItem.CPI_DC_QTY , cSaleItem.CPI_DC_AMT , cSaleItem.COOP_CARD_DC_DIV , cSaleItem.COOP_CARD_DC_AMT , cSaleItem.POINT_DC_DIV , cSaleItem.POINT_DC_AMT , cSaleItem.CPN_DC_DIV , cSaleItem.CPN_DC_AMT , cSaleItem.EMP_DC_DIV , cSaleItem.EMP_DC_AMT , cSaleItem.SET_DC_AMT , cSaleItem.ETC_DC_DIV , cSaleItem.ETC_DC_AMT , cSaleItem.EXCEP_DC_DIV , cSaleItem.EXCEP_DC_AMT , cSaleItem.PACK_DIV , cSaleItem.SUBPRC_MENU_KEY_DIV , cSaleItem.SET_MENU_CD == "" ? cSaleItem.SUB_MENU_MAIN_CD : cSaleItem.SET_MENU_CD , cSaleItem.CPI_PRESENT_DIV , cSaleItem.BILLSPR_NO , cSaleItem.SALE_GIFT_NO , cSaleItem.CPN_NO , cSaleItem.SLACK_FIELD // 선불카드권종(2017.06.27) , cSaleItem.DISPO_ITEM_DIV , sCanDiv , sRegDateTime // REG_DATE , sRegDateTime // UPD_DATE , cSaleItem.NOTAX_DIV //#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 start , cSaleItem.HPO_REG_YN //#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 end ); //#20171227 거래데이터 저장 오류 관련 로그추가 start /* UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) "SavePluItem STEP 3 -> " + sSQL); */ //#20171227 거래데이터 저장 오류 관련 로그추가 end if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } } 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); } m_cSqlDbService.Rollback(); return sRet; } #endregion #region 결제 저장 처리 /// /// 결제 저장 처리 /// /// public string SavePaymentItem() { string sQuery = ""; string sSQL = ""; string sRet = UserCom.RST_ERR; try { // 결제정보 ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM); if (alPayItem.Count == 0) return UserCom.RST_OK; sQuery += " INSERT INTO POSLOG..TR_SALE_PAY ( "; sQuery += " CMP_CD, STOR_CD, SALE_DT, POS_NO, TRADE_NO, SEQ, PAY_WAY_CD, PAY_AMT, PAY_DTL_CD_01, PAY_DTL_CD_02"; sQuery += " , PAY_DTL_CD_03, PAY_DTL_CD_04, PAY_DTL_CD_05, QTY_ENTRY_01, QTY_ENTRY_02, QTY_ENTRY_03, QTY_ENTRY_04, QTY_ENTRY_05, AMT_ENTRY_01, AMT_ENTRY_02"; sQuery += " , AMT_ENTRY_03, AMT_ENTRY_04, AMT_ENTRY_05, AMT_ENTRY_06, AMT_ENTRY_07, AMT_ENTRY_08, AMT_ENTRY_09,AMT_ENTRY_10, OCCUR_ENTRY_01, OCCUR_ENTRY_02"; sQuery += " , OCCUR_ENTRY_03, OCCUR_ENTRY_04, OCCUR_ENTRY_05, OCCUR_ENTRY_06, OCCUR_ENTRY_07, OCCUR_ENTRY_08, OCCUR_ENTRY_09, OCCUR_ENTRY_10, OCCUR_ENTRY_11, OCCUR_ENTRY_12"; sQuery += " , OCCUR_ENTRY_13, OCCUR_ENTRY_14, OCCUR_ENTRY_15, OCCUR_ENTRY_16, OCCUR_ENTRY_17, OCCUR_ENTRY_18, OCCUR_ENTRY_19, OCCUR_ENTRY_20, OCCUR_ENTRY_21, OCCUR_ENTRY_22"; sQuery += " , OCCUR_ENTRY_23, OCCUR_ENTRY_24, OCCUR_ENTRY_25, BILLSPR_NO, CANCEL_DIV, REG_DATE, UPD_DATE "; sQuery += " ) VALUES ( "; sQuery += " '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', "; sQuery += " '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', "; sQuery += " '{20}', '{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', N'{28}', N'{29}', "; sQuery += " N'{30}', N'{31}', N'{32}', N'{33}', N'{34}', N'{35}', N'{36}', N'{37}', N'{38}', N'{39}', "; sQuery += " N'{40}', N'{41}', N'{42}', N'{43}', N'{44}', N'{45}', N'{46}', N'{47}', N'{48}', N'{49}', "; sQuery += " N'{50}', N'{51}', N'{52}', '{53}', '{54}', '{55}', '{56}' )"; for (int iRow = 0; iRow < alPayItem.Count; iRow++) { Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)alPayItem[iRow]; sSQL = 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 , iRow + 1 // SEQ , cPayItem.PAY_WAY_CD // PAY_WAY_CD , cPayItem.PAY_AMT // PAY_AMT , cPayItem.PAY_DTL_CD_01 // PAY_DTL_CD_01 , cPayItem.PAY_DTL_CD_02 // PAY_DTL_CD_02 , cPayItem.PAY_DTL_CD_03 // PAY_DTL_CD_03 , cPayItem.PAY_DTL_CD_04 // PAY_DTL_CD_04 , cPayItem.PAY_DTL_CD_05 // PAY_DTL_CD_05 , cPayItem.QTY_ENTRY_01 // QTY_ENTRY_01 , cPayItem.QTY_ENTRY_02 // QTY_ENTRY_02 , cPayItem.QTY_ENTRY_03 // QTY_ENTRY_03 , cPayItem.QTY_ENTRY_04 // QTY_ENTRY_04 , cPayItem.QTY_ENTRY_05 // QTY_ENTRY_05 , cPayItem.AMT_ENTRY_01 // AMT_ENTRY_01 , cPayItem.AMT_ENTRY_02 // AMT_ENTRY_02 , cPayItem.AMT_ENTRY_03 // AMT_ENTRY_03 , cPayItem.AMT_ENTRY_04 // AMT_ENTRY_04 , cPayItem.AMT_ENTRY_05 // AMT_ENTRY_05 , cPayItem.AMT_ENTRY_06 // AMT_ENTRY_06 , cPayItem.AMT_ENTRY_07 // AMT_ENTRY_07 , cPayItem.AMT_ENTRY_08 // AMT_ENTRY_08 , cPayItem.AMT_ENTRY_09 // AMT_ENTRY_09 , cPayItem.AMT_ENTRY_10 // AMT_ENTRY_10 , cPayItem.OCCUR_ENTRY_01 // OCCUR_ENTRY_01 , cPayItem.OCCUR_ENTRY_02 // OCCUR_ENTRY_02 , cPayItem.OCCUR_ENTRY_03 // OCCUR_ENTRY_03 , cPayItem.OCCUR_ENTRY_04 // OCCUR_ENTRY_04 , cPayItem.OCCUR_ENTRY_05 // OCCUR_ENTRY_05 , cPayItem.OCCUR_ENTRY_06 // OCCUR_ENTRY_06 , cPayItem.OCCUR_ENTRY_07 // OCCUR_ENTRY_07 , cPayItem.OCCUR_ENTRY_08 // OCCUR_ENTRY_08 , cPayItem.OCCUR_ENTRY_09 // OCCUR_ENTRY_09 , cPayItem.OCCUR_ENTRY_10 // OCCUR_ENTRY_10 , cPayItem.OCCUR_ENTRY_11 // OCCUR_ENTRY_11 , cPayItem.OCCUR_ENTRY_12 // OCCUR_ENTRY_12 , cPayItem.OCCUR_ENTRY_13 // OCCUR_ENTRY_13 , cPayItem.OCCUR_ENTRY_14 // OCCUR_ENTRY_14 , cPayItem.OCCUR_ENTRY_15 // OCCUR_ENTRY_15 , cPayItem.OCCUR_ENTRY_16 // OCCUR_ENTRY_16 , cPayItem.OCCUR_ENTRY_17 // OCCUR_ENTRY_17 , cPayItem.OCCUR_ENTRY_18 // OCCUR_ENTRY_18 , cPayItem.OCCUR_ENTRY_19 // OCCUR_ENTRY_19 , cPayItem.OCCUR_ENTRY_20 // OCCUR_ENTRY_20 , cPayItem.OCCUR_ENTRY_21 // OCCUR_ENTRY_21 , cPayItem.OCCUR_ENTRY_22 // OCCUR_ENTRY_22 , cPayItem.OCCUR_ENTRY_23 // OCCUR_ENTRY_23 , cPayItem.OCCUR_ENTRY_24 // OCCUR_ENTRY_24 , cPayItem.OCCUR_ENTRY_25 // OCCUR_ENTRY_25 , cPayItem.BILLSPR_NO // BILLSPR_NO , cPayItem.CANCEL_DIV // CANCEL_DIV , DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss")); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } //현금 알리 저장! AddCashAlarm(cPayItem.PAY_WAY_CD, cPayItem.PAY_DTL_CD_01, cPayItem.PAY_AMT, cPayItem.AMT_ENTRY_02); } 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); } m_cSqlDbService.Rollback(); return sRet; } #endregion #region 기타 수단코드 저장 /// /// 기타 수단코드 저장 /// /// public string SaveEtcItem() { string sQuery = ""; string sSQL = ""; string sRet = UserCom.RST_ERR; try { ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM); if (alEtcItem.Count == 0) return UserCom.RST_OK; sQuery += " INSERT INTO POSLOG..TR_SALE_ETC ( "; sQuery += " CMP_CD, STOR_CD, SALE_DT, POS_NO, TRADE_NO, SEQ, ETC_WAY_CD, ETC_AMT, ETC_DTL_CD_01, ETC_DTL_CD_02 "; sQuery += " , ETC_DTL_CD_03, ETC_DTL_CD_04, ETC_DTL_CD_05, QTY_ENTRY_01, QTY_ENTRY_02, QTY_ENTRY_03, QTY_ENTRY_04, QTY_ENTRY_05, AMT_ENTRY_01, AMT_ENTRY_02 "; sQuery += " , AMT_ENTRY_03, AMT_ENTRY_04, AMT_ENTRY_05, AMT_ENTRY_06, AMT_ENTRY_07, AMT_ENTRY_08, AMT_ENTRY_09, AMT_ENTRY_10, OCCUR_ENTRY_01, OCCUR_ENTRY_02 "; sQuery += " , OCCUR_ENTRY_03, OCCUR_ENTRY_04, OCCUR_ENTRY_05, OCCUR_ENTRY_06, OCCUR_ENTRY_07, OCCUR_ENTRY_08, OCCUR_ENTRY_09, OCCUR_ENTRY_10, OCCUR_ENTRY_11, OCCUR_ENTRY_12 "; sQuery += " , OCCUR_ENTRY_13, OCCUR_ENTRY_14, OCCUR_ENTRY_15, OCCUR_ENTRY_16, OCCUR_ENTRY_17, OCCUR_ENTRY_18, OCCUR_ENTRY_19,OCCUR_ENTRY_20, OCCUR_ENTRY_21, OCCUR_ENTRY_22 "; sQuery += " , OCCUR_ENTRY_23, OCCUR_ENTRY_24, OCCUR_ENTRY_25, BILLSPR_NO, CANCEL_DIV, REG_DATE, UPD_DATE "; sQuery += " ) VALUES ( "; sQuery += " '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , '{9}', "; sQuery += " '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}' , '{19}', "; sQuery += " '{20}', '{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', N'{28}' , N'{29}', "; sQuery += " N'{30}',N'{31}', N'{32}', N'{33}', N'{34}', N'{35}', N'{36}', N'{37}', N'{38}' , N'{39}', "; sQuery += " N'{40}',N'{41}', N'{42}', N'{43}', N'{44}', N'{45}', N'{46}', N'{47}', N'{48}' , N'{49}', "; sQuery += " N'{50}',N'{51}', N'{52}', '{53}', '{54}', '{55}', '{56}' )"; for (int iRow = 0; iRow < alEtcItem.Count; iRow++) { Column.TR_ETC.DATA cEtcItem = (Column.TR_ETC.DATA)alEtcItem[iRow]; sSQL = 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 , iRow + 1 // SEQ , cEtcItem.ETC_WAY_CD // ETC_WAY_CD , cEtcItem.ETC_AMT // ETC_AMT , cEtcItem.ETC_DTL_CD_01 // ETC_DTL_CD_01 , cEtcItem.ETC_DTL_CD_02 // ETC_DTL_CD_02 , cEtcItem.ETC_DTL_CD_03 // ETC_DTL_CD_03 , cEtcItem.ETC_DTL_CD_04 // ETC_DTL_CD_04 , cEtcItem.ETC_DTL_CD_05 // ETC_DTL_CD_05 , cEtcItem.QTY_ENTRY_01 // QTY_ENTRY_01 , cEtcItem.QTY_ENTRY_02 // QTY_ENTRY_02 , cEtcItem.QTY_ENTRY_03 // QTY_ENTRY_03 , cEtcItem.QTY_ENTRY_04 // QTY_ENTRY_04 , cEtcItem.QTY_ENTRY_05 // QTY_ENTRY_05 , cEtcItem.AMT_ENTRY_01 // AMT_ENTRY_01 , cEtcItem.AMT_ENTRY_02 // AMT_ENTRY_02 , cEtcItem.AMT_ENTRY_03 // AMT_ENTRY_03 , cEtcItem.AMT_ENTRY_04 // AMT_ENTRY_04 , cEtcItem.AMT_ENTRY_05 // AMT_ENTRY_05 , cEtcItem.AMT_ENTRY_06 // AMT_ENTRY_06 , cEtcItem.AMT_ENTRY_07 // AMT_ENTRY_07 , cEtcItem.AMT_ENTRY_08 // AMT_ENTRY_08 , cEtcItem.AMT_ENTRY_09 // AMT_ENTRY_09 , cEtcItem.AMT_ENTRY_10 // AMT_ENTRY_10 , cEtcItem.OCCUR_ENTRY_01 // OCCUR_ENTRY_01 , cEtcItem.OCCUR_ENTRY_02 // OCCUR_ENTRY_02 , cEtcItem.OCCUR_ENTRY_03 // OCCUR_ENTRY_03 , cEtcItem.OCCUR_ENTRY_04 // OCCUR_ENTRY_04 , cEtcItem.OCCUR_ENTRY_05 // OCCUR_ENTRY_05 , cEtcItem.OCCUR_ENTRY_06 // OCCUR_ENTRY_06 , cEtcItem.OCCUR_ENTRY_07 // OCCUR_ENTRY_07 , cEtcItem.OCCUR_ENTRY_08 // OCCUR_ENTRY_08 , cEtcItem.OCCUR_ENTRY_09 // OCCUR_ENTRY_09 , cEtcItem.OCCUR_ENTRY_10 // OCCUR_ENTRY_10 , cEtcItem.OCCUR_ENTRY_11 // OCCUR_ENTRY_11 , cEtcItem.OCCUR_ENTRY_12 // OCCUR_ENTRY_12 , cEtcItem.OCCUR_ENTRY_13 // OCCUR_ENTRY_13 , cEtcItem.OCCUR_ENTRY_14 // OCCUR_ENTRY_14 , cEtcItem.OCCUR_ENTRY_15 // OCCUR_ENTRY_15 , cEtcItem.OCCUR_ENTRY_16 // OCCUR_ENTRY_16 , cEtcItem.OCCUR_ENTRY_17 // OCCUR_ENTRY_17 , cEtcItem.OCCUR_ENTRY_18 // OCCUR_ENTRY_18 , cEtcItem.OCCUR_ENTRY_19 // OCCUR_ENTRY_19 , cEtcItem.OCCUR_ENTRY_20 // OCCUR_ENTRY_20 , cEtcItem.OCCUR_ENTRY_21 // OCCUR_ENTRY_21 , cEtcItem.OCCUR_ENTRY_22 // OCCUR_ENTRY_22 , cEtcItem.OCCUR_ENTRY_23 // OCCUR_ENTRY_23 , cEtcItem.OCCUR_ENTRY_24 // OCCUR_ENTRY_24 , cEtcItem.OCCUR_ENTRY_25 // OCCUR_ENTRY_25 , cEtcItem.BILLSPR_NO // BILLSPR_NO , cEtcItem.CANCEL_DIV // CANCEL_DIV , DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss")); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } } 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); } m_cSqlDbService.Rollback(); return sRet; } #endregion #region 캠페인 정보 저장 /// /// 캠페인 정보 저장 /// /// public string SaveCampaignItem() { string sQuery = ""; string sSQL = ""; string sRet = UserCom.RST_ERR; try { // 상품 정보 ArrayList alTrSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); if (alTrSaleItem.Count == 0) return UserCom.RST_OK; // 캠페인 정보 ArrayList alTrCpiItem = (ArrayList)StateObject.GetItemObject(Column.TR_SALE_CPI_RSLT.ITEM); // 상품 캠페인 정보 for (int i = 0; i < alTrSaleItem.Count; i++ ) { Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)alTrSaleItem[i]; if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cSaleItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue;// 지정취소 if (cSaleItem.alTrSaleCpi == null) continue; foreach (Column.TR_SALE_CPI_RSLT.DATA cTrPluCpi in cSaleItem.alTrSaleCpi) { if (cTrPluCpi.PAY_DC_DIV == PosConst.PAY_DC_TYPE.PAY) continue; // 할인결제구분 (1:결제, 2:할인) if (cTrPluCpi.DC_SUM_AMT <= 0 && cTrPluCpi.DC_QTY <= 0) continue; Column.TR_SALE_CPI_RSLT.DATA cTrSaleCpi = new Column.TR_SALE_CPI_RSLT.DATA(); // 캠페인 실적 정보 설정 cTrSaleCpi.NMTAX_SEQ = i + 1; cTrSaleCpi.CPI_CD = cTrPluCpi.CPI_CD; cTrSaleCpi.ITEM_APPLY_METHD = cTrPluCpi.ITEM_APPLY_METHD; cTrSaleCpi.SUB_SHOP_CD = cTrPluCpi.SUB_SHOP_CD; cTrSaleCpi.ITEM_PLU_CD = cTrPluCpi.ITEM_PLU_CD; cTrSaleCpi.DC_QTY = cTrPluCpi.DC_QTY; cTrSaleCpi.DC_PRC = cTrPluCpi.DC_PRC; cTrSaleCpi.DC_SUM_AMT = cTrPluCpi.DC_SUM_AMT; cTrSaleCpi.CPI_CUST_BNFT_TYPE = cTrPluCpi.CPI_CUST_BNFT_TYPE; cTrSaleCpi.LTTR_NMPLAT_NO = cTrPluCpi.LTTR_NMPLAT_NO; cTrSaleCpi.TRGT_CUST_TYPE = cTrPluCpi.TRGT_CUST_TYPE; cTrSaleCpi.BILLSPR_NO = cTrPluCpi.BILLSPR_NO; cTrSaleCpi.SLACK_FIELD = cTrPluCpi.SLACK_FIELD; cTrSaleCpi.CANCEL_DIV = cTrPluCpi.CANCEL_DIV; cTrSaleCpi.ACCUM_POINT = cTrPluCpi.ACCUM_POINT; cTrSaleCpi.CUST_PAY_TYPE = cTrPluCpi.CUST_PAY_TYPE; cTrSaleCpi.PRESENT_DIV = cTrPluCpi.PRESENT_DIV; alTrCpiItem.Add(cTrSaleCpi); } } if (alTrCpiItem.Count == 0) return UserCom.RST_OK; sQuery += " INSERT INTO POSLOG..TR_SALE_CPI_RSLT ( "; sQuery += " CMP_CD, STOR_CD, SALE_DT, POS_NO, TRADE_NO, SEQ, CPI_TYPE, NMTAX_SEQ, CPI_CD, "; sQuery += " SUB_SHOP_CD, ITEM_PLU_CD, DC_QTY, DC_PRC, DC_SUM_AMT, CPI_DIV, PAYMNT_DIV, ACCUM_POINT, LTTR_NMPLAT_NO, CPI_CUST_DIV, "; sQuery += " BILLSPR_NO, SLACK_FIELD, CANCEL_DIV, REG_DATE, UPD_DATE "; sQuery += " ) VALUES ( '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , '{9}', "; sQuery += " '{10}','{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}' , '{19}', "; sQuery += " '{20}','{21}', '{22}', '{23}' )"; // 기타 캠페인 정보 for(int i = 0; i < alTrCpiItem.Count ; i++) { Column.TR_SALE_CPI_RSLT.DATA cTrSaleCpi = (Column.TR_SALE_CPI_RSLT.DATA)alTrCpiItem[i]; if (cTrSaleCpi.CANCEL_DIV == "1") continue; sSQL = 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.TradeNo // TRADE_NO //, m_cTrnStatus.Head.RegNo // REG_NO , i + 1 // SEQ , cTrSaleCpi.ITEM_APPLY_METHD // CPI_TYPE , cTrSaleCpi.NMTAX_SEQ // NMTAX_SEQ , cTrSaleCpi.CPI_CD // CPI_CD , cTrSaleCpi.SUB_SHOP_CD // SUB_SHOP_CD , cTrSaleCpi.ITEM_PLU_CD // ITEM_PLU_CD , cTrSaleCpi.DC_QTY // DC_QTY , cTrSaleCpi.DC_PRC // DC_PRC , cTrSaleCpi.DC_SUM_AMT // DC_SUM_AMT , cTrSaleCpi.CPI_CUST_BNFT_TYPE // CPI_DIV , cTrSaleCpi.CUST_PAY_TYPE // PAYMNT_DIV , cTrSaleCpi.ACCUM_POINT // ACCUM_POINT , cTrSaleCpi.LTTR_NMPLAT_NO // LTTR_NMPLAT_NO , cTrSaleCpi.TRGT_CUST_TYPE // CPI_CUST_DIV , cTrSaleCpi.BILLSPR_NO // BILLSPR_NO , cTrSaleCpi.SLACK_FIELD // SLACK_FIELD , "0" // CANCEL_DIV , DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss")); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } } 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); } m_cSqlDbService.Rollback(); return sRet; } #endregion #region 사인데이터 저장 /// /// 사인데이터 저장 /// /// public string SaveSignItem(string sSendYN) { string sQuery = ""; string sSQL = ""; string sRet = UserCom.RST_ERR; try { ArrayList alSignItem = (ArrayList)StateObject.GetItemObject(Column.TR_SIGN.ITEM); if (alSignItem.Count == 0) return UserCom.RST_OK; sQuery += " INSERT INTO POSLOG.dbo.TR_SALE_SIGN_LOG( "; sQuery += " CMP_CD,SALE_DT,STOR_CD,POS_NO,TRADE_NO,SEQ,PAY_SEQ,SIGN_TIME,SIGN_DATA "; sQuery += " ,SEND_YN,REG_DATE,UPD_DATE "; sQuery += " ) VALUES ( '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , '{9}', "; sQuery += " '{10}','{11}' )"; for (int iRow = 0; iRow < alSignItem.Count; iRow++) { Column.TR_SIGN.DATA cSignItem = (Column.TR_SIGN.DATA)alSignItem[iRow]; sSQL = 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 , iRow + 1 // SEQ , cSignItem.PAY_SEQ , cSignItem.SIGN_TIME , cSignItem.SIGN_DATA , sSendYN , DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss")); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } } 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); } m_cSqlDbService.Rollback(); return sRet; } #endregion #region 입출금 저장 /// /// 입출금 저장 /// /// public string SaveDpstWthdr() { string sReturn = UserCom.RST_ERR; string sQuery = string.Empty; string sInsQuery = string.Empty; try { // 입출금 정보 ArrayList aSaleDpstWthdr = (ArrayList)StateObject.GetItemObject(Column.SALE_DPST_WTHDR.ITEM); if (aSaleDpstWthdr.Count == 0) return UserCom.RST_OK; if (m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword) == true) { sInsQuery += " INSERT INTO POSLOG..ETC_SALE_DPST_WTHDR ( "; sInsQuery += " CMP_CD ,SALE_DT ,STOR_CD ,POS_NO ,REG_NO, SEQ ,TRADE_NO ,DPST_WTHDR_TYPE ,DPST_WTHDR_ACC_CD, DPST_WTHDR_CD, DPST_WTHDR_QTY, DPST_WTHDR_AMT "; sInsQuery += ",DPST_WTHDR_NM ,CUST_NO, STOR_PAY_TYPE, ETC_REASON, SLACK_FIELD_01 ,SLACK_FIELD_02 ,SLACK_FIELD_03 ,SLACK_FIELD_04 ,SLACK_FIELD_05 "; sInsQuery += ",REG_DATE ,UPD_DATE "; sInsQuery += " ) VALUES ( '{0}', '{1}', '{2}', '{3}', '{4}', {5}, '{6}', '{7}', '{8}' , '{9}', "; sInsQuery += " {10},'{11}', N'{12}', '{13}', '{14}', N'{15}', '{16}', '{17}', '{18}', '{19}', '{20}', '{21}', '{22}' )"; } for (int iRow = 0; iRow < aSaleDpstWthdr.Count; iRow++) { Column.SALE_DPST_WTHDR.DATA cSaleDpstWthdr = (Column.SALE_DPST_WTHDR.DATA)aSaleDpstWthdr[iRow]; // 준비금 합계는 저장하지 않는다. if (cSaleDpstWthdr.DPST_WTHDR_CD == PosConst.FRM_ACC_REMONEY_CODE.TOTAL_REMONEY) continue; string sRegDateTime = DateTime.Now.ToString("yyyyMMddHHmmss"); sQuery = string.Format(sInsQuery , m_cTrnStatus.Head.CmpCd , m_cTrnStatus.Head.SaleDate , m_cTrnStatus.Head.StoreCd , m_cTrnStatus.Head.PosNo , m_cTrnStatus.Head.RegNo , iRow + 1 // SEQ , m_cTrnStatus.Head.TradeNo // 거래번호 , cSaleDpstWthdr.DPST_WTHDR_TYPE // 입출금유형 , cSaleDpstWthdr.DPST_WTHDR_ACC_CD // 입출금 계정 , cSaleDpstWthdr.DPST_WTHDR_CD // 입출금 코드 , cSaleDpstWthdr.DPST_WTHDR_QTY // 입출금 수량 , cSaleDpstWthdr.DPST_WTHDR_AMT // 입출금 금액 , cSaleDpstWthdr.DPST_WTHDR_NM // 입출금 명 , cSaleDpstWthdr.CUST_NO // 고객번호 , cSaleDpstWthdr.STOR_PAY_TYPE // 점포결제유형 , cSaleDpstWthdr.ETC_REASON // 기타사유 , cSaleDpstWthdr.SLACK_FIELD_01 // 여유필드01 , cSaleDpstWthdr.SLACK_FIELD_02 // 여유필드02 , cSaleDpstWthdr.SLACK_FIELD_03 // 여유필드03 , cSaleDpstWthdr.SLACK_FIELD_04 // 여유필드04 , cSaleDpstWthdr.SLACK_FIELD_05 // 여유필드05 , sRegDateTime // REG_DATE , sRegDateTime // UPD_DATE ); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sReturn; } } 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); } m_cSqlDbService.Rollback(); return sReturn; } #endregion #region 기타 데이터 저장 처리 /// /// 기타 데이터 저장 처리 /// /// public string EtcSaveDataMain(string sSendYN) { string sRet = UserCom.RST_ERR; try { m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); m_cSqlDbService.Begin(); sRet = SaveDpstWthdr(); // 입출금정보(준비금) 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveDpstWthdr"); return sRet; } sRet = SaveEtcPluItem(); // 상품정보 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveEtcPluItem"); return sRet; } sRet = SaveEtcPaymentItem(); // 결제정보 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveEtcPaymentItem"); return sRet; } sRet = SaveEtcEtcItem(); // 기타정보 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveEtcEtcItem"); return sRet; } sRet = SaveEtcHeader(sSendYN); // 트란해더 저장 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveEtcHeader"); return sRet; } if (sSendYN != "1") // 거래데이터 복구시 주방출력 안함(2017.05.24) { sRet = SaveKtchOrdMsg(); // 주방 데이터 저장 // Add, 2017.03.06, 주방출력 연습모드 적용 if (sRet != UserCom.RST_OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail => SaveKtchOrdMsg"); return sRet; } } m_cSqlDbService.Commit(); } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } return sRet; } #endregion #region 기타 해더 저장 처리 /// /// 기타 해더 저장 처리 /// /// public string SaveEtcHeader(string sSendYN) { string sQuery = ""; string sRet = UserCom.RST_ERR; try { sQuery += " INSERT INTO POSLOG..ETC_SALE_HEADER ( "; sQuery += " CMP_CD ,STOR_CD ,SALE_DT ,POS_NO, REG_NO ,TRADE_NO ,TRADE_DIV ,TRAIN_MODE_YN ,TRADE_KINDPER ,SYS_DT "; sQuery += " ,ORD_TIME ,PAY_TIME ,PIC_NO ,ORD_PIC_NO ,STOR_OWN_PART_TIME_DIV ,ORG_BILL_POSNO ,ORG_BILLDT ,ORG_BILL_NO ,RTN_RSN_CD ,RTN_RSN_MEMO "; sQuery += " ,NONSALES_RSN_CD ,RESERV_NO ,RESERV_DT ,CUST_NO ,ORD_DIV ,FLOOR_CD ,TBL_NO ,GUESTFLOOR ,FRGNR_DIV ,CUSTCNT "; sQuery += " ,PAY_GNDR_DIV ,PAY_AGE ,MAN_CMPNPSN_CNT ,WOMAN_CMPNPSN_CNT ,QTY ,TOTSALE_AMT ,TOTDC_AMT ,NET_SALE_AMT ,ITEM_DC_AMT ,CPI_DC_AMT "; sQuery += " ,COOP_CARD_DC_AMT,POINT_DC_AMT,CPN_DC_AMT,EMP_DC_AMT,SET_DC_AMT ,ETC_AMT ,EXCEP_DC_AMT ,TOT_VAT ,SVC_FEE_AMT ,SVC_FEE_VAT "; sQuery += " ,ETC_VAT, AF_ACCUM_POINT_AMT ,AF_ACCUM_POINT_INFO, PPCARD_CUSTNM, AMT_DUTCHPAY_YN ,BILLSPR_CNT ,ORDER_NO,SLACK_FIELD,MID_CLOSE_SEQ,PPCARD_CUSTID "; //#20170828 해피포인트 적립 제외 버튼 추가 phj, start //기존 //sQuery += " ,PACK_TRADE_DIV,TRADE_STAT, SEND_YN ,REG_DATE ,UPD_DATE ,VIP_TY"; //변경 sQuery += " ,PACK_TRADE_DIV,TRADE_STAT, SEND_YN ,REG_DATE ,UPD_DATE ,VIP_TY ,HP_EXCLUDE_YN"; //#20170828 해피포인트 적립 제외 버튼 추가 phj, end sQuery += " ) VALUES ( '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , '{9}', "; sQuery += " '{10}','{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}' , N'{19}', "; sQuery += " '{20}','{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', '{28}' , '{29}', "; sQuery += " '{30}','{31}', '{32}', '{33}', '{34}', '{35}', '{36}', '{37}', '{38}' , '{39}', "; sQuery += " '{40}','{41}', '{42}', '{43}', '{44}', '{45}', '{46}', '{47}', '{48}' , '{49}', "; sQuery += " '{50}','{51}', '{52}',N'{53}', '{54}', '{55}', '{56}', '{57}', '{58}' , '{59}', "; //#20170828 해피포인트 적립 제외 버튼 추가 phj, start //기존 //sQuery += " '{60}','{61}', '{62}', '{63}', '{64}', '{65}' ) "; //변경 sQuery += " '{60}','{61}', '{62}', '{63}', '{64}', '{65}', '{66}' ) "; //#20170828 해피포인트 적립 제외 버튼 추가 phj, end string sRegDateTime = DateTime.Now.ToString("yyyyMMddHHmmss"); // 주문시간 if (m_cTrnStatus.Head.OrderHms.Trim() == "") m_cTrnStatus.Head.OrderHms = m_cTrnStatus.Head.PayHms; 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.OrderHms // ORD_TIME , m_cTrnStatus.Head.PayHms // PAY_TIME , m_cTrnStatus.Head.CashierId // PIC_NO , m_cTrnStatus.Head.OrderPicNo // ORD_PIC_NO , m_cTrnStatus.Head.OwnPartDiv // STOR_OWN_PART_TIME_DIV , m_cTrnStatus.Head.OrgPosNo // ORG_BILL_POSNO , m_cTrnStatus.Head.OrgSaleDate // ORG_BILLDT , m_cTrnStatus.Head.OrgTradeNo // ORG_BILL_NO , m_cTrnStatus.Head.RtnReasonCd // RTN_RSN_CD , m_cTrnStatus.Head.RtnReasonMemo // RTN_RSN_MEMO , m_cTrnStatus.Head.NonSaleRsnCd =="" ? "0": m_cTrnStatus.Head.NonSaleRsnCd // NONSALES_RSN_CD , m_cTrnStatus.Head.ReserveNo // RESERV_NO , m_cTrnStatus.Head.ReserveYmd // RESERV_DT , m_cTrnStatus.Head.MemberCustNo // CUST_NO , m_cTrnStatus.Head.OrderFlag // ORD_DIV , m_cTrnStatus.Head.FloorCd // FLOOR_CD , m_cTrnStatus.Head.TableNo // TBL_NO , m_cTrnStatus.Head.CustFloor // GUESTFLOOR , m_cTrnStatus.Head.ForeignFlag // FRGNR_DIV , m_cTrnStatus.Head.CustCnt // CUSTCNT , m_cTrnStatus.Head.PayGndrDiv // PAY_GNDR_DIV , m_cTrnStatus.Head.PayAge // PAY_AGE , m_cTrnStatus.Head.ManCmpnpsnCnt // MAN_CMPNPSN_CNT , m_cTrnStatus.Head.WomanCmpnpsnCnt // WOMAN_CMPNPSN_CNT , m_cTrnStatus.Head.TotQty // QTY , m_cTrnStatus.Head.TotSaleAmt // TOTSALE_AMT , m_cTrnStatus.Head.TotDcAmt // TOTDC_AMT , m_cTrnStatus.Head.NetSaleAmt // NET_SALE_AMT , m_cTrnStatus.Head.ItemDcAmt // ITEM_DC_AMT , m_cTrnStatus.Head.CpiDcAmt // CPI_DC_AMT , m_cTrnStatus.Head.CoopCardDcAmt // COOP_CARD_DC_AMT , m_cTrnStatus.Head.PointDcAmt // POINT_DC_AMT , m_cTrnStatus.Head.CpnDcAmt // CPN_DC_AMT , m_cTrnStatus.Head.EmpDcAmt // EMP_DC_AMT , m_cTrnStatus.Head.SetDcAmt // SET_DC_AMT , m_cTrnStatus.Head.EtcDcAmt // ETC_AMT , m_cTrnStatus.Head.ExcepDcAmt // EXCEP_DC_AMT , m_cTrnStatus.Head.TotVatAmt // TOT_VAT , m_cTrnStatus.Head.SvcFeeAmt // SVC_FEE_AMT , m_cTrnStatus.Head.SvcFeeVat // SVC_FEE_VAT , m_cTrnStatus.Head.EtcVatAmt // ETC_VAT , m_cTrnStatus.Head.AftSavePoint // AF_ACCUM_POINT_AMT , m_cTrnStatus.Head.AftSaveAddInfo // AF_ACCUM_POINT_INFO , m_cTrnStatus.Head.PpCardCustNm // PPCARD_CUSTNM , m_cTrnStatus.Head.AmtDutchPayYn // AMT_DUTCHPAY_YN , m_cTrnStatus.Head.BillSplitCnt // BILLSPR_CNT , m_cTrnStatus.Head.OrderNo // ORDER_NO , "" // SLACK_FIELD , m_cTrnStatus.Head.MidCloseSeq // MID_CLOSE_SEQ , m_cTrnStatus.Head.PpCardCustId // PPCARD_CUSTID , m_cTrnStatus.Head.PackTradeDiv // PACK_TRADE_DIV , "0" // TRADE_STAT , sSendYN // SEND_YN , sRegDateTime // REG_DATE , sRegDateTime // UPD_DATE , m_cTrnStatus.Head.VipTy // VIP_TY //#20170828 해피포인트 적립 제외 버튼 추가 phj, start , m_cTrnStatus.Head.HP_EXCLUDE_YN // HP_EXCLUDE_YN //#20170828 해피포인트 적립 제외 버튼 추가 phj, end ); 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); } m_cSqlDbService.Rollback(); return sRet; } #endregion #region 기타 상품 저장 처리 /// /// 기타 상품 저장 처리 /// /// public string SaveEtcPluItem() { string sQuery = ""; string sSQL = ""; string sRet = UserCom.RST_ERR; try { // 상품정보 ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); if (aSaleItem.Count == 0) return UserCom.RST_OK; sQuery = ""; sQuery += " INSERT INTO POSLOG..ETC_SALE_DETAIL ( "; sQuery += " CMP_CD ,STOR_CD ,SALE_DT ,POS_NO ,REG_NO ,SEQ ,TRADE_NO ,ORD_TIME ,FLOOR_CD ,TBL_NO "; sQuery += " ,SUB_SHOP_CD ,ITEM_PLU_CD ,ITEM_DIV ,SALE_QTY ,SALE_PRC ,SALE_AMT ,FLAVOUR_DIV ,FLAVOUR_WEIGHT ,ITEM_INPUT_DIV, ITEM_BAR_CD "; sQuery += " ,TAKE_IN_OUT_DIV ,ITEM_TAX_DIV ,TAX_AMT_INCLUDE_YN, TAXRATE_CD, APPLY_TAX_AMT ,SVC_FEE_AMT ,SVC_FEE_VAT ,NONSALES_RSN_CD, SVC_TAXREATE_CD, BILL_AMT "; sQuery += " ,DC_DIV ,DC_TYPE ,DC_RATE ,ITEM_DC_AMT ,SUM_DC_AMT ,CPI_DC_QTY ,CPI_DC_AMT ,COOP_CARD_DC_DIV ,COOP_CARD_DC_AMT ,POINT_DC_DIV "; sQuery += " ,POINT_DC_AMT ,CPN_DC_DIV ,CPN_DC_AMT ,EMP_DC_DIV ,EMP_DC_AMT ,SET_DC_AMT ,ETC_DC_DIV ,ETC_DC_AMT ,EXCEP_DC_DIV ,EXCEP_DC_AMT "; sQuery += " ,PACK_DIV ,SET_MENU_CD ,SUBPRC_MENU_KEY_DIV ,CPI_PRESENT_DIV ,BILLSPR_NO ,SALE_GIFT_NO ,CPN_NO ,SLACK_FIELD ,DISPO_ITEM_DIV ,CANCEL_DIV "; sQuery += " ,REG_DATE ,UPD_DATE ,NOTAX_DIV"; sQuery += " ) VALUES ( "; sQuery += " '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', "; sQuery += " '{10}','{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', "; sQuery += " '{20}','{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', '{28}', '{29}', "; sQuery += " '{30}','{31}', '{32}', '{33}', '{34}', '{35}', '{36}', '{37}', '{38}', '{39}',"; sQuery += " '{40}','{41}', '{42}', '{43}', '{44}', '{45}', '{46}', '{47}', '{48}', '{49}', "; sQuery += " '{50}','{51}', '{52}', '{53}', '{54}', '{55}', '{56}', '{57}', '{58}', '{59}', "; sQuery += " '{60}','{61}', '{62}' )"; for (int iRow = 0; iRow < aSaleItem.Count; iRow++) { Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iRow]; if (cSaleItem.CANCEL_DIV == "1" || cSaleItem.CANCEL_DIV_MAIN == "1") cSaleItem.CANCEL_DIV = "1"; //취소 소계 전후 체크 string sCanDiv = cSaleItem.CANCEL_DIV; if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) { sCanDiv = m_cTrnStatus.Sale.SubTotalCancelDiv == true ? PosConst.CANCEL_DIV.CANCEL_SUBTOT : PosConst.CANCEL_DIV.CANCEL; } string sRegDateTime = DateTime.Now.ToString("yyyyMMddHHmmss"); // 주문시간 if (cSaleItem.ORD_TIME.Trim() == "") cSaleItem.ORD_TIME = m_cTrnStatus.Head.PayHms; sSQL = 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 , iRow + 1 // SEQ , m_cTrnStatus.Head.TradeNo // TRADE_NO , cSaleItem.ORD_TIME // ORD_TIME , cSaleItem.FLOOR_CD // FLOOR_CD , cSaleItem.TBL_NO // TBL_NO , cSaleItem.SUB_SHOP_CD // SUB_SHOP_CD , cSaleItem.ITEM_PLU_CD // ITEM_PLU_CD , cSaleItem.ITEM_DIV // ITEM_DIV , cSaleItem.SALE_QTY // SALE_QTY , cSaleItem.SALE_PRC // SALE_PRC , cSaleItem.SALE_AMT // SALE_AMT , cSaleItem.FLAVOUR_DIV // FLAVOUR_DIV , cSaleItem.FLAVOUR_STOCK // FLAVOUR_STOCK , cSaleItem.ITEM_INPUT_DIV // ITEM_INPUT_DIV , cSaleItem.ITEM_BAR_CD // ITEM_BAR_CD , cSaleItem.TAKE_IN_OUT_DIV // TAKE_IN_OUT_DIV , cSaleItem.ITEM_TAX_DIV // ITEM_TAX_DIV , cSaleItem.TAX_AMT_INCLUDE_YN // TAX_AMT_INCLUDE_YN , cSaleItem.TAXRATE_CD // TAXRATE_CD , cSaleItem.APPLY_TAX_AMT // APPLY_TAX_AMT , cSaleItem.SVC_FEE_AMT // SVC_FEE_AMT , cSaleItem.SVC_FEE_VAT // SVC_FEE_VAT , cSaleItem.NONSALES_RSN_CD == "" ? "0" : cSaleItem.NONSALES_RSN_CD // NONSALES_RSN_CD , cSaleItem.SVC_TAXREATE_CD //SVC_TAXREATE_CD , cSaleItem.BILL_AMT // BILL_AMT , cSaleItem.DC_DIV , cSaleItem.DC_TYPE , cSaleItem.DC_RATE , cSaleItem.ITEM_DC_AMT , cSaleItem.SUM_DC_AMT , cSaleItem.CPI_DC_QTY , cSaleItem.CPI_DC_AMT , cSaleItem.COOP_CARD_DC_DIV , cSaleItem.COOP_CARD_DC_AMT , cSaleItem.POINT_DC_DIV , cSaleItem.POINT_DC_AMT , cSaleItem.CPN_DC_DIV , cSaleItem.CPN_DC_AMT , cSaleItem.EMP_DC_DIV , cSaleItem.EMP_DC_AMT , cSaleItem.SET_DC_AMT , cSaleItem.ETC_DC_DIV , cSaleItem.ETC_DC_AMT , cSaleItem.EXCEP_DC_DIV , cSaleItem.EXCEP_DC_AMT , cSaleItem.PACK_DIV , cSaleItem.SET_MENU_CD == "" ? cSaleItem.SUB_MENU_MAIN_CD : cSaleItem.SET_MENU_CD , cSaleItem.SUBPRC_MENU_KEY_DIV , cSaleItem.CPI_PRESENT_DIV , cSaleItem.BILLSPR_NO , cSaleItem.SALE_GIFT_NO , cSaleItem.CPN_NO , cSaleItem.SLACK_FIELD // 선불카드권종(2017.06.27) , cSaleItem.DISPO_ITEM_DIV , sCanDiv , sRegDateTime // REG_DATE , sRegDateTime // UPD_DATE , cSaleItem.NOTAX_DIV ); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } } 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); } m_cSqlDbService.Rollback(); return sRet; } #endregion #region 기타 결제 저장 처리 /// /// 기타 결제 저장 처리 /// /// public string SaveEtcPaymentItem() { string sQuery = ""; string sSQL = ""; string sRet = UserCom.RST_ERR; try { // 결제정보 ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM); if (alPayItem.Count == 0) return UserCom.RST_OK; sQuery += " INSERT INTO POSLOG..ETC_SALE_PAY ( "; sQuery += " CMP_CD, STOR_CD, SALE_DT, POS_NO, REG_NO, TRADE_NO, SEQ, PAY_WAY_CD, PAY_AMT, PAY_DTL_CD_01,"; sQuery += " PAY_DTL_CD_02, PAY_DTL_CD_03, PAY_DTL_CD_04, PAY_DTL_CD_05, QTY_ENTRY_01, QTY_ENTRY_02, QTY_ENTRY_03, QTY_ENTRY_04,QTY_ENTRY_05, AMT_ENTRY_01, "; sQuery += " AMT_ENTRY_02, AMT_ENTRY_03, AMT_ENTRY_04, AMT_ENTRY_05, AMT_ENTRY_06, AMT_ENTRY_07, AMT_ENTRY_08, AMT_ENTRY_09,AMT_ENTRY_10, OCCUR_ENTRY_01, "; sQuery += " OCCUR_ENTRY_02, OCCUR_ENTRY_03, OCCUR_ENTRY_04, OCCUR_ENTRY_05, OCCUR_ENTRY_06, OCCUR_ENTRY_07, OCCUR_ENTRY_08, OCCUR_ENTRY_09, OCCUR_ENTRY_10, OCCUR_ENTRY_11, "; sQuery += " OCCUR_ENTRY_12, OCCUR_ENTRY_13, OCCUR_ENTRY_14, OCCUR_ENTRY_15, OCCUR_ENTRY_16, OCCUR_ENTRY_17, OCCUR_ENTRY_18, OCCUR_ENTRY_19,OCCUR_ENTRY_20, OCCUR_ENTRY_21, "; sQuery += " OCCUR_ENTRY_22, OCCUR_ENTRY_23, OCCUR_ENTRY_24, OCCUR_ENTRY_25, BILLSPR_NO, CANCEL_DIV, REG_DATE, UPD_DATE "; sQuery += " ) VALUES ( "; sQuery += " '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , '{9}', "; sQuery += " '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}' , '{19}', "; sQuery += " '{20}', '{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', '{28}' , N'{29}', "; sQuery += " N'{30}',N'{31}', N'{32}', N'{33}', N'{34}', N'{35}', N'{36}', N'{37}', N'{38}' , N'{39}', "; sQuery += " N'{40}',N'{41}', N'{42}', N'{43}', N'{44}', N'{45}', N'{46}', N'{47}', N'{48}' , N'{49}', "; sQuery += " N'{50}',N'{51}', N'{52}', N'{53}', '{54}', '{55}', '{56}', '{57}' )"; for (int iRow = 0; iRow < alPayItem.Count; iRow++) { Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)alPayItem[iRow]; sSQL = 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 , iRow + 1 // SEQ , cPayItem.PAY_WAY_CD // PAY_WAY_CD , cPayItem.PAY_AMT // PAY_AMT , cPayItem.PAY_DTL_CD_01 // PAY_DTL_CD_01 , cPayItem.PAY_DTL_CD_02 // PAY_DTL_CD_02 , cPayItem.PAY_DTL_CD_03 // PAY_DTL_CD_03 , cPayItem.PAY_DTL_CD_04 // PAY_DTL_CD_04 , cPayItem.PAY_DTL_CD_05 // PAY_DTL_CD_05 , cPayItem.QTY_ENTRY_01 // QTY_ENTRY_01 , cPayItem.QTY_ENTRY_02 // QTY_ENTRY_02 , cPayItem.QTY_ENTRY_03 // QTY_ENTRY_03 , cPayItem.QTY_ENTRY_04 // QTY_ENTRY_04 , cPayItem.QTY_ENTRY_05 // QTY_ENTRY_05 , cPayItem.AMT_ENTRY_01 // AMT_ENTRY_01 , cPayItem.AMT_ENTRY_02 // AMT_ENTRY_02 , cPayItem.AMT_ENTRY_03 // AMT_ENTRY_03 , cPayItem.AMT_ENTRY_04 // AMT_ENTRY_04 , cPayItem.AMT_ENTRY_05 // AMT_ENTRY_05 , cPayItem.AMT_ENTRY_06 // AMT_ENTRY_06 , cPayItem.AMT_ENTRY_07 // AMT_ENTRY_07 , cPayItem.AMT_ENTRY_08 // AMT_ENTRY_08 , cPayItem.AMT_ENTRY_09 // AMT_ENTRY_09 , cPayItem.AMT_ENTRY_10 // AMT_ENTRY_10 , cPayItem.OCCUR_ENTRY_01 // OCCUR_ENTRY_01 , cPayItem.OCCUR_ENTRY_02 // OCCUR_ENTRY_02 , cPayItem.OCCUR_ENTRY_03 // OCCUR_ENTRY_03 , cPayItem.OCCUR_ENTRY_04 // OCCUR_ENTRY_04 , cPayItem.OCCUR_ENTRY_05 // OCCUR_ENTRY_05 , cPayItem.OCCUR_ENTRY_06 // OCCUR_ENTRY_06 , cPayItem.OCCUR_ENTRY_07 // OCCUR_ENTRY_07 , cPayItem.OCCUR_ENTRY_08 // OCCUR_ENTRY_08 , cPayItem.OCCUR_ENTRY_09 // OCCUR_ENTRY_09 , cPayItem.OCCUR_ENTRY_10 // OCCUR_ENTRY_10 , cPayItem.OCCUR_ENTRY_11 // OCCUR_ENTRY_11 , cPayItem.OCCUR_ENTRY_12 // OCCUR_ENTRY_12 , cPayItem.OCCUR_ENTRY_13 // OCCUR_ENTRY_13 , cPayItem.OCCUR_ENTRY_14 // OCCUR_ENTRY_14 , cPayItem.OCCUR_ENTRY_15 // OCCUR_ENTRY_15 , cPayItem.OCCUR_ENTRY_16 // OCCUR_ENTRY_16 , cPayItem.OCCUR_ENTRY_17 // OCCUR_ENTRY_17 , cPayItem.OCCUR_ENTRY_18 // OCCUR_ENTRY_18 , cPayItem.OCCUR_ENTRY_19 // OCCUR_ENTRY_19 , cPayItem.OCCUR_ENTRY_20 // OCCUR_ENTRY_20 , cPayItem.OCCUR_ENTRY_21 // OCCUR_ENTRY_21 , cPayItem.OCCUR_ENTRY_22 // OCCUR_ENTRY_22 , cPayItem.OCCUR_ENTRY_23 // OCCUR_ENTRY_23 , cPayItem.OCCUR_ENTRY_24 // OCCUR_ENTRY_24 , cPayItem.OCCUR_ENTRY_25 // OCCUR_ENTRY_25 , cPayItem.BILLSPR_NO // BILLSPR_NO , cPayItem.CANCEL_DIV // CANCEL_DIV , DateTime.Now.ToString("yyyyMMddHHmmss") , DateTime.Now.ToString("yyyyMMddHHmmss")); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } } 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); } m_cSqlDbService.Rollback(); return sRet; } #endregion #region 기타 기타 수단코드 저장 /// /// 기타 기타 수단코드 저장 /// /// public string SaveEtcEtcItem() { string sQuery = ""; string sSQL = ""; string sRet = UserCom.RST_ERR; try { ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM); if (alEtcItem.Count == 0) return UserCom.RST_OK; sQuery += " INSERT INTO POSLOG..ETC_SALE_ETC ( "; sQuery += " CMP_CD, STOR_CD, SALE_DT, POS_NO, REG_NO, TRADE_NO, SEQ, ETC_WAY_CD, ETC_AMT, ETC_DTL_CD_01,"; sQuery += " ETC_DTL_CD_02, ETC_DTL_CD_03, ETC_DTL_CD_04, ETC_DTL_CD_05, QTY_ENTRY_01, QTY_ENTRY_02, QTY_ENTRY_03, QTY_ENTRY_04,QTY_ENTRY_05, AMT_ENTRY_01, "; sQuery += " AMT_ENTRY_02, AMT_ENTRY_03, AMT_ENTRY_04, AMT_ENTRY_05, AMT_ENTRY_06, AMT_ENTRY_07, AMT_ENTRY_08, AMT_ENTRY_09,AMT_ENTRY_10, OCCUR_ENTRY_01, "; sQuery += " OCCUR_ENTRY_02, OCCUR_ENTRY_03, OCCUR_ENTRY_04, OCCUR_ENTRY_05, OCCUR_ENTRY_06, OCCUR_ENTRY_07, OCCUR_ENTRY_08, OCCUR_ENTRY_09, OCCUR_ENTRY_10, OCCUR_ENTRY_11, "; sQuery += " OCCUR_ENTRY_12, OCCUR_ENTRY_13, OCCUR_ENTRY_14, OCCUR_ENTRY_15, OCCUR_ENTRY_16, OCCUR_ENTRY_17, OCCUR_ENTRY_18, OCCUR_ENTRY_19,OCCUR_ENTRY_20, OCCUR_ENTRY_21, "; sQuery += " OCCUR_ENTRY_22, OCCUR_ENTRY_23, OCCUR_ENTRY_24, OCCUR_ENTRY_25, BILLSPR_NO, CANCEL_DIV, REG_DATE, UPD_DATE "; sQuery += " ) VALUES ( "; sQuery += " '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , '{9}', "; sQuery += " '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}' , '{19}', "; sQuery += " '{20}', '{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', '{28}' , N'{29}', "; sQuery += " N'{30}',N'{31}', N'{32}', N'{33}', N'{34}', N'{35}', N'{36}', N'{37}', N'{38}' , N'{39}', "; sQuery += " N'{40}',N'{41}', N'{42}', N'{43}', N'{44}', N'{45}', N'{46}', N'{47}', N'{48}' , N'{49}', "; sQuery += " N'{50}',N'{51}', N'{52}', N'{53}', '{54}', '{55}', '{56}', '{57}' )"; for (int iRow = 0; iRow < alEtcItem.Count; iRow++) { Column.TR_ETC.DATA cEtcItem = (Column.TR_ETC.DATA)alEtcItem[iRow]; sSQL = 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 , iRow + 1 // SEQ , cEtcItem.ETC_WAY_CD // ETC_WAY_CD , cEtcItem.ETC_AMT // ETC_AMT , cEtcItem.ETC_DTL_CD_01 // ETC_DTL_CD_01 , cEtcItem.ETC_DTL_CD_02 // ETC_DTL_CD_02 , cEtcItem.ETC_DTL_CD_03 // ETC_DTL_CD_03 , cEtcItem.ETC_DTL_CD_04 // ETC_DTL_CD_04 , cEtcItem.ETC_DTL_CD_05 // ETC_DTL_CD_05 , cEtcItem.QTY_ENTRY_01 // QTY_ENTRY_01 , cEtcItem.QTY_ENTRY_02 // QTY_ENTRY_02 , cEtcItem.QTY_ENTRY_03 // QTY_ENTRY_03 , cEtcItem.QTY_ENTRY_04 // QTY_ENTRY_04 , cEtcItem.QTY_ENTRY_05 // QTY_ENTRY_05 , cEtcItem.AMT_ENTRY_01 // AMT_ENTRY_01 , cEtcItem.AMT_ENTRY_02 // AMT_ENTRY_02 , cEtcItem.AMT_ENTRY_03 // AMT_ENTRY_03 , cEtcItem.AMT_ENTRY_04 // AMT_ENTRY_04 , cEtcItem.AMT_ENTRY_05 // AMT_ENTRY_05 , cEtcItem.AMT_ENTRY_06 // AMT_ENTRY_06 , cEtcItem.AMT_ENTRY_07 // AMT_ENTRY_07 , cEtcItem.AMT_ENTRY_08 // AMT_ENTRY_08 , cEtcItem.AMT_ENTRY_09 // AMT_ENTRY_09 , cEtcItem.AMT_ENTRY_10 // AMT_ENTRY_10 , cEtcItem.OCCUR_ENTRY_01 // OCCUR_ENTRY_01 , cEtcItem.OCCUR_ENTRY_02 // OCCUR_ENTRY_02 , cEtcItem.OCCUR_ENTRY_03 // OCCUR_ENTRY_03 , cEtcItem.OCCUR_ENTRY_04 // OCCUR_ENTRY_04 , cEtcItem.OCCUR_ENTRY_05 // OCCUR_ENTRY_05 , cEtcItem.OCCUR_ENTRY_06 // OCCUR_ENTRY_06 , cEtcItem.OCCUR_ENTRY_07 // OCCUR_ENTRY_07 , cEtcItem.OCCUR_ENTRY_08 // OCCUR_ENTRY_08 , cEtcItem.OCCUR_ENTRY_09 // OCCUR_ENTRY_09 , cEtcItem.OCCUR_ENTRY_10 // OCCUR_ENTRY_10 , cEtcItem.OCCUR_ENTRY_11 // OCCUR_ENTRY_11 , cEtcItem.OCCUR_ENTRY_12 // OCCUR_ENTRY_12 , cEtcItem.OCCUR_ENTRY_13 // OCCUR_ENTRY_13 , cEtcItem.OCCUR_ENTRY_14 // OCCUR_ENTRY_14 , cEtcItem.OCCUR_ENTRY_15 // OCCUR_ENTRY_15 , cEtcItem.OCCUR_ENTRY_16 // OCCUR_ENTRY_16 , cEtcItem.OCCUR_ENTRY_17 // OCCUR_ENTRY_17 , cEtcItem.OCCUR_ENTRY_18 // OCCUR_ENTRY_18 , cEtcItem.OCCUR_ENTRY_19 // OCCUR_ENTRY_19 , cEtcItem.OCCUR_ENTRY_20 // OCCUR_ENTRY_20 , cEtcItem.OCCUR_ENTRY_21 // OCCUR_ENTRY_21 , cEtcItem.OCCUR_ENTRY_22 // OCCUR_ENTRY_22 , cEtcItem.OCCUR_ENTRY_23 // OCCUR_ENTRY_23 , cEtcItem.OCCUR_ENTRY_24 // OCCUR_ENTRY_24 , cEtcItem.OCCUR_ENTRY_25 // OCCUR_ENTRY_25 , cEtcItem.BILLSPR_NO // BILLSPR_NO , cEtcItem.CANCEL_DIV // CANCEL_DIV , DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss")); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } } 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); } m_cSqlDbService.Rollback(); return sRet; } #endregion #region 예약 고객 정보 /// /// 예약 고객 정보 /// /// public string SaveTranReservInfo(string sSendYN) { string sQuery = ""; string sSQL = ""; string sRet = UserCom.RST_ERR; try { // 상품정보 ArrayList aSaleReservInfo = (ArrayList)StateObject.GetItemObject(Column.TR_RESERV_INFO.ITEM); if (aSaleReservInfo.Count == 0) return UserCom.RST_OK; sQuery += " INSERT INTO POSLOG.dbo.TR_RESERV_INFO ( "; sQuery += " CMP_CD ,SALE_DT ,STOR_CD ,POS_NO ,TRADE_NO ,RESERV_NO ,RESERV_REG_DT ,RESERV_REG_TM ,ONOFF_DIV ,CUSTNM "; sQuery += " ,CUST_PHN_NO ,RESERV_DT ,RESERV_TM ,RESERV_MEMO ,SEND_YN ,REG_DATE ,UPD_DATE) "; sQuery += " VALUES( "; sQuery += " '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , N'{9}', "; sQuery += " '{10}','{11}', '{12}', N'{13}', '{14}', '{15}', '{16}' )"; Column.TR_RESERV_INFO.DATA cSaleReservInfo = (Column.TR_RESERV_INFO.DATA)aSaleReservInfo[0]; string sRegDateTime = DateTime.Now.ToString("yyyyMMddHHmmss"); sSQL = string.Format(sQuery , m_cTrnStatus.Head.CmpCd // CMP_CD , m_cTrnStatus.Head.SaleDate // SALE_DT , m_cTrnStatus.Head.StoreCd // STOR_CD , m_cTrnStatus.Head.PosNo // POS_NO , m_cTrnStatus.Head.TradeNo // TRADE_NO , cSaleReservInfo.RESERV_NO , cSaleReservInfo.RESERV_REG_DT , cSaleReservInfo.RESERV_REG_TM , cSaleReservInfo.ONOFF_DIV , cSaleReservInfo.CUSTNM , cSaleReservInfo.CUST_PHN_NO , cSaleReservInfo.RESERV_DT , cSaleReservInfo.RESERV_TM , cSaleReservInfo.RESERV_MEMO , sSendYN , sRegDateTime // REG_DATE , sRegDateTime // UPD_DATE ); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } 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); } m_cSqlDbService.Rollback(); return sRet; } #endregion #region 고객수 정보 /// /// 고객수 정보 /// /// public string SaveGuestCnt() { string sQuery = ""; string sSQL = ""; string sRet = UserCom.RST_ERR; try { // 고객수 정보 ArrayList alCuestItem = (ArrayList)StateObject.GetItemObject(Column.TR_GUEST.ITEM); if (alCuestItem.Count == 0) return UserCom.RST_OK; sQuery += " INSERT INTO POSLOG.dbo.TR_SALE_GUESTCNT ( "; sQuery += " CMP_CD, STOR_CD, SALE_DT, POS_NO, TRADE_NO "; sQuery += " ,MALE_10L, MALE_20L, MALE_30L, MALE_40L, MALE_50L "; sQuery += " ,FMALE_10L, FMALE_20L, FMALE_30L, FMALE_40L, FMALE_50L "; sQuery += " ,SEND_DIV, REG_DATE, UPD_DATE) "; sQuery += " VALUES( "; sQuery += " '{0}', '{1}', '{2}', '{3}', '{4}' "; sQuery += " ,'{5}', '{6}', '{7}', '{8}' , '{9}' "; sQuery += " ,'{10}','{11}', '{12}', '{13}', '{14}' "; sQuery += " ,'{15}', '{16}', '{17}' )"; Column.TR_GUEST.DATA clCuestItem = (Column.TR_GUEST.DATA)alCuestItem[0]; string sRegDateTime = DateTime.Now.ToString("yyyyMMddHHmmss"); sSQL = string.Format(sQuery , m_cTrnStatus.Head.CmpCd // CMP_CD , m_cTrnStatus.Head.SaleDate // SALE_DT , m_cTrnStatus.Head.StoreCd // STOR_CD , m_cTrnStatus.Head.PosNo // POS_NO , m_cTrnStatus.Head.TradeNo // TRADE_NO , clCuestItem.MALE_10L , clCuestItem.MALE_20L , clCuestItem.MALE_30L , clCuestItem.MALE_40L , clCuestItem.MALE_50L , clCuestItem.FMALE_10L , clCuestItem.FMALE_20L , clCuestItem.FMALE_30L , clCuestItem.FMALE_40L , clCuestItem.FMALE_50L , "0", sRegDateTime, sRegDateTime ); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } 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); } m_cSqlDbService.Rollback(); return sRet; } #endregion #region 지정취소 데이터 저장 처리 /// /// 지정취소 데이터 저장 처리 /// /// public string ItemCancelSaveData() { string sQuery = "", sSQL = ""; string sRet = UserCom.RST_ERR; try { m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); m_cSqlDbService.Begin(); string sRegDateTime = DateTime.Now.ToString("yyyyMMddHHmmss"); // 상품정보 ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); if (aSaleItem.Count == 0) return UserCom.RST_OK; sQuery = ""; sQuery += " INSERT INTO POSLOG..ETC_SALE_DETAIL ( "; sQuery += " CMP_CD ,STOR_CD ,SALE_DT ,POS_NO ,REG_NO ,SEQ ,TRADE_NO ,ORD_TIME ,FLOOR_CD ,TBL_NO "; sQuery += " ,SUB_SHOP_CD ,ITEM_PLU_CD ,ITEM_DIV ,SALE_QTY ,SALE_PRC ,SALE_AMT ,FLAVOUR_DIV ,FLAVOUR_WEIGHT ,ITEM_INPUT_DIV, ITEM_BAR_CD "; sQuery += " ,TAKE_IN_OUT_DIV ,ITEM_TAX_DIV ,TAX_AMT_INCLUDE_YN, TAXRATE_CD, APPLY_TAX_AMT ,SVC_FEE_AMT ,SVC_FEE_VAT ,NONSALES_RSN_CD, SVC_TAXREATE_CD, BILL_AMT "; sQuery += " ,DC_DIV ,DC_TYPE ,DC_RATE ,ITEM_DC_AMT ,SUM_DC_AMT ,CPI_DC_QTY ,CPI_DC_AMT ,COOP_CARD_DC_DIV ,COOP_CARD_DC_AMT ,POINT_DC_DIV "; sQuery += " ,POINT_DC_AMT ,CPN_DC_DIV ,CPN_DC_AMT ,EMP_DC_DIV ,EMP_DC_AMT ,SET_DC_AMT ,ETC_DC_DIV ,ETC_DC_AMT ,EXCEP_DC_DIV ,EXCEP_DC_AMT "; sQuery += " ,PACK_DIV ,SET_MENU_CD ,SUBPRC_MENU_KEY_DIV ,CPI_PRESENT_DIV ,BILLSPR_NO ,SALE_GIFT_NO ,CPN_NO ,SLACK_FIELD ,DISPO_ITEM_DIV ,CANCEL_DIV "; sQuery += " ,REG_DATE ,UPD_DATE ,NOTAX_DIV "; sQuery += " ) VALUES ( "; sQuery += " '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', "; sQuery += " '{10}','{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', "; sQuery += " '{20}','{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', '{28}', '{29}', "; sQuery += " '{30}','{31}', '{32}', '{33}', '{34}', '{35}', '{36}', '{37}', '{38}', '{39}',"; sQuery += " '{40}','{41}', '{42}', '{43}', '{44}', '{45}', '{46}', '{47}', '{48}', '{49}', "; sQuery += " '{50}','{51}', '{52}', '{53}', '{54}', '{55}', '{56}', '{57}', '{58}', '{59}', "; sQuery += " '{60}','{61}', '{62}' )"; int nItemRow = 0; long nTotQty = 0; double nTotAmt = 0; for (int iRow = 0; iRow < aSaleItem.Count; iRow++) { Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iRow]; if (cSaleItem.CANCEL_DIV != "1") continue; //취소 소계 전후 체크 string sCanDiv = m_cTrnStatus.Sale.SubTotalCancelDiv == true ? PosConst.CANCEL_DIV.CANCEL_SUBTOT : PosConst.CANCEL_DIV.CANCEL; nItemRow++; sSQL = 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 , nItemRow // SEQ , m_cTrnStatus.Head.TradeNo // TRADE_NO , cSaleItem.ORD_TIME // ORD_TIME , cSaleItem.FLOOR_CD // FLOOR_CD , cSaleItem.TBL_NO // TBL_NO , cSaleItem.SUB_SHOP_CD // SUB_SHOP_CD , cSaleItem.ITEM_PLU_CD // ITEM_PLU_CD , cSaleItem.ITEM_DIV // ITEM_DIV , cSaleItem.SALE_QTY // SALE_QTY , cSaleItem.SALE_PRC // SALE_PRC , cSaleItem.SALE_AMT // SALE_AMT , cSaleItem.FLAVOUR_DIV // FLAVOUR_DIV , cSaleItem.FLAVOUR_STOCK // FLAVOUR_STOCK , cSaleItem.ITEM_INPUT_DIV // ITEM_INPUT_DIV , cSaleItem.ITEM_BAR_CD // ITEM_BAR_CD , cSaleItem.TAKE_IN_OUT_DIV // TAKE_IN_OUT_DIV , cSaleItem.ITEM_TAX_DIV // ITEM_TAX_DIV , cSaleItem.TAX_AMT_INCLUDE_YN // TAX_AMT_INCLUDE_YN , cSaleItem.TAXRATE_CD // TAXRATE_CD , cSaleItem.APPLY_TAX_AMT // APPLY_TAX_AMT , cSaleItem.SVC_FEE_AMT // SVC_FEE_AMT , cSaleItem.SVC_FEE_VAT // SVC_FEE_VAT , cSaleItem.NONSALES_RSN_CD // NONSALES_RSN_CD , cSaleItem.SVC_TAXREATE_CD //SVC_TAXREATE_CD , cSaleItem.SALE_AMT // BILL_AMT , cSaleItem.DC_DIV , cSaleItem.DC_TYPE , 0 , 0 , 0 , 0 , 0 , cSaleItem.COOP_CARD_DC_DIV , 0 , cSaleItem.POINT_DC_DIV , 0 , cSaleItem.CPN_DC_DIV , 0 , cSaleItem.EMP_DC_DIV , 0 , 0 , cSaleItem.ETC_DC_DIV , 0 , cSaleItem.EXCEP_DC_DIV , cSaleItem.EXCEP_DC_AMT , cSaleItem.PACK_DIV , cSaleItem.SET_MENU_CD == "" ? cSaleItem.SUB_MENU_MAIN_CD : cSaleItem.SET_MENU_CD , cSaleItem.SUBPRC_MENU_KEY_DIV , cSaleItem.CPI_PRESENT_DIV , cSaleItem.BILLSPR_NO , cSaleItem.SALE_GIFT_NO , cSaleItem.CPN_NO , "" , cSaleItem.DISPO_ITEM_DIV , sCanDiv , sRegDateTime // REG_DATE , sRegDateTime // UPD_DATE , cSaleItem.NOTAX_DIV ); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } nTotQty += cSaleItem.SALE_QTY; nTotAmt = CmUtil.DoubleAdd(nTotAmt, cSaleItem.SALE_AMT); } sQuery = ""; sQuery += " INSERT INTO POSLOG..ETC_SALE_HEADER ( "; sQuery += " CMP_CD ,STOR_CD ,SALE_DT ,POS_NO, REG_NO ,TRADE_NO ,TRADE_DIV ,TRAIN_MODE_YN ,TRADE_KINDPER ,SYS_DT "; sQuery += " ,ORD_TIME ,PAY_TIME ,PIC_NO ,ORD_PIC_NO ,STOR_OWN_PART_TIME_DIV ,ORG_BILL_POSNO ,ORG_BILLDT ,ORG_BILL_NO ,RTN_RSN_CD ,RTN_RSN_MEMO "; sQuery += " ,NONSALES_RSN_CD ,RESERV_NO ,RESERV_DT ,CUST_NO ,ORD_DIV ,FLOOR_CD ,TBL_NO ,GUESTFLOOR ,FRGNR_DIV ,CUSTCNT "; sQuery += " ,PAY_GNDR_DIV ,PAY_AGE ,MAN_CMPNPSN_CNT ,WOMAN_CMPNPSN_CNT ,QTY ,TOTSALE_AMT ,TOTDC_AMT ,NET_SALE_AMT ,ITEM_DC_AMT ,CPI_DC_AMT "; sQuery += " ,COOP_CARD_DC_AMT,POINT_DC_AMT,CPN_DC_AMT,EMP_DC_AMT,SET_DC_AMT ,ETC_AMT ,TOT_VAT ,SVC_FEE_AMT ,SVC_FEE_VAT ,ETC_VAT "; sQuery += " ,AF_ACCUM_POINT_AMT ,AF_ACCUM_POINT_INFO, PPCARD_CUSTNM, AMT_DUTCHPAY_YN ,BILLSPR_CNT ,ORDER_NO,SLACK_FIELD, TRADE_STAT, SEND_YN ,REG_DATE ,UPD_DATE"; sQuery += " ) VALUES ( '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , '{9}', "; sQuery += " '{10}','{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}' , N'{19}', "; sQuery += " '{20}','{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', '{28}' , '{29}', "; sQuery += " '{30}','{31}', '{32}', '{33}', '{34}', '{35}', '{36}', '{37}', '{38}' , '{39}', "; sQuery += " '{40}','{41}', '{42}', '{43}', '{44}', '{45}', '{46}', '{47}', '{48}' , '{49}', "; sQuery += " '{50}','{51}', N'{52}', '{53}', '{54}', '{55}', '{56}', '{57}', '{58}' , '{59}', "; sQuery += " '{60}' ) "; 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_cPosStatus.Base.RegNo // REG_NO , m_cTrnStatus.Head.TradeNo // TRADE_NO , m_cTrnStatus.Head.TradeDiv // TRADE_DIV , m_cTrnStatus.Head.TrainModeYn // TRAIN_MODE_YN , ItemConst.TRAN_KIND.LOG.ITEM_CANCEL // TRADE_KINDPER , m_cTrnStatus.Head.SysYmd // SYS_DT , m_cTrnStatus.Head.OrderHms // ORD_TIME , m_cTrnStatus.Head.PayHms // PAY_TIME , m_cTrnStatus.Head.CashierId // PIC_NO , m_cTrnStatus.Head.OrderPicNo // ORD_PIC_NO , m_cTrnStatus.Head.OwnPartDiv // STOR_OWN_PART_TIME_DIV , m_cTrnStatus.Head.OrgPosNo // ORG_BILL_POSNO , m_cTrnStatus.Head.OrgSaleDate // ORG_BILLDT , m_cTrnStatus.Head.OrgTradeNo // ORG_BILL_NO , m_cTrnStatus.Head.RtnReasonCd // RTN_RSN_CD , m_cTrnStatus.Head.RtnReasonMemo // RTN_RSN_MEMO , m_cTrnStatus.Head.NonSaleRsnCd // NONSALES_RSN_CD , m_cTrnStatus.Head.ReserveNo // RESERV_NO , m_cTrnStatus.Head.ReserveYmd // RESERV_DT , m_cTrnStatus.Head.MemberCustNo // CUST_NO , m_cTrnStatus.Head.OrderFlag // ORD_DIV , m_cTrnStatus.Head.FloorCd // FLOOR_CD , m_cTrnStatus.Head.TableNo // TBL_NO , m_cTrnStatus.Head.CustFloor // GUESTFLOOR , m_cTrnStatus.Head.ForeignFlag // FRGNR_DIV , m_cTrnStatus.Head.CustCnt // CUSTCNT , m_cTrnStatus.Head.PayGndrDiv // PAY_GNDR_DIV , m_cTrnStatus.Head.PayAge // PAY_AGE , m_cTrnStatus.Head.ManCmpnpsnCnt // MAN_CMPNPSN_CNT , m_cTrnStatus.Head.WomanCmpnpsnCnt // WOMAN_CMPNPSN_CNT , nTotQty // QTY , nTotAmt // TOTSALE_AMT , 0 // TOTDC_AMT , nTotAmt // NET_SALE_AMT , 0 // ITEM_DC_AMT , 0 // CPI_DC_AMT , 0 // COOP_CARD_DC_AMT , 0 // POINT_DC_AMT , 0 // CPN_DC_AMT , 0 // EMP_DC_AMT , 0 // SET_DC_AMT , 0 // ETC_AMT , 0 // TOT_VAT , 0 // SVC_FEE_AMT , 0 // SVC_FEE_VAT , 0 // ETC_VAT , m_cTrnStatus.Head.AftSavePoint // AF_ACCUM_POINT_AMT , m_cTrnStatus.Head.AftSaveAddInfo // AF_ACCUM_POINT_INFO , m_cTrnStatus.Head.PpCardCustNm // PPCARD_CUSTNM , m_cTrnStatus.Head.AmtDutchPayYn // AMT_DUTCHPAY_YN , m_cTrnStatus.Head.BillSplitCnt // BILLSPR_CNT , m_cTrnStatus.Head.OrderNo // ORDER_NO , "" // SLACK_FIELD , "0" // TRADE_STAT , "0" // SEND_YN , sRegDateTime // REG_DATE , sRegDateTime // UPD_DATE ); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } m_cSqlDbService.Commit(); 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; } #endregion #region 주방 데이터 저장 처리 /// /// 주방 데이터 저장 처리 /// /// public string SaveKtchOrdMsg() { var sQuery = string.Empty; var sSQL = string.Empty; var sRet = UserCom.RST_ERR; var iSeq = 0; try { // 해피오더일 경우 상품 준비 단계에서 이미 주방 프린터로 출력 되므로 거래 완료 시에는 주방데이터 처리를 하지 않는다. //if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.FORIGN.O2O) return UserCom.RST_OK; // 매출 거래가 아니면 주방 출력 안함! 20170406 => 로스거래 주방출력 함(2017.05.25) //if (m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.NORMAL.SALE && m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.ETC.LOSS) //170914 dkshin 해피오더 추가 - KDS 전송 되기 위해 //if (m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.NORMAL.SALE && m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.ETC.LOSS) if (m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.NORMAL.SALE && m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.ETC.LOSS && m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.FORIGN.O2O) { //거래 중지 거래 중 원거래 종류가 매출이 아니면... if (!(m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.LOG.STOP && m_cTrnStatus.Head.OrgTradeKind == ItemConst.TRAN_KIND.NORMAL.SALE)) { return UserCom.RST_OK; } } // 상품정보 ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); if (aSaleItem.Count == 0) return UserCom.RST_OK; // 후불판매모드 일때 주방출력 if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && m_cPosStatus.Sale.EtcOperateMode != PosConst.ETC_OPERATION_MODE.NO_ORDER_SALE) { var isStop = true; foreach (Column.TR_PLU.DATA cSaleItem in aSaleItem) { if (cSaleItem.ORDER_OK_FLAG != PosConst.PLU_ORDER_OK_FLAG.ORDER_OK) { isStop = false; break; } } if (isStop) return UserCom.RST_OK; } // 후불매장 전일자 반품 주방출력 안함. if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND) { if (m_cPosStatus.Base.SaleDate != m_cTrnStatus.Head.SaleDate) return UserCom.RST_OK; } //20161014 선불일때 PK에러로 추가함! if (m_cTrnStatus.Head.OrderNo == "") return UserCom.RST_OK; // 주방출력(KPS,KVS,KDS) 사용 옵션 if (PosMstManager.GetPosOption(POS_OPTION.OPT506) != "1" && PosMstManager.GetPosOption(POS_OPTION.OPT027) != "1" && PosMstManager.GetPosOption(POS_OPTION.OPT507) != "1") { return UserCom.RST_OK; } // Add, 2017.04.11, 거래번호 -> 연습모드 일때는 등록번호 치환 var floorCd = m_cTrnStatus.Head.PosNo; var tableNo = m_cPosStatus.Base.TrainingFlag != ItemConst.TRAINING_FLAG.TRAINING_YES ? m_cTrnStatus.Head.TradeNo : m_cTrnStatus.Head.RegNo; var orderNo = m_cTrnStatus.Head.OrderNo; var orderSeq = string.Empty; var etcOrderFlag = string.Empty; if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT) { var cTableSvr = (ITableUs)sManager.InitServiceInstance(ServiceLists.BSV_TABLE.DLL, ServiceLists.BSV_TABLE.TABLE_SERVICE); if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND && string.IsNullOrWhiteSpace(m_cTrnStatus.Head.FloorCd + m_cTrnStatus.Head.TableNo)) { // 후불매장 반품인데 층/테이블 번호가 없음면, 후불판매 반품 etcOrderFlag = "1"; } else if (m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.NO_ORDER_SALE) { orderSeq = string.Empty; etcOrderFlag = "1"; } else { // 후불-테이블 일때는 주문차수 발번 처리 floorCd = m_cTrnStatus.Head.FloorCd; tableNo = m_cTrnStatus.Head.TableNo; } } //20170918 dkshin 해피오더 중복 거래 완료처리 수정 var orderTime = DateTime.Now.ToString("HHmmss"); //if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.FORIGN.O2O) if (m_cTrnStatus.Head.HPOrderPickupTime != "") { m_cTrnStatus.Head.PackTradeDiv = "0";//해피오더에서 0으로 고정 etcOrderFlag = "2";//해피오더 orderTime = m_cTrnStatus.Head.HPOrderPickupTime; orderTime = orderTime.Substring(5, 5) + " " + orderTime.Substring(14, 5);//ex) 03-29 17:30 } if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.FORIGN.O2O) etcOrderFlag = "2";//해피오더 // // 일련번호 sQuery = "SELECT ISNULL(MAX(SEQ), 0) + 1 AS NEXT_SEQ FROM POSMST..MST_KTCH_ORD_MSG " + " WHERE TRAIN_MODE_YN = '{0}' AND ORD_DIV = '{1}' AND FLOOR_CD = '{2}' AND TBL_NO = '{3}' "; sSQL = string.Format(sQuery, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.06, 연습모드 , PosConst.ORDER_TYPE.NORMAL , floorCd , tableNo); DataTable dtReturn = null; if(m_cSqlDbService.DBSelect(sSQL, out dtReturn) == UserCom.OK) { iSeq = CmUtil.GetDataRowInt(dtReturn.Rows[0], "NEXT_SEQ"); } #region (주석) 복합매장 적용 이전 //sQuery = " INSERT INTO POSMST..MST_KTCH_ORD_MSG "; //sQuery += " ( ORD_DIV, FLOOR_CD, TBL_NO, SEQ, CMP_CD, BRAND_CD, STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV, SET_MENU_CD "; //sQuery += " , ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, ORG_BILL_POSNO, ORG_BILLDT, ORG_BILL_NO "; //sQuery += " , SEND_YN, SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT ) "; //sQuery += " VALUES "; //sQuery += " ( '{0}', '{1}', '{2}', {3}, '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', N'{13}', {14}, '{15}', '{16}' "; //sQuery += " , '{17}', '{18}', '{19}', N'{20}', N'{21}', N'{22}', '{23}', '{24}', '{25}', '{26}' "; //sQuery += " , '{27}', '{28}', '{29}', '{30}', '{31}', '{32}', '{33}', '{34}', '{35}', '{36}' ) "; #endregion #region (주석) 연습모드 적용 이전, 2017.03.06 //sQuery = " INSERT INTO POSMST..MST_KTCH_ORD_MSG \n" // + " ( ORD_DIV, FLOOR_CD, TBL_NO, SEQ, CMP_CD, BRAND_CD, STOR_CD, SUB_STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV, SET_MENU_CD \n" // + " , ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, ORG_BILL_POSNO, ORG_BILLDT, ORG_BILL_NO \n" // + " , SEND_YN, SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT ) \n" // + " VALUES \n" // + " ( '{0}', '{1}', '{2}', {3}, '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', N'{14}', {15}, '{16}' \n" // + " , '{17}', '{18}', '{19}', '{20}', N'{21}', N'{22}', N'{23}', '{24}', '{25}', '{26}' \n" // + " , '{27}', '{28}', '{29}', '{30}', '{31}', '{32}', '{33}', '{34}', '{35}', '{36}', '{37}' ) "; #endregion #region (주석) KPS + KDS 동시사용, 2017.04.26 //sQuery = "INSERT INTO POSMST..MST_KTCH_ORD_MSG ( \n" // + " ORD_DIV, FLOOR_CD, TBL_NO, SEQ, CMP_CD, BRAND_CD, STOR_CD, SUB_STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV, SET_MENU_CD \n" // + ", ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, ORG_BILL_POSNO, ORG_BILLDT, ORG_BILL_NO \n" // + ", SEND_YN, SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT, TRAIN_MODE_YN \n" // + ", KTCH_MSG \n" // Add, 2017.03.23, 주방메시지 // + ", ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자 // + ", ORG_QTY \n" // Add, 2017.03.31, 이전주문수량 // + ", ORD_POS_NO \n" // Add, 2017.04.10, 주문포스번호 (서브포스에서도 주방출력 처리) // + ") VALUES ( \n" // + " '{0}', '{1}', '{2}', {3}, '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', N'{14}', {15}, '{16}' \n" // + ", '{17}', '{18}', '{19}', '{20}', N'{21}', N'{22}', N'{23}', '{24}', '{25}', '{26}' \n" // + ", '{27}', '{28}', '{29}', '{30}', '{31}', '{32}', '{33}', '{34}', '{35}', '{36}', '{37}', '{38}' \n" // + ", N'{39}' \n" // Add, 2017.03.23, 주방메시지 // + ", N'{40}' \n" // Add, 2017.03.28, 주문담당자 // + ", 0 \n" // Add, 2017.03.31, 이전주문수량 // + ", '{41}' \n" // Add, 2017.04.10, 주문포스번호 (서브포스에서도 주방출력 처리) // + ")"; #endregion sQuery = "INSERT INTO POSMST..MST_KTCH_ORD_MSG ( \n" + " ORD_DIV, FLOOR_CD, TBL_NO, SEQ, CMP_CD, BRAND_CD, STOR_CD, SUB_STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV, SET_MENU_CD \n" + ", ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, ORG_BILL_POSNO, ORG_BILLDT, ORG_BILL_NO \n" + ", SEND_YN, SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT, TRAIN_MODE_YN \n" + ", KTCH_MSG \n" // Add, 2017.03.23, 주방메시지 + ", ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자 + ", ORG_QTY \n" // Add, 2017.03.31, 이전주문수량 + ", ORD_POS_NO \n" // Add, 2017.04.10, 주문포스번호 (서브포스에서도 주방출력 처리) + ", KDS_SEND_YN \n" // Add, 2017.04.26, KDS 전송여부 + ") VALUES ( \n" + " '{0}', '{1}', '{2}', {3}, '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', N'{14}', {15}, '{16}' \n" + ", '{17}', '{18}', '{19}', '{20}', N'{21}', N'{22}', N'{23}', '{24}', '{25}', '{26}' \n" + ", '{27}', '{28}', '{29}', '{30}', '{31}', '{32}', '{33}', '{34}', '{35}', '{36}', '{37}', '{38}' \n" + ", N'{39}' \n" // Add, 2017.03.23, 주방메시지 + ", N'{40}' \n" // Add, 2017.03.28, 주문담당자 + ", 0 \n" // Add, 2017.03.31, 이전주문수량 + ", '{41}' \n" // Add, 2017.04.10, 주문포스번호 (서브포스에서도 주방출력 처리) + ", '{42}' \n" // Add, 2017.04.26, KDS 전송여부 + ")"; for (int iRow = 0; iRow < aSaleItem.Count; iRow++) { Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iRow]; if (cSaleItem.CANCEL_DIV == "1" || cSaleItem.CANCEL_DIV_MAIN == "1") cSaleItem.CANCEL_DIV = "1"; if (cSaleItem.CANCEL_DIV == "1") continue; if (cSaleItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_OK) continue; // Add, 2017.04.26, 후불 수량변경없이 가격변경 후 바로 결제시 if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && cSaleItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD) { if (cSaleItem.ORG_QTY > 0 && cSaleItem.SALE_QTY - cSaleItem.ORG_QTY == 0) { continue; } } // Add, 2017.04.12, 주문차수 if (cSaleItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_ING) cSaleItem.ORDER_SEQ = orderSeq; //취소 소계 전후 체크 string sCanDiv = cSaleItem.CANCEL_DIV; if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) { sCanDiv = m_cTrnStatus.Sale.SubTotalCancelDiv == true ? PosConst.CANCEL_DIV.CANCEL_SUBTOT : PosConst.CANCEL_DIV.CANCEL; } var itemMemoRegTime = string.Empty; var temp = cSaleItem.ITEM_MEMO_1 + cSaleItem.ITEM_MEMO_2 + cSaleItem.ITEM_MEMO_3; if (string.IsNullOrWhiteSpace(temp) == false) itemMemoRegTime = DateTime.Now.ToString("HHmmss"); // Add, 2017.01.18, 주방프린트 수동출력 사용자 선택값 var menualOrderValue = string.Empty; var menualMsgRegTime = string.Empty; var menualOrderMemo = string.Empty; if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "1") { // 장치코드 또는 NOPRINT menualOrderValue = string.IsNullOrWhiteSpace(m_cTrnStatus.Sale.MenualOrderValue) ? "NOPRINT" : m_cTrnStatus.Sale.MenualOrderValue; } else if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "2") { // 선택상품코드 또는 NOPRINT int idx = m_cTrnStatus.Sale.MenualOrderValue.IndexOf(iRow.ToString()); menualOrderValue = idx < 0 ? "NOPRINT" : "PRINT"; // Del, 2017.04.25, 주방메모 출력 (대기번호 입력) // 주방메모 //if (menualOrderValue != "NOPRINT" && string.IsNullOrWhiteSpace(m_cTrnStatus.Sale.MenualOrderMemo) == false) //{ // menualOrderMemo = m_cTrnStatus.Sale.MenualOrderMemo.Trim(); // menualMsgRegTime = DateTime.Now.ToString("HHmmss"); //} } // Add, 2017.04.25, 주방메모 출력 (대기번호 입력) if (menualOrderValue != "NOPRINT" && string.IsNullOrWhiteSpace(m_cTrnStatus.Sale.MenualOrderMemo) == false) { menualOrderMemo = m_cTrnStatus.Sale.MenualOrderMemo.Trim(); menualMsgRegTime = DateTime.Now.ToString("HHmmss"); } // INSERT INTO POSMST..MST_KTCH_ORD_MSG sSQL = string.Format(sQuery , PosConst.ORDER_TYPE.NORMAL // ORD_DIV //, m_cTrnStatus.Head.PosNo // FLOOR_CD(선불POS일 경우 POS번호) , floorCd // , m_cTrnStatus.Head.TradeNo // TBL_NO(선불POS일 경우 거래번호) //, tableNo // Mod, 2017.03.06, 주방출력 연습모드 적용 , iSeq++ // SEQ , m_cTrnStatus.Head.CmpCd // CMP_CD , m_cPosStatus.Base.BrandCd // BRAND_CD , m_cTrnStatus.Head.StoreCd // STOR_CD , cSaleItem.SUB_SHOP_CD // SUB_STOR_CD // 2017.02.06, Add //#20170919 ss해피오더 반품시 POS_NO 항목이 원거래포스번호가 들어가야 KDS에서 반품 처리됨. start //기존 //, m_cTrnStatus.Head.PosNo // POS_NO //변경 , m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND ? m_cTrnStatus.Head.OrgPosNo : m_cTrnStatus.Head.PosNo // POS_NO //#20170919 ss해피오더 반품시 POS_NO 항목이 원거래포스번호가 들어가야 KDS에서 반품 처리됨. end //, m_cTrnStatus.Head.OrderNo // TRADE_NO , orderNo // // Mod, 2017.04.11 , m_cTrnStatus.Head.SaleDate // SALE_DT , m_cPosStatus.Base.PosType // POS유형(0:선불, 1:후불) //, cSaleItem.ITEM_PLU_CD // ITEM_CD , (cSaleItem.SUBPRC_MENU_KEY_DIV == "1" || cSaleItem.SUBPRC_MENU_KEY_DIV == "2") ? cSaleItem.SUB_MENU_MAIN_CD : cSaleItem.ITEM_PLU_CD , cSaleItem.ITEM_DIV // ITEM_DIV //텀블러할인 강제 적용 2019.05.08 , cSaleItem.EXCEP_DC_DIV.Equals("1703") ? cSaleItem.ITEM_NAME +"(텀블러)" : cSaleItem.ITEM_NAME // SHTCUT_ITEMNM , cSaleItem.SALE_QTY // SALE_QTY //, cSaleItem.PACK_DIV // PACK_DIV , m_cTrnStatus.Head.PackTradeDiv // PACK_TRADE_DIV(1:일반, 2:포장, 3:배달) // SET_MENU_CD , cSaleItem.SET_MENU_CD == "" ? cSaleItem.SUB_MENU_MAIN_CD : cSaleItem.SET_MENU_CD //, cSaleItem.ORD_TIME // ORD_TIME //20170918 dkshin 해피오더 중복 거래 완료처리 수정 //, DateTime.Now.ToString("HHmmss") , orderTime , m_cTrnStatus.Head.TradeDiv // CANCEL_DIV , cSaleItem.SUBPRC_MENU_KEY_DIV // SUB_MEMO_DIV , ConvertDBStr(cSaleItem.ITEM_MEMO_1) // MSG1 , ConvertDBStr(cSaleItem.ITEM_MEMO_2) // MSG2 , ConvertDBStr(cSaleItem.ITEM_MEMO_3) // MSG3 , itemMemoRegTime // MSG_REG_TIME , m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND ? m_cTrnStatus.Head.OrgPosNo : "" // ORG_BILL_POSNO , m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND ? m_cTrnStatus.Head.OrgSaleDate : "" // ORG_BILLDT , m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND ? m_cTrnStatus.Head.OrgTradeNo : "" // ORG_BILL_NO , "0" // SEND_YN , "0" // SEND_CONFIRM_DIV , "0" // RESEND_YN , menualOrderValue // FILLER1 , etcOrderFlag // FILLER2 // 기타주문구분 (1:후불일반판매, 2:해피오더) , "" // FILLER3 , m_cTrnStatus.Head.VipTy // FILLER4 // VIP구분 (0:일반, 1:VIP, 2:직원) , "" // FILLER5 // 주문차수 , DateTime.Now.ToString("yyyyMMddHHmmss") // UPD_DT , DateTime.Now.ToString("yyyyMMddHHmmss") // REG_DT , m_cPosStatus.Base.TrainingFlag // Add, 2017.03.06, 연습모드 , ConvertDBStr(menualOrderMemo) // Add, 2017.03.23, 주방메시지 , ConvertDBStr(m_cTrnStatus.Head.OrderPicNm) // Add, 2017.03.28, 주문담당자 , m_cPosStatus.Base.PosNo // Add, 2017.04.10, 주문포스번호 (서브포스에서도 주방출력 처리) , "0" // Add, 2017.04.26, KDS 전송여부 ); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) "Insert ERROR into MST_KTCH_ORD_MSG - " + sSQL); m_cSqlDbService.Rollback(); return sRet; } } 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); } m_cSqlDbService.Rollback(); return sRet; } private string ConvertDBStr(string str) { return str.Replace("'", "''"); } #endregion 주방 데이터 저장 처리 #region 정산지 및 점검지 생성 /// /// 정산지 및 점검지 생성 /// /// /// /// public string SaveAccADMT(string sKind, string sSaleDate, ref DataTable dtReturn, string sSimplePrint) { string[] sSql = new string [50]; int iSqlIndex = 0; string sSql2 = ""; string sRet = UserCom.RST_ERR; try { //#13559 PB 노은휴먼시아_마감에 간편출력체크하지않은 마감건도 동일하게 출력되는 증상에 대해 원인 및 확인 요청 start, phj UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "[SaveAccADMT] Kind : " + sKind + " , SaleDate : " + sSaleDate + " , Simple print :" + sSimplePrint); //#13559 PB 노은휴먼시아_마감에 간편출력체크하지않은 마감건도 동일하게 출력되는 증상에 대해 원인 및 확인 요청 end, phj //string sKind = m_cTrnStatus.Head.TradeKind; //m_cDataService.SetTranBaseToHead(); //트란 헤더 정보 재설정 if (sKind != ItemConst.TRAN_KIND.STATEMENT.CLOSING_MONEY && sKind != ItemConst.TRAN_KIND.STATEMENT.MIDDLE_ADJUSTMENT && sKind != ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT) return UserCom.RST_OK; if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND) return UserCom.RST_OK; // 중간정산 옵션값변경(2017.06.14) => 중간점검 사용 여부 (0:사용안함, 1: 사용함, 2:사용함[차수별]) string sMidCloseSeq = m_cPosStatus.Base.MidCloseSeq; if (sKind != ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT && sMidCloseSeq != "99") { if (PosMstManager.GetPosOption(POS_OPTION.OPT321) != "2") sMidCloseSeq = "99"; } m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); // 정산 프로시져 sSql2 = ""; sSql2 += "EXEC POSMST..SP_ADJUSTMENT "; sSql2 += " '" + m_cTrnStatus.Head.TradeDiv + "'"; // 거래구분 (0:정상, 1:반품) sSql2 += ", '" + m_cPosStatus.Base.CmpCd + "'"; // 회사코드 sSql2 += ", '" + m_cPosStatus.Base.StoreNo + "'"; // 점포코드 sSql2 += ", '" + sSaleDate + "'"; // 영업일 sSql2 += ", '" + m_cPosStatus.Base.PosNo + "'"; // POS 번호 sSql2 += ", '" + m_cPosStatus.Base.TradeNo + "'"; // 거래번호 sSql2 += ", '" + sKind + "'"; // 거래종별 sSql2 += ", '" + m_cPosStatus.Base.Country + "'"; // 문화코드 sSql2 += ", '" + sMidCloseSeq + "'"; // 중간마감 차수 //sSql2 += ", '" + m_cPosStatus.Base.MidCloseSeq + "'"; // 중간마감 차수 sSql2 += ", '" + sSimplePrint + "'"; // 간편출력 여부 // 정산지 생성 int iRet = m_cSqlDbService.DBSelect(sSql2, out dtReturn); //#13559 PB 노은휴먼시아_마감에 간편출력체크하지않은 마감건도 동일하게 출력되는 증상에 대해 원인 및 확인 요청 start, phj UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "[SaveAccADMT] Sql: " + sSql2); //#13559 PB 노은휴먼시아_마감에 간편출력체크하지않은 마감건도 동일하게 출력되는 증상에 대해 원인 및 확인 요청 end, phj if (iRet != UserCom.OK && iRet != UserCom.NG4) { //return sRet; } else { 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); sRet = ex.Message; m_cSqlDbService.Rollback(); } return sRet; } #endregion #region 현금 알람 금액 저장 /// /// 현금 알람 저장 /// /// /// /// /// private void AddCashAlarm(string sPayWayCd, string sPayCd, double dPayAmt, double dReMain) { try { if (CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT310), "0") != "0") { //매출, 예약 거래 일때만 if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_REG || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_COMPLETE) { if (sPayWayCd == ItemConst.TR_ITEM_ID.CASH_ITEM || sPayWayCd == ItemConst.TR_ITEM_ID.CHECK_ITEM) { //현금 수표일때 추가 if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL) { m_cPosStatus.Mst.CashAlarmAmt = CmUtil.DoubleAdd(m_cPosStatus.Mst.CashAlarmAmt, dPayAmt); } else { m_cPosStatus.Mst.CashAlarmAmt = CmUtil.DoubleSubtraction(m_cPosStatus.Mst.CashAlarmAmt, dPayAmt); } } else if (sPayWayCd == ItemConst.TR_ITEM_ID.GIFT_ITEM || sPayWayCd == ItemConst.TR_ITEM_ID.FOREIGNEX_ITEM || (sPayWayCd == ItemConst.TR_ITEM_ID.PAYETC_ITEM && sPayWayCd == ItemConst.TR_ITEM_ID.PAYETC.MEAL_TIKET)) { //상품권, 식권 일때 거스름 , 식권일때도 거스름 저장 if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL) { m_cPosStatus.Mst.CashAlarmAmt = CmUtil.DoubleSubtraction(m_cPosStatus.Mst.CashAlarmAmt, dReMain); } else { m_cPosStatus.Mst.CashAlarmAmt = CmUtil.DoubleAdd(m_cPosStatus.Mst.CashAlarmAmt, dReMain); } } } } } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } } #endregion 현금 알람 금액 저장 #region 기타 헤더 저장 /// /// 기타 헤더 저장 /// /// public string EtcHeaderSaveData(string sTradeDiv, string sTradeKindper, string[] aParam) { string sQuery = ""; string sRet = UserCom.RST_ERR; try { m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); m_cSqlDbService.Begin(); string sRegDateTime = DateTime.Now.ToString("yyyyMMddHHmmss"); string sOrgSaleDt = aParam[0]; string sOrgPosNo = aParam[1]; string sOrgTradeNo = aParam[2]; sQuery = ""; sQuery += " INSERT INTO POSLOG..ETC_SALE_HEADER ( "; sQuery += " CMP_CD ,STOR_CD ,SALE_DT ,POS_NO ,REG_NO ,TRADE_NO ,TRADE_DIV ,TRAIN_MODE_YN ,TRADE_KINDPER ,SYS_DT "; sQuery += " ,ORD_TIME ,PAY_TIME ,PIC_NO ,ORD_PIC_NO ,STOR_OWN_PART_TIME_DIV ,ORG_BILL_POSNO ,ORG_BILLDT ,ORG_BILL_NO ,RTN_RSN_CD ,RTN_RSN_MEMO "; sQuery += " ,NONSALES_RSN_CD ,RESERV_NO ,RESERV_DT ,CUST_NO ,ORD_DIV ,FLOOR_CD ,TBL_NO ,GUESTFLOOR ,FRGNR_DIV ,CUSTCNT "; sQuery += " ,PAY_GNDR_DIV ,PAY_AGE ,MAN_CMPNPSN_CNT ,WOMAN_CMPNPSN_CNT ,QTY ,TOTSALE_AMT ,TOTDC_AMT ,NET_SALE_AMT ,ITEM_DC_AMT ,CPI_DC_AMT "; sQuery += " ,COOP_CARD_DC_AMT ,POINT_DC_AMT ,CPN_DC_AMT ,EMP_DC_AMT ,SET_DC_AMT ,ETC_AMT ,TOT_VAT ,SVC_FEE_AMT ,SVC_FEE_VAT ,ETC_VAT "; sQuery += " ,AF_ACCUM_POINT_AMT ,AF_ACCUM_POINT_INFO, PPCARD_CUSTNM, AMT_DUTCHPAY_YN ,BILLSPR_CNT ,ORDER_NO ,SLACK_FIELD ,MID_CLOSE_SEQ ,PPCARD_CUSTID, TRADE_STAT " ; sQuery += " ,PACK_TRADE_DIV ,SEND_YN ,REG_DATE ,UPD_DATE ,VIP_TY "; sQuery += " ) VALUES ( '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , '{9}', "; sQuery += " '{10}','{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}' , N'{19}', "; sQuery += " '{20}','{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', '{28}' , '{29}', "; sQuery += " '{30}','{31}', '{32}', '{33}', '{34}', '{35}', '{36}', '{37}', '{38}' , '{39}', "; sQuery += " '{40}','{41}', '{42}', '{43}', '{44}', '{45}', '{46}', '{47}', '{48}' , '{49}', "; sQuery += " '{50}','{51}', N'{52}','{53}', '{54}', '{55}', '{56}', '{57}', '{58}' , '{59}', "; sQuery += " '{60}','{61}', '{62}' ,'{63}', '{64}') "; 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_cPosStatus.Base.RegNo // REG_NO , m_cTrnStatus.Head.TradeNo // TRADE_NO , sTradeDiv // TRADE_DIV , m_cTrnStatus.Head.TrainModeYn // TRAIN_MODE_YN , sTradeKindper // TRADE_KINDPER , m_cTrnStatus.Head.SysYmd // SYS_DT , m_cTrnStatus.Head.OrderHms // ORD_TIME , DateTime.Now.ToString("HHmmss") // PAY_TIME , m_cTrnStatus.Head.CashierId // PIC_NO , "" // ORD_PIC_NO , m_cTrnStatus.Head.OwnPartDiv // STOR_OWN_PART_TIME_DIV , sOrgPosNo // ORG_BILL_POSNO , sOrgSaleDt // ORG_BILLDT , sOrgTradeNo // ORG_BILL_NO , "" // RTN_RSN_CD , "" // RTN_RSN_MEMO , "0" // NONSALES_RSN_CD , "" // RESERV_NO , "" // RESERV_DT , "" // CUST_NO , "0" // ORD_DIV , "" // FLOOR_CD , "" // TBL_NO , "" // GUESTFLOOR , "" // FRGNR_DIV , 0 // CUSTCNT , "" // PAY_GNDR_DIV , 0 // PAY_AGE , 0 // MAN_CMPNPSN_CNT , 0 // WOMAN_CMPNPSN_CNT , 0 // QTY , 0 // TOTSALE_AMT , 0 // TOTDC_AMT , 0 // NET_SALE_AMT , 0 // ITEM_DC_AMT , 0 // CPI_DC_AMT , 0 // COOP_CARD_DC_AMT , 0 // POINT_DC_AMT , 0 // CPN_DC_AMT , 0 // EMP_DC_AMT , 0 // SET_DC_AMT , 0 // ETC_AMT , 0 // TOT_VAT , 0 // SVC_FEE_AMT , 0 // SVC_FEE_VAT , 0 // ETC_VAT , 0 // AF_ACCUM_POINT_AMT , "" // AF_ACCUM_POINT_INFO , "" // PPCARD_CUSTNM , "" // AMT_DUTCHPAY_YN , 0 // BILLSPR_CNT , "" // ORDER_NO , "" // SLACK_FIELD , m_cTrnStatus.Head.MidCloseSeq // MID_CLOSE_SEQ , "" // PPCARD_CUSTID , "0" // TRADE_STAT , "" // PACK_TRADE_DIV , "0" // SEND_YN , sRegDateTime // REG_DATE , sRegDateTime // UPD_DATE , "" // VIP_TY ); if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } m_cSqlDbService.Commit(); 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; } #endregion 기타 헤더 저장 #region 보류 로그 저장 /// /// 보류 로그 저장 /// /// public void SaveHoldLog(string sHoldStat, string sOrgRegNo, double dQty, double dSaleAmt) { string sQuery = ""; string sRegNo = ""; try { // 보류 로드 상태에서 거래 완료시 치환! if (m_cTrnStatus.Head.HoldStat == ItemConst.HOLD_STAT_CD.LOAD && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE) sHoldStat = ItemConst.HOLD_STAT_CD.FINISH; if (sHoldStat == ItemConst.HOLD_STAT_CD.HOLD || sHoldStat == ItemConst.HOLD_STAT_CD.REHOLD) { sRegNo = m_cTrnStatus.Head.RegNo; } else if (sHoldStat == ItemConst.HOLD_STAT_CD.DELETE) { sRegNo = sOrgRegNo; m_cTrnStatus.Head.HoldOrgRegNo = sRegNo; } else { sRegNo = m_cTrnStatus.Head.HoldOrgRegNo; } if (sHoldStat != ItemConst.HOLD_STAT_CD.DELETE) { dQty = m_cTrnStatus.Head.TotQty; dSaleAmt = m_cTrnStatus.Head.NetSaleAmt; } // 등록 순번 , 원등록 순번 //1.보류면 등록 MAX +1 , 등록 MAX +1 //2.삭제면 등록 MAX +1 , 원거래순번 //3.거래취소 등록 MAX +1 , 원거래순번 //4.재보류 등록 MAX +1 , 원거래순번 //5.결제완료 등록 MAX +1 , 원거래순번 sQuery = " DECLARE @V_SEQ INT "; sQuery += " DECLARE @V_REGSEQ VARCHAR(5) "; sQuery += " DECLARE @V_ORGREGSEQ VARCHAR(5) "; sQuery += " DECLARE @V_STAT VARCHAR(3) "; sQuery += " SET @V_STAT = '{5}' "; sQuery += " SELECT @V_SEQ = ISNULL(MAX(SEQ),0) + 1 , @V_REGSEQ = RIGHT('00000' + CONVERT(VARCHAR,ISNULL(MAX(CONVERT(INT,REG_SEQ)),0) + 1),5) "; sQuery += " FROM POSLOG.dbo.ETC_HOLD_HISTORY "; sQuery += " WHERE 1 = 1 AND CMP_CD = '{0}' AND SALE_DT = '{1}' AND STOR_CD = '{2}' AND POS_NO = '{3}' "; sQuery += " IF @V_STAT = 'H01' "; sQuery += " BEGIN "; sQuery += " SET @V_ORGREGSEQ=@V_REGSEQ "; sQuery += " END "; sQuery += " ELSE "; sQuery += " BEGIN "; sQuery += " SELECT @V_ORGREGSEQ = RIGHT('00000' + CONVERT(VARCHAR,ISNULL(MAX(CONVERT(INT,REG_SEQ)),0)),5) "; sQuery += " FROM POSLOG.dbo.ETC_HOLD_HISTORY "; sQuery += " WHERE 1 = 1 AND CMP_CD = '{0}' AND SALE_DT = '{1}' AND STOR_CD = '{2}' AND POS_NO = '{3}' AND REG_NO = '" + m_cTrnStatus.Head.HoldOrgRegNo + "' "; sQuery += " END "; sQuery += " INSERT INTO POSLOG.dbo.ETC_HOLD_HISTORY ( "; sQuery += " CMP_CD, SALE_DT, STOR_CD, POS_NO, REG_NO, SEQ, HOLD_STAT, SYS_DT, SYS_TM, REG_SEQ "; sQuery += " ,ORG_REG_SEQ, PIC_NO, ITEM_QTY, SALE_AMT, AMT_FILLER_01, AMT_FILLER_02, STR_FILLER_01, STR_FILLER_02, SEND_YN, REG_DATE "; sQuery += " ,UPD_DATE "; sQuery += " ) VALUES ( '{0}', '{1}', '{2}', '{3}', '{4}', @V_SEQ, '{5}', '{6}', '{7}', @V_REGSEQ, "; sQuery += " @V_ORGREGSEQ, '{8}' ,'{9}', '{10}', '{11}', '{12}', '{13}', N'{14}', N'{15}', '{16}', '{17}' ) "; string sRegDate = DateTime.Now.ToString("yyyyMMdd"); string sRegTime = DateTime.Now.ToString("HHmmss"); sQuery = string.Format(sQuery , m_cTrnStatus.Head.CmpCd // CMP_CD , m_cTrnStatus.Head.SaleDate // SALE_DT , m_cTrnStatus.Head.StoreCd // STOR_CD , m_cTrnStatus.Head.PosNo // POS_NO , sRegNo // REG_NO , sHoldStat // HOLD_STAT , sRegDate // SYS_DT , sRegTime // SYS_TM , m_cTrnStatus.Head.CashierId // PIC_NO , dQty // ITEM_QTY , dSaleAmt // SALE_AMT , 0 // AMT_FILLER_01 , 0 // AMT_FILLER_02 , "" // STR_FILLER_01 , "" // STR_FILLER_02 , "0" // SEND_YN , sRegDate + sRegTime // REG_DATE , sRegDate + sRegTime // UPD_DATE ); m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }); m_cTrnStatus.Head.HoldStat = ""; m_cTrnStatus.Head.HoldOrgRegNo = ""; } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } } #endregion //17.05.18 dkshin 쇼킹박스 추가 public string PosShockingBoxSerch(string aParam) { string sRet = UserCom.RST_ERR; var sQuery = string.Empty; var sSQL = string.Empty; sQuery = "SELECT * FROM POSLOG..ETC_SALE_HEADER " + "WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' AND POS_NO = '{2}' AND SALE_DT + REG_NO = '{3}' "; sSQL = string.Format(sQuery, m_cTrnStatus.Head.CmpCd, m_cTrnStatus.Head.StoreCd, m_cTrnStatus.Head.PosNo, aParam); DataTable dtReturn = null; if (m_cSqlDbService.DBSelect(sSQL, out dtReturn) == UserCom.OK) { //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start //기존 //sRet = UserCom.RST_OK; //변경 DataRow dr = dtReturn.Rows[0]; sRet = CmUtil.GetDataRowStr(dr, "TRADE_KINDPER"); //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end } return sRet; } //17.05.18 dkshin 쇼킹박스 추가 public string UpdateShockingBoxTradeNo() { string sRet = UserCom.RST_ERR; var sQuery = string.Empty; var sSQL = string.Empty; try { sQuery = "UPDATE POSLOG..ETC_SALE_HEADER SET ORG_BILL_POSNO = '{0}' , ORG_BILLDT = '{1}', ORG_BILL_NO = '{2}' " + "WHERE CMP_CD = '{3}' AND STOR_CD = '{4}' AND POS_NO = '{5}' AND SALE_DT + REG_NO = '{6}' "; sSQL = string.Format(sQuery, m_cTrnStatus.Head.PosNo, m_cTrnStatus.Head.SaleDate, m_cTrnStatus.Head.TradeNo, m_cTrnStatus.Head.CmpCd, m_cTrnStatus.Head.StoreCd, m_cTrnStatus.Head.PosNo, m_cTrnStatus.Head.ShockingBoxBarcodeData); if(m_cSqlDbService.DBExecuteNonQuery(sSQL) == UserCom.OK) { sRet = UserCom.RST_OK; } return sRet; } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } return sRet; } //2017-06-02 dkshin 해피앱 추후적립 public string SaveHPAppAfter() { string sRet = UserCom.RST_ERR; string sQuery = ""; string sSQL = ""; try { //ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM); //if (alEtcItem.Count == 0) { sQuery += " INSERT INTO POSLOG..TR_HPAPP_AFTER_SAVE ( "; sQuery += " CMP_CD, SALE_DT, STOR_CD, POS_NO, TRADE_NO, BILL_BAR_CD, TMNLNO, TOT_TRADE_AMT, ACCUM_TRGT_AMT, APPR_WAY_CD, APPR_CARD_NO, ADD_ACCUM_YN, "; sQuery += " ADD_ACCUM_CD, ADD_ACCUM_HQ_ALLOT_AMT, ADD_ACCUM_STOR_ALLOT_AMT, SAVE_STATUS, SEND_YN, REG_DATE, UPD_DATE "; sQuery += " ) VALUES ( "; sQuery += " '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}' , '{9}', "; sQuery += " '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}' )"; string sVanCD = PosMstManager.GetMstPayDc(ItemConst.TR_ITEM_ID.ETC_INFO_ITEM, ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD); string sApprID = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.APPR_ID); String sAddHpAccumeYN = "N"; String sAddHpAccumeCD = string.Empty; double lADDBRNDSHRPT = 0; if (m_cTrnStatus.Head.AftSaveAddInfo != "") { sAddHpAccumeYN = m_cTrnStatus.Head.AftSaveAddInfo.ToString().Substring(25, 1); sAddHpAccumeCD = m_cTrnStatus.Head.AftSaveAddInfo.ToString().Substring(26, 2); if (sAddHpAccumeYN == "Y") { lADDBRNDSHRPT = Convert.ToDouble(m_cTrnStatus.Head.AftSaveAddInfo.ToString().Substring(28, 7)); } //lADDBRNDSHRPT = string.Format("{0:D7}", lADDBRNDSHRPT); } sSQL = string.Format(sQuery , m_cTrnStatus.Head.CmpCd // CMP_CD , m_cTrnStatus.Head.SaleDate // SALE_DT , m_cTrnStatus.Head.StoreCd // STOR_CD , m_cTrnStatus.Head.PosNo // POS_NO , m_cTrnStatus.Head.TradeNo // TRADE_NO , m_cTrnStatus.Head.RcptBarcodeData // BILL_BAR_CD , sApprID // TMNLNO : 단말기 승인 ID , m_cTrnStatus.Head.TotSaleAmt // TOT_TRADE_AMT : 총거래금액 , m_cTrnStatus.Head.AftSavePoint// ACCUM_TRGT_AMT : 적립대상금액 , "01" // APPR_WAY_CD : 결제수단코드(01:현금,02:신용 등) , "null" // APPR_CARD_NO : 결제카드번호 , sAddHpAccumeYN // ADD_ACCUM_YN : 추가적립여부 , sAddHpAccumeCD // ADD_ACCUM_CD : 추가적립코드 , lADDBRNDSHRPT // ADD_ACCUM_HQ_ALLOT_AMT : 추가적립본사부담금 , 0 // ADD_ACCUM_STOR_ALLOT_AMT :추가적립점포부담금 , 'N' // SAVE_STATUS : 해피앱 적립여부 (INSERT:N(미적립),반품:R,추후적립:P,적립:Y) , '0' // SEND_YN : TR전송 여부(0:미전송, 1: 전송, 9: 전송실패) , DateTime.Now.ToString("yyyyMMddHHmmss") // REG_DATE , DateTime.Now.ToString("yyyyMMddHHmmss") // UPD_DATE ); } if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK) { m_cSqlDbService.Rollback(); return sRet; } 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); } m_cSqlDbService.Rollback(); return sRet; } } }