using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using Newtonsoft.Json.Linq;
namespace FineUIPro.Web.JDGL.WBS
{
    public partial class CostControlWeekDetailEdit : PageBase
    {
        /// 
        /// 控制项主键
        /// 
        public string Id
        {
            get
            {
                return (string)ViewState["Id"];
            }
            set
            {
                ViewState["Id"] = value;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.Id = Request.Params["Id"];
                Model.WBS_CostControl costControl = BLL.CostControlService.GetCostControlByCostControlId(this.Id);
                if (costControl != null)
                {
                    this.txtCostControlName.Text = costControl.CostControlName;
                }
                var list = BLL.CostControlDetailService.GetMonthCostControlDetailsByCostControlId(this.Id);
                this.Grid1.DataSource = list;
                this.Grid1.DataBind();
            }
        }
        #region 增加按钮事件
        /// 
        /// 增加按钮事件
        /// 
        /// 
        /// 
        protected void btnNew_Click(object sender, EventArgs e)
        {
            var list = GetDetails();
            Model.WBS_CostControlDetail detail = new Model.WBS_CostControlDetail();
            detail.CostControlDetailId = SQLHelper.GetNewID();
            list.Add(detail);
            Grid1.DataSource = list;
            Grid1.DataBind();
        }
        #endregion
        private List GetDetails()
        {
            List details = new List();
            foreach (JObject mergedRow in Grid1.GetMergedData())
            {
                JObject values = mergedRow.Value("values");
                int i = mergedRow.Value("index");
                Model.WBS_CostControlDetail detail = new Model.WBS_CostControlDetail();
                detail.CostControlDetailId = Grid1.Rows[i].RowID;
                detail.CostControlId = this.Id;
                detail.Months = Funs.GetNewDateTime(values.Value("Months") + "-01");
                detail.PlanNum = Funs.GetNewDecimal(values.Value("PlanNum"));
                details.Add(detail);
            }
            return details;
        }
        #region 行点击事件
        /// 
        /// Grid行点击事件
        /// 
        /// 
        /// 
        protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
        {
            string detailId = Grid1.DataKeys[e.RowIndex][0].ToString();
            var list = GetDetails();
            if (e.CommandName == "SetWeek")//设置周计划
            {
                PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("CostControlWeekItemDetailEdit.aspx?Id={0}", detailId, "修改 - ")));
            }
        }
        #endregion
    }
}