using ClientLib; using ClientLib.CommonService; using DevExpress.XtraGrid; using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraGrid.Views.Grid.ViewInfo; using DevExpress.XtraEditors; using Popbill; using Popbill.Taxinvoice; using PublicLib; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace HANMI_J_SALE { public partial class TaxBillByPopbill : PublicLib.CommonMDI { private TaxinvoiceService m_Popbill; private DataTable m_Order, m_Detail; public TaxBillByPopbill() { InitializeComponent(); gridControl_TaxBill_NotMake.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat; gridControl_TaxBill_NotMake.LookAndFeel.UseDefaultLookAndFeel = false; gridView_TaxBill_NotMake.Appearance.HeaderPanel.BackColor = Color.FromArgb(170, 204, 255); gridControl_TaxBill_Maked.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat; gridControl_TaxBill_Maked.LookAndFeel.UseDefaultLookAndFeel = false; gridView_TaxBill_Maked.Appearance.HeaderPanel.BackColor = Color.FromArgb(170, 204, 255); gridControl_Etc.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat; gridControl_Etc.LookAndFeel.UseDefaultLookAndFeel = false; gridView_Etc.Appearance.HeaderPanel.BackColor = Color.FromArgb(170, 204, 255); gridControl_Cust.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat; gridControl_Cust.LookAndFeel.UseDefaultLookAndFeel = false; gridView_Cust.Appearance.HeaderPanel.BackColor = Color.FromArgb(170, 204, 255); gridControl_NotSendList.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat; gridControl_NotSendList.LookAndFeel.UseDefaultLookAndFeel = false; gridView_NotSendList.Appearance.HeaderPanel.BackColor = Color.FromArgb(170, 204, 255); gridControl_Sended.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat; gridControl_Sended.LookAndFeel.UseDefaultLookAndFeel = false; gridView_Sended.Appearance.HeaderPanel.BackColor = Color.FromArgb(170, 204, 255); gridControl_PopBill.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Flat; gridControl_PopBill.LookAndFeel.UseDefaultLookAndFeel = false; gridView_PopBill.Appearance.HeaderPanel.BackColor = Color.FromArgb(170, 204, 255); m_Order = null; panelControl_Search.Height = 70; progressBarControl_Send.Visible = false; progressBarControl_Sended.Visible = false; //if (ConstClass._DEBUG_MODE) //{ // dateEdit_SDATE.DateTime = Convert.ToDateTime("2018-12-01"); // dateEdit_FDATE.DateTime = Convert.ToDateTime("2018-12-31"); //} //else //{ // dateEdit_SDATE.DateTime = Convert.ToDateTime(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01"); // dateEdit_FDATE.DateTime = DateTime.Now; //} DateTime today = DateTime.Now.Date; if (today.Day <= 10) { today = today.AddMonths(-1); } DateTime firstDay = today.AddDays(1 - today.Day); DateTime lastDay = firstDay.AddMonths(1).AddDays(-1); dateEdit_SDATE.DateTime = firstDay; dateEdit_FDATE.DateTime = lastDay; if (today.Day <= 10) { dateEdit_Date.DateTime = firstDay.AddMonths(1).AddDays(-1); } else { dateEdit_Date.DateTime = DateTime.Now; } xtraTabControl_TaxBill.SelectedTabPage = xtraTabPage_Batch; panelControl_Cust.Visible = true; xtraTabControl_Tab.SelectedTabPage = xtraTabPage_Tab1; xtraTabControl_Tab.SelectedPageChanged += (sender, e) => { panelControl_Search.Height = xtraTabControl_Tab.SelectedTabPageIndex == 0 ? 70 : 37; panelControl_Date.Visible = xtraTabControl_Tab.SelectedTabPageIndex != 1; panelControl_Cust.Left = xtraTabControl_Tab.SelectedTabPageIndex == 1 ? 25 : 396; }; DataView c16 = new DataView(ConstClass._DATA); c16.RowFilter = "CATE_CD = 'C' and GRP_CD = 'C16'"; UtilClass.SetLookup(lookUpEdit_SIGN_GUBUN, c16, "NO_CD", "NO_CD_NM", true, true); DataView c18 = new DataView(ConstClass._DATA); c18.RowFilter = "CATE_CD = 'C' and GRP_CD = 'C18'"; UtilClass.SetLookup(lookUpEdit_TAX_REQ_TYPE, c18, "NO_CD", "NO_CD_NM", true); DataView c19 = new DataView(ConstClass._DATA); c19.RowFilter = "CATE_CD = 'C' and GRP_CD = 'C19'"; UtilClass.SetLookup(lookUpEdit_TAX_TYPE, c19, "NO_CD", "NO_CD_NM", true); gridControl_TaxBill_NotMake.Visible = true; gridControl_TaxBill_NotMake.Dock = DockStyle.Fill; gridControl_TaxBill_Maked.Visible = false; gridControl_TaxBill_Maked.Dock = DockStyle.None; panelControl_TAX_DT.Visible = panelControl_REQ_TYPE.Visible = panelControl_TAX_TYPE.Visible = true; simpleButton_Popbill.Click += (sender, e) => { Process.Start("https://www.popbill.com/"); }; checkEdit_NotMake.CheckedChanged += (sender, e) => { if (checkEdit_NotMake.Checked) { simpleButton_Make.Text = "선택된 모든 자료를 발행"; gridControl_TaxBill_Maked.Visible = false; gridControl_TaxBill_Maked.Dock = DockStyle.None; gridControl_TaxBill_NotMake.Visible = true; gridControl_TaxBill_NotMake.Dock = DockStyle.Fill; panelControl_TAX_DT.Visible = panelControl_REQ_TYPE.Visible = panelControl_TAX_TYPE.Visible = true; } else { simpleButton_Make.Text = "선택된 모든 자료를 발행취소"; gridControl_TaxBill_Maked.Visible = true; gridControl_TaxBill_Maked.Dock = DockStyle.Fill; gridControl_TaxBill_NotMake.Visible = false; gridControl_TaxBill_NotMake.Dock = DockStyle.None; panelControl_TAX_DT.Visible = panelControl_REQ_TYPE.Visible = panelControl_TAX_TYPE.Visible = false; } if (xtraTabControl_TaxBill.SelectedTabPageIndex == 1) { gridControl_Etc.DataSource = null; } }; buttonEdit_CUST_NM.EditValueChanged += (sender, e) => { labelControl_CUST_CD.Text = ""; }; buttonEdit_CUST_NM.ButtonClick += (sender, e) => { selectCustProc(); }; buttonEdit_CUST_NM.KeyPress += (sender, e) => { if (e.KeyChar == '\r') { selectCustProc(); } }; simpleButton_CompSave.Click += (sender, e) => { try { this.Cursor = Cursors.WaitCursor; SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("TB_COMP_CD", SqlDbType.NVarChar, "POPBILL"), ClientClass.CreateSqlParameter("COMP_NM", SqlDbType.NVarChar, textEdit_COMP_NM.Text), ClientClass.CreateSqlParameter("BIZ_NO", SqlDbType.NVarChar, textEdit_BIZ_NO.Text), ClientClass.CreateSqlParameter("OWNER_NM", SqlDbType.NVarChar, textEdit_OWNER_NM.Text), ClientClass.CreateSqlParameter("COND_NM", SqlDbType.NVarChar, textEdit_COND_NM.Text), ClientClass.CreateSqlParameter("EVNT_NM", SqlDbType.NVarChar, textEdit_EVNT_NM.Text), ClientClass.CreateSqlParameter("TB_USR_NM", SqlDbType.NVarChar, textEdit_TB_USR_NM.Text), ClientClass.CreateSqlParameter("TEL_NO", SqlDbType.NVarChar, textEdit_TEL_NO.Text), ClientClass.CreateSqlParameter("FAX_NO", SqlDbType.NVarChar, textEdit_FAX_NO.Text), ClientClass.CreateSqlParameter("EMAIL", SqlDbType.NVarChar, textEdit_EMAIL.Text), ClientClass.CreateSqlParameter("ADDR1", SqlDbType.NVarChar, textEdit_ADDR1.Text), ClientClass.CreateSqlParameter("TB_USR_ID", SqlDbType.NVarChar, textEdit_TB_USR_ID.Text), ClientClass.CreateSqlParameter("TB_USR_PWD", SqlDbType.NVarChar, textEdit_TB_USR_PWD.Text), ClientClass.CreateSqlParameter("TB_BANK_NM", SqlDbType.NVarChar, textEdit_TB_BANK_NM.Text), ClientClass.CreateSqlParameter("TB_ACCT_NO", SqlDbType.NVarChar, textEdit_TB_ACCT_NO.Text), ClientClass.CreateSqlParameter("TB_ACCT_NM", SqlDbType.NVarChar, textEdit_TB_ACCT_NM.Text), ClientClass.CreateSqlParameter("REG_ID", SqlDbType.NVarChar, ConstClass._USR_ID) }; ResultData resultData = ClientClass.SetData("SaveTaxBillByPopbill_Comp", aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } this.Cursor = Cursors.Arrow; MessageBox.Show("저장 완료"); } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } }; simpleButton_CustSave.Click += (sender, e) => { try { DataRow row = gridView_Cust.GetFocusedDataRow(); if (row == null) { return; } this.Cursor = Cursors.WaitCursor; string cust_cd = UtilClass.toStr(row["CUST_CD"]); SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("CUST_CD", SqlDbType.NVarChar, cust_cd), ClientClass.CreateSqlParameter("CUST_NM", SqlDbType.NVarChar, textEdit_CUST_NM.Text), ClientClass.CreateSqlParameter("BIZ_NO", SqlDbType.NVarChar, textEdit_CUST_BIZ_NO.Text), ClientClass.CreateSqlParameter("OWNER_NM", SqlDbType.NVarChar, textEdit_CUST_OWNER_NM.Text), ClientClass.CreateSqlParameter("COND_NM", SqlDbType.NVarChar, textEdit_CUST_COND_NM.Text), ClientClass.CreateSqlParameter("EVNT_NM", SqlDbType.NVarChar, textEdit_CUST_EVNT_NM.Text), ClientClass.CreateSqlParameter("FAX_NO", SqlDbType.NVarChar, textEdit_CUST_FAX_NO.Text), ClientClass.CreateSqlParameter("ADDR1", SqlDbType.NVarChar, textEdit_CUST_ADDR1.Text), ClientClass.CreateSqlParameter("MGR_NM", SqlDbType.NVarChar, textEdit_CUST_MGR_NM.Text), ClientClass.CreateSqlParameter("MGR_TEL_NO", SqlDbType.NVarChar, textEdit_CUST_MGR_TEL_NO.Text), ClientClass.CreateSqlParameter("MGR_EMAIL", SqlDbType.NVarChar, textEdit_CUST_MGR_EMAIL.Text), ClientClass.CreateSqlParameter("REG_ID", SqlDbType.NVarChar, ConstClass._USR_ID) }; ResultData resultData = ClientClass.SetData("SaveTaxBillByPopbill_Cust", aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } this.Cursor = Cursors.Arrow; MessageBox.Show("저장 완료"); searchCust(); Application.DoEvents(); for (int i = 0; i < gridView_Cust.RowCount; i++) { if (UtilClass.isEqual(cust_cd, gridView_Cust.GetDataRow(i)["CUST_CD"])) { gridView_Cust.FocusedRowHandle = i; break; } } } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } }; gridView_Cust.FocusedRowChanged += (sender, e) => { textEdit_CUST_NM.Text = ""; textEdit_CUST_BIZ_NO.Text = ""; textEdit_CUST_OWNER_NM.Text = ""; textEdit_CUST_COND_NM.Text = ""; textEdit_CUST_EVNT_NM.Text = ""; textEdit_CUST_FAX_NO.Text = ""; textEdit_CUST_ADDR1.Text = ""; textEdit_CUST_MGR_NM.Text = ""; textEdit_CUST_MGR_TEL_NO.Text = ""; textEdit_CUST_MGR_EMAIL.Text = ""; DataRow row = gridView_Cust.GetFocusedDataRow(); if (row == null) { return; } textEdit_CUST_NM.Text = UtilClass.toStr(row["CUST_NM"]); textEdit_CUST_BIZ_NO.Text = UtilClass.toStr(row["BIZ_NO"]); textEdit_CUST_OWNER_NM.Text = UtilClass.toStr(row["OWNER_NM"]); textEdit_CUST_COND_NM.Text = UtilClass.toStr(row["COND_NM"]); textEdit_CUST_EVNT_NM.Text = UtilClass.toStr(row["EVNT_NM"]); textEdit_CUST_FAX_NO.Text = UtilClass.toStr(row["FAX_NO"]); textEdit_CUST_ADDR1.Text = UtilClass.toStr(row["ADDR1"]); textEdit_CUST_MGR_NM.Text = UtilClass.toStr(row["MGR_NM"]); textEdit_CUST_MGR_TEL_NO.Text = UtilClass.toStr(row["MGR_TEL_NO"]); textEdit_CUST_MGR_EMAIL.Text = UtilClass.toStr(row["MGR_EMAIL"]); }; simpleButton_Make.Click += (sender, e) => { if (checkEdit_NotMake.Checked) { if (xtraTabControl_TaxBill.SelectedTabPageIndex == 0) { makeProcBatch(); } else { makeProcEtc(); } } else { if (xtraTabControl_TaxBill.SelectedTabPageIndex == 0) { unMakeProcBatch(); } else { unMakeProcEtc(); } } }; simpleButton_SelectAll.Click += (sender, e) => { DataTable aData = null; GridView view = null; if (xtraTabControl_Tab.SelectedTabPageIndex == 0) { if (xtraTabControl_TaxBill.SelectedTabPageIndex == 0) { if (checkEdit_NotMake.Checked) { if (gridControl_TaxBill_NotMake.DataSource == null) { return; } aData = gridControl_TaxBill_NotMake.DataSource as DataTable; view = gridView_TaxBill_NotMake; } else { if (gridControl_TaxBill_Maked.DataSource == null) { return; } aData = gridControl_TaxBill_Maked.DataSource as DataTable; view = gridView_TaxBill_Maked; } } else { if (gridControl_Etc.DataSource == null) { return; } aData = gridControl_Etc.DataSource as DataTable; view = gridView_Etc; } } else if (xtraTabControl_Tab.SelectedTabPageIndex == 1) { if (gridControl_Cust.DataSource == null) { return; } aData = gridControl_Cust.DataSource as DataTable; view = gridView_Cust; } else if (xtraTabControl_Tab.SelectedTabPageIndex == 2) { if (xtraTabControl_Send.SelectedTabPageIndex == 0) { if (gridControl_NotSendList.DataSource == null) { return; } aData = gridControl_NotSendList.DataSource as DataTable; view = gridView_NotSendList; } } if (aData == null || view == null) { return; } try { view.BeginDataUpdate(); foreach (DataRow row in aData.Rows) { row["SEL_FIELD"] = "Y"; } } finally { view.EndDataUpdate(); } }; simpleButton_SelectNone.Click += (sender, e) => { DataTable aData = null; GridView view = null; if (xtraTabControl_Tab.SelectedTabPageIndex == 0) { if (xtraTabControl_TaxBill.SelectedTabPageIndex == 0) { if (checkEdit_NotMake.Checked) { if (gridControl_TaxBill_NotMake.DataSource == null) { return; } aData = gridControl_TaxBill_NotMake.DataSource as DataTable; view = gridView_TaxBill_NotMake; } else { if (gridControl_TaxBill_Maked.DataSource == null) { return; } aData = gridControl_TaxBill_Maked.DataSource as DataTable; view = gridView_TaxBill_Maked; } } else { if (gridControl_Etc.DataSource == null) { return; } aData = gridControl_Etc.DataSource as DataTable; view = gridView_Etc; } } else if (xtraTabControl_Tab.SelectedTabPageIndex == 1) { if (gridControl_Cust.DataSource == null) { return; } aData = gridControl_Cust.DataSource as DataTable; view = gridView_Cust; } else if (xtraTabControl_Tab.SelectedTabPageIndex == 2) { if (xtraTabControl_Send.SelectedTabPageIndex == 0) { if (gridControl_NotSendList.DataSource == null) { return; } aData = gridControl_NotSendList.DataSource as DataTable; view = gridView_NotSendList; } } if (aData == null || view == null) { return; } try { view.BeginDataUpdate(); foreach (DataRow row in aData.Rows) { row["SEL_FIELD"] = "N"; } } finally { view.EndDataUpdate(); } }; simpleButton_SendSelectAll.Click += (sender, e) => { try { if (gridControl_NotSendList.DataSource == null) { return; } DataTable aData = gridControl_NotSendList.DataSource as DataTable; gridView_NotSendList.BeginDataUpdate(); foreach (DataRow row in aData.Rows) { row["SEL_FIELD"] = "Y"; } } finally { gridView_NotSendList.EndDataUpdate(); } }; simpleButton_SendSelectNone.Click += (sender, e) => { try { if (gridControl_NotSendList.DataSource == null) { return; } DataTable aData = gridControl_NotSendList.DataSource as DataTable; gridView_NotSendList.BeginDataUpdate(); foreach (DataRow row in aData.Rows) { row["SEL_FIELD"] = "N"; } } finally { gridView_NotSendList.EndDataUpdate(); } }; simpleButton_Send.Click += (sender, e) => { try { if (gridControl_NotSendList.DataSource == null) { return; } DataTable aData = gridControl_NotSendList.DataSource as DataTable; DataRow[] rows = aData.Select("SEL_FIELD = 'Y'"); if (rows == null || rows.Length < 1) { throw new Exception("전송할 자료를 선택하십시오."); } DataView s08 = new DataView(ConstClass._DATA); s08.RowFilter = "CATE_CD = 'S' and GRP_CD = 'S01' and NO_CD = '08'"; if (s08.Count < 1) { throw new Exception("팝빌 로그인 아이디가 존재하지 않습니다."); } string popbill_id = UtilClass.toStr(s08[0]["NO_CD_NM"]); if (UtilClass.isNull(popbill_id)) { throw new Exception("팝빌 로그인 아이디를 등록하십시오."); } if (MessageBox.Show("선택한 자료들을 팝빌로 전송하시겠습니까?", "전송", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } this.Cursor = Cursors.WaitCursor; DataTable sendData = new DataTable(); sendData.Columns.Add("BILL_NO", typeof(string)); DataRow sendRow; string bill_no, msg, hp; int cnt; Taxinvoice tax; TaxinvoiceDetail detail; Response response; DataView view = new DataView(m_Detail); progressBarControl_Send.Properties.DisplayFormat.FormatString = "{0:#,##0} / " + rows.Length.ToString("#,##0"); progressBarControl_Send.Position = 0; progressBarControl_Send.Properties.Minimum = 0; progressBarControl_Send.Properties.Maximum = rows.Length; progressBarControl_Send.Visible = true; Application.DoEvents(); DataRow row; int yCnt = 0, nCnt = 0; for (int i = 0; i < rows.Length; i++) { row = rows[i]; progressBarControl_Send.Position++; Application.DoEvents(); bill_no = UtilClass.toStr(row["BILL_NO"]); // 계산서 정보 tax = new Taxinvoice(); tax.writeDate = UtilClass.toStr(row["TAX_DT"]).Replace(".", ""); tax.chargeDirection = "정과금"; tax.issueType = "정발행"; tax.purposeType = UtilClass.toStr(row["TAX_REQ_TYPE_NM"]); tax.issueTiming = "직접발행"; tax.taxType = UtilClass.toInt(row["VAT_MY"]) != 0 ? "과세" : "영세"; tax.supplyCostTotal = UtilClass.toInt(row["CURR_MY"]).ToString(); tax.taxTotal = UtilClass.toInt(row["VAT_MY"]).ToString(); tax.totalAmount = (UtilClass.toInt(row["CURR_MY"]) + UtilClass.toInt(row["VAT_MY"])).ToString(); // 공급자 정보 tax.invoicerCorpNum = textEdit_BIZ_NO.Text.Trim().Replace("-", ""); //tax.invoicerCorpNum = "4178151496"; tax.invoicerCorpName = textEdit_COMP_NM.Text.Trim(); tax.invoicerMgtKey = bill_no; tax.invoicerCEOName = textEdit_OWNER_NM.Text.Trim(); tax.invoicerAddr = textEdit_ADDR1.Text.Trim(); tax.invoicerBizClass = textEdit_COND_NM.Text.Trim(); tax.invoicerBizType = textEdit_EVNT_NM.Text.Trim(); tax.invoicerContactName = textEdit_TB_USR_NM.Text.Trim().Equals("") ? textEdit_OWNER_NM.Text.Trim() : textEdit_TB_USR_NM.Text.Trim(); tax.invoicerEmail = textEdit_EMAIL.Text.Trim(); // 공급받는자 정보 tax.invoiceeType = "사업자"; tax.invoiceeCorpNum = UtilClass.toStr(row["BIZ_NO"]).Replace("-", ""); tax.invoiceeCorpName = UtilClass.toStr(row["CUST_NM"]); tax.invoiceeCEOName = UtilClass.toStr(row["OWNER_NM"]); tax.invoiceeAddr = UtilClass.toStr(row["ADDR1"]); tax.invoiceeBizClass = UtilClass.toStr(row["COND_NM"]); tax.invoiceeBizType = UtilClass.toStr(row["EVNT_NM"]); tax.invoiceeContactName1 = UtilClass.isNull(row["MGR_NM"]) ? UtilClass.toStr(row["OWNER_NM"]) : UtilClass.toStr(row["MGR_NM"]); tax.invoiceeEmail1 = UtilClass.isNull(row["MGR_EMAIL"]) ? UtilClass.toStr(row["EMAIL"]) : UtilClass.toStr(row["MGR_EMAIL"]); // 상세항목 tax.detailList = new List(); view.RowFilter = "BILL_NO = '" + bill_no + "'"; cnt = view.Count > 0 ? view.Count - 1 : 1; //for (int j = 0; j < view.Count; j++) //{ detail = new TaxinvoiceDetail(); detail.serialNum = 1; detail.purchaseDT = UtilClass.toStr(row["TAX_DT"]).Replace(".", ""); //UtilClass.toStr(view[j]["ORDER_DATE"]); if (cnt == 0) { detail.itemName = UtilClass.toStr(view[0]["ITEM_NM"]); } else { detail.itemName = UtilClass.toStr(view[0]["ITEM_NM"]) + " 외 " + cnt.ToString() + "건"; } detail.spec = ""; // UtilClass.toStr(view[j]["ORDER_NORM"]); detail.qty = ""; // UtilClass.toInt(view[0]["ORDER_QTY"]).ToString(); detail.unitCost = ""; detail.supplyCost = tax.supplyCostTotal; detail.tax = tax.taxTotal; detail.remark = ""; tax.detailList.Add(detail); //} try { response = m_Popbill.RegistIssue(textEdit_BIZ_NO.Text.Trim().Replace("-", ""), tax, false, "", false, "", ""); if (response.code != 1) { throw new Exception(response.code.ToString() + " " + response.message); } yCnt++; //DataView s01 = new DataView(ConstClass._DATA); //s01.RowFilter = "CATE_CD = 'S' and GRP_CD = 'S01' and NO_CD = '10'"; //bool directSendYN = false; //if (s01.Count > 0) //{ // directSendYN = UtilClass.isEqual(s01[0]["NO_CD_NM"], "Y"); //} //if (directSendYN) //{ // MgtKeyType KeyType = (MgtKeyType)Enum.Parse(typeof(MgtKeyType), "SELL"); // response = m_Popbill.SendToNTS(textEdit_BIZ_NO.Text.Trim(), KeyType, "", popbill_id); // if (response.code != 1) // { // throw new Exception(response.code.ToString() + " " + response.message); // } //} //else //{ // response = m_Popbill.RegistIssue(textEdit_BIZ_NO.Text.Trim(), tax, false, "", false, "", ""); // if (response.code != 1) // { // throw new Exception(response.code.ToString() + " " + response.message); // } //} } catch (Exception ee) { string smsg = "다음과 같은 사유로 " + UtilClass.toStr(row["BILL_NO"]) + " 의 전송을 실패하였습니다.\n\n" + ee.Message; smsg += "\n\n그래도 프로그램상 전송완료 등록을 하시겠습니까?"; if (XtraMessageBox.Show(smsg, "", MessageBoxButtons.YesNo) != DialogResult.Yes) { nCnt++; continue; } } sendRow = sendData.NewRow(); sendRow["BILL_NO"] = UtilClass.toStr(row["BILL_NO"]); sendData.Rows.Add(sendRow); msg = ConstClass._COMP_NM + "에서 주문하신 상품 " + cnt + " 건에 대한 세금계산서를 발행하였습니다." + "\r\n발행일자 : " + UtilClass.toStr(row["TAX_DT"]) + "\r\n발행번호 : " + bill_no + "\r\n공급가액 : " + UtilClass.toInt(row["CURR_MY"]).ToString("#,##0") + "\r\n세액 : " + UtilClass.toInt(row["VAT_MY"]).ToString("#,##0") + "\r\n합계 : " + (UtilClass.toInt(row["CURR_MY"]) + UtilClass.toInt(row["VAT_MY"])).ToString("#,##0"); hp = UtilClass.toStr(row["MGR_TEL_NO"]); if (UtilClass.isNull(hp) || !hp.StartsWith("01")) { hp = UtilClass.toStr(row["OWNER_TEL_NO"]); if (UtilClass.isNull(hp) || !hp.StartsWith("01")) { hp = ""; } } //if (ConstClass._DEBUG_MODE) //{ // if (i % 3 == 0) // { // hp = "010-5571-3734"; // } // else if (i % 3 == 1) // { // hp = "010-2568-9089"; // } // else // { // hp = "010-7179-2554"; // } //} if (!UtilClass.isNull(hp)) { //ClientClass.sendSMS(hp, msg); } } sendData.TableName = "ADATA"; ResultData data1 = new ResultData(); data1.TableData = sendData; ResultData[] dataList = new ResultData[] { data1 }; SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("SEND_YN", SqlDbType.NVarChar, "Y"), ClientClass.CreateSqlParameter("REG_ID", SqlDbType.NVarChar, ConstClass._USR_ID) }; ResultData resultData = ClientClass.SetTableData("SaveTaxBillByPopbill_Send", dataList, aParam); if (resultData.isError) { throw new Exception("팝빌 전송은 완료하였지만, 다음과 같은 사유로 시스템 적용에 실패하였습니다.\n개발사에 문의를 부탁드립니다.\n\n" + resultData.ResultValue); } aData.AcceptChanges(); double remainPoint = m_Popbill.GetBalance(textEdit_BIZ_NO.Text.Trim().Replace("-", "")); labelControl_Point.Text = remainPoint.ToString("#,##0") + " P"; this.Cursor = Cursors.Arrow; MessageBox.Show("전송 완료.\n\n성공 : " + yCnt.ToString("#,##0") + " 건\n실패 : " + nCnt.ToString("#,##0") + " 건"); progressBarControl_Send.Visible = false; xtraTabControl_Send.SelectedTabPageIndex = 1; searchSendAll(); } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); progressBarControl_Send.Visible = false; } }; simpleButton_SendedSelectAll.Click += (sender, e) => { try { if (gridControl_Sended.DataSource == null) { return; } DataTable aData = gridControl_Sended.DataSource as DataTable; gridView_Sended.BeginDataUpdate(); foreach (DataRow row in aData.Rows) { row["SEL_FIELD"] = "Y"; } } finally { gridView_Sended.EndDataUpdate(); } }; simpleButton_SendedSelectNone.Click += (sender, e) => { try { if (gridControl_Sended.DataSource == null) { return; } DataTable aData = gridControl_Sended.DataSource as DataTable; gridView_Sended.BeginDataUpdate(); foreach (DataRow row in aData.Rows) { row["SEL_FIELD"] = "N"; } } finally { gridView_Sended.EndDataUpdate(); } }; simpleButton_CancelSend.Click += (sender, e) => { try { if (gridControl_Sended.DataSource == null) { return; } DataTable aData = gridControl_Sended.DataSource as DataTable; DataRow[] rows = aData.Select("SEL_FIELD = 'Y'"); if (rows == null || rows.Length < 1) { throw new Exception("전송취소할 자료를 선택하십시오."); } DataView s08 = new DataView(ConstClass._DATA); s08.RowFilter = "CATE_CD = 'S' and GRP_CD = 'S01' and NO_CD = '08'"; if (s08.Count < 1) { throw new Exception("팝빌 로그인 아이디가 존재하지 않습니다."); } string popbill_id = UtilClass.toStr(s08[0]["NO_CD_NM"]); if (UtilClass.isNull(popbill_id)) { throw new Exception("팝빌 로그인 아이디를 등록하십시오."); } if (MessageBox.Show("선택한 자료들을 팝빌로 전송하시겠습니까?", "전송", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } this.Cursor = Cursors.WaitCursor; DataTable sendData = new DataTable(); sendData.Columns.Add("BILL_NO", typeof(string)); DataRow sendRow; string bill_no; int yCnt = 0, nCnt = 0; Response response; DataView view = new DataView(m_Detail); progressBarControl_Sended.Properties.DisplayFormat.FormatString = "{0:#,##0} / " + rows.Length.ToString("#,##0"); progressBarControl_Sended.Position = 0; progressBarControl_Sended.Properties.Minimum = 0; progressBarControl_Sended.Properties.Maximum = rows.Length; progressBarControl_Sended.Visible = true; Application.DoEvents(); DataRow row; MgtKeyType keyType = (MgtKeyType)Enum.Parse(typeof(MgtKeyType), "SELL"); for (int i = 0; i < rows.Length; i++) { row = rows[i]; progressBarControl_Sended.Position++; Application.DoEvents(); bill_no = UtilClass.toStr(row["BILL_NO"]); try { response = m_Popbill.CancelIssue(textEdit_BIZ_NO.Text.Trim().Replace("-", ""), keyType, bill_no, "", popbill_id); if (response.code != 1) { throw new Exception(response.code.ToString() + " " + response.message); } yCnt++; } catch (Exception ee) { nCnt++; MessageBox.Show("다음과 같은 사유로 " + bill_no + " 의 전송취소를 실패하였습니다.\n\n" + ee.Message); continue; } sendRow = sendData.NewRow(); sendRow["BILL_NO"] = bill_no; sendData.Rows.Add(sendRow); } sendData.TableName = "ADATA"; ResultData data1 = new ResultData(); data1.TableData = sendData; ResultData[] dataList = new ResultData[] { data1 }; SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("SEND_YN", SqlDbType.NVarChar, "N"), ClientClass.CreateSqlParameter("REG_ID", SqlDbType.NVarChar, ConstClass._USR_ID) }; ResultData resultData = ClientClass.SetTableData("SaveTaxBillByPopbill_Send", dataList, aParam); if (resultData.isError) { throw new Exception("팝빌 전송은 완료하였지만, 다음과 같은 사유로 시스템 적용에 실패하였습니다.\n개발사에 문의를 부탁드립니다.\n\n" + resultData.ResultValue); } aData.AcceptChanges(); double remainPoint = m_Popbill.GetBalance(textEdit_BIZ_NO.Text.Trim().Replace("-", "")); labelControl_Point.Text = remainPoint.ToString("#,##0") + " P"; this.Cursor = Cursors.Arrow; MessageBox.Show("전송취소 완료.\n\n성공 : " + yCnt.ToString("#,##0") + " 건\n실패 : " + nCnt.ToString("#,##0") + " 건"); progressBarControl_Sended.Visible = false; xtraTabControl_Send.SelectedTabPageIndex = 0; searchNotSendList(); } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); progressBarControl_Sended.Visible = false; } }; this.Shown += (sender, e) => { try { DataView s06 = new DataView(ConstClass._DATA); s06.RowFilter = "CATE_CD = 'S' and GRP_CD = 'S01' and NO_CD = '06'"; DataView s07 = new DataView(ConstClass._DATA); s07.RowFilter = "CATE_CD = 'S' and GRP_CD = 'S01' and NO_CD = '07'"; DataView s11 = new DataView(ConstClass._DATA); s11.RowFilter = "CATE_CD = 'S' and GRP_CD = 'S01' and NO_CD = '11'"; if (s06.Count < 1 || s07.Count < 1) { throw new Exception("세금계산서 전송을 위한 환경정보가 없습니다."); } string linkID = UtilClass.toStr(s06[0]["NO_CD_NM"]); string key = UtilClass.toStr(s07[0]["NO_CD_NM"]); m_Popbill = new TaxinvoiceService(linkID, key); m_Popbill.IsTest = s11.Count > 0 && UtilClass.isEqual(s11[0]["NO_CD_NM"], "Y"); SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD) }; ResultData resultData = ClientClass.GetData("GetTaxBillByPopbill_Init", aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } if (resultData.TableData.Rows.Count > 0) { textEdit_COMP_NM.Text = UtilClass.toStr(resultData.TableData.Rows[0]["COMP_NM"]); textEdit_BIZ_NO.Text = UtilClass.toStr(resultData.TableData.Rows[0]["BIZ_NO"]); textEdit_OWNER_NM.Text = UtilClass.toStr(resultData.TableData.Rows[0]["OWNER_NM"]); textEdit_COND_NM.Text = UtilClass.toStr(resultData.TableData.Rows[0]["COND_NM"]); textEdit_EVNT_NM.Text = UtilClass.toStr(resultData.TableData.Rows[0]["EVNT_NM"]); textEdit_TB_USR_NM.Text = UtilClass.toStr(resultData.TableData.Rows[0]["TB_USR_NM"]); textEdit_TEL_NO.Text = UtilClass.toStr(resultData.TableData.Rows[0]["TEL_NO"]); textEdit_FAX_NO.Text = UtilClass.toStr(resultData.TableData.Rows[0]["FAX_NO"]); textEdit_EMAIL.Text = UtilClass.toStr(resultData.TableData.Rows[0]["EMAIL"]); textEdit_ADDR1.Text = UtilClass.toStr(resultData.TableData.Rows[0]["ADDR1"]); textEdit_TB_USR_ID.Text = UtilClass.toStr(resultData.TableData.Rows[0]["TB_USR_ID"]); textEdit_TB_USR_PWD.Text = UtilClass.toStr(resultData.TableData.Rows[0]["TB_USR_PWD"]); textEdit_TB_BANK_NM.Text = UtilClass.toStr(resultData.TableData.Rows[0]["TB_BANK_NM"]); textEdit_TB_ACCT_NO.Text = UtilClass.toStr(resultData.TableData.Rows[0]["TB_ACCT_NO"]); textEdit_TB_ACCT_NM.Text = UtilClass.toStr(resultData.TableData.Rows[0]["TB_ACCT_NM"]); } double remainPoint = m_Popbill.GetBalance(textEdit_BIZ_NO.Text.Trim().Replace("-", "")); labelControl_Point.Text = remainPoint.ToString("#,##0") + " P"; } catch (Exception ex) { MessageBox.Show(ex.Message); this.Close(); } }; } private void selectCustProc() { SelectCustomerForm form = new SelectCustomerForm(buttonEdit_CUST_NM.Text, DateTime.Now); buttonEdit_CUST_NM.Text = ""; labelControl_CUST_CD.Text = ""; if (form.ShowDialog() != DialogResult.Yes) { return; } buttonEdit_CUST_NM.Text = form.m_CUST_NM; labelControl_CUST_CD.Text = form.m_CUST_CD; if (xtraTabControl_Tab.SelectedTabPageIndex == 0) { lookUpEdit_SIGN_GUBUN.Focus(); } else { searchProc(); } } public override void searchProc() { switch (xtraTabControl_Tab.SelectedTabPageIndex) { case 0: searchTaxBill(); break; case 1: searchCust(); break; case 2: searchSend(); break; } } private void searchTaxBill() { if (xtraTabControl_TaxBill.SelectedTabPageIndex == 0) { searchTaxBillBatch(); } else { searchTaxBillEtc(); } } private void searchTaxBillBatch() { try { this.Cursor = Cursors.WaitCursor; if (checkEdit_NotMake.Checked) { gridControl_TaxBill_NotMake.DataSource = null; } else { gridControl_TaxBill_Maked.DataSource = null; } SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("SDATE", SqlDbType.NVarChar, dateEdit_SDATE.DateTime.ToString("yyyy.MM.dd")), ClientClass.CreateSqlParameter("FDATE", SqlDbType.NVarChar, dateEdit_FDATE.DateTime.ToString("yyyy.MM.dd")), ClientClass.CreateSqlParameter("CUST_CD", SqlDbType.NVarChar, labelControl_CUST_CD.Text), ClientClass.CreateSqlParameter("SIGN_GUBUN", SqlDbType.NVarChar, lookUpEdit_SIGN_GUBUN.EditValue), ClientClass.CreateSqlParameter("INCLUDE_CARD", SqlDbType.NVarChar, checkEdit_Card.Checked ? "Y" : "N"), ClientClass.CreateSqlParameter("MAKE_YN", SqlDbType.NVarChar, checkEdit_Maked.Checked ? "Y" : "N") }; ResultData resultData = ClientClass.GetData("GetTaxBillByPopbill_TaxData", aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } if (checkEdit_NotMake.Checked) { gridControl_TaxBill_NotMake.DataSource = resultData.DataList.Tables[0]; m_Order = resultData.DataList.Tables[1]; gridControl_TaxBill_NotMake.Focus(); } else { gridControl_TaxBill_Maked.DataSource = resultData.TableData; gridControl_TaxBill_Maked.Focus(); } this.Cursor = Cursors.Arrow; } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } } private void searchTaxBillEtc() { try { this.Cursor = Cursors.WaitCursor; if (UtilClass.isNull(labelControl_CUST_CD.Text)) { buttonEdit_CUST_NM.Focus(); throw new Exception("거래처를 선택하십시오."); } if (checkEdit_NotMake.Checked) { gridControl_TaxBill_NotMake.DataSource = null; } else { gridControl_TaxBill_Maked.DataSource = null; } SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("SDATE", SqlDbType.NVarChar, dateEdit_SDATE.DateTime.ToString("yyyy.MM.dd")), ClientClass.CreateSqlParameter("FDATE", SqlDbType.NVarChar, dateEdit_FDATE.DateTime.ToString("yyyy.MM.dd")), ClientClass.CreateSqlParameter("CUST_CD", SqlDbType.NVarChar, labelControl_CUST_CD.Text), ClientClass.CreateSqlParameter("SIGN_GUBUN", SqlDbType.NVarChar, lookUpEdit_SIGN_GUBUN.EditValue), ClientClass.CreateSqlParameter("INCLUDE_CARD", SqlDbType.NVarChar, checkEdit_Card.Checked ? "Y" : "N"), ClientClass.CreateSqlParameter("MAKE_YN", SqlDbType.NVarChar, checkEdit_Maked.Checked ? "Y" : "N") }; ResultData resultData = ClientClass.GetData("GetTaxBillByPopbill_EtcTaxData", aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } gridControl_Etc.DataSource = resultData.TableData; gridControl_Etc.Focus(); this.Cursor = Cursors.Arrow; } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } } private void searchCust() { try { this.Cursor = Cursors.WaitCursor; gridControl_Cust.DataSource = null; SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("CUST_CD", SqlDbType.NVarChar, labelControl_CUST_CD.Text), ClientClass.CreateSqlParameter("NOT_EMAIL", SqlDbType.NVarChar, checkEdit_Maked.Checked ? "Y" : "N") }; ResultData resultData = ClientClass.GetData("GetTaxBillByPopbill_Cust", aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } gridControl_Cust.DataSource = resultData.TableData; this.Cursor = Cursors.Arrow; gridControl_Cust.Focus(); } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } } private void searchSend() { if (xtraTabControl_Send.SelectedTabPageIndex == 0) { searchNotSendList(); } else if (xtraTabControl_Send.SelectedTabPageIndex == 1) { searchSendList(); } else { searchPopBill(); } } private void searchNotSendList() { try { this.Cursor = Cursors.WaitCursor; gridControl_NotSendList.DataSource = null; SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("SDATE", SqlDbType.NVarChar, dateEdit_SDATE.DateTime.ToString("yyyy.MM.dd")), ClientClass.CreateSqlParameter("FDATE", SqlDbType.NVarChar, dateEdit_FDATE.DateTime.ToString("yyyy.MM.dd")), ClientClass.CreateSqlParameter("CUST_CD", SqlDbType.NVarChar, labelControl_CUST_CD.Text) }; ResultData resultData = ClientClass.GetData("GetTaxBillByPopbill_NotSendList", aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } gridControl_NotSendList.DataSource = resultData.DataList.Tables[0]; m_Detail = resultData.DataList.Tables[1]; this.Cursor = Cursors.Arrow; gridControl_NotSendList.Focus(); } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } } private void searchSendList() { try { this.Cursor = Cursors.WaitCursor; gridControl_Sended.DataSource = null; SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("SDATE", SqlDbType.NVarChar, dateEdit_SDATE.DateTime.ToString("yyyy.MM.dd")), ClientClass.CreateSqlParameter("FDATE", SqlDbType.NVarChar, dateEdit_FDATE.DateTime.ToString("yyyy.MM.dd")), ClientClass.CreateSqlParameter("CUST_CD", SqlDbType.NVarChar, labelControl_CUST_CD.Text) }; ResultData resultData = ClientClass.GetData("GetTaxBillByPopbill_SendList", aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } gridControl_Sended.DataSource = resultData.TableData; this.Cursor = Cursors.Arrow; gridControl_Sended.Focus(); } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } } private void searchSendAll() { try { this.Cursor = Cursors.WaitCursor; gridControl_NotSendList.DataSource = null; gridControl_Sended.DataSource = null; SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("SDATE", SqlDbType.NVarChar, dateEdit_SDATE.DateTime.ToString("yyyy.MM.dd")), ClientClass.CreateSqlParameter("FDATE", SqlDbType.NVarChar, dateEdit_FDATE.DateTime.ToString("yyyy.MM.dd")), ClientClass.CreateSqlParameter("CUST_CD", SqlDbType.NVarChar, labelControl_CUST_CD.Text) }; ResultData resultData = ClientClass.GetData("GetTaxBillByPopbill_Send", aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } gridControl_NotSendList.DataSource = resultData.DataList.Tables[0]; m_Detail = resultData.DataList.Tables[1]; gridControl_Sended.DataSource = resultData.DataList.Tables[2]; this.Cursor = Cursors.Arrow; gridControl_Sended.Focus(); } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } } private void searchPopBill() { try { this.Cursor = Cursors.WaitCursor; gridControl_PopBill.DataSource = null; DataView s08 = new DataView(ConstClass._DATA); s08.RowFilter = "CATE_CD = 'S' and GRP_CD = 'S01' and NO_CD = '08'"; if (s08.Count < 1) { throw new Exception("팝빌 로그인 아이디가 존재하지 않습니다."); } string popbill_id = UtilClass.toStr(s08[0]["NO_CD_NM"]); if (UtilClass.isNull(popbill_id)) { throw new Exception("팝빌 로그인 아이디를 등록하십시오."); } // 문서상태값 조회옵션 string[] stat = new string[5]; stat[0] = "100"; stat[1] = "3**"; stat[2] = "4**"; stat[3] = "5**"; stat[4] = "6**"; // 문서유형 배열, N-일반세금계산서, M-수정세금계산서 string[] docType = new string[2]; docType[0] = "N"; docType[1] = "M"; // 과세형태 배열, T-과세, N-면세, Z-영세 string[] taxType = new string[3]; taxType[0] = "T"; taxType[1] = "N"; taxType[2] = "Z"; // 발행유형 배열, N-정발행 / R-역발행 / T-위수탁 string[] issueType = new string[3]; issueType[0] = "N"; issueType[1] = "R"; issueType[2] = "T"; // 지연발행 여부, 미기재시 전체, true-지연발행분 조회, false-정상발행분 조회 bool? lateOnly = null; TISearchResult searchResult = m_Popbill.Search( textEdit_BIZ_NO.Text.Trim().Replace("-", ""), MgtKeyType.SELL, "W", // R: 등록일자, I: 발행일자, W: 작성일자 dateEdit_SDATE.DateTime.ToString("yyyyMMdd"), dateEdit_FDATE.DateTime.ToString("yyyyMMdd"), stat, docType, taxType, issueType, lateOnly, "", // 종사업장 유무, 공백-전체조회, 0-종사업장 없는 문서 조회, 1-종사업장번호 조건에 따라 조회 "S", // 종사업장번호 유형, S-공급자, B-공급받는자, T-수탁자 "", // 종사업장번호, 콤마(",")로 구분하여 구성 ex) "0001,1234" "", // 거래처 조회, 거래처 사업자등록번호 또는 상호명 기재, 미기재시 전체조회 "A", // 정렬방향, A-오름차순, D-내림차순 1, // 페이지번호 1000, // 페이지당 검색결과 갯수 "", // 일반/연동문서 구분, 공백-전체조회, 0-일반문서 조회, 1-연동문서조회 popbill_id ); DataTable aData = new DataTable(); aData.Columns.Add("WRITE_DATE", typeof(string)); aData.Columns.Add("REG_DT", typeof(string)); aData.Columns.Add("TAX_TYPE", typeof(string)); aData.Columns.Add("TAX_REQ_TYPE", typeof(string)); aData.Columns.Add("CUST_NM", typeof(string)); aData.Columns.Add("BIZ_NO", typeof(string)); aData.Columns.Add("CURR_MY", typeof(int)); aData.Columns.Add("VAT_MY", typeof(decimal)); aData.Columns.Add("TOT_MY", typeof(decimal)); DataRow row; foreach (TaxinvoiceInfo info in searchResult.list) { row = aData.NewRow(); row["WRITE_DATE"] = info.writeDate.Substring(0, 4) + "-" + info.writeDate.Substring(4, 2) + "-" + info.writeDate.Substring(6, 2); row["REG_DT"] = info.regDT.Substring(0, 4) + "-" + info.regDT.Substring(4, 2) + "-" + info.regDT.Substring(6, 2) + " " + info.regDT.Substring(8, 2) + ":" + info.regDT.Substring(10, 2) + ":" + info.regDT.Substring(12, 2); row["TAX_TYPE"] = info.taxType; row["TAX_REQ_TYPE"] = info.purposeType; row["CUST_NM"] = info.invoiceeCorpName; row["BIZ_NO"] = info.invoiceeCorpNum.Substring(0, 3) + "-" + info.invoiceeCorpNum.Substring(3, 2) + "-" + info.invoiceeCorpNum.Substring(5, 5); row["CURR_MY"] = UtilClass.toDecimal(info.supplyCostTotal); row["VAT_MY"] = UtilClass.toDecimal(info.taxTotal); row["TOT_MY"] = UtilClass.toDecimal(info.supplyCostTotal) + UtilClass.toDecimal(info.taxTotal); aData.Rows.Add(row); } gridControl_PopBill.DataSource = aData; this.Cursor = Cursors.Arrow; } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } } public override void excelProc() { if (xtraTabControl_Tab.SelectedTabPageIndex == 0) { if (xtraTabControl_TaxBill.SelectedTabPageIndex == 0) { if (checkEdit_NotMake.Checked) { this.ExportExcelGrid(gridControl_TaxBill_NotMake); } else { this.ExportExcelGrid(gridControl_TaxBill_Maked); } } else { this.ExportExcelGrid(gridControl_Etc); } } else if (xtraTabControl_Tab.SelectedTabPageIndex == 1) { this.ExportExcelGrid(gridControl_Cust); } else if (xtraTabControl_Tab.SelectedTabPageIndex == 2) { if (xtraTabControl_Send.SelectedTabPageIndex == 0) { this.ExportExcelGrid(gridControl_NotSendList); } else if (xtraTabControl_Send.SelectedTabPageIndex == 1) { this.ExportExcelGrid(gridControl_Sended); } else { this.ExportExcelGrid(gridControl_PopBill); } } } private void makeProcBatch() { try { if (gridControl_TaxBill_NotMake.DataSource == null) { return; } if (MessageBox.Show("세금계산서 자료를 발행하시겠습니까?", "발행", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } this.Cursor = Cursors.WaitCursor; gridView_TaxBill_NotMake.PostEditor(); gridView_TaxBill_NotMake.UpdateCurrentRow(); Application.DoEvents(); DataTable srcData = gridControl_TaxBill_NotMake.DataSource as DataTable; DataRow[] rows = srcData.Select("SEL_FIELD = 'Y'"); if (rows == null || rows.Length < 1) { throw new Exception("발행할 자료를 선택하십시오."); } DataRow row; DataTable aData = new DataTable(); aData.Columns.Add("COMP_CD", typeof(string)); aData.Columns.Add("CUST_CD", typeof(string)); DataTable bData = new DataTable(); bData.Columns.Add("COMP_CD", typeof(string)); bData.Columns.Add("ORDER_NO", typeof(string)); bData.Columns.Add("CUST_CD", typeof(string)); DataRow[] rowList; foreach (DataRow aRow in rows) { if (UtilClass.isNull(aRow["BIZ_NO"])) { throw new Exception(UtilClass.toStr(aRow["CUST_NM"]) + " : 사업자 번호가 누락되어 있습니다."); } else if (UtilClass.isNull(aRow["COND_NM"])) { throw new Exception(UtilClass.toStr(aRow["COND_NM"]) + " : 사업자등록증의 업태가 누락되어 있습니다."); } else if (UtilClass.isNull(aRow["EVNT_NM"])) { throw new Exception(UtilClass.toStr(aRow["EVNT_NM"]) + " : 사업자등록증의 종목이 누락되어 있습니다."); } row = aData.NewRow(); row["COMP_CD"] = ConstClass._COMP_CD; row["CUST_CD"] = aRow["CUST_CD"]; aData.Rows.Add(row); rowList = m_Order.Select("COMP_CD = '" + ConstClass._COMP_CD + "' and CUST_CD = '" + UtilClass.toStr(aRow["CUST_CD"]) + "'"); if (rowList == null) { continue; } foreach (DataRow bRow in rowList) { row = bData.NewRow(); row["COMP_CD"] = ConstClass._COMP_CD; row["ORDER_NO"] = bRow["ORDER_NO"]; row["CUST_CD"] = bRow["CUST_CD"]; bData.Rows.Add(row); } } aData.TableName = "ADATA"; bData.TableName = "BDATA"; ResultData data1 = new ResultData(); data1.TableData = aData; ResultData data2 = new ResultData(); data2.TableData = bData; ResultData[] dataList = new ResultData[] { data1, data2 }; SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("TAX_DT", SqlDbType.NVarChar, dateEdit_Date.DateTime.ToString("yyyy.MM.dd")), ClientClass.CreateSqlParameter("TAX_REQ_TYPE", SqlDbType.NVarChar, lookUpEdit_TAX_REQ_TYPE.EditValue), ClientClass.CreateSqlParameter("TAX_TYPE", SqlDbType.NVarChar, lookUpEdit_TAX_TYPE.EditValue), ClientClass.CreateSqlParameter("REG_ID", SqlDbType.NVarChar, ConstClass._USR_ID) }; ResultData resultData = ClientClass.SetTableData("CreateTaxBillNumberBatch", dataList, aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } this.Cursor = Cursors.Arrow; MessageBox.Show("발행완료."); checkEdit_Maked.Checked = true; searchTaxBill(); } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } } private void makeProcEtc() { try { if (gridControl_Etc.DataSource == null) { return; } if (MessageBox.Show("업체별 세금계산서 자료를 발행하시겠습니까?", "발행", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } this.Cursor = Cursors.WaitCursor; gridView_Etc.PostEditor(); gridView_Etc.UpdateCurrentRow(); Application.DoEvents(); DataTable srcData = gridControl_Etc.DataSource as DataTable; DataRow[] rows = srcData.Select("SEL_FIELD = 'Y'"); if (rows == null || rows.Length < 1) { throw new Exception("발행할 자료를 선택하십시오."); } DataRow row; DataTable aData = new DataTable(); aData.Columns.Add("ORDER_NO", typeof(string)); aData.Columns.Add("LN_SEQ", typeof(int)); foreach (DataRow aRow in rows) { row = aData.NewRow(); row["ORDER_NO"] = aRow["ORDER_NO"]; row["LN_SEQ"] = aRow["LN_SEQ"]; aData.Rows.Add(row); } aData.TableName = "ADATA"; ResultData data1 = new ResultData(); data1.TableData = aData; ResultData[] dataList = new ResultData[] { data1 }; SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("TAX_DT", SqlDbType.NVarChar, dateEdit_Date.DateTime.ToString("yyyy.MM.dd")), ClientClass.CreateSqlParameter("TAX_REQ_TYPE", SqlDbType.NVarChar, lookUpEdit_TAX_REQ_TYPE.EditValue), ClientClass.CreateSqlParameter("TAX_TYPE", SqlDbType.NVarChar, lookUpEdit_TAX_TYPE.EditValue), ClientClass.CreateSqlParameter("REG_ID", SqlDbType.NVarChar, ConstClass._USR_ID) }; ResultData resultData = ClientClass.SetTableData("CreateTaxBillNumberEtc", dataList, aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } this.Cursor = Cursors.Arrow; MessageBox.Show("발행완료."); checkEdit_Maked.Checked = true; searchTaxBill(); } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } } private void unMakeProcBatch() { try { if (gridControl_TaxBill_Maked.DataSource == null) { return; } if (MessageBox.Show("발행된 세금계산서 자료를 취소하시겠습니까?", "발행취소", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } this.Cursor = Cursors.WaitCursor; gridView_TaxBill_Maked.PostEditor(); gridView_TaxBill_Maked.UpdateCurrentRow(); Application.DoEvents(); DataTable srcData = gridControl_TaxBill_Maked.DataSource as DataTable; DataRow[] rows = srcData.Select("SEL_FIELD = 'Y'"); if (rows == null || rows.Length < 1) { throw new Exception("취소할 자료를 선택하십시오."); } DataRow row; DataTable aData = new DataTable(); aData.Columns.Add("CUST_CD", typeof(string)); aData.Columns.Add("BILL_NO", typeof(string)); foreach (DataRow aRow in rows) { row = aData.NewRow(); row["CUST_CD"] = aRow["CUST_CD"]; row["BILL_NO"] = aRow["BILL_NO"]; aData.Rows.Add(row); } aData.TableName = "ADATA"; ResultData data1 = new ResultData(); data1.TableData = aData; ResultData[] dataList = new ResultData[] { data1 }; SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("REG_ID", SqlDbType.NVarChar, ConstClass._USR_ID) }; ResultData resultData = ClientClass.SetTableData("CancelCreateTaxBillNumberBatch", dataList, aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } this.Cursor = Cursors.Arrow; MessageBox.Show("발행취소 완료."); searchTaxBill(); } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } } private void unMakeProcEtc() { try { if (gridControl_Etc.DataSource == null) { return; } if (MessageBox.Show("발행된 업체별/건발행 세금계산서 자료를 취소하시겠습니까?", "발행취소", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } this.Cursor = Cursors.WaitCursor; gridView_Etc.PostEditor(); gridView_Etc.UpdateCurrentRow(); Application.DoEvents(); DataTable srcData = gridControl_Etc.DataSource as DataTable; DataRow[] rows = srcData.Select("SEL_FIELD = 'Y'"); if (rows == null || rows.Length < 1) { throw new Exception("취소할 자료를 선택하십시오."); } DataRow row; DataTable aData = new DataTable(); aData.Columns.Add("ORDER_NO", typeof(string)); aData.Columns.Add("LN_SEQ", typeof(int)); aData.Columns.Add("BILL_NO", typeof(string)); foreach (DataRow aRow in rows) { row = aData.NewRow(); row["ORDER_NO"] = aRow["ORDER_NO"]; row["LN_SEQ"] = aRow["LN_SEQ"]; row["BILL_NO"] = aRow["BILL_NO"]; aData.Rows.Add(row); } aData.TableName = "ADATA"; ResultData data1 = new ResultData(); data1.TableData = aData; ResultData[] dataList = new ResultData[] { data1 }; SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("REG_ID", SqlDbType.NVarChar, ConstClass._USR_ID) }; ResultData resultData = ClientClass.SetTableData("CancelCreateTaxBillNumberEtc", dataList, aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } this.Cursor = Cursors.Arrow; MessageBox.Show("발행취소 완료."); searchTaxBill(); } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } } } }