using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Tool; using Infragistics.Win.UltraWinGrid; using Pur.Entity; 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; using com.hnshituo.pur.vo; using Core.Mes.Client.Comm.Server; using Pur.require_plan; namespace Pur.ck { public partial class FrmCkStoreRed : FrmPmsBase { public FrmCkStoreRed() { InitializeComponent(); } //填写库存量 protected override void OnLoad(EventArgs e) { base.OnLoad(e); //ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//不默认加载筛选条件框 ultraGrid1_1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid2_1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; //ultraGrid3.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; } private void FrmCkStoreRed_Load(object sender, EventArgs e) { InitColumns(); ChangeStyle(); SetSumCount(); } private void InitColumns() { string[] arrColumns = new string[] { "CHK", "IN_STOCK_NO", "INV_PHYSIC", "INV_POS", "ORDER_ID", "ORDER_LINE_SQE", "PRINT_CODE", "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", "RED_QTY", "DEAL_REMARK", "IS_RED" }; string[] arrColumnsCaption = new string[] { "选择", "入库单号", "库区", "库位", "合同号", "合同行号", "打印编号", "供应商", "供应商", "物料中类", "物料编码", "物料名称", "采购单位", "转换系数", "采购单价", "采购数量/折基量", "库存单位", "库存单价", "库存数量", "总价", "红冲量", "红冲原因", "是否红冲" }; //PublicPur.InitColumns(arrColumns, arrColumnsCaption, dataTable1, ultraGrid1, new string[] { "CHK", "INV_PHYSIC", "INV_POS", "ORDER_ID", "SUPP_CODE", "ITEM_CLASS", "ITEM_CODE", "RED_QTY", "DEAL_REMARK", "IS_RED" }, false, null);//new string[] { "RED_QTY" } PublicPur.InitColumns(arrColumns, arrColumnsCaption, dataTable1, ultraGrid1, new string[] { "INV_PHYSIC", "INV_POS", "ORDER_ID", "SUPP_CODE", "ITEM_CLASS", "ITEM_CODE", "RED_QTY", "DEAL_REMARK", "IS_RED" }, false, new string[] { "CHK"});//new string[] { "RED_QTY" } //BUY_QTY 采购数量 string[] arrColumnsDetail = new string[] { "CHK", "INV_POS_ID", "INV_ID", "IN_STOCK_NO", "ORDER_ID", "ORDER_LINE_SQE", "SUPP_CODE", "SUPP_NAME", "STATUS", "MR_LINE_ID", "REFE_ID", "REF_TYPE", "DELIVER_SHEET_ID", "DELIVER_ADDRESS", "INV_PHYSIC", "INV_POS", "ITEM_UNIQUE", "ITEM_CLASS", "ITEM_CODE", "ITEM_DESC", "ITEM_DESC_E", "ITEM_NAME", "BATCH_NO", "START_QTY", "ITEM_UOM", "ITEM_UOM_CONEFFICIENT", "BUY_PRICE", "BUY_PRICE_TAX", "BUY_QTY", "WEIGHT_UNIT", "INV_PRICE", "INV_QTY", "BUG_PRICE", "INV_AMT", "STORE_QTY", "RED_QTY", "DEAL_REMARK", "COST_CENTER", "USE_ORG_ID", "USE_ORG_NAME" }; string[] arrColumnsCaptionDetail = new string[] { "选择", "主键", "库存记录号", "单号", "合同号", "合同行号", "供应商代码", "供应商", "状态", "领用计划行号", "参考单号", "参考单类别", "送货单号", "送货地址", "库区", "库位", "物料唯一码", "物料大类", "物料编码", "物料描述", "物料英文名称", "物料名称", "批次号", "原始量", "采购单位", "转换系数", "采购单价", "含税采购单价", "采购数量/折基量", "库存单位", "库存单价", "库存数量", "计划价", "总价", "在库量", "红冲量", "红冲原因", "成本中心", "领用单位", "领用单位" }; PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable1_1, ultraGrid1_1, new string[] { "CHK", "BUY_PRICE", "BUY_QTY", "INV_PRICE", "INV_QTY", "INV_AMT", "STORE_QTY", "RED_QTY", "DEAL_REMARK" }, true, new string[] { "CHK", "RED_QTY", "DEAL_REMARK" }); //string[] arrColumnsOut = new string[] { "CHK", "INV_PHYSIC", "INV_POS", "ORDER_ID", "ORDER_LINE_SQE", "OUT_STOCK_NO", "PRINT_CODE", "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", "RED_QTY", "DEAL_REMARK" }; //string[] arrColumnsCaptionOut = new string[] { "选择", "库区", "库位", "合同号", "合同行号", "出库单号", "打印编号", "供应商", "供应商", "物料中类", "物料编码", "物料名称", "采购单位", "转换系数", "采购单价", "采购数量", "库存单位", "库存单价", "出库数量", "总价", "红冲量", "红冲原因" }; //出库记录 PublicPur.InitColumns(arrColumns, arrColumnsCaption, dataTable2, ultraGrid2, new string[] { "CHK", "INV_PHYSIC", "INV_POS", "ORDER_ID", "ORDER_LINE_SQE", "SUPP_CODE", "SUPP_NAME", "ITEM_CLASS", "ITEM_CODE", "BUY_QTY", "DEAL_REMARK", "IS_RED" }, false, null); PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable2_1, ultraGrid2_1, new string[] { "CHK", "ORDER_LINE_SQE", "SUPP_NAME", "INV_PRICE", "INV_QTY", "INV_AMT", "STORE_QTY", "RED_QTY", "DEAL_REMARK" }, true, new string[] { "CHK", "RED_QTY", "DEAL_REMARK" }); string[] arrColumnsRecord = new string[] { "CHK", "STOCKTAKING_DOC", "STOCKTAKING_TYPE_NAME", "INV_PHYSIC", "INV_POS", "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", "RED_QTY", "DEAL_REMARK", "CREATE_NAME", "CREATE_TIME_", "IS_RED" };//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", "IS_RED" }, false, new string[] { "CHK" });//一般情况下后边是null,chk能勾上所以 dataTable2.Columns["IN_STOCK_NO"].Caption = "出库单号"; dataTable2.Columns["INV_QTY"].Caption = "出库数量"; dataTable2_1.Columns["INV_QTY"].Caption = "出库数量"; } //显示位数 private void ChangeStyle() { PublicPur.InitCellPositionRight(new UltraGrid[] { ultraGrid1, ultraGrid1_1, ultraGrid2, ultraGrid2_1, ultraGrid3 }, new string[] { "ITEM_UOM_CONEFFICIENT", "BUY_PRICE", "BUY_QTY", "INV_PRICE", "INV_QTY", "INV_AMT", "STORE_QTY", "RED_QTY" }); PublicPur.InitColumnShowLength(new UltraGrid[] { ultraGrid1, ultraGrid1_1, ultraGrid2, ultraGrid2_1, ultraGrid3 }, 0, new string[] { "BUY_QTY", "INV_QTY", "STORE_QTY", "RED_QTY" }, 4, false); PublicPur.InitColumnShowLength(new UltraGrid[] { ultraGrid1, ultraGrid1_1, ultraGrid2, ultraGrid2_1, ultraGrid3 }, 0, new string[] { "BUY_PRICE", "INV_PRICE", "INV_AMT" }, 2, false); PublicPur.InitColumnShowLength(new UltraGrid[] { ultraGrid1, ultraGrid1_1, ultraGrid2, ultraGrid2_1, ultraGrid3 }, 0, new string[] { "ITEM_UOM_CONEFFICIENT" }, 6, false); } //设置统计风格 private void SetSumCount() { UltraGridBand GridBand = this.ultraGrid3.DisplayLayout.Bands[0];//this.ultraGrid3.Rows.Band PublicPur.SetupSummaryHeade(new String[] { "Count", "Sum" }, new String[] { "共{0}条", "{0}" }, new string[] { "STOCKTAKING_DOC", "RED_QTY" }, GridBand, SummaryDisplayAreas.TopFixed); } //菜单按钮事件 public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": if (ultraTabControl1.SelectedTab.Index == 0) { QueryCkInBillRecord();//查询入库记录 } else if (ultraTabControl1.SelectedTab.Index == 1) { QueryCkOutBillRecord(); } else if (ultraTabControl1.SelectedTab.Index == 2) { QueryCkStoreRedRecord();//查询红冲记录 } break; case "Carry"://确认红冲 if (ultraTabControl1.SelectedTab.Index == 0) { ConfirmCkInBillStoreRed(); } else if (ultraTabControl1.SelectedTab.Index == 1) { ConfirmCkOutBillStoreRed(); } break; case "Cancel"://取消红冲 CancelCkOutInCarryRecord(); break; case "Print"://红冲打印 CkOutInCarryRecordPrint(); break; case "Close": if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes) { this.Close(); } break; } } private void CkOutInCarryRecordPrint() { try { string record = ""; if (ultraTabControl1.SelectedTab.Index != 2) { return; } ultraGrid3.UpdateData(); DataRow[] arr = dataTable3.Select("CHK = 'True'"); this.Cursor = Cursors.WaitCursor; //UltraGridRow ugr = ultraGrid2.ActiveRow; if (arr.Length==0) { MessageUtil.ShowWarning("请选择您要打印的红冲记录!"); return; } else { foreach(DataRow dr in arr) { if (record == "" || record == null) { record = dr["STOCKTAKING_DOC"].ToString(); } else { record = record + "','" + dr["STOCKTAKING_DOC"].ToString(); } } } string strurl = ""; //if (ob.MainUrl.StartsWith("http://127.0.0.1")) //{ strurl = "http://localhost:8075/webroot/decision/view/report?viewlet=rpt_OutBill_redDev.cpt&op=view" + "&STOCKDOC=" + record; //} //else //{ //strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=rpt_OutBill_redDev.cpt&op=view" + "&abc=" + abc; //} comm.printReport(this.ob, strurl, "红冲记录打印"); if (MessageUtil.ShowYesNoAndQuestion("是否确认打印?") == DialogResult.Yes) { foreach(DataRow dr in arr) { dr["IS_RED"] = "1"; } ChangeColor(ultraGrid3); } } finally { this.Cursor = Cursors.Default; } } private void ChangeColor(UltraGrid ug) { foreach (UltraGridRow ur in ug.Rows) { if (ur.Cells["IS_RED"].Text.Trim() != "0") { ur.Appearance.ForeColor = Color.Red; } } } private void QueryCkInBillRecord() { try { dataTable1.Rows.Clear(); ArrayList arrayList = new ArrayList(); if (chkDate.Checked) { arrayList.Add(dateBegin.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"); } 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 (chkITEM_CODE.Checked) { arrayList.Add(ultraQueryITEM_CODE.Text.Trim()); arrayList.Add(ultraQueryITEM_CODE.Text.Trim()); arrayList.Add(ultraQueryITEM_CODE.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkORDER_LINE_SQE.Checked) { arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim()); arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim()); arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkSTOCK_NO.Checked) { arrayList.Add(txtSTOCK_NO.Text.Trim()); arrayList.Add(txtSTOCK_NO.Text.Trim()); arrayList.Add(txtSTOCK_NO.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkInBillRecord", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { dataTable1_1.Rows.Clear(); dataTable1.Rows.Clear(); return; } GridHelper.CopyDataToDatatable(dt, dataTable1, true);//把dt复制给dataTable1 ChangeColor(ultraGrid1); GridHelper.RefreshAndAutoSize(ultraGrid1); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void QueryCkOutBillRecord() { try { dataTable2.Rows.Clear(); ArrayList arrayList = new ArrayList(); if (chkDate.Checked) { arrayList.Add(dateBegin.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"); } 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 (chkITEM_CODE.Checked) { arrayList.Add(ultraQueryITEM_CODE.Text.Trim()); arrayList.Add(ultraQueryITEM_CODE.Text.Trim()); arrayList.Add(ultraQueryITEM_CODE.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkORDER_LINE_SQE.Checked) { arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim()); arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim()); arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkSTOCK_NO.Checked) { arrayList.Add(txtSTOCK_NO.Text.Trim()); arrayList.Add(txtSTOCK_NO.Text.Trim()); arrayList.Add(txtSTOCK_NO.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkOutBillRecord", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { dataTable2_1.Rows.Clear(); dataTable2.Rows.Clear(); return; } GridHelper.CopyDataToDatatable(dt, dataTable2, true);//把dt复制给dataTable1 ChangeColor(ultraGrid2); GridHelper.RefreshAndAutoSize(ultraGrid2); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } //查询红冲记录 private void QueryCkStoreRedRecord() { try { dataTable3.Rows.Clear(); ArrayList arrayList = new ArrayList(); if (chkDate.Checked) { arrayList.Add(dateBegin.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"); } 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 (chkITEM_CODE.Checked) { arrayList.Add(ultraQueryITEM_CODE.Text.Trim()); arrayList.Add(ultraQueryITEM_CODE.Text.Trim()); arrayList.Add(ultraQueryITEM_CODE.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkORDER_LINE_SQE.Checked) { arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim()); arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim()); arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkSTOCK_NO.Checked) { arrayList.Add(txtSTOCK_NO.Text.Trim()); arrayList.Add(txtSTOCK_NO.Text.Trim()); arrayList.Add(txtSTOCK_NO.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkStoreRedRecord", 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 ConfirmCkInBillStoreRed() { try { if (ultraTabControl1.SelectedTab.Index != 0) { MessageUtil.ShowTips("只有选择了入库单红冲页才能进行红冲操作!"); return; } if (ultraGrid1.ActiveRow == null || dataTable1.Rows.Count == 0) { MessageUtil.ShowTips("请选择一条记录进行红冲操作!"); return; } if (ultraGrid1.ActiveRow.Cells["IS_RED"].Text.Trim() != "0") { MessageUtil.ShowTips("此记录已经红冲不允许再次操作!"); return; } ultraGrid1_1.UpdateData(); DataRow[] arr = dataTable1_1.Select("CHK = 'True'"); if (arr.Length == 0) { MessageUtil.ShowTips("请至少勾选一条库存记录进行红冲操作!"); return; } string strValid = IsValid(dataTable1_1); if (strValid != "") { MessageUtil.ShowTips(strValid); 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(); ArrayList listSubC = new ArrayList(); string strDIFF_QTY = ""; foreach (DataRow dr in arr) { //if (dr["DEAL_REMARK"].ToString() == "") //{ // MessageUtil.ShowTips("红冲原因不能为空!"); // return; //} if (dr["RED_QTY"].ToString() != "") { strDIFF_QTY = ""; if (ultraGrid1.ActiveRow.Cells["ITEM_CLASS"].Text.Trim() == "W01") { strDIFF_QTY = "-" + dr["RED_QTY"].ToString(); } else { //非铁合金的入库量需要除以转换系数 strDIFF_QTY = "-" + Math.Round(Convert.ToDouble(dr["RED_QTY"].ToString()) / Convert.ToDouble(ultraGrid1.ActiveRow.Cells["ITEM_UOM_CONEFFICIENT"].Text.Trim()), 4);//入库数量 } alBaseParams = new ArrayList(); alBaseParams.Add("3");//盘库类型代码 3红冲入库 alBaseParams.Add("红冲入库");//盘库类型名称 alBaseParams.Add("");//盘库原因代码 alBaseParams.Add(dr["DEAL_REMARK"].ToString());//盘库原因名称 alBaseParams.Add(dr["INV_POS_ID"].ToString()); alBaseParams.Add(dr["INV_ID"].ToString());//库存记录号 alBaseParams.Add(dr["IN_STOCK_NO"].ToString());//原出库或入库单号 IN_STOCK_NO 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("");//盘点量 REAL_QTY alBaseParams.Add("");//盘点金额 REAL_AMT alBaseParams.Add(dr["RED_QTY"].ToString());//红冲量 alBaseParams.Add(Convert.ToDouble(dr["INV_PRICE"].ToString()) * Convert.ToDouble(dr["RED_QTY"].ToString()));//红冲金额 alBaseParams.Add("");//备注 alBaseParams.Add(user);//创建人 alBase.Add(alBaseParams); //改变库存量 alCkParams = new ArrayList(); alCkParams.Add(strDIFF_QTY); //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 未结算 alCkInBillParams.Add(dr["MR_LINE_ID"].ToString()); alCkInBillParams.Add(dr["REFE_ID"].ToString()); if (String.IsNullOrEmpty(dr["REFE_ID"].ToString().Trim())) { MessageUtil.ShowTips("送货单号为空!"); return; } listSubC.Add(dr["REFE_ID"].ToString().Trim()); 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("7");//RECEIVE_TYPE 入库类型 红冲入库 alCkInBillParams.Add(strDIFF_QTY);//入库数量 alCkInBillParams.Add("-" + Math.Round(Convert.ToDouble(dr["INV_PRICE"].ToString()) * Convert.ToDouble(dr["RED_QTY"].ToString()), 2));//入库金额 alCkInBillParams.Add(dr["BUG_PRICE"].ToString());//计划价 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()+"_red");//红冲标识+财务标识 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);//入库数量 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); //all.Add(alCkOutBill); //all.Add(alCkOutBillPos); int ii= PublicServer.SetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.ConfirmCkInBillStoreRed", new Object[] { all, ultraGrid1.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim() }, ob); if (ii > 0) { QueryCkInBillRecord(); string str = string.Join(",", (string[])listSubC.ToArray(typeof(string))); if (MessageUtil.ShowYesNoAndQuestion("红冲成功,确定需要给红冲关联送货单行:" + str + "重新办理入库?") != DialogResult.Yes) { return; } CoreResult crt = this.execute("com.hnshituo.pur.ck.service.ExcDeliverySubCService", "doRed", new object[] { listSubC }); if (crt.Resultcode != 0) { MessageUtil.ShowTips("恢复待入库状态失败:" + crt.Resultmsg); return; } else { MessageUtil.ShowTips("已恢复待入库状态,请及时办理入库" ); return; } } } } catch (Exception e) { // QueryCkInBillRecord(); MessageUtil.ShowWarning(e.Message); return; } } private void ConfirmCkOutBillStoreRed() { try { if (ultraTabControl1.SelectedTab.Index != 1) { MessageUtil.ShowTips("只有选择了出库单红冲页才能进行红冲操作!"); return; } if (ultraGrid2.ActiveRow == null || dataTable2.Rows.Count == 0) { MessageUtil.ShowTips("请选择一条记录进行红冲操作!"); return; } if (ultraGrid2.ActiveRow.Cells["IS_RED"].Text.Trim() != "0") { MessageUtil.ShowTips("此记录已经红冲不允许再次操作!"); return; } ultraGrid2_1.UpdateData(); DataRow[] arr = dataTable2_1.Select("CHK = 'True'"); if (arr.Length == 0) { MessageUtil.ShowTips("请至少勾选一条库存记录进行红冲操作!"); return; } string strValid = IsValid(dataTable2_1); if (strValid != "") { MessageUtil.ShowTips(strValid); 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) { //if (dr["DEAL_REMARK"].ToString() == "") //{ // MessageUtil.ShowTips("红冲原因不能为空!"); // return; //} if (dr["RED_QTY"].ToString() != "") { strDIFF_QTY = ""; if (ultraGrid2.ActiveRow.Cells["ITEM_CLASS"].Text.Trim() == "W01") { strDIFF_QTY = dr["RED_QTY"].ToString(); } else { //非铁合金的入库量需要除以转换系数 strDIFF_QTY = Math.Round(Convert.ToDouble(dr["RED_QTY"].ToString()) / Convert.ToDouble(ultraGrid2.ActiveRow.Cells["ITEM_UOM_CONEFFICIENT"].Text.Trim()), 4).ToString();//入库数量 } alBaseParams = new ArrayList(); alBaseParams.Add("4");//盘库类型代码 3红冲出库 alBaseParams.Add("红冲出库");//盘库类型名称 alBaseParams.Add("");//红冲原因代码 alBaseParams.Add(dr["DEAL_REMARK"].ToString());//红冲原因名称 alBaseParams.Add(dr["INV_POS_ID"].ToString()); alBaseParams.Add(dr["INV_ID"].ToString());//库存记录号 alBaseParams.Add(dr["IN_STOCK_NO"].ToString());//原出库或入库单号 IN_STOCK_NO 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("");//盘点量 REAL_QTY alBaseParams.Add("");//盘点金额 REAL_AMT alBaseParams.Add(dr["RED_QTY"].ToString());//红冲量 alBaseParams.Add(Convert.ToDouble(dr["INV_PRICE"].ToString()) * Convert.ToDouble(dr["RED_QTY"].ToString()));//红冲金额 alBaseParams.Add("");//备注 alBaseParams.Add(user);//创建人 alBase.Add(alBaseParams); //改变库存量 alCkParams = new ArrayList(); alCkParams.Add(strDIFF_QTY); //alCkParams.Add(strDIFF_QTY); alCkParams.Add(dr["INV_POS_ID"].ToString()); alCk.Add(alCkParams); alCkOutBillParams = new ArrayList(); alCkOutBillParams.Add(dr["INV_ID"].ToString()); alCkOutBillParams.Add(dr["STATUS"].ToString());//STATUS 3已结算 alCkOutBillParams.Add(dr["MR_LINE_ID"].ToString()); alCkOutBillParams.Add(dr["REFE_ID"].ToString()); alCkOutBillParams.Add(dr["REF_TYPE"].ToString()); alCkOutBillParams.Add(dr["DELIVER_SHEET_ID"].ToString()); alCkOutBillParams.Add(dr["DELIVER_ADDRESS"].ToString()); alCkOutBillParams.Add(dr["COST_CENTER"].ToString());//成本中心 alCkOutBillParams.Add(dr["USE_ORG_ID"].ToString()); alCkOutBillParams.Add(dr["USE_ORG_NAME"].ToString()); alCkOutBillParams.Add(dr["INV_PHYSIC"].ToString()); //alCkOutBillParams.Add(dr["INV_POS"].ToString()); alCkOutBillParams.Add(dr["ITEM_UNIQUE"].ToString()); alCkOutBillParams.Add("");//ITEM_UOM_ID alCkOutBillParams.Add("");//ITEM_ATTR_ID alCkOutBillParams.Add("");//ITEM_ATTR alCkOutBillParams.Add("");//ITEM_STANDARDS_ID alCkOutBillParams.Add("");//ITEM_STANDARDS_CODE alCkOutBillParams.Add(dr["ITEM_CODE"].ToString());//ITEM_CODE alCkOutBillParams.Add("");//ITEM_DESC alCkOutBillParams.Add("");//ITEM_DESC_E alCkOutBillParams.Add(dr["ITEM_NAME"].ToString()); alCkOutBillParams.Add("");//ITEM_SPEC alCkOutBillParams.Add("");//ITEM_USE_UOM alCkOutBillParams.Add(dr["BATCH_NO"].ToString()); alCkOutBillParams.Add(dr["ITEM_UOM"].ToString()); alCkOutBillParams.Add(dr["ITEM_UOM_CONEFFICIENT"].ToString()); alCkOutBillParams.Add(dr["WEIGHT_UNIT"].ToString()); alCkOutBillParams.Add("7");//红冲出库 alCkOutBillParams.Add("-" + strDIFF_QTY);//出库数量 alCkOutBillParams.Add("-" + Math.Round(Convert.ToDouble(dr["INV_PRICE"].ToString()) * Convert.ToDouble(dr["RED_QTY"].ToString()) / Convert.ToDouble(dr["ITEM_UOM_CONEFFICIENT"].ToString()), 2));//入库金额 alCkOutBillParams.Add("红冲出库");//备注 alCkOutBillParams.Add("1");//VALIDFLAG alCkOutBillParams.Add(userId); alCkOutBillParams.Add(user); alCkOutBillParams.Add(dr["SUPP_CODE"].ToString()); alCkOutBillParams.Add(dr["SUPP_NAME"].ToString()); alCkOutBillParams.Add(dr["ORDER_ID"].ToString()); alCkOutBillParams.Add(dr["ORDER_LINE_SQE"].ToString()); alCkOutBillParams.Add(dr["BUY_PRICE"].ToString()); alCkOutBillParams.Add(dr["BUG_PRICE"].ToString()); alCkOutBill.Add(alCkOutBillParams); alCkOutBillPosParams = new ArrayList(); alCkOutBillPosParams.Add(dr["INV_ID"].ToString()); alCkOutBillPosParams.Add(dr["INV_POS_ID"].ToString()); alCkOutBillPosParams.Add(dr["INV_PHYSIC"].ToString()); alCkOutBillPosParams.Add(dr["INV_POS"].ToString()); alCkOutBillPosParams.Add("-" + strDIFF_QTY);//入库数量 alCkOutBillPosParams.Add("红冲出库");//备注 alCkOutBillPosParams.Add("1");//VALIDFLAG alCkOutBillPosParams.Add(userId); alCkOutBillPosParams.Add(user); alCkOutBillPos.Add(alCkOutBillPosParams); } } if (alBase.Count == 0) { MessageUtil.ShowTips("已勾选数据请填写正确!"); return; } all.Add(alBase); all.Add(alCk); //all.Add(alCkInBill); //all.Add(alCkInBillPos); all.Add(alCkOutBill); all.Add(alCkOutBillPos); PublicServer.SetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.ConfirmCkOutBillStoreRed", new Object[] { all, ultraGrid2.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim() }, ob); QueryCkOutBillRecord(); MessageUtil.ShowTips("红冲成功!"); } } catch (Exception e) { QueryCkOutBillRecord(); MessageUtil.ShowWarning(e.Message); return; } } private string IsValid(DataTable dataTable) { foreach (DataRow dr in dataTable.Rows) { if (dr["RED_QTY"].ToString() == "") { return "红冲量不能为空!"; } //else if (dr["DEAL_REMARK"].ToString() == "") //{ // return "红冲原因不能为空!"; //} } return ""; } private void CancelCkOutInCarryRecord() { try { if (ultraTabControl1.SelectedTab.Index != 2) { MessageUtil.ShowTips("只有选择了红冲记录页才能进行取消红冲操作!"); return; } if (ultraGrid3.ActiveRow == null || dataTable3.Rows.Count == 0) { MessageUtil.ShowTips("请选择一条记录进行取消红冲操作!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认对此记录进行取消红冲?") == DialogResult.Yes) { //1.判定新入库或出库记录状态是否改变 2.如果改变则不允许取消红冲 3.如果没有改变则先把新入库或者出库记录置为无效,盘库记录置为无效,库存改变回来 string userId = UserInfo.GetUserID(); string user = UserInfo.GetUserName(); ultraGrid3.UpdateData(); DataRow[] arr = dataTable3.Select("CHK = 'True'"); string strIN_STOCK_NO = ultraGrid3.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim();//原入库单号 string strSTOCK_NO = ultraGrid3.ActiveRow.Cells["STOCK_NO"].Text.Trim();//新单号 ArrayList all = new ArrayList(); ArrayList all1 = new ArrayList(); ArrayList all2 = new ArrayList(); ArrayList all3 = 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(); ArrayList alCkInBillTion = new ArrayList(); ArrayList alCkInBillTionParams = new ArrayList(); alBaseParams.Add(strSTOCK_NO); string inStockno = ""; foreach (DataRow dr in arr) { string Stock_In = dr["STOCKTAKING_DOC"].ToString(); string StockIn = dr["IN_STOCK_NO"].ToString(); //查询原入库单号对应的入库记录号 string invid = ""; string Outinvid = ""; DataTable dt = ServerHelper.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryInvid", new object[] { StockIn }, this.ob); if(dt.Rows.Count>0) { invid = dt.Rows[0]["INV_ID"].ToString(); } DataTable dt1 = ServerHelper.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryOutInvid", new object[] { StockIn }, this.ob); if (dt1.Rows.Count > 0) { Outinvid = dt1.Rows[0]["INV_ID"].ToString(); } alCkParams = new ArrayList(); alCkParams.Add("0"); alCkParams.Add(StockIn); alCk.Add(alCkParams); alCkInBillPosParams = new ArrayList(); alCkInBillPosParams.Add(dr["RED_QTY"].ToString()); alCkInBillPosParams.Add(StockIn); alCkInBillPosParams.Add(invid); alCkInBillPos.Add(alCkInBillPosParams); alCkOutBillPosParams = new ArrayList(); alCkOutBillPosParams.Add(dr["RED_QTY"].ToString()); alCkOutBillPosParams.Add(StockIn); alCkOutBillPosParams.Add(Outinvid); alCkOutBillPos.Add(alCkOutBillPosParams); alCkInBillParams = new ArrayList(); alCkInBillParams.Add("0"); alCkInBillParams.Add(dr["ORDER_LINE_SQE"].ToString()); alCkInBillParams.Add("%_red"); alCkInBillParams.Add(dr["STOCK_NO"].ToString()); alCkInBill.Add(alCkInBillParams); alCkInBillTionParams = new ArrayList(); alCkInBillTionParams.Add("0"); alCkInBillTionParams.Add(userId); alCkInBillTionParams.Add(user); alCkInBillTionParams.Add(dr["STOCK_NO"].ToString()); alCkInBillTion.Add(alCkInBillTionParams); } PublicServer.SetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.CancelCkOutInCarryRecord", new Object[] { alCk, alCkInBillPos, alCkOutBillPos, alCkInBill, alCkInBillTion }, ob); QueryCkStoreRedRecord(); MessageUtil.ShowTips("取消红冲成功!"); } } catch (Exception e) { //QueryCkStoreRedRecord(); MessageUtil.ShowWarning(e.Message); return; } } //private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) //{ // if (ultraGrid1.ActiveRow.Cells["IS_RED"].Text.Trim() == "0") // { // QueryCkInBillRecordDetail(); // } // else // { // QueryCkInBillRedRecordDetail(); // } //} private void QueryCkInBillRecordDetail() { try { dataTable1_1.Rows.Clear(); ultraGrid1.UpdateData(); DataRow[] arr = dataTable1.Select("CHK = 'True'"); ultraGrid1_1.UpdateData(); DataRow[] arr1 = dataTable1_1.Select("CHK = 'True'"); //ArrayList arrayList1 = new ArrayList(); //ArrayList arrayList = new ArrayList(); string arrayList1=""; foreach (DataRow dr in arr) { //arrayList.Add(ultraGrid1.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim()); //arrayList1.Add(dr["IN_STOCK_NO"].ToString()); // arrayList1 +=dr["IN_STOCK_NO"].ToString()+"','"; foreach (DataRow dr1 in arr1) { dr1["RED_QTY"] = dr1["BUY_QTY"].ToString(); } } //if(arrayList1.Count<=0) //{ // arrayList1.Add(ultraGrid1.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim()); //} //arrayList.Add(arrayList1); //string arrayList = arrayList1.Substring(0, arrayList1.Length-3); if(arr.Length>0) { DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkInBillRecordDetail", new Object[] { arr.Select(a => a["IN_STOCK_NO"].ToString()).ToArray() }, ob);// if (dt == null || dt.Rows.Count == 0) { dataTable1_1.Rows.Clear(); return; } GridHelper.CopyDataToDatatable(dt, dataTable1_1, true);//把dt复制给dataTable1 } PublicPur.RefreshAndAutoSizeColumns(ultraGrid1_1, new string[] { "RED_QTY", "DEAL_REMARK" }, false);//刷新Grid } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void QueryCkInBillRedRecordDetail() { try { dataTable1_1.Rows.Clear(); ultraGrid1.UpdateData(); DataRow[] arr = dataTable1.Select("CHK = 'True'"); ultraGrid1_1.UpdateData(); DataRow[] arr1 = dataTable1_1.Select("CHK = 'True'"); foreach (DataRow dr in arr) { foreach (DataRow dr1 in arr1) { dr1["RED_QTY"] = dr1["BUY_QTY"].ToString(); } } ArrayList arrayList = new ArrayList(); arrayList.Add(ultraGrid1.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim()); DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkInBillRedRecordDetail", new Object[] { arrayList }, ob);// if (dt == null || dt.Rows.Count == 0) { return; } GridHelper.CopyDataToDatatable(dt, dataTable1_1, true);//把dt复制给dataTable1 PublicPur.RefreshAndAutoSizeColumns(ultraGrid1_1, new string[] { "RED_QTY", "DEAL_REMARK" }, false);//刷新Grid ultraGrid1_1.Rows[0].Activation = Activation.ActivateOnly;//此行不可编辑 } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void ultraGrid1_1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid1_1.UpdateData(); //DataRow[] arr1 = dataTable1_1.Select("CHK = 'True'"); //foreach (DataRow dr in arr1) //{ // dr["RED_QTY"] = dr["BUY_QTY"].ToString(); //} if (e.Cell.Column.Key == "CHK") { PublicPur.GridEdite(ultraGrid1_1.ActiveRow); } else if (e.Cell.Column.Key == "RED_QTY")//DIFF_QTY { if (e.Cell.Value.ToString() != "") { if (!StringUtil.IsDouble(e.Cell.Value.ToString())) { MessageUtil.ShowTips("请输入数字类型!"); e.Cell.Value = ""; return; } if (Convert.ToDouble(e.Cell.Row.Cells["RED_QTY"].Value.ToString()) > Convert.ToDouble(e.Cell.Row.Cells["INV_QTY"].Text.Trim())) { MessageUtil.ShowTips("红冲量不能大于入库量!"); e.Cell.Value = ""; return; } //if (Convert.ToDouble(e.Cell.Row.Cells["RED_QTY"].Text.Trim()) > Convert.ToDouble(e.Cell.Row.Cells["STORE_QTY"].Text.Trim())) //{ // MessageUtil.ShowTips("红冲量不能大于库存量!"); // e.Cell.Value = ""; // return; //} } } } private void ultraGrid1_1_AfterRowActivate(object sender, EventArgs e) { ultraGrid1_1.UpdateData(); PublicPur.GridEdite(ultraGrid1_1.ActiveRow); } private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { if (ultraGrid2.ActiveRow.Cells["IS_RED"].Text.Trim() == "0") { QueryCkOutBillRecordDetail(); } else { QueryCkOutBillRedRecordDetail(); } } private void QueryCkOutBillRecordDetail() { try { dataTable2_1.Rows.Clear(); ArrayList arrayList = new ArrayList(); arrayList.Add(ultraGrid2.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim()); DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkOutBillRecordDetail", new Object[] { arrayList }, ob);// if (dt == null || dt.Rows.Count == 0) { return; } GridHelper.CopyDataToDatatable(dt, dataTable2_1, true);//把dt复制给dataTable1 //GridHelper.RefreshAndAutoSize(ultraGrid2_1); PublicPur.RefreshAndAutoSizeColumns(ultraGrid2_1, new string[] { "RED_QTY", "DEAL_REMARK" }, false);//刷新Grid } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void QueryCkOutBillRedRecordDetail() { try { dataTable2_1.Rows.Clear(); ArrayList arrayList = new ArrayList(); arrayList.Add(ultraGrid2.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim()); DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkOutBillRedRecordDetail", new Object[] { arrayList }, ob);// if (dt == null || dt.Rows.Count == 0) { return; } GridHelper.CopyDataToDatatable(dt, dataTable2_1, true);//把dt复制给dataTable1 //GridHelper.RefreshAndAutoSize(ultraGrid2_1); PublicPur.RefreshAndAutoSizeColumns(ultraGrid2_1, new string[] { "RED_QTY", "DEAL_REMARK" }, false);//刷新Grid ultraGrid2_1.Rows[0].Activation = Activation.ActivateOnly;//此行不可编辑 } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void ultraGrid2_1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid2_1.UpdateData(); if (e.Cell.Column.Key == "CHK") { PublicPur.GridEdite(ultraGrid2_1.ActiveRow); } else if (e.Cell.Column.Key == "RED_QTY")//DIFF_QTY { if (e.Cell.Value.ToString() != "") { if (!StringUtil.IsDouble(e.Cell.Value.ToString())) { MessageUtil.ShowTips("请输入数字类型!"); e.Cell.Value = ""; return; } if (Convert.ToDouble(e.Cell.Row.Cells["RED_QTY"].Value.ToString()) > Convert.ToDouble(e.Cell.Row.Cells["INV_QTY"].Text.Trim())) { MessageUtil.ShowTips("红冲量不能大于出库量!"); e.Cell.Value = ""; return; } } } } private void chkORDER_LINE_SQE_CheckedChanged(object sender, EventArgs e) { ultraQueryORDER_LINE_SQE.Enabled = chkORDER_LINE_SQE.Checked; } private void chkSTOCK_NO_CheckedChanged(object sender, EventArgs e) { txtSTOCK_NO.Enabled = chkSTOCK_NO.Checked; } private void chkITEM_CODE_CheckedChanged(object sender, EventArgs e) { ultraQueryITEM_CODE.Enabled = chkITEM_CODE.Checked; } private void chkITEM_NAME_CheckedChanged(object sender, EventArgs e) { ultraQueryITEM_NAME.Enabled = chkITEM_NAME.Checked; } private void ultraGrid2_1_AfterRowActivate(object sender, EventArgs e) { ultraGrid2_1.UpdateData(); PublicPur.GridEdite(ultraGrid2_1.ActiveRow); } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (ultraTabControl1.SelectedTab.Index == 0) { chkDate.Text = "入库时间"; chkSTOCK_NO.Text = "入库编号"; } else if (ultraTabControl1.SelectedTab.Index == 1) { chkDate.Text = "出库时间"; chkSTOCK_NO.Text = "出库编号"; } else if (ultraTabControl1.SelectedTab.Index == 2) { chkDate.Text = "红冲时间"; chkSTOCK_NO.Text = "红冲编号"; } } private void ultraGrid1_CellChange(object sender, CellEventArgs e) { if (ultraGrid1.ActiveRow.Cells["IS_RED"].Text.Trim() == "0") { QueryCkInBillRecordDetail(); } else { QueryCkInBillRedRecordDetail(); } //ultraGrid1.UpdateData(); //DataRow[] arr = dataTable1.Select("CHK = 'True'"); //ultraGrid1_1.UpdateData(); // DataRow[] arr1 = dataTable1_1.Select("CHK = 'True'"); //foreach (DataRow dr in arr) //{ // foreach (DataRow dr1 in arr1) // { // dr1["RED_QTY"] = dr1["BUY_QTY"].ToString(); // } //} } } }