using System; using System.Data; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using Business = SuperMap.RealEstate.SendRec.Storage.Business; using HWSB = SuperMap.RealEstate.HighWay.Storage.Business; using HZQR.Common; namespace SuperMap.RealEstate.SendRec.Modules.SearchCommodity { public partial class ObjectPage : BasePage { private double CurrPage = 0.0, CurrPagePrice = 0.00; private string CommodityTypeString = ""; private string ShowString = ""; private const string ShowTemplate = ",当前类别合计:含税{0}元," + "除税{1}元,当前服务区合计:含税{2}元," + "除税{3}元,库存总数:{4}"; #region 方法 -> 页面加载 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; //初始化并加载列表 InitWebControls(); InitTitle(null); GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1, DictionaryHelper.GetDictionary(Transaction, "COMMODITYGRADE").AsNewKeys("COMMODITY_GRADE"), HWSB.CommonHelper.GetDictionary(Transaction, "SERVERPARTSHOP_ID", "SELECT SERVERPART_ID,SERVERPART_NAME FROM HIGHWAY_STORAGE.T_SERVERPART")); //设置回车焦点按钮 SetControlClientAction(ButtonSearch); LblTitle.Text = LblTitle.Text + ShowString; } private void InitWebControls() { SERVERPART_ID.Clear(); ListItemEx _ListItemEx = new ListItemEx(); if (PassportInfo.UserName == "system" || PassportInfo.UserName == "admin") { _ListItemEx.Text = "所有服务区"; _ListItemEx.Value = ""; SERVERPART_ID.Items.Add(_ListItemEx); } foreach (HWSB.SERVERPART _SERVERPART in (new HWSB.SERVERPART(Transaction)).GetPassportServerPart(PassportInfo.CityAuthority, "1000,1001,1010")) { _ListItemEx = new ListItemEx(); _ListItemEx.Text = _SERVERPART.SERVERPART_NAME; _ListItemEx.Value = _SERVERPART.SERVERPART_ID.ToString(); SERVERPART_ID.Items.Add(_ListItemEx); } if (Session["SERVERPART_ID"] != null && Session["SERVERPART_ID"].ToString() != "") { SERVERPART_ID.SelectedValue = Session["SERVERPART_ID"].ToString(); } if (!string.IsNullOrEmpty(Request["SENDREC_TYPE"])) { GridViewEx1.Columns[GridViewEx1.Columns.Count - 1].Visible = true; GridViewEx1.Columns[GridViewEx1.Columns.Count - 2].Visible = true; GridViewEx1.DataTableName = "V_COMMODITYSTOCKMATERIAL"; } } #endregion #region 方法 -> 加载合计信息 private void InitTitle(ClientSetEventArgs e) { try { double TypeTaxCount = 0; //类型含税金额 double TypeCount = 0; //类型除税金额 double ServerTaxCount = 0; //服务区含税金额 double ServerCount = 0; //服务区除税金额 double StockCount = 0; //库存总数 Business.SERVERPARTSTOCK _SERVERPARTSTOCK = new Business.SERVERPARTSTOCK(this.Transaction); if (!string.IsNullOrEmpty(Request["ID"]) && Request["ID"] != "-1") { string OutTypeString = Request["ID"].ToDecrypt(); HWSB.COMMODITYTYPE _COMMODITYTYPE = new HWSB.COMMODITYTYPE(this.Transaction); _COMMODITYTYPE.GetSubCommodityType(ref OutTypeString, Request["ID"].ToDecrypt(), "", true); CommodityTypeString = OutTypeString; DataRow dataRow = _SERVERPARTSTOCK.GetTotalDTByType(SERVERPART_ID.SelectedValue, CommodityTypeString, OVERPLUSCOUNT.SelectedValue, Request["SENDREC_TYPE"], GridViewEx1.DataTableName).Rows[0]; double.TryParse(dataRow[0].ToString(), out TypeTaxCount); double.TryParse(dataRow[1].ToString(), out TypeCount); } else if (Request["ID"] == "-1") { DataRow dataRow = _SERVERPARTSTOCK.GetTotalDTByType(SERVERPART_ID.SelectedValue, "", OVERPLUSCOUNT.SelectedValue, Request["SENDREC_TYPE"], GridViewEx1.DataTableName).Rows[0]; double.TryParse(dataRow[0].ToString(), out TypeTaxCount); double.TryParse(dataRow[1].ToString(), out TypeCount); } DataRow dataRows = _SERVERPARTSTOCK.GetTotalDTByServerPart(SERVERPART_ID.SelectedValue, OVERPLUSCOUNT.SelectedValue, Request["SENDREC_TYPE"], GridViewEx1.DataTableName).Rows[0]; double.TryParse(dataRows[0].ToString(), out ServerTaxCount); double.TryParse(dataRows[1].ToString(), out ServerCount); double.TryParse(dataRows[2].ToString(), out StockCount); ShowString = string.Format(ShowTemplate, TypeTaxCount.ToString("F2"), TypeCount.ToString("F2"), ServerTaxCount.ToString("F2"), ServerCount.ToString("F2"), StockCount.ToString("F2")); } catch { ShowString = string.Format(ShowTemplate, 0, 0, 0, 0, 0); } } #endregion #region 方法 -> 列表事件 //查询 protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e) { GridViewEx1.Selecting(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); e.SetValue(GridPageEx1); InitTitle(e); e.ExcuteClientScript("setData(\"" + LblTitle.Text + ShowString + "\")"); } //翻页事件 protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e) { GridViewEx1.Pagging(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); InitTitle(e); e.ExcuteClientScript("setData(\"" + LblTitle.Text + ShowString + "\")"); } //查询SQL设置 protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e) { //搜索选项的搜索条件过滤 if (!string.IsNullOrEmpty(TextBox_Search.Text)) e.AddOrParams(GridViewSearch1, TextBox_Search.Text); if (!IsPostBack && string.IsNullOrEmpty(Request["ID"])) { e.AddAndParams("1", 2); } else { e.AddAndParams("1", 1); //添加服务区选项 if (!string.IsNullOrEmpty(SERVERPART_ID.SelectedValue) && SERVERPART_ID.SelectedValue != "1=1") { e.AddAndParams("SERVERPART_ID", SERVERPART_ID.SelectedValue); } else { e.SetOtherUserCustomWhereSqlString += (e.SetOtherUserCustomWhereSqlString == "" ? "" : " AND ") + "SERVERPART_ID IN (" + new HWSB.SERVERPART(Transaction).GetPassportServerPartID(this.PassportInfo.CityAuthority) + ")"; } //添加商品类别过滤 if (!string.IsNullOrEmpty(Request["ID"]) && Request["ID"] != "-1") { string OutTypeString = Request["ID"].ToDecrypt(); HWSB.COMMODITYTYPE _COMMODITYTYPE = new HWSB.COMMODITYTYPE(this.Transaction); _COMMODITYTYPE.GetSubCommodityType(ref OutTypeString, Request["ID"].ToDecrypt(), "", true); e.SetOtherUserCustomWhereSqlString += (e.SetOtherUserCustomWhereSqlString == "" ? "" : " AND ") + "COMMODITYTYPE_ID in(" + OutTypeString + ")"; CommodityTypeString = OutTypeString; } //else // e.AddAndParams("COMMODITYTYPE_ID", -1); if (OVERPLUSCOUNT.SelectedValue == "1") { e.SetOtherUserCustomWhereSqlString += e.SetOtherUserCustomWhereSqlString == "" ? "OVERPLUSCOUNT > 0" : " AND OVERPLUSCOUNT > 0"; } else if (OVERPLUSCOUNT.SelectedValue == "0") { e.SetOtherUserCustomWhereSqlString += e.SetOtherUserCustomWhereSqlString == "" ? "NVL(OVERPLUSCOUNT,0) = 0" : " AND NVL(OVERPLUSCOUNT,0) = 0"; } else if (OVERPLUSCOUNT.SelectedValue == "-1") { e.SetOtherUserCustomWhereSqlString += e.SetOtherUserCustomWhereSqlString == "" ? "OVERPLUSCOUNT < 0" : " AND OVERPLUSCOUNT < 0"; } else if (OVERPLUSCOUNT.SelectedValue == "exist") { e.SetOtherUserCustomWhereSqlString += e.SetOtherUserCustomWhereSqlString == "" ? "OVERPLUSCOUNT IS NOT NULL" : " AND OVERPLUSCOUNT IS NOT NULL"; } if (!string.IsNullOrEmpty(Request["SENDREC_TYPE"])) { e.AddAndParams("BUSINESSTYPE", Request["SENDREC_TYPE"]); } else { e.SetOtherUserCustomWhereSqlString += (e.SetOtherUserCustomWhereSqlString == "" ? "" : " AND ") + "BUSINESSTYPE != 9990"; } //排序 e.AddOrderByParams(GridViewOrderBy1); } } #endregion #region 方法 -> 行绑定事件 protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { LblTitle.Text = "当前页金额:含税0元,除税0元"; //InitTitle(null); } else if (e.Row.RowType == DataControlRowType.DataRow) { try { HWSB.COMMODITYTYPE _COMMODITYTYPE = new HWSB.COMMODITYTYPE(this.Transaction); _COMMODITYTYPE.COMMODITYTYPE_ID_Encrypt = e.Row.Cells[2].Text.ToEncrypt(); if (_COMMODITYTYPE.Select()) { e.Row.Cells[2].Text = _COMMODITYTYPE.COMMODITYTYPE_NAME; } } catch { } //进货明细--领用明细 string _SERVERPARTSTOCK_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["SERVERPARTSTOCK_ID"].ToEncrypt(); string _COMMODITY_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["COMMODITY_ID"].ToEncrypt(); LinkButton LinkButton_Proinst = (LinkButton)e.Row.FindControl("LinkButton_Proinst"); LinkButton LB_RunningProinst = (LinkButton)e.Row.FindControl("LB_RunningProinst"); LinkButton_Proinst.OnClientClick = GridViewEx1.GetOpenPopDialogClientScript( "Proinst/APPLYPROINSTList.aspx?SERVERPARTSTOCK_ID=" + _SERVERPARTSTOCK_ID + "&COMMODITY_ID=" + _COMMODITY_ID, 1000, 600) + " return false;"; Business.SERVERPARTSTOCK _SERVERPARTSTOCK = new Business.SERVERPARTSTOCK(this.Transaction); _SERVERPARTSTOCK.SERVERPARTSTOCK_ID_Encrypt = _SERVERPARTSTOCK_ID; if (_SERVERPARTSTOCK_ID != "" && _SERVERPARTSTOCK.Select()) { e.Row.Cells[7].Text = _SERVERPARTSTOCK.ExecuteDataTable("SELECT " + _SERVERPARTSTOCK.OVERPLUSCOUNT + @" + NVL(SUM(A.TOTAL_COUNT),0) - NVL(SUM(B.TOTAL_COUNT),0) FROM (SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING WHERE APPLYPROINST_TYPE = 2000)A, (SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING WHERE APPLYPROINST_TYPE > 2000)B, SENDREC_STORAGE.T_SERVERPARTSTOCK C WHERE C.COMMODITY_ID = A.COMMODITY_ID(+) AND C.COMMODITY_ID = B.COMMODITY_ID(+) AND C.COMMODITY_ID = " + _SERVERPARTSTOCK.COMMODITY_ID).Rows[0][0].ToString(); } else if (_SERVERPARTSTOCK.ExecuteDataTable("SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING " + "WHERE COMMODITY_ID = " + _COMMODITY_ID.ToDecrypt()).Rows.Count > 0) { e.Row.Cells[7].Text = _SERVERPARTSTOCK.ExecuteDataTable(@"SELECT NVL(SUM(A.TOTAL_COUNT),0) - NVL(SUM(B.TOTAL_COUNT),0) FROM (SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING WHERE APPLYPROINST_TYPE = 2000)A, (SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING WHERE APPLYPROINST_TYPE > 2000)B, SENDREC_STORAGE.V_UNIQUECOMMODITY C WHERE C.COMMODITY_ID = A.COMMODITY_ID(+) AND C.COMMODITY_ID = B.COMMODITY_ID(+) AND C.COMMODITY_ID = " + _COMMODITY_ID.ToDecrypt()).Rows[0][0].ToString(); } if (e.Row.Cells[6].Text.Replace(" ", "") != e.Row.Cells[7].Text.Replace(" ", "")) { if (e.Row.Cells[6].Text.Replace(" ", "") == "" && e.Row.Cells[7].Text.Replace(" ", "") == "0") { LB_RunningProinst.Visible = false; } else { LB_RunningProinst.OnClientClick = GridViewEx1.GetOpenPopDialogClientScript( "Proinst/APPLYPROINSTList.aspx?SERVERPARTSTOCK_ID=" + _SERVERPARTSTOCK_ID + "&COMMODITY_ID=" + _COMMODITY_ID + "&type=0", 1000, 600) + " return false;"; } } else { LB_RunningProinst.Visible = false; } try { CurrPage += double.Parse(e.Row.Cells[8].Text); CurrPagePrice += double.Parse(e.Row.Cells[9].Text); LblTitle.Text = "当前页金额:含税" + CurrPage + "元,除税" + CurrPagePrice + "元" + ShowString; } catch { } } } #endregion #region 方法 -> 导出excel protected void ButtonPrintBill_Click(object sender, EventArgs e) { string sqlWhere = ""; //添加服务区选项 if (!string.IsNullOrEmpty(SERVERPART_ID.SelectedValue) && SERVERPART_ID.SelectedValue != "1=1") { sqlWhere += " AND A.SERVERPART_ID = " + SERVERPART_ID.SelectedValue; } else { sqlWhere += " AND A.SERVERPART_ID IN (" + new HWSB.SERVERPART(Transaction).GetPassportServerPartID(PassportInfo.CityAuthority) + ")"; } //添加商品类别过滤 if (!string.IsNullOrEmpty(Request["ID"]) && Request["ID"] != "-1") { string OutTypeString = Request["ID"].ToDecrypt(); HWSB.COMMODITYTYPE _COMMODITYTYPE = new HWSB.COMMODITYTYPE(this.Transaction); _COMMODITYTYPE.GetSubCommodityType(ref OutTypeString, Request["ID"].ToDecrypt(), "", true); sqlWhere += " AND A.COMMODITYTYPE_ID in(" + OutTypeString + ")"; } if (OVERPLUSCOUNT.SelectedValue == "1") { sqlWhere += " AND A.OVERPLUSCOUNT > 0"; } else if (OVERPLUSCOUNT.SelectedValue == "0") { sqlWhere += " AND NVL(A.OVERPLUSCOUNT,0) = 0"; } else if (OVERPLUSCOUNT.SelectedValue == "-1") { sqlWhere += " AND A.OVERPLUSCOUNT < 0"; } else if (OVERPLUSCOUNT.SelectedValue == "exist") { sqlWhere += " AND A.OVERPLUSCOUNT IS NOT NULL"; } if (!string.IsNullOrEmpty(Request["SENDREC_TYPE"])) { sqlWhere += " AND A.BUSINESSTYPE = " + Request["SENDREC_TYPE"]; } else { sqlWhere += " AND A.BUSINESSTYPE != 9990"; } string strSql = string.Format(@"SELECT A.COMMODITYTYPE_NAME AS 物资类型,A.COMMODITY_CODE AS 物资编码, A.COMMODITY_NAME AS 物资名称,A.COMMODITY_UNIT AS 物资单位,A.COMMODITY_RULE AS 物资规格, A.COMMODITY_BARCODE AS 物资条码,A.OVERPLUSCOUNT AS 剩余库存,A.SUPPORT_PRICE AS 合计含税金额, A.TOTAL_PRICE AS 合计除税金额,A.COMMODITY_PURCHASEPRICE AS 移动平均价, A.AVERAGE_PRICE AS 库存均价,A.SERVERPART_NAME AS 服务区名称,C.SERVERPART_NAME AS 配送服务区 FROM {0} A LEFT JOIN HIGHWAY_STORAGE.T_SERVERPART C ON A.SERVERPARTSHOP_ID = C.SERVERPART_ID WHERE 1 = 1{1}", GridViewEx1.DataTableName, sqlWhere); DataTable _DataTable = new Business.SERVERPARTSTOCK(this.Transaction).ExecuteDataTable(strSql); ExcelHelper _ExcelHelper = new ExcelHelper(); _ExcelHelper.DataTableToExcel("库存数据导出", _DataTable, "库存数据", true); } #endregion } }