170 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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 定义项
 | |
|         /// <summary>
 | |
|         /// 工作月报明细主键
 | |
|         /// </summary>
 | |
|         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();
 | |
|                     }
 | |
|                 }                
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 保存按钮事件
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         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<Model.SitePerson_MonthReportUnitDetail> 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<string>("status");
 | |
|                     JObject values = mergedRow.Value<JObject>("values");
 | |
|                     Model.SitePerson_MonthReportUnitDetail monthReportUnitDetail = monthReportUnitDetails.FirstOrDefault(x => x.MonthReportUnitDetailId == values.Value<string>("MonthReportUnitDetailId").ToString());
 | |
|                     if (monthReportUnitDetail != null)
 | |
|                     {
 | |
|                         monthReportUnitDetail.RealPersonNum = Funs.GetNewIntOrZero(values.Value<string>("RealPersonNum").ToString());
 | |
|                         monthReportUnitDetail.PersonWorkTime = Funs.GetNewDecimalOrZero(values.Value<string>("PersonWorkTime").ToString()); ;
 | |
|                         monthReportUnitDetail.Remark =  values.Value<string>("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());
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         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<Model.View_SitePerson_MonthReportUnitDetail> viwList = new List<Model.View_SitePerson_MonthReportUnitDetail>();
 | |
|             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<JObject>("values");                
 | |
|                 var item = viewDayReportUnitDetail.FirstOrDefault(x => x.MonthReportUnitDetailId == values.Value<string>("MonthReportUnitDetailId").ToString());
 | |
|                 if (item != null)
 | |
|                 {
 | |
|                     item.RealPersonNum = Funs.GetNewIntOrZero(values.Value<string>("RealPersonNum").ToString());
 | |
|                     item.PersonWorkTime = item.RealPersonNum * time * dayNum;
 | |
|                     item.Remark = values.Value<string>("Remark").ToString();
 | |
|                     viwList.Add(item);
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             this.Grid1.DataSource = viwList;
 | |
|             this.Grid1.DataBind();
 | |
|         } 
 | |
|     }
 | |
| } |