190806 chi 품목정보에서 카테고리 없는 자료도 보이게 함
품목정보 정렬 기능 추가 190731 로그기록화면(beta)추가
This commit is contained in:
314
SubProject/FCM0000/Inventory/finventoryAdd.cs
Normal file
314
SubProject/FCM0000/Inventory/finventoryAdd.cs
Normal file
@@ -0,0 +1,314 @@
|
||||
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 FCM0000
|
||||
{
|
||||
public partial class finventoryAdd : Form
|
||||
{
|
||||
BindingSource bsManu;
|
||||
BindingSource bsModel;
|
||||
DSInventory.vInventoryRow dr;
|
||||
public Boolean repeatAdd = false;
|
||||
|
||||
public finventoryAdd(DSInventory.vInventoryRow 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();
|
||||
};
|
||||
this.tbPumName.Leave += tbPumName_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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void __Load(object sender, EventArgs e)
|
||||
{
|
||||
//담당자목록
|
||||
var userList = FCOMMON.DBM.getUserList();//.getGroupList("name", "Users", "[level] > 0 and [level] < 10");
|
||||
foreach (var user in userList)
|
||||
{
|
||||
this.cmbRequest.Items.Add(string.Format("[{0}] {1}",user.Key,user.Value));
|
||||
}
|
||||
|
||||
//사현재사용자의 데이터를 찾는다.
|
||||
if (cmbRequest.Items.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < cmbRequest.Items.Count; i++)
|
||||
{
|
||||
if (cmbRequest.Items[i].ToString().StartsWith("[" + dr.uid + "]"))
|
||||
{
|
||||
cmbRequest.SelectedIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else cmbRequest.Text = dr.uid;
|
||||
|
||||
|
||||
///입력된 데이터를 적용한다.
|
||||
dtPdate.Value = DateTime.Parse(dr.pdate);
|
||||
dtPdate.Value = DateTime.Parse(dr.pdate);
|
||||
// cmbRequest.Text = dr.userName;
|
||||
tbSID.Text = dr.sid;
|
||||
tbSID.Tag = tbSID.Text;
|
||||
tbPumIDX.Text = dr.item.ToString();
|
||||
tbPumName.Text = dr.itemName;
|
||||
tbPumName.Tag = tbPumName.Text;
|
||||
tbPumModel.Text = dr.itemModel;
|
||||
tbPumQty.Text = dr.dr_qty.ToString("N0");
|
||||
if (dr.dr_qty == 0 || dr.dr_amt == 0) tbPumPrice.Text = "0";
|
||||
else tbPumPrice.Text = string.Format("{0}",dr.dr_amt / dr.dr_qty);
|
||||
tbPumAmt.Text = dr.dr_amt.ToString("N0");
|
||||
|
||||
tbSN.Text = dr.serial;
|
||||
tbPlace.Text = dr.place;
|
||||
tbProject.Text = dr.projectName;
|
||||
tbProject.Tag = tbProject.Text;
|
||||
tbProjectIndex.Text = dr.project.ToString();
|
||||
|
||||
cmbState.Text = dr.invtype; //입고/출고/정정
|
||||
tbBigo.Text = dr.memo;
|
||||
|
||||
this.Show();
|
||||
Application.DoEvents();
|
||||
tbPumName.Focus();
|
||||
}
|
||||
|
||||
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":
|
||||
tbSID.Focus();
|
||||
break;
|
||||
case "tbpumname":
|
||||
Lov_Item(search, false);
|
||||
break;
|
||||
case "tbproject":
|
||||
Lov_Project(search, false);
|
||||
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)
|
||||
{
|
||||
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.tbPumModel.Enabled = false;
|
||||
if (tbSID.Text != "") tbSID.Enabled = false;
|
||||
else tbSID.Enabled = true;
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
|
||||
private Boolean saveData()
|
||||
{
|
||||
this.Validate();
|
||||
|
||||
tbSID.Text = sidTrim(tbSID.Text);
|
||||
|
||||
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(tbPumIDX.Text == "-1")
|
||||
{
|
||||
var newidx = FCOMMON.DBM.addItem(tbPumName.Text, tbSID.Text, tbPumModel.Text.Trim(), decimal.Parse(tbPumPrice.Text), "", -1, 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);
|
||||
}
|
||||
|
||||
dr.itemName = tbPumName.Text;
|
||||
dr.itemModel = tbPumModel.Text;
|
||||
dr.item = int.Parse( tbPumIDX.Text );
|
||||
dr.place = tbPlace.Text;
|
||||
dr.serial = tbSN.Text;
|
||||
if (tbPumQty.Text.isEmpty()) tbPumQty.Text = "0";
|
||||
if (tbPumPrice.Text.isEmpty()) tbPumPrice.Text = "0";
|
||||
dr.dr_qty = int.Parse(tbPumQty.Text);
|
||||
dr.dr_amt = dr.dr_qty * int.Parse(tbPumPrice.Text);
|
||||
if (tbPumIDX.Text == "" || tbPumIDX.Text == "-1") dr.SetitemNull();
|
||||
else dr.item = int.Parse(tbPumIDX.Text);
|
||||
dr.sid = tbSID.Text.Trim();
|
||||
dr.pdate = this.dtPdate.Value.ToShortDateString();
|
||||
dr.gcode = FCOMMON.info.Login.gcode;
|
||||
if (cmbRequest.Text.IndexOf("]") != -1)
|
||||
{
|
||||
dr.uid = cmbRequest.Text.Substring(1, cmbRequest.Text.IndexOf("]") - 1);
|
||||
dr.userName = cmbRequest.Text.Substring(cmbRequest.Text.IndexOf("]") + 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
dr.uid = cmbRequest.Text;
|
||||
dr.userName = string.Empty;
|
||||
}
|
||||
dr.sid = tbSID.Text;
|
||||
dr.projectName = tbProject.Text;
|
||||
if (tbProjectIndex.Text == "") dr.SetprojectNull();
|
||||
else dr.project = int.Parse(tbProjectIndex.Text);
|
||||
dr.invtype = cmbState.Text.Trim();
|
||||
dr.memo = tbBigo.Text.Trim();
|
||||
if(cmbState.Text == "입고")
|
||||
{
|
||||
if (dr.dr_qty < 0) dr.dr_qty *= -1;
|
||||
if (dr.dr_amt < 0) dr.dr_amt *= -1;
|
||||
} else if(cmbState.Text =="출고")
|
||||
{
|
||||
if (dr.dr_qty > 0) dr.dr_qty *= -1;
|
||||
if (dr.dr_amt > 0) dr.dr_amt *= -1;
|
||||
}
|
||||
dr.EndEdit();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!saveData()) return;
|
||||
DialogResult = System.Windows.Forms.DialogResult.OK;
|
||||
}
|
||||
|
||||
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
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 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 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user