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); } } }