| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- using System;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using UAS_MES.DataOperate;
- using UAS_MES.Entity;
- using UAS_MES.PublicMethod;
- namespace UAS_MES.Make
- {
- public partial class Make_PositionStock : Form
- {
- AutoSizeFormClass asc = new AutoSizeFormClass();
- DataHelper dh;
- DataTable dt;
- LogStringBuilder sql = new LogStringBuilder();
- DataTable Dbfind;
- string ma_id;
- string craftcode_condition = "";
- public Make_PositionStock()
- {
- InitializeComponent();
- }
- private void 岗位备料_Load(object sender, EventArgs e)
- {
- asc.controllInitializeSize(this);
- ma_code.TableName = "make left join product on ma_prodcode=pr_code ";
- ma_code.SelectField = "ma_code # 工单号,ma_prodcode # 产品编号,ma_craftcode # 工艺路线,pr_detail # 产品名称";
- ma_code.FormName = Name;
- ma_code.DBTitle = "工单查询";
- ma_code.SetValueField = new string[] { "ma_code", "ma_prodcode", "pr_detail", "ma_craftcode" };
- ma_code.Condition = "ma_statuscode='STARTED'";
- ma_code.DbChange += Ma_code_DbChange;
- sc_stepcode.Text = User.CurrentStepCode;
- ma_code.SetLockCheckBox(Lock);
- Lock.GetMakeCodeCtl(ma_code);
- dh = new DataHelper();
- }
- private void Ma_code_DbChange(object sender, EventArgs e)
- {
- Dbfind = ma_code.ReturnData;
- BaseUtil.SetFormValue(this.Controls, Dbfind);
- FillDataGridView();
- }
- private void 岗位备料_SizeChanged(object sender, EventArgs e)
- {
- asc.controlAutoSize(this);
- }
- private void Clean_Click(object sender, EventArgs e)
- {
- OperateResult.Clear();
- }
- //物料批号Enter事件
- private void pr_batchnum_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- {
- if (pr_batchnum.Text != "")
- {
- if (ma_code.Text != "")
- {
- sql.Clear();
- sql.Append("select cr_code from craft left join craftdetail on cd_crid=cr_id where cr_code in (" + craftcode_condition + ") ");
- sql.Append("and cr_prodcode='" + ma_prodcode.Text + "' and cr_statuscode='AUDITED' and cd_stepcode='" + User.CurrentStepCode + "'");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows.Count > 0)
- {
- //输入的是条码号的时候
- dt = (DataTable)dh.ExecuteSql("select nvl(bar_remain,0) bar_remain,bar_prodcode from barcode inner join product on pr_code=bar_prodcode where bar_code ='" + pr_batchnum.Text + "'", "select");
- if (dt.Rows.Count > 0)
- {
- string bar_remain = dt.Rows[0]["bar_remain"].ToString();
- string bar_prodcode = dt.Rows[0]["bar_prodcode"].ToString();
- sql.Clear();
- sql.Append("select sp_id,sp_oneuseqty,sp_soncode,sp_prefix from stepbom left join stepproduct on sp_sbid=sb_id ");
- sql.Append("where sb_craftcode='" + ma_craftcode.Text + "' and sb_prodcode='" + ma_prodcode.Text + "' and ");
- sql.Append("sb_bomversion='" + ma_bomversion.Text + "' and sp_stepcode='" + User.CurrentStepCode + "' and sp_soncode ='" + bar_prodcode + "' and sp_tracekind=2 ");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows.Count > 0)
- {
- InsertMakeSourceStock(dt, int.Parse(bar_remain));
- }
- else OperateResult.AppendText(">>条码号" + pr_batchnum.Text + "对应的物料不是当前工单当前工序需要备的物料\n", Color.Red, pr_batchnum);
- }
- else
- {
- sql.Clear();
- sql.Append("select sp_id,sp_oneuseqty,sp_soncode,sp_prefix from stepbom left join stepproduct on sp_sbid=sb_id ");
- sql.Append("where sb_craftcode='" + ma_craftcode.Text + "' and sb_prodcode='" + ma_prodcode.Text + "' and ");
- sql.Append("sb_bomversion='" + ma_bomversion.Text + "' and sp_stepcode='" + User.CurrentStepCode + "' and sp_tracekind=2 ");
- sql.Append("and instr('" + pr_batchnum.Text + "',SP_SONCODE) > 0");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows.Count > 0)
- {
- InsertMakeSourceStock(dt, 0);
- }
- else
- {
- sql.Clear();
- sql.Append("select sp_id,sp_oneuseqty,sp_soncode,sp_prefix from stepbom left join stepproduct on sp_sbid=sb_id ");
- sql.Append("where sb_craftcode='" + ma_craftcode.Text + "' and sb_prodcode='" + ma_prodcode.Text + "' and ");
- sql.Append("sb_bomversion='" + ma_bomversion.Text + "' and sp_stepcode='" + User.CurrentStepCode + "' and sp_tracekind=2 ");
- sql.Append("and instr('" + pr_batchnum.Text + "',sp_prefix) > 0 and ((nvl(SP_LENGTH,0)>0 and sp_length ");
- sql.Append("= length('" + pr_batchnum.Text + "')) or nvl(SP_LENGTH,0)=0)");
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- if (dt.Rows.Count > 0)
- {
- InsertMakeSourceStock(dt, 0);
- }
- else OperateResult.AppendText(">>条码号" + pr_batchnum.Text + "对应的物料不是当前工单当前工序需要备的物料\n", Color.Red, pr_batchnum);
- }
- }
- }
- else OperateResult.AppendText(">>当前岗位资源工序不在工单对应的途程中\n", Color.Red);
- }
- else OperateResult.AppendText(">>工单号不能为空\n", Color.Red, pr_batchnum);
- }
- else OperateResult.AppendText(">>物料批号不允许为空\n", Color.Red);
- }
- }
- private void InsertMakeSourceStock(DataTable dt, int Barremain)
- {
- string sp_oneuseqty = dt.Rows[0]["sp_oneuseqty"].ToString();
- string sp_soncode = dt.Rows[0]["sp_soncode"].ToString();
- string sp_prefix = dt.Rows[0]["sp_prefix"].ToString();
- sql.Clear();
- sql.Append("insert into makesourcestock (mss_id,mss_makecode,mss_linecode ,mss_craftcode,");
- sql.Append("mss_stepcode,mss_barcode,mss_fprodcode,mss_indate,mss_inman,mss_qty,");
- sql.Append("mss_remain,mss_baseqty,mss_prodcode,mss_maid,mss_sourcecode) values(makesourcestock_seq.nextval,'" + ma_code.Text + "','" + User.UserLineCode + "',");
- sql.Append("'" + ma_craftcode.Text + "','" + sc_stepcode.Text + "','" + pr_batchnum.Text + "','" + sp_soncode + "',");
- sql.Append("sysdate,'" + User.UserCode + "','" + Barremain + "','" + Barremain + "','" + sp_oneuseqty + "','" + sp_soncode + "','" + ma_id + "','" + User.UserSourceCode + "')");
- dh.ExecuteSql(sql.GetString(), "insert");
- dh.UpdateByCondition("barcode", "bar_place='" + ma_code.Text + "'", "bar_code='" + pr_batchnum.Text + "'");
- //数据插入成功后加载Grid的数据
- FillDataGridView();
- OperateResult.AppendText(">>条码号" + pr_batchnum.Text + "备料成功\n", Color.Green, pr_batchnum);
- }
- //加载Grid数据
- private void FillDataGridView()
- {
- sql.Clear();
- sql.Append("select nvl(mss_id,0) mss_id,sp_soncode,mss_prodcode,sp_oneuseqty,mss_barcode,nvl(mss_qty,0) mss_qty ,nvl(mss_remain,0)mss_remain,");
- sql.Append("pr_detail,nvl(mss_useqty,0) mss_useqty from stepbom left join stepproduct on sp_sbid=sb_id left join product on ");
- sql.Append("pr_code=sp_mothercode left join makesourcestock on mss_makecode='" + ma_code.Text + "' and mss_craftcode=sb_craftcode ");
- sql.Append("and mss_stepcode=sp_stepcode and sp_soncode=mss_prodcode where sb_prodcode='" + ma_prodcode.Text + "' and sb_craftcode='" + ma_craftcode.Text + "' ");
- sql.Append("and sp_stepcode='" + User.CurrentStepCode + "' and sp_tracekind=2 order by sp_soncode");
- DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
- BaseUtil.FillDgvWithDataTable(BatchProductDGV, dt);
- }
- private void Confirm_Click(object sender, EventArgs e)
- {
- pr_batchnum_KeyDown(sender, new KeyEventArgs(Keys.Enter));
- }
- private void Screen_Click(object sender, EventArgs e)
- {
- FillDataGridView();
- }
- private void ma_prodcode_TextChanged(object sender, EventArgs e)
- {
- if (ma_code.Text != "")
- {
- dt = (DataTable)dh.ExecuteSql("select ma_id,ma_craftcode,ma_statuscode,ma_code,ma_prodcode,pr_spec,pr_detail,ma_bomversion from make left join product on ma_prodcode=pr_code where ma_code='" + ma_code.Text + "'", "select");
- if (dt.Rows.Count > 0)
- {
- ma_id = dt.Rows[0]["ma_id"].ToString();
- string craftcode = dt.Rows[0]["ma_craftcode"].ToString();
- BaseUtil.SetFormValue(this.Controls, dt);
- }
- else OperateResult.AppendText(">>工单号不存在\n", Color.Red);
- }
- else OperateResult.AppendText(">>工单号不允许为空\n", Color.Red);
- }
- private void BatchProduct_CellContentClick(object sender, DataGridViewCellEventArgs e)
- {
- if (BatchProductDGV.Columns[e.ColumnIndex].Name == "DeleteRow")
- {
- if (e.RowIndex >= 0)
- {
- string id = BatchProductDGV.Rows[e.RowIndex].Cells["mss_id"].Value.ToString();
- if (id != "0")
- {
- BatchProductDGV.Rows.RemoveAt(e.RowIndex);
- dh.ExecuteSql("delete from makesourcestock where mss_id='" + id + "'", "delete");
- OperateResult.AppendText(">>删除成功\n");
- }
- }
- }
- }
- private void ma_code_UserControlTextChanged(object sender, EventArgs e)
- {
- if (ma_code.Text.Length > 4)
- {
- string ErrMessage = "";
- if (LogicHandler.CheckMakeStatus(ma_code.Text, out ErrMessage))
- {
- craftcode_condition = "";
- DataTable dt = (DataTable)dh.ExecuteSql("select ma_craftcode from make where ma_code='" + ma_code.Text + "'", "select");
- string craftcode = "";
- if (dt.Rows.Count > 0)
- {
- craftcode = dt.Rows[0]["ma_craftcode"].ToString();
- }
- sql.Clear();
- sql.Append("select distinct ms_craftcode ma_craftcode from makeserial left join craft on cr_code=ms_craftcode ");
- sql.Append("where ms_makecode='" + ma_code.Text + "' and ms_craftcode<>'" + craftcode + "'");
- dt.Merge((DataTable)dh.ExecuteSql(sql.GetString(), "select"));
- ma_craftcode.DisplayMember = "ma_craftcode";
- ma_craftcode.ValueMember = "ma_craftcode";
- ma_craftcode.DataSource = dt;
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- if (dt.Rows.Count - 1 == i)
- craftcode_condition += "'" + dt.Rows[i]["ma_craftcode"].ToString() + "'";
- else
- craftcode_condition += "'" + dt.Rows[i]["ma_craftcode"].ToString() + "',";
- }
- }
- }
- }
- private void BatchProductDGV_CellEndEdit(object sender, DataGridViewCellEventArgs e)
- {
- if (BatchProductDGV.Columns[e.ColumnIndex].Name == "mss_qty")
- {
- string id = BatchProductDGV.Rows[e.RowIndex].Cells["mss_id"].Value.ToString();
- string qty = "0";
- if (id != "0")
- {
- try
- {
- if (int.Parse(BatchProductDGV.Rows[e.RowIndex].Cells["mss_qty"].Value.ToString()) > 0)
- {
- qty = BatchProductDGV.Rows[e.RowIndex].Cells["mss_qty"].Value.ToString();
- }
- else
- {
- OperateResult.AppendText(">>数量必须大于0\n", Color.Red);
- return;
- }
- }
- catch (Exception)
- {
- OperateResult.AppendText(">>数量必须大于0\n", Color.Red);
- return;
- }
- dh.UpdateByCondition("makesourcestock", "mss_qty='" + qty + "'", "mss_id='" + id + "'");
- BatchProductDGV.Rows[e.RowIndex].Cells["mss_remain"].Value = int.Parse(BatchProductDGV.Rows[e.RowIndex].Cells["mss_qty"].Value.ToString()) - int.Parse(BatchProductDGV.Rows[e.RowIndex].Cells["mss_useqty"].Value.ToString());
- dh.UpdateByCondition("makesourcestock", "mss_remain=mss_qty-nvl(mss_useqty,0)", "mss_id='" + id + "'");
- }
- }
- }
- private void BatchProductDGV_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
- {
- if (BatchProductDGV.Columns[e.ColumnIndex].Name == "DeleteRow")
- {
- if (BatchProductDGV.Rows[e.RowIndex].Cells["mss_id"].Value.ToString() == "0")
- e.Value = Properties.Resources.WhiteImage;
- else
- e.Value = Properties.Resources.bindingNavigatorDeleteItem_Image;
- }
- }
- }
- }
|