using System;
using System.Configuration;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.UI;
using System.Web.UI.WebControls;
using SuperMap.RealEstate.CoreFrameWork;
using SuperMap.RealEstate.Web.UI.WebControls;
using Business = SuperMap.RealEstate.HighWay.Storage.Business;
//using SellBusiness = SuperMap.RealEstate.HighWay.SellData.Business;
using SEB = SuperMap.RealEstate.SendRec.Storage.Business;
using HZQR.Common;
namespace SuperMap.RealEstate.SendRec.Modules.PrintBill
{
public partial class RestaurantRevenue : UI.BasePage
{
protected string _bCompanyName = ConfigurationManager.AppSettings["bCompanyName"].ToString().Split('|')[0];
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
if (!string.IsNullOrWhiteSpace(UserProvinceUnit))
{
Label1.Text = UserProvinceUnit + "
直营餐厅经营数据统计表";
}
else
{
Label1.Text = _bCompanyName + "
直营餐厅经营数据统计表";
}
StatisticsYear.Items.Clear();
for (int i = 0; i <= (DateTime.Now.Year - 2019); i++)
{
StatisticsYear.Items.Add(new ListItemEx((2019 + i).ToString(), (2019 + i).ToString()));
}
StatisticsYear.SelectedValue = DateTime.Now.Year.ToString();
SetControlClientAction(ButtonStatistics);
SetControlClientAction(ButtonAdd);
}
#region 方法 -> 查询
protected void ButtonStatistics_Click(object sender, EventArgs e)
{
//DataTable _DataTable = new Business.RTAUTOTYPE(Transaction).ExecuteDataTable(string.Format(
// @"SELECT A.PROVINCE_CODE,WMSYS.WM_CONCAT(A.SERVERPARTSHOP_ID) AS SERVERPARTSHOP_ID,
// WMSYS.WM_CONCAT(A.SERVERPART_ID) AS SERVERPART_ID
// FROM COOP_MERCHANT.T_RTAUTOTYPE A WHERE USER_ID = {0} GROUP BY A.PROVINCE_CODE", PassportInfo.ID));
DataTable BindTable = null;
string _SERVERPART_ID = new Business.SERVERPART(Transaction).GetPassportServerPartID(PassportInfo.CityAuthority);
int.TryParse(StatisticsYear.SelectedValue, out int _Year);
int.TryParse(StatisticsMonth.SelectedValue, out int _Month);
DataTable dataTable = null;
if (StaticsType.SelectedValue == "1")
{
DateTime _StartTime = new DateTime(_Year, _Month, 01, 00, 00, 00);
dataTable = new SEB.RESTAURANTREVENUE(Transaction).ExecuteDataTable(string.Format(
@"SELECT SUM(A.CASHPAY) AS SALESREVENUE,C.SHOPSHORTNAME,A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,
WM_CONCAT(DISTINCT C.SERVERPARTSHOP_ID) AS SERVERPARTSHOP_ID,SUM(NVL(B.NETINTERESTRATE,0)) AS NETINTERESTRATE,
NVL(B.RESTAURANTREVENUE_ID,0) AS RESTAURANTREVENUE_ID,SUM(NVL(B.SALESREVENUE,0)) AS SALESREVENUE,
SUM(NVL(B.OPERATINGCOST,0)) AS OPERATINGCOST,SUM(NVL(B.SELLINGEXPENSES,0)) AS SELLINGEXPENSES,
SUM(NVL(B.MANAGEMENTCOSTS,0)) AS MANAGEMENTCOSTS,SUM(NVL(B.FINANCIALEXPENSES,0)) AS FINANCIALEXPENSES,
SUM(NVL(B.OTHERCOSTS,0)) AS OTHERCOSTS,SUM(NVL(B.OUTPRICETOTAL,0)) AS OUTPRICETOTAL,
SUM(NVL(B.NETPROFIT,0)) AS NETPROFIT,SUM(NVL(B.GROSSINTERESTATE,0)) AS GROSSINTERESTATE
FROM HIGHWAY_SELLDATA.T_ENDACCOUNT A,HIGHWAY_STORAGE.T_SERVERPARTSHOP C
LEFT JOIN SENDREC_STORAGE.T_RESTAURANTREVENUE B ON B.SERVERPART_ID = C.SERVERPART_ID
AND B.SHOPSHORTNAME = C.SHOPSHORTNAME AND B.STATISTICALYEAR = '{0}' AND B.STATISTICALMONTH = '{1}'
WHERE A.SERVERPART_ID = C.SERVERPART_ID AND A.SHOPCODE = C.SHOPCODE AND
A.SERVERPART_ID IN ({2}) AND (',' || C.STATISTICS_TYPE || ',' LIKE '%,' || 3020 || ',%') AND
A.ENDACCOUNT_DATE BETWEEN TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{4}','YYYY/MM/DD HH24:MI:SS') AND C.BUSINESS_TYPE = 1000 AND C.SHOPTRADE <> 1000
GROUP BY C.SHOPSHORTNAME,A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,RESTAURANTREVENUE_ID",
_Year, _Month, _SERVERPART_ID, _StartTime, _StartTime.AddMonths(1)));
}
else
{
DateTime _EndTime = new DateTime(_Year, _Month, 21, 00, 00, 00);
DateTime _StartTime = new DateTime(_Year, _EndTime.AddMonths(-1).Month, 21, 00, 00, 00);
dataTable = new SEB.RESTAURANTREVENUE(Transaction).ExecuteDataTable(string.Format(
@"SELECT SUM(A.CASHPAY) AS SALESREVENUE,C.SHOPSHORTNAME,A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,
WM_CONCAT(DISTINCT C.SERVERPARTSHOP_ID) AS SERVERPARTSHOP_ID,SUM(NVL(B.NETINTERESTRATE,0)) AS NETINTERESTRATE,
NVL(B.RESTAURANTREVENUE_ID,0) AS RESTAURANTREVENUE_ID,SUM(NVL(B.SALESREVENUE,0)) AS SALESREVENUE,
SUM(NVL(B.OPERATINGCOST,0)) AS OPERATINGCOST,SUM(NVL(B.SELLINGEXPENSES,0)) AS SELLINGEXPENSES,
SUM(NVL(B.MANAGEMENTCOSTS,0)) AS MANAGEMENTCOSTS,SUM(NVL(B.FINANCIALEXPENSES,0)) AS FINANCIALEXPENSES,
SUM(NVL(B.OTHERCOSTS,0)) AS OTHERCOSTS,SUM(NVL(B.OUTPRICETOTAL,0)) AS OUTPRICETOTAL,
SUM(NVL(B.NETPROFIT,0)) AS NETPROFIT,SUM(NVL(B.GROSSINTERESTATE,0)) AS GROSSINTERESTATE
FROM HIGHWAY_SELLDATA.T_ENDACCOUNT A,HIGHWAY_STORAGE.T_SERVERPARTSHOP C
LEFT JOIN SENDREC_STORAGE.T_RESTAURANTREVENUE B ON B.SERVERPART_ID = C.SERVERPART_ID
AND B.SHOPSHORTNAME = C.SHOPSHORTNAME AND B.STATISTICALYEAR = '{0}' AND B.STATISTICALMONTH = '{1}'
WHERE A.SERVERPART_ID = C.SERVERPART_ID AND A.SHOPCODE = C.SHOPCODE AND
A.SERVERPART_ID IN ({2}) AND (',' || C.STATISTICS_TYPE || ',' LIKE '%,' || 3020 || ',%') AND
A.ENDACCOUNT_DATE >= TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS') AND
A.ENDACCOUNT_DATE < TO_DATE('{4}','YYYY/MM/DD HH24:MI:SS') AND
C.BUSINESS_TYPE = 1000 AND C.SHOPTRADE <> 1000
GROUP BY C.SHOPSHORTNAME,A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,RESTAURANTREVENUE_ID",
_Year, _Month, _SERVERPART_ID, _StartTime, _EndTime));
}
if (BindTable == null)
{
BindTable = dataTable.Copy();
}
GridViewEx1.DataSource = BindTable;
GridViewEx1.DataBind();
liinfo.Attributes["style"] = "display:block";
}
#endregion
#region 方法 -> 绑定列表数据
double totalnum1, totalnum2, totalnum3, totalnum4, totalnum5, totalnum6, totalnum7, totalnum8;
protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
totalnum1 = 0;
totalnum2 = 0;
totalnum3 = 0;
totalnum4 = 0;
totalnum5 = 0;
totalnum6 = 0;
totalnum7 = 0;
totalnum8 = 0;
}
else if (e.Row.RowType == DataControlRowType.DataRow)
{
//销售收入 SALESREVENUE_TextBoxEx
TextBoxEx _SALESREVENUE_TextBoxEx = e.Row.FindControl("SALESREVENUE_TextBoxEx") as TextBoxEx;
double.TryParse(_SALESREVENUE_TextBoxEx.Text, out double _SALESREVENUE);
//营业成本 OPERATINGCOST_TextBoxEx
TextBoxEx _OPERATINGCOST_TextBoxEx = e.Row.FindControl("OPERATINGCOST_TextBoxEx") as TextBoxEx;
double.TryParse(_OPERATINGCOST_TextBoxEx.Text, out double _OPERATINGCOST);
//销售费用 SELLINGEXPENSES_TextBoxEx
TextBoxEx _SELLINGEXPENSES_TextBoxEx = e.Row.FindControl("SELLINGEXPENSES_TextBoxEx") as TextBoxEx;
double.TryParse(_SELLINGEXPENSES_TextBoxEx.Text, out double _SELLINGEXPENSES);
//管理费用 MANAGEMENTCOSTS_TextBoxEx
TextBoxEx _MANAGEMENTCOSTS_TextBoxEx = e.Row.FindControl("MANAGEMENTCOSTS_TextBoxEx") as TextBoxEx;
double.TryParse(_MANAGEMENTCOSTS_TextBoxEx.Text, out double _MANAGEMENTCOSTS);
//财务费用 FINANCIALEXPENSES_TextBoxEx
TextBoxEx _FINANCIALEXPENSES_TextBoxEx = e.Row.FindControl("FINANCIALEXPENSES_TextBoxEx") as TextBoxEx;
double.TryParse(_FINANCIALEXPENSES_TextBoxEx.Text, out double _FINANCIALEXPENSES);
//税金及其他 OTHERCOSTS_TextBoxEx
TextBoxEx _OTHERCOSTS_TextBoxEx = e.Row.FindControl("OTHERCOSTS_TextBoxEx") as TextBoxEx;
double.TryParse(_OTHERCOSTS_TextBoxEx.Text, out double _OTHERCOSTS);
//费用支付合计 _OUTPRICETOTAL_TextBoxEx
TextBoxEx _OUTPRICETOTAL_TextBoxEx = e.Row.FindControl("OUTPRICETOTAL_TextBoxEx") as TextBoxEx;
double.TryParse(_OUTPRICETOTAL_TextBoxEx.Text, out double _OUTPRICETOTAL);
//净利润 NETPROFIT_TextBoxEx
TextBoxEx _NETPROFIT_TextBoxEx = e.Row.FindControl("NETPROFIT_TextBoxEx") as TextBoxEx;
double.TryParse(_NETPROFIT_TextBoxEx.Text, out double _NETPROFIT);
//毛利率 GROSSINTERESTATE_TextBoxEx
TextBoxEx _GROSSINTERESTATE_TextBoxEx = e.Row.FindControl("GROSSINTERESTATE_TextBoxEx") as TextBoxEx;
double.TryParse(_GROSSINTERESTATE_TextBoxEx.Text, out double _GROSSINTERESTATE);
//净利率 NETINTERESTRATE_TextBoxEx
TextBoxEx _NETINTERESTRATE_TextBoxEx = e.Row.FindControl("NETINTERESTRATE_TextBoxEx") as TextBoxEx;
double.TryParse(_NETINTERESTRATE_TextBoxEx.Text, out double _NETINTERESTRATE);
totalnum1 += _SALESREVENUE;
totalnum2 += _OPERATINGCOST;
totalnum3 += _SELLINGEXPENSES;
totalnum4 += _MANAGEMENTCOSTS;
totalnum5 += _FINANCIALEXPENSES;
totalnum6 += _OTHERCOSTS;
totalnum7 += _OUTPRICETOTAL;
totalnum8 += _NETPROFIT;
if (!_GROSSINTERESTATE_TextBoxEx.Text.Contains("%"))
{
_GROSSINTERESTATE_TextBoxEx.Text = _GROSSINTERESTATE_TextBoxEx.Text + "%";
}
if (!_NETINTERESTRATE_TextBoxEx.Text.Contains("%"))
{
_NETINTERESTRATE_TextBoxEx.Text = _NETINTERESTRATE_TextBoxEx.Text + "%";
}
//绑定事件
//--营业成本
_OPERATINGCOST_TextBoxEx.Attributes["oninput"] = "resetTaxData('" + _SELLINGEXPENSES_TextBoxEx.ClientID + "','" +
_MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" + _FINANCIALEXPENSES_TextBoxEx.ClientID + "','" +
_OTHERCOSTS_TextBoxEx.ClientID + "','" + _OUTPRICETOTAL_TextBoxEx.ClientID + "'); " +
"resetTaxData2('" + _SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETPROFIT_TextBoxEx.ClientID + "');resetTaxData3('" + _SALESREVENUE_TextBoxEx.ClientID + "','" +
_OPERATINGCOST_TextBoxEx.ClientID + "','" + _GROSSINTERESTATE_TextBoxEx.ClientID + "');resetTaxData4('" +
_SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETINTERESTRATE_TextBoxEx.ClientID + "')";
_OPERATINGCOST_TextBoxEx.Attributes["onpropertychange"] = "resetTaxData('" + _SELLINGEXPENSES_TextBoxEx.ClientID + "','" +
_MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" + _FINANCIALEXPENSES_TextBoxEx.ClientID + "','" +
_OTHERCOSTS_TextBoxEx.ClientID + "','" + _OUTPRICETOTAL_TextBoxEx.ClientID + "'); " +
"resetTaxData2('" + _SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETPROFIT_TextBoxEx.ClientID + "');resetTaxData3('" + _SALESREVENUE_TextBoxEx.ClientID + "','" +
_OPERATINGCOST_TextBoxEx.ClientID + "','" + _GROSSINTERESTATE_TextBoxEx.ClientID + "');resetTaxData4('" +
_SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETINTERESTRATE_TextBoxEx.ClientID + "')";
//--销售费用
_SELLINGEXPENSES_TextBoxEx.Attributes["oninput"] = "resetTaxData('" + _SELLINGEXPENSES_TextBoxEx.ClientID + "','" +
_MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" + _FINANCIALEXPENSES_TextBoxEx.ClientID + "','" +
_OTHERCOSTS_TextBoxEx.ClientID + "','" + _OUTPRICETOTAL_TextBoxEx.ClientID + "'); " +
"resetTaxData2('" + _SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETPROFIT_TextBoxEx.ClientID + "');resetTaxData3('" + _SALESREVENUE_TextBoxEx.ClientID + "','" +
_OPERATINGCOST_TextBoxEx.ClientID + "','" + _GROSSINTERESTATE_TextBoxEx.ClientID + "');resetTaxData4('" +
_SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETINTERESTRATE_TextBoxEx.ClientID + "')";
_SELLINGEXPENSES_TextBoxEx.Attributes["onpropertychange"] = "resetTaxData('" + _SELLINGEXPENSES_TextBoxEx.ClientID + "','" +
_MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" + _FINANCIALEXPENSES_TextBoxEx.ClientID + "','" +
_OTHERCOSTS_TextBoxEx.ClientID + "','" + _OUTPRICETOTAL_TextBoxEx.ClientID + "'); " +
"resetTaxData2('" + _SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETPROFIT_TextBoxEx.ClientID + "');resetTaxData3('" + _SALESREVENUE_TextBoxEx.ClientID + "','" +
_OPERATINGCOST_TextBoxEx.ClientID + "','" + _GROSSINTERESTATE_TextBoxEx.ClientID + "');resetTaxData4('" +
_SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETINTERESTRATE_TextBoxEx.ClientID + "')";
//--财务费用
_MANAGEMENTCOSTS_TextBoxEx.Attributes["oninput"] = "resetTaxData('" + _SELLINGEXPENSES_TextBoxEx.ClientID + "','" +
_MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" + _FINANCIALEXPENSES_TextBoxEx.ClientID + "','" +
_OTHERCOSTS_TextBoxEx.ClientID + "','" + _OUTPRICETOTAL_TextBoxEx.ClientID + "'); " +
"resetTaxData2('" + _SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETPROFIT_TextBoxEx.ClientID + "');resetTaxData3('" + _SALESREVENUE_TextBoxEx.ClientID + "','" +
_OPERATINGCOST_TextBoxEx.ClientID + "','" + _GROSSINTERESTATE_TextBoxEx.ClientID + "');resetTaxData4('" +
_SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETINTERESTRATE_TextBoxEx.ClientID + "')";
_MANAGEMENTCOSTS_TextBoxEx.Attributes["onpropertychange"] = "resetTaxData('" + _SELLINGEXPENSES_TextBoxEx.ClientID + "','" +
_MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" + _FINANCIALEXPENSES_TextBoxEx.ClientID + "','" +
_OTHERCOSTS_TextBoxEx.ClientID + "','" + _OUTPRICETOTAL_TextBoxEx.ClientID + "'); " +
"resetTaxData2('" + _SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETPROFIT_TextBoxEx.ClientID + "');resetTaxData3('" + _SALESREVENUE_TextBoxEx.ClientID + "','" +
_OPERATINGCOST_TextBoxEx.ClientID + "','" + _GROSSINTERESTATE_TextBoxEx.ClientID + "');resetTaxData4('" +
_SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETINTERESTRATE_TextBoxEx.ClientID + "')";
//--管理费用
_FINANCIALEXPENSES_TextBoxEx.Attributes["oninput"] = "resetTaxData('" + _SELLINGEXPENSES_TextBoxEx.ClientID + "','" +
_MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" + _FINANCIALEXPENSES_TextBoxEx.ClientID + "','" +
_OTHERCOSTS_TextBoxEx.ClientID + "','" + _OUTPRICETOTAL_TextBoxEx.ClientID + "'); " +
"resetTaxData2('" + _SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETPROFIT_TextBoxEx.ClientID + "');resetTaxData3('" + _SALESREVENUE_TextBoxEx.ClientID + "','" +
_OPERATINGCOST_TextBoxEx.ClientID + "','" + _GROSSINTERESTATE_TextBoxEx.ClientID + "');resetTaxData4('" +
_SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETINTERESTRATE_TextBoxEx.ClientID + "')";
_FINANCIALEXPENSES_TextBoxEx.Attributes["onpropertychange"] = "resetTaxData('" + _SELLINGEXPENSES_TextBoxEx.ClientID + "','" +
_MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" + _FINANCIALEXPENSES_TextBoxEx.ClientID + "','" +
_OTHERCOSTS_TextBoxEx.ClientID + "','" + _OUTPRICETOTAL_TextBoxEx.ClientID + "'); " +
"resetTaxData2('" + _SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETPROFIT_TextBoxEx.ClientID + "');resetTaxData3('" + _SALESREVENUE_TextBoxEx.ClientID + "','" +
_OPERATINGCOST_TextBoxEx.ClientID + "','" + _GROSSINTERESTATE_TextBoxEx.ClientID + "');resetTaxData4('" +
_SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETINTERESTRATE_TextBoxEx.ClientID + "')";
//--税金及其他
_OTHERCOSTS_TextBoxEx.Attributes["oninput"] = "resetTaxData('" + _SELLINGEXPENSES_TextBoxEx.ClientID + "','" +
_MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" + _FINANCIALEXPENSES_TextBoxEx.ClientID + "','" +
_OTHERCOSTS_TextBoxEx.ClientID + "','" + _OUTPRICETOTAL_TextBoxEx.ClientID + "'); " +
"resetTaxData2('" + _SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETPROFIT_TextBoxEx.ClientID + "');resetTaxData3('" + _SALESREVENUE_TextBoxEx.ClientID + "','" +
_OPERATINGCOST_TextBoxEx.ClientID + "','" + _GROSSINTERESTATE_TextBoxEx.ClientID + "');resetTaxData4('" +
_SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETINTERESTRATE_TextBoxEx.ClientID + "')";
_OTHERCOSTS_TextBoxEx.Attributes["onpropertychange"] = "resetTaxData('" + _SELLINGEXPENSES_TextBoxEx.ClientID + "','" +
_MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" + _FINANCIALEXPENSES_TextBoxEx.ClientID + "','" +
_OTHERCOSTS_TextBoxEx.ClientID + "','" + _OUTPRICETOTAL_TextBoxEx.ClientID + "'); " +
"resetTaxData2('" + _SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETPROFIT_TextBoxEx.ClientID + "');resetTaxData3('" + _SALESREVENUE_TextBoxEx.ClientID + "','" +
_OPERATINGCOST_TextBoxEx.ClientID + "','" + _GROSSINTERESTATE_TextBoxEx.ClientID + "');resetTaxData4('" +
_SALESREVENUE_TextBoxEx.ClientID + "','" + _OPERATINGCOST_TextBoxEx.ClientID + "','" +
_SELLINGEXPENSES_TextBoxEx.ClientID + "','" + _MANAGEMENTCOSTS_TextBoxEx.ClientID + "','" +
_FINANCIALEXPENSES_TextBoxEx.ClientID + "','" + _OTHERCOSTS_TextBoxEx.ClientID + "','" +
_NETINTERESTRATE_TextBoxEx.ClientID + "')";
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[0].Text = "合计";
e.Row.Cells[0].HorizontalAlign = HorizontalAlign.Center;
e.Row.Cells[0].ColumnSpan = 3;
e.Row.Cells[1].Visible = false;
e.Row.Cells[2].Visible = false;
e.Row.Cells[3].Text = totalnum1 == 0 ? "" : totalnum1.ToString();
e.Row.Cells[4].Text = totalnum2 == 0 ? "" : totalnum2.ToString();
e.Row.Cells[5].Text = totalnum3 == 0 ? "" : totalnum3.ToString();
e.Row.Cells[6].Text = totalnum4 == 0 ? "" : totalnum4.ToString();
e.Row.Cells[7].Text = totalnum5 == 0 ? "" : totalnum5.ToString();
e.Row.Cells[8].Text = totalnum6 == 0 ? "" : totalnum6.ToString();
e.Row.Cells[9].Text = totalnum7 == 0 ? "" : totalnum7.ToString();
e.Row.Cells[10].Text = totalnum8 == 0 ? "" : totalnum8.ToString();
}
}
#endregion
#region 方法 -> 导出对应的Excel
protected void ButtonExport_Click(object sender, EventArgs e)
{
string _SERVERPART_ID = new Business.SERVERPART(Transaction).GetPassportServerPartID(PassportInfo.CityAuthority);
int.TryParse(StatisticsYear.SelectedValue, out int _Year);
int.TryParse(StatisticsMonth.SelectedValue, out int _Month);
DateTime _StartTime = new DateTime(_Year, _Month, 01, 00, 00, 00);
DataTable dataTable = new SEB.RESTAURANTREVENUE(Transaction).ExecuteDataTable(string.Format(
@"SELECT A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,C.SHOPSHORTNAME,SUM(A.CASHPAY) AS SALESREVENUE,
WM_CONCAT(C.SERVERPARTSHOP_ID) AS SERVERPARTSHOP_ID,SUM(NVL(B.NETINTERESTRATE,0)) || '%' AS NETINTERESTRATE,
NVL(B.RESTAURANTREVENUE_ID,0) AS RESTAURANTREVENUE_ID,SUM(NVL(B.OPERATINGCOST,0)) AS OPERATINGCOST,
SUM(NVL(B.SELLINGEXPENSES,0)) AS SELLINGEXPENSES,
SUM(NVL(B.MANAGEMENTCOSTS,0)) AS MANAGEMENTCOSTS,SUM(NVL(B.FINANCIALEXPENSES,0)) AS FINANCIALEXPENSES,
SUM(NVL(B.OTHERCOSTS,0)) AS OTHERCOSTS,SUM(NVL(B.OUTPRICETOTAL,0)) AS OUTPRICETOTAL,
SUM(NVL(B.NETPROFIT,0)) AS NETPROFIT,SUM(NVL(B.GROSSINTERESTATE,0)) || '%' AS GROSSINTERESTATE
FROM HIGHWAY_SELLDATA.T_ENDACCOUNT A,HIGHWAY_STORAGE.T_SERVERPARTSHOP C
LEFT JOIN SENDREC_STORAGE.T_RESTAURANTREVENUE B ON B.SERVERPART_ID = C.SERVERPART_ID
AND B.SERVERPARTSHOP_ID = C.SERVERPARTSHOP_ID AND B.STATISTICALYEAR = '{0}' AND B.STATISTICALMONTH = '{1}'
WHERE A.SERVERPART_ID = C.SERVERPART_ID AND A.SHOPCODE = C.SHOPCODE AND
A.SERVERPART_ID IN ({2}) AND (',' || C.STATISTICS_TYPE || ',' LIKE '%,' || 3020 || ',%') AND
A.ENDACCOUNT_DATE BETWEEN TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS') AND TO_DATE('{4}','YYYY/MM/DD HH24:MI:SS')
GROUP BY C.SHOPSHORTNAME,A.PROVINCE_CODE,A.SERVERPART_ID,A.SERVERPART_NAME,RESTAURANTREVENUE_ID",
_Year, _Month, _SERVERPART_ID, _StartTime, _StartTime.AddMonths(1)));
DataRow _Row = dataTable.NewRow();
_Row["SERVERPART_NAME"] = "合计";
_Row["SALESREVENUE"] = dataTable.Compute("SUM(SALESREVENUE)", "").TryParseToDecimal();
_Row["OPERATINGCOST"] = dataTable.Compute("SUM(OPERATINGCOST)", "").TryParseToDecimal();
_Row["SELLINGEXPENSES"] = dataTable.Compute("SUM(SELLINGEXPENSES)", "").TryParseToDecimal();
_Row["MANAGEMENTCOSTS"] = dataTable.Compute("SUM(MANAGEMENTCOSTS)", "").TryParseToDecimal();
_Row["FINANCIALEXPENSES"] = dataTable.Compute("SUM(FINANCIALEXPENSES)", "").TryParseToDecimal();
_Row["OTHERCOSTS"] = dataTable.Compute("SUM(OTHERCOSTS)", "").TryParseToDecimal();
_Row["OUTPRICETOTAL"] = dataTable.Compute("SUM(OUTPRICETOTAL)", "").TryParseToDecimal();
_Row["NETPROFIT"] = dataTable.Compute("SUM(NETPROFIT)", "").TryParseToDecimal();
_Row["GROSSINTERESTATE"] = ((_Row["SALESREVENUE"].TryParseToDecimal() - _Row["OPERATINGCOST"].TryParseToDecimal()) / _Row["SALESREVENUE"].TryParseToDecimal()).ToString("P");
_Row["NETINTERESTRATE"] = (_Row["NETPROFIT"].TryParseToDecimal() / _Row["SALESREVENUE"].TryParseToDecimal()).ToString("P");
dataTable.Rows.Add(_Row);
dataTable.Columns.Remove("PROVINCE_CODE");
dataTable.Columns.Remove("SERVERPART_ID");
dataTable.Columns.Remove("SERVERPARTSHOP_ID");
dataTable.Columns.Remove("RESTAURANTREVENUE_ID");
dataTable.Columns["SERVERPART_NAME"].ColumnName = "服务区名称";
dataTable.Columns["SHOPSHORTNAME"].ColumnName = "门店名称";
dataTable.Columns["SALESREVENUE"].ColumnName = "销售收入";
dataTable.Columns["OPERATINGCOST"].ColumnName = "营业成本";
dataTable.Columns["SELLINGEXPENSES"].ColumnName = "销售费用";
dataTable.Columns["MANAGEMENTCOSTS"].ColumnName = "管理费用";
dataTable.Columns["FINANCIALEXPENSES"].ColumnName = "财务费用";
dataTable.Columns["OTHERCOSTS"].ColumnName = "税金及其他";
dataTable.Columns["OUTPRICETOTAL"].ColumnName = "费用支付合计";
dataTable.Columns["NETPROFIT"].ColumnName = "净利润";
dataTable.Columns["GROSSINTERESTATE"].ColumnName = "毛利率";
dataTable.Columns["NETINTERESTRATE"].ColumnName = "净利率";
string fileName = Label1.Text.Trim().Replace("
", "-");
ExcelHelper _ExcelHelper = new ExcelHelper();
_ExcelHelper.DataTableToExcel(Label1.Text, "", lblStaffName.Text, lblDate.Text, null, fileName, dataTable, "月营收数据", true);
//_ExcelHelper.GridViewToExcel(fileName, "经营数据统计表", Label1.Text, STATISTICS_TYPE.Text,
// ENDACCOUNT_DATE.Text, lblStaffName.Text, lblDate.Text, GridViewEx1);
}
#endregion
protected void ButtonAdd_Click(object sender, EventArgs e)
{
foreach (GridViewRow _GVR in GridViewEx1.Rows)
{
if (_GVR.RowType == DataControlRowType.DataRow)
{
string KeyID = GridViewEx1.DataKeys[_GVR.RowIndex].Values["RESTAURANTREVENUE_ID"].ToString();
TextBoxEx _SALESREVENUE_TextBoxEx = _GVR.Cells[3].FindControl("SALESREVENUE_TextBoxEx") as TextBoxEx;
double.TryParse(_SALESREVENUE_TextBoxEx.Text, out double _SALESREVENUE);
//营业成本 OPERATINGCOST_TextBoxEx
TextBoxEx _OPERATINGCOST_TextBoxEx = _GVR.Cells[4].FindControl("OPERATINGCOST_TextBoxEx") as TextBoxEx;
double.TryParse(_OPERATINGCOST_TextBoxEx.Text, out double _OPERATINGCOST);
//销售费用 SELLINGEXPENSES_TextBoxEx
TextBoxEx _SELLINGEXPENSES_TextBoxEx = _GVR.Cells[5].FindControl("SELLINGEXPENSES_TextBoxEx") as TextBoxEx;
double.TryParse(_SELLINGEXPENSES_TextBoxEx.Text, out double _SELLINGEXPENSES);
//管理费用 MANAGEMENTCOSTS_TextBoxEx
TextBoxEx _MANAGEMENTCOSTS_TextBoxEx = _GVR.Cells[6].FindControl("MANAGEMENTCOSTS_TextBoxEx") as TextBoxEx;
double.TryParse(_MANAGEMENTCOSTS_TextBoxEx.Text, out double _MANAGEMENTCOSTS);
//财务费用 FINANCIALEXPENSES_TextBoxEx
TextBoxEx _FINANCIALEXPENSES_TextBoxEx = _GVR.Cells[7].FindControl("FINANCIALEXPENSES_TextBoxEx") as TextBoxEx;
double.TryParse(_FINANCIALEXPENSES_TextBoxEx.Text, out double _FINANCIALEXPENSES);
//税金及其他 OTHERCOSTS_TextBoxEx
TextBoxEx _OTHERCOSTS_TextBoxEx = _GVR.Cells[8].FindControl("OTHERCOSTS_TextBoxEx") as TextBoxEx;
double.TryParse(_OTHERCOSTS_TextBoxEx.Text, out double _OTHERCOSTS);
//费用支付合计 _OUTPRICETOTAL_TextBoxEx
TextBoxEx _OUTPRICETOTAL_TextBoxEx = _GVR.Cells[9].FindControl("OUTPRICETOTAL_TextBoxEx") as TextBoxEx;
double.TryParse(_OUTPRICETOTAL_TextBoxEx.Text, out double _OUTPRICETOTAL);
//净利润 NETPROFIT_TextBoxEx
TextBoxEx _NETPROFIT_TextBoxEx = _GVR.Cells[10].FindControl("NETPROFIT_TextBoxEx") as TextBoxEx;
double.TryParse(_NETPROFIT_TextBoxEx.Text, out double _NETPROFIT);
//毛利率 GROSSINTERESTATE_TextBoxEx
TextBoxEx _GROSSINTERESTATE_TextBoxEx = _GVR.Cells[11].FindControl("GROSSINTERESTATE_TextBoxEx") as TextBoxEx;
double.TryParse(_GROSSINTERESTATE_TextBoxEx.Text.Replace("%", ""), out double _GROSSINTERESTATE);
//净利率 NETINTERESTRATE_TextBoxEx
TextBoxEx _NETINTERESTRATE_TextBoxEx = _GVR.Cells[12].FindControl("NETINTERESTRATE_TextBoxEx") as TextBoxEx;
double.TryParse(_NETINTERESTRATE_TextBoxEx.Text.Replace("%", ""), out double _NETINTERESTRATE);
if (!string.IsNullOrWhiteSpace(KeyID))
{
SEB.RESTAURANTREVENUE _RESTAURANTREVENUE = new SEB.RESTAURANTREVENUE(this.Transaction);
_RESTAURANTREVENUE.RESTAURANTREVENUE_ID = int.Parse(KeyID);
if (_RESTAURANTREVENUE.Select())
{
_RESTAURANTREVENUE.OPERATINGCOST = _OPERATINGCOST;
_RESTAURANTREVENUE.SELLINGEXPENSES = _SELLINGEXPENSES;
_RESTAURANTREVENUE.MANAGEMENTCOSTS = _MANAGEMENTCOSTS;
_RESTAURANTREVENUE.FINANCIALEXPENSES = _FINANCIALEXPENSES;
_RESTAURANTREVENUE.OTHERCOSTS = _OTHERCOSTS;
_RESTAURANTREVENUE.SALESREVENUE = _SALESREVENUE;
_RESTAURANTREVENUE.OUTPRICETOTAL = _OUTPRICETOTAL;
_RESTAURANTREVENUE.NETPROFIT = _NETPROFIT;
_RESTAURANTREVENUE.GROSSINTERESTATE = _GROSSINTERESTATE;
_RESTAURANTREVENUE.NETINTERESTRATE = _NETINTERESTRATE;
_RESTAURANTREVENUE.Update();
}
else
{
string _SHOPSHORTNAME = GridViewEx1.DataKeys[_GVR.RowIndex].Values["SHOPSHORTNAME"].ToString();
string _PROVINCE_CODE = GridViewEx1.DataKeys[_GVR.RowIndex].Values["PROVINCE_CODE"].ToString();
string _SERVERPART_ID = GridViewEx1.DataKeys[_GVR.RowIndex].Values["SERVERPART_ID"].ToString();
string _SERVERPART_NAME = GridViewEx1.DataKeys[_GVR.RowIndex].Values["SERVERPART_NAME"].ToString();
string _SERVERPARTSHOP_ID = GridViewEx1.DataKeys[_GVR.RowIndex].Values["SERVERPARTSHOP_ID"].ToString();
//foreach (string item in _SERVERPARTSHOP_ID.Split(','))
//{
_RESTAURANTREVENUE.ResetProperty();
_RESTAURANTREVENUE.OPERATINGCOST = _OPERATINGCOST;
_RESTAURANTREVENUE.SELLINGEXPENSES = _SELLINGEXPENSES;
_RESTAURANTREVENUE.MANAGEMENTCOSTS = _MANAGEMENTCOSTS;
_RESTAURANTREVENUE.FINANCIALEXPENSES = _FINANCIALEXPENSES;
_RESTAURANTREVENUE.OTHERCOSTS = _OTHERCOSTS;
_RESTAURANTREVENUE.SALESREVENUE = _SALESREVENUE;
_RESTAURANTREVENUE.OUTPRICETOTAL = _OUTPRICETOTAL;
_RESTAURANTREVENUE.NETPROFIT = _NETPROFIT;
_RESTAURANTREVENUE.GROSSINTERESTATE = _GROSSINTERESTATE;
_RESTAURANTREVENUE.NETINTERESTRATE = _NETINTERESTRATE;
_RESTAURANTREVENUE.PROVINCE_CODE = Convert.ToInt32(_PROVINCE_CODE);
_RESTAURANTREVENUE.SERVERPART_ID = Convert.ToInt32(_SERVERPART_ID);
_RESTAURANTREVENUE.SERVERPART_NAME = _SERVERPART_NAME;
_RESTAURANTREVENUE.SHOPSHORTNAME = _SHOPSHORTNAME;
//_RESTAURANTREVENUE.SERVERPARTSHOP_ID = item;
_RESTAURANTREVENUE.STATISTICALYEAR = StatisticsYear.SelectedValue;
_RESTAURANTREVENUE.STATISTICALMONTH = StatisticsMonth.SelectedValue;
_RESTAURANTREVENUE.Insert();
//}
}
}
}
}
Alert("保存成功!", 3);
ButtonStatistics_Click(null, null);
}
}
}