| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using com.hnshituo.pur.vo;
- using Core.Mes.Client.Comm.Control;
- using Core.Mes.Client.Comm.Tool;
- using CoreFS.CA06;
- using Infragistics.Win.UltraWinGrid;
- using Pur.Entity;
- using Pur.Entity.configureEntity;
- namespace Pur.require_plan
- {
- public partial class FrmPurInstockRequireChangePop : FrmPmsBase
- {
- public String strTips = "0";
- public String strInvId = "";//目标库存记录
- public String strpurLineId = "";//目标采购计划
- public double dbGdQty = 0;//挂单数量
- public string strGtype = "3";
- public FrmPurInstockRequireChangePop()
- {
- InitializeComponent();
- }
- public FrmPurInstockRequireChangePop(OpeBase Ob,String invId,String purLineId,double gdQty,string type)
- {
- InitializeComponent();
- this.strInvId = invId;
- this.strpurLineId = purLineId;
- this.dbGdQty = gdQty;
- this.ob = Ob;
- this.strGtype = type;
- if (strGtype == "4")
- {
- this.Text = "利库挂单确认";
- }
- dbGdNum_all.Text = gdQty.ToString();
- }
- private void FrmPurInstockRequireChangePop_Load(object sender, EventArgs e)
- {
- //设置
- GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], new string[] { "createQty", "createQtyWeight", "CHK" });
- GridHelper.SetExcludeColumnsActive(ultraGrid2.DisplayLayout.Bands[0], new string[] { "createQty", "CHK" });
- //初始化查询
- doQuery();
- }
- private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
- {
- switch (e.Tool.Key)
- {
- case "doQuery": // 刷新
- doQuery();
- break;
- case "doSure": // 确定
- doSure();
- break;
- }
- }
- /// <summary>
- /// 确定
- /// </summary>
- private void doSure()
- {
- ArrayList list = new ArrayList();//pos
- ArrayList list1 = new ArrayList();
- double sumInvQty = 0;
- //验证数据--验证编制量是否和挂单量相等
- foreach (UltraGridRow row in ultraGrid1.Rows)
- {
-
- if (Convert.ToBoolean(row.GetCellValue("CHK")) == true)
- {
- if (row.GetCellValue("itemUom").ToString().Trim() == "基吨")
- {
- double invQty_sig = 0;
- double.TryParse(row.GetCellValue("createQtyWeight").ToString().Trim(), out invQty_sig);
- if (invQty_sig > 0)
- {
- sumInvQty = sumInvQty + Math.Round(invQty_sig, 4, MidpointRounding.AwayFromZero);
- PurCkStoragePosEntity pos = new PurCkStoragePosEntity();
- String strInvPosId = row.GetCellValue("invPosId").ToString().Trim();
- if (String.IsNullOrEmpty(strInvPosId))
- {
- MessageUtil.ShowTips("库存记录行号为空");
- return;
- }
- pos.InvPosId = strInvPosId;
- pos.InvQty = invQty_sig;
- list.Add(pos);
- }
- }
- else
- {
- double invQty_sig = 0;
- double.TryParse(row.GetCellValue("createQty").ToString().Trim(), out invQty_sig);
- if (invQty_sig > 0)
- {
- sumInvQty = sumInvQty + Math.Round(invQty_sig, 4, MidpointRounding.AwayFromZero);
- PurCkStoragePosEntity pos = new PurCkStoragePosEntity();
- String strInvPosId = row.GetCellValue("invPosId").ToString().Trim();
- if (String.IsNullOrEmpty(strInvPosId))
- {
- MessageUtil.ShowTips("库存记录行号为空");
- return;
- }
- pos.InvPosId = strInvPosId;
- pos.InvQty = invQty_sig;
- list.Add(pos);
- }
- }
- }
- }
- if (sumInvQty != dbGdQty)
- {
- MessageUtil.ShowTips("挂单量为:" + dbGdQty + ",选择的挂单储位总量需和挂单量相等!");
- return;
- }
- double sumInvQty1 = 0;
- foreach (UltraGridRow row in ultraGrid2.Rows)
- {
-
- if (Convert.ToBoolean(row.GetCellValue("CHK")) == true)
- {
- double invQty_sig = 0;
- double.TryParse(row.GetCellValue("createQty").ToString().Trim(), out invQty_sig);
- if (invQty_sig > 0)
- {
- sumInvQty1 = sumInvQty1 + Math.Round(invQty_sig, 4, MidpointRounding.AwayFromZero);
- RequireReceive rec = new RequireReceive();
- rec.Id = row.GetCellValue("id").ToString().Trim();
- rec.Qty = invQty_sig;
- list1.Add(rec);
- }
- }
- }
- if (sumInvQty1 > dbGdQty)
- {
- MessageUtil.ShowTips("单位所属挂单总量不能大于挂单量为:" + dbGdQty + "!");
- return;
- }
-
- //确定提交
- RequireReleaseInstockqty release = new RequireReleaseInstockqty();
- release.InvId = strInvId;
- release.ReleaseType = strGtype;
- release.PurLineId = strpurLineId;
- release.CreateName = UserInfo.GetUserName();
- release.CreateUserId = UserInfo.GetUserID();
- release.CreateTime = DateTime.Now;
- release.ReleaseQty = dbGdQty;
- if (MessageUtil.ShowYesNoAndQuestion("确定进行挂单操作?") != DialogResult.Yes)
- {
- return;
- }
- CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.requireplan.service.RequireReleaseInstockqtyService", "doGuadan", new object[] { release, list, list1 });
- if (crt.Resultcode == 0)
- {
- MessageUtil.ShowTips("操作成功");
- strTips = "1";
- this.Close();
- }
- else
- {
- MessageUtil.ShowTips("操作失败:"+crt.Resultmsg);
- }
- }
- /// <summary>
- /// 查询
- /// </summary>
- private void doQuery()
- {
- storage.Clear();
- requireD.Clear();
- //查询储位
- PurCkStoragePosEntity pos = new PurCkStoragePosEntity();
- pos.InvId = strInvId;
- DataTable dt = this.execute<DataTable>("com.hnshituo.pur.ck.service.CkStoragePosService", "getCkStoragePos", new object[] { pos });
- GridHelper.CopyDataToDatatable(dt, dataTable1, true);
- GridHelper.RefreshAndAutoSize(ultraGrid1);
- double canOutNum = dbGdQty;
- double tempCanUseQty = dbGdQty;
- double sunQty=0;
- foreach (UltraGridRow row in ultraGrid1.Rows)
- {
- if (row.GetCellValue("itemUom").ToString() == "基吨")
- {
- //row.Cells["itemUom"].Value = "吨";
- double needQty = 0;
- double dbItemUomConefficient = 1;
- double.TryParse(row.GetCellValue("INVQTYWEIGHT").ToString(), out needQty);//库存需出库量
- double.TryParse(row.GetCellValue("itemUomConefficient").ToString(), out dbItemUomConefficient);
- if (tempCanUseQty > 0 && needQty > 0)
- {
- if (needQty >= tempCanUseQty)
- {
- row.Cells["createQtyWeight"].Value = tempCanUseQty;//库存出库量
- sunQty = sunQty + tempCanUseQty;
- row.Cells["createQty"].Value = Math.Round(tempCanUseQty * dbItemUomConefficient, 4,MidpointRounding.AwayFromZero);//采购出库量
- tempCanUseQty = 0;
- row.Cells["CHK"].Value = true;
- }
- else
- {
- row.Cells["createQtyWeight"].Value = needQty;//库存出库量
- sunQty = sunQty + needQty;
- row.Cells["createQty"].Value = Math.Round(needQty * dbItemUomConefficient, 4, MidpointRounding.AwayFromZero);//采购出库量
- tempCanUseQty = tempCanUseQty - needQty;
- row.Cells["CHK"].Value = true;
- }
- }
- }
- else
- {
- double needQty = 0;
- double dbItemUomConefficient = 1;
- double.TryParse(row.GetCellValue("invqty").ToString(), out needQty);//采购需出库量
- double.TryParse(row.GetCellValue("itemUomConefficient").ToString(), out dbItemUomConefficient);
- if (tempCanUseQty > 0 && needQty > 0)
- {
- if (needQty >= tempCanUseQty)
- {
- row.Cells["createQty"].Value = tempCanUseQty;
- sunQty = sunQty + tempCanUseQty;
- row.Cells["createQtyWeight"].Value = Math.Round(tempCanUseQty / dbItemUomConefficient, 4, MidpointRounding.AwayFromZero);//采购出库量
- tempCanUseQty = 0;
- row.Cells["CHK"].Value = true;
-
- }
- else
- {
- row.Cells["createQty"].Value = needQty;
- sunQty = sunQty + needQty;
- row.Cells["createQtyWeight"].Value = Math.Round(needQty / dbItemUomConefficient, 4, MidpointRounding.AwayFromZero);//采购出库量
- tempCanUseQty = tempCanUseQty - needQty;
- row.Cells["CHK"].Value = true;
-
- }
- }
- }
- }
- txt_usedQty.Text = sunQty + "";
- //查询需求单位
- if (String.IsNullOrEmpty(strpurLineId))
- {
- return;
- }
- Dictionary<string, object> ReqPnew = new Dictionary<string, object>();
- ReqPnew["purLineId"] = strpurLineId;
- ReqPnew["gType"] = strGtype;
- DataTable dt2 = this.execute<DataTable>("com.hnshituo.pur.requireplan.service.RequireReceiveService", "get_canUse", new object[] { ReqPnew });
- foreach (DataRow row in dt2.Rows)
- {
- row["itemDescE"] = Convert.ToDateTime(row["itemDescE"]).ToString("yyyy/MM");
- }
- GridHelper.CopyDataToDatatable(dt2, dataTable2, true);
- GridHelper.RefreshAndAutoSize(ultraGrid2);
- double canOutNum1 = dbGdQty;
- double tempCanUseQty1 = dbGdQty;
- double useQty1 = 0;
- foreach (UltraGridRow row in ultraGrid2.Rows)
- {
- double needQty1 = 0;
- double.TryParse(row.GetCellValue("QTYPUR").ToString(), out needQty1);//需求量
- if (tempCanUseQty1 > 0 && needQty1 > 0)
- {
- if (needQty1 >= tempCanUseQty1)
- {
- row.Cells["createQty"].Value = Math.Round(tempCanUseQty1, 4, MidpointRounding.AwayFromZero);//编制量
- useQty1 = useQty1 + Math.Round(tempCanUseQty1, 4, MidpointRounding.AwayFromZero);//编制量
- tempCanUseQty1 = 0;
- row.Cells["CHK"].Value = true;
- }
- else
- {
- row.Cells["createQty"].Value = Math.Round(needQty1, 4, MidpointRounding.AwayFromZero);//采购出库量
- useQty1 = useQty1 + Math.Round(needQty1, 4, MidpointRounding.AwayFromZero);
- tempCanUseQty1 = tempCanUseQty1 - needQty1;
- row.Cells["CHK"].Value = true;
- }
- }
- }
- txt_req_qty.Text = useQty1 + "";
- }
- private void ultraGrid1_CellChange(object sender, CellEventArgs e)
- {
- object o = e.Cell.Value;
- ultraGrid1.UpdateData();
- double canUse = 0;
- double canUseUom = 0;
- double canUseWeight = 0;
- double conf = 0;
- double.TryParse(e.Cell.Row.GetCellValue("invqty").ToString(), out canUseUom);
- double.TryParse(e.Cell.Row.GetCellValue("INVQTYWEIGHT").ToString(), out canUseWeight);
- canUse = dbGdQty;
- double.TryParse(e.Cell.Row.GetCellValue("itemUomConefficient").ToString(), out conf);
- if (e.Cell.Column.Key == "createQty")//采购数量
- {
- double OutNum = 0;//出库量
- double.TryParse(e.Cell.Row.GetCellValue("createQty").ToString(), out OutNum);
- if (OutNum > canUseUom)
- {
- MessageUtil.ShowTips("已大于在库量(采购单位):" + canUseUom + "");
- e.Cell.Value = o;
- return;
- }
- if (e.Cell.Row.GetCellValue("itemUom").ToString() == "基吨")
- {
- e.Cell.Row.Cells["createQtyWeight"].Value = Math.Round(OutNum / conf, 4, MidpointRounding.AwayFromZero);
- }
- else
- {
- e.Cell.Row.Cells["createQtyWeight"].Value = Math.Round(conf * OutNum, 4, MidpointRounding.AwayFromZero);
- }
- double b_OutNum_q = 0;//出库总量
- for (int i = 0; i < ultraGrid1.Rows.Count; i++)
- {
- if (Convert.ToBoolean(ultraGrid1.Rows[i].GetCellValue("CHK")) == true)
- {
- double b_OutNum = 0;//出库量
- if (ultraGrid1.Rows[i].GetCellValue("itemUom").ToString() == "基吨")
- {
- double.TryParse(ultraGrid1.Rows[i].Cells["createQtyWeight"].Value.ToString(), out b_OutNum);
- }
- else
- {
- double.TryParse(ultraGrid1.Rows[i].Cells["createQty"].Value.ToString(), out b_OutNum);
- }
- b_OutNum_q += Math.Round(b_OutNum, 4, MidpointRounding.AwayFromZero);
- }
- }
- if (b_OutNum_q > canUse)
- {
- MessageUtil.ShowTips("已大于挂单量:" + canUse + "");
- e.Cell.Value = o;
- return;
- }
- txt_usedQty.Text = b_OutNum_q.ToString();
- }
- else if (e.Cell.Column.Key == "createQtyWeight")//库存数量
- {
- double OutNum1 = 0;//库存单位出库量
- double.TryParse(e.Cell.Row.GetCellValue("createQtyWeight").ToString(), out OutNum1);
- if (OutNum1 > canUseWeight)
- {
- MessageUtil.ShowTips("已大于在库量(库存单位):" + canUseWeight + "");
- e.Cell.Value = o;
- return;
- }
- if (e.Cell.Row.GetCellValue("itemUom").ToString() == "基吨")
- {
- e.Cell.Row.Cells["createQty"].Value = Math.Round(OutNum1 * conf, 4, MidpointRounding.AwayFromZero);
- }
- else
- {
- e.Cell.Row.Cells["createQty"].Value = Math.Round(OutNum1 / conf, 4, MidpointRounding.AwayFromZero);
- }
- double b_OutNum_q = 0;//出库总量
- for (int i = 0; i < ultraGrid1.Rows.Count; i++)
- {
-
- if (Convert.ToBoolean(ultraGrid1.Rows[i].GetCellValue("CHK")) == true)
- {
- double b_OutNum = 0;//出库量
- if (ultraGrid1.Rows[i].GetCellValue("itemUom").ToString() == "基吨")
- {
- double.TryParse(ultraGrid1.Rows[i].Cells["createQtyWeight"].Value.ToString(), out b_OutNum);
- }
- else
- {
- double.TryParse(ultraGrid1.Rows[i].Cells["createQty"].Value.ToString(), out b_OutNum);
- }
- b_OutNum_q += Math.Round(b_OutNum, 4, MidpointRounding.AwayFromZero);
- }
- }
- if (b_OutNum_q > canUse)
- {
- MessageUtil.ShowTips("已大于挂单量:" + canUse + "");
- e.Cell.Value = o;
- return;
- }
- txt_usedQty.Text = b_OutNum_q.ToString();
- }
- else if (e.Cell.Column.Key == "CHK")
- {
- double b_OutNum_q = 0;//出库总量
- for (int i = 0; i < ultraGrid1.Rows.Count; i++)
- {
- if (Convert.ToBoolean(ultraGrid1.Rows[i].GetCellValue("CHK")) == true)
- {
- double b_OutNum = 0;//出库量
- if (ultraGrid1.Rows[i].GetCellValue("itemUom").ToString() == "基吨")
- {
- double.TryParse(ultraGrid1.Rows[i].Cells["createQtyWeight"].Value.ToString(), out b_OutNum);
- }
- else
- {
- double.TryParse(ultraGrid1.Rows[i].Cells["createQty"].Value.ToString(), out b_OutNum);
- }
- b_OutNum_q += Math.Round(b_OutNum, 4, MidpointRounding.AwayFromZero);
- }
-
- }
- if (b_OutNum_q > canUse)
- {
- MessageUtil.ShowTips("已大于挂单量:" + canUse + "");
- e.Cell.Value = o;
- return;
- }
- txt_usedQty.Text = b_OutNum_q.ToString();
- }
- ultraGrid1.UpdateData();
- }
- private void ultraGrid2_CellChange(object sender, CellEventArgs e)
- {
- if (e.Cell.Column.Key == "createQty" || e.Cell.Column.Key=="CHK")//采购数量
- {
- double useQty_temp = 0;
- ultraGrid2.UpdateData();
- foreach (UltraGridRow row in ultraGrid2.Rows)
- {
- if (Convert.ToBoolean(row.GetCellValue("CHK")) == true)
- {
- double useQty_sig = 0;
- double.TryParse(row.Cells["createQty"].Value.ToString(), out useQty_sig);
- useQty_temp = useQty_temp + Math.Round(useQty_sig, 4, MidpointRounding.AwayFromZero);
- }
- }
- txt_req_qty.Text = useQty_temp + "";
- }
- }
- }
- }
|