This commit is contained in:
chikyun.kim
2019-07-26 17:28:19 +09:00
parent ae209e00af
commit 11d7c7f704
58 changed files with 3360 additions and 6285 deletions

View File

@@ -27,6 +27,9 @@ namespace FEQ0000
{
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)
{
@@ -36,13 +39,18 @@ namespace FEQ0000
}
}
}
Boolean advInput = false;
private void __Load(object sender, EventArgs e)
{
// TODO: 이 코드는 데이터를 'dsPurchase.Purchase' 테이블에 로드합니다. 필요한 경우 이 코드를 이동하거나 제거할 수 있습니다.
//this.purchaseTableAdapter.Fill(this.dsPurchase.Purchase);
// this.Show();
// Application.DoEvents();
advInput = FCOMMON.Util.getBit(FCOMMON.info.Login.gpermission, (int)FCOMMON.eGroupPermission.purchase_adv);
//상태
var stateList = FCOMMON.DBM.getCodeTable("04");
this.cmbState.DisplayMember = "Value";
@@ -83,11 +91,11 @@ namespace FEQ0000
//this.cbProcess.DataSource = new BindingSource(procList, "");
//담당자목록
var userList = FCOMMON.DBM.getGroupList("name", "Users", "[level] > 0 and [level] < 10");
var userList = FCOMMON.DBM.getUserList(); //.getGroupList("name", "Users", "[level] > 0 and [level] < 10");
foreach (var user in userList)
{
this.cmbReceive.Items.Add(user);
this.cmbRequest.Items.Add(user);
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);
@@ -113,8 +121,35 @@ namespace FEQ0000
///입력된 데이터를 적용한다.
dtPdate.Value = DateTime.Parse(dr.pdate);
cmbRequest.Text = dr.request;
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 > 0)
{
for (int i = 0; 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;
if (dr.manuproc == "") cbManuProc.SelectedIndex = -1;
@@ -139,6 +174,8 @@ namespace FEQ0000
tbPumName.Text = dr.pumname;
tbPumName.Tag = tbPumName.Text;
tbPumModel.Text = dr.pumscale;
tbPumQty.Text = dr.pumqty.ToString();
tbPumStock.Text = "--";
@@ -147,13 +184,17 @@ namespace FEQ0000
tbPumPrice.Text = dr.pumprice.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;
cmbReceive.Text = dr.receive;
if (dr.process == "") cbProcess.SelectedIndex = -1;
else cbProcess.Text = dr.process;
@@ -178,7 +219,7 @@ namespace FEQ0000
this.dtInDate.Enabled = chkInDate.Checked;
//일반사용자의경우에는 상태를 변경하지 못한다.
int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAutoType.purchase));
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)
@@ -189,7 +230,7 @@ namespace FEQ0000
//데이터가 편집 상태인데 요청자가 내가 아닌경우에도 편집 불가
Boolean enb = true;
if (dr.RowState == DataRowState.Unchanged && dr.request != FCOMMON.info.Login.nameK)
if (dr.RowState == DataRowState.Unchanged && dr.request != FCOMMON.info.Login.no)
enb = false;
if (tbSC.Text.Trim() != "") enb = false;
@@ -202,9 +243,13 @@ namespace FEQ0000
}
}
if(advInput==false)
{
this.Width = 528;
}
this.Show();
Application.DoEvents();
tbSID.Focus();
tbPumName.Focus();
//이미지를 불러온다.
if (dr.RowState != DataRowState.Detached && dr.RowState != DataRowState.Deleted && dr.RowState != DataRowState.Added)
@@ -219,6 +264,8 @@ namespace FEQ0000
}
}
}
string sidTrim(string sid)
@@ -243,145 +290,15 @@ namespace FEQ0000
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();
Lov_Item(search, false);
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();
Lov_Project(search, false);
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();
Lov_Supply(search, false);
break;
default:
SendKeys.Send("{TAB}");
@@ -389,8 +306,104 @@ namespace FEQ0000
}
}
}
private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Lov_Item("",true);
}
void Lov_Item( string search,Boolean allowAll)
{
if (search == "" && allowAll==false)
{
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)
{
//인덱스값이 다르면 모델 및 가격을 업데이트 한다.
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.tbSID.Text = f.SID;
this.tbSID.Tag = f.SID;
this.tbPumUnit.Text = f.itemUnit; //181214
this.tbPumModel.Enabled = false;
this.tbPumUnit.Enabled = false;
if (tbSID.Text != "") tbSID.Enabled = false;
else tbSID.Enabled = true;
//제품을 찾앗다면 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();
}
//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.tbPumQty.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)
{
this.tbProject.Text = f.Title;
this.tbProject.Tag = f.Title;
this.tbProjectIndex.Text = f.Index.ToString();
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();
this.tbProject.Focus();
}
else
{
tbSupply.Focus();
tbSupply.SelectAll();
}
}
else tbProject.Focus();
}
private bool saveData()
{
this.Validate();
@@ -423,7 +436,7 @@ namespace FEQ0000
tbPumQty.Focus();
return false;
}
if (tbProject.Text == "")
if ( advInput==true && tbProject.Text == "")
{
FCOMMON.Util.MsgE("프로젝트 정보를 입력하세요.");
tbProject.Focus();
@@ -433,7 +446,7 @@ namespace FEQ0000
var overtime = DateTime.Now - DateTime.Parse("2019-01-09 00:00:00");
if (overtime.TotalSeconds > 0)
{
if (this.cbProcess.Text.Trim()=="")
if (advInput == true && this.cbProcess.Text.Trim() == "")
{
if (FCOMMON.info.Login.level >= 5)
{
@@ -458,7 +471,7 @@ namespace FEQ0000
return false;
}
}
if (cbManuProc.Text.Trim() == "")
if (advInput == true && cbManuProc.Text.Trim() == "")
{
if (FCOMMON.info.Login.level >= 5)
{
@@ -483,7 +496,7 @@ namespace FEQ0000
return false;
}
}
if (this.cbEQManu.Text.Trim() == "")
if (advInput == true && this.cbEQManu.Text.Trim() == "")
{
if (FCOMMON.info.Login.level >= 5)
{
@@ -530,7 +543,17 @@ namespace FEQ0000
}
}
//품목정보에 없는 데이터이므로 자료를 추가한다.
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)
@@ -551,10 +574,7 @@ namespace FEQ0000
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;
dr.sid = tbSID.Text.Trim();
if (chkExp.Checked) dr.edate = this.dtExpDate.Value.ToShortDateString();
else dr.SetedateNull();
@@ -562,8 +582,12 @@ namespace FEQ0000
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.request = cmbRequest.Text;
dr.sid = tbSID.Text;
dr.asset = cbEQModel.Text;
@@ -587,7 +611,12 @@ namespace FEQ0000
else dr.projectidx = int.Parse(tbProjectIndex.Text);
dr.state = cmbState.Text.Trim();
dr.receive = cmbReceive.Text;
if (cmbReceive.Text.IndexOf("]") != -1)
dr.receive = cmbReceive.Text.Substring(1, cmbReceive.Text.IndexOf("]") - 1);
else
dr.receive = cmbReceive.Text.Trim();
dr.process = cbProcess.Text;
dr.sc = tbSC.Text;
dr.po = tbPO.Text;
@@ -646,44 +675,44 @@ namespace FEQ0000
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;
//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;
}
//}
//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;
//}
}
@@ -770,5 +799,45 @@ namespace FEQ0000
else cbEQModel.SelectedIndex = -1;
}
private void linkLabel6_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
//lov 공급처
Lov_Supply("", true);
}
private void linkLabel7_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
//lov 프로젝트
Lov_Project("", true);
}
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;
}
}
}
}