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 Core.Mes.Client.Comm; using Pur.Entity.configureEntity; using Infragistics.Win.UltraWinGrid; using System.Collections; using Pur.Entity.pur_orderEntiy; using Pur.configure; using Pur.Pop_upWindow; using Pur.require_plan; using Core.Mes.Client.Comm.Tool; using com.hnshituo.pur.vo; using Pur.Entity.ck; using Infragistics.Win.UltraWinEditors; using Infragistics.Win; namespace Pur.ck { public partial class PopFrmCkInBill : FrmPmsBase { public PopFrmCkInBill(OpeBase ob) { InitializeComponent(); this.ob = ob; } public PopFrmCkInBill(OpeBase ob, DataTable dt) { InitializeComponent(); this.ob = ob; //GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], "INVINQTY"); //按创建时间降序 dt.DefaultView.Sort = "CREATETIME DESC"; dt = dt.DefaultView.ToTable(); GridHelper.CopyDataToDatatable(dt, dataTable1, true); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { ultraGrid1.Rows[i].Cells["InvInQty"].Value = ultraGrid1.Rows[i].Cells["RECQTY"].Value; } } //菜单单击事件 private void barsManagerButon_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key.ToString()) { case "Query": { } break; case "conFirmation": { AddCkInBill(); this.Close(); } break; case "ESC": { this.Close(); } break; } } /// /// ultraGrid1激活行 /// /// /// private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { } /// /// 初始化界面 /// /// /// private void PopFrmCkInBill_Load(object sender, EventArgs e) { getRecAndStorage(); } /// /// 查询收货单和库存关联表 /// private void getRecAndStorage() { DataTable dt= this.execute("com.hnshituo.pur.ck.service.CkInBillService", "getRecAndStorage", new object[] { }); ultraGrid1.DataSource = dt; } /// /// 入库 /// private void AddCkInBill() { ultraGrid1.UpdateData(); ArrayList al_CkInBillEntity = new ArrayList();//入库单表 ArrayList al_CkStorageEntity = new ArrayList();//库存表 ArrayList al_CkStatisticsEntity = new ArrayList(); for (int i = 0; i < ultraGrid1.Rows.Count; i++) { PurCkRecBillEntity CkRecBillEntity = this.execute("com.hnshituo.pur.ck.service.CkRecBillService", "findById", new object[] { ultraGrid1.Rows[i].Cells["RECID"].Value.ToString() }); PurCkInBillEntity CkInBillEntity = new PurCkInBillEntity();//入库 CkInBillEntity = EntityHelper.CopyEntity(CkRecBillEntity);//复制合同行号中相同的字段值 CkInBillEntity.InvPos = CkRecBillEntity.TempPos;//临时库位赋值给库区储位 CkInBillEntity.Status = "1"; CkInBillEntity.Validflag = "1"; if (ultraGrid1.Rows[i].Cells["INVINQTY"].Value.ToString().Trim() != "") { CkInBillEntity.InNum = double.Parse(ultraGrid1.Rows[i].Cells["INVINQTY"].Value.ToString());//入库量 } else { MessageUtil.ShowTips("入库量不能为空"); return; } CkInBillEntity.CreateUserid = UserInfo.GetUserID(); CkInBillEntity.CreateName = UserInfo.GetUserName(); CkInBillEntity.UpdateName = null; CkInBillEntity.UpdateUserid = null; CkInBillEntity.UpdateTime = null; al_CkInBillEntity.Add(CkInBillEntity); CkStorage CkStorageEntity = new CkStorage();//库存表 CkStorageEntity = EntityHelper.CopyEntity(CkRecBillEntity);//复制合同行号中相同的字段值 CkStorageEntity = EntityHelper.CopyEntity(CkInBillEntity);//复制合同行号中相同的字段值 //CkStorageEntity.InvPos = CkInBillEntity.InvPos; CkStorageEntity.Validflag = "1"; CkStorageEntity.CreateUserid = UserInfo.GetUserID(); CkStorageEntity.CreateName = UserInfo.GetUserName(); CkStorageEntity.UpdateName = null; CkStorageEntity.UpdateUserid = null; CkStorageEntity.UpdateTime = null; al_CkStorageEntity.Add(CkStorageEntity); CkStatistics CkStatisticsEntity = new CkStatistics();//库存收发存表 CkStatisticsEntity = EntityHelper.CopyEntity(CkRecBillEntity);//复制合同行号中相同的字段值 CkStatisticsEntity.Validflag = "1"; CkStatisticsEntity.CreateUserid = UserInfo.GetUserID(); CkStatisticsEntity.CreateName = UserInfo.GetUserName(); CkStatisticsEntity.UpdateName = null; CkStatisticsEntity.UpdateUserid = null; CkStatisticsEntity.UpdateTime = null; if (ultraGrid1.Rows[i].Cells["INVINQTY"].Value.ToString().Trim() != "") { //修改库存收入量、期末库存数量,都加上入库量 CkStatisticsEntity.InvInQty = double.Parse(ultraGrid1.Rows[i].Cells["INVINQTY"].Value.ToString());//修改库存收入量 CkStatisticsEntity.InvEndingBalanceQty = double.Parse(ultraGrid1.Rows[i].Cells["INVINQTY"].Value.ToString()); } else { MessageUtil.ShowTips("库存收入量不能为空"); return; } al_CkStatisticsEntity.Add(CkStatisticsEntity); } if (al_CkInBillEntity.Count < 1) { MessageUtil.ShowTips("请至少选择一条收货行"); return; } CoreResult crt = this.execute("com.hnshituo.pur.ck.service.CkInBillService", "AddCkInBill", new object[] { al_CkInBillEntity, al_CkStorageEntity, al_CkStatisticsEntity }); if (crt.Resultcode != 0) { MessageUtil.ShowTips("入库失败 " + crt.Resultmsg); return; } MessageUtil.ShowTips("入库成功,入库单号:" + crt.Resultmsg); } /// /// 初始化grid1 /// /// /// private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e) { e.Layout.Override.MergedCellStyle = MergedCellStyle.Always; e.Layout.Bands[0].Columns["INSTOCKNO"].MergedCellEvaluator = new CustomMergedCellEvaluator(); } } //自定义单元格合并类 public class CustomMergedCellEvaluator : Infragistics.Win.UltraWinGrid.IMergedCellEvaluator { public CustomMergedCellEvaluator() { } public bool ShouldCellsBeMerged(UltraGridRow row1, UltraGridRow row2, UltraGridColumn column)//控件自带的方法,会自动进行调用,column为初始化中设置的列 { DateTime date1 = (DateTime)row1.GetCellValue(column); DateTime date2 = (DateTime)row2.GetCellValue(column); return date1.Date == date2.Date; } } }