using BLL; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI.WebControls; namespace FineUIPro.Web.PZHGL.InformationProject { public partial class ConstructionMonthReportEdit : PageBase { /// /// 检查月报主键 /// public string ConstructionMonthReportId { get { return (string)ViewState["ConstructionMonthReportId"]; } set { ViewState["ConstructionMonthReportId"] = value; } } private static DateTime startTime; private static DateTime endTime; protected void Page_Load(object sender, EventArgs e) { ConstructionMonthReportId = Request.Params["ConstructionMonthReportId"]; if (!IsPostBack) { this.btnClose.OnClientClick = ActiveWindow.GetHideReference(); if (!string.IsNullOrEmpty(Request.Params["see"])) { btnSave.Visible = false; } if (!string.IsNullOrEmpty(Request.Params["month"])) { Model.Project_Sys_Set ConstructionMonthReportStartDay = BLL.Project_SysSetService.GetSysSetBySetName("月报开始日期", this.CurrUser.LoginProjectId); Model.Project_Sys_Set ConstructionMonthReportEndDay = BLL.Project_SysSetService.GetSysSetBySetName("月报结束日期", this.CurrUser.LoginProjectId); DateTime fromPageMonths = Convert.ToDateTime(Request.Params["month"]).AddMonths(-1); startTime = Convert.ToDateTime(fromPageMonths.Year.ToString() + "-" + fromPageMonths.Month.ToString() + "-25"); endTime = startTime.AddMonths(1); if (ConstructionMonthReportStartDay != null) { if (ConstructionMonthReportStartDay.SetValue != "") { if (ConstructionMonthReportEndDay != null) { if (ConstructionMonthReportEndDay.SetValue != "") { startTime = Convert.ToDateTime(fromPageMonths.Year.ToString() + "-" + fromPageMonths.Month.ToString() + "-" + ConstructionMonthReportStartDay.SetValue); endTime = Convert.ToDateTime(fromPageMonths.Year.ToString() + "-" + fromPageMonths.Month.ToString() + "-" + ConstructionMonthReportEndDay.SetValue).AddMonths(1); } else { startTime = Convert.ToDateTime(fromPageMonths.Year.ToString() + "-" + fromPageMonths.Month.ToString() + "-" + ConstructionMonthReportStartDay.SetValue); endTime = startTime.AddMonths(1); } } else { startTime = Convert.ToDateTime(fromPageMonths.Year.ToString() + "-" + fromPageMonths.Month.ToString() + "-" + ConstructionMonthReportStartDay.SetValue); endTime = startTime.AddMonths(1); } } else { if (ConstructionMonthReportEndDay != null) { if (ConstructionMonthReportEndDay.SetValue != "") { startTime = Convert.ToDateTime(fromPageMonths.Year.ToString() + "-" + fromPageMonths.Month.ToString() + "-" + ConstructionMonthReportEndDay.SetValue); endTime = startTime.AddMonths(1); } } } } else { if (ConstructionMonthReportEndDay != null) { if (ConstructionMonthReportEndDay.SetValue != "") { startTime = Convert.ToDateTime(fromPageMonths.Year.ToString() + "-" + fromPageMonths.Month.ToString() + "-" + ConstructionMonthReportEndDay.SetValue); endTime = startTime.AddMonths(1); } } } } var project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId); Model.ZHGL_ConstructionMonthReport constructionMonthReport = ConstructionMonthReportService.GetConstructionMonthReport(ConstructionMonthReportId); if (constructionMonthReport != null) { this.hdId.Text = ConstructionMonthReportId; startTime = Convert.ToDateTime(constructionMonthReport.Month.Value.AddMonths(-1).Year.ToString() + "-" + constructionMonthReport.Month.Value.AddMonths(-1).Month.ToString() + "-25"); endTime = startTime.AddMonths(1); this.txtOwnerName.Text = constructionMonthReport.OwnerName; this.txtContractScope.Text = constructionMonthReport.ContractScope; this.txtContractPriceAndPricingModel.Text = constructionMonthReport.ContractPriceAndPricingModel; if (constructionMonthReport.ContractStartDate != null) { this.txtContractStartDate.Text = string.Format("{0:yyyy-MM-dd}", constructionMonthReport.ContractStartDate); } if (constructionMonthReport.ContractEndDate != null) { this.txtContractEndDate.Text = string.Format("{0:yyyy-MM-dd}", constructionMonthReport.ContractEndDate); } this.txtMainConstructionActivities.Text = constructionMonthReport.MainConstructionActivities; this.txtProgressDeviationAndCauseAnalysis.Text = constructionMonthReport.ProgressDeviationAndCauseAnalysis; this.txtKeyDeviationAndCauseAnalysis.Text = constructionMonthReport.KeyDeviationAndCauseAnalysis; this.txtTargetedCorrectiveMeasures.Text = constructionMonthReport.TargetedCorrectiveMeasures; this.txtNextMonthWork.Text = constructionMonthReport.NextMonthWork; this.txtNeedCoordinateMatter.Text = constructionMonthReport.NeedCoordinateMatter; } else { var ownerUnit = BLL.ProjectUnitService.GetProjectUnitListByProjectIdUnitType(this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_4); if (ownerUnit.Count > 0) { this.txtOwnerName.Text = BLL.UnitService.GetUnitNameByUnitId(ownerUnit[0].UnitId); } if (project.StartDate != null) { this.txtContractStartDate.Text = string.Format("{0:yyyy-MM-dd}", project.StartDate); } if (project.EndDate != null) { this.txtContractEndDate.Text = string.Format("{0:yyyy-MM-dd}", project.EndDate); } } if (project != null) { this.txtProjectName.Text = project.ProjectName; } lbMonths.Text = endTime.Year.ToString() + "年" + endTime.Month.ToString() + "月"; DataTable table = BLL.WorkPackageService.GetAllTreeDataTableConstructionMonthReport(this.CurrUser.LoginProjectId, string.Empty, startTime, endTime); Grid1.DataSource = table; Grid1.DataBind(); BindMainCost(); BindSubCost(); DateTime nextStartTime = startTime.AddMonths(1); DateTime nextEndTime = endTime.AddMonths(1); DataTable table2 = BLL.WorkPackageService.GetAllTreeDataTableConstructionMonthReport(this.CurrUser.LoginProjectId, string.Empty, nextStartTime, nextEndTime); Grid2.DataSource = table2; Grid2.DataBind(); BindGrid(); OutputSummaryData(); } else { if (GetRequestEventArgument() == "UPDATE_SUMMARY") { // 页面要求重新计算合计行的值 OutputSummaryData(); } } } #region 计算合计 /// /// 计算合计 /// private void OutputSummaryData() { decimal contractAmount = 0, thisNeedPay = 0, thisRealPay = 0, totalNeedPay = 0, totalRealPay = 0, totalRealPayRate = 0; JArray mergedData = GridSubCost.GetMergedData(); foreach (JObject mergedRow in mergedData) { JObject values = mergedRow.Value("values"); contractAmount += Funs.GetNewDecimalOrZero(values.Value("ContractAmount")); thisNeedPay += Funs.GetNewDecimalOrZero(values.Value("ThisNeedPay")); thisRealPay += Funs.GetNewDecimalOrZero(values.Value("ThisRealPay")); totalNeedPay += Funs.GetNewDecimalOrZero(values.Value("TotalNeedPay")); totalRealPay += Funs.GetNewDecimalOrZero(values.Value("TotalRealPay")); } if (contractAmount > 0 && totalRealPay > 0) { totalRealPayRate = totalRealPay / contractAmount * 100; } JObject summary = new JObject(); summary.Add("tfPageIndex", "合计:"); summary.Add("ContractAmount", contractAmount.ToString("0.####")); summary.Add("ThisNeedPay", thisNeedPay.ToString("0.####")); summary.Add("ThisRealPay", thisRealPay.ToString("0.####")); summary.Add("TotalNeedPay", totalNeedPay.ToString("0.####")); summary.Add("TotalRealPay", totalRealPay.ToString("0.####")); summary.Add("TotalRealPayRate", totalRealPayRate.ToString("0.##")); GridSubCost.SummaryData = summary; } #endregion private void BindMainCost() { var list = ConstructionMonthReportMainCostService.getListData(ConstructionMonthReportId); if (list.Count == 0) { List lists = new List(); Model.ZHGL_ConstructionMonthReportMainCost mainCost = new Model.ZHGL_ConstructionMonthReportMainCost(); mainCost.ConstructionMonthReportMainCostId = SQLHelper.GetNewID(); lists.Add(mainCost); GridMainCost.DataSource = lists; GridMainCost.DataBind(); } else { GridMainCost.DataSource = list; GridMainCost.DataBind(); } } private void BindSubCost() { var list = ConstructionMonthReportSubCostService.getListData(ConstructionMonthReportId); if (list.Count == 0) { List lists = new List(); List units = UnitService.GetUnitByProjectIdUnitTypeList(CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2); foreach (var unit in units) { Model.ZHGL_ConstructionMonthReportSubCost subCost = new Model.ZHGL_ConstructionMonthReportSubCost(); subCost.ConstructionMonthReportSubCostId = SQLHelper.GetNewID(); subCost.UnitId = unit.UnitId; lists.Add(subCost); } GridSubCost.DataSource = lists; GridSubCost.DataBind(); } else { GridSubCost.DataSource = list; GridSubCost.DataBind(); } } // //获取单位名称 // // // protected string ConvertUnitName(object UnitId) { string unitName = string.Empty; if (UnitId != null) { Model.Base_Unit unit = BLL.UnitService.GetUnitByUnitId(UnitId.ToString()); if (unit != null) { unitName = unit.UnitName; } } return unitName; } #region 关闭弹出窗口 /// /// 关闭弹出窗口 /// /// /// protected void WindowAtt_Close(object sender, WindowCloseEventArgs e) { BindGrid(); } /// /// 数据绑定 /// public void BindGrid() { string strSql = @"select * from AttachFile where ToKeyId='" + this.hdId.Text + "' and MenuId='" + BLL.Const.ConstructionMonthReportMenuId + "'"; DataTable tb = SQLHelper.GetDataTableRunText(strSql, null); Grid3.RecordCount = tb.Rows.Count; var table = this.GetPagedDataTable(Grid1, tb); Grid3.DataSource = table; Grid3.DataBind(); } /// /// 获取图片(放于Img中) /// /// /// protected string ConvertImageUrlByImage(object CompanyModelId) { string url = string.Empty; if (CompanyModelId != null) { var attachFile = BLL.AttachFileService.GetAttachFileByToKeyId(CompanyModelId.ToString()); if (attachFile != null) { url = HttpUtility.HtmlDecode(BLL.UploadAttachmentService.ShowImage("../../", attachFile.AttachUrl)); } } return url; } #endregion #region 附件上传 /// /// 附件上传 /// /// /// protected void btnAttach_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(this.hdId.Text)) //新增记录 { this.hdId.Text = SQLHelper.GetNewID(typeof(Model.ZHGL_ConstructionMonthReport)); } if (!string.IsNullOrEmpty(Request.Params["see"])) { PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/ZHGL/ConstructionMonthReport&menuId={1}", this.hdId.Text, BLL.Const.ConstructionMonthReportMenuId))); } else { PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/ZHGL/ConstructionMonthReport&menuId={1}", this.hdId.Text, BLL.Const.ConstructionMonthReportMenuId))); } } #endregion protected void btnSave_Click(object sender, EventArgs e) { if (CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.PersonId, Const.ConstructionMonthReportMenuId, Const.BtnSave)) { Model.ZHGL_ConstructionMonthReport ConstructionMonthReport = new Model.ZHGL_ConstructionMonthReport(); ConstructionMonthReport.ProjectId = CurrUser.LoginProjectId; ConstructionMonthReport.OwnerName = txtOwnerName.Text.Trim(); ConstructionMonthReport.ContractScope = txtContractScope.Text.Trim(); ConstructionMonthReport.ContractPriceAndPricingModel = txtContractPriceAndPricingModel.Text.Trim(); ConstructionMonthReport.ContractStartDate = Funs.GetNewDateTime(txtContractStartDate.Text.Trim()); ConstructionMonthReport.ContractEndDate = Funs.GetNewDateTime(txtContractEndDate.Text.Trim()); ConstructionMonthReport.MainConstructionActivities = this.txtMainConstructionActivities.Text.Trim(); ConstructionMonthReport.ProgressDeviationAndCauseAnalysis = this.txtProgressDeviationAndCauseAnalysis.Text.Trim(); ConstructionMonthReport.KeyDeviationAndCauseAnalysis = this.txtKeyDeviationAndCauseAnalysis.Text.Trim(); ConstructionMonthReport.TargetedCorrectiveMeasures = this.txtTargetedCorrectiveMeasures.Text.Trim(); ConstructionMonthReport.NextMonthWork = this.txtNextMonthWork.Text.Trim(); ConstructionMonthReport.NeedCoordinateMatter = this.txtNeedCoordinateMatter.Text.Trim(); if (!string.IsNullOrEmpty(ConstructionMonthReportId)) { ConstructionMonthReport.ConstructionMonthReportId = ConstructionMonthReportId; ConstructionMonthReportService.UpdateConstructionMonthReport(ConstructionMonthReport); } else { if (string.IsNullOrEmpty(this.hdId.Text)) { ConstructionMonthReport.ConstructionMonthReportId = SQLHelper.GetNewID(typeof(Model.ZHGL_ConstructionMonthReport)); } else { ConstructionMonthReport.ConstructionMonthReportId = this.hdId.Text; } ConstructionMonthReport.Month = Convert.ToDateTime(Request.Params["month"]); ConstructionMonthReport.CompileMan = CurrUser.PersonId; ConstructionMonthReport.CompileDate = DateTime.Now; ConstructionMonthReportService.AddConstructionMonthReport(ConstructionMonthReport); } BLL.ConstructionMonthReportMainCostService.DeleteConstructionMonthReportMainCostsByConstructionMonthReportId(ConstructionMonthReport.ConstructionMonthReportId); foreach (JObject mergedRow in GridMainCost.GetMergedData()) //总包工程施工请款情况表 { Model.ZHGL_ConstructionMonthReportMainCost mainCost = new Model.ZHGL_ConstructionMonthReportMainCost(); int i = mergedRow.Value("index"); JObject values = mergedRow.Value("values"); mainCost.ConstructionMonthReportMainCostId = SQLHelper.GetNewID(); mainCost.ConstructionMonthReportId = ConstructionMonthReport.ConstructionMonthReportId; mainCost.ContractConstructionCost = Funs.GetNewDecimalOrZero(values.Value("ContractConstructionCost")); mainCost.ThisRequestCost = Funs.GetNewDecimalOrZero(values.Value("ThisRequestCost")); mainCost.TotalRequestCost = Funs.GetNewDecimalOrZero(values.Value("TotalRequestCost")); mainCost.ThisCollection = Funs.GetNewDecimalOrZero(values.Value("ThisCollection")); mainCost.TotalCollection = Funs.GetNewDecimalOrZero(values.Value("TotalCollection")); mainCost.TotalCollectionRate = Funs.GetNewDecimalOrZero(values.Value("TotalCollectionRate")); ConstructionMonthReportMainCostService.AddConstructionMonthReportMainCost(mainCost); } BLL.ConstructionMonthReportSubCostService.DeleteConstructionMonthReportSubCostsByConstructionMonthReportId(ConstructionMonthReport.ConstructionMonthReportId); foreach (JObject mergedRow in GridSubCost.GetMergedData()) //分包工程施工付款情况表 { Model.ZHGL_ConstructionMonthReportSubCost subCost = new Model.ZHGL_ConstructionMonthReportSubCost(); int i = mergedRow.Value("index"); JObject values = mergedRow.Value("values"); subCost.ConstructionMonthReportSubCostId = SQLHelper.GetNewID(); subCost.ConstructionMonthReportId = ConstructionMonthReport.ConstructionMonthReportId; subCost.UnitId = values.Value("UnitId"); subCost.ContractAmount = Funs.GetNewDecimalOrZero(values.Value("ContractAmount")); subCost.ThisNeedPay = Funs.GetNewDecimalOrZero(values.Value("ThisNeedPay")); subCost.ThisRealPay = Funs.GetNewDecimalOrZero(values.Value("ThisRealPay")); subCost.TotalNeedPay = Funs.GetNewDecimalOrZero(values.Value("TotalNeedPay")); subCost.TotalRealPay = Funs.GetNewDecimalOrZero(values.Value("TotalRealPay")); subCost.TotalRealPayRate = Funs.GetNewDecimalOrZero(values.Value("TotalRealPayRate")); ConstructionMonthReportSubCostService.AddConstructionMonthReportSubCost(subCost); } ShowNotify("提交成功!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } } }