using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Cosmos.BaseFrame; using Cosmos.UserFrame; using Cosmos.ServiceProvider; using Cosmos.Common; using Cosmos.CommonManager; namespace Cosmos.Win { public partial class frmHappyOrderBarcodeRegMain : Form { private SManager sManager = new SManager(); //이 객체를 통해 업무 Service 호출 private StateServer StateObject = (StateServer)StateServer.GetInstance(); //StateObject : StateServer Object(객체) private PosStatus m_cPosStatus; //거래정보 참조 /// /// Grid 연동 DataTable /// private DataTable m_dtGrid; public frmHappyOrderBarcodeRegMain() { try { InitializeComponent(); base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true); //this.UpdateStyles(); m_cPosStatus = (PosStatus)StateObject.POS; //POS 기본정보 } 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); } } private void frmHappyOrderBarcodeRegMain_Load(object sender, EventArgs e) { try { UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ""); InitControls(); RegisterItemOnGrid(); ReadyToBarcode(); } 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); } } private void frmHappyOrderBarcodeRegMain_FormClosed(object sender, FormClosedEventArgs e) { UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", lblTitle.Text); } private void RegisterItemOnGrid() { try { ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); m_dtGrid.Clear(); int nCnt = 0; foreach (Column.TR_PLU.DATA cPluItem in aSaleItem) { if(cPluItem.FLAVOUR_DIV == ItemConst.PLU_FLAVOUR_DIV.FLAVOUR) { continue; } DataRow drNew = m_dtGrid.NewRow(); drNew["NO"] = Convert.ToString(++nCnt); drNew["ITEM_NM"] = cPluItem.ITEM_NAME; drNew["QTY"] = Convert.ToString(cPluItem.SALE_QTY); drNew["PRICE"] = m_cPosStatus.Global.NumericTOCurrency(cPluItem.BILL_AMT); ; drNew["BARCODE"] = cPluItem.ITEM_BAR_CD; drNew["BLANK"] = string.Empty; m_dtGrid.Rows.Add(drNew); } gridHappyOrderList.CsmGridDataSource = m_dtGrid; gridHappyOrderList.CsmGridSelectRow(0); } 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); } } private void InitControls() { try { 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); picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_SIZE_S); lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0483); InitializeGrid(); btnGridUp.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BUTTON_GRID_UP_ARROW); btnGridUp.ImageAlign = ContentAlignment.MiddleCenter; btnGridUp.BorderStyle = BorderStyle.None; btnGridDown.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BUTTON_GRID_DOWN_ARROW); btnGridUp.ImageAlign = ContentAlignment.MiddleCenter; btnGridDown.BorderStyle = BorderStyle.None; btnDel.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0482); btnReg.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0126); tbBarcodeNum.Text = string.Empty; } 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); } } /// /// Grid 초기화 /// private void InitializeGrid() { try { //DataGridView 자체의 컬럼 헤더 Visible 여부 gridHappyOrderList.CsmGridColumnHeadersVisible = true; //DataGridView 자체의 컬럼 헤더 높이 gridHappyOrderList.CsmGridColumnHeadersHeight = 40; //DataGridView 컬럼 폰트 설정 gridHappyOrderList.CsmGridColumnHeadersFont = new Font(m_cPosStatus.Base.FONT, 11, FontStyle.Bold); //DataGridView 컬럼 수 gridHappyOrderList.CsmGridColumnCount = 6; gridHappyOrderList.CsmGridSetHeaderBackColor(236, 238, 239); //그리드 헤더 배경색 gridHappyOrderList.CsmGridDefaultRowBackColor = Color.FromArgb(255, 255, 255); //그리드 홀수(Default)행의 배경색 지정 gridHappyOrderList.CsmGridAlternateRowBackColor = Color.FromArgb(251, 253, 255); //그리드 짝수(Alternate)행의 배경색 지정 gridHappyOrderList.CsmGridBackGroundColor = Color.FromArgb(251, 253, 255); //기본 백그라운드 컬러 gridHappyOrderList.CsmGridHighlightColor = Color.FromArgb(255, 251, 211); //그리드 선택 백 컬러 gridHappyOrderList.CsmGridHighlightTextColor = Color.Black; //그리드 선택 글자 컬러 //각 컬럼별 이름 설정 gridHappyOrderList.CsmGridColumnName(0, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0014)); // NO gridHappyOrderList.CsmGridColumnName(1, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0015)); // 상품명 gridHappyOrderList.CsmGridColumnName(2, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0017)); // 수량 gridHappyOrderList.CsmGridColumnName(3, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0019)); // 금액 gridHappyOrderList.CsmGridColumnName(4, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0480)); // 바코드 gridHappyOrderList.CsmGridColumnName(5, string.Empty); // Blank //컬럼별 정렬 기준 설정(0:왼쪽, 1:가운데, 2:오른쪽) gridHappyOrderList.CsmGridAlignment(new int[] { 1, 0, 1, 2, 2, 0 }); //DataGridView 한 화면에 보이는 Row 수 gridHappyOrderList.CsmGridShowPageRowsCount = 6; //DataGridView Row의 헤더 높이 gridHappyOrderList.CsmGridRowsHeight = 36; //컬럼 넓이 지정 // 전체너비 708->744 변경되어 수정 gridHappyOrderList.CsmGridSetColumnWidth(new int[] { 46, 256, 56, 116, 238, 32 }); m_dtGrid = new DataTable(); m_dtGrid.Columns.Add(new DataColumn("NO", typeof(string))); m_dtGrid.Columns.Add(new DataColumn("ITEM_NM", typeof(string))); m_dtGrid.Columns.Add(new DataColumn("QTY", typeof(string))); m_dtGrid.Columns.Add(new DataColumn("PRICE", typeof(string))); m_dtGrid.Columns.Add(new DataColumn("BARCODE", typeof(string))); m_dtGrid.Columns.Add(new DataColumn("BLANK", typeof(string))); m_dtGrid.Clear(); gridHappyOrderList.CsmGridDataSource = m_dtGrid; } 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); } } /// /// 텍스트박스에 포커스를 고정 /// private void ReadyToBarcode() { try { tbBarcodeNum.Select(); } 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); } } private void ControlOnFormClick(object sender, EventArgs e) { try { ReadyToBarcode(); } 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); } } private void btnProc_Click(object sender, EventArgs e) { try { if ((Cosmos.UI.CsmButton)sender == btnDel) // 다시 { for(int nLoop = 0;nLoop < m_dtGrid.Rows.Count;nLoop++) { m_dtGrid.Rows[nLoop]["BARCODE"] = string.Empty; } gridHappyOrderList.Refresh(); ReadyToBarcode(); } else if ((Cosmos.UI.CsmButton)sender == btnReg) // 등록 { ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); int nCnt = 0; foreach (Column.TR_PLU.DATA cPluItem in aSaleItem) { if (cPluItem.FLAVOUR_DIV == ItemConst.PLU_FLAVOUR_DIV.FLAVOUR) { continue; } cPluItem.ITEM_BAR_CD = m_dtGrid.Rows[nCnt++]["BARCODE"].ToString(); } this.DialogResult = DialogResult.OK; this.Close(); } } 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); } } private void btnExit_Click(object sender, EventArgs e) { try { this.DialogResult = DialogResult.Cancel; this.Close(); } 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); } } private void tbBarcodeNum_KeyDown(object sender, KeyEventArgs e) { string sInputData = string.Empty; try { if(e.KeyCode == Keys.Enter) { sInputData = tbBarcodeNum.Text; tbBarcodeNum.Text = string.Empty; m_dtGrid.Rows[gridHappyOrderList.CsmGridSelectedRowIndex]["BARCODE"] = sInputData; int iCurrentIndex = gridHappyOrderList.CsmGridSelectedRowIndex; if(m_dtGrid.Rows.Count >= (iCurrentIndex + 1) + 1) { gridHappyOrderList.CsmGridSelectRow(iCurrentIndex + 1); } gridHappyOrderList.Refresh(); ReadyToBarcode(); } } 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); } } private void btnGrid_Click(object sender, EventArgs e) { try { if ((Cosmos.UI.CsmButton)sender == btnGridUp) { gridHappyOrderList.CsmGridScroll("UP"); } else if ((Cosmos.UI.CsmButton)sender == btnGridDown) { gridHappyOrderList.CsmGridScroll("DOWN"); } ReadyToBarcode(); } 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); } } private void btnGrid_MouseDown(object sender, MouseEventArgs e) { try { ((Cosmos.UI.CsmButton)sender).BorderStyle = BorderStyle.FixedSingle; ReadyToBarcode(); } 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); } } private void btnGrid_MouseUp(object sender, MouseEventArgs e) { try { ((Cosmos.UI.CsmButton)sender).BorderStyle = BorderStyle.None; ReadyToBarcode(); } 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); } } private void gridHappyOrderList_GridClickEvent(object sender, string rowIndex) { ReadyToBarcode(); } } }