1222 lines
		
	
	
		
			47 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			1222 lines
		
	
	
		
			47 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using FCOMMON;
 | |
| using FEQ0000.Purchase;
 | |
| using NetOffice.OutlookApi;
 | |
| 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 FEQ0000
 | |
| {
 | |
|     public partial class fPurchaseCR_Add : fBase
 | |
|     {
 | |
|         BindingSource bsManu;
 | |
|         BindingSource bsModel;
 | |
|         dsPurchase.EETGW_PurchaseCRRow dr;
 | |
|         public Boolean repeatAdd = false;
 | |
|         Boolean binit = false;
 | |
|         string sidchk1 = string.Empty;
 | |
|         string dbchk1 = string.Empty;
 | |
| 
 | |
|         public fPurchaseCR_Add(dsPurchase.EETGW_PurchaseCRRow dr_)
 | |
|         {
 | |
|             InitializeComponent();
 | |
|             Properties.Settings.Default["gwcs"] = FCOMMON.info.CS;
 | |
|             Properties.Settings.Default["EEEntities"] = FCOMMON.info.CS;
 | |
| 
 | |
|             bsManu = new BindingSource();
 | |
|             bsModel = new BindingSource();
 | |
|             this.dr = dr_;
 | |
|             this.KeyPreview = true;
 | |
|             this.StartPosition = FormStartPosition.CenterScreen;
 | |
|             this.KeyDown += (s1, e1) =>
 | |
|             {
 | |
|                 if (e1.KeyCode == Keys.Escape) this.Close();
 | |
|             };
 | |
|             this.tbPumName.Leave += tbPumName_Leave;
 | |
|             this.tbSupply.Leave += tbSupply_Leave;
 | |
|             this.tbProject.Leave += tbProject_Leave;
 | |
| 
 | |
|             foreach (Control ctl in groupBox1.Controls)
 | |
|             {
 | |
|                 if (ctl.GetType() == typeof(TextBox) || ctl.GetType() == typeof(ComboBox))
 | |
|                 {
 | |
|                     ctl.KeyDown += ctl_KeyDown;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 
 | |
|     
 | |
|         Boolean advInput = false;
 | |
|         private void __Load(object sender, EventArgs e)
 | |
|         {
 | |
|             EnsureVisibleAndUsableSize();
 | |
|             //this.purchaseTableAdapter.Fill(this.dsPurchase.Purchase);
 | |
|             // this.Show();
 | |
|             //  Application.DoEvents();
 | |
|             advInput = FCOMMON.Util.getBit(FCOMMON.info.Login.gpermission, (int)FCOMMON.eGroupPermission.purchase_adv);
 | |
|             tbPumName.ImeMode = ImeMode.Alpha;
 | |
| 
 | |
|             //상태
 | |
|             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");
 | |
|             //bsManu.DataSource = dt_dept;
 | |
|             //this.cbEQManu.DisplayMember = "Value";
 | |
|             //this.cbEQManu.ValueMember = "Value";
 | |
|             //this.cbEQManu.DataSource = bsManu;
 | |
| 
 | |
|             ////장비모델            
 | |
|             //var dt_asset = FCOMMON.DBM.getCodeTable("07");
 | |
|             //bsModel.DataSource = 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 LstCur = FCOMMON.DBM.getCodeTable("69");
 | |
|             this.cmbCurrency.DisplayMember = "Value";
 | |
|             this.cmbCurrency.ValueMember = "Value";
 | |
|             this.cmbCurrency.DataSource = LstCur;
 | |
| 
 | |
|             //담당자목록
 | |
|             var userList = FCOMMON.DBM.getUserList(); //.getGroupList("name", "Users", "[level] > 0 and [level] < 10");
 | |
|             cmbReceive.Items.Clear();
 | |
|             cmbReceive.Items.Add("-- 없음 --");
 | |
|             foreach (var user in userList)
 | |
|             {
 | |
|                 this.cmbReceive.Items.Add(string.Format("[{0}] {1}", user.Key, user.Value));
 | |
|                 this.cmbRequest.Items.Add(string.Format("[{0}] {1}", user.Key, user.Value));
 | |
|             }
 | |
| 
 | |
|             dtPdate.Value = DateTime.Parse(dr.pdate);
 | |
|             if (dr.IsindateNull() || dr.indate.isEmpty())
 | |
|             {
 | |
|                 this.chkInDate.Checked = false;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 this.chkInDate.Checked = true;
 | |
|                 dtInDate.Value = DateTime.Parse(dr.indate);
 | |
|             }
 | |
| 
 | |
|             if (dr.IsedateNull() || dr.edate.isEmpty())
 | |
|             {
 | |
|                 this.chkExp.Checked = false;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 this.chkExp.Checked = true;
 | |
|                 dtExpDate.Value = DateTime.Parse(dr.edate);
 | |
|             }
 | |
| 
 | |
|             ///입력된 데이터를 적용한다.
 | |
|             //dtPdate.Value = DateTime.Parse(dr.pdate);
 | |
|             if (cmbRequest.Items.Count > 0)
 | |
|             {
 | |
|                 for (int i = 0; i < cmbRequest.Items.Count; i++)
 | |
|                 {
 | |
|                     if (cmbRequest.Items[i].ToString().StartsWith("[" + dr.request + "]"))
 | |
|                     {
 | |
|                         cmbRequest.SelectedIndex = i;
 | |
|                         break;
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|             else cmbRequest.Text = dr.request;
 | |
| 
 | |
|             if (cmbReceive.Items.Count > 1)
 | |
|             {
 | |
|                 for (int i = 1; i < cmbReceive.Items.Count; i++)
 | |
|                 {
 | |
|                     if (cmbReceive.Items[i].ToString().StartsWith("[" + dr.receive + "]"))
 | |
|                     {
 | |
|                         cmbReceive.SelectedIndex = i;
 | |
|                         break;
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|             else cmbReceive.Text = dr.receive;
 | |
| 
 | |
|             tbSID.Text = dr.sid;
 | |
|             tbSID.Tag = tbSID.Text;
 | |
|             tbStorage.Text = dr.place;
 | |
| 
 | |
|             //if (dr.manuproc == "") cbManuProc.SelectedIndex = -1;
 | |
|             //else cbManuProc.Text = dr.manuproc; //190106
 | |
| 
 | |
|             //if (dr.dept == "") cbEQManu.SelectedIndex = -1;
 | |
|             //else cbEQManu.Text = dr.dept;    //제조사
 | |
|             //if (cbEQManu.SelectedIndex == -1)
 | |
|             //{
 | |
|             //    if (dr.asset != "") FCOMMON.Util.MsgE(
 | |
|             //        string.Format("장비 모델 명({0})이 있지만 해당 제조사가 없으므로 모델명이 제거 됩니다. 모델을 다시 지정 하세요", dr.asset));
 | |
|             //    cbEQModel.SelectedIndex = -1;
 | |
|             //}
 | |
|             //else
 | |
|             //{
 | |
|             //    cbEQModel.Text = dr.asset;  //제조모델명
 | |
|             //    if (cbEQModel.SelectedIndex == -1)
 | |
|             //    {
 | |
|             //        //FCOMMON.Util.MsgE("모델을 다시 선택하세요");
 | |
|             //    }
 | |
|             //}
 | |
| 
 | |
| 
 | |
|             tbPumName.Text = dr.pumname;
 | |
|             tbPumName.Tag = tbPumName.Text;
 | |
| 
 | |
|             tbPumModel.Text = dr.pumscale;
 | |
| 
 | |
|             if (dr.IspumqtyNull()) tbQtyReal.Text = "0";   //230817
 | |
|             else tbQtyReal.Text = dr.pumqty.ToString();
 | |
| 
 | |
|             if (dr.IspumqtyReqNull()) tbQtyReq.Text = "0";   //230817
 | |
|             else tbQtyReq.Text = dr.pumqtyReq.ToString();
 | |
| 
 | |
|             if (dr.IspumidxNull()) tbPumIDX.Text = "-1";
 | |
|             else tbPumIDX.Text = dr.pumidx.ToString();
 | |
|             tbPumPrice.Text = dr.pumprice.ToString();
 | |
|             tbPumPriceD.Text = dr.pumpriceD.ToString();
 | |
|             tbPumAmt.Text = dr.pumamt.ToString("N0");   //천단위 구분기호 추가 181222
 | |
|             tbPumUnit.Text = dr.pumunit;
 | |
| 
 | |
|             tbSupply.Text = dr.supply;
 | |
|             tbSupply.Tag = tbSupply.Text;
 | |
|             tbSupplyIndex.Text = dr.supplyidx.ToString();
 | |
| 
 | |
|             tbProject.Text = dr.project;
 | |
|             tbProject.Tag = tbProject.Text;
 | |
|             tbProjectIndex.Text = dr.projectidx.ToString();
 | |
| 
 | |
|             cmbState.Text = dr.state;
 | |
| 
 | |
|             //230728
 | |
|             if (dr.IscostcenterNull() == false)
 | |
|                 tbCostCenter.Text = dr.costcenter;
 | |
|             else tbCostCenter.Text = string.Empty;
 | |
|             if (dr.IslinecodeNull() == false)
 | |
|                 tbLineCode.Text = dr.linecode;
 | |
|             else tbLineCode.Text = string.Empty;
 | |
| 
 | |
|             tbManager.Text = dr.purchase_manager;
 | |
|             tbAdmin.Text = dr.purchase_admin;
 | |
| 
 | |
|             //if (dr.process == "") cbProcess.SelectedIndex = -1;
 | |
|             //else cbProcess.Text = dr.process;
 | |
|             //if (cbProcess.SelectedIndex == -1)
 | |
|             //{
 | |
|             //    //181203 - 이 사용자가 마지막으로 사용한 공정값을 사용한다.
 | |
|             //    var lastprocess = FCOMMON.DBM.getFirstValue("process", "purchase", "request like '%" + this.cmbRequest.Text + "%'", "pdate desc");
 | |
|             //    if (lastprocess != "") cbProcess.Text = lastprocess;
 | |
| 
 | |
|             //}
 | |
|             tbSC.Text = dr.sc;
 | |
|             tbPO.Text = dr.po;
 | |
|             tbOrderNo.Text = dr.orderno;
 | |
|             tbBigo.Text = dr.bigo;
 | |
|             if (dr.IschkremarkNull()) tbBigoChk.Text = string.Empty;
 | |
|             else tbBigoChk.Text = dr.chkremark;
 | |
|             dtInDate.Text = dr.indate;
 | |
|             dtExpDate.Text = dr.edate;
 | |
| 
 | |
|             //20230306
 | |
|             tbInQty.Text = dr.inqty.ToString();
 | |
|             tbInRemar.Text = dr.inremark;
 | |
| 
 | |
|             chk1.Checked = dr.chk1;
 | |
|             chk2.Checked = dr.chk2;
 | |
| 
 | |
|             //chkInDate.Checked = !dr.IsindateNull();
 | |
|             //chkExp.Checked = !dr.IsedateNull();
 | |
| 
 | |
|             this.dtExpDate.Enabled = chkExp.Checked;
 | |
|             this.dtInDate.Enabled = chkInDate.Checked;
 | |
| 
 | |
|             //일반사용자의경우에는 상태를 변경하지 못한다.
 | |
|             int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.purchase));
 | |
|             if (curLevel < 5)
 | |
|             {
 | |
|                 if (dr.RowState == DataRowState.Detached || dr.RowState == DataRowState.Added)
 | |
|                     cmbReceive.Enabled = false;
 | |
| 
 | |
|                 cmbState.Enabled = false;
 | |
|                 if (cmbRequest.Text != "") cmbRequest.Enabled = false;
 | |
| 
 | |
|                 //데이터가 편집 상태인데 요청자가 내가 아닌경우에도 편집 불가
 | |
|                 Boolean enb = true;
 | |
|                 if (dr.RowState == DataRowState.Unchanged && dr.request != FCOMMON.info.Login.no)
 | |
|                     enb = false;
 | |
|                 if (tbSC.Text.Trim() != "") enb = false;
 | |
| 
 | |
|                 if (enb == false) //일반 사용자는 쇼핑, 카드 잇으면 수정 불가
 | |
|                 {
 | |
|                     btSave.Enabled = false;
 | |
|                     btSaveAdd.Enabled = false;
 | |
|                     groupBox1.Enabled = false;
 | |
|                     groupBox2.Enabled = false;
 | |
|                 }
 | |
|                 tbBigoChk.Enabled = false;
 | |
|                 tbQtyReal.Enabled = false;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 tbBigoChk.Enabled = true;
 | |
|                 tbQtyReal.Enabled = true;
 | |
|             }
 | |
| 
 | |
|             if (advInput == false)
 | |
|             {
 | |
|                 this.Width = 528;
 | |
|                 // this.linkLabel7.Enabled = false;
 | |
|                 this.tbProject.Enabled = false;
 | |
|                 this.tbProjectIndex.Enabled = false;
 | |
|             }
 | |
|             this.Show();
 | |
|             System.Windows.Forms.Application.DoEvents();
 | |
|             tbPumName.Focus();
 | |
| 
 | |
|             ////이미지를 불러온다.
 | |
|             //if (dr.RowState != DataRowState.Detached && dr.RowState != DataRowState.Deleted && dr.RowState != DataRowState.Added)
 | |
|             //{
 | |
|             //    if (dr.IspumidxNull() == false && dr.pumidx != -1)
 | |
|             //    {
 | |
|             //        var img = FCOMMON.DBM.GetImageData("Items", "image", dr.pumidx);
 | |
|             //        if (img != null)
 | |
|             //        {
 | |
|             //            this.pictureBox1.Image = img;
 | |
|             //        }
 | |
|             //    }
 | |
|             //}
 | |
|             binit = true;
 | |
| 
 | |
|             if (dr.RowState == DataRowState.Detached || dr.RowState == DataRowState.Added)
 | |
|             {
 | |
|                 sidchk1 = string.Empty;
 | |
|                 dbchk1 = string.Empty;
 | |
| 
 | |
|                 //복사된 자료는 isd가 잇으면 sid가 잇다면 자동 처리해준다.
 | |
|                 if (tbSID.Text.StartsWith("10") && tbSID.TextLength == 9)
 | |
|                     dbchk1 = tbPumName.Text.Trim();
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 sidchk1 = tbSID.Text.Trim();
 | |
|                 dbchk1 = tbPumName.Text.Trim();
 | |
|             }
 | |
| 
 | |
| 
 | |
|             timer1.Start();
 | |
| 
 | |
| 
 | |
|         }
 | |
| 
 | |
|         string sidTrim(string sid)
 | |
|         {
 | |
|             return sid.Replace(" ", "").Replace("-", "").Replace("_", "").Trim();
 | |
|         }
 | |
| 
 | |
|         void ctl_KeyDown(object sender, KeyEventArgs e)
 | |
|         {
 | |
|             if (e.KeyCode == Keys.Enter)
 | |
|             {
 | |
|                 Control ctl = sender as Control;
 | |
|                 string nm = ctl.Name.ToLower();
 | |
|                 string search = ctl.Text.Trim();
 | |
| 
 | |
|                 Console.WriteLine("inner keydown " + nm + ":" + search);
 | |
| 
 | |
|                 switch (nm)
 | |
|                 {
 | |
|                     case "cmbrequest":
 | |
|                         //요청자가 마지막으로 입력한 자료의 process 를 찾아서 기입해준다.
 | |
|                         //var lastprocess = FCOMMON.DBM.getFirstValue("process", "purchase", "request like '%" + this.cmbRequest.Text + "%'", "pdate desc");
 | |
|                         //if (lastprocess != "") cbProcess.Text = lastprocess;
 | |
|                         tbSID.Focus();
 | |
|                         break;
 | |
|                     case "tbpumname":
 | |
|                         Lov_Item(search, false);
 | |
|                         break;
 | |
|                     case "tbproject":
 | |
|                         Lov_Project(search, false);
 | |
|                         break;
 | |
|                     case "tbsupply":
 | |
|                         Lov_Supply(search, false);
 | |
|                         break;
 | |
|                     case "tbbigo":
 | |
|                         e.Handled = true;
 | |
|                         break;
 | |
|                     default:
 | |
|                         SendKeys.Send("{TAB}");
 | |
|                         break;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 | |
|         {
 | |
|             Lov_Item("", true);
 | |
|         }
 | |
| 
 | |
|         void Lov_Item(string search, Boolean allowAll)
 | |
|         {
 | |
|             if (search == "" && allowAll == false)
 | |
|             {
 | |
|                 dbchk1 = string.Empty;
 | |
|                 sidchk1 = string.Empty;
 | |
|                 FCOMMON.Util.MsgE("품명은 필수 값 입니다");
 | |
|                 tbPumName.Focus();
 | |
|                 return;
 | |
|             }
 | |
|             else if (search.ToLower() != tbPumName.Tag.ToString().ToLower() || tbPumIDX.Text == "-1" || tbPumIDX.Text == "") //값이 바뀌엇다면 검색을 해준다.
 | |
|             {
 | |
|                 var f = new FCM0000.fLovItem(search);
 | |
|                 if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
 | |
|                 {
 | |
|                     dbchk1 = f.itemName;
 | |
|                     sidchk1 = string.Empty;
 | |
| 
 | |
|                     //인덱스값이 다르면 모델 및 가격을 업데이트 한다.
 | |
|                     tbPumName.Text = f.itemName;
 | |
|                     tbPumName.Tag = f.itemName;
 | |
| 
 | |
|                     this.tbPumIDX.Text = f.item.ToString();
 | |
|                     this.tbPumModel.Text = f.itemmodel;
 | |
|                     this.tbPumPrice.Text = f.itemprice.ToString();
 | |
|                     this.tbPumPriceD.Text = f.itempriceD.ToString();
 | |
|                     this.tbSID.Text = f.SID;
 | |
|                     this.tbSID.Tag = f.SID;
 | |
|                     this.tbPumUnit.Text = f.itemUnit; //181214
 | |
|                     this.tbStorage.Text = f.Storage;
 | |
|                     this.tbPumModel.Enabled = false;
 | |
|                     this.tbPumUnit.Enabled = false;
 | |
|                     if (tbSID.Text != "") tbSID.Enabled = false;
 | |
|                     else tbSID.Enabled = true;
 | |
| 
 | |
|                     //제품을 찾앗다면 suppy 등을 업데이트 해준다.
 | |
|                     var pcInfo = FCOMMON.DBM.getLastPurchaseCRInfo(f.item);
 | |
|                     if (pcInfo.idx != -1)
 | |
|                     {
 | |
|                         tbSupply.Text = pcInfo.supply;
 | |
|                         tbSupplyIndex.Text = pcInfo.supplyidx.ToString();
 | |
|                         if (pcInfo.project != "" && tbProject.Text == "")
 | |
|                             tbProject.Text = pcInfo.project;
 | |
|                     }
 | |
|                     else
 | |
|                     {
 | |
|                         tbSupply.Text = f.itemSupply;
 | |
|                         tbSupplyIndex.Text = f.itemSupplyidx.ToString();
 | |
|                     }
 | |
| 
 | |
|                     //display image
 | |
|                     //var image = FCOMMON.DBM.GetImageData("Items", "image", int.Parse(tbPumIDX.Text));
 | |
|                     //var oimage = this.pictureBox1.Image;
 | |
|                     //this.pictureBox1.Image = image;
 | |
|                     //if (oimage != null) oimage.Dispose();
 | |
|                 }
 | |
|             }
 | |
|             this.tbQtyReq.Focus();
 | |
|         }
 | |
|         void Lov_Project(string search, Boolean allowAll)
 | |
|         {
 | |
|             if (search != "" || allowAll == true)
 | |
|             {
 | |
|                 var f = new FCM0000.fLovProject(search);
 | |
|                 if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
 | |
|                 {
 | |
|                     var titles = f.Title.Split('/');
 | |
|                     this.tbProject.Text = titles[0].Trim();
 | |
|                     this.tbProject.Tag = titles[0].Trim();
 | |
|                     this.tbProjectIndex.Text = f.Index.ToString();
 | |
|                     this.tbOrderNo.Text = titles[1].Trim();
 | |
|                     btSave.Focus();
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     tbProject.SelectAll();
 | |
|                     tbProject.Focus();
 | |
|                 }
 | |
|             }
 | |
|             else this.btSave.Focus();
 | |
|         }
 | |
|         void Lov_Supply(string search, Boolean allowAll)
 | |
|         {
 | |
|             if (search != "" || allowAll == true)
 | |
|             {
 | |
|                 FCM0000.fLovSupply f = new FCM0000.fLovSupply(search);
 | |
|                 if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
 | |
|                 {
 | |
|                     tbSupply.Text = f.Title;
 | |
|                     tbSupply.Tag = f.Title;
 | |
|                     tbSupplyIndex.Text = f.Index.ToString();
 | |
|                     if (advInput)
 | |
|                         this.tbProject.Focus();
 | |
|                     else
 | |
|                         this.tbBigo.Focus();
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     tbSupply.Focus();
 | |
|                     tbSupply.SelectAll();
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 if (advInput)
 | |
|                     this.tbProject.Focus();
 | |
|                 else
 | |
|                     this.tbBigo.Focus();
 | |
|             }
 | |
|         }
 | |
|         private bool saveData()
 | |
|         {
 | |
|             this.Validate();
 | |
| 
 | |
|             tbSID.Text = sidTrim(tbSID.Text);
 | |
| 
 | |
|             if (dbchk1.isEmpty())
 | |
|             {
 | |
|                 Util.MsgE("품목 검사가 진행되지 않았습니다\n품명을 입력한 후 엔터를 누르거나 [품명] 버튼을 눌러서 검색을 수행한 후 다시 시도하세요");
 | |
|                 tbPumName.Focus();
 | |
|                 Lov_Item(tbPumName.Text, true);
 | |
|                 return false;
 | |
|             }
 | |
| 
 | |
|             //시드검사한 자료와 현재 입력된 시드가 다르면 검사를 다시 하게 한다
 | |
|             if (this.tbPumName.Text.Trim().Equals(this.dbchk1) == false)
 | |
|             {
 | |
|                 Util.MsgE("품명검사 자료가 변경되었습니다. 다시 검사 하세요");
 | |
|                 Lov_Item("", true);
 | |
|                 dbchk1 = string.Empty;
 | |
|                 return false;
 | |
|             }
 | |
| 
 | |
|             if (tbSID.TextLength != 9 && tbSID.Text != "신규")
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("SID(9자리)를 확인 하세요");
 | |
|                 tbSID.Focus();
 | |
|                 tbSID.SelectAll();
 | |
|                 return false;
 | |
|             }
 | |
| 
 | |
|             if (tbSID.Text.Equals("신규") || tbSID.Text.isEmpty())
 | |
|             {
 | |
|                 //FCOMMON.Util.MsgI($"신규 SID로 인해 SID 검사를 진행하지 않습니다");
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 if (string.IsNullOrWhiteSpace(this.sidchk1))
 | |
|                 {
 | |
|                     FCOMMON.Util.MsgE("SID검사가 필요합니다.\n상단의 검사 버튼을 눌러 SPR/NR 재고 여부를 확인 하세요");
 | |
|                     btSIDChk.Focus();
 | |
|                     return false;
 | |
|                 }
 | |
| 
 | |
|                 //시드검사한 자료와 현재 입력된 시드가 다르면 검사를 다시 하게 한다
 | |
|                 if (this.tbSID.Text.Trim().Equals(this.sidchk1) == false)
 | |
|                 {
 | |
|                     Util.MsgE("SID검사 자료가 변경되었습니다. 다시 검사 하세요");
 | |
|                     sidchk1 = string.Empty;
 | |
|                     return false;
 | |
|                 }
 | |
|             }
 | |
| 
 | |
| 
 | |
| 
 | |
|             //if (cbProcess.Text.Trim() == "")
 | |
|             //{
 | |
|             //    FCOMMON.Util.MsgE("추가정보내의 [공정]을 선택하세요.");
 | |
|             //    cbProcess.Focus();
 | |
|             //    return false;
 | |
|             //}
 | |
| 
 | |
|             if (tbPumName.Text.isEmpty())
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("품명이 없습니다.");
 | |
|                 tbPumName.Focus();
 | |
|                 return false;
 | |
|             }
 | |
| 
 | |
|             //if (tbPumModel.Text == "")
 | |
|             //{
 | |
|             //    FCOMMON.Util.MsgE("제품 규격을 입력하세요.");
 | |
|             //    tbPumModel.Focus();
 | |
|             //    return false;
 | |
|             //}
 | |
|             if (tbQtyReq.Text == "")
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("수량(요청)을 입력하세요.");
 | |
|                 tbQtyReq.Focus();
 | |
|                 return false;
 | |
|             }
 | |
| 
 | |
|             //실수량은 구매담당자만 입력한다
 | |
|             if (tbBigoChk.Enabled && (cmbState.Text == "PO" || cmbState.Text == "PR"))
 | |
|             {
 | |
|                 var qtycnv = int.TryParse(tbQtyReal.Text, out int qtyreq);
 | |
|                 if (qtycnv == false || qtyreq < 1)
 | |
|                 {
 | |
|                     FCOMMON.Util.MsgE("수량(실 구매)을 입력하세요.");
 | |
|                     tbQtyReal.Focus();
 | |
|                     return false;
 | |
|                 }
 | |
|             }
 | |
| 
 | |
| 
 | |
|             if (int.TryParse(tbProjectIndex.Text, out int pidx) == false || pidx < 1)
 | |
|             {
 | |
|                 if (tbBigo.Text.isEmpty() == true)
 | |
|                 {
 | |
|                     FCOMMON.Util.MsgE("프로젝트가 선택되지 않았습니다. 직접입력은 허용되지 않습니다.\n" +
 | |
|              "프로젝트 명을 입력하고 Enter 키를 눌러서 관련  프로젝트를 선택하세요\n" +
 | |
|              "프로젝트가 없는 경우에는 비고란에 해당 내용을 기입하세요");
 | |
|                     tbProject.Focus();
 | |
|                     tbProject.SelectAll();
 | |
|                     return false;
 | |
|                 }
 | |
| 
 | |
|             }
 | |
| 
 | |
|             if (tbOrderNo.Text.isEmpty())
 | |
|             {
 | |
|                 FCOMMON.Util.MsgI(
 | |
|                     "CR/CF 구매의 경우 CR/CF 값이 반드시 입력되어야 합니다\n" +
 | |
|                     "프로젝트를 선택한 경우에 해당 값이 없다면 프로젝트 편집화면에서 해당 값을 입력한 후 다시 시도하세요");
 | |
|                 tbOrderNo.Focus();
 | |
|                 tbOrderNo.SelectAll();
 | |
|                 return false;
 | |
|             }
 | |
| 
 | |
|             if (tbStorage.Text.Equals("SPR"))
 | |
|             {
 | |
|                 if (FCOMMON.Util.MsgQ("SPR 항목입니다. 저장할까요?") != DialogResult.Yes)
 | |
|                     return false;
 | |
|             }
 | |
| 
 | |
|             var overtime = DateTime.Now - DateTime.Parse("2019-01-09 00:00:00");
 | |
|             if (overtime.TotalSeconds > 0)
 | |
|             {
 | |
|                 //if (advInput == true && this.cbProcess.Text.Trim() == "")
 | |
|                 //{
 | |
|                 //    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 (advInput == true && cbManuProc.Text.Trim() == "")
 | |
|                 //{
 | |
|                 //    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 (advInput == true && this.cbEQManu.Text.Trim() == "")
 | |
|                 //{
 | |
|                 //    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;
 | |
|                 //    }
 | |
|                 //}
 | |
| 
 | |
|                 //if (bsModel.Count > 0 && this.cbEQModel.SelectedIndex == -1)
 | |
|                 //{
 | |
|                 //    FCOMMON.Util.MsgE("장비 모델을 선택하세요.\n\n" +
 | |
|                 //        "선택 대상이 없는 경우 문의 바랍니다.\n\n" +
 | |
|                 //        "BongSeok Jung(T.7191)\n" +
 | |
|                 //        "BongSeok.Jung@amkor.co.kr");
 | |
|                 //    cbEQModel.Focus();
 | |
|                 //    return false;
 | |
|                 //}
 | |
| 
 | |
|             }
 | |
| 
 | |
|             //if (dr.RowState != DataRowState.Detached && dr.RowState != DataRowState.Added)
 | |
|             //{
 | |
|             //    if (dr.sc != tbSC.Text.Trim() && tbSC.Text != "")
 | |
|             //    {
 | |
|             //        //dtPdate.Value = DateTime.Now;
 | |
|             //        this.cmbState.SelectedValue = "Approving";
 | |
|             //        //if (dr.state == "00") dr.state = "01"; //approv 변경
 | |
|             //    }
 | |
|             //}
 | |
| 
 | |
|             var potxt = tbPO.Text.Trim();
 | |
|             if (potxt.Length > 1 && cmbState.Text == "PR")
 | |
|             {
 | |
|                 //if (cmbState.Items.Contains("PO"))
 | |
|                 cmbState.Text = "PO";
 | |
|             }
 | |
| 
 | |
|             //품목정보에 없는 데이터이므로 자료를 추가한다.
 | |
|             if (tbPumIDX.Text == "-1")
 | |
|             {
 | |
|                 var newidx = FCOMMON.DBM.addItem(tbPumName.Text, tbSID.Text, tbPumModel.Text.Trim(), decimal.Parse(tbPumPrice.Text), tbSupply.Text.Trim(), int.Parse(tbSupplyIndex.Text), null);
 | |
|                 if (newidx > 0) tbPumIDX.Text = newidx.ToString();
 | |
|             }
 | |
|             else if (tbSID.Text != "" && tbSID.Text != tbSID.Tag.ToString())
 | |
|             {
 | |
|                 //SID가 변경되었으므로 업데이트 해주낟.
 | |
|                 FCOMMON.DBM.UpdateItemSID(int.Parse(tbPumIDX.Text), tbSID.Text);
 | |
|             }
 | |
| 
 | |
|             //수령을 했는데. 현재 상태가 04 미만이면 04(수령)으로 변경 한다.
 | |
|             if (chkInDate.Checked)
 | |
|             {
 | |
|                 var curState = this.cmbState.Text.Trim();
 | |
|                 if (curState.ToLower() == "po" || curState.ToLower() == "pr" ||
 | |
|                     curState.ToLower() == "approving")
 | |
|                 {
 | |
|                     this.cmbState.SelectedValue = "Received";
 | |
|                 }
 | |
| 
 | |
|             }
 | |
| 
 | |
|             //단가가없는경우 생성한다.
 | |
|             if (decimal.TryParse(tbPumPrice.Text, out decimal vprice) == false)
 | |
|             {
 | |
|                 if (decimal.TryParse(tbPumPriceD.Text, out decimal vpriced) == true)
 | |
|                 {
 | |
|                     applyDollerToWon();
 | |
|                 }
 | |
|             }
 | |
| 
 | |
| 
 | |
|             if (int.TryParse(tbQtyReq.Text, out int vqtyreq) == false)
 | |
|                 tbQtyReq.Text = "0";
 | |
|             if (int.TryParse(tbQtyReal.Text, out int vqtyreal) == false)
 | |
|                 tbQtyReal.Text = "0";
 | |
|             if (decimal.TryParse(tbPumPrice.Text, out decimal vpumprice) == false)
 | |
|                 tbPumPrice.Text = "0";
 | |
| 
 | |
|             //요청 구매 수량이 다를경우 비고 입력이 필요함
 | |
|             if (vqtyreal > 0 && vqtyreq > 0 && vqtyreq != vqtyreal)
 | |
|             {
 | |
|                 if (tbBigoChk.Text.isEmpty())
 | |
|                 {
 | |
|                     Util.MsgE("구매 요청/실 수량이 서로 다릅니다\n구매자 비고에 해당 사유를 입력하세요");
 | |
|                     tbBigoChk.Focus();
 | |
|                     return false;
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             if (dr.RowState == DataRowState.Detached && vqtyreq < 1)
 | |
|             {
 | |
|                 Util.MsgE($"요청수량을 입력하세요");
 | |
|                 tbQtyReq.Focus();
 | |
|                 return false;
 | |
|             }
 | |
| 
 | |
| 
 | |
|             dr.pumqty = vqtyreal;// int.Parse(tbPumQty.Text);
 | |
|             dr.pumqtyReq = vqtyreq;// int.Parse(tbpumqtyReq.Text);
 | |
|             dr.pumprice = vpumprice;// decimal.Parse(tbPumPrice.Text);
 | |
| 
 | |
|             if (int.TryParse(tbInQty.Text, out int inqty))
 | |
|             {
 | |
|                 dr.inqty = inqty;
 | |
|             }
 | |
|             dr.inremark = tbInRemar.Text;
 | |
| 
 | |
|             if (decimal.TryParse(tbPumPriceD.Text, out decimal priced))
 | |
|             {
 | |
|                 dr.pumpriceD = priced;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 dr.SetpumpriceDNull();
 | |
|                 dr.currency = "KRW";
 | |
|             }
 | |
| 
 | |
|             if (vqtyreal > 0) dr.pumamt = dr.pumqty * dr.pumprice;
 | |
|             else dr.pumamt = dr.pumqtyReq * dr.pumprice;
 | |
| 
 | |
|             if (dr.pumamt < 1)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE($"금액이 없습니다. 단가 및 수량을 확인하세요\n해외 통화를 사용할 경우 환율을 고려한 국내단가를 입력해주세요\n환율을 자동으로 입력하려면 공용코드(69)의 FValue 에 값을 입력하세요");
 | |
|                 return false;
 | |
|             }
 | |
| 
 | |
|             if (tbPumIDX.Text == "" || tbPumIDX.Text == "-1") dr.SetpumidxNull();
 | |
|             else dr.pumidx = int.Parse(tbPumIDX.Text);
 | |
|             dr.sid = tbSID.Text.Trim();
 | |
| 
 | |
|             if (chkExp.Checked) dr.edate = this.dtExpDate.Value.ToShortDateString();
 | |
|             else dr.SetedateNull();
 | |
|             if (chkInDate.Checked) dr.indate = this.dtInDate.Value.ToShortDateString();
 | |
|             else dr.SetindateNull();
 | |
|             dr.pdate = this.dtPdate.Value.ToShortDateString();
 | |
| 
 | |
|             dr.gcode = FCOMMON.info.Login.gcode;
 | |
|             if (cmbRequest.Text.IndexOf("]") != -1)
 | |
|                 dr.request = cmbRequest.Text.Substring(1, cmbRequest.Text.IndexOf("]") - 1);
 | |
|             else
 | |
|                 dr.request = cmbRequest.Text.Trim();
 | |
| 
 | |
|             dr.sid = tbSID.Text;
 | |
| 
 | |
|             //dr.asset = cbEQModel.Text;
 | |
|             //dr.dept = cbEQManu.Text;
 | |
|             //dr.manuproc = cbManuProc.Text;
 | |
| 
 | |
|             dr.pumname = tbPumName.Text;
 | |
|             dr.pumname = dr.pumname.Replace("*", "x");  //181031
 | |
| 
 | |
|             dr.pumscale = tbPumModel.Text;
 | |
|             dr.pumscale = dr.pumscale.Replace("*", "x");  //181031
 | |
|             dr.pumunit = tbPumUnit.Text;
 | |
| 
 | |
|             dr.supply = tbSupply.Text;
 | |
|             dr.place = tbStorage.Text;
 | |
| 
 | |
|             dr.costcenter = tbCostCenter.Text;
 | |
|             dr.linecode = tbLineCode.Text;
 | |
| 
 | |
|             dr.purchase_manager = tbManager.Text;
 | |
|             dr.purchase_admin = tbAdmin.Text;
 | |
| 
 | |
|             if (tbSupplyIndex.Text == "") dr.SetsupplyidxNull();
 | |
|             else dr.supplyidx = int.Parse(tbSupplyIndex.Text);
 | |
| 
 | |
|             dr.project = tbProject.Text;
 | |
|             if (tbProjectIndex.Text == "") dr.SetprojectidxNull();
 | |
|             else dr.projectidx = int.Parse(tbProjectIndex.Text);
 | |
| 
 | |
|             dr.state = cmbState.Text.Trim();
 | |
| 
 | |
|             if (cmbReceive.Text.IndexOf("]") != -1)
 | |
|                 dr.receive = cmbReceive.Text.Substring(1, cmbReceive.Text.IndexOf("]") - 1);
 | |
|             else
 | |
|             {
 | |
|                 if (cmbReceive.SelectedIndex < 1) dr.receive = string.Empty;
 | |
|                 else dr.receive = cmbReceive.Text.Trim();
 | |
|             }
 | |
| 
 | |
|             //dr.process = cbProcess.Text;
 | |
|             dr.sc = tbSC.Text;
 | |
|             dr.po = tbPO.Text;
 | |
|             dr.orderno = tbOrderNo.Text;
 | |
|             dr.bigo = tbBigo.Text;
 | |
|             dr.chkremark = tbBigoChk.Text;
 | |
| 
 | |
|             //품정보가 업데이트 되어있으면 해당 데이터의 이미지를 업데이트 한다.(크기비교)
 | |
|             //품정보가 없다면 그대로 생성을 해준다.
 | |
|             if (tbPumIDX.Text == "" || tbPumIDX.Text == "-1")
 | |
|             {
 | |
| 
 | |
|                 ////아이템을 추가해야하낟.
 | |
|                 //byte[] pic = null;
 | |
|                 //if (this.pictureBox1.Image != null && this.pictureBox1.Tag.ToString() == "U")
 | |
|                 //{
 | |
|                 //    //이미지를 변경해줘야 한다.
 | |
|                 //    pic = FCOMMON.DBM.getImagByteArray(this.pictureBox1.Image);
 | |
|                 //}
 | |
|                 var newidx = FCOMMON.DBM.addItem(dr.pumname, dr.sid, dr.pumscale, dr.pumprice, dr.supply, dr.supplyidx);
 | |
|                 if (newidx != -1)
 | |
|                 {
 | |
|                     dr.pumidx = newidx;
 | |
|                     Console.WriteLine("new pumidx set = " + dr.pumidx.ToString());
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 ////아이템을 추가해야한다(변경된 이름은 
 | |
|                 //if (this.pictureBox1.Image != null && this.pictureBox1.Tag.ToString() == "U")
 | |
|                 //{
 | |
|                 //    //이미지를 변경해줘야 한다.
 | |
|                 //    FCOMMON.DBM.setImageData(this.pictureBox1.Image, "Items", "image", dr.pumidx);
 | |
|                 //}
 | |
|             }
 | |
| 
 | |
|             dr.EndEdit();
 | |
| 
 | |
|             return true;
 | |
|         }
 | |
| 
 | |
|         private void button1_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (!saveData()) return;
 | |
|             DialogResult = System.Windows.Forms.DialogResult.OK;
 | |
|         }
 | |
| 
 | |
|         private void chkInDate_CheckedChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             this.dtInDate.Enabled = chkInDate.Checked;
 | |
|         }
 | |
| 
 | |
|         private void chkExp_CheckedChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             this.dtExpDate.Enabled = chkExp.Checked;
 | |
|         }
 | |
| 
 | |
|         private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             //string code = "";
 | |
|             //if (cmbState.SelectedIndex < 0) label3.Text = "--";
 | |
|             //else
 | |
|             //{
 | |
|             //    //var value = cmbState.DataSource as BindingSource;
 | |
|             //    //var list = value.DataSource as Dictionary<string, string>;
 | |
|             //    //var item = list.Values
 | |
|             //    if (cmbState.Text.StartsWith("[") == false) return;
 | |
|             //    code = cmbState.Text.ToString().Substring(1, 2);
 | |
|             //    var desc = FCOMMON.DBM.getCodeSavlue("04", code);
 | |
|             //    label3.Text = desc;
 | |
| 
 | |
|             //}
 | |
|             //switch (code)
 | |
|             //{
 | |
|             //    case "01":
 | |
|             //        label3.BackColor = Color.LightBlue;
 | |
|             //        break;
 | |
|             //    case "02":
 | |
|             //        label3.BackColor = Color.SkyBlue;
 | |
|             //        break;
 | |
|             //    case "03":
 | |
|             //        label3.BackColor = Color.Yellow;
 | |
|             //        break;
 | |
|             //    case "04":
 | |
|             //        label3.BackColor = Color.Green;
 | |
|             //        break;
 | |
|             //    case "06":
 | |
|             //    case "05":
 | |
|             //        label3.BackColor = Color.Red;
 | |
|             //        break;
 | |
|             //    case "07":
 | |
|             //        label3.BackColor = Color.Magenta;
 | |
|             //        break;
 | |
|             //    default:
 | |
|             //        label3.BackColor = Color.LightGray;
 | |
|             //        break;
 | |
|             //}
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void button2_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (!saveData()) return;
 | |
|             this.repeatAdd = true;
 | |
|             DialogResult = System.Windows.Forms.DialogResult.OK;
 | |
|         }
 | |
| 
 | |
|         private void tbPumQty_TextChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             var b1 = int.TryParse(tbQtyReal.Text, out int qtyreal);
 | |
|             var b2 = int.TryParse(tbQtyReq.Text, out int qtyreq);
 | |
|             var b3 = double.TryParse(tbPumPrice.Text, out double price);
 | |
|             double amt = 0;
 | |
| 
 | |
|             //실구매수량이 잇으면 그걸로한다
 | |
|             if (qtyreal > 0) amt = qtyreal * price;
 | |
|             else amt = qtyreq * price;
 | |
| 
 | |
|             tbPumAmt.Text = amt.ToString("N0");
 | |
|         }
 | |
| 
 | |
| 
 | |
|         void tbProject_Leave(object sender, EventArgs e)
 | |
|         {
 | |
|             //커서를 빠져나갈떄 사용자가 이름만 변경했다면 선택 idx를 제거해준다.
 | |
|             var tb = sender as TextBox;
 | |
|             if (tb.Text == "") tbProjectIndex.Text = "-1";
 | |
|             else if (tb.Text != tb.Tag.ToString()) tbProjectIndex.Text = "-1";
 | |
|         }
 | |
| 
 | |
|         void tbSupply_Leave(object sender, EventArgs e)
 | |
|         {
 | |
|             //커서를 빠져나갈떄 사용자가 이름만 변경했다면 선택 idx를 제거해준다.\
 | |
|             var tb = sender as TextBox;
 | |
|             if (tb.Text == "") tbSupplyIndex.Text = "-1";
 | |
|             else if (tb.Text != tb.Tag.ToString()) tbSupplyIndex.Text = "-1";
 | |
|         }
 | |
| 
 | |
|         void tbPumName_Leave(object sender, EventArgs e)
 | |
|         {
 | |
|             //커서를 빠져나갈떄 사용자가 이름만 변경했다면 선택 idx를 제거해준다.
 | |
|             var tb = sender as TextBox;
 | |
|             if (tb.Text == "") tbPumIDX.Text = "-1";
 | |
|             else if (tb.Text != tb.Tag.ToString()) tbPumIDX.Text = "-1";
 | |
|             if (tbPumIDX.Text == "-1")
 | |
|             {
 | |
|                 tbPumModel.Enabled = true;
 | |
|                 tbPumUnit.Enabled = true;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void tbPumName_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             //Lov_Item("", true);
 | |
|         }
 | |
| 
 | |
|         private void tbPumName_TextChanged(object sender, EventArgs e)
 | |
|         {
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void button1_Click_1(object sender, EventArgs e)
 | |
|         {
 | |
|             Lov_Item(tbPumName.Text, true);
 | |
|         }
 | |
| 
 | |
|         private void button2_Click_1(object sender, EventArgs e)
 | |
|         {
 | |
|             //lov 공급처
 | |
|             Lov_Supply("", true);
 | |
|         }
 | |
| 
 | |
|         private void button3_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             //lov 프로젝트
 | |
|             Lov_Project("", true);
 | |
|         }
 | |
| 
 | |
| 
 | |
|         private void tbDolloerPrice_TextChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             //단가에 금액이 없는경우에는 환율을 곱해준다.
 | |
|             //if ( decimal.TryParse(tbPumPrice.Text, out decimal result) == false || result == 0)
 | |
|             if (binit)
 | |
|             {
 | |
|                 if (decimal.TryParse(tbPumPriceD.Text, out decimal priced) == true)
 | |
|                 {
 | |
|                     applyDollerToWon();
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     //달러입력값도 이상하니 처리 못함
 | |
|                     tbPumPrice.Text = "0";
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|         }
 | |
|         void applyDollerToWon()
 | |
|         {
 | |
|             if (decimal.TryParse(tbPumPriceD.Text, out decimal priced))
 | |
|             {
 | |
|                 var curr = lbcurrentwon.Tag != null ? (float)lbcurrentwon.Tag : 0;
 | |
|                 var price = curr * (double)priced;
 | |
|                 tbPumPrice.Text = (Math.Ceiling(price)).ToString();
 | |
|             }
 | |
|             else tbPumPrice.Text = "0";
 | |
|         }
 | |
| 
 | |
|         private void textBox2_TextChanged(object sender, EventArgs e)
 | |
|         {
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void timer1_Tick(object sender, EventArgs e)
 | |
|         {
 | |
|             if (tbSID.TextLength != 9)
 | |
|             {
 | |
|                 if (tbSID.Text.Equals("신규") || tbSID.Text.isEmpty())
 | |
|                 {
 | |
|                     btSIDChk.BackColor = Color.Gray;
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     if (btSIDChk.BackColor == Color.Gray)
 | |
|                         btSIDChk.BackColor = Color.Tomato;
 | |
|                     else
 | |
|                         btSIDChk.BackColor = Color.Gray;
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 if (string.IsNullOrWhiteSpace(sidchk1))
 | |
|                 {
 | |
|                     if (btSIDChk.BackColor == Color.Lime)
 | |
|                         btSIDChk.BackColor = Color.White;
 | |
|                     else
 | |
|                         btSIDChk.BackColor = Color.Lime;
 | |
|                 }
 | |
|                 else btSIDChk.BackColor = SystemColors.Control;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void btSIDChk_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             var sid = tbSID.Text.Trim();
 | |
| 
 | |
|             if (sid.Equals("신규") || sid.isEmpty())
 | |
|             {
 | |
|                 Util.MsgI($"신규SID는 검사를 진행하지 않습니다");
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             if (sid.Length != 9)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("검색 할 SID를 입력하세요");
 | |
|                 tbSID.Focus();
 | |
|                 tbSID.SelectAll();
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             var dt = Amkor.RestfulService.SPMSIDSearch(sid);
 | |
|             if (dt.Complete)
 | |
|             {
 | |
|                 var f = new FCM0000.fSIDListSelect(sid, dt.Result);
 | |
|                 if (f.ShowDialog() == DialogResult.OK)
 | |
|                 {
 | |
|                     dr.chk1 = true;
 | |
|                     this.sidchk1 = sid;
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     Util.MsgE("목록표시 창에서 '확인' 버튼을 눌러야 SID검색이 완료됩니다.");
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 Util.MsgI("SPM/NR 에서 검색된 정보가 없습니다\n저장이 가능 합니다");
 | |
|                 this.sidchk1 = sid;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void button7_Click_1(object sender, EventArgs e)
 | |
|         {
 | |
|             var datapath = FCOMMON.DBM.getCodeSvalue("55", "02");
 | |
|             if (datapath.isEmpty())
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("견적서 기본폴더 공용코드 55-02 값을 입력하세요");
 | |
|                 return;
 | |
|             }
 | |
|             string path = System.IO.Path.Combine(datapath, DateTime.Now.Year.ToString("0000") + "년");// "\\\\k4fs3201n\\ee1t$\\1. 장비기술1파트\\24_Project & Overhaul 예산 사용 실적\\구매 견적서\\" + DateTime.Now.Year.ToString("0000") + "년";
 | |
|             if (System.IO.Directory.Exists(path) == false)
 | |
|                 FCOMMON.Util.RunExplorer(datapath);
 | |
|             else
 | |
|                 FCOMMON.Util.RunExplorer(path);
 | |
|         }
 | |
| 
 | |
|         private void cmbCurrency_SelectedIndexChanged(object sender, EventArgs e)
 | |
|         {
 | |
| 
 | |
|             if (cmbCurrency.SelectedIndex >= 0)
 | |
|             {
 | |
|                 var val = cmbCurrency.SelectedValue.ToString();
 | |
|                 var dt = cmbCurrency.DataSource as DataTable;
 | |
|                 var v = dt.AsEnumerable().Where(t => t.Field<String>("Value") == val).FirstOrDefault();
 | |
|                 if (v != null)
 | |
|                 {
 | |
|                     var price = v.Field<float>("FValue");
 | |
|                     lbcurrentwon.Text = $"환율:{price}원";
 | |
|                     lbcurrentwon.Tag = price;
 | |
|                     //if (binit)
 | |
|                     //{
 | |
| 
 | |
|                     //    if (decimal.TryParse(tbPumPriceD.Text,out decimal priced))
 | |
|                     //    {
 | |
|                     //        if (priced > 0)
 | |
|                     //            dr.pumamt = priced * (decimal)price;
 | |
|                     //    }
 | |
| 
 | |
| 
 | |
|                     //}
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     lbcurrentwon.Text = $"환율이 입력되지 않았습니다";
 | |
|                     lbcurrentwon.Tag = 0;
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 lbcurrentwon.Text = "통화기호를 선택하세요";
 | |
|                 lbcurrentwon.Tag = 0;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void tbPO_Validated(object sender, EventArgs e)
 | |
|         {
 | |
|             var txt = tbPO.Text.Trim();
 | |
|             if (txt.Length > 1)
 | |
|             {
 | |
|                 if (cmbState.Text == "PR")
 | |
|                 {
 | |
|                     //if (cmbState.Items.Contains("PO"))
 | |
|                     cmbState.Text = "PO";
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | 
