using System;
using System.Collections.Generic;
using System.Linq;
using BLL;
using Newtonsoft.Json.Linq;
namespace FineUIPro.Web.HSSE.SitePerson
{
public partial class MonthReportDetailEdit : PageBase
{
#region 定义项
///
/// 工作月报明细主键
///
public string MonthReportDetailId
{
get
{
return (string)ViewState["MonthReportDetailId"];
}
set
{
ViewState["MonthReportDetailId"] = value;
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnClose.OnClientClick = ActiveWindow.GetHideReference();
this.MonthReportDetailId = Request.Params["monthReportDetailId"];
this.txtWorkTime.Focus();
if (!string.IsNullOrEmpty(Request.Params["type"]))
{
this.btnSave.Hidden = true;
this.txtWorkTime.Readonly = true;
this.Grid1.AllowCellEditing = false;
this.txtRealPersonNum2.Readonly = true;
this.txtDayNum.Readonly = true;
}
var monthReportDetail = BLL.SitePerson_MonthReportDetailService.GetMonthReportDetailByMonthReportDetailId(this.MonthReportDetailId);
if (monthReportDetail != null)
{
var unit = BLL.UnitService.GetUnitByUnitId(monthReportDetail.UnitId);
if (unit != null)
{
this.lbStaffData.Text = unit.UnitName + "人员情况";
}
//是否按平均数取值
var sysSet = BLL.ConstValue.drpConstItemList(BLL.ConstValue.Group_IsMonthReportGetAVG).FirstOrDefault();
if (sysSet != null)
{
if (sysSet.ConstValue == "1")
{
this.trAVG.Hidden = false;
}
else
{
this.trAVG.Hidden = true;
}
}
this.txtStaffData.Text = monthReportDetail.StaffData;
this.txtWorkTime.Text = monthReportDetail.WorkTime.ToString();
if (monthReportDetail.RealPersonNum != null)
{
this.txtRealPersonNum2.Text = monthReportDetail.RealPersonNum.ToString();
}
if (monthReportDetail.DayNum != null)
{
this.txtDayNum.Text = monthReportDetail.DayNum.ToString();
}
var viewMonthReportUnitDetail = from x in Funs.DB.View_SitePerson_MonthReportUnitDetail
where x.MonthReportDetailId == monthReportDetail.MonthReportDetailId
orderby x.WorkPostCode
select x;
if (viewMonthReportUnitDetail.Count() > 0)
{
this.Grid1.DataSource = viewMonthReportUnitDetail;
this.Grid1.DataBind();
}
}
}
}
///
/// 保存按钮事件
///
///
///
protected void btnSave_Click(object sender, EventArgs e)
{
//Grid1.CommitChanges();
var monthReportDetail = BLL.SitePerson_MonthReportDetailService.GetMonthReportDetailByMonthReportDetailId(this.MonthReportDetailId);
if (monthReportDetail != null)
{
monthReportDetail.WorkTime = Funs.GetNewDecimalOrZero(this.txtWorkTime.Text.Trim());
monthReportDetail.DayNum = Funs.GetNewDecimalOrZero(this.txtDayNum.Text.Trim());
int totalRealPersonNum = 0;
decimal totalPersonWorkTime = 0;
List monthReportUnitDetails = (from x in Funs.DB.SitePerson_MonthReportUnitDetail where x.MonthReportDetailId == this.MonthReportDetailId select x).ToList();
JArray mergedData = Grid1.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value("status");
JObject values = mergedRow.Value("values");
Model.SitePerson_MonthReportUnitDetail monthReportUnitDetail = monthReportUnitDetails.FirstOrDefault(x => x.MonthReportUnitDetailId == values.Value("MonthReportUnitDetailId").ToString());
if (monthReportUnitDetail != null)
{
monthReportUnitDetail.RealPersonNum = Funs.GetNewIntOrZero(values.Value("RealPersonNum").ToString());
monthReportUnitDetail.PersonWorkTime = Funs.GetNewDecimalOrZero(values.Value("PersonWorkTime").ToString()); ;
monthReportUnitDetail.Remark = values.Value("Remark").ToString();
BLL.SitePerson_MonthReportUnitDetailService.UpdateMonthReportUnitDetail(monthReportUnitDetail);
totalPersonWorkTime += monthReportUnitDetail.PersonWorkTime ?? 0;
totalRealPersonNum += monthReportUnitDetail.RealPersonNum ?? 0;
}
}
monthReportDetail.RealPersonNum = totalRealPersonNum;
monthReportDetail.PersonWorkTime = totalPersonWorkTime;
//是否按平均数取值
var sysSet = BLL.ConstValue.drpConstItemList(BLL.ConstValue.Group_IsMonthReportGetAVG).FirstOrDefault();
if (sysSet != null)
{
if (sysSet.ConstValue == "1")
{
monthReportDetail.RealPersonNum = Funs.GetNewDecimalOrZero(this.txtRealPersonNum2.Text.Trim());
monthReportDetail.DayNum = Funs.GetNewDecimalOrZero(this.txtDayNum.Text.Trim());
monthReportDetail.PersonWorkTime = (monthReportDetail.RealPersonNum ?? 0) * (monthReportDetail.DayNum ?? 0) * (monthReportDetail.WorkTime ?? 0);
}
}
BLL.SitePerson_MonthReportDetailService.UpdateReportDetail(monthReportDetail);
}
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
///
///
///
///
///
protected void txtWorkTime_TextChanged(object sender, EventArgs e)
{
decimal time = Funs.GetNewDecimalOrZero(this.txtWorkTime.Text.Trim());
int dayNum = Funs.GetNewIntOrZero(this.txtDayNum.Text.Trim());
List viwList = new List();
var viewDayReportUnitDetail = from x in Funs.DB.View_SitePerson_MonthReportUnitDetail where x.MonthReportDetailId == this.MonthReportDetailId orderby x.WorkPostCode select x;
JArray mergedData = Grid1.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
JObject values = mergedRow.Value("values");
var item = viewDayReportUnitDetail.FirstOrDefault(x => x.MonthReportUnitDetailId == values.Value("MonthReportUnitDetailId").ToString());
if (item != null)
{
item.RealPersonNum = Funs.GetNewIntOrZero(values.Value("RealPersonNum").ToString());
item.PersonWorkTime = item.RealPersonNum * time * dayNum;
item.Remark = values.Value("Remark").ToString();
viwList.Add(item);
}
}
this.Grid1.DataSource = viwList;
this.Grid1.DataBind();
}
}
}