using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
namespace FineUIPro.Web.HSSE.Check
{
    public partial class ProjectLeaderCheckEdit : PageBase
    {
        #region 定义项
        /// 
        /// 主键
        /// 
        public string ProjectLeaderCheckId
        {
            get
            {
                return (string)ViewState["ProjectLeaderCheckId"];
            }
            set
            {
                ViewState["ProjectLeaderCheckId"] = value;
            }
        }
        /// 
        /// 单位  ID
        /// 
        public string UnitId
        {
            get
            {
                return (string)ViewState["UnitId"];
            }
            set
            {
                ViewState["UnitId"] = value;
            }
        }
        /// 
        /// 菜单  ID
        /// 
        public string MenuId
        {
            get
            {
                return (string)ViewState["MenuId"];
            }
            set
            {
                ViewState["MenuId"] = value;
            }
        }
        #endregion
        #region 加载
        /// 
        /// 加载页面
        /// 
        /// 
        /// 
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.btnClose.OnClientClick = ActiveWindow.GetHideReference();
                List list = new List();
                List newList = new List();
                list.AddRange(BLL.UserService.GetProjectRoleUserListByProjectId(this.CurrUser.LoginProjectId, null));
                list.AddRange(BLL.UserService.GetProjectRoleUserListByProjectId(null, null));
                foreach (var item in list)
                {
                    var user = newList.FirstOrDefault(x => x.UserId == item.UserId);
                    if (user == null)
                    {
                        newList.Add(item);
                    }
                }
                drpLeaderIds.DataValueField = "UserId";
                drpLeaderIds.DataTextField = "UserName";
                drpLeaderIds.DataSource = newList;
                drpLeaderIds.DataBind();
                Funs.FineUIPleaseSelect(drpLeaderIds);
                //UserService.InitFlowOperateControlUserDropDownList(this.drpLeaderIds, this.CurrUser.LoginProjectId, null, true);
                UnitService.InitUnitByProjectIdUnitTypeDropDownList(this.drpUnits, this.CurrUser.LoginProjectId, null, true);
                this.ProjectLeaderCheckId = Request.Params["ProjectLeaderCheckId"];
                this.UnitId = Request.Params["UnitId"];
                this.MenuId = Const.ProjectLeaderCheckMenuId;
                if (!string.IsNullOrEmpty(this.ProjectLeaderCheckId))
                {
                    var getProjectLeaderCheck = BLL.Check_ProjectLeaderCheckService.GetProjectLeaderCheckById(this.ProjectLeaderCheckId);
                    if (getProjectLeaderCheck != null)
                    {
                        if (!string.IsNullOrEmpty(getProjectLeaderCheck.UnitIds))
                        {
                            this.drpUnits.SelectedValueArray = getProjectLeaderCheck.UnitIds.Split(',');
                        }
                        if (!string.IsNullOrEmpty(getProjectLeaderCheck.LeaderIds))
                        {
                            this.drpLeaderIds.SelectedValueArray = getProjectLeaderCheck.LeaderIds.Split(',');
                        }
                        this.txtCheckCode.Text = getProjectLeaderCheck.CheckCode;
                        this.txtCheckDate.Text = string.Format("{0:yyyy-MM-dd}", getProjectLeaderCheck.CheckDate);
                        this.ckIsHoldMeet.Checked = getProjectLeaderCheck.IsHoldMeet.Value;
                        this.txtQuestionDef.Text = getProjectLeaderCheck.QuestionDef;
                        this.txtRequirement.Text = getProjectLeaderCheck.Requirement;
                        this.txtLeaderName.Text = getProjectLeaderCheck.LeaderNames;
                    }
                }
                else
                {
                    ////自动生成编码
                    this.txtCheckCode.Text = BLL.CodeRecordsService.ReturnCodeByMenuIdProjectId(this.MenuId, this.CurrUser.LoginProjectId, this.CurrUser.UnitId);
                    this.txtCheckDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
                }
            }
        }
        #endregion
        #region 保存
        /// 
        /// 保存按钮
        /// 
        /// 
        /// 
        protected void btnSave_Click(object sender, EventArgs e)
        {
            this.SaveData(Const.BtnSubmit);
            PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
        }
        /// 
        /// 保存数据
        /// 
        /// 
        private void SaveData(string type)
        {
            string unitIds = Funs.GetStringByArray(this.drpUnits.SelectedValueArray);
            string LeaderIds = Funs.GetStringByArray(this.drpLeaderIds.SelectedValueArray);
            if (string.IsNullOrEmpty(LeaderIds) && type == Const.BtnSubmit)
            {
                ShowNotify("请选择带班领导!", MessageBoxIcon.Warning);
                return;
            }
            Model.Check_ProjectLeaderCheck newProjectLeaderCheck = new Model.Check_ProjectLeaderCheck
            {
                ProjectId = this.CurrUser.LoginProjectId,
                CheckCode = this.txtCheckCode.Text.Trim(),
                CheckDate = Funs.GetNewDateTime(this.txtCheckDate.Text.Trim()),
                UnitIds = unitIds,
                LeaderIds = LeaderIds,
                IsHoldMeet = this.ckIsHoldMeet.Checked,
                QuestionDef = this.txtQuestionDef.Text.Trim(),
                Requirement = this.txtRequirement.Text.Trim(),
                LeaderNames = this.txtLeaderName.Text.Trim(),
            };
            if (!string.IsNullOrEmpty(this.ProjectLeaderCheckId))
            {
                newProjectLeaderCheck.ProjectLeaderCheckId = this.ProjectLeaderCheckId;
                BLL.Check_ProjectLeaderCheckService.UpdateProjectLeaderCheck(newProjectLeaderCheck);
                BLL.LogService.AddSys_Log(this.CurrUser, newProjectLeaderCheck.CheckCode, newProjectLeaderCheck.ProjectLeaderCheckId, this.MenuId, BLL.Const.BtnModify);
            }
            else
            {
                this.ProjectLeaderCheckId = SQLHelper.GetNewID();
                newProjectLeaderCheck.ProjectLeaderCheckId = this.ProjectLeaderCheckId;
                BLL.Check_ProjectLeaderCheckService.AddProjectLeaderCheck(newProjectLeaderCheck);
                BLL.LogService.AddSys_Log(this.CurrUser, newProjectLeaderCheck.CheckCode, newProjectLeaderCheck.ProjectLeaderCheckId, this.MenuId, BLL.Const.BtnAdd);
            }
            Project_HSSEData_HSSEService.StatisticalData(this.CurrUser.LoginProjectId, Project_HSSEData_HSSEService.HSSEDateType.SupervisionAndInspection);
        }
        #endregion
        #region 附件上传
        /// 
        /// 上传附件
        /// 
        /// 
        /// 
        protected void btnAttachUrl_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(this.ProjectLeaderCheckId))
            {
                SaveData(BLL.Const.BtnSave);
            }
            PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/ProjectLeaderCheckAttachUrl&menuId={1}", ProjectLeaderCheckId, this.MenuId)));
        }
        #endregion
        protected void drpUnits_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.drpUnits.SelectedValueArray = Funs.RemoveDropDownListNull(this.drpUnits.SelectedValueArray);
        }
        protected void drpLeaderIds_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.drpLeaderIds.SelectedValueArray = Funs.RemoveDropDownListNull(this.drpLeaderIds.SelectedValueArray);
        }
    }
}