272 lines
12 KiB
C#
272 lines
12 KiB
C#
|
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
|
|||
|
}
|
|||
|
}
|