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.balance { public partial class FrmBalanceOutBillManage : FrmPmsBase { public FrmBalanceOutBillManage() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); //ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//不默认加载筛选条件框 //ultraGrid2_1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; //ultraGrid2_2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; } private void FrmBalanceOutBillManage_Load(object sender, EventArgs e) { dateBegin.Value = dateEnd.DateTime.AddDays(-7); InitColumns(); SetSumCount(); InitBindBox(); } private void InitColumns() { string[] arrColumnsDetail = new string[] { "CHK", "BALANCE_NO", "BALANCE_NO_SEQ", "OUT_STOCK_NO", "INV_ID", "COST_CENTER", "USE_ORG_ID", "USE_ORG_NAME", "SUPP_CODE", "SUPP_NAME", "ORDER_ID", "ORDER_LINE_SQE", "ITEM_UNIQUE", "ITEM_CODE", "ITEM_DESC", "ITEM_DESC_E", "ITEM_NAME", "ITEM_ATTR_ID", "ITEM_ATTR", "ITEM_STANDARDS_ID", "ITEM_STANDARDS", "ITEM_UOM_ID", "BATCH_NO", "BUY_QTY", "ITEM_UOM", "BUY_PRICE", "BUY_AMT", "BUY_PRICE_TAX", "BUY_AMT_TAX", "ITEM_UOM_CONEFFICIENT", "INV_QTY", "WEIGHT_UNIT", "BUG_PRICE", "BUG_AMT", "INV_PHYSIC", "INV_POS", "OUTSTOCK_DATE", "CREATE_NAME", "CREATE_TIME", "BILL_NO", "TOTAL_REAL_PRICE", "IS_PRINT", "IS_PRINT_DESC" }; string[] arrColumnsCaptionDetail = new string[] { "选择", "结算单号", "结算单行号", "出库单号", "库存记录号", "成本中心", "领用单位", "领用单位", "供应商", "供应商", "合同号", "合同行号", "唯一值标识", "物料编码", "物料描述", "物料英文名称", "物料名称", "属性编码", "属性", "标准", "标准", "单位换算ID", "批次号", "采购量", "采购单位", "不含税单价", "不含税金额", "含税单价", "含税金额", "转换系数", "出库量", "库存单位", "计划价", "计划金额", "库区", "库位", "出库日期", "创建人", "创建日期", "发票编号", "发票金额", "是否打印", "是否打印" }; PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable1, ultraGrid1, new string[] { "BALANCE_NO", "BALANCE_NO_SEQ", "INV_ID", "COST_CENTER", "USE_ORG_ID", "SUPP_CODE", "SUPP_NAME", "ORDER_ID", "ORDER_LINE_SQE", "ITEM_UNIQUE", "ITEM_CODE", "ITEM_DESC", "ITEM_DESC_E", "ITEM_ATTR_ID", "ITEM_ATTR", "ITEM_STANDARDS_ID", "ITEM_STANDARDS", "ITEM_UOM_ID", "CREATE_NAME", "CREATE_TIME", "BILL_NO", "TOTAL_REAL_PRICE", "IS_PRINT", "IS_PRINT_DESC" }, false, new string[] { "CHK" }); PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable2_1, ultraGrid2_1, new string[] { "BALANCE_NO", "USE_ORG_NAME", "BUY_QTY", "BUY_AMT", "BUY_AMT_TAX", "INV_QTY", "BUG_AMT", "CREATE_NAME", "CREATE_TIME", "BILL_NO", "TOTAL_REAL_PRICE", "IS_PRINT_DESC" }, true, null); PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable2_2, ultraGrid2_2, new string[] { "CHK", "BALANCE_NO", "INV_ID", "COST_CENTER", "USE_ORG_ID", "USE_ORG_NAME", "SUPP_CODE", "SUPP_NAME", "ORDER_ID", "ORDER_LINE_SQE", "ITEM_UNIQUE", "ITEM_CODE", "ITEM_DESC", "ITEM_DESC_E", "ITEM_ATTR_ID", "ITEM_ATTR", "ITEM_STANDARDS_ID", "ITEM_STANDARDS", "ITEM_UOM_ID", "BATCH_NO", "CREATE_NAME", "CREATE_TIME", "BILL_NO", "TOTAL_REAL_PRICE", "IS_PRINT", "IS_PRINT_DESC" }, false, new string[] { "CHK" });//"ITEM_UOM_CONEFFICIENT", PublicPur.InitCellPositionRight(new UltraGrid[] { ultraGrid1, ultraGrid2_1, ultraGrid2_2 }, new string[] { "BUY_QTY", "BUY_PRICE", "BUY_AMT", "BUY_PRICE_TAX", "BUY_AMT_TAX", "ITEM_UOM_CONEFFICIENT", "INV_QTY", "BUG_PRICE", "BUG_AMT" });//入库量保留三位 PublicPur.InitColumnShowLength(new UltraGrid[] { ultraGrid1, ultraGrid2_1, ultraGrid2_2 }, 0, new string[] { "BUY_QTY", "INV_QTY" }, 4, false);//入库量保留三位 PublicPur.InitColumnShowLength(new UltraGrid[] { ultraGrid1, ultraGrid2_1, ultraGrid2_2 }, 0, new string[] { "BUY_PRICE", "BUY_AMT", "BUY_PRICE_TAX", "BUY_AMT_TAX", "BUG_PRICE", "BUG_AMT" }, 2, false);//金额保留两位 } //设置统计风格 private void SetSumCount() { PublicPur.SetupSummaryHeade(new String[] { "Count", "Sum", "Sum", "Sum", "Sum", "Sum" }, new String[] { "共{0}条", "{0}", "{0}", "{0}", "{0}", "{0}" }, new string[] { "BALANCE_NO_SEQ", "BUY_QTY", "BUY_AMT", "BUY_AMT_TAX", "INV_QTY", "BUG_AMT" }, this.ultraGrid2_2.DisplayLayout.Bands[0], SummaryDisplayAreas.BottomFixed); } private void InitBindBox() { } //菜单按钮事件 public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": if (ultraTabControl1.SelectedTab.Index == 0) { QueryCkOutBillRecord();//查询入库记录 } else if (ultraTabControl1.SelectedTab.Index == 1) { QueryBalanceOutBillRecord(); } break; case "Confirm"://确认编制结算单 if (ultraTabControl1.SelectedTab.Index == 0) { ConfirmBalanceOutBill(); } break; case "Cancel"://取消编制结算单 CancelBalanceOutBill(); break; case "Print"://打印 //PrintBalanceOutBill(); break; case "Close": if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes) { this.Close(); } break; } } private void QueryCkOutBillRecord() { 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 (chkUSE_ORG_NAME.Checked) { arrayList.Add(ultraQueryUSE_ORG_NAME.Text.Trim()); arrayList.Add(ultraQueryUSE_ORG_NAME.Text.Trim()); arrayList.Add(ultraQueryUSE_ORG_NAME.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceOutBillManage.QueryCkOutBillRecord", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { dataTable1.Rows.Clear(); return; } GridHelper.CopyDataToDatatable(dt, dataTable1, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid1); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void QueryBalanceOutBillRecord() { try { dataTable2_2.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 (chkUSE_ORG_NAME.Checked) { arrayList.Add(ultraQueryUSE_ORG_NAME.Text.Trim()); arrayList.Add(ultraQueryUSE_ORG_NAME.Text.Trim()); arrayList.Add(ultraQueryUSE_ORG_NAME.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkBALANCE_NO.Checked) { arrayList.Add(txtQueryBALANCE_NO.Text.Trim()); arrayList.Add(txtQueryBALANCE_NO.Text.Trim()); arrayList.Add(txtQueryBALANCE_NO.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceOutBillManage.QueryBalanceOutBillRecord", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { dataTable2_1.Rows.Clear(); dataTable2_2.Rows.Clear(); return; } GridHelper.CopyDataToDatatable(dt, dataTable2_1, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid2_1); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void ConfirmBalanceOutBill() { try { if (ultraTabControl1.SelectedTab.Index != 0) { MessageUtil.ShowTips("只有选择了入库记录页才能进行编制结算单操作!"); return; } if (ultraGrid1.ActiveRow == null || dataTable1.Rows.Count == 0) { return; } ultraGrid1.UpdateData(); DataRow[] arr = dataTable1.Select("CHK = 'True'"); if (arr.Length == 0) { 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 alCkUpdate = new ArrayList();//库存记录表 ArrayList alCkUpdateParams = new ArrayList(); //主表 alBaseParams.Add("");//发票编号 alBaseParams.Add(arr[0]["COST_CENTER"].ToString());//成本中心 alBaseParams.Add(arr[0]["USE_ORG_ID"].ToString());//领用单位 alBaseParams.Add(arr[0]["USE_ORG_NAME"].ToString());//领用单位ID alBaseParams.Add(""); alBaseParams.Add(""); alBaseParams.Add(""); alBaseParams.Add(""); alBaseParams.Add(""); alBaseParams.Add(""); alBaseParams.Add(""); alBaseParams.Add("1"); alBaseParams.Add("");//备注 alBaseParams.Add(userId);//创建人 alBaseParams.Add(user);//创建人 alBase.Add(alBaseParams); //从表 foreach (DataRow dr in arr) { alCkParams = new ArrayList(); alCkParams.Add(dr["OUT_STOCK_NO"].ToString());//入库单号 alCkParams.Add(dr["INV_ID"].ToString());// alCkParams.Add(dr["OUTSTOCK_DATE"].ToString());//出库日期 alCkParams.Add(dr["COST_CENTER"].ToString());//成本中心 alCkParams.Add(dr["USE_ORG_ID"].ToString());//领用单位 alCkParams.Add(dr["USE_ORG_NAME"].ToString());//领用单位ID alCkParams.Add(dr["ORDER_ID"].ToString());//合同号 alCkParams.Add(dr["ORDER_LINE_SQE"].ToString()); alCkParams.Add(dr["SUPP_CODE"].ToString());//供应商 alCkParams.Add(dr["SUPP_NAME"].ToString()); alCkParams.Add(dr["INV_PHYSIC"].ToString()); alCkParams.Add(dr["INV_POS"].ToString());//库位 alCkParams.Add(dr["ITEM_UNIQUE"].ToString()); alCkParams.Add(dr["ITEM_CODE"].ToString()); alCkParams.Add(dr["ITEM_NAME"].ToString()); alCkParams.Add(dr["ITEM_UOM"].ToString());//采购单位 alCkParams.Add(dr["ITEM_UOM_CONEFFICIENT"].ToString()); alCkParams.Add(dr["WEIGHT_UNIT"].ToString()); alCkParams.Add(dr["BATCH_NO"].ToString()); alCkParams.Add(dr["BUY_QTY"].ToString());//采购量 alCkParams.Add(dr["BUY_PRICE"].ToString());//不含税单价 alCkParams.Add(dr["BUY_AMT"].ToString());//不含税总价 alCkParams.Add(dr["BUY_PRICE_TAX"].ToString());//含税单价 alCkParams.Add(dr["BUY_AMT_TAX"].ToString());//含税总价 alCkParams.Add(dr["INV_QTY"].ToString());//库存数量 alCkParams.Add(dr["BUG_PRICE"].ToString());//计划价格 alCkParams.Add(dr["BUG_AMT"].ToString());//计划总价 alCkParams.Add("1"); alCkParams.Add("");//备注 alCkParams.Add(userId);//创建人 alCkParams.Add(user);//创建人 alCk.Add(alCkParams); alCkUpdateParams = new ArrayList(); alCkUpdateParams.Add(dr["OUT_STOCK_NO"].ToString()); alCkUpdate.Add(alCkUpdateParams); } all.Add(alBase); all.Add(alCk); all.Add(alCkUpdate); PublicServer.SetData("com.hnshituo.pur.balance.service.impl.FrmBalanceOutBillManage.ConfirmBalanceOutBill", new Object[] { all }, ob); QueryCkOutBillRecord(); MessageUtil.ShowTips("结算单编制成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void CancelBalanceOutBill() { try { if (ultraTabControl1.SelectedTab.Index != 1) { MessageUtil.ShowTips("只有选择了结算单信息页才能进行取消操作!"); return; } if (ultraGrid2_1.ActiveRow == null || dataTable2_1.Rows.Count == 0) { 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 alCkUpdate = new ArrayList();//库存记录表 ArrayList alCkUpdateParams = new ArrayList(); string strBALANCE_NO = ultraGrid2_1.ActiveRow.Cells["BALANCE_NO"].Text.Trim(); //主表 alBaseParams.Add("撤销结算单");//备注 alBaseParams.Add(userId);//取消人 alBaseParams.Add(user);//取消人 alBaseParams.Add(strBALANCE_NO); alBase.Add(alBaseParams); //从表 alCkParams.Add("撤销结算单");//备注 alCkParams.Add(userId);//取消人 alCkParams.Add(user);//取消人 alCkParams.Add(strBALANCE_NO); alCk.Add(alCkParams); foreach (DataRow dr in dataTable2_2.Rows) { alCkUpdateParams = new ArrayList(); alCkUpdateParams.Add(""); alCkUpdateParams.Add(dr["OUT_STOCK_NO"].ToString()); alCkUpdate.Add(alCkUpdateParams); } all.Add(alBase); all.Add(alCk); all.Add(alCkUpdate); PublicServer.SetData("com.hnshituo.pur.balance.service.impl.FrmBalanceOutBillManage.CancelBalanceOutBill", new Object[] { all, strBALANCE_NO }, ob); QueryBalanceOutBillRecord(); MessageUtil.ShowTips("结算单撤销成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void PrintBalanceOutBill() { try { if (ultraTabControl1.SelectedTab.Index != 1) { return; } this.Cursor = Cursors.WaitCursor; UltraGridRow ugr = ultraGrid2_1.ActiveRow; if (ugr == null) { MessageUtil.ShowWarning("请选择您要打印的结算单!"); return; } string strBALANCE_NO = ugr.Cells["BALANCE_NO"].Value.ToString(); string strBILL_NO = ugr.Cells["BILL_NO"].Value.ToString(); if (strBILL_NO == "") { WinBalanceBillInfo bn = new WinBalanceBillInfo(); bn.Ob = this.ob; bn.StrBalanceNo = strBALANCE_NO; bn.StrBILL_NO = strBILL_NO; bn.StrTOTAL_REAL_PRICE = ugr.Cells["TOTAL_REAL_PRICE"].Value.ToString() == "" ? ugr.Cells["BUY_AMT"].Value.ToString() : ugr.Cells["TOTAL_REAL_PRICE"].Value.ToString();//不含税金额 bn.ShowDialog(); if (bn.DialogResult != DialogResult.OK) { return; } } string strurl = ""; //if (ob.MainUrl.StartsWith("http://127.0.0.1")) //{ // strurl = "http://localhost:8075/webroot/decision/view/report?viewlet=rpt_BalanceOutBill_Print.cpt&bypagesize=false&BALANCE_NO=" + strCHECK_NO; //} //else //{ strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=rpt_BalanceOutBill_Print.cpt&bypagesize=false&BALANCE_NO=" + strBALANCE_NO; //} 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(); QueryBalanceOutBillRecord(); PublicPur.ActiveOperateRow(ultraGrid2_1, "BALANCE_NO", strBALANCE_NO); } finally { this.Cursor = Cursors.Default; } } private void ultraGrid2_1_AfterRowActivate(object sender, EventArgs e) { QueryCkOutBillRecordDetail(); } private void QueryCkOutBillRecordDetail() { try { dataTable2_2.Rows.Clear(); ArrayList arrayList = new ArrayList(); arrayList.Add(ultraGrid2_1.ActiveRow.Cells["BALANCE_NO"].Text.Trim()); arrayList.Add(ultraGrid2_1.ActiveRow.Cells["BALANCE_NO"].Text.Trim()); arrayList.Add(ultraGrid2_1.ActiveRow.Cells["BALANCE_NO"].Text.Trim()); DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceOutBillManage.QueryCkOutBillRecordDetail", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { dataTable2_2.Rows.Clear(); return; } GridHelper.CopyDataToDatatable(dt, dataTable2_2, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid2_2); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { //ultraGrid1.UpdateData(); //if (PublicPur.GetSelectDt(dataTable1, "CHK = 'True'").DefaultView.ToTable(true, "COST_CENTER").Rows.Count > 1) //{ // e.Cell.Value = "False"; // MessageUtil.ShowTips("请勾选相同的领用单位!");//USE_ORG_ID // return; //} } private void chkUSE_ORG_NAME_CheckedChanged(object sender, EventArgs e) { ultraQueryUSE_ORG_NAME.Enabled = chkUSE_ORG_NAME.Checked; } private void chkBALANCE_NO_CheckedChanged(object sender, EventArgs e) { txtQueryBALANCE_NO.Enabled = chkBALANCE_NO.Checked; } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (ultraTabControl1.SelectedTab.Index == 0) { chkDate.Text = "出库日期"; } else if (ultraTabControl1.SelectedTab.Index == 1) { chkDate.Text = "编制日期"; } } } }