using com.hnshituo.pur.vo; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Tool; using Infragistics.Win.UltraWinGrid; using Pur.Entity; using Pur.Entity.configureEntity; using Pur.PublicTools; 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; namespace Pur.ck { public partial class FrmCkInventory : FrmPmsBase { public FrmCkInventory() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); //ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//不默认加载筛选条件框 ultraGrid2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; } private void FrmCkInventory_Load(object sender, EventArgs e) { dateStart.Value = dateEnd.DateTime.AddMonths(-1); InitColumns(); ChangeStyle(); SetSumCount(); InitBindBox(); } private void InitColumns() { //PUR_CK_STORAGE 库存表 //INV_PHYSIC 物理库区 //INV_POS 库位、库区储位 //BATCH_NO 批次号 //INV_QTY 库存数量 string[] arrColumns = new string[] { "INV_PHYSIC", "INV_PHYSIC_NAME", "INV_POS", "INV_POS_NAME", "ITEM_CODE", "ITEM_DESC", "ITEM_DESC_E", "ITEM_NAME", "WEIGHT_UNIT", "INV_QTY", "INV_PRICE", "INV_AMT", "REAL_QTY", "REAL_AMT", "DIFF_QTY", "DIFF_AMT", "DEAL_WAY" };//"BATCH_NO", string[] arrColumnsCaption = new string[] { "库区", "库区", "库位", "库位", "物料编码", "物料描述", "物料英文名称", "物料名称", "库存单位", "数量", "实际价/平均价", "金额", "盘点数量", "盘点金额", "差异数量", "差异金额", "处理(盘亏/盘盈)" };//"批次号", PublicPur.InitColumns(arrColumns, arrColumnsCaption, dataTable1, ultraGrid1, new string[] { "INV_PHYSIC", "INV_POS", "ITEM_CODE", "ITEM_DESC", "ITEM_DESC_E", "INV_PRICE", "REAL_QTY", "REAL_AMT", "DIFF_QTY", "DIFF_AMT", "DEAL_WAY" }, false, null); //PublicPur.InitColumns(arrColumns, arrColumnsCaption, dataTable2, ultraGrid2, new string[] { "ITEM_CODE", "ITEM_DESC", "ITEM_DESC_E" }, false, null); //BUY_QTY 采购数量 string[] arrColumnsDetail = new string[] { "CHK", "STATUS", "STATUS_DESC", "BATCH_NO", "INV_POS_ID", "INV_ID", "STOCK_NO", "ORDER_ID", "ORDER_LINE_SQE", "SUPP_CODE", "SUPP_NAME", "PUR_LINE_ID", "REFE_ID", "REF_TYPE", "INV_PHYSIC", "INV_POS", "ITEM_UNIQUE", "ITEM_CLASS", "ITEM_CODE", "ITEM_DESC", "ITEM_DESC_E", "ITEM_NAME", "START_QTY", "ITEM_UOM", "ITEM_UOM_CONEFFICIENT", "WEIGHT_UNIT", "INV_PRICE", "BUG_PRICE", "BUY_PRICE", "BUY_PRICE_TAX", "INV_AMT", "INV_QTY", "TOTAL_QTY", "DEAL_WAY", "DIFF_QTY", "DIFF_AMT", "DEAL_REMARK" }; string[] arrColumnsCaptionDetail = new string[] { "选择", "状态", "状态", "批次号", "主键", "库存记录号", "单号", "合同号", "合同行号", "供应商代码", "供应商", "领用计划行号", "参考单号", "参考单类别", "库区", "库位", "物料唯一码", "物料大类", "物料编码", "物料描述", "物料英文名称", "物料名称", "原始量", "采购单位", "转换系数", "库存单位", "库存单价", "计划价", "采购单价", "含税采购单价", "金额", "库存数量", "盘库量", "处理(盘亏/盘盈)", "差异量", "差异金额", "盘库原因" }; PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable2, ultraGrid2, new string[] { "INV_POS_ID", "INV_ID", "STOCK_NO", "ORDER_ID", "SUPP_CODE", "STATUS", "PUR_LINE_ID", "REFE_ID", "REF_TYPE", "INV_PHYSIC", "INV_POS", "ITEM_UNIQUE", "ITEM_CLASS", "ITEM_CODE", "ITEM_DESC", "ITEM_DESC_E", "ITEM_NAME", "START_QTY", "ITEM_UOM", "ITEM_UOM_CONEFFICIENT", "WEIGHT_UNIT", "BUG_PRICE", "DIFF_AMT" }, false, new string[] { "CHK", "TOTAL_QTY", "DEAL_REMARK" });//"DEAL_WAY" ,"DIFF_QTY", ultraGrid2.DisplayLayout.Bands[0].Columns["DEAL_WAY"].EditorComponent = ultraDEAL_WAY; string[] arrColumnsRecord = new string[] { "STOCKTAKING_DOC", "STOCKTAKING_TYPE_NAME", "REAL_QTY", "DIFF_QTY", "INV_PHYSIC", "INV_PHYSIC_NAME", "INV_POS", "INV_POS_NAME", "ORDER_ID", "ORDER_LINE_SQE", "IN_STOCK_NO", "STOCK_NO", "SUPP_CODE", "SUPP_NAME", "ITEM_CLASS", "ITEM_CODE", "ITEM_NAME", "ITEM_UOM", "ITEM_UOM_CONEFFICIENT", "BUY_PRICE", "BUY_QTY", "WEIGHT_UNIT", "INV_PRICE", "INV_QTY", "INV_AMT", "DEAL_REMARK", "CREATE_NAME", "CREATE_TIME_" };//STOCKTAKING_RSN_NAME string[] arrColumnsCaptionRecord = new string[] { "盘库记录号", "盘库类型", "盘库量", "差异量", "库区", "库区", "库位", "库位", "合同号", "合同行号", "原入库单号", "新单号", "供应商", "供应商", "物料中类", "物料编码", "物料名称", "采购单位", "转换系数", "采购单价", "采购数量", "库存单位", "库存单价", "入库数量", "总价", "盘库原因", "盘库人", "盘库时间" }; PublicPur.InitColumns(arrColumnsRecord, arrColumnsCaptionRecord, dataTable3, ultraGrid3, new string[] { "INV_PHYSIC", "INV_POS", "ORDER_ID", "SUPP_CODE", "ITEM_CLASS", "ITEM_CODE", "BUY_PRICE", "BUY_QTY", "INV_QTY", "INV_AMT" }, false, null); } //调整格式 private void ChangeStyle() { PublicPur.InitCellPositionRight(ultraGrid1, new string[] { "INV_QTY", "INV_PRICE", "BUG_PRICE", "INV_AMT", "DIFF_QTY", "DIFF_AMT" }); PublicPur.InitColumnShowLength(ultraGrid1, 0, new string[] { "INV_QTY", "DIFF_QTY" }, 4, false);//入库量保留4位 PublicPur.InitColumnShowLength(ultraGrid1, 0, new string[] { "INV_PRICE", "BUG_PRICE", "INV_AMT", "DIFF_AMT" }, 2, false);//金额保留两位 PublicPur.InitCellPositionRight(ultraGrid2, new string[] { "BUY_PRICE", "BUY_QTY", "INV_PRICE", "INV_QTY", "INV_AMT", "TOTAL_QTY", "DIFF_QTY", "DIFF_AMT" }); PublicPur.InitColumnShowLength(ultraGrid2, 0, new string[] { "BUY_QTY", "INV_QTY", "TOTAL_QTY", "DIFF_QTY" }, 4, false);//入库量保留4位 PublicPur.InitColumnShowLength(ultraGrid2, 0, new string[] { "BUY_PRICE", "INV_PRICE", "INV_AMT", "DIFF_AMT" }, 2, false);//金额保留两位 PublicPur.InitCellPositionRight(ultraGrid3, new string[] { "REAL_QTY", "DIFF_QTY", "BUY_PRICE", "BUY_QTY", "INV_PRICE", "INV_QTY", "INV_AMT" }); PublicPur.InitColumnShowLength(ultraGrid3, 0, new string[] { "REAL_QTY", "DIFF_QTY", "BUY_QTY", "INV_QTY" }, 4, false);//入库量保留4位 PublicPur.InitColumnShowLength(ultraGrid3, 0, new string[] { "BUY_PRICE", "INV_PRICE", "INV_AMT" }, 2, false);//金额保留两位 } //设置统计风格 private void SetSumCount() { PublicPur.SetupSummaryHeade(new String[] { "Count", "Sum", "Sum" }, new String[] { "共{0}条", "{0}", "{0}" }, new string[] { "INV_PHYSIC_NAME", "INV_QTY", "INV_AMT" }, this.ultraGrid1.DisplayLayout.Bands[0], SummaryDisplayAreas.BottomFixed); PublicPur.SetupSummaryHeade(new String[] { "Count", "Sum", "Sum" }, new String[] { "共{0}条", "{0}", "{0}" }, new string[] { "STATUS_DESC", "INV_QTY", "INV_AMT" }, this.ultraGrid2.DisplayLayout.Bands[0], SummaryDisplayAreas.BottomFixed); } private void InitBindBox() { PurmatclassEntity mat = new PurmatclassEntity(); mat.Validflag = "1"; DataTable dtBaseName = this.execute("com.hnshituo.pur.configure.service.MatClassService", "getMatClass", new object[] { mat }); publicPms.FilComboboxAdd(ultraQueryBASENAME, dtBaseName, "BASECODE", "BASENAME", "", true, "/", "");//绑定物料中类 //"INV_PHYSIC", "INV_PHYSIC_NAME", "INV_POS", "INV_POS_NAME" PhysicSeatEntity Phouse = new PhysicSeatEntity(); Phouse.Validflag = "1"; DataTable dtINV_PHYSIC = this.execute("com.hnshituo.pur.configure.service.ActualSeatService", "getActualSeat", new object[] { Phouse, 0, 0 }); publicPms.FilComboboxAdd(ultraINV_PHYSIC, dtINV_PHYSIC, "INVPHYSIC", "INVPHYSICNAME", "", false, "/", ""); ActualSeatPosEntity Pos = new ActualSeatPosEntity(); Pos.Validflag = "1"; DataTable dtINV_POS = this.execute("com.hnshituo.pur.configure.service.ActualSeatPosService", "find", new object[] { Pos, 0, 0 }); publicPms.FilComboboxAdd(ultraINV_POS, dtINV_POS, "INVPOS", "INVPOSNAME", "", false, "/", ""); } //菜单按钮事件 public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": if (ultraTabControl1.SelectedTab.Index == 0) { QueryCkInventory(); } else if (ultraTabControl1.SelectedTab.Index == 1) { QueryCkInventory_Confirm();//查询库存 } break; case "Carry"://确认 ConfirmCkInventory(); break; case "Cancel"://取消操作 CancelCkInventory(); break; case "Print"://打印 PrintCkInventory(); break; case "Export"://导出 ExportCkInventory(); break; case "Close": if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes) { this.Close(); } break; } } private void QueryCkInventory() { try { dataTable1.Rows.Clear(); ArrayList arrayList = new ArrayList();//库区库位 物料中类,物料名称 if (chkINV_PHYSIC.Checked && ultraINV_PHYSIC.Value != null)//库区 { arrayList.Add(ultraINV_PHYSIC.Value.ToString()); arrayList.Add(ultraINV_PHYSIC.Value.ToString()); arrayList.Add(ultraINV_PHYSIC.Value.ToString()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkINV_POS.Checked && ultraINV_POS.Value != null)//库位 { arrayList.Add(ultraINV_POS.Value.ToString()); arrayList.Add(ultraINV_POS.Value.ToString()); arrayList.Add(ultraINV_POS.Value.ToString()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkBASENAME.Checked && ultraQueryBASENAME.Value != null)//物料中类 { arrayList.Add(ultraQueryBASENAME.Value.ToString()); arrayList.Add(ultraQueryBASENAME.Value.ToString()); arrayList.Add(ultraQueryBASENAME.Value.ToString()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkITEM_NAME.Checked) { arrayList.Add(ultraQueryITEM_NAME.Text.Trim()); arrayList.Add(ultraQueryITEM_NAME.Text.Trim()); arrayList.Add(ultraQueryITEM_NAME.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkInventory.QueryCkInventory", new Object[] { arrayList, chkNo.Checked ? "0" : "1" }, ob);// if (dt == null || dt.Rows.Count == 0) { dataTable2.Rows.Clear(); return; } GridHelper.CopyDataToDatatable(dt, dataTable1, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid1); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void QueryCkInventory_Confirm() { try { dataTable3.Rows.Clear(); ArrayList arrayList = new ArrayList(); if (chkINV_PHYSIC.Checked && ultraINV_PHYSIC.Value != null)//库区 { arrayList.Add(ultraINV_PHYSIC.Value.ToString()); arrayList.Add(ultraINV_PHYSIC.Value.ToString()); arrayList.Add(ultraINV_PHYSIC.Value.ToString()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkINV_POS.Checked && ultraINV_POS.Value != null)//库位 { arrayList.Add(ultraINV_POS.Value.ToString()); arrayList.Add(ultraINV_POS.Value.ToString()); arrayList.Add(ultraINV_POS.Value.ToString()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkBASENAME.Checked && ultraQueryBASENAME.Value != null)//物料中类 { arrayList.Add(ultraQueryBASENAME.Value.ToString()); arrayList.Add(ultraQueryBASENAME.Value.ToString()); arrayList.Add(ultraQueryBASENAME.Value.ToString()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkITEM_NAME.Checked) { arrayList.Add(ultraQueryITEM_NAME.Text.Trim()); arrayList.Add(ultraQueryITEM_NAME.Text.Trim()); arrayList.Add(ultraQueryITEM_NAME.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkDate.Checked && dateBegin.Value != null) { arrayList.Add(dateBegin.DateTime.ToString("yyyyMM")); } else { arrayList.Add(""); } DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkInventory.QueryCkInventory_Confirm", new Object[] { arrayList }, ob);// if (dt == null || dt.Rows.Count == 0) { return; } GridHelper.CopyDataToDatatable(dt, dataTable3, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid3); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void ConfirmCkInventory() { try { if (ultraTabControl1.SelectedTab.Index != 0) { MessageUtil.ShowTips("只有选择了库存信息页才能进行盘库操作!"); return; } if (ultraGrid1.ActiveRow == null || dataTable1.Rows.Count == 0) { MessageUtil.ShowTips("请选择一条记录进行盘库操作!"); return; } ultraGrid2.UpdateData(); DataRow[] arr = dataTable2.Select("CHK = 'True'"); if (arr.Length == 0) { MessageUtil.ShowTips("请至少勾选一条库存记录进行盘库操作!"); return; } foreach (DataRow dr in arr) { if (dr["DIFF_QTY"].ToString() == "" || dr["DEAL_WAY"].ToString() == "" || Convert.ToDouble(dr["DIFF_QTY"].ToString()) == 0) { MessageUtil.ShowTips("盘库量不能等于库存量!"); dr["TOTAL_QTY"] = ""; return; } if (dr["DEAL_REMARK"].ToString() == "") { MessageUtil.ShowTips("盘库原因不能为空!"); return; } } if (MessageUtil.ShowYesNoAndQuestion("是否确认对此记录进行盘库?") == DialogResult.Yes) { string userId = UserInfo.GetUserID(); string user = UserInfo.GetUserName(); string strDate = DateTime.Now.ToString(); ArrayList all = new ArrayList(); ArrayList alBase = new ArrayList();//盘盈盘亏记录表 ArrayList alBaseParams = new ArrayList(); ArrayList alCk = new ArrayList();//库存记录表 ArrayList alCkParams = new ArrayList(); ArrayList alCkInBill = new ArrayList();//入库记录表 ArrayList alCkInBillParams = new ArrayList(); ArrayList alCkInBillPos = new ArrayList();//入库记录表 ArrayList alCkInBillPosParams = new ArrayList(); ArrayList alCkOutBill = new ArrayList();//出库记录表 ArrayList alCkOutBillParams = new ArrayList(); ArrayList alCkOutBillPos = new ArrayList();//出库记录从表 ArrayList alCkOutBillPosParams = new ArrayList(); string strDIFF_QTY = ""; foreach (DataRow dr in arr) { alBaseParams = new ArrayList(); if (dr["DEAL_WAY"].ToString() == "盘盈") { alBaseParams.Add("1");//盘库类型代码 } else { alBaseParams.Add("2");//盘亏 } alBaseParams.Add(dr["DEAL_WAY"].ToString());//盘库类型名称 alBaseParams.Add("");//盘库原因代码 alBaseParams.Add(dr["DEAL_REMARK"].ToString());//盘库原因名称 alBaseParams.Add(dr["INV_POS_ID"].ToString()); alBaseParams.Add(dr["INV_ID"].ToString());//库存记录号 alBaseParams.Add(dr["STOCK_NO"].ToString());//出库或入库单号 alBaseParams.Add(dr["ORDER_ID"].ToString()); alBaseParams.Add(dr["ORDER_LINE_SQE"].ToString()); alBaseParams.Add(dr["SUPP_CODE"].ToString()); alBaseParams.Add(dr["SUPP_NAME"].ToString()); alBaseParams.Add(dr["INV_PHYSIC"].ToString()); alBaseParams.Add(dr["INV_POS"].ToString());//库位 alBaseParams.Add(dr["ITEM_UNIQUE"].ToString()); alBaseParams.Add(dr["ITEM_CODE"].ToString()); alBaseParams.Add(dr["ITEM_NAME"].ToString()); alBaseParams.Add(dr["ITEM_UOM"].ToString());//采购单位 alBaseParams.Add(dr["ITEM_UOM_CONEFFICIENT"].ToString()); alBaseParams.Add(dr["WEIGHT_UNIT"].ToString()); alBaseParams.Add(dr["BATCH_NO"].ToString()); alBaseParams.Add(dr["START_QTY"].ToString());//数据库原始量 alBaseParams.Add("");//采购量 BUY_QTY alBaseParams.Add("");//采购价格 BUY_PRICE alBaseParams.Add(dr["INV_QTY"].ToString());//库存数量 alBaseParams.Add(dr["INV_PRICE"].ToString());//库存价格 alBaseParams.Add(dr["INV_AMT"].ToString()); alBaseParams.Add(dr["TOTAL_QTY"].ToString());//盘点量 REAL_QTY alBaseParams.Add(Convert.ToDouble(dr["INV_PRICE"].ToString()) * Convert.ToDouble(dr["TOTAL_QTY"].ToString()));//盘点金额 REAL_AMT alBaseParams.Add(dr["DIFF_QTY"].ToString());//差异量 alBaseParams.Add(Convert.ToDouble(dr["INV_PRICE"].ToString()) * Convert.ToDouble(dr["DIFF_QTY"].ToString()));//差异金额dr["DIFF_AMT"].ToString() alBaseParams.Add("");//备注 alBaseParams.Add(user);//创建人 alBase.Add(alBaseParams); //改变库存量 strDIFF_QTY = ""; alCkParams = new ArrayList(); if (dr["ITEM_UOM"].ToString() == "基吨") { strDIFF_QTY = dr["DIFF_QTY"].ToString(); } else { strDIFF_QTY = Math.Round(Convert.ToDouble(dr["DIFF_QTY"].ToString()) / Convert.ToDouble(dr["ITEM_UOM_CONEFFICIENT"].ToString()), 4).ToString(); } alCkParams.Add(strDIFF_QTY); alCkParams.Add(dr["INV_POS_ID"].ToString()); alCk.Add(alCkParams); //盘亏盘盈都入库 盘亏为负的入库记录 alCkInBillParams = new ArrayList(); alCkInBillParams.Add(dr["INV_ID"].ToString()); alCkInBillParams.Add(dr["STATUS"].ToString());//STATUS 3已结算 "3" alCkInBillParams.Add(dr["PUR_LINE_ID"].ToString()); alCkInBillParams.Add(dr["REFE_ID"].ToString()); alCkInBillParams.Add(dr["REF_TYPE"].ToString()); alCkInBillParams.Add(dr["ORDER_ID"].ToString()); alCkInBillParams.Add(dr["ORDER_LINE_SQE"].ToString()); alCkInBillParams.Add(dr["SUPP_CODE"].ToString()); alCkInBillParams.Add(dr["SUPP_NAME"].ToString()); alCkInBillParams.Add(dr["INV_PHYSIC"].ToString()); alCkInBillParams.Add(dr["INV_POS"].ToString()); alCkInBillParams.Add(dr["ITEM_UNIQUE"].ToString()); alCkInBillParams.Add("");//ITEM_UOM_ID alCkInBillParams.Add("");//ITEM_ATTR_ID alCkInBillParams.Add("");//ITEM_ATTR alCkInBillParams.Add("");//ITEM_STANDARDS_ID alCkInBillParams.Add("");//ITEM_STANDARDS_CODE alCkInBillParams.Add(dr["ITEM_CODE"].ToString());//ITEM_CODE alCkInBillParams.Add("");//ITEM_DESC alCkInBillParams.Add("");//ITEM_DESC_E alCkInBillParams.Add(dr["ITEM_NAME"].ToString()); alCkInBillParams.Add("");//ITEM_SPEC alCkInBillParams.Add("");//ITEM_USE_UOM alCkInBillParams.Add(dr["BATCH_NO"].ToString()); alCkInBillParams.Add(dr["ITEM_UOM"].ToString()); alCkInBillParams.Add(dr["ITEM_UOM_CONEFFICIENT"].ToString()); alCkInBillParams.Add(dr["WEIGHT_UNIT"].ToString()); alCkInBillParams.Add("8");//RECEIVE_TYPE 入库类型 盘盈入库 alCkInBillParams.Add(strDIFF_QTY);//入库数量 alCkInBillParams.Add(Math.Round(Convert.ToDouble(dr["INV_PRICE"].ToString()) * Convert.ToDouble(dr["DIFF_QTY"].ToString()), 2));//入库金额 alCkInBillParams.Add(dr["BUG_PRICE"].ToString());//计划价 if (dr["DEAL_WAY"].ToString() == "盘盈") { alCkInBillParams.Add("盘盈入库");//备注 } else { alCkInBillParams.Add("盘亏入库"); } alCkInBillParams.Add("1");//VALIDFLAG alCkInBillParams.Add(dr["BUY_PRICE"].ToString());//入库单价 alCkInBillParams.Add(dr["BUY_PRICE_TAX"].ToString());//含税入库单价 alCkInBillParams.Add(dr["REFE_ID"].ToString().Trim() + "_pk");//盘库标识+财务标识 alCkInBillParams.Add(userId); alCkInBillParams.Add(user); alCkInBill.Add(alCkInBillParams); alCkInBillPosParams = new ArrayList(); alCkInBillPosParams.Add(dr["INV_ID"].ToString()); alCkInBillPosParams.Add(dr["INV_PHYSIC"].ToString()); alCkInBillPosParams.Add(dr["INV_POS"].ToString()); alCkInBillPosParams.Add(strDIFF_QTY);//入库数量 if (dr["DEAL_WAY"].ToString() == "盘盈") { alCkInBillPosParams.Add("盘盈入库");//备注 } else { alCkInBillPosParams.Add("盘亏入库"); } alCkInBillPosParams.Add("1");//VALIDFLAG alCkInBillPosParams.Add(userId); alCkInBillPosParams.Add(user); alCkInBillPos.Add(alCkInBillPosParams); } if (alBase.Count == 0) { MessageUtil.ShowTips("已勾选数据请填写正确!"); return; } all.Add(alBase); all.Add(alCk); all.Add(alCkInBill); all.Add(alCkInBillPos); PublicServer.SetData("com.hnshituo.pur.ck.service.impl.FrmCkInventory.ConfirmCkInventory", new Object[] { all }, ob); QueryCkInventory(); MessageUtil.ShowTips("盘库成功!"); } } catch (Exception e) { //QueryCkOutInCarryRecord(); MessageUtil.ShowWarning(e.Message); return; } } private void CancelCkInventory() { } private void PrintCkInventory() { try { if (ultraTabControl1.SelectedTab.Index != 0) { return; } if (ultraGrid1.Rows.Count == 0 || dataTable1.Rows.Count == 0) { return; } this.Cursor = Cursors.WaitCursor; //参数传递 ArrayList arrayList = new ArrayList(); if (chkINV_PHYSIC.Checked && ultraINV_PHYSIC.Value != null)//库区 { arrayList.Add(ultraINV_PHYSIC.Value.ToString()); } else { arrayList.Add(""); } if (chkINV_POS.Checked && ultraINV_POS.Value != null)//库位 { arrayList.Add(ultraINV_POS.Value.ToString()); } else { arrayList.Add(""); } if (chkBASENAME.Checked && ultraQueryBASENAME.Value != null)//物料中类 { arrayList.Add(ultraQueryBASENAME.Value.ToString()); } else { arrayList.Add(""); } if (chkITEM_NAME.Checked) { arrayList.Add(ultraQueryITEM_NAME.Text.Trim()); } else { arrayList.Add(""); } if (chkNo.Checked) { arrayList.Add(""); } else { arrayList.Add("1"); } string strurl = ""; //if (ob.MainUrl.StartsWith("http://127.0.0.1")) //{ // strurl = "http://localhost:8075/webroot/decision/view/report?viewlet=RepPmsCkInventory.cpt&bypagesize=false&INV_PHYSIC=" + arrayList[0].ToString() + "&INV_POS=" + arrayList[1].ToString() + "&ITEM_CLASS=" + arrayList[2].ToString() + "&ITEM_NAME=" + arrayList[3].ToString() + "&SHOW_ZERO=" + arrayList[4].ToString(); //} //else //{ strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepPmsCkInventory.cpt&bypagesize=false&INV_PHYSIC=" + arrayList[0].ToString() + "&INV_POS=" + arrayList[1].ToString() + "&ITEM_CLASS=" + arrayList[2].ToString() + "&ITEM_NAME=" + arrayList[3].ToString() + "&SHOW_ZERO=" + arrayList[4].ToString() + "&ID=" + 1232030; //} FrmRepExcel fBug = new FrmRepExcel(ob, strurl); fBug.AutoSize = true; fBug.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); fBug.WindowState = FormWindowState.Maximized; fBug.Text = "盘点单"; fBug.Show(); } finally { this.Cursor = Cursors.Default; } } //导出 private void ExportCkInventory() { ArrayList alUltraGrid = new ArrayList(); ArrayList alSheeft = new ArrayList(); if (ultraTabControl1.SelectedTab.Index == 0) { alUltraGrid.Add(ultraGrid1); alSheeft.Add("库存记录"); if (ultraGrid1.Rows.Count > 0) { GridHelper.ulGridToExcel(alUltraGrid, alSheeft, dateBegin.DateTime.ToString("yyyyMM") + "库存记录");//导出excel } } else if (ultraTabControl1.SelectedTab.Index == 1) { alUltraGrid.Add(ultraGrid3); alSheeft.Add("盘库记录"); if (ultraGrid3.Rows.Count > 0) { GridHelper.ulGridToExcel(alUltraGrid, alSheeft, dateBegin.DateTime.ToString("yyyyMM") + "盘库记录");//导出excel } } } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { QueryCkInventoryDetail(); } private void QueryCkInventoryDetail() { try { dataTable2.Rows.Clear(); ArrayList arrayList = new ArrayList(); arrayList.Add(ultraGrid1.ActiveRow.Cells["INV_PHYSIC"].Text.Trim()); arrayList.Add(ultraGrid1.ActiveRow.Cells["INV_POS"].Text.Trim()); arrayList.Add(ultraGrid1.ActiveRow.Cells["INV_POS"].Text.Trim()); arrayList.Add(ultraGrid1.ActiveRow.Cells["INV_POS"].Text.Trim()); arrayList.Add(ultraGrid1.ActiveRow.Cells["ITEM_CODE"].Text.Trim()); if (chkNo.Checked && chkTime.Checked) { arrayList.Add(dateStart.DateTime.ToShortDateString() + " 00:00:00"); arrayList.Add(dateEnd.DateTime.ToShortDateString() + " 23:59:59"); } else { //arrayList.Add("0001/01/01 00:00:00"); //arrayList.Add("9999/12/31 23:59:59"); } DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkInventory.QueryCkInventoryDetail", new Object[] { arrayList, chkNo.Checked ? "0" : "1" }, ob);// if (dt == null || dt.Rows.Count == 0) { return; } GridHelper.CopyDataToDatatable(dt, dataTable2, true);//把dt复制给dataTable1 PublicPur.RefreshAndAutoSizeColumns(ultraGrid2, new string[] { "TOTAL_QTY", "DIFF_QTY", "DEAL_REMARK" }, false);//刷新Grid //GridHelper.RefreshAndAutoSize(ultraGrid2); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void ultraGrid2_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid2.UpdateData(); if (e.Cell.Column.Key == "CHK") { if (e.Cell.Row.Cells["STATUS"].Value.ToString() == "0") { MessageUtil.ShowTips("待入库的库存不能进行盘库!"); e.Cell.Value = "False"; } else { PublicPur.GridEdite(ultraGrid2.ActiveRow); } } else if (e.Cell.Column.Key == "TOTAL_QTY")//判定盘库量 { if (e.Cell.Value.ToString() != "") { if (!StringUtil.IsDouble(e.Cell.Value.ToString())) { MessageUtil.ShowTips("请输入数字类型!"); e.Cell.Value = ""; return; } if (Convert.ToDouble(e.Cell.Value.ToString()) < 0) { MessageUtil.ShowTips("盘库量不能小于0!"); e.Cell.Value = ""; return; } double diffNum = Convert.ToDouble(e.Cell.Row.Cells["TOTAL_QTY"].Value.ToString()) - Convert.ToDouble(e.Cell.Row.Cells["INV_QTY"].Text.Trim()); //if (diffNum == 0) //{ // MessageUtil.ShowTips("盘库量不能等于库存量!"); // e.Cell.Value = ""; // return; //} //else if (diffNum > 0) { e.Cell.Row.Cells["DEAL_WAY"].Value = "盘盈"; e.Cell.Row.Cells["DIFF_QTY"].Value = diffNum; return; } else if (diffNum < 0) { e.Cell.Row.Cells["DEAL_WAY"].Value = "盘亏"; e.Cell.Row.Cells["DIFF_QTY"].Value = diffNum; } else { e.Cell.Row.Cells["DEAL_WAY"].Value = ""; e.Cell.Row.Cells["DIFF_QTY"].Value = ""; } } else { e.Cell.Row.Cells["DEAL_WAY"].Value = ""; e.Cell.Row.Cells["DIFF_QTY"].Value = ""; } } //else if (e.Cell.Column.Key == "DIFF_QTY")//判定差异量 //{ // if (e.Cell.Value.ToString() != "") // { // if (!StringUtil.IsDouble(e.Cell.Value.ToString())) // { // MessageUtil.ShowTips("请输入数字类型!"); // e.Cell.Value = ""; // return; // } // if (e.Cell.Row.Cells["DEAL_WAY"].Text.Trim() == "") // { // MessageUtil.ShowTips("请选择处理类型!"); // e.Cell.Value = ""; // return; // } // if (e.Cell.Row.Cells["DEAL_WAY"].Text.Trim() == "盘亏" && Convert.ToDouble(e.Cell.Row.Cells["DIFF_QTY"].Value.ToString()) > Convert.ToDouble(e.Cell.Row.Cells["INV_QTY"].Text.Trim())) // { // MessageUtil.ShowTips("处理类型为盘亏差异量不能大于库存量!"); // e.Cell.Value = ""; // return; // } // } //} } private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { ultraGrid2.UpdateData(); PublicPur.GridEdite(ultraGrid2.ActiveRow); } private void chkINV_PHYSIC_CheckedChanged(object sender, EventArgs e) { ultraINV_PHYSIC.Enabled = chkINV_PHYSIC.Checked; } private void chkINV_POS_CheckedChanged(object sender, EventArgs e) { ultraINV_POS.Enabled = chkINV_POS.Checked; } private void chkBASENAME_CheckedChanged(object sender, EventArgs e) { ultraQueryBASENAME.Enabled = chkBASENAME.Checked; } private void chkITEM_NAME_CheckedChanged(object sender, EventArgs e) { ultraQueryITEM_NAME.Enabled = chkITEM_NAME.Checked; } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (ultraTabControl1.SelectedTab.Index == 0) { chkDate.Enabled = false; dateBegin.Enabled = false; } else if (ultraTabControl1.SelectedTab.Index == 1) { chkDate.Enabled = true; dateBegin.Enabled = true; } } } }