776 lines
31 KiB
C#
776 lines
31 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.Windows.Forms;
|
|
|
|
namespace FEQ0000
|
|
{
|
|
public partial class fPurchase_Add : Form
|
|
{
|
|
BindingSource bsManu;
|
|
BindingSource bsModel;
|
|
dsPurchase.PurchaseRow dr;
|
|
public Boolean repeatAdd = false;
|
|
public fPurchase_Add(dsPurchase.PurchaseRow dr_)
|
|
{
|
|
InitializeComponent();
|
|
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();
|
|
};
|
|
|
|
foreach (Control ctl in groupBox1.Controls)
|
|
{
|
|
if (ctl.GetType() == typeof(TextBox) || ctl.GetType() == typeof(ComboBox))
|
|
{
|
|
ctl.KeyDown += ctl_KeyDown;
|
|
}
|
|
}
|
|
}
|
|
private void __Load(object sender, EventArgs e)
|
|
{
|
|
// TODO: 이 코드는 데이터를 'dsPurchase.Purchase' 테이블에 로드합니다. 필요한 경우 이 코드를 이동하거나 제거할 수 있습니다.
|
|
this.purchaseTableAdapter.Fill(this.dsPurchase.Purchase);
|
|
// this.Show();
|
|
// Application.DoEvents();
|
|
|
|
//statelist
|
|
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, "");
|
|
|
|
//juserlist
|
|
var userList = FCOMMON.DBM.getGroupList("name", "Users", "[level] > 0 and [level] < 10");
|
|
foreach (var user in userList)
|
|
{
|
|
this.cmbReceive.Items.Add(user);
|
|
this.cmbRequest.Items.Add(user);
|
|
}
|
|
|
|
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);
|
|
cmbRequest.Text = dr.request;
|
|
tbSID.Text = dr.sid;
|
|
|
|
|
|
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;
|
|
tbPumModel.Text = dr.pumscale;
|
|
tbPumQty.Text = dr.pumqty.ToString();
|
|
tbPumStock.Text = "--";
|
|
if (dr.IspumidxNull()) tbPumIDX.Text = "-1";
|
|
else tbPumIDX.Text = dr.pumidx.ToString();
|
|
tbPumPrice.Text = dr.pumprice.ToString();
|
|
tbPumAmt.Text = dr.pumamt.ToString("N0"); //천단위 구분기호 추가 181222
|
|
tbPumUnit.Text = dr.pumunit;
|
|
tbSupply.Text = dr.supply;
|
|
tbSupplyIndex.Text = dr.supplyidx.ToString();
|
|
tbProject.Text = dr.project;
|
|
tbProjectIndex.Text = dr.projectidx.ToString();
|
|
|
|
cmbState.Text = dr.state;
|
|
cmbReceive.Text = dr.receive;
|
|
|
|
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;
|
|
dtInDate.Text = dr.indate;
|
|
dtExpDate.Text = dr.edate;
|
|
|
|
//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.eAutoType.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.nameK)
|
|
enb = false;
|
|
if (tbSC.Text.Trim() != "") enb = false;
|
|
|
|
if (enb == false) //일반 사용자는 쇼핑, 카드 잇으면 수정 불가
|
|
{
|
|
btSave.Enabled = false;
|
|
btSaveAdd.Enabled = false;
|
|
groupBox1.Enabled = false;
|
|
groupBox2.Enabled = false;
|
|
}
|
|
}
|
|
|
|
this.Show();
|
|
Application.DoEvents();
|
|
tbSID.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;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
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 "tbsid":
|
|
if (search != "" && search != "신규")
|
|
{
|
|
//if (search.Length == 9 && search.IndexOf('-') == -1)
|
|
//{
|
|
// search = string.Format("{0}-{1}-{2}",
|
|
// search.Substring(0, 3),
|
|
// search.Substring(3, 3),
|
|
// search.Substring(6, 3));
|
|
// tbSID.Text = search;
|
|
//}
|
|
var f = new FCM0000.fLovItem("%" + sidTrim(search) + "%");
|
|
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
|
{
|
|
tbSID.Text = sidTrim(f.SID);
|
|
tbPumIDX.Text = f.item.ToString();
|
|
tbPumName.Text = f.itemName;
|
|
tbPumModel.Text = f.itemmodel;
|
|
tbPumPrice.Text = f.itemprice.ToString();
|
|
tbPumQty.Text = "1";
|
|
tbPumUnit.Text = f.itemUnit; //181214
|
|
//pumamtTextBox.Text = tbPumPrice.Text;\
|
|
//이 제품의 마지막 구매기록을 찾아서 업데이트 해준다.
|
|
var pcInfo = FCOMMON.DBM.getLastPurchaseInfo(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();
|
|
}
|
|
|
|
if (tbPumIDX.Text != "")
|
|
{
|
|
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();
|
|
}
|
|
|
|
FCOMMON.Util.MsgI("SID를 선택하면 품명&모델을 편집할 수 없습니다.\n\n해당 정보는 '품목' 정보에서 수정해야 합니다.");
|
|
|
|
//이름을 선택되었으므로 모델을 선택한다.
|
|
tbPumName.Enabled = false;
|
|
tbPumModel.Enabled = false;
|
|
tbPumQty.Focus();
|
|
this.Invalidate();
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
tbPumName.Enabled = true;
|
|
tbPumModel.Enabled = true;
|
|
tbPumName.Focus();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
tbPumName.Enabled = true;
|
|
tbPumModel.Enabled = true;
|
|
tbPumName.Focus();
|
|
}
|
|
|
|
break;
|
|
case "tbpumname":
|
|
if (search != "")
|
|
{
|
|
var f = new FCM0000.fLovItem("%" + search + "%");
|
|
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
|
{
|
|
//인덱스값이 다르면 모델 및 가격을 업데이트 한다.
|
|
tbPumName.Text = f.itemName;
|
|
if (this.tbPumIDX.Text != f.item.ToString())
|
|
{
|
|
this.tbPumIDX.Text = f.item.ToString();
|
|
this.tbPumModel.Text = f.itemmodel;
|
|
this.tbPumPrice.Text = f.itemprice.ToString();
|
|
this.tbSID.Text = f.SID;
|
|
this.tbPumUnit.Text = f.itemUnit; //181214
|
|
|
|
//제품을 찾앗다면 suppy 등을 업데이트 해준다.
|
|
var pcInfo = FCOMMON.DBM.getLastPurchaseInfo(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();
|
|
}
|
|
}
|
|
if (tbPumIDX.Text != "")
|
|
{
|
|
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();
|
|
}
|
|
}
|
|
else this.tbPumIDX.Text = "-1";
|
|
}
|
|
tbPumModel.Focus();
|
|
break;
|
|
case "tbproject":
|
|
if (search != "")
|
|
{
|
|
FCM0000.fLovProject f = new FCM0000.fLovProject("%" + search + "%");
|
|
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
|
{
|
|
this.tbProject.Text = f.Title;
|
|
this.tbProjectIndex.Text = f.Index.ToString();
|
|
}
|
|
}
|
|
this.btSave.Focus();
|
|
break;
|
|
|
|
case "tbsupply":
|
|
if (search != "")
|
|
{
|
|
FCM0000.fLovSupply f = new FCM0000.fLovSupply(search);
|
|
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
|
{
|
|
tbSupply.Text = f.Title;
|
|
tbSupplyIndex.Text = f.Index.ToString();
|
|
this.tbProject.Focus();
|
|
|
|
}
|
|
}
|
|
tbProject.Focus();
|
|
break;
|
|
default:
|
|
SendKeys.Send("{TAB}");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
private bool saveData()
|
|
{
|
|
this.Validate();
|
|
|
|
tbSID.Text = sidTrim(tbSID.Text);
|
|
|
|
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 (tbPumQty.Text == "")
|
|
{
|
|
FCOMMON.Util.MsgE("수량을 입력하세요.");
|
|
tbPumQty.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;
|
|
}
|
|
}
|
|
|
|
//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 변경
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//수령을 했는데. 현재 상태가 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 (tbPumQty.Text.isEmpty()) tbPumQty.Text = "0";
|
|
if (tbPumPrice.Text.isEmpty()) tbPumPrice.Text = "0";
|
|
dr.pumqty = int.Parse(tbPumQty.Text);
|
|
dr.pumprice = decimal.Parse(tbPumPrice.Text);
|
|
dr.pumamt = dr.pumqty * dr.pumprice;
|
|
if (tbPumIDX.Text == "" || tbPumIDX.Text == "-1") dr.SetpumidxNull();
|
|
else dr.pumidx = int.Parse(tbPumIDX.Text);
|
|
|
|
var sid = this.tbSID.Text.Replace("-", "").Replace(" ", "").Replace("-", "").Trim();
|
|
//if (sid.Length == 9) sid = sid.Substring(0, 3) + "-" + sid.Substring(3, 3) + "-" + sid.Substring(6, 3);
|
|
dr.sid = sid;
|
|
|
|
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.request = cmbRequest.Text;
|
|
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;
|
|
|
|
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();
|
|
dr.receive = cmbReceive.Text;
|
|
dr.process = cbProcess.Text;
|
|
dr.sc = tbSC.Text;
|
|
dr.po = tbPO.Text;
|
|
dr.orderno = tbOrderNo.Text;
|
|
dr.bigo = tbBigo.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, pic);
|
|
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 strQty = this.tbPumQty.Text;
|
|
var strPrice = this.tbPumPrice.Text;
|
|
|
|
int qty = 0;
|
|
double price = 0;
|
|
if (strQty.IsNumeric()) qty = int.Parse(strQty);
|
|
if (strPrice.IsNumeric()) price = double.Parse(strPrice);
|
|
double amt = price * qty;
|
|
tbPumAmt.Text = amt.ToString("N0");
|
|
}
|
|
|
|
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
|
{
|
|
string path = "\\\\k4fs3201n\\ee1t$\\1. 장비기술1파트\\24_Project & Overhaul 예산 사용 실적\\구매 견적서\\" + DateTime.Now.Year.ToString("0000") + "년";
|
|
FCOMMON.Util.RunExplorer(path);
|
|
}
|
|
|
|
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
|
{
|
|
OpenFileDialog od = new OpenFileDialog();
|
|
if (od.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
|
|
var image = Image.FromFile(od.FileName);
|
|
var oimage = this.pictureBox1.Image;
|
|
this.pictureBox1.Image = image;
|
|
this.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
|
|
this.pictureBox1.Tag = "U";
|
|
if (oimage != null) oimage.Dispose();
|
|
}
|
|
|
|
private void imgpase_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
|
{
|
|
if (!Clipboard.ContainsImage())
|
|
{
|
|
FCOMMON.Util.MsgE("이미지를 먼저 클립보드에 복사 하세요.");
|
|
return;
|
|
}
|
|
|
|
var image = Clipboard.GetImage();
|
|
var oimage = this.pictureBox1.Image;
|
|
this.pictureBox1.Image = image;
|
|
this.pictureBox1.Tag = "U";
|
|
if (oimage != null) oimage.Dispose();
|
|
}
|
|
|
|
private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
|
{
|
|
FCOMMON.fWebCamera f = new FCOMMON.fWebCamera(FCOMMON.info.camIndex);
|
|
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
|
{
|
|
var bmp = f.bmp.Clone();
|
|
Application.DoEvents();
|
|
var oimag = this.pictureBox1.Image;
|
|
this.pictureBox1.Image = (Image)bmp;
|
|
if (oimag != null) oimag.Dispose();
|
|
}
|
|
}
|
|
|
|
private void cbEQManu_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
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;
|
|
}
|
|
|
|
}
|
|
}
|