using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.TestRun.TestRunManage
{
    public partial class TailTermHandle : PageBase
    {
        /// 
        /// 主键
        /// 
        public string TailTermId
        {
            get { return (string)ViewState["TailTermId"]; }
            set { ViewState["TailTermId"] = value; }
        }
        /// 
        /// 问题图片是否可编辑
        /// 
        public int QuestionEditImg
        {
            get { return (int)ViewState["QuestionEditImg"]; }
            set { ViewState["QuestionEditImg"] = value; }
        }
        /// 
        /// 整改图片是否可编辑
        /// 
        public int RectifyEditImg
        {
            get { return (int)ViewState["RectifyEditImg"]; }
            set { ViewState["RectifyEditImg"] = value; }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.TailTermId = Request["TailTermId"];
                this.QuestionEditImg = -1;
                this.RectifyEditImg = 0;
                //数据绑定
                PageInit();
            }
        }
        /// 
        /// 绑定数据
        /// 
        public void PageInit()
        {
            var data = from tail in Funs.DB.TestRun_InspectTailTerm
                       join unit in Funs.DB.Base_Unit on tail.ConstructionUnit equals unit.UnitId
                       join inspuser in Funs.DB.Sys_User on tail.InspectUser equals inspuser.UserId
                       join handleuser in Funs.DB.Sys_User on tail.HandleUser equals handleuser.UserId
                       join termitem in Funs.DB.TestRun_SubInspectTermItem on tail.TermItemId equals termitem.TermItemId
                       where tail.TailTermId == this.TailTermId
                       select new
                       {
                           tail.ProjectName,
                           tail.TailTermCode,
                           unit.UnitName,
                           TermItemName = termitem.WorkInspectName,
                           tail.SubInspectId,
                           tail.QuestionDesc,
                           tail.RectifyOpinion,
                           tail.RectifyTime,
                           tail.InspectUser,
                           InspectUserName = inspuser.UserName,
                           tail.HandleUser,
                           HandleUserName = handleuser.UserName,
                           tail.AdjustCompleteTime
                       };
            if (data.Count() > 0)
            {
                var model = data.FirstOrDefault();
                //项目名称
                lblProjectName.Text = model.ProjectName;
                //巡检编号
                lblTailTermCode.Text = model.TailTermCode;
                //施工单位
                lblConstructionUnit.Text = model.UnitName;
                //检查项
                lblTermItemName.Text = model.TermItemName;
                //问题描述
                lblQuestionDesc.Text = model.QuestionDesc;
                //整改意见
                lblRectifyOpinion.Text = model.RectifyOpinion;
                //要求整改完成时间
                lblAdjustCompleteTime.Text = model.AdjustCompleteTime != null ? model.AdjustCompleteTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : string.Empty;
                //检查人
                lblInspectUser.Text = model.InspectUserName;
                //处理人
                lblApproveUser.Text = model.HandleUserName;
                hidApproveUserId.Text = model.HandleUser;
                //处理时间
                lblApproveTime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
            }
        }
        /// 
        /// 问题图片
        /// 
        protected void imgBtnQuestionFile_Click(object sender, EventArgs e)
        {
            PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", QuestionEditImg, this.TailTermId + "q", Const.InspectTailTerm)));
        }
        /// 
        /// 整改图片
        /// 
        protected void imgBtnRectifyFile_Click(object sender, EventArgs e)
        {
            PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", RectifyEditImg, this.TailTermId + "h", Const.InspectTailTerm)));
        }
        /// 
        /// 处理退回
        /// 
        protected void btnReturn_Click(object sender, EventArgs e)
        {
            var tailTerm = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId);
            if (tailTerm != null)
            {
                tailTerm.ApproveState = 2;
                var model = new TestRun_InspectTermApproveRecords();
                model.InspectTermId = Guid.NewGuid().ToString();
                model.ProjectId = this.CurrUser.LoginProjectId;
                model.TermItemId = tailTerm.TermItemId;
                model.TailTermId = this.TailTermId;
                model.ApproveOpinion = txtApproveOpinion.Text;
                model.ApproveTime = DateTime.Parse(lblApproveTime.Text);
                model.ApproveUser = hidApproveUserId.Text;
                //0:处理记录1:审核记录
                model.ApproveType = 0;
                //0:退回1:通过
                model.ApproveState = 0;
                model.AddUser = this.CurrUser.UserId;
                model.AddTime = DateTime.Now;
                Funs.DB.TestRun_InspectTermApproveRecords.InsertOnSubmit(model);
                Funs.DB.SubmitChanges();
                ShowNotify("退回成功!", MessageBoxIcon.Success);
                PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
            }
        }
        /// 
        /// 处理通过并提交审核
        /// 
        protected void btnPass_Click(object sender, EventArgs e)
        {
            var tailTerm = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId);
            if (tailTerm != null)
            {
                tailTerm.ApproveState = 4;
                var model = new TestRun_InspectTermApproveRecords();
                model.InspectTermId = Guid.NewGuid().ToString();
                model.ProjectId = this.CurrUser.LoginProjectId;
                model.TermItemId = tailTerm.TermItemId;
                model.TailTermId = this.TailTermId;
                model.ApproveOpinion = txtApproveOpinion.Text;
                model.ApproveTime = DateTime.Parse(lblApproveTime.Text);
                model.ApproveUser = hidApproveUserId.Text;
                //0:处理记录1:审核记录
                model.ApproveType = 0;
                //0:退回1:通过
                model.ApproveState = 1;
                model.AddUser = this.CurrUser.UserId;
                model.AddTime = DateTime.Now;
                Funs.DB.TestRun_InspectTermApproveRecords.InsertOnSubmit(model);
                Funs.DB.SubmitChanges();
                ShowNotify("处理成功!", MessageBoxIcon.Success);
                PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
            }
        }
        /// 
        /// 关闭
        /// 
        protected void WindowAtt_Close(object sender, WindowCloseEventArgs e)
        {
        }
    }
}