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

389 lines
16 KiB
C#

using System;
using System.Configuration;
using System.Collections.Generic;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using SuperMap.RealEstate.Web.UI.WebControls;
using Business = SuperMap.RealEstate.HighWay.Storage.Business;
using HZQR.Common;
namespace SuperMap.RealEstate.HighWay.Modules.SellData
{
public partial class Default : Storage.UI.BasePage
{
protected string SERVERPART_IDS = "", SERVERPARTSHOP_IDS = "";
private DataTable _DataTable = null;
#region ->
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
InitControls();
Business.CommonHelper.BindReportHeader(Label1, PassportInfo.ProvinceUnit,
"门店销售流水汇总表", PassportInfo.CityAuthority, Transaction);
//设置回车焦点按钮
SetControlClientAction(ButtonStatistics, false);
SetControlClientAction(ButtonSearch);
}
#endregion
#region ->
private void InitControls()
{
SERVERPART_ID.Items.Clear();
ListItemEx _ListItemEx = new ListItemEx();
foreach (Business.SERVERPART _SERVERPART in new Business.SERVERPART(Transaction).GetPassportServerPart(
PassportInfo.CityAuthority, "1000,1001"))
{
_ListItemEx = new ListItemEx();
_ListItemEx.Value = _SERVERPART.KeyID;
_ListItemEx.Text = _SERVERPART.SERVERPART_NAME;
SERVERPART_ID.Items.Add(_ListItemEx);
}
SERVERPART_ID.SelectedIndex = 0;
string StrSql = string.Empty;
SERVERPARTSHOP_ID.Items.Clear();
_ListItemEx = new ListItemEx();
_ListItemEx.Text = "所有门店";
_ListItemEx.Value = "1=1";
SERVERPARTSHOP_ID.Items.Add(_ListItemEx);
//绑定对应的商家统计
if (SERVERPART_ID.SelectedValue != "1=1")
{
foreach (Business.SERVERPARTSHOP _SERVERPARTSHOP in new Business.SERVERPARTSHOP(Transaction).FillCollection(
"WHERE ISVALID = 1 AND SHOPTRADE NOT IN ('9032','9999') AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue +
" AND NVL(STATISTIC_TYPE,1000) IN (1000,2000) ORDER BY SHOPREGION,SHOPTRADE,SHOPCODE"))
{
_ListItemEx = new ListItemEx();
_ListItemEx.Text = _SERVERPARTSHOP.SHOPNAME;
_ListItemEx.Value = _SERVERPARTSHOP.KeyID;
_ListItemEx.Level = 1;
SERVERPARTSHOP_ID.Items.Add(_ListItemEx);
}
}
StatisticsDay.Text = DateTime.Now.Date.AddDays(-1).ToString();
}
#endregion
#region ->
protected void SERVERPART_ID_CallBackSetControl(object sender, ClientSetEventArgs e)
{
string StrSql = string.Empty;
SERVERPARTSHOP_ID.Items.Clear();
ListItemEx _ListItemEx = new ListItemEx();
_ListItemEx.Text = "所有门店";
_ListItemEx.Value = "1=1";
SERVERPARTSHOP_ID.Items.Add(_ListItemEx);
//绑定对应的商家统计
if (!string.IsNullOrEmpty(e.Argument) && e.Argument != "1=1")
{
foreach (Business.SERVERPARTSHOP _SERVERPARTSHOP in new Business.SERVERPARTSHOP(Transaction).FillCollection(
"WHERE ISVALID = 1 AND SHOPTRADE NOT IN ('9032','9999') AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue +
" AND NVL(STATISTIC_TYPE,1000) IN (1000,2000) ORDER BY SHOPREGION,SHOPTRADE,SHOPCODE"))
{
_ListItemEx = new ListItemEx();
_ListItemEx.Text = _SERVERPARTSHOP.SHOPNAME;
_ListItemEx.Value = _SERVERPARTSHOP.KeyID;
_ListItemEx.Level = 1;
SERVERPARTSHOP_ID.Items.Add(_ListItemEx);
}
}
e.SetDropDownListEx(SERVERPARTSHOP_ID);
}
#endregion
#region ->
protected void ButtonStatistics_Click(object sender, EventArgs e)
{
ButtonSearch.Visible = true;
//获取查询的门店集合
if (string.IsNullOrEmpty(SERVERPART_ID.SelectedValue))
{
Alert("请选择服务区!");
return;
}
#region
bool cashpayShow = true; //现金支付显示
bool mobilepayShow = true; //移动支付显示
bool couponpayShow = true; //消费(大巴)券显示
bool internalpayShow = true; //企业会员显示
bool memberpayShow = true; //会员卡支付显示
bool bankpayShow = true; //银联卡支付显示
foreach (Control _Control in LayoutButton_Visable.Controls)
{
if (_Control is CheckBoxEx && (_Control as CheckBoxEx).Checked)
{
if (_Control.ClientID == "B_L_LB_CASHPAY")
{
cashpayShow = false;
}
else if (_Control.ClientID == "B_L_LB_MOBILEPAY")
{
mobilepayShow = false;
}
else if (_Control.ClientID == "B_L_LB_COUPONPAY")
{
couponpayShow = false;
}
else if (_Control.ClientID == "B_L_LB_INTERNALPAY")
{
internalpayShow = false;
}
else if (_Control.ClientID == "B_L_LB_MEMBERPAY")
{
memberpayShow = false;
}
else if (_Control.ClientID == "B_L_LB_BANKPAY")
{
bankpayShow = false;
}
}
}
if (cashpayShow)
{
GridViewEx1.Columns[7].Visible = true;
}
else
{
GridViewEx1.Columns[7].Visible = false;
}
if (mobilepayShow)
{
GridViewEx1.Columns[8].Visible = true;
}
else
{
GridViewEx1.Columns[8].Visible = false;
}
if (couponpayShow)
{
GridViewEx1.Columns[9].Visible = true;
}
else
{
GridViewEx1.Columns[9].Visible = false;
}
if (internalpayShow)
{
GridViewEx1.Columns[10].Visible = true;
}
else
{
GridViewEx1.Columns[10].Visible = false;
}
if (memberpayShow)
{
GridViewEx1.Columns[11].Visible = true;
}
else
{
GridViewEx1.Columns[11].Visible = false;
}
if (bankpayShow)
{
GridViewEx1.Columns[12].Visible = true;
}
else
{
GridViewEx1.Columns[12].Visible = false;
}
#endregion
Business.CommonHelper.BindReportHeader(Label1, PassportInfo.ProvinceUnit,
SERVERPART_ID.SelectedItem.Text + "门店销售流水汇总表", PassportInfo.CityAuthority, Transaction);
//查询数据
GridViewEx1.SelectingWithInit<ExchangeData.Business.SELLDATA>(ObjectDataSource1, GridPageEx1);
//绑定统计日期、制单人、制单时间
ENDACCOUNT_DATE.Visible = true;
ENDACCOUNT_DATE.Text = "统计时间:" + StatisticsDay.Text;
div_sign.Attributes["style"] = "display:block";
lblStaffName.Visible = true;
lblStaffName.Text = "制单人:" + PassportInfo.Name;
lblDate.Visible = true;
lblDate.Text = "制单时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
#endregion
#region ->
//查询
protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e)
{
GridViewEx1.Selecting<ExchangeData.Business.SELLDATA>(ObjectDataSource1, GridPageEx1);
//设置UI变化
e.SetValue(GridViewEx1);
e.SetValue(GridPageEx1);
}
//翻页事件
protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e)
{
GridViewEx1.Pagging<ExchangeData.Business.SELLDATA>(ObjectDataSource1, GridPageEx1);
//设置UI变化
e.SetValue(GridViewEx1);
}
//查询SQL设置
protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e)
{
if (!string.IsNullOrEmpty(SERVERPART_ID.SelectedValue))
{
//搜索选项的搜索条件过滤
if (!string.IsNullOrEmpty(TextBox_Search.Text))
e.AddOrParams(GridViewSearch1, TextBox_Search.Text);
e.AddAndParams("1", 1);
e.AddAndParams("SERVERPART_ID", SERVERPART_ID.SelectedValue);
if (!string.IsNullOrEmpty(SERVERPARTSHOP_ID.SelectedValue) && SERVERPARTSHOP_ID.SelectedValue != "1=1")
{
e.AddAndParams("SERVERPARTSHOP_ID", SERVERPARTSHOP_ID.SelectedValue);
}
if (!string.IsNullOrEmpty(StatisticsDay.Text.Trim()))
{
e.SetOtherUserCustomWhereSqlString += (e.SetOtherUserCustomWhereSqlString == "" ? "" : " AND ") +
"SELLMASTER_DATE >= TO_DATE('" + StatisticsDay.Text.Trim() +
"','YYYY/MM/DD') AND SELLMASTER_DATE < TO_DATE('" + StatisticsDay.Text.Trim() + "','YYYY/MM/DD') + 1";
}
//排序
if (LayoutButton_OrderBy.Visible)
{
e.AddOrderByParams(GridViewOrderBy1);
}
else
{
e.AddOrderByParams("SELLMASTER_DATE", false);
}
}
else
{
e.AddAndParams("1", 2);
}
}
#endregion
#region ->
decimal _SELLMASTER_COUNT = 0, _SELLMASTER_AMOUNT = 0, _SELLMASTER_OFFPRICE = 0,
_CASHPAY = 0, _MOBILEPAY = 0, _COUPONPAY = 0, _INTERNALPAY = 0, _MEMBERPAY = 0, _BANKPAY = 0;
protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
_SELLMASTER_COUNT = 0;
_SELLMASTER_AMOUNT = 0;
_SELLMASTER_OFFPRICE = 0;
_CASHPAY = 0;
_MOBILEPAY = 0;
_COUPONPAY = 0;
_INTERNALPAY = 0;
_MEMBERPAY = 0;
_BANKPAY = 0;
}
else if (e.Row.RowType == DataControlRowType.DataRow)
{
string _SELLMASTER_CODE = GridViewEx1.DataKeys[e.Row.RowIndex]["SELLMASTER_CODE"].ToString();
e.Row.Attributes["onclick"] = GridViewEx1.GetOpenPopDialogClientScript("SaleDataDetailList.aspx?SELLMASTER_CODE=" +
_SELLMASTER_CODE.ToEncrypt() + "&SERVERPART_NAME=" + SERVERPART_ID.SelectedItem.Text.ToEncrypt() +
"&SHOPNAME=" + e.Row.Cells[e.Row.Cells.Count - 2].Text.ToEncrypt());
for (int CellCount = 6; CellCount < e.Row.Cells.Count - 3; CellCount++)
{
if (e.Row.Cells[CellCount].Text == "0" || e.Row.Cells[CellCount].Text == "0.00")
{
e.Row.Cells[CellCount].Text = "";
}
}
_SELLMASTER_COUNT += e.Row.Cells[4].Text.TryParseToDecimal();
_SELLMASTER_AMOUNT += e.Row.Cells[5].Text.TryParseToDecimal();
_SELLMASTER_OFFPRICE += e.Row.Cells[6].Text.TryParseToDecimal();
_CASHPAY += e.Row.Cells[7].Text.TryParseToDecimal();
_MOBILEPAY += e.Row.Cells[8].Text.TryParseToDecimal();
_COUPONPAY += e.Row.Cells[9].Text.TryParseToDecimal();
_INTERNALPAY += e.Row.Cells[10].Text.TryParseToDecimal();
_MEMBERPAY += e.Row.Cells[11].Text.TryParseToDecimal();
_BANKPAY += e.Row.Cells[12].Text.TryParseToDecimal();
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[0].Text = "合计";
e.Row.Cells[0].ColumnSpan = 3;
e.Row.Cells[0].HorizontalAlign = HorizontalAlign.Center;
e.Row.Cells[1].Visible = false;
e.Row.Cells[2].Visible = false;
e.Row.Cells[4].Text = _SELLMASTER_COUNT.ToString();
e.Row.Cells[5].Text = _SELLMASTER_AMOUNT.ToString();
e.Row.Cells[6].Text = _SELLMASTER_OFFPRICE.ToString();
e.Row.Cells[7].Text = _CASHPAY.ToString();
e.Row.Cells[8].Text = _MOBILEPAY.ToString();
e.Row.Cells[9].Text = _COUPONPAY.ToString();
e.Row.Cells[10].Text = _INTERNALPAY.ToString();
e.Row.Cells[11].Text = _MEMBERPAY.ToString();
e.Row.Cells[12].Text = _BANKPAY.ToString();
}
}
#endregion
#region -> Excel
protected void ButtonExport_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(SERVERPART_ID.SelectedValue))
{
Alert("请选择服务区!");
return;
}
string WhereSql = "";
string StrSql = @"SELECT A.SELLMASTER_DATE AS 销售时间,A.TICKET_CODE AS 小票编号,
WM_CONCAT(B.COMMODITY_NAME || '[' || B.COMMODITY_BARCODE || ']' ||
'(' || B.SELLDETAILS_COUNT || '*' || B.SELLDETAILS_PRICE || ')') AS 流水详情,
A.SELLMASTER_COUNT AS 销售数量,A.SELLMASTER_AMOUNT AS 实收金额,A.SELLMASTER_OFFPRICE AS 优惠金额,
A.CASHPAY AS 现金支付,A.MOBILEPAY AS 移动支付,A.COUPONPAY AS 消费券,A.INTERNALPAY AS 企业会员,
A.MEMBERPAY AS 会员卡支付,A.BANKPAY AS 银联支付,A.SHOPNAME AS 门店名称,A.MACHINECODE AS 收银机号
FROM
{0} A,HIGHWAY_SELLDATA.T_SELLDETAILS B
WHERE
A.SELLMASTER_CODE = B.SELLMASTER_CODE{1}
GROUP BY
A.SELLMASTER_DATE,A.SHOPNAME,A.SELLMASTER_COUNT,A.SELLMASTER_AMOUNT,A.SELLMASTER_OFFPRICE,
A.CASHPAY,A.MOBILEPAY,A.COUPONPAY,A.INTERNALPAY,A.MEMBERPAY,A.BANKPAY,A.MACHINECODE,A.TICKET_CODE";
WhereSql += " AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue;
if (!string.IsNullOrEmpty(SERVERPARTSHOP_ID.SelectedValue) && SERVERPARTSHOP_ID.SelectedValue != "1=1")
{
WhereSql += " AND SERVERPARTSHOP_ID = " + SERVERPARTSHOP_ID.SelectedValue;
}
if (!string.IsNullOrEmpty(StatisticsDay.Text.Trim()))
{
WhereSql += " AND SELLMASTER_DATE >= TO_DATE('" + StatisticsDay.Text.Trim() +
"','YYYY/MM/DD') AND SELLMASTER_DATE < TO_DATE('" + StatisticsDay.Text.Trim() + "','YYYY/MM/DD') + 1";
}
_DataTable = new ExchangeData.Business.SELLDATA(Transaction).ExecuteDataTable(
string.Format(StrSql, GridViewEx1.DataTableName, WhereSql));
ExcelHelper _ExcelHelper = new ExcelHelper();
_ExcelHelper.DataTableToExcel(Label1.Text, ENDACCOUNT_DATE.Text, lblStaffName.Text, lblDate.Text,
null, Label1.Text + "导出", _DataTable, "门店销售流水汇总表", true);
}
#endregion
}
}