272 lines
13 KiB
C#
272 lines
13 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.10
|
|||
|
// - 작업분류 : 2017.10.28 정보운영 판매 바코드 인식
|
|||
|
// - 화면설명 : 만약 사용자가 입력한 바코드 정보가 여러개일 경우
|
|||
|
// 사용자가 원하는 상품을 선택할 수 있도록 동일한 바코드의 상품을 표시하는 화면
|
|||
|
//************************************************************************************************
|
|||
|
namespace Cosmos.Win
|
|||
|
{
|
|||
|
public partial class frmMultiItem : 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 PosOLEDevice.DelegateOlePos delegatePos;
|
|||
|
|
|||
|
private IDataCommonUs m_cDataCommon = null; // POS 공통함수 인터페이스
|
|||
|
private IDataProcessUs m_cDataService = null;
|
|||
|
private ISalePluItemUs m_cPluService = null; // 판매 등록 관리
|
|||
|
|
|||
|
// 전달받은 데이터 설정에 필요한 데이터 테이블 선언 -----
|
|||
|
private DataTable _m_dtItemInit = null; // 전달받은 데이터 리스트
|
|||
|
private DataTable m_dtItemInit = null; // 조회 데이터 리스트
|
|||
|
|
|||
|
// 사용자가 선택한 그리드 행번호(초기값: -1) -----
|
|||
|
private int intSelectRow = -1;
|
|||
|
|
|||
|
// 사용자가 선택한 매장코드 -----
|
|||
|
public string strStorCD = "";
|
|||
|
|
|||
|
// 사용자가 선택한 상품코드 -----
|
|||
|
public string strSelectItemCD = "";
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 생성자 & 소멸자 & 폼초기화
|
|||
|
public frmMultiItem()
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
|
|||
|
base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true);
|
|||
|
|
|||
|
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
|
|||
|
m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보
|
|||
|
m_cDevStatus = (DeviceStatus)StateObject.DEVICE;
|
|||
|
|
|||
|
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_cPluService = (ISalePluItemUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_PLU_ITEM);
|
|||
|
}
|
|||
|
|
|||
|
public frmMultiItem(DataTable _dtDataInfo)
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
|
|||
|
base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true);
|
|||
|
|
|||
|
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
|
|||
|
m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보
|
|||
|
m_cDevStatus = (DeviceStatus)StateObject.DEVICE;
|
|||
|
|
|||
|
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_cPluService = (ISalePluItemUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_PLU_ITEM);
|
|||
|
|
|||
|
//---------------------------------------------------------
|
|||
|
// 이전 폼에서 전달받은 데이터 테이블을 폼 변수에 저장한다.
|
|||
|
//---------------------------------------------------------
|
|||
|
#region 이전 폼에서 전달받은 데이터 테이블을 폼 변수에 저장한다.
|
|||
|
_m_dtItemInit = _dtDataInfo.Copy(); // 전달받은 데이터 테이블을 저장
|
|||
|
|
|||
|
m_dtItemInit = new DataTable("INIT"); // 타켓 데이터 테이블 설정
|
|||
|
m_dtItemInit.Columns.Add(new DataColumn("NO", typeof(string)));
|
|||
|
m_dtItemInit.Columns.Add(new DataColumn("STOR_CD", typeof(string)));
|
|||
|
m_dtItemInit.Columns.Add(new DataColumn("ITEM_CD", typeof(string)));
|
|||
|
m_dtItemInit.Columns.Add(new DataColumn("ITEM_NM", typeof(string)));
|
|||
|
m_dtItemInit.Columns.Add(new DataColumn("SALE_AMT", typeof(string)));
|
|||
|
m_dtItemInit.Clear();
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
private void frmMultiItem_Load(object sender, EventArgs e)
|
|||
|
{
|
|||
|
// 컨트롤 초기화 함수 호출 -----
|
|||
|
InitControl();
|
|||
|
|
|||
|
// LOG Write -----
|
|||
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");
|
|||
|
}
|
|||
|
|
|||
|
private void frmMultiItem_FormClosing(object sender, FormClosingEventArgs e)
|
|||
|
{
|
|||
|
|
|||
|
// LOG Write -----
|
|||
|
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()
|
|||
|
{
|
|||
|
// 그리드 초기화 함수 호출 -----
|
|||
|
SetListColumn();
|
|||
|
|
|||
|
//=====================================
|
|||
|
// 만약 전달받은 데이터가 존재할 경우
|
|||
|
// 전달받은 데이터를 그리드에 표시한다.
|
|||
|
//=====================================
|
|||
|
#region 만약 전달받은 데이터가 존재할 경우 전달받은 데이터를 그리드에 표시한다.
|
|||
|
if (_m_dtItemInit != null && _m_dtItemInit.Rows.Count > 0)
|
|||
|
{
|
|||
|
for (int i = 0; i < _m_dtItemInit.Rows.Count; i++)
|
|||
|
{
|
|||
|
DataRow dr = m_dtItemInit.NewRow();
|
|||
|
dr["NO"] = i + 1;
|
|||
|
dr["STOR_CD"] = _m_dtItemInit.Rows[i]["STOR_CD"].ToString();
|
|||
|
dr["ITEM_CD"] = _m_dtItemInit.Rows[i]["ITEM_CD"].ToString();
|
|||
|
dr["ITEM_NM"] = _m_dtItemInit.Rows[i]["ITEM_NM"].ToString();
|
|||
|
|
|||
|
long _lngSaleAmt = Convert.ToInt32(_m_dtItemInit.Rows[i]["SALE_AMT"]);
|
|||
|
dr["SALE_AMT"] = _lngSaleAmt.ToString("n0");
|
|||
|
|
|||
|
m_dtItemInit.Rows.Add(dr);
|
|||
|
}
|
|||
|
|
|||
|
// 전달받은 데이터를 그리드에 표시한다. -----
|
|||
|
dgvData.CsmGridDataSource = m_dtItemInit;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
// 그리드 클릭 이벤트 호출(초기화) -----
|
|||
|
dgvData_GridClickEvent(null, "0");
|
|||
|
}
|
|||
|
|
|||
|
private void SetListColumn()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
// 간이영수증 정보
|
|||
|
dgvData.CsmGridColumnHeadersVisible = true; //DataGridView 자체의 컬럼 헤더 Visible 여부
|
|||
|
dgvData.CsmGridColumnHeadersHeight = 37; //DataGridView 자체의 컬럼 헤더 높이
|
|||
|
dgvData.CsmGridColumnHeadersFont = new Font(m_cPosStatus.Base.FONT, 12, FontStyle.Bold); //DataGridView 자체의 컬럼 헤더 폰트
|
|||
|
dgvData.CsmGridRowsHeight = 35;
|
|||
|
dgvData.CsmGridColumnCount = 5; //그리드의 컬럼수(5)
|
|||
|
dgvData.CsmGridShowPageRowsCount = 4; //그리드의 한 화면에 보이는 로우수
|
|||
|
dgvData.CsmGridSetHeaderBackColor(236, 238, 239); //그리드 헤더 배경색
|
|||
|
dgvData.CsmGridDefaultRowBackColor = Color.FromArgb(255, 255, 255); //그리드 홀수(Default)행의 배경색 지정
|
|||
|
dgvData.CsmGridAlternateRowBackColor = Color.FromArgb(251, 253, 255); //그리드 짝수(Alternate)행의 배경색 지정
|
|||
|
dgvData.CsmGridBackGroundColor = Color.FromArgb(251, 253, 255); //기본 백그라운드 컬러
|
|||
|
dgvData.CsmGridHighlightColor = Color.FromArgb(255, 251, 211); //그리드 선택 백 컬러
|
|||
|
dgvData.CsmGridHighlightTextColor = Color.Black; //그리드 선택 글자 컬러
|
|||
|
dgvData.CsmGridSetColumnWidth(new int[] { 30, 100, 100, 150, 100 }); //컬럼넓이 지정(480)
|
|||
|
dgvData.CsmGridAlignment(new int[] { 1, 1, 1, 1, 2 }); //컬럼 정렬 0:왼쪽, 1:가운데, 2:오른쪽
|
|||
|
|
|||
|
//각 컬럼별 이름 지정
|
|||
|
dgvData.CsmGridColumnName(0, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0014));
|
|||
|
dgvData.CsmGridColumnName(1, "매장코드");
|
|||
|
dgvData.CsmGridColumnName(2, "상품코드");
|
|||
|
dgvData.CsmGridColumnName(3, "상품명");
|
|||
|
dgvData.CsmGridColumnName(4, "단가");
|
|||
|
}
|
|||
|
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>
|
|||
|
/// 선택
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
private void btnSelection_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (intSelectRow > -1)
|
|||
|
{
|
|||
|
// 사용자가 선택한 매장코드 저장 -----
|
|||
|
string _strStorCD = m_dtItemInit.Rows[intSelectRow]["STOR_CD"].ToString();
|
|||
|
strStorCD = _strStorCD;
|
|||
|
|
|||
|
// 사용자가 선택한 상품코드 저장 -----
|
|||
|
string _strSelectItemCD = m_dtItemInit.Rows[intSelectRow]["ITEM_CD"].ToString();
|
|||
|
strSelectItemCD = _strSelectItemCD;
|
|||
|
|
|||
|
//------------
|
|||
|
// 리턴값 설정
|
|||
|
//------------
|
|||
|
this.DialogResult = DialogResult.OK;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 닫기
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
private void btnExit_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
// 리턴값 설정 -----
|
|||
|
this.DialogResult = DialogResult.Cancel;
|
|||
|
this.Close();
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 조회 그리드 클릭 이벤트
|
|||
|
/// <summary>
|
|||
|
/// 조회 그리드 클릭 이벤트
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
private void dgvData_GridClickEvent(object sender, string rowIndex)
|
|||
|
{
|
|||
|
// 사용자가 선택한 행 값(intSelectRow)을 저장한다. -----
|
|||
|
if (dgvData.CsmGridRowsCount == 0) return;
|
|||
|
intSelectRow = Convert.ToInt16(rowIndex); // 행 값(intSelectRow) 저장
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 업/다운 클릭 이벤트
|
|||
|
/// <summary>
|
|||
|
/// 조회 그리드 업/다운 클릭 이벤트
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
private void btnSelProc_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if ((UI.CsmButton)sender == btnUp)
|
|||
|
{
|
|||
|
dgvData.CsmGridScroll("UP");
|
|||
|
}
|
|||
|
else if ((UI.CsmButton)sender == btnDw)
|
|||
|
{
|
|||
|
dgvData.CsmGridScroll("DOWN");
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
}
|