442 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			442 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using BLL; | |||
|  | using Newtonsoft.Json.Linq; | |||
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | 
 | |||
|  | namespace FineUIPro.Web.HSSE.CostGoods | |||
|  | { | |||
|  |     public partial class CostManageEdit : PageBase | |||
|  |     { | |||
|  |         #region 定义项 | |||
|  |         /// <summary> | |||
|  |         /// 主键 | |||
|  |         /// </summary> | |||
|  |         private string CostManageId | |||
|  |         { | |||
|  |             get | |||
|  |             { | |||
|  |                 return (string)ViewState["CostManageId"]; | |||
|  |             } | |||
|  |             set | |||
|  |             { | |||
|  |                 ViewState["CostManageId"] = value; | |||
|  |             } | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 项目主键 | |||
|  |         /// </summary> | |||
|  |         public string ProjectId | |||
|  |         { | |||
|  |             get | |||
|  |             { | |||
|  |                 return (string)ViewState["ProjectId"]; | |||
|  |             } | |||
|  |             set | |||
|  |             { | |||
|  |                 ViewState["ProjectId"] = value; | |||
|  |             } | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 定义集合 | |||
|  |         /// </summary> | |||
|  |         private static List<Model.CostGoods_CostManageItem> costManageItems = new List<Model.CostGoods_CostManageItem>(); | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 加载 | |||
|  |         /// <summary> | |||
|  |         /// 加载页面 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void Page_Load(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (!IsPostBack) | |||
|  |             { | |||
|  |                 Funs.DropDownPageSize(this.ddlPageSize); | |||
|  |                 this.ProjectId = this.CurrUser.LoginProjectId; | |||
|  |                 this.btnClose.OnClientClick = ActiveWindow.GetHideReference(); | |||
|  |                 this.InitDropDownList(); | |||
|  |                 this.CostManageId = Request.Params["CostManageId"]; | |||
|  |                 this.drpInvestCostProject.DataTextField = "Text"; | |||
|  |                 this.drpInvestCostProject.DataValueField = "Value"; | |||
|  |                 this.drpInvestCostProject.DataSource = BLL.CostManageItemService.GetInvestCostProjectList(); | |||
|  |                 this.drpInvestCostProject.DataBind(); | |||
|  |                 if (!BLL.CommonService.IsMainUnitOrAdmin(this.CurrUser.UserId))   //分包单位用户,隐藏审核列 | |||
|  |                 { | |||
|  |                     this.Grid1.Columns[7].Hidden = true; | |||
|  |                     this.Grid1.Columns[8].Hidden = true; | |||
|  |                     this.Grid1.Columns[9].Hidden = true; | |||
|  |                 } | |||
|  |                 this.txtCostManageDate.Text = string.Format("{0:yyyy-MM-dd}", System.DateTime.Now); | |||
|  |                 if (!string.IsNullOrEmpty(this.CostManageId)) | |||
|  |                 { | |||
|  |                     Model.CostGoods_CostManage costManage = BLL.CostManageService.GetCostManageById(this.CostManageId); | |||
|  |                     if (costManage != null) | |||
|  |                     { | |||
|  |                         this.ProjectId = costManage.ProjectId; | |||
|  |                         if (this.ProjectId != this.CurrUser.LoginProjectId) | |||
|  |                         { | |||
|  |                             this.InitDropDownList(); | |||
|  |                         } | |||
|  |                         this.txtCostManageCode.Text = CodeRecordsService.ReturnCodeByDataId(this.CostManageId); | |||
|  |                         this.txtCostManageName.Text = costManage.CostManageName; | |||
|  |                         if (!string.IsNullOrEmpty(costManage.UnitId)) | |||
|  |                         { | |||
|  |                             this.drpUnitId.SelectedValue = costManage.UnitId; | |||
|  |                         } | |||
|  |                         this.txtContractNum.Text = costManage.ContractNum; | |||
|  |                         this.txtCostManageDate.Text = string.Format("{0:yyyy-MM-dd}", costManage.CostManageDate); | |||
|  |                         this.txtOpinion.Text = costManage.Opinion; | |||
|  |                         this.txtSubHSE.Text = costManage.SubHSE; | |||
|  |                         this.txtSubCN.Text = costManage.SubCN; | |||
|  |                         this.txtSubProject.Text = costManage.SubProject; | |||
|  |                     } | |||
|  |                     BindGrid(); | |||
|  | 
 | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     this.txtCostManageCode.Text = CodeRecordsService.ReturnCodeByMenuIdProjectId(Const.ProjectCostManageMenuId, this.ProjectId, this.CurrUser.UserId); | |||
|  |                     this.txtCostManageName.Text = "分包商HSE措施费申请表"; | |||
|  |                 } | |||
|  |                 ///初始化审核菜单 | |||
|  |                 this.ctlAuditFlow.MenuId = BLL.Const.ProjectCostManageMenuId; | |||
|  |                 this.ctlAuditFlow.DataId = this.CostManageId; | |||
|  |                 this.ctlAuditFlow.ProjectId = this.ProjectId; | |||
|  |                 this.ctlAuditFlow.UnitId = this.CurrUser.UnitId; | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 if (GetRequestEventArgument() == "UPDATE_SUMMARY") | |||
|  |                 { | |||
|  |                     jerqueSaveMonthPlanList(); | |||
|  |                     this.Grid1.DataSource = costManageItems; | |||
|  |                     this.Grid1.DataBind(); | |||
|  |                     // 页面要求重新计算合计行的值 | |||
|  |                     OutputSummaryData(); | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         #region 计算合计及各行总价 | |||
|  |         /// <summary> | |||
|  |         /// 计算合计 | |||
|  |         /// </summary> | |||
|  |         private void OutputSummaryData() | |||
|  |         { | |||
|  |             Grid1.CommitChanges(); | |||
|  |             decimal sumTotalMoney = 0, sumAuditTotalMoney = 0, totalMoney = 0, auditTotalMoney = 0, priceMoney = 0, auditPriceMoney = 0; | |||
|  |             int counts = 0, auditCounts = 0; | |||
|  |             for (int i = 0; i < Grid1.Rows.Count; i++) | |||
|  |             { | |||
|  |                 counts = Funs.GetNewIntOrZero(this.Grid1.Rows[i].Values[4].ToString()); | |||
|  |                 priceMoney = Funs.GetNewDecimalOrZero(this.Grid1.Rows[i].Values[5].ToString()); | |||
|  |                 totalMoney = counts * priceMoney; | |||
|  |                 sumTotalMoney += totalMoney; | |||
|  |                 this.Grid1.Rows[i].Values[6] = totalMoney.ToString(); | |||
|  |                 auditCounts = Funs.GetNewIntOrZero(this.Grid1.Rows[i].Values[7].ToString()); | |||
|  |                 auditPriceMoney = Funs.GetNewDecimalOrZero(this.Grid1.Rows[i].Values[8].ToString()); | |||
|  |                 auditTotalMoney = auditCounts * auditPriceMoney; | |||
|  |                 sumAuditTotalMoney += auditTotalMoney; | |||
|  |                 this.Grid1.Rows[i].Values[9] = auditTotalMoney.ToString(); | |||
|  |             } | |||
|  |             if (this.Grid1.Rows.Count > 0) | |||
|  |             { | |||
|  |                 JObject summary = new JObject | |||
|  |                 { | |||
|  |                     { "PriceMoney", "总计" }, | |||
|  |                     { "TotalMoney", sumTotalMoney }, | |||
|  |                     { "AuditTotalMoney", sumAuditTotalMoney } | |||
|  |                 }; | |||
|  |                 Grid1.SummaryData = summary; | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 Grid1.SummaryData = null; | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         ///  初始化下拉框 | |||
|  |         /// </summary> | |||
|  |         private void InitDropDownList() | |||
|  |         { | |||
|  |             BLL.UnitService.InitUnitDropDownList(this.drpUnitId, this.ProjectId, true); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 绑定Grid | |||
|  |         /// </summary> | |||
|  |         private void BindGrid() | |||
|  |         { | |||
|  |             costManageItems = BLL.CostManageItemService.GetCostManageItemByCostManageId(this.CostManageId); | |||
|  |             this.Grid1.DataSource = costManageItems; | |||
|  |             this.Grid1.PageIndex = 0; | |||
|  |             this.Grid1.DataBind(); | |||
|  |             OutputSummaryData(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 改变索引事件 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) | |||
|  |         { | |||
|  |             Grid1.PageIndex = e.NewPageIndex; | |||
|  |             BindGrid(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 分页下拉选择事件 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) | |||
|  |         { | |||
|  |             Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); | |||
|  |             BindGrid(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 关闭弹出窗口 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void Window1_Close(object sender, EventArgs e) | |||
|  |         { | |||
|  |             BindGrid(); | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 保存 | |||
|  |         /// <summary> | |||
|  |         /// 保存按钮 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void btnSave_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (this.drpUnitId.SelectedValue == BLL.Const._Null) | |||
|  |             { | |||
|  |                 Alert.ShowInTop("请选择分包商!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             this.SaveData(BLL.Const.BtnSave); | |||
|  |             PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 提交按钮 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void btnSubmit_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (this.drpUnitId.SelectedValue == BLL.Const._Null) | |||
|  |             { | |||
|  |                 Alert.ShowInTop("请选择分包商!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             if (this.ctlAuditFlow.NextStep == BLL.Const.State_1 && this.ctlAuditFlow.NextPerson == BLL.Const._Null) | |||
|  |             { | |||
|  |                 ShowNotify("请选择下一步办理人!", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             this.SaveData(BLL.Const.BtnSubmit); | |||
|  |             PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 保存数据 | |||
|  |         /// </summary> | |||
|  |         /// <param name="type"></param> | |||
|  |         private void SaveData(string type) | |||
|  |         { | |||
|  |             if (!BLL.CommonService.IsMainUnitOrAdmin(this.CurrUser.UserId) && type == BLL.Const.BtnSubmit && this.ctlAuditFlow.NextStep == BLL.Const.State_2) | |||
|  |             { | |||
|  |                 Alert.ShowInParent("分包商不能关闭审核流程", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  | 
 | |||
|  |             Model.CostGoods_CostManage costManage = new Model.CostGoods_CostManage | |||
|  |             { | |||
|  |                 ProjectId = this.ProjectId, | |||
|  |                 CostManageCode = this.txtCostManageCode.Text.Trim(), | |||
|  |                 CostManageName = this.txtCostManageName.Text.Trim() | |||
|  |             }; | |||
|  |             if (this.drpUnitId.SelectedValue != BLL.Const._Null) | |||
|  |             { | |||
|  |                 costManage.UnitId = this.drpUnitId.SelectedValue; | |||
|  |             } | |||
|  |             costManage.ContractNum = this.txtContractNum.Text.Trim(); | |||
|  |             costManage.CostManageDate = Funs.GetNewDateTime(this.txtCostManageDate.Text.Trim()); | |||
|  |             costManage.Opinion = this.txtOpinion.Text.Trim(); | |||
|  |             costManage.SubHSE = this.txtSubHSE.Text.Trim(); | |||
|  |             costManage.SubCN = this.txtSubCN.Text.Trim(); | |||
|  |             costManage.SubProject = this.txtSubProject.Text.Trim(); | |||
|  |             costManage.CompileMan = this.CurrUser.UserId; | |||
|  |             costManage.CompileDate = DateTime.Now; | |||
|  |             costManage.States = BLL.Const.State_0; | |||
|  |             if (type == BLL.Const.BtnSubmit) | |||
|  |             { | |||
|  |                 costManage.States = this.ctlAuditFlow.NextStep; | |||
|  |             } | |||
|  |             if (!string.IsNullOrEmpty(this.CostManageId)) | |||
|  |             { | |||
|  |                 costManage.CostManageId = this.CostManageId; | |||
|  |                 BLL.CostManageService.UpdateCostManage(costManage); | |||
|  |                 BLL.LogService.AddSys_Log(this.CurrUser, costManage.CostManageCode, costManage.CostManageId, BLL.Const.ProjectCostManageMenuId, BLL.Const.BtnModify); | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 this.CostManageId = SQLHelper.GetNewID(typeof(Model.CostGoods_CostManage)); | |||
|  |                 costManage.CostManageId = this.CostManageId; | |||
|  |                 BLL.CostManageService.AddCostManage(costManage); | |||
|  |                 BLL.LogService.AddSys_Log(this.CurrUser, costManage.CostManageCode, costManage.CostManageId, BLL.Const.ProjectCostManageMenuId, BLL.Const.BtnAdd); | |||
|  |             } | |||
|  |             jerqueSaveMonthPlanList(); | |||
|  |             BLL.CostManageItemService.DeleteCostManageItemByCostManageId(this.CostManageId); | |||
|  |             foreach (var costManageItem in costManageItems) | |||
|  |             { | |||
|  |                 costManageItem.CostManageId = this.CostManageId; | |||
|  |                 BLL.CostManageItemService.AddCostManageItem(costManageItem); | |||
|  |             } | |||
|  |             ////保存流程审核数据          | |||
|  |             this.ctlAuditFlow.btnSaveData(this.ProjectId, BLL.Const.ProjectCostManageMenuId, this.CostManageId, (type == BLL.Const.BtnSubmit ? true : false), costManage.CostManageName, "../CostGoods/CostManageView.aspx?CostManageId={0}"); | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 附件上传 | |||
|  |         /// <summary> | |||
|  |         /// 上传附件 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void btnAttachUrl_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (string.IsNullOrEmpty(this.CostManageId)) | |||
|  |             { | |||
|  |                 this.SaveData(BLL.Const.BtnSave); | |||
|  |             } | |||
|  |             PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/CostManageAttachUrl&menuId={1}", this.CostManageId, BLL.Const.ProjectCostManageMenuId))); | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 新增费用申请情况 | |||
|  |         /// <summary> | |||
|  |         /// 新增费用申请情况 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void btnNew_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             //if (this.drpUnitId.SelectedValue == BLL.Const._Null) | |||
|  |             //{ | |||
|  |             //    Alert.ShowInTop("请选择分包商!", MessageBoxIcon.Warning); | |||
|  |             //    return; | |||
|  |             //} | |||
|  |             jerqueSaveMonthPlanList(); | |||
|  |             Model.CostGoods_CostManageItem costManageItem = new Model.CostGoods_CostManageItem | |||
|  |             { | |||
|  |                 CostManageItemId = SQLHelper.GetNewID(typeof(Model.CostGoods_CostManageItem)) | |||
|  |             }; | |||
|  |             costManageItems.Add(costManageItem); | |||
|  |             this.Grid1.DataSource = costManageItems; | |||
|  |             this.Grid1.DataBind(); | |||
|  |             OutputSummaryData(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 检查并保存其他HSE管理活动集合 | |||
|  |         /// </summary> | |||
|  |         private void jerqueSaveMonthPlanList() | |||
|  |         { | |||
|  |             costManageItems.Clear(); | |||
|  |             JArray mergedData = Grid1.GetMergedData(); | |||
|  |             foreach (JObject mergedRow in mergedData) | |||
|  |             { | |||
|  |                 string status = mergedRow.Value<string>("status"); | |||
|  |                 JObject values = mergedRow.Value<JObject>("values"); | |||
|  |                 int i = mergedRow.Value<int>("index"); | |||
|  |                 Model.CostGoods_CostManageItem costManageItem = new Model.CostGoods_CostManageItem | |||
|  |                 { | |||
|  |                     CostManageItemId = this.Grid1.Rows[i].DataKeys[0].ToString(), | |||
|  |                     InvestCostProject = values.Value<string>("InvestCostProject").ToString(), | |||
|  |                     UseReason = values.Value<string>("UseReason").ToString(), | |||
|  |                     Counts = Funs.GetNewIntOrZero(values.Value<string>("Counts").ToString()), | |||
|  |                     PriceMoney = Funs.GetNewDecimalOrZero(values.Value<string>("PriceMoney").ToString()), | |||
|  |                     AuditCounts = !string.IsNullOrEmpty(values.Value<string>("AuditCounts").ToString()) ? Funs.GetNewInt(values.Value<string>("AuditCounts").ToString()) : null, | |||
|  |                     AuditPriceMoney = !string.IsNullOrEmpty(values.Value<string>("AuditPriceMoney").ToString()) ? Funs.GetNewDecimal(values.Value<string>("AuditPriceMoney").ToString()) : null | |||
|  |                 }; | |||
|  |                 costManageItems.Add(costManageItem); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         protected void gvMonthPlan_RowCommand(object sender, GridCommandEventArgs e) | |||
|  |         { | |||
|  |             jerqueSaveMonthPlanList(); | |||
|  |             string rowID = this.Grid1.DataKeys[e.RowIndex][0].ToString(); | |||
|  |             if (e.CommandName == "Delete") | |||
|  |             { | |||
|  |                 foreach (var item in costManageItems) | |||
|  |                 { | |||
|  |                     if (item.CostManageItemId == rowID) | |||
|  |                     { | |||
|  |                         costManageItems.Remove(item); | |||
|  |                         break; | |||
|  |                     } | |||
|  |                 } | |||
|  |                 Grid1.DataSource = costManageItems; | |||
|  |                 Grid1.DataBind(); | |||
|  |                 OutputSummaryData(); | |||
|  |                 ShowNotify("删除数据成功!", MessageBoxIcon.Success); | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 格式化字符串 | |||
|  |         /// <summary> | |||
|  |         /// 获取总价 | |||
|  |         /// </summary> | |||
|  |         /// <param name="costManageId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         protected string GetTotalMoney(object costManageItemId) | |||
|  |         { | |||
|  |             string total = string.Empty; | |||
|  |             if (costManageItemId != null) | |||
|  |             { | |||
|  |                 var costManageItem = BLL.CostManageItemService.GetCostManageItemById(costManageItemId.ToString()); | |||
|  |                 if (costManageItem != null) | |||
|  |                 { | |||
|  |                     decimal? price = costManageItem.PriceMoney; | |||
|  |                     int? count = costManageItem.Counts; | |||
|  |                     total = Convert.ToString(price * count); | |||
|  |                 } | |||
|  |             } | |||
|  |             return total; | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 获取审核总价 | |||
|  |         /// </summary> | |||
|  |         /// <param name="costManageId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         protected string GetAuditTotalMoney(object costManageItemId) | |||
|  |         { | |||
|  |             string total = string.Empty; | |||
|  |             if (costManageItemId != null) | |||
|  |             { | |||
|  |                 var costManageItem = BLL.CostManageItemService.GetCostManageItemById(costManageItemId.ToString()); | |||
|  |                 if (costManageItem != null) | |||
|  |                 { | |||
|  |                     decimal? price = costManageItem.AuditPriceMoney; | |||
|  |                     int? count = costManageItem.AuditCounts; | |||
|  |                     total = Convert.ToString(price * count); | |||
|  |                 } | |||
|  |             } | |||
|  |             return total; | |||
|  |         } | |||
|  |         #endregion | |||
|  |     } | |||
|  | } |