1971 lines
101 KiB
C#
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
|
|||
|
}
|
|||
|
|
|||
|
}
|