| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412 |
- 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;
- using CoreFS.CA06;
- using Pur.Entity;
- using Core.Mes.Client.Comm.Control;
- using System.Collections;
- using Core.Mes.Client.Comm.Tool;
- using Infragistics.Win;
- using Pur.Entity.ck;
- using Pur.Entity.configureEntity;
- using com.hnshituo.pur.vo;
- namespace Pur.Pop_upWindow
- {
- public partial class FrmStorageBenefit : FrmPmsBase
- {
- double q_b = 0;//利库量的小数部分
- public FrmStorageBenefit(OpeBase ob, string strMrId)
- {
- InitializeComponent();
- this.ob = ob;
- get_PUR_PLAN_D(strMrId);
- GridHelper.SetExcludeColumnsActive(ultraGrid3.DisplayLayout.Bands[0], "ITEMUOMCONEFFICIENT");
- GridHelper.SetExcludeColumnsActive(ultraGrid2.DisplayLayout.Bands[0]);
- }
- /// <summary>
- /// 按钮控件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void barsManagerButon_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
- {
- switch (e.Tool.Key.ToString())
- {
- case "Query":
- {
- }
- break;
- case "conFirmation":
- {
- conFirmation();
- }
- break;
- case "ESC":
- {
- this.Close();
- }
- break;
- }
- }
- /// <summary>
- /// 查询
- /// </summary>
- private void GetPUR_CK_STORAGE(string strMRLINEID)
- {
- CkStorage CkSto = new CkStorage();
- CkSto.Validflag = "1";
- //CkSto.ItemCode = strItemUnique;
- CkSto.PurLineId = strMRLINEID;
- DataTable dt = this.execute<DataTable>("com.hnshituo.pur.ck.service.CkStorageService", "getStorageBenefit", new object[] { CkSto });
- //库存预约量=库存预约量-利库量
- //for (int j = 0; j < dt.Rows.Count; j++)
- //{
- // double num = 0; //利库量
- // if (dt.Rows[j]["ITEMUOMCONEFFICIENT"] != null && dt.Rows[j]["ITEMUOMCONEFFICIENT"].ToString() != "")
- // {
- // double.TryParse(dt.Rows[j]["ITEMUOMCONEFFICIENT"].ToString(), out num);
- // }
- // double bINVORQTY = 0;//库存已预约量INVORQTY
- // if (dt.Rows[j]["INVORQTY"] != null && dt.Rows[j]["INVORQTY"].ToString() != "")
- // {
- // double.TryParse(dt.Rows[j]["INVORQTY"].ToString(), out bINVORQTY);
- // }
- // dt.Rows[j]["INVORQTY"] = bINVORQTY - num;
- //}
- GridHelper.CopyDataToDatatable(dt, dataTable1, true);
- }
- /// <summary>
- /// 查询采购计划详表
- /// </summary>
- /// <param name="PurPlanMEntity"></param>
- public void get_PUR_PLAN_D(string strMrId)
- {
- EntityPurPlanD PurPlanDEntity = new EntityPurPlanD();
- PurPlanDEntity.Validflag = "1";
- PurPlanDEntity.MrId = strMrId;
- DataTable dt = this.execute<DataTable>("com.hnshituo.pur.purplan.service.PurPlanDService", "find", new object[] { PurPlanDEntity,0,0});
- GridHelper.CopyDataToDatatable(ref dt, ref dataTable5, true);//绑定采购计划行表
- //获取采购计划单位
- //获取库存单位
- if (ultraGrid2.Rows.Count > 0)
- {
- GetPUR_CK_STORAGE(ultraGrid2.Rows[0].Cells["MRLINEID"].Value.ToString());
- }
- }
- /// <summary>
- /// 激活采购计划行
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ultraGrid2_AfterRowActivate(object sender, EventArgs e)
- {
- showItemUgridRow();
- //GetPUR_CK_STORAGE(ultraGrid2.ActiveRow.Cells["ItemCODE"].Value.ToString());
- }
- /// <summary>
- /// 显示采购计划激活行的物料
- /// </summary>
- private void showItemUgridRow()
- {
- for (int i = 0; i < ultraGrid3.Rows.Count; i++)
- {
- if (ultraGrid3.Rows[i].Cells["ITEMCODE"].Value.ToString() != ultraGrid2.ActiveRow.Cells["ITEMCODE"].Value.ToString() || ultraGrid3.Rows[i].Cells["WEIGHTUNIT"].Value.ToString().Trim() != ultraGrid2.ActiveRow.Cells["WEIGHTUNIT"].Value.ToString().Trim())
- {
- ultraGrid3.Rows[i].Hidden = true;//隐藏
- }
- else
- {
- ultraGrid3.Rows[i].Hidden = false;
- }
- }
- }
- /// <summary>
- /// 确认操作
- /// </summary>
- /// <param name="PurPlanMEntity"></param>
- public void conFirmation()
- {
- if (q_b != 0)//采购计划利库数量存在小数,不允许利库
- {
- MessageUtil.ShowTips("采购计划利库量不能为小数,请重新填写利库量");
- return;
- }
- ultraGrid2.UpdateData();
- ultraGrid3.UpdateData();
- ArrayList alpbd = new ArrayList();
- ArrayList alcks = new ArrayList();
- ArrayList alcksu = new ArrayList();
- //循环采购计划行表
- for (int i = 0; i < ultraGrid2.Rows.Count; i++)
- {
- //更新采购计划行表
- //if (ultraGrid2.Rows[i].Cells["QTYLK"].Value.ToString() != "" && double.Parse(ultraGrid2.Rows[i].Cells["QTYLK"].Value.ToString()) != 0)
- //{
- EntityPurPlanD pbd = new EntityPurPlanD();//采购计划行
- pbd.MrLineId = ultraGrid2.Rows[i].Cells["MrLineId"].Value.ToString();//采购单行号
- double bPurQTYLK = 0;//采购行已利库量
- if (ultraGrid2.Rows[i].Cells["QTYLK"].Value != null && ultraGrid2.Rows[i].Cells["QTYLK"].Value.ToString() != "")
- {
- double.TryParse(ultraGrid2.Rows[i].Cells["QTYLK"].Value.ToString(), out bPurQTYLK);
- }
- double bQty = 0;//采购数量
- if (ultraGrid2.Rows[i].Cells["QTY"].Value != null && ultraGrid2.Rows[i].Cells["QTY"].Value.ToString() != "")
- {
- double.TryParse(ultraGrid2.Rows[i].Cells["QTY"].Value.ToString(), out bQty);
- }
- pbd.Qty = bQty;//采购数量
- pbd.QtyLk = bPurQTYLK;//利库量
- pbd.UpdateTime = System.DateTime.Now;
- pbd.UpdateName = UserInfo.GetUserName();
- pbd.UpdateUserid = UserInfo.GetUserID();
- alpbd.Add(pbd);
- //库存表
- for (int j = 0; j < ultraGrid3.Rows.Count; j++)
- {
- if (ultraGrid3.Rows[j].Cells["ITEMCODE"].Value.ToString() != ultraGrid2.Rows[i].Cells["ITEMCODE"].Value.ToString() || ultraGrid3.Rows[j].Cells["WEIGHTUNIT"].Value.ToString().Trim() != ultraGrid2.Rows[i].Cells["WEIGHTUNIT"].Value.ToString().Trim())
- { continue; }
- //if (ultraGrid3.Rows[j].Cells["ITEMUOMCONEFFICIENT"].Value.ToString() != "" && double.Parse(ultraGrid3.Rows[j].Cells["ITEMUOMCONEFFICIENT"].Value.ToString()) != 0)
- //{
- CkStorage Storage = new CkStorage();
- Storage.InvId = ultraGrid3.Rows[j].Cells["InvId"].Value.ToString();//库存记录号
- double bINVORQTY = 0;//库存已预约量INVORQTY
- if (ultraGrid3.Rows[j].Cells["INVORQTY"].Value != null && ultraGrid3.Rows[j].Cells["INVORQTY"].Value.ToString() != "")
- {
- double.TryParse(ultraGrid3.Rows[j].Cells["INVORQTY"].Value.ToString(), out bINVORQTY);
- }
- double bITEMUOMCONEFFICIENT = 0;//库存已预约量INVORQTY
- if (ultraGrid3.Rows[j].Cells["ITEMUOMCONEFFICIENT"].Value != null && ultraGrid3.Rows[j].Cells["ITEMUOMCONEFFICIENT"].Value.ToString() != "")
- {
- double.TryParse(ultraGrid3.Rows[j].Cells["ITEMUOMCONEFFICIENT"].Value.ToString(), out bITEMUOMCONEFFICIENT);
- }
- Storage.InvOrQty = bITEMUOMCONEFFICIENT + bINVORQTY;//库存预约量
- Storage.UpdateTime = System.DateTime.Now;
- Storage.UpdateName = UserInfo.GetUserName();
- Storage.UpdateUserid = UserInfo.GetUserID();
- alcks.Add(Storage);
- //库存占用量
- PurCkStorageUseEntity CkStorageUseEntity = new PurCkStorageUseEntity();
- CkStorageUseEntity.InvId = Storage.InvId;//库存记录号
- CkStorageUseEntity.RefeId = ultraGrid3.Rows[j].Cells["RefeId"].Value.ToString();//参考单号
- CkStorageUseEntity.RefType = ultraGrid3.Rows[j].Cells["RefType"].Value.ToString();//参考单类别
- CkStorageUseEntity.PurLineId = pbd.MrLineId;//采购计划行号
- CkStorageUseEntity.UseType = "2";//占用类别1:采购2:利库
- CkStorageUseEntity.Status = "1";//状态1:领用中2:已领用9:已取消
- CkStorageUseEntity.InvOrQty = bITEMUOMCONEFFICIENT;//占用量
- CkStorageUseEntity.Validflag = "1";
- CkStorageUseEntity.UpdateTime = System.DateTime.Now;
- CkStorageUseEntity.UpdateName = UserInfo.GetUserName();
- CkStorageUseEntity.UpdateUserid = UserInfo.GetUserID();
- alcksu.Add(CkStorageUseEntity);
- //}
- }
- //}
- }
- if (alpbd.Count < 1)
- {
- MessageUtil.ShowTips("利库条件不符,未进行利库操作");
- return;
- }
- CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.ck.service.CkStorageService", "StorageBenefit", new object[] { alpbd, alcks, alcksu });
- if (crt.Resultcode != 0)
- {
- MessageUtil.ShowTips("利库失败 " + crt.Resultmsg);
- return;
- }
- MessageUtil.ShowTips("利库成功");
- }
- /// <summary>
- /// 输入利库量
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ultraGrid3_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
- {
- validate_New(sender, e);
- //validate(sender, e);
- }
- /// <summary>
- /// 验证利库数量,当每次修改输入的利库量时使用
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void validate_New(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
- {
- //输入的利库量不能>库存量-库存已预约量
- if (e.Cell.Column.Key == "ITEMUOMCONEFFICIENT")
- {
- //---------------------计算库存
- double num = 0; //利库量
- if (e.Cell.Value != null && e.Cell.Value.ToString() != "")
- {
- double.TryParse(e.Cell.Value.ToString(), out num);
- }
- ultraGrid3.UpdateData();
- double numNew = 0; //利库量
- if (e.Cell.Value != null && e.Cell.Value.ToString() != "")
- {
- double.TryParse(e.Cell.Value.ToString(), out numNew);
- }
- double bINVORQTY = 0;//库存已预约量INVORQTY
- if (e.Cell.Row.Cells["INVORQTY"].Value != null && e.Cell.Row.Cells["INVORQTY"].Value.ToString() != "")
- {
- double.TryParse(e.Cell.Row.Cells["INVORQTY"].Value.ToString(), out bINVORQTY);
- }
- double bINVQTY = 0;//库存数量
- if (e.Cell.Row.Cells["INVQTY"].Value != null && e.Cell.Row.Cells["INVQTY"].Value.ToString() != "")
- {
- double.TryParse(e.Cell.Row.Cells["INVQTY"].Value.ToString(), out bINVQTY);
- }
- //-----------------计算采购计划
- double Purnum = 0; //采购行利库量
- for (int i = 0; i < ultraGrid3.Rows.Count; i++)
- {
- if (ultraGrid3.Rows[i].Hidden == false)
- {
- if (ultraGrid3.Rows[i].Cells["ITEMUOMCONEFFICIENT"].Value != null && ultraGrid3.Rows[i].Cells["ITEMUOMCONEFFICIENT"].Value.ToString() != "")
- {
- Purnum += double.Parse(ultraGrid3.Rows[i].Cells["ITEMUOMCONEFFICIENT"].Value.ToString());
- }
- }
- }
- double bPurQTYLK = 0;//采购行利库量
- if (ultraGrid2.ActiveRow.Cells["QTYLK"].Value != null && ultraGrid2.ActiveRow.Cells["QTYLK"].Value.ToString() != "")
- {
- double.TryParse(ultraGrid2.ActiveRow.Cells["QTYLK"].Value.ToString(), out bPurQTYLK);
- }
- double bQTYLJH = 0;//采购行利计划量
- if (ultraGrid2.ActiveRow.Cells["QTYLJH"].Value != null && ultraGrid2.ActiveRow.Cells["QTYLJH"].Value.ToString() != "")
- {
- double.TryParse(ultraGrid2.ActiveRow.Cells["QTYLJH"].Value.ToString(), out bQTYLJH);
- }
- double bQTY = 0;//采购数量
- if (ultraGrid2.ActiveRow.Cells["QTY"].Value != null && ultraGrid2.ActiveRow.Cells["QTY"].Value.ToString() != "")
- {
- double.TryParse(ultraGrid2.ActiveRow.Cells["QTY"].Value.ToString(), out bQTY);
- }
- double b_ITEMUOMCONEFFICIENT = 0;//转换系数
- double.TryParse(ultraGrid2.ActiveRow.Cells["ITEMUOMCONEFFICIENT"].Value.ToString(), out b_ITEMUOMCONEFFICIENT);
- if (num > bINVQTY - bINVORQTY || Purnum > bQTY + bPurQTYLK || b_ITEMUOMCONEFFICIENT == 0)
- {
- //MessageUtil.ShowTips("已结算量必须小于入库量才能选择结算");
- //输入不正确时,将原值还原
- e.Cell.Value = num;
- return;
- }
- else
- {
- ultraGrid2.ActiveRow.Cells["QTYStorage"].Value = numNew / b_ITEMUOMCONEFFICIENT;//库存转换量
- ultraGrid2.ActiveRow.Cells["QTYLK"].Value = Purnum / b_ITEMUOMCONEFFICIENT;//采购计划利库量
- ultraGrid2.ActiveRow.Cells["QTY"].Value = bQTY + bPurQTYLK - Purnum;//采购数量=采购数量+(新利库量-原来利库量)
- q_b = Purnum % b_ITEMUOMCONEFFICIENT;
- ultraGrid3.UpdateData();
- ultraGrid2.UpdateData();
- }
- }
- }
- /// <summary>
- /// 验证利库数量,当每次增加输入的利库量时使用,现暂不使用此方法
- /// </summary>
- private void validate(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
- {
- //输入的利库量不能>库存量-库存已预约量
- if (e.Cell.Column.Key == "QTYLK")
- {
- //---------------------计算库存
- double num = 0; //利库量
- if (e.Cell.Value != null && e.Cell.Value.ToString() != "")
- {
- double.TryParse(e.Cell.Value.ToString(), out num);
- }
- ultraGrid3.UpdateData();
- double bQTYLK = 0;//已利库量
- if (e.Cell.Row.Cells["QTYLK"].Value != null && e.Cell.Row.Cells["QTYLK"].Value.ToString() != "")
- {
- double.TryParse(e.Cell.Row.Cells["QTYLK"].Value.ToString(), out bQTYLK);
- }
- double bINVORQTY = 0;//库存已预约量INVORQTY
- if (e.Cell.Row.Cells["INVORQTY"].Value != null && e.Cell.Row.Cells["INVORQTY"].Value.ToString() != "")
- {
- double.TryParse(e.Cell.Row.Cells["INVORQTY"].Value.ToString(), out bINVORQTY);
- }
- double bINVQTY = 0;//库存数量
- if (e.Cell.Row.Cells["INVQTY"].Value != null && e.Cell.Row.Cells["INVQTY"].Value.ToString() != "")
- {
- double.TryParse(e.Cell.Row.Cells["INVQTY"].Value.ToString(), out bINVQTY);
- }
- //-----------------计算采购计划
- double Purnum = 0; //采购行利库量
- for (int i = 0; i < ultraGrid3.Rows.Count; i++)
- {
- if (ultraGrid3.Rows[i].Cells["QTYLK"].Value != null && ultraGrid3.Rows[i].Cells["QTYLK"].Value.ToString() != "")
- {
- Purnum += double.Parse(ultraGrid3.Rows[i].Cells["QTYLK"].Value.ToString());
- }
- }
- double bPurQTYLK = 0;//采购行已利库量
- if (ultraGrid2.ActiveRow.Cells["QTYLK"].Value != null && ultraGrid2.ActiveRow.Cells["QTYLK"].Value.ToString() != "")
- {
- double.TryParse(ultraGrid2.ActiveRow.Cells["QTYLK"].Value.ToString(), out bPurQTYLK);
- }
- double bQTYLJH = 0;//采购行利计划量
- if (ultraGrid2.ActiveRow.Cells["QTYLJH"].Value != null && ultraGrid2.ActiveRow.Cells["QTYLJH"].Value.ToString() != "")
- {
- double.TryParse(ultraGrid2.ActiveRow.Cells["QTYLJH"].Value.ToString(), out bQTYLJH);
- }
- double bQTY = 0;//采购数量
- if (ultraGrid2.ActiveRow.Cells["QTY"].Value != null && ultraGrid2.ActiveRow.Cells["QTY"].Value.ToString() != "")
- {
- double.TryParse(ultraGrid2.ActiveRow.Cells["QTY"].Value.ToString(), out bQTY);
- }
- if (bQTYLK > bINVQTY - bINVORQTY || Purnum > bQTY - bPurQTYLK - bQTYLJH)
- {
- //MessageUtil.ShowTips("已结算量必须小于入库量才能选择结算");
- e.Cell.Value = num;
- return;
- }
- else
- {
- ultraGrid2.ActiveRow.Cells["QTYLKTemp"].Value = Purnum;
- ultraGrid3.UpdateData();
- ultraGrid2.UpdateData();
- }
- }
- }
- }
- }
|