205 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			205 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.ComponentModel;
 | |
| using System.Data;
 | |
| using System.Drawing;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using System.Threading.Tasks;
 | |
| using System.Windows.Forms;
 | |
| 
 | |
| namespace FEQ0000.Purchase
 | |
| {
 | |
|     public partial class fPurchaseCR_Ipgo : Form
 | |
|     {
 | |
|         int idx = -1;
 | |
|         string po = string.Empty;
 | |
|         public fPurchaseCR_Ipgo(int purchaseIdx,string po_)
 | |
|         {
 | |
|             InitializeComponent();
 | |
|             this.po = po_;
 | |
|             this.idx = purchaseIdx;
 | |
|             this.KeyPreview = true;
 | |
|             this.KeyDown += (s1, e1) =>
 | |
|             {
 | |
|                 if (e1.KeyCode == Keys.Escape) this.Close();
 | |
|             };
 | |
|         }
 | |
| 
 | |
|         string prestatus = "PO";
 | |
|         private void fPurchaseCR_Ipgo_Load(object sender, EventArgs e)
 | |
|         {
 | |
|             //담당자목록
 | |
|             var ta = new dsPurchaseTableAdapters.EETGW_PurchaseCRTableAdapter();
 | |
|             var dt = ta.GetByIdx(this.idx);
 | |
|             if (dt == null || dt.Any() == false)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("정보를 확인할 수 없습니다");
 | |
|                 this.btOK.Enabled = false;
 | |
|                 return;
 | |
|             }
 | |
|             var dr = dt.First();
 | |
|             prestatus = dr.state;
 | |
| 
 | |
|             tbPumname.Text = dr.pumname;
 | |
|             tbPumIdx.Text = dr.pumidx.ToString();
 | |
|             tbModel.Text = dr.pumscale;
 | |
|             tbUnit.Text = dr.pumunit;
 | |
|             tbQty.Text = dr.pumqty.ToString();
 | |
|             tbPriceO.Text = dr.pumprice.ToString();
 | |
|             tbInPrice.Text = dr.pumprice.ToString();
 | |
|             tbAmt.Text = (dr.pumqty * dr.pumprice).ToString();
 | |
|             tbRemarkO.Text = dr.bigo;
 | |
|             tbPO.Text = dr.po;
 | |
|             if (string.IsNullOrEmpty(tbPO.Text)) tbPO.Text = this.po;
 | |
|             tbSC.Text = dr.sc;
 | |
|             tbSCRCF.Text = dr.orderno;
 | |
|             tbSID.Text = dr.sid;
 | |
| 
 | |
|             //프로젝트정보 찾는다
 | |
|             var tap = new DSPrjTableAdapters.ProjectsTableAdapter();
 | |
|             var dtp = tap.GetData(dr.projectidx);
 | |
|             DSPrj.ProjectsRow drp;
 | |
|             if (dtp == null || dtp.Any() == false)
 | |
|             {
 | |
|                 drp = dtp.NewProjectsRow();
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 //프로젝트정보표시
 | |
|                 drp = dtp.First();
 | |
|             }
 | |
|             tbPrjName.Text = drp.name;
 | |
|             tbPrjAsset.Text = drp.asset;
 | |
|             tbPrjStatus.Text = drp.status;
 | |
|             tbPrjMemo.Text = drp.memo;
 | |
|             tbProjOrderNo.Text = drp.orderno;
 | |
|             tbPrjModel.Text = drp.model;
 | |
|             tbPrjSerial.Text = drp.serial;
 | |
|             tbPrjProcess.Text = drp.process;
 | |
|             tbPrjIdx.Text = drp.idx.ToString();
 | |
|             
 | |
| 
 | |
| 
 | |
|             var userList = FCOMMON.DBM.getUserList(); //.getGroupList("name", "Users", "[level] > 0 and [level] < 10");
 | |
|             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));
 | |
|             }
 | |
| 
 | |
| 
 | |
|             //기존에 설정된 정보가 있다면 그것을 쓴다
 | |
|             if (dr.receive.isEmpty() == false)
 | |
