using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace FineUIPro.Web.ResourcePlan
{
    public partial class ResourcePlanView : PageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                btnClose.OnClientClick = ActiveWindow.GetHideReference();

                checkJobType.DataTextField = "ConstText";
                checkJobType.DataValueField = "ConstValue";
                checkJobType.DataSource = BLL.ConstService.GetConstListByGroupId(BLL.Const.ProjectPlanner_JobType);
                checkJobType.DataBind();

                //Phase暂无
                //checkPhase.DataTextField = "ConstText";
                //checkPhase.DataValueField = "ConstValue";
                //checkPhase.DataSource = BLL.ConstService.GetConstListByGroupId(BLL.Const.ProjectPlanner_JobType);
                //checkPhase.DataBind();

                checkPriority.DataTextField = "ConstText";
                checkPriority.DataValueField = "ConstValue";
                checkPriority.DataSource = BLL.ConstService.GetConstListByGroupId(BLL.Const.PM_Priority);
                checkPriority.DataBind();

                //项目经理
                BLL.Sys_UserService.InitUserDropDownList(this.ddDesigner, false);
                BLL.Sys_UserService.InitUserDropDownList(this.ddChecker, false);
                BLL.Sys_UserService.InitUserDropDownList(this.ddApprover, false);
                BLL.Sys_UserService.InitUserDropDownList(this.ddLeader, false);
                BLL.Sys_UserService.InitUserDropDownList(this.DropDownList1, false);
                BLL.Sys_UserService.InitUserDropDownList(this.DropDownList2, false);
                BLL.Sys_UserService.InitUserDropDownList(this.DropDownList3, false);
                BLL.Sys_UserService.InitUserDropDownList(this.DropDownList4, false);
                BLL.Sys_UserService.InitUserDropDownList(this.DropDownList5, false);
                BLL.Sys_UserService.InitUserDropDownList(this.DropDownList6, false);
                BLL.Sys_UserService.InitUserDropDownList(this.DropDownList7, false);
                string eProjectId = Request.Params["eProjectId"];
                string ResourcePlanId = Request.Params["ResourcePlanId"];
                if (!string.IsNullOrEmpty(eProjectId))
                {
                    var eProject = BLL.EProjectService.GeteProjectById(eProjectId);
                    if (eProject != null)
                    {
                        this.txtJobNo.Text = eProject.ProjectControl_JobNo;
                        this.txtJobTitle.Text = eProject.ProjectControl_JobTitle;

                        this.txtMOCNo.Text = eProject.ProjectControl_MOCFormNo;

                        foreach (CheckItem lst in this.checkJobType.Items)//项目类型
                        {
                            if (!string.IsNullOrEmpty(eProject.ProjectControl_JobType))
                            {
                                if (eProject.ProjectControl_JobType.Equals(lst.Value))
                                    lst.Selected = true;
                            }
                        }
                        foreach (CheckItem lsts in this.checkPriority.Items)//优先级
                        {
                            if (!string.IsNullOrEmpty(eProject.PM_General_Priority))
                            {
                                if (eProject.PM_General_Priority.Equals(lsts.Value))
                                    lsts.Selected = true;
                            }
                        }
                       

                        BindGrid();

                    }
                }
            
            }
        }


        private void BindGrid()
        {
            string strSql = @"SELECT DisciplinesWBSId,DisciplinesWBSCode,DisciplinesWBSName,WBS,DepartId,DepartName,NetworkOper,WorkorderOper,Designer,Checker,Approver,Leader,Roles,Remark,Type,'' as UserName,'' as UserId"
                        + @" FROM Base_DisciplinesWBS ";
            DataTable table = SQLHelper.GetDataTableRunText(strSql, null);


            Model.Resource_Plan newPlan = BLL.ResourcePlanService.GetModelsResourcePlans(Request.Params["ResourcePlanId"]);
            if (newPlan != null)
            {
                string Arrays = "";
                this.txtWO.Text = newPlan.WO;
                txtSchStart1.Text = newPlan.ProjectApproval_Sch_Start.ToString();
                if (newPlan.ProjectApproval_Sch_NotApplicable == true)
                {
                    cbNotApplicable1.Checked = true;
                }
                txtSchStart2.Text = newPlan.Detail_Eng_Civil_Sch_Start.ToString();
                txtSchEnd2.Text = newPlan.Detail_Eng_Civil_Sch_End.ToString();
                if (newPlan.Detail_Eng_Civil_Sch_NotApplicable == true)
                {
                    cbNotApplicable2.Checked = true;
                }
                DatePicker1.Text = newPlan.Detail_Eng_Mech_EI_Sch_Start.ToString();
                DatePicker2.Text = newPlan.Detail_Eng_Mech_EI_Sch_End.ToString();
                if (newPlan.Detail_Eng_Mech_EI_Sch_NotApplicable == true)
                {
                    CheckBox1.Checked = true;
                }
                DatePicker3.Text = newPlan.LLE_Procurement_Sch_Start.ToString();
                DatePicker4.Text = newPlan.LLE_Procurement_Sch_End.ToString();
                if (newPlan.LLE_Procurement_Sch_NotApplicable == true)
                {
                    CheckBox2.Checked = true;
                }
                DatePicker5.Text = newPlan.Const_Civil_Sch_Start.ToString();
                DatePicker6.Text = newPlan.Const_Civil_Sch_End.ToString();
                if (newPlan.Const_Civil_Sch_NotApplicable == true)
                {
                    CheckBox3.Checked = true;
                }

                DatePicker7.Text = newPlan.Const_Mech_EI_Start.ToString();
                DatePicker8.Text = newPlan.Const_Mech_EI_End.ToString();
                if (newPlan.Const_Mech_EI_NotApplicable == true)
                {
                    CheckBox4.Checked = true;
                }
                DatePicker9.Text = newPlan.MC_Sch_Start.ToString();
                //DatePicker10.Text = newPlan.MC_Sch_End.ToString();
                if (newPlan.MC_Sch_NotApplicable == true)
                {
                    CheckBox5.Checked = true;
                }
                DataTable dt = BLL.ResourcePlanService.GetDataTable(newPlan.ResourcePlanId, newPlan.EProjectId);
                DataRow[] Getdr1 = dt.Select("Types='1'", "iSort asc");
                DataRow[] dr1 = table.Select("Type='1'", "DisciplinesWBSCode asc");
                List<NewBaseDisciplinesWBS> Newlist = new List<NewBaseDisciplinesWBS>();
                NewBaseDisciplinesWBS NewModel = null;
                for (int i = 0; i < dr1.Length; i++)
                {
                    NewModel = new NewBaseDisciplinesWBS();
                    string Designer = "";
                    string Ratio1 = "";
                    string ManHours1 = "";
                    string Checker = "";
                    string Ratio2 = "";
                    string ManHours2 = "";
                    string Approver = "";
                    string Ratio3 = "";
                    string ManHours3 = "";
                    string Leader = "";
                    string Ratio4 = "";
                    string ManHours4 = "";
                    decimal TotalManHours = 0;
                    string Sch_Start = "";
                    string Sch_End = "";
                    for (int d = 0; d < Getdr1.Length; d++)
                    {
                        if (dr1[i]["DisciplinesWBSId"].ToString() == Getdr1[d]["DisciplinesWBSId"].ToString())
                        {
                            Sch_Start = Getdr1[d]["Sch_Start"].ToString();
                            Sch_End = Getdr1[d]["Sch_End"].ToString();
                            Designer = Getdr1[d]["DesignersId"].ToString();
                            Ratio1 = Getdr1[d]["Ratio1"].ToString();
                            ManHours1 = Getdr1[d]["ManHours1"].ToString();
                            Checker = Getdr1[d]["CheckersId"].ToString();
                            Ratio2 = Getdr1[d]["Ratio2"].ToString();
                            ManHours2 = Getdr1[d]["ManHours2"].ToString();
                            Approver = Getdr1[d]["ApproversId"].ToString();
                            Ratio3 = Getdr1[d]["Ratio3"].ToString();
                            ManHours3 = Getdr1[d]["ManHours3"].ToString();
                            Leader = Getdr1[d]["LeadersId"].ToString();
                            Ratio4 = Getdr1[d]["Ratio4"].ToString();
                            ManHours4 = Getdr1[d]["ManHours4"].ToString();
                            if (string.IsNullOrEmpty(ManHours1))
                            {
                                ManHours1 = "0";
                            }
                            if (string.IsNullOrEmpty(ManHours2))
                            {
                                ManHours2 = "0";
                            }
                            if (string.IsNullOrEmpty(ManHours3))
                            {
                                ManHours3 = "0";
                            }
                            if (string.IsNullOrEmpty(ManHours4))
                            {
                                ManHours4 = "0";
                            }
                            TotalManHours = Convert.ToDecimal(ManHours1) + Convert.ToDecimal(ManHours2) + Convert.ToDecimal(ManHours3) + Convert.ToDecimal(ManHours4);
                            Arrays += Getdr1[d]["ISort"].ToString() + ",";
                        }
                    }
                    NewModel.DisciplinesWBSId = dr1[i]["DisciplinesWBSId"].ToString();
                    NewModel.DisciplinesWBSCode = dr1[i]["DisciplinesWBSCode"].ToString();
                    NewModel.DisciplinesWBSName = dr1[i]["DisciplinesWBSName"].ToString();
                    NewModel.WBS = dr1[i]["WBS"].ToString();
                    NewModel.DepartId = dr1[i]["DepartId"].ToString();
                    NewModel.DepartName = dr1[i]["DepartName"].ToString();
                    NewModel.NetworkOper = dr1[i]["NetworkOper"].ToString();
                    NewModel.WorkorderOper = dr1[i]["WorkorderOper"].ToString();
                    NewModel.Sch_Start = Sch_Start;
                    NewModel.Sch_End = Sch_End;
                    NewModel.Designer = Designer;
                    NewModel.Ratio1 = Ratio1;
                    NewModel.ManHours1 = ManHours1;
                    NewModel.Checker = Checker;
                    NewModel.Ratio2 = Ratio2;
                    NewModel.ManHours2 = ManHours2;
                    NewModel.Approver = Approver;
                    NewModel.Ratio3 = Ratio3;
                    NewModel.ManHours3 = ManHours3;
                    NewModel.Leader = Leader;
                    NewModel.Ratio4 = Ratio4;
                    NewModel.ManHours4 = ManHours4;
                    if (TotalManHours == 0)
                    {
                        NewModel.TotalManHours = "";
                    }
                    else
                    {
                        NewModel.TotalManHours = Convert.ToString(TotalManHours);

                    }
                    Newlist.Add(NewModel);
                }
                Grid3.DataSource = Newlist;
                Grid3.DataBind();
                DataRow[] Getdr2 = dt.Select("Types='2'", "iSort asc");
                if (Getdr2.Length > 0)
                {
                    DataTable dtGrid4 = new DataTable();
                    DataColumn DisciplinesWBSId = new DataColumn("DisciplinesWBSId", Type.GetType("System.String"));
                    DataColumn DisciplinesWBSCode = new DataColumn("DisciplinesWBSCode", Type.GetType("System.String"));
                    DataColumn DisciplinesWBSName = new DataColumn("DisciplinesWBSName", Type.GetType("System.String"));
                    DataColumn NetworkOper = new DataColumn("NetworkOper", Type.GetType("System.String"));
                    DataColumn WorkorderOper = new DataColumn("WorkorderOper", Type.GetType("System.String"));
                    DataColumn WBS = new DataColumn("WBS", Type.GetType("System.String"));
                    DataColumn DepartId = new DataColumn("DepartId", Type.GetType("System.String"));
                    DataColumn DepartName = new DataColumn("DepartName", Type.GetType("System.String"));
                    DataColumn Designer = new DataColumn("Designer", Type.GetType("System.String"));
                    DataColumn Ratio1 = new DataColumn("Ratio1", Type.GetType("System.String"));
                    DataColumn ManHours1 = new DataColumn("ManHours1", Type.GetType("System.String"));
                    DataColumn Checker = new DataColumn("Checker", Type.GetType("System.String"));
                    DataColumn Ratio2 = new DataColumn("Ratio2", Type.GetType("System.String"));
                    DataColumn ManHours2 = new DataColumn("ManHours2", Type.GetType("System.String"));
                    DataColumn Approver = new DataColumn("Approver", Type.GetType("System.String"));
                    DataColumn Ratio3 = new DataColumn("Ratio3", Type.GetType("System.String"));
                    DataColumn ManHours3 = new DataColumn("ManHours3", Type.GetType("System.String"));
                    DataColumn TotalManHours = new DataColumn("TotalManHours", Type.GetType("System.String"));
                    dtGrid4.Columns.Add(DisciplinesWBSId);
                    dtGrid4.Columns.Add(DisciplinesWBSCode);
                    dtGrid4.Columns.Add(DisciplinesWBSName);
                    dtGrid4.Columns.Add(WBS);
                    dtGrid4.Columns.Add(NetworkOper);
                    dtGrid4.Columns.Add(WorkorderOper);
                    dtGrid4.Columns.Add(DepartId);
                    dtGrid4.Columns.Add(DepartName);
                    dtGrid4.Columns.Add(Designer);
                    dtGrid4.Columns.Add(Ratio1);
                    dtGrid4.Columns.Add(ManHours1);
                    dtGrid4.Columns.Add(Checker);
                    dtGrid4.Columns.Add(Ratio2);
                    dtGrid4.Columns.Add(ManHours2);
                    dtGrid4.Columns.Add(Approver);
                    dtGrid4.Columns.Add(Ratio3);
                    dtGrid4.Columns.Add(ManHours3);
                    dtGrid4.Columns.Add(TotalManHours);
                    for (int i = 0; i < Getdr2.Length; i++)
                    {
                        decimal TotalManHourss = 0;
                        String mh1 = "0";
                        String mh2 = "0";
                        String mh3 = "0";
                        DataRow row = dtGrid4.NewRow();
                        row["DisciplinesWBSId"] = Getdr2[i]["DisciplinesWBSId"].ToString();
                        row["DisciplinesWBSCode"] = Getdr2[i]["DisciplinesWBSCode"].ToString();
                        row["DisciplinesWBSName"] = Getdr2[i]["DisciplinesWBSName"].ToString();
                        row["WBS"] = Getdr2[i]["WBS"].ToString();
                        row["NetworkOper"] = Getdr2[i]["NetworkOper"].ToString();
                        row["WorkorderOper"] = Getdr2[i]["WorkorderOper"].ToString();
                        row["Designer"] = Getdr2[i]["DesignersId"].ToString();
                        row["Ratio1"] = Getdr2[i]["Ratio1"].ToString();
                        mh1 = Getdr2[i]["ManHours1"].ToString();
                        row["ManHours1"] = mh1;
                        row["Checker"] = Getdr2[i]["CheckersId"].ToString();
                        row["Ratio2"] = Getdr2[i]["Ratio2"].ToString();
                        mh2 = Getdr2[i]["ManHours2"].ToString();
                        row["ManHours2"] = mh2;
                        row["Approver"] = Getdr2[i]["ApproversId"].ToString();
                        row["Ratio3"] = Getdr2[i]["Ratio3"].ToString();
                        mh3 = Getdr2[i]["ManHours3"].ToString();
                        row["ManHours3"] = mh3;
                        if (string.IsNullOrEmpty(Getdr2[i]["ManHours1"].ToString()))
                        {
                            mh1 = "0";
                        }
                        if (string.IsNullOrEmpty(Getdr2[i]["ManHours2"].ToString()))
                        {
                            mh2 = "0";
                        }
                        if (string.IsNullOrEmpty(Getdr2[i]["ManHours3"].ToString()))
                        {
                            mh3 = "0";
                        }
                        TotalManHourss = Convert.ToDecimal(mh1) + Convert.ToDecimal(mh2) + Convert.ToDecimal(mh3);
                        if (TotalManHourss == 0)
                        {
                            row["TotalManHours"] = "";
                        }
                        else
                        {
                            row["TotalManHours"] = Convert.ToString(TotalManHourss);
                        }
                        dtGrid4.Rows.Add(row);
                    }
                    Grid4.DataSource = dtGrid4;
                    Grid4.DataBind();

                }


                DataRow[] Getdr3 = dt.Select("Types='3'", "iSort asc");
                if (Getdr3.Length > 0)
                {
                    DataTable dtGrid5 = new DataTable();
                    DataColumn DisciplinesWBSId = new DataColumn("DisciplinesWBSId", Type.GetType("System.String"));
                    DataColumn DisciplinesWBSCode = new DataColumn("DisciplinesWBSCode", Type.GetType("System.String"));
                    DataColumn DisciplinesWBSName = new DataColumn("DisciplinesWBSName", Type.GetType("System.String"));
                    DataColumn WBS = new DataColumn("WBS", Type.GetType("System.String"));
                    DataColumn NetworkOper = new DataColumn("NetworkOper", Type.GetType("System.String"));
                    DataColumn WorkorderOper = new DataColumn("WorkorderOper", Type.GetType("System.String"));
                    DataColumn DepartId = new DataColumn("DepartId", Type.GetType("System.String"));
                    DataColumn DepartName = new DataColumn("DepartName", Type.GetType("System.String"));
                    DataColumn Designer = new DataColumn("Designer", Type.GetType("System.String"));
                    DataColumn Ratio1 = new DataColumn("Ratio1", Type.GetType("System.String"));
                    DataColumn ManHours1 = new DataColumn("ManHours1", Type.GetType("System.String"));
                    DataColumn Checker = new DataColumn("Checker", Type.GetType("System.String"));
                    DataColumn Ratio2 = new DataColumn("Ratio2", Type.GetType("System.String"));
                    DataColumn ManHours2 = new DataColumn("ManHours2", Type.GetType("System.String"));
                    DataColumn Approver = new DataColumn("Approver", Type.GetType("System.String"));
                    DataColumn Ratio3 = new DataColumn("Ratio3", Type.GetType("System.String"));
                    DataColumn ManHours3 = new DataColumn("ManHours3", Type.GetType("System.String"));
                    DataColumn TotalManHours = new DataColumn("TotalManHours", Type.GetType("System.String"));
                    dtGrid5.Columns.Add(DisciplinesWBSId);
                    dtGrid5.Columns.Add(DisciplinesWBSCode);
                    dtGrid5.Columns.Add(DisciplinesWBSName);
                    dtGrid5.Columns.Add(WBS);
                    dtGrid5.Columns.Add(NetworkOper);
                    dtGrid5.Columns.Add(WorkorderOper);
                    dtGrid5.Columns.Add(DepartId);
                    dtGrid5.Columns.Add(DepartName);
                    dtGrid5.Columns.Add(Designer);
                    dtGrid5.Columns.Add(Ratio1);
                    dtGrid5.Columns.Add(ManHours1);
                    dtGrid5.Columns.Add(Checker);
                    dtGrid5.Columns.Add(Ratio2);
                    dtGrid5.Columns.Add(ManHours2);
                    dtGrid5.Columns.Add(Approver);
                    dtGrid5.Columns.Add(Ratio3);
                    dtGrid5.Columns.Add(ManHours3);
                    dtGrid5.Columns.Add(TotalManHours);
                    for (int i = 0; i < Getdr3.Length; i++)
                    {
                        decimal TotalManHourss = 0;
                        String mh1 = "0";
                        String mh2 = "0";
                        String mh3 = "0";
                        DataRow row = dtGrid5.NewRow();
                        row["DisciplinesWBSId"] = Getdr3[i]["DisciplinesWBSId"].ToString();
                        row["DisciplinesWBSCode"] = Getdr3[i]["DisciplinesWBSCode"].ToString();
                        row["DisciplinesWBSName"] = Getdr3[i]["DisciplinesWBSName"].ToString();
                        row["WBS"] = Getdr3[i]["WBS"].ToString();
                        row["NetworkOper"] = Getdr3[i]["NetworkOper"].ToString();
                        row["WorkorderOper"] = Getdr3[i]["WorkorderOper"].ToString();
                        row["Designer"] = Getdr3[i]["DesignersId"].ToString();
                        row["Ratio1"] = Getdr3[i]["Ratio1"].ToString();
                        mh1 = Getdr3[i]["ManHours1"].ToString();
                        row["ManHours1"] = mh1;
                        row["Checker"] = Getdr3[i]["CheckersId"].ToString();
                        row["Ratio2"] = Getdr3[i]["Ratio2"].ToString();
                        mh2 = Getdr3[i]["ManHours2"].ToString();
                        row["ManHours2"] = mh2;
                        row["Approver"] = Getdr3[i]["ApproversId"].ToString();
                        row["Ratio3"] = Getdr3[i]["Ratio3"].ToString();
                        mh3 = Getdr3[i]["ManHours3"].ToString();
                        row["ManHours3"] = mh3;
                        if (string.IsNullOrEmpty(Getdr3[i]["ManHours1"].ToString()))
                        {
                            mh1 = "0";
                        }
                        if (string.IsNullOrEmpty(Getdr3[i]["ManHours2"].ToString()))
                        {
                            mh2 = "0";
                        }
                        if (string.IsNullOrEmpty(Getdr3[i]["ManHours3"].ToString()))
                        {
                            mh3 = "0";
                        }
                        TotalManHourss = Convert.ToDecimal(mh1) + Convert.ToDecimal(mh2) + Convert.ToDecimal(mh3);
                        if (TotalManHourss == 0)
                        {
                            row["TotalManHours"] = "";
                        }
                        else
                        {
                            row["TotalManHours"] = Convert.ToString(TotalManHourss);
                        }
                        dtGrid5.Rows.Add(row);
                    }
                    Grid5.DataSource = dtGrid5;
                    Grid5.DataBind();
                }
            }
        }
    }
}