using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using AspNet = System.Web.UI.WebControls;
namespace FineUIPro.Web.Customization.CNCCG.HSSE.Rewards
{
public partial class EnvironmentalAwardManager : PageBase
{
#region 加载页面
///
/// 加载页面
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BLL.UnitService.InitBranchUnitDropDownList(this.drpUnitId, true);//分公司
//是本单位不能增加
var thisUnit = BLL.CommonService.GetIsThisUnit();
if ((!string.IsNullOrEmpty(this.CurrUser.UnitId) && thisUnit.UnitId == this.CurrUser.UnitId) || this.CurrUser.UserId == BLL.Const.sysglyId || this.CurrUser.UserId == BLL.Const.hfnbdId)
{
//this.btnNew.Hidden = true;
//this.drpUnitId.Enabled = true;
}
else
{
this.drpUnitId.Enabled = false;
this.drpUnitId.SelectedValue = this.CurrUser.UnitId;
}
////权限按钮方法
this.GetButtonPower();
this.btnNew.OnClientClick = Window1.GetShowReference("EnvironmentalAwardEdit.aspx") + "return false;";
if (this.CurrUser != null && this.CurrUser.PageSize.HasValue)
{
Grid1.PageSize = this.CurrUser.PageSize.Value;
}
this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
// 绑定表格
this.BindGrid();
}
}
///
/// 获取按钮权限
///
///
///
private void GetButtonPower()
{
if (Request.Params["value"] == "0")
{
return;
}
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.EnvironmentalAwardMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnAdd))
{
this.btnNew.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnModify))
{
this.btnMenuEdit.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnMenuDelete.Hidden = false;
}
}
}
///
/// 绑定数据
///
private void BindGrid()
{
string strSql = @"SELECT f.*,u.UserName,b.UnitName,p.ProjectName from HSSE_EnvironmentalAward f
left join sys_user u on f.CreateMan = u.userid
left join Base_Unit b on f.Unitid=b.UnitId
left join Base_Project p on f.ProjectId=p.ProjectId
where 1=1 ";
List listStr = new List();
if (drpUnitId.SelectedValue != Const._Null)
{
strSql += " AND f.Unitid LIKE @Unitid";
listStr.Add(new SqlParameter("@Unitid", "%" + drpUnitId.SelectedValue + "%"));
}
if (!string.IsNullOrEmpty(this.txtStartDate.Text.Trim()))
{
strSql += " AND f.CreateTime >= @CreateTime";
listStr.Add(new SqlParameter("@CreateTime", this.txtStartDate.Text.Trim()));
}
if (!string.IsNullOrEmpty(this.txtEndDate.Text.Trim()))
{
strSql += " AND f.CreateTime <= @EndDate";
listStr.Add(new SqlParameter("@EndDate", this.txtEndDate.Text.Trim()));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
//tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
////未完成的状态背景色红色
//for (int i = 0; i < Grid1.Rows.Count; i++)
//{
// string id = Grid1.Rows[i].DataKeys[0].ToString();
// var isNull = Funs.DB.HSSE_EnvironmentalAward.FirstOrDefault(x => x.Id == id);
// if (isNull.Scores==0)
// {
// Grid1.Rows[i].RowCssClass = "Red";
// }
//}
}
///
/// 改变索引事件
///
///
///
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
///
/// 分页下拉选择事件
///
///
///
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
///
/// 排序
///
///
///
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
///
/// 关闭弹出窗口
///
///
///
protected void Window1_Close(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region 查询
///
/// 查询
///
///
///
protected void TextBox_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.txtStartDate.Text.Trim()) && !string.IsNullOrEmpty(this.txtEndDate.Text.Trim()))
{
if (Funs.GetNewDateTime(this.txtStartDate.Text.Trim()) > Funs.GetNewDateTime(this.txtEndDate.Text.Trim()))
{
Alert.ShowInTop("开始时间不能大于结束时间", MessageBoxIcon.Warning);
return;
}
}
this.BindGrid();
}
#endregion
#region 编辑
///
/// 双击事件
///
///
///
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
this.EditData();
}
///
/// 右键编辑事件
///
///
///
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
this.EditData();
}
///
/// 编辑数据方法
///
private void EditData()
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
string id = Grid1.SelectedRowID;
var result = EnvironmentalAwardService.Detail(id);
if (result != null)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("EnvironmentalAwardEdit.aspx?Id={0}", id, "编辑 - ")));
}
}
#endregion
#region 删除
///
/// 右键删除事件
///
///
///
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
var result = EnvironmentalAwardService.Detail(rowID);
if (result != null)
{
EnvironmentalAwardService.Delete(rowID);
#region 修改标杆企业日常管理总分
var cmonth = Convert.ToDateTime(Convert.ToDateTime(result.CreateTime).ToString("yyyy-MM"));
var sTime = cmonth;
var eTime = sTime.AddMonths(1);
var uid = result.UnitId;
var poleList = Funs.DB.HSSE_PoleUnit.Where(x => x.UnitId == result.UnitId && x.CreateMonth == cmonth).ToList();
if (poleList.Count > 0)
{
decimal score = 0;
//先获取奖项得分
var list = Funs.DB.HSSE_EnvironmentalAward.Where(x => x.UnitId == uid && x.CreateTime >= sTime && x.CreateTime <= eTime).ToList();
if (list.Count > 0)
{
score = list.Sum(x => x.Scores) ?? 0;
}
else
{
score = 0;
}
foreach (var item in poleList)
{
//重新计算总得分
var poleModel = Funs.DB.HSSE_PoleUnit.FirstOrDefault(x => x.Id == item.Id);
poleModel.AllScore = item.Score1 + item.Score2 + item.Score3 + score;
Funs.DB.SubmitChanges();
}
}
#endregion
#region 修改安全质量绿色环保示范工地评选推荐表总分
var pid = result.ProjectId;
//var greenList = Funs.DB.HSSE_GreenSite.Where(x => x.UnitId == result.UnitId && x.ProjectId == pid
//&& x.CreateMonth == cmonth).ToList();
var greenList = Funs.DB.HSSE_GreenSite.Where(x => x.ProjectId == pid
&& x.CreateMonth == cmonth).ToList();
if (greenList.Count > 0)
{
// var list = Funs.DB.HSSE_EnvironmentalAward.Where(x => x.UnitId == uid
//&& x.ProjectId == pid && x.CreateTime >= sTime && x.CreateTime <= eTime).ToList();
var list = Funs.DB.HSSE_EnvironmentalAward.Where(x => x.ProjectId == pid && x.CreateTime >= sTime && x.CreateTime <= eTime).ToList();
decimal score = 0;
if (list.Count > 0)
{
score = list.Sum(x => x.Scores) ?? 0;
}
else
{
score = 0;
}
foreach (var item in greenList)
{
//重新计算总得分
var greenModel = Funs.DB.HSSE_GreenSite.FirstOrDefault(x => x.Id == item.Id);
greenModel.AllScore = item.Score1 + item.Score2 + score;
Funs.DB.SubmitChanges();
}
}
#endregion
}
}
this.BindGrid();
ShowNotify("删除数据成功!", MessageBoxIcon.Success);
}
}
#endregion
#region 导出按钮
/// 导出按钮
///
///
///
protected void btnOut_Click(object sender, EventArgs e)
{
Response.ClearContent();
string filename = Funs.GetNewFileName();
Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("安全质量环保奖项" + filename, System.Text.Encoding.UTF8) + ".xls");
Response.ContentType = "application/excel";
Response.ContentEncoding = System.Text.Encoding.UTF8;
this.Grid1.PageSize = 500;
this.BindGrid();
Response.Write(GetGridTableHtml(Grid1));
Response.End();
}
///
/// 导出方法
///
///
///
private string GetGridTableHtml(Grid grid)
{
StringBuilder sb = new StringBuilder();
sb.Append("");
sb.Append("");
sb.Append("");
foreach (GridColumn column in grid.Columns)
{
sb.AppendFormat("{0} | ", column.HeaderText);
}
sb.Append("
");
foreach (GridRow row in grid.Rows)
{
sb.Append("");
foreach (GridColumn column in grid.Columns)
{
string html = row.Values[column.ColumnIndex].ToString();
if (column.ColumnID == "tfNumber")
{
html = (row.FindControl("lblNumber") as AspNet.Label).Text;
}
sb.AppendFormat("{0} | ", html);
}
sb.Append("
");
}
sb.Append("
");
return sb.ToString();
}
#endregion
}
}