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.common
{
    public partial class mainMenu_HJGL2 : PageBase
    {
        public Model.CQMSData_CQMS cQMSData_CQMS;
        public Model.HJGLData_HJGL hJGLData_HJGL;
        public string finishRate;

        public string pie;
        public string dataaq1;
        public string indicator;
        public string KeyProcessOKRate;
        public string SpecialProcessOKRate;
        public string ConcealedWorksOKRate;
        public string UnitProjectOnesOKRate;
        public string MaterialInRecheckOKRate;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                cQMSData_CQMS = Funs.DB.CQMSData_CQMS.OrderByDescending(x => x.ReportDate).FirstOrDefault();
                if (cQMSData_CQMS == null)
                {
                    cQMSData_CQMS = new Model.CQMSData_CQMS();
                }

                hJGLData_HJGL = Funs.DB.HJGLData_HJGL.OrderByDescending(x => x.ReportDate).FirstOrDefault();
                if (hJGLData_HJGL == null)
                {
                    hJGLData_HJGL = new Model.HJGLData_HJGL();
                }


                if (cQMSData_CQMS.ProblemNum.HasValue && cQMSData_CQMS.ProblemCompletedNum.HasValue)
                {
                    finishRate = String.Format("{0:N2}", 1.0 * cQMSData_CQMS.ProblemCompletedNum.Value / cQMSData_CQMS.ProblemNum.Value);

                }
                else
                {
                    finishRate = "0";
                }

                if (cQMSData_CQMS.KeyProcessNum.HasValue && cQMSData_CQMS.KeyProcessOKNum.HasValue)
                {
                    KeyProcessOKRate = String.Format("{0:N2}", 1.0 * cQMSData_CQMS.KeyProcessOKNum.Value / cQMSData_CQMS.KeyProcessNum.Value);

                }
                else
                {
                    KeyProcessOKRate = "0";
                }
                if (cQMSData_CQMS.SpecialProcessNum.HasValue && cQMSData_CQMS.SpecialProcessOKNum.HasValue)
                {
                    SpecialProcessOKRate = String.Format("{0:N2}", 1.0 * cQMSData_CQMS.SpecialProcessOKNum.Value / cQMSData_CQMS.SpecialProcessNum.Value);

                }
                else
                {
                    SpecialProcessOKRate = "0";
                }
                if (cQMSData_CQMS.ConcealedWorksNum.HasValue && cQMSData_CQMS.ConcealedWorksOKNum.HasValue)
                {
                    ConcealedWorksOKRate = String.Format("{0:N2}", 1.0 * cQMSData_CQMS.ConcealedWorksOKNum.Value / cQMSData_CQMS.ConcealedWorksNum.Value);

                }
                else
                {
                    ConcealedWorksOKRate = "0";
                }
                if (cQMSData_CQMS.UnitProjectOnesOKNum.HasValue && cQMSData_CQMS.UnitProjectOnesNum.HasValue)
                {
                    UnitProjectOnesOKRate = String.Format("{0:N2}", 1.0 * cQMSData_CQMS.UnitProjectOnesOKNum.Value / cQMSData_CQMS.UnitProjectOnesNum.Value);

                }
                else
                {
                    UnitProjectOnesOKRate = "0";
                }
                if (cQMSData_CQMS.MaterialInRecheckNum.HasValue && cQMSData_CQMS.MaterialInRecheckNum.HasValue)
                {
                    MaterialInRecheckOKRate = String.Format("{0:N2}", 1.0 * cQMSData_CQMS.MaterialInRecheckOKNum.Value / cQMSData_CQMS.MaterialInRecheckNum.Value);

                }
                else
                {
                    MaterialInRecheckOKRate = "0";
                }
                var reportDate = Funs.DB.HJGLData_Defect.Max(x => x.ReportDate);
                if (reportDate.HasValue)
                {
                    var details = Funs.DB.HJGLData_Defect.Where(x => x.ReportDate == reportDate.Value).ToList();

                    if (details != null && details.Count > 0)
                    {
                        int maxNum = 0;
                        foreach (var d in details)
                        {
                            if (d.DefectNum.HasValue)
                            {
                                maxNum = maxNum > d.DefectNum.Value ? maxNum : d.DefectNum.Value;
                            }

                        }
                        foreach (var d in details)
                        {
                            pie += "{ name: '" + d.DefectName + "', value:" + d.DefectNum + "},";
                            dataaq1 += d.DefectNum + ",";
                            indicator += "{ name: '" + d.DefectName + "', max:" + maxNum + "},";
                        }
                        pie = pie.TrimEnd(',');
                        dataaq1 = dataaq1.TrimEnd(',');
                        indicator = indicator.TrimEnd('\'').TrimEnd(',');
                    }
                }
            }
        }

        public string showData(int? value, string format)
        {
            if (value.HasValue)
            {
                return value.Value.ToString();
            }
            else
            {
                return format;
            }
        }
    }
}