2025-03-27 15:05:14 +08:00

312 lines
14 KiB
C#

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<ENDACCOUNT>(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<ENDACCOUNT>(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<ENDACCOUNT>(ObjectDataSource1, GridPageEx1);
//设置UI变化
e.SetValue(GridViewEx1);
e.SetValue(GridPageEx1);
}
//翻页事件
protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e)
{
GridViewEx1.Pagging<ENDACCOUNT>(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 == "&nbsp;")
{
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 != "&nbsp;" && 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 != "&nbsp;" && 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
}
}