using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace FPJ0000 { public partial class fProjectPartToPurchase : Form { BindingSource bsModel; int ProjectIndex = -1; public fProjectPartToPurchase(int pidx) { InitializeComponent(); this.ProjectIndex = pidx; this.KeyPreview = true; this.StartPosition = FormStartPosition.CenterScreen; this.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Escape) this.Close(); }; } private void __Load(object sender, EventArgs e) { //프로젝트정보를 찾는다. var dtPrj = taProject.GetbyIDX(this.ProjectIndex); var drPrj = dtPrj.Rows[0] as dsPRJ.ProjectsRow; this.tbProjectIndex.Text = drPrj.idx.ToString(); this.tbProject.Text = drPrj.name; this.tbCr.Text = drPrj.orderno; this.tbOrderNo.Text = drPrj.orderno; //파트리스트 합계금액 var dtPart = taPart.GetData(this.ProjectIndex); var sumAmt = dtPart.Sum(t => t.amt); this.tbSum.Text = sumAmt.ToString("N0"); //상태 var stateList = FCOMMON.DBM.getCodeTable("04"); this.cmbState.DisplayMember = "Value"; this.cmbState.ValueMember = "Value"; this.cmbState.DataSource = stateList; //장비제조 var dt_dept = FCOMMON.DBM.getCodeTable("06"); BindingSource bsManu = new BindingSource(dt_dept, ""); this.cbEQManu.DisplayMember = "Value"; this.cbEQManu.ValueMember = "Value"; this.cbEQManu.DataSource = bsManu; //장비모델 var dt_asset = FCOMMON.DBM.getCodeTable("07"); bsModel = new BindingSource(dt_asset, ""); bsModel.Filter = "svalue='그런거없다'"; this.cbEQModel.DisplayMember = "Value"; this.cbEQModel.ValueMember = "Value"; this.cbEQModel.DataSource = bsModel; //제조공정 var dt_manuproc = FCOMMON.DBM.getCodeTable("08"); this.cbManuProc.DisplayMember = "Value"; this.cbManuProc.ValueMember = "Value"; this.cbManuProc.DataSource = dt_manuproc; //장비기술공정 var dt_eetproc = FCOMMON.DBM.getCodeTable("09"); this.cbProcess.DisplayMember = "Value"; this.cbProcess.ValueMember = "Value"; this.cbProcess.DataSource = dt_eetproc; ////processlist //var procList = FCOMMON.DBM.getGroupTable("process", "Purchase", "process <> ''"); //this.cbProcess.DisplayMember = "Value"; //this.cbProcess.ValueMember = "Key"; //this.cbProcess.DataSource = new BindingSource(procList, ""); //담당자목록 var userList = FCOMMON.DBM.getGroupList("name", "Users", "[level] > 0 and [level] < 10"); foreach (var user in userList) { this.cmbRequest.Items.Add(user); } dtPdate.Value = DateTime.Now; cmbRequest.Text = FCOMMON.info.Login.nameK; cmbState.Text = "PO"; this.Show(); Application.DoEvents(); } private bool saveData() { this.Validate(); if (cbProcess.Text.Trim() == "") { FCOMMON.Util.MsgE("프로세스를 선택하세요."); cbProcess.Focus(); return false; } if (tbProject.Text == "") { FCOMMON.Util.MsgE("프로젝트 정보를 입력하세요."); tbProject.Focus(); return false; } var overtime = DateTime.Now - DateTime.Parse("2019-01-09 00:00:00"); if (overtime.TotalSeconds > 0) { if (this.cbProcess.SelectedIndex == -1) { if (FCOMMON.info.Login.level >= 5) { var dlg = FCOMMON.Util.MsgQ("[공정]을 입력하지 않고 진행 하시겠습니까?\n\n" + "선택 대상이 없는 경우 문의 바랍니다.\n\n" + "BongSeok Jung(T.7191)\n" + "BongSeok.Jung@amkor.co.kr"); if (dlg != System.Windows.Forms.DialogResult.Yes) { cbProcess.Focus(); return false; } } else { FCOMMON.Util.MsgE("[공정]을 선택하세요\n\n" + "선택 대상이 없는 경우 문의 바랍니다.\n\n" + "BongSeok Jung(T.7191)\n" + "BongSeok.Jung@amkor.co.kr"); cbProcess.Focus(); return false; } } if (cbManuProc.SelectedIndex == -1) { if (FCOMMON.info.Login.level >= 5) { var dlg = FCOMMON.Util.MsgQ("제조공정을 입력하지 않고 진행 하시겠습니까?\n\n" + "선택 대상이 없는 경우 문의 바랍니다.\n\n" + "BongSeok Jung(T.7191)\n" + "BongSeok.Jung@amkor.co.kr"); if (dlg != System.Windows.Forms.DialogResult.Yes) { cbManuProc.Focus(); return false; } } else { FCOMMON.Util.MsgE("제조공정을 선택하세요\n\n" + "선택 대상이 없는 경우 문의 바랍니다.\n\n" + "BongSeok Jung(T.7191)\n" + "BongSeok.Jung@amkor.co.kr"); cbManuProc.Focus(); return false; } } if (this.cbEQManu.SelectedIndex == -1) { if (FCOMMON.info.Login.level >= 5) { var dlg = FCOMMON.Util.MsgQ("장비제조사를 입력하지 않고 진행 하시겠습니까?\n\n" + "선택 대상이 없는 경우 문의 바랍니다.\n\n" + "BongSeok Jung(T.7191)\n" + "BongSeok.Jung@amkor.co.kr"); if (dlg != System.Windows.Forms.DialogResult.Yes) { cbEQManu.Focus(); return false; } } else { FCOMMON.Util.MsgE("장비 제조사를 선택하세요.\n\n" + "선택 대상이 없는 경우 문의 바랍니다.\n\n" + "BongSeok Jung(T.7191)\n" + "BongSeok.Jung@amkor.co.kr"); cbEQManu.Focus(); return false; } } } //part 목록을 조회해서 NR에 등록해줘야 함 var dlg2 = FCOMMON.Util.MsgQ("해당 파트리스트룰 NR구매 목록에 등록하시겠습니까?"); if (dlg2 != System.Windows.Forms.DialogResult.Yes) return false; //기존에 등록된 자료가 있는지 체크한다. var SQLExist = " select count(*) from Purchase" + " where import = 1" + " and pdate = '{0}'" + " and projectidx = {1}"; SQLExist = string.Format(SQLExist, dtPdate.Value.ToShortDateString(), this.ProjectIndex.ToString()); var ExistCnt = FCOMMON.DBM.ExecuteScalarI(SQLExist); if (ExistCnt > 0) { var dlgq = FCOMMON.Util.MsgQ(string.Format("생성된 자료가 {0}건 존재 합니다.\n\n" + "기존 자료를 삭제 하시겠습니까?",ExistCnt)); if (dlgq == System.Windows.Forms.DialogResult.Yes) { SQLExist = " delete from Purchase" + " where import = 1" + " and pdate = '{0}'" + " and projectidx = {1}"; SQLExist = string.Format(SQLExist, dtPdate.Value.ToShortDateString(), this.ProjectIndex.ToString()); var delCnt = FCOMMON.DBM.ExecuteNonQuery(SQLExist); Console.WriteLine(delCnt.ToString() + "건의 기존 입력된 자료가 삭제됨"); } } //insert query var SQL = " insert into purchase(pdate,state,process,request,sid,pumname,pumidx,pumscale,pumunit," + " pumqty,pumprice,pumamt,supply,supplyidx,project,projectidx,bigo,import,wuid,wdate,orderno)" + " select '{0}' as pdate,'{1}','{2}' as process ,'{3}' as request,ItemSid," + " ItemName,Item,ItemModel,ItemUnit,qty,price,amt,ItemSupply,ItemSupplyidx,'{4}',Project," + " memo,1 as import,'{5}' as wuid, getdate() as wdate,'{6}' as orderno" + " from ProjectsPart" + " where Project = {7}"; SQL = string.Format(SQL, dtPdate.Value.ToShortDateString(), cmbState.Text.Trim(), cbProcess.Text.Trim(), cmbRequest.Text.Trim(), tbProject.Text.Trim(), FCOMMON.info.Login.no, tbOrderNo.Text.Trim(), this.ProjectIndex.ToString() ); // Console.WriteLine(SQL); var cnt = FCOMMON.DBM.ExecuteNonQuery(SQL); FCOMMON.Util.MsgI(string.Format("{0}건의 자료가 생성 되었습니다.\n\n구매등록 화면에서 내용을 확인하세요.", cnt)); return true; } private void button1_Click(object sender, EventArgs e) { if (!saveData()) return; DialogResult = System.Windows.Forms.DialogResult.OK; } private void cbEQManu_SelectedIndexChanged(object sender, EventArgs e) { if (bsModel == null) return; string 원본모델 = cbEQModel.Text; //장비모델 필터를 변경해준다. if (cbEQManu.SelectedIndex < 0) { cbEQModel.SelectedIndex = -1; return; } string filter = "svalue='" + cbEQManu.Text.Replace("'", "''") + "'"; bsModel.Filter = filter; if (원본모델 != "") cbEQModel.Text = 원본모델; else cbEQModel.SelectedIndex = -1; } } }