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 Pur.require_plan; 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 FrmBalanceBillManage : FrmPmsBase { public FrmBalanceBillManage() { InitializeComponent(); IsLoadUserView = true; } 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; ultraGrid2_1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; } private void FrmBalanceBillManage_Load(object sender, EventArgs e) { dateBegin.Value = dateEnd.DateTime.AddDays(-7); dtZg.Value = DateTime.Now; dtJs.Value = DateTime.Now; labelText.Text = "含税金额: 0"; txtItemClass.Enabled = false; PurCkInBillEntity CkInBillEntity = new PurCkInBillEntity(); DataTable dt_GropByItem = this.execute("com.hnshituo.pur.ck.service.CkInBillService", "GetCkInBill_GropByItem", new object[] { CkInBillEntity }); comm.FilComboboxAdd(txtItemClass, dt_GropByItem, "basecode", "basename", "", false, "", ""); InitColumns(); SetSumCount(); InitBindBox(); } private void InitColumns() { string[] arrColumns = new string[] { "CHK", "IN_STOCK_NO", "SUPP_CODE", "SUPP_NAME", "ORDER_ID", "ORDER_LINE_SQE", "ITEM_UNIQUE", "ITEM_UP_NAME", "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", "DELIVERY_SUB_LINE_SQE", "INSTOCK_DATE", "ACT_STATUS", "ESTIMATE_PRICE", "ESTIMATE_MONTH", "ESTIMATE_MONEY", "BALANCE_PRICE", "BALANCE_MONTH", "BALANCE_MONEY", "JL_QTY" }; string[] arrColumnsCaption = new string[] { "选择", "入库单号", "供应商", "供应商", "合同号", "合同行号", "唯一值标识", "物料分类", "物料编码", "物料描述", "物料英文名称", "物料名称", "属性编码", "属性", "标准", "标准", "单位换算ID", "批次号", "采购量", "采购单位", "不含税单价", "不含税金额", "含税单价", "含税金额", "转换系数", "入库量", "库存单位", "计划价", "计划金额", "库区", "库位", "送货单行号", "入库日期", "状态", "暂估单价", "暂估月份", "暂估金额", "结算单价", "结算月份", "结算金额", "净重" };//"转换系数", PublicPur.InitColumns(arrColumns, arrColumnsCaption, dataTable1, ultraGrid1, new string[] { "SUPP_CODE", "ORDER_ID", "ITEM_UNIQUE", "ITEM_CODE", "ITEM_DESC", "ITEM_DESC_E", "ITEM_ATTR_ID", "ITEM_ATTR", "ITEM_STANDARDS_ID", "ITEM_STANDARDS", "ITEM_UOM_ID" }, false, new string[] { "CHK" });//"ITEM_UOM_CONEFFICIENT", //PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaption, dataTable2, ultraGrid2, new string[] { "ID", "ACCOUNT_PERIOD", "ITEM_UNIQUE", "ITEM_CODE", "ITEM_DESC", "ITEM_DESC_E", "ITEM_ATTR_ID", "ITEM_STANDARDS_ID", "ITEM_UOM_ID" }, false, null); PublicPur.InitCellPositionRight(ultraGrid1, 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(ultraGrid1, 0, new string[] { "BUY_QTY", "INV_QTY" }, 3, false);//入库量保留三位 PublicPur.InitColumnShowLength(ultraGrid1, 0, new string[] { "BUG_PRICE", "BUG_AMT" }, 2, false);// PublicPur.InitColumnShowLength(ultraGrid1, 0, new string[] { "BUY_PRICE", "BUY_AMT", "BUY_PRICE_TAX", "BUY_AMT_TAX" }, 4, false);//金额保留4位 string[] arrColumnsDetail = new string[] { "CHK", "BALANCE_NO", "BALANCE_NO_SEQ", "SUPP_CODE", "SUPP_NAME", "ORDER_ID", "ORDER_LINE_SQE", "ITEM_UNIQUE", "ITEM_UP_NAME", "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", "IN_STOCK_NO", "DELIVERY_SUB_LINE_SQE", "INSTOCK_DATE", "CREATE_NAME", "CREATE_TIME", "BILL_NO", "TOTAL_REAL_PRICE", "IS_PRINT", "IS_PRINT_DESC", "MATER_GROUP", "APPROVE_STATUS", "APPROVE_STATUS_DESC" }; string[] arrColumnsCaptionDetail = new string[] { "选择", "结算单号", "结算单行号", "供应商", "供应商", "合同号", "合同行号", "唯一值标识", "物料大类", "物料编码", "物料描述", "物料英文名称", "物料名称", "属性编码", "属性", "标准", "标准", "单位换算ID", "批次号", "采购量", "采购单位", "不含税单价", "不含税金额", "含税单价", "含税金额", "转换系数", "入库量", "库存单位", "计划价", "计划金额", "库区", "库位", "入库单号", "送货单行号", "入库日期", "创建人", "创建日期", "发票编号", "发票金额", "是否打印", "是否打印", "报销事宜", "审核状态", "审核状态" };//"转换系数", PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable2, ultraGrid2, new string[] { "CHK", "BALANCE_NO", "SUPP_NAME", "ITEM_UP_NAME", "BUY_QTY", "BUY_AMT", "BUY_AMT_TAX", "INV_QTY", "BUG_AMT", "CREATE_NAME", "CREATE_TIME", "BILL_NO", "TOTAL_REAL_PRICE", "IS_PRINT_DESC", "MATER_GROUP", "APPROVE_STATUS_DESC" }, true, new string[] { "CHK" });//"ITEM_UOM_CONEFFICIENT" PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable2_1, ultraGrid2_1, new string[] { "CHK", "BALANCE_NO", "ITEM_UP_NAME", "SUPP_CODE", "SUPP_NAME", "ORDER_ID", "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", "MATER_GROUP", "APPROVE_STATUS", "APPROVE_STATUS_DESC" }, false, new string[] { "CHK" });//"ITEM_UOM_CONEFFICIENT", PublicPur.InitCellPositionRight(ultraGrid2, 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(ultraGrid2, 0, new string[] { "BUY_QTY", "INV_QTY" }, 3, false);//入库量保留三位 PublicPur.InitColumnShowLength(ultraGrid2, 0, new string[] { "BUG_PRICE", "BUG_AMT" }, 2, false);// PublicPur.InitColumnShowLength(ultraGrid2, 0, new string[] { "BUY_PRICE", "BUY_AMT", "BUY_PRICE_TAX", "BUY_AMT_TAX" }, 4, false);//金额保留4位 PublicPur.InitCellPositionRight(ultraGrid2_1, 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(ultraGrid2_1, 0, new string[] { "BUY_QTY", "INV_QTY" }, 3, false);//入库量保留三位 PublicPur.InitColumnShowLength(ultraGrid2_1, 0, new string[] { "BUG_PRICE", "BUG_AMT" }, 2, false);// PublicPur.InitColumnShowLength(ultraGrid2_1, 0, new string[] { "BUY_PRICE", "BUY_AMT", "BUY_PRICE_TAX", "BUY_AMT_TAX" }, 4, false);//金额保留4位 } //设置统计风格 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_1.DisplayLayout.Bands[0], SummaryDisplayAreas.BottomFixed); 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.ultraGrid1.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) { QueryCkInBillRecord();//查询入库记录 } else if (ultraTabControl1.SelectedTab.Index == 1) { QueryBalanceInBillRecord(); } break; case "Estimate"://暂估 if (ultraTabControl1.SelectedTab.Index == 0) { Estimate(); } break; case "Confirm"://确认编制结算单 if (ultraTabControl1.SelectedTab.Index == 0) { ConfirmBalanceInBill(); } break; case "Cancel"://取消编制结算单 CancelBalanceInBill(); break; case "Print"://打印 PrintBalanceInBill(); break; case "cancelPrint"://打印 cancelPrint(); break; case "Examine"://提报审核 UpdateAppRoveStatusIsForward(1); break; case "CancelExamine"://取消提报审核 UpdateAppRoveStatusIsForward(0); break; case "Close": if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes) { this.Close(); } break; case "doExcel"://导出excel doExcel(); break; } } /// /// 导出Excel /// private void doExcel() { try { this.Cursor = Cursors.Default; if (ultraTabControl1.SelectedTab.Key == "0") { if (ultraGrid1.Rows.Count <= 0) { MessageUtil.ShowTips("无可导出明细!"); return; } ArrayList alUltraGrid = new ArrayList(); alUltraGrid.Add(ultraGrid1); ArrayList alSheeft = new ArrayList(); alSheeft.Add("入库记录"); GridHelper.ulGridToExcel(alUltraGrid, alSheeft, "入库记录"); } else if (ultraTabControl1.SelectedTab.Key == "1") { if (ultraGrid2.Rows.Count <= 0) { MessageUtil.ShowTips("无可导出明细!"); return; } ArrayList alUltraGrid = new ArrayList(); alUltraGrid.Add(ultraGrid2); ArrayList alSheeft = new ArrayList(); alSheeft.Add("结算单信息"); GridHelper.ulGridToExcel(alUltraGrid, alSheeft, "结算单信息"); } } catch (Exception e) { MessageUtil.ShowTips("导出失败" + e.Message); } finally { this.Cursor = Cursors.Default; } } private void UpdateAppRoveStatusIsForward(int status) { ultraGrid2.UpdateData(); ArrayList list = new ArrayList(); DataRow[] arr = dataTable2.Select("CHK = 'True'"); if (arr.Length <= 0) { MessageUtil.ShowWarning("请选择需要操作的记录!"); return; } foreach (DataRow row in arr) { if (Convert.ToString(row["APPROVE_STATUS"].ToString()).Equals("6")) { if (MessageUtil.ShowYesNoAndQuestion("是否确认对结算单号" + row["BALANCE_NO"].ToString() + "重新进行提报审核?") == DialogResult.Yes) { list.Add(row["BALANCE_NO"].ToString()); } } else if (Convert.ToString(status).Equals("1") && !Convert.ToString(row["APPROVE_STATUS"].ToString()).Equals("0")) { MessageUtil.ShowWarning("选择的操作记录结算单号" + row["BALANCE_NO"].ToString() + "已完成提报审核!"); } else if (Convert.ToString(status).Equals("0") && !Convert.ToString(row["APPROVE_STATUS"].ToString()).Equals("1")) { MessageUtil.ShowWarning("选择的操作记录结算单号" + row["BALANCE_NO"].ToString() + "未提报审核!"); } else { list.Add(row["BALANCE_NO"].ToString()); } } if (list.Count <= 0) { MessageUtil.ShowWarning("请重新选择需要操作的记录!"); return; } PublicServer.SetData("com.hnshituo.pur.balance.service.impl.FrmBalanceBillManage.UpdateAppRoveStatusIsForward", new Object[] { list,status }, ob); QueryBalanceInBillRecord(); if (status == 1) { MessageUtil.ShowTips("提报审核成功!"); } else { MessageUtil.ShowTips("取消提报审核成功!"); } } 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 (chkSUPP_NAME.Checked) { arrayList.Add(ultraQuerySUPP_NAME.Text.Trim()); arrayList.Add(ultraQuerySUPP_NAME.Text.Trim()); arrayList.Add(ultraQuerySUPP_NAME.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkORDER_ID.Checked) { arrayList.Add(ultraQueryORDER_ID.Text.Trim()); arrayList.Add(ultraQueryORDER_ID.Text.Trim()); arrayList.Add(ultraQueryORDER_ID.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (chkBillNo.Checked) { arrayList.Add(txtBillNo.Text.Trim()); arrayList.Add(txtBillNo.Text.Trim()); arrayList.Add(txtBillNo.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if(ckZg.Checked) { arrayList.Add(Convert.ToDateTime(dtZg.Value).ToString("yyyyMM")); arrayList.Add(Convert.ToDateTime(dtZg.Value).ToString("yyyyMM")); arrayList.Add(Convert.ToDateTime(dtZg.Value).ToString("yyyyMM")); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (ckJs.Checked) { arrayList.Add(Convert.ToDateTime(dtJs.Value).ToString("yyyyMM")); arrayList.Add(Convert.ToDateTime(dtJs.Value).ToString("yyyyMM")); arrayList.Add(Convert.ToDateTime(dtJs.Value).ToString("yyyyMM")); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (ckStatus.Checked && ubStatus.SelectedIndex!=-1) { arrayList.Add(ubStatus.Value.ToString()); arrayList.Add(ubStatus.Value.ToString()); arrayList.Add(ubStatus.Value.ToString()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (lab_ItemName.Checked && txtItemClass.Text.Trim() != "") { arrayList.Add(txtItemClass.Text.Trim()); arrayList.Add(txtItemClass.Text.Trim()); arrayList.Add(txtItemClass.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (!chkDate.Checked && !chkSUPP_NAME.Checked && !chkORDER_ID.Checked && !chkBillNo.Checked && !ckZg.Checked && !ckJs.Checked && !(ckStatus.Checked && ubStatus.SelectedIndex != -1) && !(lab_ItemName.Checked && txtItemClass.Text.Trim() != "") ) { MessageUtil.ShowWarning("至少选择一个查询条件"); return; } DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceBillManage.QueryCkInBillRecord", 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 QueryBalanceInBillRecord() { try { dataTable2.Rows.Clear(); ArrayList arrayList = new ArrayList(); if (chkORDER_ID.Checked) { arrayList.Add(ultraQueryORDER_ID.Text.Trim()); arrayList.Add(ultraQueryORDER_ID.Text.Trim()); arrayList.Add(ultraQueryORDER_ID.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } 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 (chkSUPP_NAME.Checked) { arrayList.Add(ultraQuerySUPP_NAME.Text.Trim()); arrayList.Add(ultraQuerySUPP_NAME.Text.Trim()); arrayList.Add(ultraQuerySUPP_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(""); } if (lab_ItemName.Checked && txtItemClass.Text.Trim() != "") { arrayList.Add(txtItemClass.Text.Trim()); arrayList.Add(txtItemClass.Text.Trim()); arrayList.Add(txtItemClass.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } if (!chkDate.Checked && !chkSUPP_NAME.Checked && !chkBALANCE_NO.Checked && !(lab_ItemName.Checked && txtItemClass.Text.Trim() != "") && !chkORDER_ID.Checked) { MessageUtil.ShowWarning("至少选择一个查询条件"); return; } DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceBillManage.QueryBalanceInBillRecord", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { dataTable2.Rows.Clear(); dataTable2_1.Rows.Clear(); return; } GridHelper.CopyDataToDatatable(dt, dataTable2, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid2); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } public void Estimate() { 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(); foreach (DataRow dr in arr) { ArrayList alCkParams = new ArrayList(); alCkParams.Add(dr["IN_STOCK_NO"].ToString());//入库单号 alCkParams.Add(DateTime.Now.ToString("yyyyMM")); alCkParams.Add(dr["BUY_PRICE_TAX"].ToString());//含税单价 alCkParams.Add(dr["BUY_AMT_TAX"].ToString());//含税总价 alCkParams.Add(dr["BUY_PRICE"].ToString());//不含税单价 alCkParams.Add(dr["BUY_AMT"].ToString());//不含税总价 alCkParams.Add(dr["INV_QTY"].ToString());//库存数量 alCkParams.Add(dr["BUG_PRICE"].ToString());//计划价格 alCkParams.Add(dr["BUG_AMT"].ToString());//计划总价 alCkParams.Add(userId);//创建人 alCkParams.Add(user);//创建人 all.Add(alCkParams); } String message = this.execute("com.hnshituo.pur.ck.service.CkInBillService", "doEstimate", new object[] { all }); QueryCkInBillRecord(); MessageUtil.ShowTips("暂估成功!"); } } private void ConfirmBalanceInBill() { 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 (PublicPur.GetSelectDt(dataTable1, "CHK = 'True'").DefaultView.ToTable(true, "SUPP_CODE").Rows.Count > 1) { MessageUtil.ShowTips("请勾选相同的供应商!"); return; } if (PublicPur.GetSelectDt(dataTable1, "CHK = 'True'").DefaultView.ToTable(true, "ITEM_UP_NAME").Rows.Count > 1) { 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]["SUPP_CODE"].ToString());//供应商 alBaseParams.Add(arr[0]["SUPP_NAME"].ToString());//供应商 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);//创建人 alBaseParams.Add(arr[0]["ITEM_UP_NAME"].ToString());//物料大类 alBase.Add(alBaseParams); //从表 foreach (DataRow dr in arr) { alCkParams = new ArrayList(); alCkParams.Add(dr["IN_STOCK_NO"].ToString());//入库单号 alCkParams.Add(dr["DELIVERY_SUB_LINE_SQE"].ToString());//送货单行号 alCkParams.Add(dr["INSTOCK_DATE"].ToString());//入库日期 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(DateTime.Now.ToString("yyyyMM")); alCkUpdateParams.Add(dr["BUY_PRICE_TAX"].ToString()); alCkUpdateParams.Add(dr["BUY_AMT_TAX"].ToString()); alCkUpdateParams.Add("1"); alCkUpdateParams.Add(dr["IN_STOCK_NO"].ToString()); alCkUpdate.Add(alCkUpdateParams); } all.Add(alBase); all.Add(alCk); all.Add(alCkUpdate); PublicServer.SetData("com.hnshituo.pur.balance.service.impl.FrmBalanceBillManage.ConfirmBalanceInBill", new Object[] { all }, ob); QueryCkInBillRecord(); MessageUtil.ShowTips("结算单编制成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void CancelBalanceInBill() { try { if (ultraTabControl1.SelectedTab.Index != 1) { MessageUtil.ShowTips("只有选择了结算单信息页才能进行取消操作!"); return; } if (ultraGrid2.ActiveRow == null || dataTable2.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.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_1.Rows) { alCkUpdateParams = new ArrayList(); alCkUpdateParams.Add(""); alCkUpdateParams.Add(""); alCkUpdateParams.Add(""); alCkUpdateParams.Add(""); alCkUpdateParams.Add("0"); alCkUpdateParams.Add(dr["IN_STOCK_NO"].ToString()); alCkUpdate.Add(alCkUpdateParams); } all.Add(alBase); all.Add(alCk); all.Add(alCkUpdate); PublicServer.SetData("com.hnshituo.pur.balance.service.impl.FrmBalanceBillManage.CancelBalanceInBill", new Object[] { all, strBALANCE_NO }, ob); QueryBalanceInBillRecord(); MessageUtil.ShowTips("结算单撤销成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void PrintBalanceInBill() { try { if (ultraTabControl1.SelectedTab.Index != 1) { return; } this.Cursor = Cursors.WaitCursor; UltraGridRow ugr = ultraGrid2.ActiveRow; if (ugr == null) { MessageUtil.ShowWarning("请选择您要打印的结算单!"); return; } //if (!Convert.ToString(ugr.Cells["APPROVE_STATUS"].Value).Equals("3")) //{ // MessageUtil.ShowWarning("未审核完成的结算单不能打印!"); // return; //} string strBALANCE_NO = ugr.Cells["BALANCE_NO"].Value.ToString(); string strBILL_NO = ugr.Cells["BILL_NO"].Value.ToString(); String oldMaterGroup = ""; string remark = ""; double buyAmtTax = 0; double buyAmt = 0; foreach (UltraGridRow row in ultraGrid2_1.Rows) { if (oldMaterGroup.Split(',').Length > 3) break; oldMaterGroup += row.Cells["ITEM_NAME"].Value.ToString() + row.Cells["INV_QTY"].Value.ToString() + row.Cells["ITEM_UOM"].Value.ToString() + ","; } if (oldMaterGroup != "") oldMaterGroup = oldMaterGroup.Substring(0, oldMaterGroup.Length - 1); if (ugr.Cells["ITEM_UP_NAME"].Value.ToString2() == "废钢") { oldMaterGroup = "国内废钢"; buyAmtTax = buyAmtTax + Double.Parse(ugr.Cells["BUY_AMT_TAX"].Value.ToString()); buyAmt = buyAmt + Double.Parse(ugr.Cells["BUY_AMT"].Value.ToString()); remark = "不含税金额:" + buyAmt + "元,税额:" + (buyAmtTax - buyAmt) + "元。"; } if (strBILL_NO == "") { WinBalanceBillInfo bn = new WinBalanceBillInfo(); bn.Ob = this.ob; bn.StrBalanceNo = strBALANCE_NO; bn.StrBILL_NO = strBILL_NO; bn.StrMaterGroup = oldMaterGroup; bn.Remark = remark; bn.StrTOTAL_REAL_PRICE = ugr.Cells["TOTAL_REAL_PRICE"].Value.ToString() == "" ? ugr.Cells["BUY_AMT_TAX"].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_BalanceInBill_Print.cpt&bypagesize=false&BALANCE_NO=" + strCHECK_NO; //} //else //{ //strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=rpt_BalanceInBill_Print.cpt&bypagesize=false&BALANCE_NO=" + strBALANCE_NO; //} if (ugr.Cells["ITEM_UP_NAME"].Value.ToString2() == "耐火材料" || ugr.Cells["ITEM_UP_NAME"].Value.ToString2() == "添加剂" || ugr.Cells["ITEM_UP_NAME"].Value.ToString2() == "铁合金" || ugr.Cells["ITEM_UP_NAME"].Value.ToString2() == "石墨制品" || ugr.Cells["ITEM_UP_NAME"].Value.ToString2() == "有色金属"|| ugr.Cells["ITEM_UP_NAME"].Value.ToString2() == "矿石") { strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=rpt_BalanceInBill_Print1.cpt&bypagesize=false&BALANCE_NO=" + strBALANCE_NO; } else { strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=rpt_BalanceInBill_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(); QueryBalanceInBillRecord(); PublicPur.ActiveOperateRow(ultraGrid2, "BALANCE_NO", strBALANCE_NO); } finally { this.Cursor = Cursors.Default; } } private void cancelPrint() { try { if (ultraTabControl1.SelectedTab.Index != 1) { return; } this.Cursor = Cursors.WaitCursor; UltraGridRow ugr = ultraGrid2.ActiveRow; if (ugr == null) { MessageUtil.ShowWarning("请选择您要取消打印的结算单记录!"); return; } string strBALANCE_NO = ugr.Cells["BALANCE_NO"].Value.ToString(); if (ugr.Cells["IS_PRINT"].Value.ToString() == "1") { MessageUtil.ShowWarning("所选记录未打印,不能取消!"); return; } if (!MessageUtil.ShowYesNoQuestion("确定进行取消打印操作")) return; ArrayList all = new ArrayList(); all.Add(""); all.Add(""); all.Add(""); all.Add("1"); all.Add(""); all.Add(""); all.Add(""); all.Add(strBALANCE_NO); PublicServer.SetData("com.hnshituo.pur.balance.service.impl.FrmBalanceBillManage.UpdateBalanceInBillInfo", new Object[] { all }, this.ob); QueryBalanceInBillRecord(); } finally { this.Cursor = Cursors.Default; } } private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { QueryCkInBillRecordDetail(); } private void QueryCkInBillRecordDetail() { try { dataTable2_1.Rows.Clear(); ArrayList arrayList = new ArrayList(); arrayList.Add(ultraGrid2.ActiveRow.Cells["BALANCE_NO"].Text.Trim()); arrayList.Add(ultraGrid2.ActiveRow.Cells["BALANCE_NO"].Text.Trim()); arrayList.Add(ultraGrid2.ActiveRow.Cells["BALANCE_NO"].Text.Trim()); DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceBillManage.QueryCkInBillRecordDetail", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { dataTable2_1.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 ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid1.UpdateData(); if (PublicPur.GetSelectDt(dataTable1, "CHK = 'True'").DefaultView.ToTable(true, "SUPP_CODE").Rows.Count > 1) { e.Cell.Value = "False"; MessageUtil.ShowTips("请勾选相同的供应商!"); return; } if (PublicPur.GetSelectDt(dataTable1, "CHK = 'True'").DefaultView.ToTable(true, "ITEM_UP_NAME").Rows.Count > 1) { e.Cell.Value = "False"; MessageUtil.ShowTips("请勾选相同的物料大类!"); return; } double money=0; foreach (DataRow dr in PublicPur.GetSelectDt(dataTable1, "CHK = 'True'").Rows) { money += double.Parse(dr["BUY_AMT_TAX"].ToString()); } labelText.Text = "含税金额: " + money; } private void chkSUPP_NAME_CheckedChanged(object sender, EventArgs e) { ultraQuerySUPP_NAME.Enabled = chkSUPP_NAME.Checked; } private void chkBALANCE_NO_CheckedChanged(object sender, EventArgs e) { txtQueryBALANCE_NO.Enabled = chkBALANCE_NO.Checked; } private void chkORDER_ID_CheckedChanged(object sender, EventArgs e) { ultraQueryORDER_ID.Enabled = chkORDER_ID.Checked; } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (ultraTabControl1.SelectedTab.Index == 0) { labelText.Visible = true; chkDate.Text = "入库日期"; chkBillNo.Location = new System.Drawing.Point(723, 12); txtBillNo.Location = new System.Drawing.Point(797, 11); chkBALANCE_NO.Visible = false; txtQueryBALANCE_NO.Visible = false; chkBillNo.Visible = true; txtBillNo.Visible = true; ckZg.Visible = true; dtZg.Visible = true; ckJs.Visible = true; dtJs.Visible = true; ckStatus.Visible = true; ubStatus.Visible = true; chkORDER_ID.Visible = true; ultraQueryORDER_ID.Visible = true; } else if (ultraTabControl1.SelectedTab.Index == 1) { labelText.Visible = false; chkDate.Text = "编制日期"; chkBALANCE_NO.Location = new System.Drawing.Point(723, 12); txtQueryBALANCE_NO.Location = new System.Drawing.Point(797, 11); chkBALANCE_NO.Visible = true; txtQueryBALANCE_NO.Visible = true; chkBillNo.Visible = false; txtBillNo.Visible = false; ckZg.Visible = false; dtZg.Visible = false; ckJs.Visible = false; dtJs.Visible = false; ckStatus.Visible = false; ubStatus.Visible = false; chkORDER_ID.Visible = true; ultraQueryORDER_ID.Visible = true; chkORDER_ID.Location = new System.Drawing.Point(923, 12); ultraQueryORDER_ID.Location = new System.Drawing.Point(997, 11); } } private void chkBillNo_CheckedChanged(object sender, EventArgs e) { txtBillNo.Enabled = chkBillNo.Checked; } private void ckJs_CheckedChanged(object sender, EventArgs e) { dtJs.Enabled = ckJs.Checked; } private void ckZg_CheckedChanged(object sender, EventArgs e) { dtZg.Enabled = ckZg.Checked; } private void ckStatus_CheckedChanged(object sender, EventArgs e) { ubStatus.Enabled = ckStatus.Checked; } private void lab_ItemName_CheckedChanged(object sender, EventArgs e) { txtItemClass.Enabled = lab_ItemName.Checked; } } }