using BLL;
using NPOI.POIFS.Crypt.Dsig;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.DataVisualization.Charting;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.TestRun.DriverSub
{
    public partial class DriverSubContactEdit : PageBase
    {
        #region 加载
        /// 
        /// 页面加载
        /// 
        /// 
        /// 
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DriverSubPlanService.InitSubPlanDropDownList(drpSubPlanCode,this.CurrUser.LoginProjectId,true);
                DriverSubName.DataSource = DropListService.drpDriverSubNameList();
                DriverSubName.DataTextField = "Text";
                DriverSubName.DataValueField = "Value";
                DriverSubName.DataBind();
                string driverSubPlanId = Request.Params["DriverSubPlanId"];
                if (!string.IsNullOrEmpty(driverSubPlanId))
                {
                    drpSubPlanCode.SelectedValue= driverSubPlanId;
                    drpSubPlanCode_OnSelectedIndexChanged(null, null);
                }
            }
        }
        #endregion
        #region 附件上传
        /// 
        /// 附件上传
        /// 
        /// 
        /// 
        protected void btnAttach_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(this.hdId.Text))   //新增记录
            {
                this.hdId.Text = SQLHelper.GetNewID(typeof(Model.DriverSub_DriverSubContact));
            }
            PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/TestRun/DriverSub/DriverSubContact&menuId={1}", this.hdId.Text, BLL.Const.DriverSubContactMenuId)));
        }
        #endregion
        #region 保存
        /// 
        /// 保存按钮
        /// 
        /// 
        /// 
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(drpSubPlanCode.SelectedValue) || drpSubPlanCode.SelectedValue == Const._Null)
            {
                ShowNotify("请选择分包计划!", MessageBoxIcon.Warning);
                return;
            }
            DriverSubContactService.DeleteDriverSubContactByDriverSubPlanId(drpSubPlanCode.SelectedValue);
            GridSave(drpCatalystLoading.Values,"1");
            GridSave(drpOven.Values,"2");
            GridSave(drpChemicalCleaning.Values,"3");
            GridSave(drpDrivingTeam.Values,"4");
            ShowNotify("保存成功!", MessageBoxIcon.Success);
            PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
        }
        void GridSave(string[] DriverSubContractorsIdArray,string type )
        {
            string id = drpSubPlanCode.SelectedValue;
            foreach (var item in DriverSubContractorsIdArray)
            {
                Model.DriverSub_DriverSubContact newData = new Model.DriverSub_DriverSubContact();
                newData.DriverSubContactId = SQLHelper.GetNewID(typeof(Model.DriverSub_DriverSubContact));
                newData.ProjectId = this.CurrUser.LoginProjectId;
                newData.DriverSubPlanId = id;
                newData.DriverSubContractorsId = item;
                newData.SubcontractingType = type;
                BLL.DriverSubContactService.AddDriverSubContact(newData);
            }
        }
        #endregion
        void BindGrid(Grid grid, string type, string driverSubPlanId, string subUnitName)
        {
            //使用linq 查询DriverSub_DriverSubContact表 DriverSubPlanId下关联的分包经销商信息
            var q = from x in Funs.DB.DriverSub_DriverSubContractors
                where x.IsUse == true && x.SubcontractingType== type
                select x;
            if (!string.IsNullOrEmpty(subUnitName))
            {
                q = q.Where(x => x.SubUnitName.Contains(subUnitName));
            }
            int count = q.Count();
            q = q.Skip(grid.PageSize * grid.PageIndex).Take(grid.PageSize);
            grid.RecordCount= count;
            grid.DataSource = q; 
            grid.DataBind();
            
        }
        #region 加载表格
        protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
        {
            BindGrid(Grid1,"1", drpSubPlanCode.SelectedValue, ttbSearch1.Text);
        }
        protected void ttbSearch1_Trigger1Click(object sender, EventArgs e)
        {
            ttbSearch1.Text = String.Empty;
            ttbSearch1.ShowTrigger1 = false;
            BindGrid(Grid1, "1", drpSubPlanCode.SelectedValue, ttbSearch1.Text);
        }
        protected void ttbSearch1_Trigger2Click(object sender, EventArgs e)
        {
            ttbSearch1.ShowTrigger1 = true;
            BindGrid(Grid1, "1", drpSubPlanCode.SelectedValue, ttbSearch1.Text);
        }
        protected void Grid2_PageIndexChange(object sender, GridPageEventArgs e)
        {
            BindGrid(Grid2, "2", drpSubPlanCode.SelectedValue, ttbSearch2.Text);
        }
        protected void ttbSearch2_Trigger1Click(object sender, EventArgs e)
        {
            ttbSearch2.Text = String.Empty;
            ttbSearch2.ShowTrigger1 = false;
            BindGrid(Grid2, "2", drpSubPlanCode.SelectedValue, ttbSearch2.Text); 
        }
        protected void ttbSearch2_Trigger2Click(object sender, EventArgs e)
        {
            ttbSearch2.ShowTrigger1 = true;
            BindGrid(Grid2, "2", drpSubPlanCode.SelectedValue, ttbSearch2.Text);
        }
        protected void Grid3_PageIndexChange(object sender, GridPageEventArgs e)
        {
            BindGrid(Grid3, "3", drpSubPlanCode.SelectedValue, ttbSearch3.Text);
        }
        protected void ttbSearch3_Trigger1Click(object sender, EventArgs e)
        {
            ttbSearch3.Text = String.Empty;
            ttbSearch3.ShowTrigger1 = false;
            BindGrid(Grid3, "3", drpSubPlanCode.SelectedValue, ttbSearch3.Text);
            
        }
        protected void ttbSearch3_Trigger2Click(object sender, EventArgs e)
        {
            ttbSearch3.ShowTrigger1 = true;
            BindGrid(Grid3, "3", drpSubPlanCode.SelectedValue, ttbSearch3.Text);
           
        }
        protected void Grid4_PageIndexChange(object sender, GridPageEventArgs e)
        {
            BindGrid(Grid4, "4", drpSubPlanCode.SelectedValue, ttbSearch4.Text);
        }
        protected void ttbSearch4_Trigger1Click(object sender, EventArgs e)
        {
            ttbSearch4.Text = String.Empty;
            ttbSearch4.ShowTrigger1 = false;
            BindGrid(Grid4, "4", drpSubPlanCode.SelectedValue, ttbSearch4.Text);
        }
        protected void ttbSearch4_Trigger2Click(object sender, EventArgs e)
        {
            ttbSearch4.ShowTrigger1 = true;
            BindGrid(Grid4, "4", drpSubPlanCode.SelectedValue, ttbSearch4.Text);
        }
        #endregion
        #region 下拉列表事件
        protected void drpSubPlanCode_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(drpSubPlanCode.SelectedValue)|| drpSubPlanCode.SelectedValue==Const._Null)
            {
                drpCatalystLoading.Hidden = true;
                drpOven.Hidden = true;
                drpChemicalCleaning.Hidden = true;
                drpDrivingTeam.Hidden = true;
                DriverSubName.SelectedValueArray=null;
                return;
            }
            var model = BLL.DriverSubPlanService.GetDriverSubPlanById(drpSubPlanCode.SelectedValue);
            if (model!=null)
            {
                BindGrid(Grid1, "1", drpSubPlanCode.SelectedValue, ttbSearch1.Text);
                BindGrid(Grid2, "2", drpSubPlanCode.SelectedValue, ttbSearch2.Text);
                BindGrid(Grid3, "3", drpSubPlanCode.SelectedValue, ttbSearch3.Text);
                BindGrid(Grid4, "4", drpSubPlanCode.SelectedValue, ttbSearch4.Text);
                this.DriverSubName.SelectedValueArray = model.SubcontractingTypes.Split(',');
                 
                foreach (string item in DriverSubName.SelectedValueArray)
                {
                    if (item.Contains("1"))
                    {
                        drpCatalystLoading.Hidden = false;
                        drpCatalystLoading.Values = DriverSubContactService.GetDriverSubContactByDriverSubPlanId(drpSubPlanCode.SelectedValue)
                            .Where(x => x.SubcontractingType == "1").Select(x => x.DriverSubContractorsId).ToArray();
                    }
                    else if (item.Contains("2"))
                    {
                        drpOven.Hidden = false;
                        drpOven.Values = DriverSubContactService.GetDriverSubContactByDriverSubPlanId(drpSubPlanCode.SelectedValue)
                            .Where(x => x.SubcontractingType == "2").Select(x => x.DriverSubContractorsId).ToArray();
                    }
                    else if (item.Contains("3"))
                    {
                        drpChemicalCleaning.Hidden = false;
                        drpChemicalCleaning.Values = DriverSubContactService.GetDriverSubContactByDriverSubPlanId(drpSubPlanCode.SelectedValue)
                            .Where(x => x.SubcontractingType == "3").Select(x => x.DriverSubContractorsId).ToArray();
                    }
                    else if (item.Contains("4"))
                    {
                        drpDrivingTeam.Hidden= false;
                        drpDrivingTeam.Values = DriverSubContactService.GetDriverSubContactByDriverSubPlanId(drpSubPlanCode.SelectedValue)
                            .Where(x => x.SubcontractingType == "4").Select(x => x.DriverSubContractorsId).ToArray();
                    }
                     
                }
                
            }
        }
        #endregion
    }
}