using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Drawing; using System.Web.UI; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.ServiceModel; using SuperMap.RealEstate.Utility; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using SuperMap.RealEstate.HighWay.SellData.Business; using Business = SuperMap.RealEstate.HighWay.Storage.Business; using HZQR.Common; namespace SuperMap.RealEstate.HighWay.Modules.ProblemDeal { public partial class Default : BasePage { #region 方法 -> 页面加载 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; InitWebControls(); //初始化并加载列表 GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1, DictionaryHelper.GetDictionary(Transaction, "TREATMENT_MARK")); } #endregion #region 方法 -> 初始化页面 private void InitWebControls() { SERVERPART_ID.Items.Clear(); ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Text = "公司本部"; _ListItemEx.Value = "1=1"; SERVERPART_ID.Items.Add(_ListItemEx); foreach (Storage.Business.SERVERPART _SERVERPART in (new Storage.Business.SERVERPART()).GetPassportServerPart(this.PassportInfo.CityAuthority)) { _ListItemEx = new ListItemEx(); _ListItemEx.Value = _SERVERPART.SERVERPART_ID_Encrypt; //查看是否具有销售数据 string SqlStr = "SELECT COUNT(*) FROM HIGHWAY_SELLDATA.T_ENDACCOUNT WHERE SERVERPART_ID=" + _SERVERPART.SERVERPART_ID; if ((int.Parse(_SERVERPART.ExecuteDataTable(SqlStr).Rows[0][0].ToString())) > 0) { _ListItemEx.Text = _SERVERPART.SERVERPART_NAME; } else { _ListItemEx.Text = "[无售]" + _SERVERPART.SERVERPART_NAME; _ListItemEx.ColorStringEx = "#ff6600"; } SERVERPART_ID.Items.Add(_ListItemEx); } //处理标记 TREATMENT_MARK.Clear(); TREATMENT_MARK.Items.Add(new ListItemEx("全部", "1=1")); DictionaryHelper.BindingDropDownList("TREATMENT_MARK", TREATMENT_MARK.Items, this.Transaction); TREATMENT_MARK.SelectedValue = "1"; StatisticsStartDay.Text = DateTime.Now.Date.AddDays(-1).ToString(); StatisticsEndDay.Text = DateTime.Now.Date.AddDays(-1).ToString(); //绑定业态 //BusinessType.Items.Clear(); //ListItemEx _ListItemFirst = new ListItemEx(); //_ListItemFirst.Text = "全部"; //_ListItemFirst.Value = "1=1"; //BusinessType.Items.Insert(0, _ListItemFirst); //DictionaryHelper.BindingDropDownList("BUSINESSTYPE", BusinessType.Items, this.Transaction); } #endregion #region 方法 -> 绑定下拉框服务区 protected void SERVERPART_ID_CallBackSetControl(object sender, ClientSetEventArgs e) { string StrSql = string.Empty; ShopCode.Items.Clear(); ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Text = "所有门店"; _ListItemEx.Value = "1=1"; ShopCode.Items.Add(_ListItemEx); ShopCode.Items.Add(new ListItemEx("A区", "10")); ShopCode.Items.Add(new ListItemEx("B区", "20")); //绑定对应的商家统计 if (SERVERPART_ID.SelectedValue == "1=1" || SERVERPART_ID.SelectedIndex == -1) { StrSql = "SELECT DISTINCT SHOPNAME,SHOPCODE FROM HIGHWAY_SELLDATA.T_ENDACCOUNT"; } else { StrSql = "SELECT DISTINCT SHOPNAME,SHOPCODE FROM HIGHWAY_SELLDATA.T_ENDACCOUNT WHERE SERVERPART_ID=" + e.Argument.ToDecrypt(); } foreach (DataRow _DataRow in (new Storage.Business.SERVERPART()).ExecuteDataTable(StrSql + " ORDER BY SHOPNAME").Rows) { _ListItemEx = new ListItemEx(); _ListItemEx.Text = _DataRow["SHOPNAME"].ToString(); _ListItemEx.Value = _DataRow["SHOPCODE"].ToString(); ShopCode.Items.Add(_ListItemEx); } e.SetDropDownListEx(ShopCode); } #endregion #region 方法 -> 查询 protected void ButtonStatistics_Click(object sender, EventArgs e) { //绑定数据 GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1); GridViewEx1.Visible = true; //查询数据 string WhereSql = string.Empty; if (SERVERPART_ID.SelectedValue != "1=1") { WhereSql += " AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue.ToDecrypt(); } if (ShopCode.SelectedIndex < 3 && ShopCode.SelectedIndex > 0) { WhereSql += " AND SHOPREGION = " + ShopCode.SelectedValue; } else if (ShopCode.SelectedValue != "1=1" && ShopCode.SelectedIndex > -1) { WhereSql += " AND SHOPCODE = " + ShopCode.SelectedValue; } if (TREATMENT_MARK.SelectedValue != "1=1") { WhereSql += " AND TREATMENT_MARK = " + TREATMENT_MARK.SelectedValue; } if (StatisticsStartDay.Text != "") { WhereSql += " AND ENDACCOUNT_DATE >= TO_DATE('" + StatisticsStartDay.Text + "','YYYY-MM-DD')"; } if (StatisticsEndDay.Text != "") { WhereSql += " AND ENDACCOUNT_DATE < TO_DATE('" + StatisticsEndDay.Text + "','YYYY-MM-DD') + 1 "; } string sqlString = @"SELECT SUM(TOTALSELLAMOUNT),SUM(CASHPAY),NVL(SUM(DIFFERENT_PRICE),0) FROM HIGHWAY_SELLDATA.V_PROBLEM_ENDACCOUNT WHERE " + (WhereSql.StartsWith(" AND ") ? WhereSql.Substring(4) : (WhereSql == "" ? "1=1" : WhereSql)); DataTable _DataTable = (new ENDACCOUNT()).ExecuteDataTable(sqlString); if (_DataTable.Rows.Count > 0) { TOTALSELLAMOUNT.Text = _DataTable.Rows[0][0].ToString(); CASHPAY.Text = _DataTable.Rows[0][1].ToString(); sqlString = @"SELECT NVL(SUM(DIFFERENT_PRICE),0) FROM HIGHWAY_SELLDATA.V_PROBLEM_ENDACCOUNT WHERE DIFFERENT_PRICE > 0" + WhereSql; DIFFERENT_PRICE_MORE.Text = (new ENDACCOUNT()).ExecuteDataTable(sqlString).Rows[0][0].ToString(); sqlString = @"SELECT NVL(SUM(DIFFERENT_PRICE),0) FROM HIGHWAY_SELLDATA.V_PROBLEM_ENDACCOUNT WHERE DIFFERENT_PRICE < 0" + WhereSql; DIFFERENT_PRICE_LESS.Text = (new ENDACCOUNT()).ExecuteDataTable(sqlString).Rows[0][0].ToString(); } } #endregion #region 方法 -> 绑定列表数据 //查询 protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e) { GridViewEx1.Selecting(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); e.SetValue(GridPageEx1); } //翻页事件 protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e) { GridViewEx1.Pagging(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); } //查询SQL设置 protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e) { string WhereSql = string.Empty; e.SetOtherUserCustomWhereSqlString = ""; if (SERVERPART_ID.SelectedValue != "1=1") { WhereSql += " AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue.ToDecrypt(); } if (ShopCode.SelectedIndex < 3 && ShopCode.SelectedIndex > 0) { WhereSql += " AND SHOPREGION = " + ShopCode.SelectedValue; } else if (ShopCode.SelectedValue != "1=1" && ShopCode.SelectedIndex > -1) { WhereSql += " AND SHOPCODE = " + ShopCode.SelectedValue; } if (TREATMENT_MARK.SelectedValue != "1=1") { WhereSql += " AND TREATMENT_MARK = " + TREATMENT_MARK.SelectedValue; } if (StatisticsStartDay.Text != "") { WhereSql += " AND ENDACCOUNT_DATE >= TO_DATE('" + StatisticsStartDay.Text + "','YYYY-MM-DD')"; } if (StatisticsEndDay.Text != "") { WhereSql += " AND ENDACCOUNT_DATE < TO_DATE('" + StatisticsEndDay.Text + "','YYYY-MM-DD') + 1 "; } e.SetOtherUserCustomWhereSqlString = WhereSql.StartsWith(" AND ") ? WhereSql.Substring(4) : WhereSql; e.AddOrderByParams("SERVERPART_NAME,SHOPNAME,ENDACCOUNT_DATE", true); } string OnClickString = "RealEstate.GridView.PopDialog(event,\"/HighWay/Modules/Statistics/EndAccount/ENDACCOUNTList.aspx?SHOPCODE={0}&SERVERPART_ID={1}&ENDACCOUNT_DATE={2}\",null,null,null);return false;"; protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string _SHOPCODE = GridViewEx1.DataKeys[e.Row.RowIndex].Values["SHOPCODE"].ToString().ToEncrypt(); string _SERVERPART_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["SERVERPART_ID"].ToString().ToEncrypt(); //LinkButton MoreInfo = (LinkButton)e.Row.FindControl("MoreInfo"); //MoreInfo.OnClientClick = GridViewEx1.GetOpenPopDialogClientScript("ENDACCOUNTList.aspx?SHOPCODE=" + // _SHOPCODE + "&SERVERPART_ID=" + _SERVERPART_ID + "&ENDACCOUNT_DATE=" + // e.Row.Cells[e.Row.Cells.Count - 3].Text.ToEncrypt(), 1000, 700); e.Row.Attributes["onclick"] = string.Format(OnClickString, _SHOPCODE, _SERVERPART_ID, e.Row.Cells[e.Row.Cells.Count - 3].Text.ToEncrypt()); foreach (ListItemEx _ListItemEx in TREATMENT_MARK.Items) { if (_ListItemEx.Value == e.Row.Cells[e.Row.Cells.Count - 1].Text) { e.Row.Cells[e.Row.Cells.Count - 1].Text = _ListItemEx.Text; if (_ListItemEx.Value == "1") e.Row.Cells[e.Row.Cells.Count - 1].ForeColor = Color.Red; } } if (e.Row.Cells[8].Text == "" || e.Row.Cells[8].Text == " ") { e.Row.Cells[8].Text = (double.Parse(e.Row.Cells[7].Text) - double.Parse(e.Row.Cells[6].Text)).ToString(); } if (e.Row.Cells[8].Text != "" && e.Row.Cells[8].Text != " " && e.Row.Cells[8].Text != "0" && double.Parse(e.Row.Cells[8].Text) > 0) { e.Row.Cells[7].ForeColor = Color.Green; e.Row.Cells[8].ForeColor = Color.Green; } else if (e.Row.Cells[8].Text != "" && e.Row.Cells[8].Text != " " && e.Row.Cells[8].Text != "0" && double.Parse(e.Row.Cells[8].Text) < 0) { e.Row.Cells[7].ForeColor = Color.Red; e.Row.Cells[8].ForeColor = Color.Red; } if (e.Row.Cells[4].Text == "0") { e.Row.Cells[9].Text = "?"; e.Row.Cells[9].ForeColor = Color.Red; } else { e.Row.Cells[9].Text = (double.Parse(e.Row.Cells[6].Text) - double.Parse(e.Row.Cells[4].Text)).Round(2).ToString(); if (double.Parse(e.Row.Cells[9].Text) > 20) { e.Row.Cells[9].Text += "?"; e.Row.Cells[9].ForeColor = Color.Red; } } } } #endregion #region 方法 -> 导出对应的Excel protected void ButtonExport_Click(object sender, EventArgs e) { string WhereSql = string.Empty; string StrSql = @"SELECT SERVERPART_NAME as 服务区, SHOPNAME as 门店名称,TICKETCOUNT as 总单据数, TOTALCOUNT as 总销售数量,TOTALSELLAMOUNT as 总销售额,CASHPAY as 缴款金额, WORKER_NAME as 结账人名称,CASHIER_NAME AS 收银员名称,DIFFERENT_PRICE AS 长短款, ENDACCOUNT_DATE as 结账时间,DIFFERENCE_REASON as 产生原因,TREATMENT_MARK as 处理标记 FROM HIGHWAY_SELLDATA.T_ENDACCOUNT WHERE 1=1"; if (SERVERPART_ID.SelectedValue != "1=1") { WhereSql += " AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue.ToDecrypt(); } if (ShopCode.SelectedIndex == 1) { WhereSql += " AND SHOPCODE LIKE '01%'"; } else if (ShopCode.SelectedIndex == 2) { WhereSql += " AND SHOPCODE LIKE '02%'"; } else if (ShopCode.SelectedValue != "1=1" && ShopCode.SelectedIndex > -1) { WhereSql += " AND SHOPCODE = " + ShopCode.SelectedValue; } if (TREATMENT_MARK.SelectedValue != "1=1") { WhereSql += " AND TREATMENT_MARK = " + TREATMENT_MARK.SelectedValue; } if (StatisticsStartDay.Text != "") { WhereSql += " AND ENDACCOUNT_DATE >= TO_DATE('" + StatisticsStartDay.Text + "','YYYY-MM-DD')"; } if (StatisticsEndDay.Text != "") { WhereSql += " AND ENDACCOUNT_DATE <= TO_DATE('" + StatisticsEndDay.Text + "','YYYY-MM-DD') + 1 "; } DataTable _DataTable = (new Storage.Business.COMMODITY()).ExecuteDataTable(StrSql + WhereSql + " ORDER BY SERVERPART_NAME,SHOPNAME,ENDACCOUNT_DATE DESC"); ExcelHelper _ExcelHelper = new ExcelHelper(); _ExcelHelper.DataTableToExcel("结账数据导出", _DataTable, "结账数据", true); } #endregion } }