CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/HSSE/CostGoods/CostLedgerNew.aspx.cs

272 lines
12 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using BLL;
using System;
using System.Data;
using System.Linq;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.HSSE.CostGoods
{
public partial class CostLedgerNew : PageBase
{
private static string headerStr;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
txtDate.Text = DateTime.Now.ToString("yyyy-MM");
loadAll();
}
}
/// <summary>
/// 根据日期加载所有
/// </summary>
protected void loadAll() {
var pid = CurrUser.LoginProjectId;
var result = Funs.DB.CostGoods_HseExpense.FirstOrDefault(x => x.ProjectId == CurrUser.LoginProjectId && x.PayMonth == txtDate.Text);
if (result!=null)
{
DateTime startTime = Convert.ToDateTime(result.PayDate.Value.Year + "-" + result.PayDate.Value.Month + "-1");
DateTime endTime = startTime.AddMonths(1);
headerStr = string.Empty;
headerStr += "编号#类别";
DataTable dt = new DataTable();
dt.Columns.Add("R0"); //编号
dt.Columns.Add("R1"); //类别
var units = BLL.UnitService.GetMainAndSubUnitByProjectIdList(result.ProjectId);
int a = 0;
for (int i = 0; i < units.Count; i++)
{
headerStr += "#" + units[i].UnitName + " 当月累计,当年累计";
dt.Columns.Add("M" + a); //当月累计
a++;
dt.Columns.Add("M" + a); //当年累计
a++;
}
DataRow row1 = dt.NewRow();
row1[0] = "1";
row1[1] = "完善、改造和维护安全防护设备、设施";
int b = 2;
var yearHseExpense = Funs.DB.CostGoods_HseExpense.Where(x => x.ProjectId == pid && x.PayDate.Value.Year == endTime.Year);
var monthHseExpense = Funs.DB.CostGoods_HseExpense.Where(x => x.ProjectId == pid && x.PayDate >= startTime && x.PayDate <= endTime);
for (int i = 0; i < units.Count; i++) {
row1[b] = monthHseExpense.Where(x => x.UnitId == units[i].UnitId ).Sum(x => x.SMonthType1);
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
row1[b] = yearHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType1) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
}
dt.Rows.Add(row1);
b = 2;
row1=dt.NewRow();
row1[0] = "2";
row1[1] = "应急救援和演练";
for (int i = 0; i < units.Count; i++)
{
row1[b] = monthHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType2 ) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
row1[b] = yearHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType2 ) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
}
dt.Rows.Add(row1);
b = 2;
row1 = dt.NewRow();
row1[0] = "3";
row1[1] = "重大危险源管理;隐患整改;安全生产信息化";
for (int i = 0; i < units.Count; i++)
{
row1[b] = monthHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType3) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
row1[b] = yearHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType3) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
}
dt.Rows.Add(row1);
b = 2;
row1 = dt.NewRow();
row1[0] = "4";
row1[1] = "安全检查、评估评价、咨询与标准化建设";
for (int i = 0; i < units.Count; i++)
{
row1[b] = monthHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType4) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
row1[b] = yearHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType4) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
}
dt.Rows.Add(row1);
b = 2;
row1 = dt.NewRow();
row1[0] = "5";
row1[1] = "作业人员防护用品";
for (int i = 0; i < units.Count; i++)
{
row1[b] = monthHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType5) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
row1[b] = yearHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType5) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
}
dt.Rows.Add(row1);
b = 2;
row1 = dt.NewRow();
row1[0] = "6";
row1[1] = "安全生产宣传、教育、培训及奖励";
for (int i = 0; i < units.Count; i++)
{
row1[b] = monthHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType6) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
row1[b] = yearHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType6) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
}
dt.Rows.Add(row1);
b = 2;
row1 = dt.NewRow();
row1[0] = "7";
row1[1] = "“四新”推广应用支出";
for (int i = 0; i < units.Count; i++)
{
row1[b] = monthHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType7 ) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
row1[b] = yearHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType7) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
}
dt.Rows.Add(row1);
b = 2;
row1 = dt.NewRow();
row1[0] = "8";
row1[1] = "安全设施及特种设备检测检验、检定校准";
for (int i = 0; i < units.Count; i++)
{
row1[b] = monthHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType8) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
row1[b] = yearHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType8) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
}
dt.Rows.Add(row1);
b = 2;
row1 = dt.NewRow();
row1[0] = "9";
row1[1] = "安全生产责任保险";
for (int i = 0; i < units.Count; i++)
{
row1[b] = monthHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType9) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
row1[b] = yearHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType9) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
}
dt.Rows.Add(row1);
b = 2;
row1 = dt.NewRow();
row1[0] = "10";
row1[1] = "其他与安全生产直接相关的支出";
for (int i = 0; i < units.Count; i++)
{
row1[b] = monthHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType10) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
row1[b] = yearHseExpense.Where(x => x.UnitId == units[i].UnitId).Sum(x => x.SMonthType10) ?? 0;
row1[b] = Funs.GetNewDecimalOrZero(row1[b].ToString()).ToString("N2");
b++;
}
dt.Rows.Add(row1);
this.gvTotalPayRegistration.DataSource = dt;
this.gvTotalPayRegistration.DataBind();
}
}
#region
/// <summary>
/// 在控件被绑定后激发
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gvTotalPayRegistration_DataBound(object sender, EventArgs e)
{ }
#endregion
#region Grid创建行
/// <summary>
/// Grid创建行
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gvTotalPayRegistration_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
DynamicTHeaderHepler dHelper = new DynamicTHeaderHepler();
dHelper.SplitTableHeader(e.Row, headerStr);
}
}
#endregion
#region
/// <summary>
/// 导出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
string filename = dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + dt.Hour.ToString() + dt.Minute.ToString() + dt.Second.ToString();
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=UTF-8>");
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("项目HSE费用投入登记表" + filename, System.Text.Encoding.UTF8) + ".xls");
Response.ContentType = "application/ms-excel";
this.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.gvTotalPayRegistration.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
/// <summary>
/// 重载VerifyRenderingInServerForm方法否则运行的时候会出现如下错误提示“类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内”
/// </summary>
/// <param name="control"></param>
public override void VerifyRenderingInServerForm(Control control)
{
}
#endregion
}
}