using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; namespace FineUIPro.Web.ManHours { public partial class SelectPlan : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { btnClose.OnClientClick = ActiveWindow.GetHideReference(); string UserId = Request.Params["UserId"]; //var manHours = from x in Funs.DB.ManHours_Plan // where x.EngineerId == UserId && x.AccountDisabled == 0 // group x by x.EProjectId; //foreach (var m in manHours) //{ // string eprojectId = m.Key; // var rp = BLL.ResourcePlanService.GetResourcePlanByEProjectId(eprojectId); // var eproj = BLL.EProjectService.GeteProjectById(eprojectId); // // 当network的值大于30天时第一个资源的人工时关闭 // if (rp.Count() > 1 && eproj.ProjectControl_NetworkDate.HasValue) // { // if (eproj.ProjectControl_NetworkDate.Value.AddDays(30) < DateTime.Now.Date) // { // var r = rp.Where(x => x.WO != eproj.ProjectControl_NetworkNo); // if (r != null) // { // Model.ManHours_Plan man = Funs.DB.ManHours_Plan.FirstOrDefault(x => x.ResourcePlanId == r.First().ResourcePlanId); // man.AccountDisabled = 1; // Funs.DB.SubmitChanges(); // } // } // } //} BindGrid(UserId); } } /// /// /// /// private void BindGrid(string UserId) { string strSql = @"SELECT * from View_NewManHours_Plan WHERE AccountDisabled=0 and IsCalculated=1 AND (ProjectControl_JobStatus='Detail Design' OR ProjectControl_JobStatus='In Construction' OR ProjectControl_JobStatus='In Procurement' OR ProjectControl_JobStatus='Not Start' OR ProjectControl_JobStatus='On Going' OR (ProjectControl_JobStatus='Cancelled' AND DATEDIFF(DAY,ProjectControl_PC_CancelDate,GETDATE())<=31) OR (ProjectControl_JobStatus='MC' and DATEDIFF(MONTH,CM_MA_MC,GETDATE())<=4) OR (ProjectControl_JobStatus='Study' and (DATEDIFF(DAY,PM_MA_ProjectApproval,GETDATE())<=31 OR PM_MA_ProjectApproval IS NULL)) OR (ProjectControl_JobStatus='Hold' and DATEDIFF(DAY,Job_Hold,GETDATE())<=31))"; // 暂不加 // OR (AccountDisabled=1 AND (ProjectControl_JobType='Projects' OR ProjectControl_JobType='Small Invest') // AND(ProjectControl_NetworkDate IS NOT NULL AND DATEDIFF(DAY, ProjectControl_NetworkDate, GETDATE()) <= 30)) List listStr = new List(); if (!string.IsNullOrEmpty(UserId)) { strSql += " AND EngineerId=@EngineerId "; listStr.Add(new SqlParameter("@EngineerId", UserId)); } if (!string.IsNullOrEmpty(this.txtJobNo.Text.Trim())) { strSql += " AND ProjectControl_JobNo like @jobno "; listStr.Add(new SqlParameter("@jobno", "%" + this.txtJobNo.Text.Trim() + "%")); } strSql += " ORDER BY ProjectControl_JobNo DESC "; SqlParameter[] parameter = listStr.ToArray(); DataTable table = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.DataSource = table; Grid1.DataBind(); } protected void drpJobNo_SelectedIndexChanged(object sender, EventArgs e) { BindGrid(Request.Params["UserId"].ToString()); } /// /// 提交按钮 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { string itemsString = ""; if (Grid1.SelectedRowIndexArray.Length > 0) { foreach (int rowIndex in Grid1.SelectedRowIndexArray) { //ResourcePlanId,EProjectId,EngineerId,DisciplineId //string rowID = Grid1.DataKeys[rowIndex][0].ToString() + "|" + Grid1.DataKeys[rowIndex][1].ToString() + "|" + Grid1.DataKeys[rowIndex][2].ToString(); string rowID = Grid1.DataKeys[rowIndex][0].ToString(); if (!itemsString.Contains(rowID)) { itemsString += rowID + ","; } } } itemsString = itemsString.Substring(0, itemsString.LastIndexOf(",")); PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(itemsString) + ActiveWindow.GetHidePostBackReference()); } } }