|             {
 | |
|                 cmbReceive.Text = $"[{dr.receive}] {dr.receiveName}";
 | |
|                 if (DateTime.TryParse(dr.indate, out DateTime dtin))
 | |
|                 {
 | |
|                     dtInDate.Value = dtin;
 | |
|                 }
 | |
|                 else dtInDate.Value = DateTime.Now;
 | |
|                 chkInDate.Checked = true;
 | |
|                 tbInQty.Text = dr.inqty.ToString();
 | |
|                 tbInRemark.Text = dr.inremark;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 //설정정보가 없다면 비활성화해준다
 | |
|                 //요청자의 정보를 쓴다
 | |
| 
 | |
|                 cmbReceive.Text = $"[{dr.request}] {dr.requestName}";// FCOMMON.DBM.GetcurrentUserNoName();//[dev] 개발자
 | |
|                 dtInDate.Value = DateTime.Now;
 | |
|                 chkInDate.Checked = false;
 | |
|                 tbInQty.Text = dr.pumqty.ToString();
 | |
|                  chkInDate_CheckedChanged(null, null);
 | |
|             }
 | |
| 
 | |
| 
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void btOK_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (chkInDate.Checked && cmbReceive.SelectedIndex < 0)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("수령인을 선택하세요");
 | |
|                 cmbReceive.Focus();
 | |
|                 return;
 | |
|             }
 | |
|             var ta = new dsPurchaseTableAdapters.EETGW_PurchaseCRTableAdapter();
 | |
|             var dr = ta.GetByIdx(this.idx).First();
 | |
|             if (chkInDate.Checked == false)
 | |
|             {
 | |
|                 dr.indate = string.Empty;
 | |
|                 dr.receive = string.Empty;
 | |
|                 //  dr.receiveName = string.Empty;
 | |
|                 dr.inqty = 0;
 | |
|                 dr.inremark = string.Empty;
 | |
|                 if (prestatus == "Received") dr.state = "---";
 | |
|                 else dr.state = prestatus;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 //단가확인
 | |
|                 var pricestr = tbInPrice.Text.Replace(",", "").Trim();
 | |
|                 if (decimal.TryParse(pricestr, out decimal price) == false)
 | |
|                 {
 | |
|                     FCOMMON.Util.MsgE("단가를 다시 입력하세요");
 | |
|                     tbInPrice.Focus();
 | |
|                     tbInPrice.SelectAll();
 | |
|                     return;
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     if (dr.pumprice != price)
 | |
|                     {
 | |
|                         dr.pumprice = price;
 | |
|                         dr.SetpumpriceDNull();
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 dr.indate = dtInDate.Value.ToShortDateString();
 | |
|                 dr.receive = cmbReceive.Text.Substring(1, cmbReceive.Text.IndexOf("]") - 1);
 | |
|                 // dr.receiveName = cmbReceive.Text.Substring(cmbReceive.Text.IndexOf("]") + 1).Trim();                
 | |
|                 if (int.TryParse(tbInQty.Text, out int qty) == false)
 | |
|                 {
 | |
|                     FCOMMON.Util.MsgE("수량을 확인하세요");
 | |
|                     tbInQty.Focus();
 | |
|                     tbInQty.SelectAll();
 | |
|                     return;
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     if (qty > int.Parse(tbQty.Text))
 | |
|                     {
 | |
|                         if (FCOMMON.Util.MsgQ("입고수량이 주문수량보다 많습니다 입력 할까요?") != DialogResult.Yes)
 | |
|                             return;
 | |
|                     }
 | |
|                     dr.inqty = qty;
 | |
|                 }
 | |
|                 dr.state = "Received";
 | |
|                 dr.inremark = tbInRemark.Text.Trim();
 | |
|             }
 | |
|             dr.windate = DateTime.Now;
 | |
|             dr.winuid = FCOMMON.info.Login.no;
 | |
|             dr.po = this.tbPO.Text.Trim();
 | |
|             dr.EndEdit();
 | |
|             var cnt = ta.Update(dr);
 | |
|             DialogResult = DialogResult.OK;
 | |
|         }
 | |
| 
 | |
|         private void chkInDate_CheckedChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             dtInDate.Enabled = chkInDate.Checked;
 | |
|             cmbReceive.Enabled = true;// chkInDate.Checked;
 | |
|             tbInQty.Enabled = chkInDate.Checked;
 | |
|             tbInPrice.Enabled = chkInDate.Checked;
 | |
|             tbInRemark.Enabled = chkInDate.Checked;
 | |
|             //if (chkInDate.Checked == false)
 | |
|             //    cmbReceive.SelectedIndex = -1;
 | |
|             //else cmbReceive.Text = $"[{dr.request}] {dr.requestName}";// FCOMMON.DBM.GetcurrentUserNoName();
 | |
| 
 | |
|         }
 | |
|     }
 | |
| }
 | 
