spc-kiosk-pb/Window/WinOpenClose/frmAccADMT.cs
2019-06-16 14:12:09 +09:00

1971 lines
101 KiB
C#

using System;
using System.Text;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.Collections;
using Cosmos.Win;
using Cosmos.BaseFrame;
using Cosmos.UserFrame;
using Cosmos.ServiceProvider;
using Cosmos.Common;
using Cosmos.CommonManager;
using Cosmos.UI;
/*-----------------------------------------------------------------------------------------------*/
// 설 명 : 마감/중간마감
// 작 성 자 :
// 변경 이력 :
/*-----------------------------------------------------------------------------------------------*/
//************************************************************************************************
// 변경이력 : 마감화면에 [환전] 버튼 추가
//------------------------------------------------------------------------------------------------
// - 작 업 자 : 서광원B
// - 작업일자 : 2017.11.08
// - 작업분류 : 2017-10-17 POS제안 판매 마감화면
// - 요청사항 : 마감화면에 [환전] 버튼 추가
// - 작업내용 : 기존의 마감화면에 환전 버튼(btnExchange)을 추가하고
// 버튼 클릭시 돈통을 연다.
//************************************************************************************************
namespace Cosmos.Win
{
public partial class frmAccADMT : Form
{
#region
private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출
private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체)
private PosStatus m_cPosStatus = new PosStatus(); // 기본정보 참조
private TranStatus m_cTrnStatus = new TranStatus(); // 거래정보 참조
private DeviceStatus m_cDevStatus = new DeviceStatus(); // 디바이스 관리
private IDataCommonUs m_cDataCommon = null; // POS 공통함수 인터페이스
private IDataProcessUs m_cDataService = null;
private IAccADMT m_cAccADMT = null;
private ISaleCompleteUs m_cSaleComplete = null;
private IDataServiceUs m_cSaleOpen = null; // 개점/마감 서비스
private IDataSearch m_cDataSearch = null;
private IDatabaseSQL m_cSqlDbService = null;
private IServiceUs m_cPosConfig = null; // 환경설정 정보 송/수신
private string m_sPosMenuKeyIn;
/// <summary>
/// 외부 입력값
/// </summary>
public string PosMenuKeyIn { set { m_sPosMenuKeyIn = value; } get { return m_sPosMenuKeyIn; } }
private string m_sPosMenuKeyOut;
/// <summary>
/// 외부 출력값
/// </summary>
public string PosMenuKeyOut { set { m_sPosMenuKeyOut = value; } get { return m_sPosMenuKeyOut; } }
private bool bNotDoubleClik = false; // 더블 클릭 방지용
private string m_sPosMenuKey; // 입력코드
/// <summary>
/// 할인 구분
/// </summary>
public string SetPosMenuKey { set { this.m_sPosMenuKey = value; } }
private string m_sTranKind; // 거래종별
/// <summary>
/// 거래종별
/// </summary>
public string SetTranKind { set { this.m_sTranKind = value; } }
private string m_sTradeDiv; // 판매구분
/// <summary>
/// 판매구분
/// </summary>
public string SetTradeDiv { set { this.m_sTradeDiv = value; } }
/// <summary>
/// 입력구분
/// </summary>
private string m_sInPutType = "";
/// <summary>
/// 입력데이터
/// </summary>
private string m_sInPutData = "";
/// <summary>
/// 카드데이터
/// </summary>
private string m_sInEncData = "";
private ArrayList m_sPrintData;
private bool bSearchMode = false;
private ArrayList m_alAccData = new ArrayList();
#endregion
#region & &
public frmAccADMT()
{
InitializeComponent();
base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true);
//this.UpdateStyles();
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보
m_cDataService = (IDataProcessUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_SERVICE);
m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
m_cAccADMT = (IAccADMT)sManager.InitServiceInstance(ServiceLists.BSV_OPEN_CLOSE.DLL, ServiceLists.BSV_OPEN_CLOSE.ACC_ADMT);
m_cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
m_cSaleOpen = (IDataServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_OPEN_CLOSE.DLL, ServiceLists.BSV_OPEN_CLOSE.SALE_OPEN);
m_cDataSearch = (IDataSearch)sManager.InitServiceInstance(ServiceLists.BSV_ADMIN.DLL, ServiceLists.BSV_ADMIN.DATASEARCH);
m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL);
m_cPosConfig = (IServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_ADMIN.DLL, ServiceLists.BSV_ADMIN.POS_CONFIG);
}
private void frmAccADMT_Load(object sender, EventArgs e)
{
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");
InitControl();
}
private void frmAccADMT_Activated(object sender, EventArgs e)
{
//#20181026 #17412 PAS 대왕암공원 - 매출자료조회 frmADMT 오류창 팝업 start
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"");
//#20181026 #17412 PAS 대왕암공원 - 매출자료조회 frmADMT 오류창 팝업 end
}
private void frmAccADMT_Deactivate(object sender, EventArgs e)
{
//#20181026 #17412 PAS 대왕암공원 - 매출자료조회 frmADMT 오류창 팝업 start
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"");
//#20181026 #17412 PAS 대왕암공원 - 매출자료조회 frmADMT 오류창 팝업 end
//PosOLEDevice.SetEventHandle(null);
}
private void frmAccADMT_FormClosing(object sender, FormClosingEventArgs e)
{
vScrollbar.Attach(null);
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", lblTitle.Text);
}
/// <summary>
/// 폼 컨트롤 초기화
/// </summary>
private void InitControl()
{
try
{
// 이미지 로딩 처리
picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_FULL_SIZE);
this.Size = new Size(1024, 696);
this.Location = new Point(0, 50);
picBack.Location = new Point(0, 0);
FormManager.SetFormAllControlFont(this, m_cPosStatus.Base.FONT);
FormManager.SetTextBoxGlobalInfo(this, m_cPosStatus.Global.m_stCultureMaster.nGroupingDigits, m_cPosStatus.Global.m_stCultureMaster.strGroupingSymbol
, m_cPosStatus.Global.m_stCultureMaster.nDecimalDigits, m_cPosStatus.Global.m_stCultureMaster.strDecimalSymbol);
txtPrtData.Font = new Font(m_cPosStatus.Base.FONT_FIX, txtPrtData.Font.Size, txtPrtData.Font.Style);
vScrollbar.Attach(txtPrtData);
//버튼이미지 적용
btnAllUp1.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.NAVIBTN_14X9_UP2_BASIC);
btnAllUp1.ImageAlign = ContentAlignment.MiddleCenter;
btnAllUp1.BorderStyle = BorderStyle.None;
btnAllDw1.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.NAVIBTN_14X9_DOWN2_BASIC);
btnAllDw1.ImageAlign = ContentAlignment.MiddleCenter;
btnAllDw1.BorderStyle = BorderStyle.None;
if (btnAllUp1.Image != null) btnAllUp1.Text = "";
if (btnAllDw1.Image != null) btnAllDw1.Text = "";
//버튼이미지 적용
btnAllUp2.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.NAVIBTN_14X9_UP2_BASIC);
btnAllUp2.ImageAlign = ContentAlignment.MiddleCenter;
btnAllUp2.BorderStyle = BorderStyle.None;
btnAllDw2.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.NAVIBTN_14X9_DOWN2_BASIC);
btnAllDw2.ImageAlign = ContentAlignment.MiddleCenter;
btnAllDw2.BorderStyle = BorderStyle.None;
if (btnAllUp2.Image != null) btnAllUp2.Text = "";
if (btnAllDw2.Image != null) btnAllDw2.Text = "";
btnExit.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BTN_CLOSE);
if (btnExit.Image != null) btnExit.Text = "";
// 타이틀 m_sPosMenuKey == PosKey.MENU_KEY.SALE_CLOSE
lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0503);
lblTitle1.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0552);
lblTitle2.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0384);
lblSaleDate.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0242);
lblUserNM.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0485);
lblADMTAmount.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0556);
lblOverCash.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0557);
lblOverGift.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0558);
ckbSimple.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0881);
btnSelect.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0488); // 정산조회
btnPrint.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0257); // 출력
btnEnter.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0088); // 중간정산
btnComplete.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0503); // 업무마감
#region (2017.11.08)
btnExchange.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1070); // 환전
btnExchange.Visible = true;
#endregion
txtSaleDate.Text = m_cPosStatus.Global.DateToCulture(m_cPosStatus.Base.SaleDate);
txtUserNM.Text = m_cPosStatus.Base.CashierName;
txtADMTAmount.Text = m_cPosStatus.Global.NumericTOCurrency(0);
txtOverCash.Text = m_cPosStatus.Global.NumericTOCurrency(0);
txtOverCash.Tag = "0";
txtOverGift.Text = m_cPosStatus.Global.NumericTOCurrency(0);
txtOverGift.Tag = "0";
txtPrtData.Text = "";
m_sPrintData = new ArrayList();
// 시재입금
dgvinPay.Visible = true;
btnAllUp1.Visible = true;
btnAllDw1.Visible = true;
// 결제내역
lblTitle2.Visible = true;
dgvTender.Visible = true;
btnAllUp2.Visible = true;
btnAllDw2.Visible = true;
label11.Visible = true;
// 시재금총액
label4.Visible = true;
label6.Visible = true;
lblADMTAmount.Visible = true;
txtADMTAmount.Visible = true;
// 정산내역
vScrollbar.Visible = false;
txtPrtData.Visible = false;
txtPrtData.Location = new Point(108, 90);
vScrollbar.Location = new Point(554, 105);
lblTitle1.Location = new Point(10, 67);
lblTitle2.Location = new Point(340, 67);
bSearchMode = false;
bNotDoubleClik = false;
btnEnter.Visible = false;
lblMidCloseSeq.Visible = false;
// 중간정산 옵션값변경(2017.06.14) => 중간점검 사용 여부 (0:사용안함, 1: 사용함, 2:사용함[차수별])
if (PosMstManager.GetPosOption(POS_OPTION.OPT321) == "1" || PosMstManager.GetPosOption(POS_OPTION.OPT321) == "2")
{
lblMidCloseSeq.Visible = true;
btnEnter.Visible = true;
}
dgvinPay.Rows.Clear();
dgvTender.Rows.Clear();
//테마색상 적용!
if (m_cPosStatus.ScnMst.ThemeColor.Trim() != "")
padInPut.ThemeColor = m_cPosStatus.ScnMst.ThemeColor;
padInPut.ClearBtnText = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0817);
padInPut.SearchBtnText = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1018);
timer1.Enabled = true;
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
finally
{
WinManager.HideSearchMessage(this);
}
}
#endregion
#region
/// <summary>
/// 버튼 입력 처리
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnProc_Click(object sender, EventArgs e)
{
string sRet = UserCom.RST_ERR;
try
{
if (bNotDoubleClik) return;
bNotDoubleClik = true;
if ((UI.CsmButton)sender == btnAllUp1) // 좌측 그리드 Up
{
if (dgvinPay.Rows.Count == 0)
{
bNotDoubleClik = false;
return;
}
if (dgvinPay.CurrentRow.Index > 0)
{
for (int iLoop = dgvinPay.CurrentRow.Index - 1; iLoop >= 0; iLoop--)
{
if (dgvinPay.Rows[iLoop].Visible == false) continue;
dgvinPay.Rows[iLoop].Selected = true;
dgvinPay.Rows[iLoop].Cells[dgvinPay.CurrentCell.ColumnIndex].Selected = true;
break;
}
}
}
else if ((UI.CsmButton)sender == btnAllDw1) // 좌측 그리드 Down
{
if (dgvinPay.Rows.Count == 0)
{
bNotDoubleClik = false;
return;
}
if (dgvinPay.CurrentRow.Index < dgvinPay.Rows.Count - 1)
{
for (int iLoop = dgvinPay.CurrentRow.Index + 1; iLoop <= dgvinPay.Rows.Count - 1; iLoop++)
{
if (dgvinPay.Rows[iLoop].Visible == false) continue;
dgvinPay.Rows[iLoop].Selected = true;
dgvinPay.Rows[iLoop].Cells[dgvinPay.CurrentCell.ColumnIndex].Selected = true;
break;
}
}
}
else if ((UI.CsmButton)sender == btnAllUp2) // 우측 그리드 Up
{
if (dgvTender.Rows.Count == 0)
{
bNotDoubleClik = false;
return;
}
if (dgvTender.CurrentRow.Index > 0)
{
for (int iLoop = dgvTender.CurrentRow.Index - 1; iLoop >= 0; iLoop--)
{
if (dgvTender.Rows[iLoop].Visible == false) continue;
dgvTender.Rows[iLoop].Selected = true;
dgvTender.Rows[iLoop].Cells[dgvTender.CurrentCell.ColumnIndex].Selected = true;
break;
}
}
}
else if ((UI.CsmButton)sender == btnAllDw2) // 우측 그리드 Down
{
if (dgvTender.Rows.Count == 0)
{
bNotDoubleClik = false;
return;
}
if (dgvTender.CurrentRow.Index < dgvTender.Rows.Count - 1)
{
for (int iLoop = dgvTender.CurrentRow.Index + 1; iLoop <= dgvTender.Rows.Count - 1; iLoop++)
{
if (dgvTender.Rows[iLoop].Visible == false) continue;
dgvTender.Rows[iLoop].Selected = true;
dgvTender.Rows[iLoop].Cells[dgvTender.CurrentCell.ColumnIndex].Selected = true;
break;
}
}
}
else if (((Cosmos.UI.CsmButton)sender) == btnSelect) // 정산조회
{
// 정산 조회
sRet = SelectADMT();
bNotDoubleClik = false;
if (sRet != UserCom.RST_OK) return;
}
else if (((Cosmos.UI.CsmButton)sender) == btnComplete) // 업무마감
{
UpdateCurrentCellValue();
// 업무마감
sRet = CompleteTxtInPut(ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT, (ckbSimple.Checked == true ? "1" : "0"));
bNotDoubleClik = false;
if (sRet != UserCom.RST_OK) return;
SetBackupDatabase(); //디비백업!
SetConfigToServer(); //환경설정파일백업!
//#20181016 업무마감(일마감) 후 포스종료하기 start
if (CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT558), "0") == "1")
{
m_cPosStatus.Sale.SysShutDown = PosConst.SYS_SHUTDOWN.PGMQUIT;
}
//#20181016 업무마감(일마감) 후 포스종료하기 end
this.DialogResult = DialogResult.OK;
this.Close();
return;
}
else if (((Cosmos.UI.CsmButton)sender) == btnEnter) // 중간마감
{
UpdateCurrentCellValue();
// 중간마감
sRet = CompleteTxtInPut(ItemConst.TRAN_KIND.STATEMENT.MIDDLE_ADJUSTMENT, (ckbSimple.Checked == true ? "1" : "0"));
bNotDoubleClik = false;
if (sRet != UserCom.RST_OK) return;
// 중간정산 횟수 조회
//DataTable dtData = m_cAccADMT.GetADMTCount(new string[] { "" });
//if (dtData != null && dtData.Rows.Count != 0)
//{
// foreach (DataRow dr in dtData.Rows)
// {
// lblTitle3.Text = string.Format(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0554), m_cPosStatus.Global.NumericTOCurrency(m_cDataService.DoubleParse(dr["QTY"].ToString())));
// }
//}
DataGridSetting(0); // 그리드 초기화
}
else if (((Cosmos.UI.CsmButton)sender) == btnPrint) // 출력
{
if (PosMstManager.GetPosOption(POS_OPTION.OPT321) == "0" || m_cPosStatus.Base.OpenClose == "0")
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT;
else
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.STATEMENT.MIDDLE_ADJUSTMENT;
m_cTrnStatus.Head.TradeDiv = m_sTradeDiv;
// 영수증 출력 데이터 생성
sRet = m_cSaleComplete.ExecuteADMTReceipt(new string[] { (ckbSimple.Checked == true ? "1" : "0") });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() MakePrt.", sRet);
}
}
padInPut.SetActiveFocus();
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
bNotDoubleClik = false;
}
bNotDoubleClik = false;
}
/// <summary>
/// 닫기
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnExit_Click(object sender, EventArgs e)
{
try
{
// 이전 입력 데이터 저장 처리(2017.06.14)
m_alAccData.Clear();
for(int i = 0 ; i < dgvinPay.RowCount; i++)
{
m_alAccData.Add(new string[]{dgvinPay.Rows[i].Cells[3].Value.ToString(), dgvinPay.Rows[i].Cells[1].Value.ToString(), dgvinPay.Rows[i].Cells[2].Value.ToString()});
}
this.DialogResult = DialogResult.Cancel;
this.Close();
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
}
#endregion
#region
/// <summary>
/// 텍스트박스 키 입력 이벤트 처리
/// </summary>
/// <param name="sender"></param>
/// <param name="sFuncValue"></param>
private void txtEditBox_EditBoxKeyDownEvent(object sender, string sFuncValue)
{
try
{
if (sFuncValue == PosKey.MENU_KEY.ENTER)
{
}
else if (sFuncValue == PosKey.MENU_KEY.CLEAR)
{
}
else if (sFuncValue == PosKey.MENU_KEY.ESC_PREVIOUS)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
}
/// <summary>
/// 텍스트박스 활성화 처리
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void txtEditBox_EnterEvent(object sender, EventArgs e)
{
try
{
padInPut.SetActiveControl = (Control)sender;
}
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
/// <summary>
/// 텍스트박스 입력 유효성 체크
/// </summary>
/// <param name="sender"></param>
/// <returns></returns>
private bool CheckTxtInPut(object sender)
{
try
{
// 상품권 체크
//if (sender == null || ((Cosmos.UI.CsmPosEditBox)sender) == txtCardNo)
//{
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0189);
// return 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 false;
}
return true;
}
#endregion
#region
/// <summary>
/// 결제 처리
/// </summary>
/// <returns></returns>
private string CompleteTxtInPut(string sKind, string sSimplePrint)
{
//#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 + "()", "[CompleteTxtInPut] Kind : " + sKind + " , " + "Simple print :" + sSimplePrint);
//#13559 PB 노은휴먼시아_마감에 간편출력체크하지않은 마감건도 동일하게 출력되는 증상에 대해 원인 및 확인 요청 end, phj
string sRet = UserCom.RST_ERR;
try
{
m_sTranKind = sKind;
if (m_sTranKind == ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT)
{
// 업무마감
if (m_sTradeDiv == ItemConst.TRAN_DIV.NORMAL && m_cPosStatus.Base.OpenClose == "0")
{
// 이미 마감 처리 되어 있으면 Skip
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0319));
return sRet;
}
else if (m_sTradeDiv == ItemConst.TRAN_DIV.REFUND && m_cPosStatus.Base.OpenClose == "1")
{
// 이미 마감취소 처리 되어 있으면 Skip
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0320));
return sRet;
}
// Add, 2017.03.16, 후불 메인포스 업무마감(폐점) 조건 확인
if (m_sTradeDiv == ItemConst.TRAN_DIV.NORMAL)
{
if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT &&
m_cPosStatus.Base.PosCommunicationType == PosConst.MAIN_POS_DIV.MAIN_POS)
{
var tableSvr = (ITableUs)sManager.InitServiceInstance(ServiceLists.BSV_TABLE.DLL, ServiceLists.BSV_TABLE.TABLE_SERVICE);
var cnt = tableSvr.GetOrderDataCount();
if (cnt > 0)
{
var msg = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0670), cnt);
if (WinManager.QuestionMessage(msg) == false) return sRet;
}
}
}
}
else if (m_cPosStatus.Base.OpenClose == "0")
{
// 이미 마감 처리 되어 있으면 Skip
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0319));
return sRet;
}
if (sKind == ItemConst.TRAN_KIND.STATEMENT.MIDDLE_ADJUSTMENT)
{
if (WinManager.QuestionMessage(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0724)) != true)
{
bNotDoubleClik = false;
return sRet;
}
}
else if (sKind == ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT)
{
if (WinManager.QuestionMessage(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0725)) != true)
{
bNotDoubleClik = false;
return sRet;
}
}
// 입금저장
DataTable dtData = new DataTable();
dtData.Columns.Add(new DataColumn("DPST_WTHDR_CD", typeof(string)));
dtData.Columns.Add(new DataColumn("DPST_WTHDR_QTY", typeof(string)));
dtData.Columns.Add(new DataColumn("DPST_WTHDR_AMT", typeof(string)));
dtData.Columns.Add(new DataColumn("DPST_WTHDR_NM", typeof(string)));
// 시재입금
for (int iLoop = 0; iLoop < dgvinPay.RowCount; iLoop++)
{
DataRow dr = dtData.NewRow();
dr["DPST_WTHDR_CD"] = dgvinPay.Rows[iLoop].Cells[3].Value.ToString();
dr["DPST_WTHDR_NM"] = dgvinPay.Rows[iLoop].Cells[0].Value.ToString();
//dr["DPST_WTHDR_QTY"] = CmUtil.IntParse(dgvinPay.Rows[iLoop].Cells[1].EditedFormattedValue.ToString());
dr["DPST_WTHDR_QTY"] = m_cDataService.LongParse(dgvinPay.Rows[iLoop].Cells[1].EditedFormattedValue.ToString());
dr["DPST_WTHDR_AMT"] = m_cDataService.DoubleParse(dgvinPay.Rows[iLoop].Cells[2].EditedFormattedValue.ToString());
dtData.Rows.Add(dr);
}
// 영업마감인 경우 차수 99로 설정
// 중간마감인 경우 최종 차수로 설정
if (m_sTranKind == ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT)
{
m_cPosStatus.Base.MidCloseSeq = "99";
}
else
{
// 최종 중간마감 차수 로딩
string sQuery = "";
sQuery = " SELECT ISNULL(MAX(MID_CLOSE_SEQ),'0') MID_CLOSE_SEQ FROM POSLOG..TR_SALE_HEADER ";
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
sQuery += " AND SALE_DT = '" + m_cPosStatus.Base.SaleDate + "' ";
sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' ";
sQuery += " AND TRADE_KINDPER = '" + ItemConst.TRAN_KIND.STATEMENT.MIDDLE_ADJUSTMENT + "' ";
sQuery += " AND ISNULL(MID_CLOSE_SEQ, '0') <> '99' ";
IMasterUs m_cMstService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.POS_MASTER);
DataTable dtMidCloseSeqInfo = m_cMstService.Select(new string[] { sQuery });
if (dtMidCloseSeqInfo != null && dtMidCloseSeqInfo.Rows.Count > 0)
{
DataRow dr = dtMidCloseSeqInfo.Rows[0];
int nMidCloseSeq = (int)CmUtil.LongParse(CmUtil.GetDataRowStr(dr, "MID_CLOSE_SEQ"));
m_cPosStatus.Base.MidCloseSeq = string.Format("{0:00}", nMidCloseSeq + 1);
}
CmMessage m_PosSaleInfo = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo);
m_PosSaleInfo.GetMessage("MSGNO").MakeMessageOverWrite("MidCloseSeq", m_cPosStatus.Base.MidCloseSeq.ToString());
m_PosSaleInfo.MakeFileFromMessage(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo);
}
// 마감시재
sRet = m_cAccADMT.SetData(new string[] { ItemConst.TRAN_KIND.STATEMENT.CLOSING_MONEY, m_sTradeDiv }, dtData, sSimplePrint);
if (sRet != UserCom.RST_OK)
WinManager.ErrorMessage(sRet);
// 정산
WinManager.ShowSearchMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0361), this);
sRet = m_cAccADMT.SetData(new string[] { m_sTranKind, m_sTradeDiv }, dtData, sSimplePrint);
if (sRet == UserCom.RST_OK)
{
if (m_sTranKind == ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT)
{
// 폐점정보 생성
sRet = m_cAccADMT.SetData(new string[] { ItemConst.TRAN_KIND.LOG.POS_CLOSE, m_sTradeDiv }, null, sSimplePrint);
if (sRet == UserCom.RST_OK)
{
if (m_sTradeDiv == ItemConst.TRAN_DIV.REFUND)
{
// 정산취소
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0317));
m_cPosStatus.Base.OpenClose = "1";
}
else
{
// 마감시간 저장
m_cPosStatus.Base.CloseDateTime = DateTime.Now.ToString("yyyyMMddHHmmss");
// 정산
//ReTry:
//sRet = m_cSaleOpen.Execute(new string[] { m_cPosStatus.Base.SaleDate, m_cPosStatus.Base.CashierNo, "9" });
//if (sRet != UserCom.RST_OK)
//{
// // 영업마감 요청 통신에 실패하였습니다. 재시도 하시겠습니까?
// if (WinManager.QuestionMessage(sRet + "\r\n" + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0318)) != true)
// {
// if (WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0397)) == true)
// {
// goto Skip_Next;
// }
// return sRet;
// }
// goto ReTry;
//}
//Skip_Next:
//if (m_cPosStatus.Base.ExPos == "1")
if (m_cPosStatus.Mst.ETC_IF_DIV == ItemConst.TranInterfaceOutside.IF_KOR_01)
{
// 고속도로 휴게소 입점 POS
ICalDataIF cCalDataIF = (ICalDataIF)sManager.InitServiceInstance(ServiceLists.BSV_OPEN_CLOSE.DLL, ServiceLists.BSV_OPEN_CLOSE.CAL_DATA_IF);
cCalDataIF.Execute(new string[] { "EX", m_cPosStatus.Base.SaleDate });
}
else if (m_cPosStatus.Mst.ETC_IF_DIV == ItemConst.TranInterfaceOutside.IF_KOR_02)
//else if (m_cPosStatus.Base.KacPos == "1")
{
// 한국공항공사 관리 공항 입점 POS
ICalDataIF cCalDataIF = (ICalDataIF)sManager.InitServiceInstance(ServiceLists.BSV_OPEN_CLOSE.DLL, ServiceLists.BSV_OPEN_CLOSE.CAL_DATA_IF);
cCalDataIF.Execute(new string[] { "KAC", m_cPosStatus.Base.SaleDate });
}
//#20180322 휴게소pos매출연동 start,phj
else if (m_cPosStatus.Mst.ETC_IF_DIV == ItemConst.TranInterfaceOutside.IF_KOR_03)
{
//고속도로 휴게소 입점 POS (2018)
ICalDataIF cCalDataIF = (ICalDataIF)sManager.InitServiceInstance(ServiceLists.BSV_OPEN_CLOSE.DLL, ServiceLists.BSV_OPEN_CLOSE.CAL_DATA_IF);
cCalDataIF.Execute(new string[] { "EX2018", m_cPosStatus.Base.SaleDate });
}
//#20180322 휴게소pos매출연동 end,phj
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0316));
m_cPosStatus.Base.OpenClose = "0";
}
CmMessage m_PosSal = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo);
m_PosSal.GetMessage("POSOPEN").MakeMessageOverWrite("OpenClose", m_cPosStatus.Base.OpenClose);
m_PosSal.GetMessage("POSOPEN").MakeMessageOverWrite("CloseDateTime", m_cPosStatus.Base.CloseDateTime);
m_PosSal.MakeFileFromMessage(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo);
sRet = UserCom.RST_OK;
}
else
{
WinManager.ErrorMessage(sRet);
}
}
else if (sKind != ItemConst.TRAN_KIND.STATEMENT.MIDDLE_ADJUSTMENT)
{
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0303));
sRet = UserCom.RST_OK;
}
}
else
{
//WinManager.ErrorMessage(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);
}
finally
{
WinManager.HideSearchMessage(this);
}
return sRet;
}
#endregion
#region DeviceEvent
/// <summary>
/// DeviceEvent 관련
/// </summary>
/// <param name="sDevice"></param>
/// <param name="sData1"></param>
/// <param name="sData2"></param>
/// <param name="sData3"></param>
public void OnDeviceEvent(string sDevice, string sData1, string sData2, string sData3)
{
try
{
switch (sDevice)
{
case PosConst.OPOS_DEVICE.MSR:
this.Invoke(new EventHandler(OnMSREvent));
break;
case PosConst.OPOS_DEVICE.SCANNER:
this.Invoke(new EventHandler(OnScannerEvent));
break;
}
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
}
/// <summary>
/// MSR Event
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
private void OnMSREvent(object source, EventArgs e)
{
}
/// <summary>
/// 스캐너 이벤트 처리
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
private void OnScannerEvent(object source, EventArgs e)
{
string sScanData = m_cDevStatus.Scanner.DataLabel;
if (sScanData.Length > 0 && m_sInPutData == "")
{
m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_BARCODE;
m_sInPutData = sScanData;
//txtCardNo.Text = m_sInPutData;
/// if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL) SearchTxtInPut();
}
}
/// <summary>
/// 카드 번호 암호화
/// </summary>
/// <param name="sInData"></param>
/// <param name="sCardData"></param>
/// <param name="sCardNo"></param>
/// <returns></returns>
private string EncryptedCardNo(string sInData, ref string sCardData, ref string sCardNo)
{
string sEncData = sInData;
try
{
}
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 sEncData;
}
/// <summary>
/// IC 카드 정보 입력 처리
/// </summary>
/// <returns></returns>
private bool GetIcCardData()
{
try
{
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
return false;
}
#endregion
#region
private double DataGridSetting(int iWorkMode)
{
DataTable dtData = new DataTable();
double nOverCash = 0;
try
{
if (iWorkMode == 0)
{
// 초기화 - 입금
if (bSearchMode == true)
{
// 시재입금
btnSelect.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0488); // 정산조회
lblTitle1.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0552);
// 시재입금
dgvinPay.Visible = true;
btnAllUp1.Visible = true;
btnAllDw1.Visible = true;
// 결제내역
lblTitle2.Visible = true;
dgvTender.Visible = true;
btnAllUp2.Visible = true;
btnAllDw2.Visible = true;
label11.Visible = true;
// 시재금총액
label4.Visible = true;
label6.Visible = true;
lblADMTAmount.Visible = true;
txtADMTAmount.Visible = true;
// 정산내역
vScrollbar.Visible = false;
txtPrtData.Text = "";
txtPrtData.Update();
txtPrtData.Visible = false;
txtPrtData.Location = new Point(124, 105);
vScrollbar.Location = new Point(554, 105);
lblTitle1.Location = new Point(10, 67);
lblTitle2.Location = new Point(340, 67);
//this.Refresh();
bSearchMode = false;
}
dgvinPay.Visible = false;
dgvTender.Visible = false;
dgvinPay.Rows.Clear();
WinManager.ShowSearchMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0361), this);
dgvinPay.AllowUserToAddRows = false;
dgvinPay.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
dgvinPay.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing;
dgvinPay.Font = this.Font;
dgvinPay.DefaultCellStyle.Font = new Font(m_cPosStatus.Base.FONT, 9);
//dgvinPay.DefaultCellStyle.SelectionBackColor = Color.Transparent;
dgvinPay.Font = new Font(m_cPosStatus.Base.FONT, 9);
dgvinPay.RowHeadersDefaultCellStyle.Font = new Font(m_cPosStatus.Base.FONT, 9);
// 타이틀 설정
dgvinPay.Columns[0].HeaderText = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0240);
dgvinPay.Columns[1].HeaderText = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0241);
dgvinPay.Columns[2].HeaderText = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0019);
// 초기화 - 결제
dgvTender.Rows.Clear();
dgvTender.AllowUserToAddRows = false;
dgvTender.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
dgvTender.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing;
dgvTender.Font = this.Font;
dgvTender.DefaultCellStyle.Font = new Font(m_cPosStatus.Base.FONT, 9);
dgvTender.Font = new Font(m_cPosStatus.Base.FONT, 9);
dgvTender.RowHeadersDefaultCellStyle.Font = new Font(m_cPosStatus.Base.FONT, 9);
// 타이틀 설정
dgvTender.Columns[1].HeaderText = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0535);
dgvTender.Columns[2].HeaderText = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0017);
dgvTender.Columns[3].HeaderText = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0019);
// 중간정산 횟수 조회
dtData = m_cAccADMT.GetADMTCount(new string[] { "" });
if (dtData != null && dtData.Rows.Count != 0)
{
foreach (DataRow dr in dtData.Rows)
{
lblMidCloseSeq.Text = string.Format(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0554), CmUtil.IntParse(dr["QTY"].ToString()));
}
}
//lblMidCloseSeq.Text = string.Format(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0554), m_cPosStatus.Global.NumericTOCurrency(m_cDataService.DoubleParse(m_cPosStatus.Base.MidCloseSeq)-1));
// 현금과부족 조회
txtOverCash.Text = m_cPosStatus.Global.NumericTOCurrency(0);
txtOverCash.Tag = "0";
// 상품권과부족 조회
txtOverGift.Text = m_cPosStatus.Global.NumericTOCurrency(0);
txtOverGift.Tag = "0";
// 결제내역 조회
DataTable dtDataPay = m_cAccADMT.GetData_PayCheckList(new string[] { PosConst.COMMON_CODE_GROUP.Z0014, "0" });
dgvTender.Rows.Clear();
// 정산 점검지 생성
string sRet = m_cDataSearch.MakeAccADMTCheck(m_cPosStatus.Base.SaleDate, ref dtData, (ckbSimple.Checked == true ? "1" : "0"));
//WinManager.HideSearchMessage(this);
if (sRet != UserCom.RST_OK)
{
dgvinPay.Visible = true ;
dgvTender.Visible = true;
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0302);
return 0;
}
if (dtData != null && dtData.Rows.Count != 0)
{
foreach (DataRow dr in dtData.Rows)
{
string sSeqNo = dr["SEQ_NO"].ToString().Trim();
// 현금과부족 조회
if (sSeqNo == "7501") // 현금잔액 조회후 현금시재와 계산
{
double nAmount = m_cDataService.DoubleParse(dr["AMT"].ToString());
txtOverCash.Tag = nAmount;
txtOverCash.Text = m_cPosStatus.Global.NumericTOCurrency(nAmount);
}
// 상품권과부족 조회
if (sSeqNo == "8101") // 상품권매출 조회후 상품권시재와 계산
{
double nAmount = m_cDataService.DoubleParse(dr["AMT"].ToString());
txtOverGift.Tag = nAmount;
txtOverGift.Text = m_cPosStatus.Global.NumericTOCurrency(nAmount);
}
// 결제내역 조회
if (dtDataPay != null && dtDataPay.Rows.Count != 0)
{
foreach (DataRow dr2 in dtDataPay.Rows)
{
if (dr2["CMM_CD"].ToString().Trim() == sSeqNo)
{
int iRow = dgvTender.Rows.Add();
dgvTender.Rows[iRow].Visible = true;
dgvTender.Rows[iRow].DefaultCellStyle.ForeColor = Color.Black;
dgvTender.Rows[iRow].DefaultCellStyle.SelectionForeColor = Color.Black;
dgvTender.Rows[iRow].HeaderCell.Value = (iRow + 1).ToString();
dgvTender.Rows[iRow].Cells[0].Value = dr2["DISP_SEQ"].ToString(); // disp seq
dgvTender.Rows[iRow].Cells[1].Value = dr2["CD_NM"].ToString(); // 명칭
dgvTender.Rows[iRow].Cells[2].Value = m_cPosStatus.Global.NumericToQuantity(m_cDataService.LongParse(dr["QTY"].ToString())); // 매수
dgvTender.Rows[iRow].Cells[3].Value = m_cPosStatus.Global.NumericTOCurrency(m_cDataService.DoubleParse(dr["AMT"].ToString())); // 금액
dgvTender.Rows[iRow].Cells[1].Style.BackColor = Color.WhiteSmoke;
dgvTender.Rows[iRow].Cells[2].Style.BackColor = Color.FromArgb(222, 222, 222);
dgvTender.Rows[iRow].Cells[3].Style.BackColor = Color.FromArgb(222, 222, 222);
break;
}
}
}
}
}
// 결제정보 Sort
if (dgvTender.Rows.Count > 0) dgvTender.Sort(dgvTender.Columns["DISP_SEQ"], System.ComponentModel.ListSortDirection.Ascending);
// 시재입금 표시
dtData = m_cAccADMT.GetData_PayList(new string[] { PosConst.COMMON_CODE_GROUP.Z0004, "6200" });
dgvinPay.Rows.Clear();
this.Refresh();
if (dtData != null && dtData.Rows.Count != 0)
{
foreach (DataRow dr in dtData.Rows)
{
int iRow = dgvinPay.Rows.Add();
dgvinPay.Rows[iRow].Visible = true;
dgvinPay.Rows[iRow].DefaultCellStyle.ForeColor = Color.Black;
dgvinPay.Rows[iRow].DefaultCellStyle.SelectionForeColor = Color.Black;
dgvinPay.Rows[iRow].HeaderCell.Value = (iRow + 1).ToString();
dgvinPay.Rows[iRow].Cells[0].Value = dr["CD_NM"].ToString(); // 명칭
dgvinPay.Rows[iRow].Cells[3].Value = dr["CMM_CD"].ToString(); // 코드
dgvinPay.Rows[iRow].Cells[4].Value = m_cDataService.DoubleParse(dr[PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_01].ToString()); // 금액 (계산용)
dgvinPay.Rows[iRow].Cells[5].Value = m_cDataService.DoubleParse(dr[PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_03].ToString()); // 시재금총액 계산여부
dgvinPay.Rows[iRow].Cells[6].Value = m_cDataService.DoubleParse(dr[PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_02].ToString()); // 준비금 여부
dgvinPay.Rows[iRow].Cells[7].Value = m_cDataService.DoubleParse(dr[PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_04].ToString()); // 권종구분
dgvinPay.Rows[iRow].Cells[1].Value = m_cPosStatus.Global.NumericToQuantity(m_cDataService.LongParse(dr["QTY"].ToString())); // 매수
dgvinPay.Rows[iRow].Cells[2].Value = m_cPosStatus.Global.NumericTOCurrency(m_cDataService.DoubleParse(dr["AMT"].ToString())); // 금액
if (m_cDataService.DoubleParse(dr[PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_01].ToString()) == 0)
{
dgvinPay.Rows[iRow].Cells[2].ReadOnly = false;
//SeokWoo Moon 2017.09.14
//dgvinPay.Rows[iRow].Cells[2].Style.BackColor = Color.White;
//dgvinPay.Rows[iRow].Cells[2].Style.BackColor = Color.Yellow;
dgvinPay.Rows[iRow].Cells[2].Style.BackColor = Color.FromArgb(255, 255, 204);
}
else
{
dgvinPay.Rows[iRow].Cells[2].ReadOnly = true;
dgvinPay.Rows[iRow].Cells[2].Style.BackColor = Color.FromArgb(222, 222, 222);
}
dgvinPay.Rows[iRow].Cells[0].Style.BackColor = Color.FromArgb(222, 222, 222);
//SeokWoo Moon 2017.09.14
//dgvinPay.Rows[iRow].Cells[1].Style.BackColor = Color.White;
//dgvinPay.Rows[iRow].Cells[1].Style.BackColor = Color.Yellow;
dgvinPay.Rows[iRow].Cells[1].Style.BackColor = Color.FromArgb(255, 255, 204);
}
dgvinPay.CurrentCell = dgvinPay.Rows[0].Cells[1];
}
dgvinPay.Visible = true;
dgvTender.Visible = true;
}
else if (iWorkMode == 4)
{
// 계 조회
double nSumAmount = 0;
double nGiftAmount = 0;
for (int iLoop = 0; iLoop < dgvinPay.RowCount; iLoop++)
{
if (dgvinPay.Rows[iLoop].Cells[2].Value != null)
{
if (dgvinPay.Rows[iLoop].Cells[5].Value.ToString() == "1")
nSumAmount = CmUtil.DoubleAdd(nSumAmount, m_cDataService.DoubleParse(dgvinPay.Rows[iLoop].Cells[2].Value.ToString()));
//#20170809 마감 해피머니 금액 입력 시 상품권과부족 연동 수정 Start, srlee
// 기존
// if (dgvinPay.Rows[iLoop].Cells[7].Value.ToString() == "1")
if (dgvinPay.Rows[iLoop].Cells[7].Value.ToString() == "1" || dgvinPay.Rows[iLoop].Cells[7].Value.ToString() == "3")
//#20170809 마감 해피머니 금액 입력 시 상품권과부족 연동 수정 End, srlee
nGiftAmount = CmUtil.DoubleAdd(nGiftAmount, m_cDataService.DoubleParse(dgvinPay.Rows[iLoop].Cells[2].Value.ToString()));
}
}
// 현금과부족
nOverCash = Math.Abs(m_cDataService.DoubleParse(txtOverCash.Tag.ToString()));
// 현금과부족 부호 수정(20170531)
//txtOverCash.Text = m_cPosStatus.Global.NumericTOCurrency(CmUtil.DoubleSubtraction(nOverCash, nSumAmount));
txtOverCash.Text = m_cPosStatus.Global.NumericTOCurrency(CmUtil.DoubleSubtraction(nSumAmount, nOverCash));
// 상품권과부족
nOverCash = Math.Abs(m_cDataService.DoubleParse(txtOverGift.Tag.ToString()));
txtOverGift.Text = m_cPosStatus.Global.NumericTOCurrency(CmUtil.DoubleSubtraction(nGiftAmount, nOverCash));
return nSumAmount;
}
return 0;
}
catch ( Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
finally
{
WinManager.HideSearchMessage(this);
}
return 0;
}
#endregion
#region
/// <summary>
/// 권종별 마감 입금 처리
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dgvinPay_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
double nPayAmt = 0;
long nQty = 0;
double nSaleAmt = 0;
try
{
if (dgvinPay.Rows.Count <= 0) return;
if (e.ColumnIndex != 1 && e.ColumnIndex != 2) return;
if (e.RowIndex < 0) return;
int iRow = e.RowIndex;
//if (CmUtil.IsNumber( m_cDataService.DoubleParse(dgvinPay.Rows[iRow].Cells[e.ColumnIndex].Value.ToString()).ToString()) != true && dgvinPay.Rows[iRow].Cells[e.ColumnIndex].Value.ToString() != "")
if (e.ColumnIndex == 1)
{
if (dgvinPay.Rows[iRow].Cells[1].Value == null)
{
//WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0036);
dgvinPay.Rows[iRow].Cells[1].Value = m_cPosStatus.Global.NumericToQuantity(0);
dgvinPay.Rows[iRow].Cells[2].Value = m_cPosStatus.Global.NumericTOCurrency(0);
return;
}
if (dgvinPay.Rows[iRow].Cells[1].Value != null)
dgvinPay.Rows[iRow].Cells[1].Value = m_cPosStatus.Global.NumericToQuantity(m_cDataService.LongParse(dgvinPay.Rows[iRow].Cells[1].Value.ToString()));
}
else if (e.ColumnIndex == 2)
{
if (dgvinPay.Rows[iRow].Cells[2].Value == null)
{
//WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0036);
dgvinPay.Rows[iRow].Cells[2].Value = m_cPosStatus.Global.NumericTOCurrency(0);
return;
}
}
nQty = m_cDataService.LongParse(dgvinPay.Rows[iRow].Cells[1].Value.ToString()); // 매수
nPayAmt = m_cDataService.DoubleParse(dgvinPay.Rows[iRow].Cells[4].Value.ToString()); // 금액 (계산용)
if (nPayAmt > 0)
{
nSaleAmt = CmUtil.DoubleMultiplication(nQty, nPayAmt); // 금액
dgvinPay.Rows[iRow].Cells[2].Value = m_cPosStatus.Global.NumericTOCurrency(nSaleAmt);
}
else
{
if (dgvinPay.Rows[iRow].Cells[2].Value != null)
dgvinPay.Rows[iRow].Cells[2].Value = m_cPosStatus.Global.NumericTOCurrency(m_cDataService.DoubleParse(dgvinPay.Rows[iRow].Cells[2].Value.ToString()));
}
dgvinPay.Update();
txtADMTAmount.Text = m_cPosStatus.Global.NumericTOCurrency(DataGridSetting(4)); // 계
}
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;
}
}
private void dgvinPay_CellLeave(object sender, DataGridViewCellEventArgs e)
{
//dgvinPay_CellValueChanged(sender, e);
}
/// <summary>
/// 그리드 최종 입력 데이터 반영(2017.06.15)
/// </summary>
private void UpdateCurrentCellValue()
{
double nPayAmt = 0;
long nQty = 0;
double nSaleAmt = 0;
try
{
//#15580 관련 로그추가 Start - 20180703
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"UpdateCurrentCellValue Start!");
//#15580 관련 로그추가 End - 20180703
int iRow = dgvinPay.CurrentRow.Index;
//#15580 관련 로그추가 Start - 20180703
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"▶ iRow :" + iRow.ToString());
//#15580 관련 로그추가 End - 20180703
if (iRow < 0) return;
dgvinPay.EndEdit();
//#15580 관련 로그추가 Start - 20180703
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"▶ Qty :" + dgvinPay.Rows[iRow].Cells[1].Value.ToString() +
"▶ PayAmt :" + dgvinPay.Rows[iRow].Cells[4].Value.ToString());
//#15580 관련 로그추가 End - 20180703
nQty = m_cDataService.LongParse(dgvinPay.Rows[iRow].Cells[1].Value.ToString()); // 매수
nPayAmt = m_cDataService.DoubleParse(dgvinPay.Rows[iRow].Cells[4].Value.ToString()); // 금액 (계산용)
if (nPayAmt > 0)
{
nSaleAmt = CmUtil.DoubleMultiplication(nQty, nPayAmt); // 금액
dgvinPay.Rows[iRow].Cells[2].Value = m_cPosStatus.Global.NumericTOCurrency(nSaleAmt);
dgvinPay.Update();
txtADMTAmount.Text = m_cPosStatus.Global.NumericTOCurrency(DataGridSetting(4)); // 계
//#15580 관련 로그추가 Start - 20180703
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"▶ ADMTAmount :" + txtADMTAmount.Text);
//#15580 관련 로그추가 End - 20180703
}
//#15580 관련 로그추가 Start - 20180703
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"UpdateCurrentCellValue End!");
//#15580 관련 로그추가 End - 20180703
}
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;
}
}
#endregion
#region
/// <summary>
/// 영수증 출력데이터 생성
/// </summary>
/// <param name="sPrtHead">출력형태</param>
/// <param name="sPrtFmt">출력포맷</param>
/// <param name="sData">Data</param>
private void AddPrintData(string sPrtHead, string sPrtFmt, string[] aData)
{
try
{
string sPrtData = "";
if (sPrtFmt == PosConst.PRT_FMT.F100) // 선귿기
{
//if (sPrtFmt == PosConst.PRT_FMT.F100 && (aData[0] == "-" || aData[0] == "=")) // 선귿기 // -,=로 다시 표현해 달라고 하여 원복 20170830 GOBLIN6
//{
// if (sPrtHead == PosConst.PRT_HDR.PRT_BLD)
// for (int i = 1; i <= 21; i++) sPrtData += "━";
// else
// for (int i = 1; i <= 21; i++) sPrtData += "─";
//}
//else
//{
for (int i = 1; i <= 42; i++) sPrtData += aData[0];
//}
}
else if (sPrtFmt == PosConst.PRT_FMT.F101) // 왼쪽정렬
{
sPrtData = aData[0];
}
else if (sPrtFmt == PosConst.PRT_FMT.F102) // 오른쪽 정렬
{
sPrtData = CmUtil.LPadH(aData[0], 42);
}
else if (sPrtFmt == PosConst.PRT_FMT.F103) // 중앙정렬
{
if (sPrtHead == PosConst.PRT_HDR.PRT_HOR || sPrtHead == PosConst.PRT_HDR.PRT_BIG)
{
if (CmUtil.LenH(aData[0]) <= 21) sPrtData = CmUtil.LPadH("", 10 - (CmUtil.LenH(aData[0]) / 2)) + aData[0];
}
else
{
if (CmUtil.LenH(aData[0]) <= 42) sPrtData = CmUtil.LPadH("", 21 - (CmUtil.LenH(aData[0]) / 2)) + aData[0];
}
}
else
{
switch (aData.Length)
{
case 5:
sPrtData = CmUtil.RPadH(aData[0].ToString(), 10) + CmUtil.RPadH(aData[1].ToString(), 12) + CmUtil.LPadH(aData[2].ToString(), 6) + CmUtil.LPadH(aData[3].ToString(), 10) + CmUtil.LPadH(aData[4].ToString(), 4);
break;
case 4:
sPrtData = CmUtil.RPadH(aData[0].ToString(), 12) + CmUtil.RPadH(aData[1].ToString(), 12) + CmUtil.LPadH(aData[2].ToString(), 7) + CmUtil.LPadH(aData[3].ToString(), 11);
break;
case 3:
//sPrtData = CmUtil.RPadH(aData[0].ToString(), 23) + CmUtil.LPadH(aData[1].ToString(), 7) + CmUtil.LPadH(aData[2].ToString(), 11);
sPrtData = CmUtil.RPadH(aData[0].ToString(), 22) + CmUtil.LPadH(aData[1].ToString(), 8) + CmUtil.LPadH(aData[2].ToString(), 11);
break;
default:
sPrtData = aData[0].ToString();
break;
}
}
m_sPrintData.Add(sPrtHead + sPrtData);
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
}
#endregion
#region
/// <summary>
/// 정산조회
/// </summary>
/// <returns></returns>
private string SelectADMT()
{
string sRet = UserCom.RST_ERR;
bool bSubTitlePrint = false;
string sSeq = ""; // 정산지 수량이 있는 경우만 출력 추가 20170830 goblin6
try
{
if (bSearchMode == true)
{
// 시재입금
btnSelect.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0488); // 정산조회
lblTitle1.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0552);
// 시재입금
dgvinPay.Visible = true;
btnAllUp1.Visible = true;
btnAllDw1.Visible = true;
// 결제내역
lblTitle1.Visible = true;
lblTitle2.Visible = true;
dgvTender.Visible = true;
btnAllUp2.Visible = true;
btnAllDw2.Visible = true;
label11.Visible = true;
// 시재금총액
label4.Visible = true;
label6.Visible = true;
lblADMTAmount.Visible = true;
txtADMTAmount.Visible = true;
// 정산내역
vScrollbar.Visible = false;
txtPrtData.Text = "";
txtPrtData.Update();
txtPrtData.Visible = false;
txtPrtData.Location = new Point(124, 105);
vScrollbar.Location = new Point(554, 105);
lblTitle1.Location = new Point(10, 67);
//this.Refresh();
bSearchMode = false;
return UserCom.RST_OK;
}
// 중간정산 카운트
string sTitleMsg = "";
if (PosMstManager.GetPosOption(POS_OPTION.OPT321) == "0" || m_cPosStatus.Base.OpenClose == "0")
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT;
else
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.STATEMENT.MIDDLE_ADJUSTMENT;
m_cTrnStatus.Head.TradeDiv = m_sTradeDiv;
if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.STATEMENT.MIDDLE_ADJUSTMENT)
{
sTitleMsg = string.Format(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0484), "1");
// 중간정산 횟수 조회
DataTable dtData = m_cAccADMT.GetADMTCount(new string[] { "" });
if (dtData != null && dtData.Rows.Count != 0)
{
foreach (DataRow dr in dtData.Rows)
{
sTitleMsg = string.Format(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0484), m_cPosStatus.Global.NumericTOCurrency(CmUtil.DoubleParse(dr["QTY"].ToString())));
}
}
}
else if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT) sTitleMsg = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0089);
m_sPrintData = new ArrayList();
txtPrtData.Text = "";
WinManager.ShowSearchMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0361), this);
//DataTable dtMemu = m_cAccADMT.GetData(new string[] { m_sTranKind });
DataTable dtMemu = null;
sRet = m_cDataSearch.MakeAccADMTCheck(m_cPosStatus.Base.SaleDate, ref dtMemu, (ckbSimple.Checked == true ? "1" : "0"));
// 메뉴정보 설정
if (dtMemu != null || dtMemu.Rows.Count > 0)
{
// 타이틀
string[] sSubTitle = new string[] { MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0535)
, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0017)
, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0019) };
// 정산 수량이 없는 경우 그룹별 '내용없음' 표시로 변경 20170830 goblin6
int[] aDataPrint = new int[10];
string sPrevCd = "";
foreach (DataRow dr in dtMemu.Rows)
{
if (sPrevCd == "" || sPrevCd != CmUtil.LeftH(CmUtil.GetDataRowStr(dr, "SEQ_NO"), 1))
{
sPrevCd = CmUtil.LeftH(CmUtil.GetDataRowStr(dr, "SEQ_NO"), 1);
}
aDataPrint[CmUtil.IntParse(sPrevCd)] += CmUtil.GetDataRowInt(dr, "QTY");
}
// 정산 수량이 없는 경우 그룹별 '내용없음' 표시로 변경 20170830 goblin6
// 데이터
foreach (DataRow dr in dtMemu.Rows)
{
// #20170915 분류별 정산 내역 추가 start, phj
//기존
//string[] aRecvData = new string[3];
//변경
string[] aRecvData = new string[4];
// #20170915 분류별 정산 내역 추가 end, phj
string sTitle = ""; // 현금반품 내역 추가 20170830 goblin6
aRecvData[0] = CmUtil.GetDataRowStr(dr, "BILL_TYPE_TAG");
sTitle = aRecvData[0].Trim().ToString();
if (aRecvData[0].Trim().ToString() == "<ITEM>"
|| aRecvData[0].Trim().ToString() == "<CLASS>"
|| aRecvData[0].Trim().ToString() == "<TENDER>"
|| aRecvData[0].Trim().ToString() == "<CASHREFUND>" // 현금반품 내역 추가 20170830 goblin6
)
{
// 상품별/분류별/결제별 집계
DataTable dtMemu2 = m_cAccADMT.SelectiTemClass(new string[] { aRecvData[0].Trim().ToUpper() });
if (dtMemu2 != null && dtMemu2.Rows.Count > 0)
{
// 타이틀
if (sTitle.ToString() == "<ITEM>")
aRecvData[0] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0601);
else if (sTitle.ToString() == "<CLASS>")
// #20170915 분류별 정산 내역 추가 start, phj
//기존
//aRecvData[0] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0602);
//변경
aRecvData[0] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1033);
// #20170915 분류별 정산 내역 추가 end, phj
else if (sTitle.ToString() == "<TENDER>")
aRecvData[0] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0603);
else if (sTitle.ToString() == "<CASHREFUND>") // 현금반품 내역 추가 20170830 goblin6
aRecvData[0] = MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0207);
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, aRecvData);
// SUB 타이틀 출력
if (sTitle.ToString() == "<CASHREFUND>") // 현금반품 내역 추가 20170830 goblin6
{
aRecvData[0] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0346);
aRecvData[1] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0446);
aRecvData[2] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0019);
}
// #20170915 분류별 정산 내역 추가 start, phj
else if (sTitle.ToString() == "<CLASS>")
{
// 분류, 수량, 금액
aRecvData[0] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1032);
aRecvData[1] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0017);
aRecvData[2] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0019);
}
// #20170915 분류별 정산 내역 추가 end, phj
else
{
aRecvData[0] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0500);
aRecvData[1] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0017);
aRecvData[2] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0019);
}
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, new string[] { "-" });
//AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F301, aRecvData); // 현금반품 내역 추가 20170830 goblin6
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F302, aRecvData);
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, new string[] { "-" });
//aRecvData[0] = CmUtil.GetDataRowStr(dr, "MSG");
//aRecvData[1] = m_cPosStatus.Global.NumericTOCurrency(CmUtil.GetDataRowDouble(dr, "QTY"));
//aRecvData[2] = m_cPosStatus.Global.NumericTOCurrency(CmUtil.GetDataRowDouble(dr, "AMT"));
//AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F301, aRecvData);
// #20170915 분류별 정산 내역 추가 start, phj
double dtotNetAmt = 0;
if (sTitle.ToString() == "<CLASS>")
{
// 총시재매출
foreach (DataRow dr1 in dtMemu2.Rows)
{
// 2 - 합계row
if (CmUtil.GetDataRowStr(dr1, "LEVEL_GB").ToString() == "2")
{
dtotNetAmt = CmUtil.GetDataRowDouble(dr1, "BILL_AMT");
break;
}
}
}
// #20170915 분류별 정산 내역 추가 end, phj
foreach (DataRow dr2 in dtMemu2.Rows)
{
if (sTitle.ToString() == "<CASHREFUND>") // 현금반품 내역 추가 20170830 goblin6
{
aRecvData[0] = CmUtil.GetDataRowStr(dr2, "ITEM_NM").ToString(); // 명칭
aRecvData[1] = CmUtil.GetDataRowStr(dr2, "SALE_QTY").ToString(); // 시간
aRecvData[2] = m_cPosStatus.Global.NumericTOCurrency(CmUtil.GetDataRowDouble(dr2, "SALE_AMT")); // 금액
}
// #20170915 분류별 정산 내역 추가 start, phj
else if (sTitle.ToString() == "<CLASS>")
{
aRecvData[0] = CmUtil.GetDataRowStr(dr2, "ITEM_NM").ToString(); // 명칭
aRecvData[1] = m_cPosStatus.Global.NumericTOCurrency(CmUtil.GetDataRowDouble(dr2, "SALE_QTY")); // 수량
aRecvData[2] = m_cPosStatus.Global.NumericTOCurrency(CmUtil.GetDataRowDouble(dr2, "BILL_AMT")); // 금액
aRecvData[3] = (CmUtil.MathRounds(((Convert.ToDouble(aRecvData[2]) * 100) / dtotNetAmt), PosConst.MATH_ROUND.ROUND, 0)).ToString();
}
// #20170915 분류별 정산 내역 추가 end, phj
else
{
aRecvData[0] = CmUtil.GetDataRowStr(dr2, "ITEM_NM").ToString(); // 명칭
aRecvData[1] = m_cPosStatus.Global.NumericTOCurrency(CmUtil.GetDataRowDouble(dr2, "SALE_QTY")); // 수량
aRecvData[2] = m_cPosStatus.Global.NumericTOCurrency(CmUtil.GetDataRowDouble(dr2, "SALE_AMT")); // 금액
}
if (aRecvData[0].Trim() == "#SUM#")
{
aRecvData[0] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0501);
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, new string[] { "-" });
}
// #20170915 분류별 정산 내역 추가 start, phj
//기존
//AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F301, aRecvData);
//변경
if (sTitle.ToString() == "<CLASS>")
{
string temp = string.Empty;
temp = CmUtil.RPadH(aRecvData[0], 20) + CmUtil.LPadH(aRecvData[3], 3);
aRecvData[0] = temp;
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F301, aRecvData);
}
else
{
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F301, aRecvData);
}
// #20170915 분류별 정산 내역 추가 end, phj
}
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, new string[] { "-" });
//AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, new string[] { " " });
}
}
else if (aRecvData[0] == "<CODE>")
{
sSeq = CmUtil.GetDataRowStr(dr, "SEQ_NO"); // 정산지 수량이 있는 경우만 출력 추가 20170830 goblin6
aRecvData[0] = CmUtil.GetDataRowStr(dr, "MSG");
aRecvData[1] = m_cPosStatus.Global.NumericTOCurrency(CmUtil.GetDataRowDouble(dr, "QTY"));
aRecvData[2] = m_cPosStatus.Global.NumericTOCurrency(CmUtil.GetDataRowDouble(dr, "AMT"));
// 정산 수량이 없는 경우 그룹별 '내용없음' 표시로 변경 20170830 goblin6
if ((CmUtil.IntParse(sSeq) >= 2100 && CmUtil.IntParse(sSeq) < 6100
|| CmUtil.IntParse(sSeq) >= 8701 && CmUtil.IntParse(sSeq) <= 8704)
&& CmUtil.IntParse(sSeq) != 3800 && CmUtil.IntParse(sSeq) != 3801
&& CmUtil.IntParse(sSeq) != 4300 && CmUtil.IntParse(sSeq) != 4301
)
{
if (CmUtil.IntParse(aRecvData[1]) > 0)
{
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F301, aRecvData);
}
else
{
sPrevCd = CmUtil.LeftH(CmUtil.GetDataRowStr(dr, "SEQ_NO"), 1);
if (aDataPrint[CmUtil.IntParse(sPrevCd)] == 0)
{
aDataPrint[CmUtil.IntParse(sPrevCd)] = 1;
aRecvData[0] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0570);
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, aRecvData);
//AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, new string[] { " " });
}
}
}
else
{
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F301, aRecvData);
}
// 정산 수량이 없는 경우 그룹별 '내용없음' 표시로 변경 20170830 goblin6
}
else
{
aRecvData[0] = CmUtil.GetDataRowStr(dr, "BILL_TYPE_TAG");
// 입력된 문구 출력
if (bSubTitlePrint != true)
{
// 타이틀
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, new string[] { sTitleMsg });
//AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, new string[] { " " });
//bSubTitlePrint = true;
}
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, new string[] { "-" });
//if (bSubTitlePrint == true) AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, new string[] { " " });
if (bSubTitlePrint != true)
{
bSubTitlePrint = true;
}
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, aRecvData);
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, new string[] { "-" });
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F301, sSubTitle);
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, new string[] { "-" });
}
Application.DoEvents();
}
}
// 화면에 표시
string sData = "";
txtPrtData.Text = "";
txtPrtData.Visible = false ;
if (m_sPrintData != null)
{
for (int nLoop = 0; nLoop < m_sPrintData.Count; nLoop++)
{
if (m_sPrintData[nLoop].ToString().Trim() != "")
{
sData += m_sPrintData[nLoop].ToString().Substring(5).TrimEnd() + PosConst.CRLF;
//sData += CmUtil.MidH(m_sPrintData[nLoop].ToString(), 5, CmUtil.LenH(m_sPrintData[nLoop].ToString()) - 5).ToString() + PosConst.CRLF;
//txtPrtData.AppendText(CmUtil.MidH(m_sPrintData[nLoop].ToString(), 5, CmUtil.LenH(m_sPrintData[nLoop].ToString())).ToString() + PosConst.CRLF);
}
}
}
txtPrtData.Text = sData;
txtPrtData.Update();
txtPrtData.Select(0, 0);
txtPrtData.ScrollToCaret();
txtPrtData.Visible = true;
vScrollbar.Visible = true;
vScrollbar.Attach(txtPrtData);
if (bSearchMode != true)
{
// 정산조회
btnSelect.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0555); // 정산조회
lblTitle1.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0553);
// 시재입금
dgvinPay.Visible = false;
btnAllUp1.Visible = false;
btnAllDw1.Visible = false;
// 결제내역
lblTitle2.Visible = false;
dgvTender.Visible = false;
btnAllUp2.Visible = false;
btnAllDw2.Visible = false;
label11.Visible = false;
// 시재금총액
label4.Visible = false;
label6.Visible = false;
lblADMTAmount.Visible = false;
txtADMTAmount.Visible = false;
// 정산내역
vScrollbar.Visible = true;
txtPrtData.Visible = true;
txtPrtData.Location = new Point(124, 105);
vScrollbar.Location = new Point(554, 105);
lblTitle1.Location = new Point(121, 67);
this.Refresh();
bSearchMode = true;
}
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);
}
finally
{
WinManager.HideSearchMessage(this);
dgvinPay.Refresh();
dgvTender.Refresh();
this.Refresh();
}
return sRet;
}
#endregion
#region
/// <summary>
/// 데이터 베이스 백업
/// </summary>
/// <returns></returns>
private bool SetBackupDatabase()
{
bool bRet = false;
try
{
//메인포스만 백업함!
if (m_cPosStatus.Base.PosCommunicationType == PosConst.MAIN_POS_DIV.MAIN_POS)
{
frmDatabaseBackup fForm = (frmDatabaseBackup)FormManager.GetForm(FormManager.FORM_MASTER_BACKUP);
if (fForm == null)
{
fForm = new frmDatabaseBackup();
FormManager.AddForm(FormManager.FORM_MASTER_BACKUP, fForm);
}
fForm.ShowDialog();
}
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.ToString());
}
return bRet;
}
#endregion
#region dgvinPay_CellClick
private void dgvinPay_CellClick(object sender, DataGridViewCellEventArgs e)
{
try
{
int iCol = e.ColumnIndex;
if (e.ColumnIndex == 1)
{
if (dgvinPay.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly != false)
iCol = 1;
}
else if (e.ColumnIndex == 2)
{
if (dgvinPay.Rows[e.RowIndex].Cells[e.ColumnIndex].ReadOnly != false)
iCol = 1;
}
else
iCol = 1;
dgvinPay.EditMode = DataGridViewEditMode.EditOnEnter;
dgvinPay.Rows[e.RowIndex].Cells[iCol].Selected = true;
dgvinPay.BeginEdit(true);
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.ToString());
}
}
#endregion
#region
/// <summary>
/// 환경 설정 서버 송신
/// </summary>
private void SetConfigToServer()
{
try
{
//회사코드, 점포코드, 포스번호, 서버아이피, 서버 포트 유무 체크
if (m_cPosStatus.Base.CmpCd != "" && m_cPosStatus.Base.StoreNo != "" && m_cPosStatus.Base.PosNo != "" && m_cPosStatus.Base.CommSvrIp.Trim() != "" && (int)m_cPosStatus.Base.BizInqPort != 0)
m_cPosConfig.Execute(new string[] { ItemConst.POS_CONFIG_TYPE.SAVE, "" });
}
catch (Exception) { }
}
#endregion
#region
private void timer1_Tick(object sender, EventArgs e)
{
try
{
timer1.Enabled = false;
DataGridSetting(0); // 그리드 초기화
// 이전 입력 데이터 화면표시 처리(2017.06.14)
for (int i = 0; i < dgvinPay.RowCount; i++)
{
foreach(string[] sAccData in m_alAccData)
{
if (dgvinPay.Rows[i].Cells[3].Value.ToString() == sAccData[0])
{
dgvinPay.Rows[i].Cells[1].Value = sAccData[1];
dgvinPay.Rows[i].Cells[2].Value = sAccData[2];
break;
}
}
}
m_alAccData.Clear();
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.ToString());
}
}
#endregion
//**********************************************
// (2017.11.08) 마감화면에 환전 버튼 추가를 위한
// 버튼 클릭 이벤트 함수
//**********************************************
#region
private void btnExchange_Click(object sender, EventArgs e)
{
try
{
if (m_cPosStatus.Base.TrainingFlag == "1") //연습모드이면...
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0491);
}
else
{
m_cSaleComplete.OpenManualCashdrawer();
}
}
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
}
}