using BLL;
using System;
using System.Linq;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.ZHGL.Information
{
    public partial class QuarterlyProjectQualityEdit : PageBase
    {
        #region 定义变量
        /// 
        /// 主键
        /// 
        public string QuarterlyProjectQualityId
        {
            get
            {
                return (string)ViewState["QuarterlyProjectQualityId"];
            }
            set
            {
                ViewState["QuarterlyProjectQualityId"] = value;
            }
        }
        #endregion
        #region 加载页面
        /// 
        /// 加载页面
        /// 
        /// 
        /// 
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.ddlUnitId.DataTextField = "UnitName";
                this.ddlUnitId.DataValueField = "UnitId";
                this.ddlUnitId.DataSource = BLL.UnitService.GetThisUnitDropDownList();
                this.ddlUnitId.DataBind();
                this.ddlYearId.DataTextField = "ConstText";
                ddlYearId.DataValueField = "ConstValue";
                ddlYearId.DataSource = BLL.ConstValue.drpConstItemList(ConstValue.Group_0008);
                ddlYearId.DataBind();
                this.ddlQuarter.DataTextField = "ConstText";
                ddlQuarter.DataValueField = "ConstValue";
                ddlQuarter.DataSource = BLL.ConstValue.drpConstItemList(ConstValue.Group_0011);
                ddlQuarter.DataBind();
              
                this.ddlUnitId.Readonly = true;
                string unitId = Request.Params["UnitId"];               
                string year = Request.QueryString["Year"];
                string quarter = Request.QueryString["Quarter"];
                this.QuarterlyProjectQualityId = Request.Params["QuarterlyProjectQualityId"];
                if (!string.IsNullOrEmpty(this.QuarterlyProjectQualityId))
                {
                    var quarterlyProjectQuality = BLL.QuarterlyProjectQualityService.GetQuarterlyProjectQualityById(this.QuarterlyProjectQualityId);
                    if (quarterlyProjectQuality != null)
                    {
                        this.btnCopy.Hidden = true;
                        if (quarterlyProjectQuality.UpState == BLL.Const.UpState_3)  //已上报
                        {
                            this.btnSave.Hidden = true;
                            this.btnUpdata.Hidden = true;
                        }
                        #region 赋值
                        if (!string.IsNullOrEmpty(quarterlyProjectQuality.UnitId))
                        {
                            this.ddlUnitId.SelectedValue = quarterlyProjectQuality.UnitId;
                            BLL.UserService.InitUserUnitIdDropDownList(this.ddlResponsiblePerson, this.ddlUnitId.SelectedValue, true);
                            BLL.UserService.InitUserUnitIdDropDownList(this.ddlCompileMan, this.ddlUnitId.SelectedValue, true);
                        }
                        if (quarterlyProjectQuality.Year.HasValue)
                        {
                            this.ddlYearId.SelectedValue = quarterlyProjectQuality.Year.ToString();
                        }
                        if (quarterlyProjectQuality.Quarter.HasValue)
                        {
                            this.ddlQuarter.SelectedValue = quarterlyProjectQuality.Quarter.ToString();
                        }
                        if (quarterlyProjectQuality.CompileDate != null)
                        {
                            this.txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", quarterlyProjectQuality.CompileDate);
                        }
                        if (!string.IsNullOrEmpty(quarterlyProjectQuality.ResponsiblePerson))
                        {
                            this.ddlResponsiblePerson.SelectedValue = quarterlyProjectQuality.ResponsiblePerson;
                        }
                        if (!string.IsNullOrEmpty(quarterlyProjectQuality.CompileMan))
                        {
                            this.ddlCompileMan.SelectedValue = quarterlyProjectQuality.CompileMan;
                        }
                        this.txtTel.Text = quarterlyProjectQuality.Tel;
                        this.txtQualityManagePersonNum.Text = quarterlyProjectQuality.QualityManagePersonNum.HasValue ? quarterlyProjectQuality.QualityManagePersonNum.ToString() : "";
                        this.txtAdvancedTitlePersonNum.Text = quarterlyProjectQuality.AdvancedTitlePersonNum.HasValue ? quarterlyProjectQuality.AdvancedTitlePersonNum.ToString() : "";
                        this.txtIntermediateTitlePersonNum.Text = quarterlyProjectQuality.IntermediateTitlePersonNum.HasValue ? quarterlyProjectQuality.IntermediateTitlePersonNum.ToString() : "";
                        this.txtBeImplementedProjectNum.Text = quarterlyProjectQuality.BeImplementedProjectNum.HasValue ? quarterlyProjectQuality.BeImplementedProjectNum.ToString() : "";
                        this.txtStartImplementedProjectNum.Text = quarterlyProjectQuality.StartImplementedProjectNum.HasValue ? quarterlyProjectQuality.StartImplementedProjectNum.ToString() : "";
                        this.txtAccumulativeStartImplemented.Text = quarterlyProjectQuality.AccumulativeStartImplemented.HasValue ? quarterlyProjectQuality.AccumulativeStartImplemented.ToString() : "";
                        this.txtCompleteProjectNum.Text = quarterlyProjectQuality.CompleteProjectNum.HasValue ? quarterlyProjectQuality.CompleteProjectNum.ToString() : "";
                        this.txtYearCompleteProjectNum.Text = quarterlyProjectQuality.YearCompleteProjectNum.HasValue ? quarterlyProjectQuality.YearCompleteProjectNum.ToString() : "";
                        this.txtQuarterTotal.Text = quarterlyProjectQuality.QuarterTotal.HasValue ? quarterlyProjectQuality.QuarterTotal.ToString() : "";
                        this.txtQuarterFirstPassNum.Text = quarterlyProjectQuality.QuarterFirstPassNum.HasValue ? quarterlyProjectQuality.QuarterFirstPassNum.ToString() : "";
                        this.txtQuarterFirstPassRate.Text = quarterlyProjectQuality.QuarterFirstPassRate.HasValue ? quarterlyProjectQuality.QuarterFirstPassRate.ToString() : "";
                        this.txtYearTotal.Text = quarterlyProjectQuality.YearTotal.HasValue ? quarterlyProjectQuality.YearTotal.ToString() : "";
                        this.txtYearFirstPassNum.Text = quarterlyProjectQuality.YearFirstPassNum.HasValue ? quarterlyProjectQuality.YearFirstPassNum.ToString() : "";
                        this.txtYearFirstPassRate.Text = quarterlyProjectQuality.YearFirstPassRate.HasValue ? quarterlyProjectQuality.YearFirstPassRate.ToString() : "";
                        this.txtQuaterCheckSuperviseNum.Text = quarterlyProjectQuality.QuaterCheckSuperviseNum.HasValue ? quarterlyProjectQuality.QuaterCheckSuperviseNum.ToString() : "";
                        this.txtQuaterCorrectiveNoticeNum.Text = quarterlyProjectQuality.QuaterCorrectiveNoticeNum.HasValue ? quarterlyProjectQuality.QuaterCorrectiveNoticeNum.ToString() : "";
                        this.txtQuaterQualityProblemNum.Text = quarterlyProjectQuality.QuaterQualityProblemNum.HasValue ? quarterlyProjectQuality.QuaterQualityProblemNum.ToString() : "";
                        this.txtQuaterClosedQualityProblemNum.Text = quarterlyProjectQuality.QuaterClosedQualityProblemNum.HasValue ? quarterlyProjectQuality.QuaterClosedQualityProblemNum.ToString() : "";
                        this.txtYearCheckSuperviseNum.Text = quarterlyProjectQuality.YearCheckSuperviseNum.HasValue ? quarterlyProjectQuality.YearCheckSuperviseNum.ToString() : "";
                        this.txtYearCorrectiveNoticeNum.Text = quarterlyProjectQuality.YearCorrectiveNoticeNum.HasValue ? quarterlyProjectQuality.YearCorrectiveNoticeNum.ToString() : "";
                        this.txtYearQualityProblemNum.Text = quarterlyProjectQuality.YearQualityProblemNum.HasValue ? quarterlyProjectQuality.YearQualityProblemNum.ToString() : "";
                        this.txtYearClosedQualityProblemNum.Text = quarterlyProjectQuality.YearClosedQualityProblemNum.HasValue ? quarterlyProjectQuality.YearClosedQualityProblemNum.ToString() : "";
                        this.txtQuaterQualityAccidentNum.Text = quarterlyProjectQuality.QuaterQualityAccidentNum.HasValue ? quarterlyProjectQuality.QuaterQualityAccidentNum.ToString() : "";
                        this.txtQuaterDirectEconomicLoss.Text = quarterlyProjectQuality.QuaterDirectEconomicLoss.HasValue ? quarterlyProjectQuality.QuaterDirectEconomicLoss.ToString() : "";
                        this.txtYearQualityAccidentNum.Text = quarterlyProjectQuality.YearQualityAccidentNum.HasValue ? quarterlyProjectQuality.YearQualityAccidentNum.ToString() : "";
                        this.txtYearDirectEconomicLoss.Text = quarterlyProjectQuality.YearDirectEconomicLoss.HasValue ? quarterlyProjectQuality.YearDirectEconomicLoss.ToString() : "";
                        #endregion
                    }
                }
                else
                {
                    this.btnCopy.Hidden = false;
                    this.ddlUnitId.SelectedValue = unitId;
                    BLL.UserService.InitUserUnitIdDropDownList(this.ddlResponsiblePerson, this.ddlUnitId.SelectedValue, true);
                    BLL.UserService.InitUserUnitIdDropDownList(this.ddlCompileMan, this.ddlUnitId.SelectedValue, true);
                    this.ddlYearId.SelectedValue = year;
                    this.ddlQuarter.SelectedValue = quarter;
                    this.txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
                    #region 获取项目上报数据
                    int? qualityManagePersonNum = 0;
                    int? advancedTitlePersonNum = 0;
                    int? intermediateTitlePersonNum = 0;
                    int? beImplementedProjectNum = 0;
                    int? startImplementedProjectNum = 0;
                    int? accumulativeStartImplemented = 0;
                    int? completeProjectNum = 0;
                    int? yearCompleteProjectNum = 0;
                    int? quarterTotal = 0;
                    int? quarterFirstPassNum = 0;
                    //decimal? quarterFirstPassRate = 0;
                    int? yearTotal = 0;
                    int? yearFirstPassNum = 0;
                    //decimal? yearFirstPassRate = 0;
                    int? quaterCheckSuperviseNum = 0;
                    int? quaterCorrectiveNoticeNum = 0;
                    int? quaterQualityProblemNum = 0;
                    int? quaterClosedQualityProblemNum = 0;
                    int? yearCheckSuperviseNum = 0;
                    int? yearCorrectiveNoticeNum = 0;
                    int? yearQualityProblemNum = 0;
                    int? yearClosedQualityProblemNum = 0;
                    int? quaterQualityAccidentNum = 0;
                    decimal? quaterDirectEconomicLoss = 0;
                    int? yearQualityAccidentNum = 0;
                    decimal? yearDirectEconomicLoss = 0;
                    int y = Convert.ToInt32(this.ddlYearId.SelectedValue);
                    int q = Convert.ToInt32(this.ddlQuarter.SelectedValue);
                    var projects = (from x in Funs.DB.Base_Project
                                    where (x.ProjectState == BLL.Const.ProjectState_1 || x.ProjectState == null)
                                    && x.ProjectAttribute == "GONGCHENG"
                                    && x.StartDate.Value.Year <= y
                                    select x).ToList();
                    foreach (var item in projects)
                    {
                        var report = Funs.DB.InformationProject_QuarterlyProjectQuality.FirstOrDefault(x => x.ProjectId == item.ProjectId && x.Year == y && x.Quarter == q);
                        if (report != null)
                        {
                            qualityManagePersonNum += report.QualityManagePersonNum;
                            advancedTitlePersonNum += report.AdvancedTitlePersonNum;
                            intermediateTitlePersonNum += report.IntermediateTitlePersonNum;
                            beImplementedProjectNum += report.BeImplementedProjectNum;
                            startImplementedProjectNum += report.StartImplementedProjectNum;
                            accumulativeStartImplemented += report.AccumulativeStartImplemented;
                            completeProjectNum += report.CompleteProjectNum;
                            yearCompleteProjectNum += report.YearCompleteProjectNum;
                            quarterTotal += report.QuarterTotal;
                            quarterFirstPassNum += report.QuarterFirstPassNum;
                            yearTotal += report.YearTotal;
                            yearFirstPassNum += report.YearFirstPassNum;
                            quaterCheckSuperviseNum += report.QuaterCheckSuperviseNum;
                            quaterCorrectiveNoticeNum += report.QuaterCorrectiveNoticeNum;
                            quaterQualityProblemNum += report.QuaterQualityProblemNum;
                            quaterClosedQualityProblemNum += report.QuaterClosedQualityProblemNum;
                            yearCheckSuperviseNum += report.YearCheckSuperviseNum;
                            yearCorrectiveNoticeNum += report.YearCorrectiveNoticeNum;
                            yearQualityProblemNum += report.YearQualityProblemNum;
                            yearClosedQualityProblemNum += report.YearClosedQualityProblemNum;
                            quaterQualityAccidentNum += report.QuaterQualityAccidentNum;
                            quaterDirectEconomicLoss += report.QuaterDirectEconomicLoss;
                            yearQualityAccidentNum += report.YearQualityAccidentNum;
                            yearDirectEconomicLoss += report.YearDirectEconomicLoss;
                        }
                    }
                    this.txtQualityManagePersonNum.Text = qualityManagePersonNum.ToString();
                    this.txtAdvancedTitlePersonNum.Text = advancedTitlePersonNum.ToString();
                    this.txtIntermediateTitlePersonNum.Text = intermediateTitlePersonNum.ToString();
                    this.txtBeImplementedProjectNum.Text = beImplementedProjectNum.ToString();
                    this.txtStartImplementedProjectNum.Text = startImplementedProjectNum.ToString();
                    this.txtAccumulativeStartImplemented.Text = accumulativeStartImplemented.ToString();
                    this.txtCompleteProjectNum.Text = completeProjectNum.ToString();
                    this.txtYearCompleteProjectNum.Text = yearCompleteProjectNum.ToString();
                    this.txtQuarterTotal.Text = quarterTotal.ToString();
                    this.txtQuarterFirstPassNum.Text = quarterFirstPassNum.ToString();
                    if (quarterTotal > 0)
                    {
                        this.txtQuarterFirstPassRate.Text = ((quarterFirstPassNum / Convert.ToDecimal(quarterTotal)) * 100).ToString();
                    }
                    this.txtYearTotal.Text = yearTotal.ToString();
                    this.txtYearFirstPassNum.Text = yearFirstPassNum.ToString();
                    if (yearTotal > 0)
                    {
                        this.txtYearFirstPassRate.Text = ((yearFirstPassNum / Convert.ToDecimal(yearTotal)) * 100).ToString();
                    }
                    this.txtQuaterCheckSuperviseNum.Text = quaterCheckSuperviseNum.ToString();
                    this.txtQuaterCorrectiveNoticeNum.Text = quaterCorrectiveNoticeNum.ToString();
                    this.txtQuaterQualityProblemNum.Text = quaterQualityProblemNum.ToString();
                    this.txtQuaterClosedQualityProblemNum.Text = quaterClosedQualityProblemNum.ToString();
                    this.txtYearCheckSuperviseNum.Text = yearCheckSuperviseNum.ToString();
                    this.txtYearCorrectiveNoticeNum.Text = yearCorrectiveNoticeNum.ToString();
                    this.txtYearQualityProblemNum.Text = yearQualityProblemNum.ToString();
                    this.txtYearClosedQualityProblemNum.Text = yearClosedQualityProblemNum.ToString();
                    this.txtQuaterQualityAccidentNum.Text = quaterQualityAccidentNum.ToString();
                    this.txtQuaterDirectEconomicLoss.Text = quaterDirectEconomicLoss.ToString();
                    this.txtYearQualityAccidentNum.Text = yearQualityAccidentNum.ToString();
                    this.txtYearDirectEconomicLoss.Text = yearDirectEconomicLoss.ToString();
                    #endregion
                }
            }
        }
        #endregion
        #region 保存数据
        private void Save(string type)
        {
            Model.Information_QuarterlyProjectQuality quarterlyProjectQuality = new Model.Information_QuarterlyProjectQuality
            {
                QualityManagePersonNum = Funs.GetNewInt(this.txtQualityManagePersonNum.Text.Trim()),
                AdvancedTitlePersonNum = Funs.GetNewInt(this.txtAdvancedTitlePersonNum.Text.Trim()),
                IntermediateTitlePersonNum = Funs.GetNewInt(this.txtIntermediateTitlePersonNum.Text.Trim()),
                BeImplementedProjectNum = Funs.GetNewInt(this.txtBeImplementedProjectNum.Text.Trim()),
                StartImplementedProjectNum = Funs.GetNewInt(this.txtStartImplementedProjectNum.Text.Trim()),
                AccumulativeStartImplemented = Funs.GetNewInt(this.txtAccumulativeStartImplemented.Text.Trim()),
                CompleteProjectNum = Funs.GetNewInt(this.txtCompleteProjectNum.Text.Trim()),
                YearCompleteProjectNum = Funs.GetNewInt(this.txtYearCompleteProjectNum.Text.Trim()),
                QuarterTotal = Funs.GetNewInt(this.txtQuarterTotal.Text.Trim()),
                QuarterFirstPassNum = Funs.GetNewInt(this.txtQuarterFirstPassNum.Text.Trim()),
                QuarterFirstPassRate = Funs.GetNewDecimal(this.txtQuarterFirstPassRate.Text.Trim()),
                YearTotal = Funs.GetNewInt(this.txtYearTotal.Text.Trim()),
                YearFirstPassNum = Funs.GetNewInt(this.txtYearFirstPassNum.Text.Trim()),
                YearFirstPassRate = Funs.GetNewDecimal(this.txtYearFirstPassRate.Text.Trim()),
                QuaterCheckSuperviseNum = Funs.GetNewInt(this.txtQuaterCheckSuperviseNum.Text.Trim()),
                QuaterCorrectiveNoticeNum = Funs.GetNewInt(this.txtQuaterCorrectiveNoticeNum.Text.Trim()),
                QuaterQualityProblemNum = Funs.GetNewInt(this.txtQuaterQualityProblemNum.Text.Trim()),
                QuaterClosedQualityProblemNum = Funs.GetNewInt(this.txtQuaterClosedQualityProblemNum.Text.Trim()),
                YearCheckSuperviseNum = Funs.GetNewInt(this.txtYearCheckSuperviseNum.Text.Trim()),
                YearCorrectiveNoticeNum = Funs.GetNewInt(this.txtYearCorrectiveNoticeNum.Text.Trim()),
                YearQualityProblemNum = Funs.GetNewInt(this.txtYearQualityProblemNum.Text.Trim()),
                YearClosedQualityProblemNum = Funs.GetNewInt(this.txtYearClosedQualityProblemNum.Text.Trim()),
                QuaterQualityAccidentNum = Funs.GetNewInt(this.txtQuaterQualityAccidentNum.Text.Trim()),
                QuaterDirectEconomicLoss = Funs.GetNewDecimal(this.txtQuaterDirectEconomicLoss.Text.Trim()),
                YearQualityAccidentNum = Funs.GetNewInt(this.txtYearQualityAccidentNum.Text.Trim()),
                YearDirectEconomicLoss = Funs.GetNewInt(this.txtYearDirectEconomicLoss.Text.Trim()),
                Tel = this.txtTel.Text.Trim()
            };
            if (this.ddlUnitId.SelectedValue!=BLL.Const._Null)
            {
                quarterlyProjectQuality.UnitId = this.ddlUnitId.SelectedValue;
            }
            if (this.ddlYearId.SelectedValue != BLL.Const._Null)
            {
                quarterlyProjectQuality.Year = Funs.GetNewIntOrZero(this.ddlYearId.SelectedValue);
            }
            if (this.ddlQuarter.SelectedValue != BLL.Const._Null)
            {
                quarterlyProjectQuality.Quarter = Funs.GetNewIntOrZero(this.ddlQuarter.SelectedValue);
            }
            if (this.ddlResponsiblePerson.SelectedValue != BLL.Const._Null)
            {
                quarterlyProjectQuality.ResponsiblePerson = this.ddlResponsiblePerson.SelectedValue;
            }
            if (this.ddlCompileMan.SelectedValue != BLL.Const._Null)
            {
                quarterlyProjectQuality.CompileMan = this.ddlCompileMan.SelectedValue;
            }
            quarterlyProjectQuality.CompileDate = Funs.GetNewDateTime(this.txtCompileDate.Text.Trim());
            if (string.IsNullOrEmpty(this.QuarterlyProjectQualityId))
            {
                var s = BLL.QuarterlyProjectQualityService.GetQuarterlyProjectQualityByUnitIdAndYearAndQuarter(this.ddlUnitId.SelectedValue, Funs.GetNewIntOrZero(this.ddlYearId.SelectedValue),Funs.GetNewIntOrZero(this.ddlQuarter.SelectedValue));
                if (s != null)
                {
                    ShowNotify("该单位的该季度工程项目质量信息表已经存在,不能重复编制!", MessageBoxIcon.Warning);
                    return;
                }
                else
                {
                    this.QuarterlyProjectQualityId = SQLHelper.GetNewID(typeof(Model.Information_QuarterlyProjectQuality));
                    quarterlyProjectQuality.QuarterlyProjectQualityId = this.QuarterlyProjectQualityId;
                    quarterlyProjectQuality.UpState = BLL.Const.UpState_2;
                    BLL.QuarterlyProjectQualityService.AddQuarterlyProjectQuality(quarterlyProjectQuality);
                    BLL.LogService.AddSys_Log(this.CurrUser, this.ddlYearId.SelectedText, quarterlyProjectQuality.QuarterlyProjectQualityId, BLL.Const.QuarterlyProjectQualityMenuId, BLL.Const.BtnAdd);
                }
            }
            else
            {
                quarterlyProjectQuality.QuarterlyProjectQualityId = this.QuarterlyProjectQualityId;
                quarterlyProjectQuality.UpState = BLL.Const.UpState_2;
                BLL.QuarterlyProjectQualityService.UpdateQuarterlyProjectQuality(quarterlyProjectQuality);
                BLL.LogService.AddSys_Log(this.CurrUser, this.ddlYearId.SelectedText, quarterlyProjectQuality.QuarterlyProjectQualityId, BLL.Const.QuarterlyProjectQualityMenuId, BLL.Const.BtnModify);
            }
            if (type == "updata")     //保存并上报
            {
                if (quarterlyProjectQuality.UpState == BLL.Const.UpState_2)
                {
                    string code = CNCECHSSEWebService.UpQuarterlyProjectQuality(quarterlyProjectQuality.QuarterlyProjectQualityId, this.CurrUser);
                    if (code == "1")
                    {
                        ShowNotify("同步成功!", MessageBoxIcon.Success);
                        PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
                        return;
                    }
                    else
                    {
                        Alert.ShowInParent("同步异常,请退出后重试!", MessageBoxIcon.Error);
                    }
                }
                else
                {
                    ShowNotify("当前单据状态不能同步!", MessageBoxIcon.Warning);
                    return;
                }
            }
            PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
        }
        /// 
        /// 保存按钮
        /// 
        /// 
        /// 
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (this.ddlUnitId.SelectedValue==BLL.Const._Null)
            {
                Alert.ShowInTop("请选择单位", MessageBoxIcon.Warning);
                return;
            }
            if (this.ddlYearId.SelectedValue==BLL.Const._Null)
            {
                Alert.ShowInTop("请选择年度", MessageBoxIcon.Warning);
                return;
            }
            if (this.ddlQuarter.SelectedValue == BLL.Const._Null)
            {
                Alert.ShowInTop("请选择季度", MessageBoxIcon.Warning);
                return;
            }
            Save("add");
        }
        protected void btnUpdata_Click(object sender, EventArgs e)
        {
            if (this.ddlUnitId.SelectedValue == BLL.Const._Null)
            {
                Alert.ShowInTop("请选择单位", MessageBoxIcon.Warning);
                return;
            }
            if (this.ddlYearId.SelectedValue == BLL.Const._Null)
            {
                Alert.ShowInTop("请选择年度", MessageBoxIcon.Warning);
                return;
            }
            if (this.ddlQuarter.SelectedValue == BLL.Const._Null)
            {
                Alert.ShowInTop("请选择季度", MessageBoxIcon.Warning);
                return;
            }
            Save("updata");
        }
        #endregion
        /// 
        /// 本季度完成一次合格率
        /// 
        /// 
        /// 
        protected void txtQuarterTotal_TextChanged(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(this.txtQuarterTotal.Text.Trim()) && !string.IsNullOrEmpty(txtQuarterFirstPassNum.Text.Trim()))
            {
                txtQuarterFirstPassRate.Text = (Funs.GetNewDecimalOrZero(txtQuarterFirstPassNum.Text.Trim()) / Funs.GetNewDecimalOrZero(this.txtQuarterTotal.Text.Trim()) * 100).ToString();
            }
            else
            {
                this.txtQuarterFirstPassRate.Text = string.Empty;
            }
        }
        /// 
        /// 本年度完成一次合格率
        /// 
        /// 
        /// 
        protected void txtYearTotal_TextChanged(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(this.txtYearTotal.Text.Trim()) && !string.IsNullOrEmpty(this.txtYearFirstPassNum.Text.Trim()))
            {
                this.txtYearFirstPassRate.Text = (Funs.GetNewDecimalOrZero(this.txtYearFirstPassNum.Text.Trim()) / Funs.GetNewDecimalOrZero(this.txtYearTotal.Text.Trim()) * 100).ToString();
            }
        }
        #region 复制上个季度数据
        /// 
        /// 复制上个季度的数据
        /// 
        /// 
        /// 
        protected void btnCopy_Click(object sender, EventArgs e)
        {
            int lastYear = 0, lastQuarter = 0;
            int year = Convert.ToInt32(this.ddlYearId.SelectedValue);
            int quarter = Convert.ToInt32(this.ddlQuarter.SelectedValue);
            if (quarter == 1)
            {
                lastYear = year - 1;
                lastQuarter = 4;
            }
            else
            {
                lastYear = year;
                lastQuarter = quarter - 1;
            }
            Model.Information_QuarterlyProjectQuality report = BLL.QuarterlyProjectQualityService.GetQuarterlyProjectQualityByUnitIdAndYearAndQuarter(this.ddlUnitId.SelectedValue, lastYear, lastQuarter);
            if (report != null)
            {
                Model.Information_QuarterlyProjectQuality newReport = new Model.Information_QuarterlyProjectQuality();
                this.QuarterlyProjectQualityId = SQLHelper.GetNewID(typeof(Model.Information_QuarterlyProjectQuality));
                newReport.QuarterlyProjectQualityId = this.QuarterlyProjectQualityId;
                newReport.UnitId = this.ddlUnitId.SelectedValue;
                newReport.Year = Funs.GetNewIntOrZero(this.ddlYearId.SelectedValue);
                newReport.Quarter = Funs.GetNewIntOrZero(this.ddlQuarter.SelectedValue);
                newReport.QualityManagePersonNum = report.QualityManagePersonNum;
                newReport.AdvancedTitlePersonNum = report.AdvancedTitlePersonNum;
                newReport.IntermediateTitlePersonNum = report.IntermediateTitlePersonNum;
                newReport.BeImplementedProjectNum = report.BeImplementedProjectNum;
                newReport.StartImplementedProjectNum = report.StartImplementedProjectNum;
                newReport.AccumulativeStartImplemented = report.AccumulativeStartImplemented;
                newReport.CompleteProjectNum = report.CompleteProjectNum;
                newReport.YearCompleteProjectNum = report.YearCompleteProjectNum;
                newReport.QuarterTotal = report.QuarterTotal;
                newReport.QuarterFirstPassNum = report.QuarterFirstPassNum;
                newReport.QuarterFirstPassRate = report.QuarterFirstPassRate;
                newReport.YearTotal = report.YearTotal;
                newReport.YearFirstPassNum = report.YearFirstPassNum;
                newReport.YearFirstPassRate = report.YearFirstPassRate;
                newReport.QuaterCheckSuperviseNum = report.QuaterCheckSuperviseNum;
                newReport.QuaterCorrectiveNoticeNum = report.QuaterCorrectiveNoticeNum;
                newReport.QuaterQualityProblemNum = report.QuaterQualityProblemNum;
                newReport.QuaterClosedQualityProblemNum = report.QuaterClosedQualityProblemNum;
                newReport.YearCheckSuperviseNum = report.YearCheckSuperviseNum;
                newReport.YearCorrectiveNoticeNum = report.YearCorrectiveNoticeNum;
                newReport.YearQualityProblemNum = report.YearQualityProblemNum;
                newReport.YearClosedQualityProblemNum = report.YearClosedQualityProblemNum;
                newReport.QuaterQualityAccidentNum = report.QuaterQualityAccidentNum;
                newReport.QuaterDirectEconomicLoss = report.QuaterDirectEconomicLoss;
                newReport.YearQualityAccidentNum = report.YearQualityAccidentNum;
                newReport.YearDirectEconomicLoss = report.YearDirectEconomicLoss;
                newReport.ResponsiblePerson = report.ResponsiblePerson;
                newReport.Tel = report.Tel;
                newReport.CompileMan = this.CurrUser.UserId;
                newReport.CompileDate = DateTime.Now;
                newReport.UpState = BLL.Const.UpState_2;
                BLL.QuarterlyProjectQualityService.AddQuarterlyProjectQuality(newReport);
                GetValues(newReport.QuarterlyProjectQualityId);
            }
        }
        /// 
        /// 赋值
        ///  
        private void GetValues(string quarterlyProjectQualityId)
        {
            var quarterlyProjectQuality = BLL.QuarterlyProjectQualityService.GetQuarterlyProjectQualityById(quarterlyProjectQualityId);
            if (quarterlyProjectQuality != null)
            {
                this.txtTel.Text = quarterlyProjectQuality.Tel;
                this.txtQualityManagePersonNum.Text = quarterlyProjectQuality.QualityManagePersonNum.HasValue ? quarterlyProjectQuality.QualityManagePersonNum.ToString() : "";
                this.txtAdvancedTitlePersonNum.Text = quarterlyProjectQuality.AdvancedTitlePersonNum.HasValue ? quarterlyProjectQuality.AdvancedTitlePersonNum.ToString() : "";
                this.txtIntermediateTitlePersonNum.Text = quarterlyProjectQuality.IntermediateTitlePersonNum.HasValue ? quarterlyProjectQuality.IntermediateTitlePersonNum.ToString() : "";
                this.txtBeImplementedProjectNum.Text = quarterlyProjectQuality.BeImplementedProjectNum.HasValue ? quarterlyProjectQuality.BeImplementedProjectNum.ToString() : "";
                this.txtStartImplementedProjectNum.Text = quarterlyProjectQuality.StartImplementedProjectNum.HasValue ? quarterlyProjectQuality.StartImplementedProjectNum.ToString() : "";
                this.txtAccumulativeStartImplemented.Text = quarterlyProjectQuality.AccumulativeStartImplemented.HasValue ? quarterlyProjectQuality.AccumulativeStartImplemented.ToString() : "";
                this.txtCompleteProjectNum.Text = quarterlyProjectQuality.CompleteProjectNum.HasValue ? quarterlyProjectQuality.CompleteProjectNum.ToString() : "";
                this.txtYearCompleteProjectNum.Text = quarterlyProjectQuality.YearCompleteProjectNum.HasValue ? quarterlyProjectQuality.YearCompleteProjectNum.ToString() : "";
                this.txtQuarterTotal.Text = quarterlyProjectQuality.QuarterTotal.HasValue ? quarterlyProjectQuality.QuarterTotal.ToString() : "";
                this.txtQuarterFirstPassNum.Text = quarterlyProjectQuality.QuarterFirstPassNum.HasValue ? quarterlyProjectQuality.QuarterFirstPassNum.ToString() : "";
                this.txtQuarterFirstPassRate.Text = quarterlyProjectQuality.QuarterFirstPassRate.HasValue ? quarterlyProjectQuality.QuarterFirstPassRate.ToString() : "";
                this.txtYearTotal.Text = quarterlyProjectQuality.YearTotal.HasValue ? quarterlyProjectQuality.YearTotal.ToString() : "";
                this.txtYearFirstPassNum.Text = quarterlyProjectQuality.YearFirstPassNum.HasValue ? quarterlyProjectQuality.YearFirstPassNum.ToString() : "";
                this.txtYearFirstPassRate.Text = quarterlyProjectQuality.YearFirstPassRate.HasValue ? quarterlyProjectQuality.YearFirstPassRate.ToString() : "";
                this.txtQuaterCheckSuperviseNum.Text = quarterlyProjectQuality.QuaterCheckSuperviseNum.HasValue ? quarterlyProjectQuality.QuaterCheckSuperviseNum.ToString() : "";
                this.txtQuaterCorrectiveNoticeNum.Text = quarterlyProjectQuality.QuaterCorrectiveNoticeNum.HasValue ? quarterlyProjectQuality.QuaterCorrectiveNoticeNum.ToString() : "";
                this.txtQuaterQualityProblemNum.Text = quarterlyProjectQuality.QuaterQualityProblemNum.HasValue ? quarterlyProjectQuality.QuaterQualityProblemNum.ToString() : "";
                this.txtQuaterClosedQualityProblemNum.Text = quarterlyProjectQuality.QuaterClosedQualityProblemNum.HasValue ? quarterlyProjectQuality.QuaterClosedQualityProblemNum.ToString() : "";
                this.txtYearCheckSuperviseNum.Text = quarterlyProjectQuality.YearCheckSuperviseNum.HasValue ? quarterlyProjectQuality.YearCheckSuperviseNum.ToString() : "";
                this.txtYearCorrectiveNoticeNum.Text = quarterlyProjectQuality.YearCorrectiveNoticeNum.HasValue ? quarterlyProjectQuality.YearCorrectiveNoticeNum.ToString() : "";
                this.txtYearQualityProblemNum.Text = quarterlyProjectQuality.YearQualityProblemNum.HasValue ? quarterlyProjectQuality.YearQualityProblemNum.ToString() : "";
                this.txtYearClosedQualityProblemNum.Text = quarterlyProjectQuality.YearClosedQualityProblemNum.HasValue ? quarterlyProjectQuality.YearClosedQualityProblemNum.ToString() : "";
                this.txtQuaterQualityAccidentNum.Text = quarterlyProjectQuality.QuaterQualityAccidentNum.HasValue ? quarterlyProjectQuality.QuaterQualityAccidentNum.ToString() : "";
                this.txtQuaterDirectEconomicLoss.Text = quarterlyProjectQuality.QuaterDirectEconomicLoss.HasValue ? quarterlyProjectQuality.QuaterDirectEconomicLoss.ToString() : "";
                this.txtYearQualityAccidentNum.Text = quarterlyProjectQuality.YearQualityAccidentNum.HasValue ? quarterlyProjectQuality.YearQualityAccidentNum.ToString() : "";
                this.txtYearDirectEconomicLoss.Text = quarterlyProjectQuality.YearDirectEconomicLoss.HasValue ? quarterlyProjectQuality.YearDirectEconomicLoss.ToString() : "";
            }
        }
        #endregion
    }
}