using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using BLL;
using Newtonsoft.Json.Linq;
namespace FineUIPro.Web.HJGL.MaterialManage
{
    public partial class ElectrodeBakeRecordEdit : PageBase
    {
        #region 定义项
        /// 
        /// 主键
        /// 
        public string ElectrodeID
        {
            get
            {
                return (string)ViewState["ElectrodeID"];
            }
            set
            {
                ViewState["ElectrodeID"] = value;
            }
        }
        private bool AppendToEnd = false;
        #endregion
        #region 加载页面
        /// 
        /// 加载页面
        /// 
        /// 
        /// 
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.ElectrodeID = Request.Params["ElectrodeID"];
                var project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
                if (project != null)
                {
                    this.lblProjectName.Text = project.ProjectName;
                }
                if (!string.IsNullOrEmpty(this.ElectrodeID))
                {
                    var electrode = BLL.HJGL_ElectrodeBakeService.GetElecrodeBakeByElectrodeId(this.ElectrodeID);
                    if (electrode != null)
                    {
                        this.txtEletrodeCode.Text = electrode.ElectrodeCode;
                        this.txtElectrodeDate.Text = string.Format("{0:yyyy-MM-dd}", electrode.ElectrodeDate);
                        this.txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", electrode.CompileDate);
                    }
                }
                else
                {
                    this.txtElectrodeDate.Text = string.Format("{0:yyyy-MM-dd}", System.DateTime.Now);
                    this.txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", System.DateTime.Now);
                }
                // 删除选中单元格的客户端脚本
                string deleteScript = GetDeleteScript();
                // 新增数据初始值
                JObject defaultObj = new JObject();
                defaultObj.Add("ElectrodeModel", "");
                defaultObj.Add("CardCode", "");
                defaultObj.Add("BatchCode", "");
                defaultObj.Add("InLibCode", "");
                defaultObj.Add("Specifications", "");
                defaultObj.Add("ElectrodeCount", "");
                defaultObj.Add("OvenElectricHours", "");
                defaultObj.Add("OvenElectricMinute", "");
                defaultObj.Add("OvenElectricTemperature", "");
                defaultObj.Add("ConstantTemperature", "");
                defaultObj.Add("ConstantStartHours", "");
                defaultObj.Add("ConstantStartMinute", "");
                defaultObj.Add("ConstantEndHours", "");
                defaultObj.Add("ConstantEndMinute", "");
                defaultObj.Add("MoveInBoxHours", "");
                defaultObj.Add("MoveInBoxMinute", "");
                defaultObj.Add("MoveInTemperature", "");
                defaultObj.Add("BakeNumber", "");
                defaultObj.Add("BakeHead", this.CurrUser.UserName);
                defaultObj.Add("Delete", String.Format("
", deleteScript, IconHelper.GetResolvedIconUrl(Icon.Delete)));
                // 在第一行新增一条数据
                btnNew.OnClientClick = Grid1.GetAddNewRecordReference(defaultObj, AppendToEnd);
                // 删除选中行按钮
                btnDelete.OnClientClick = Grid1.GetNoSelectionAlertReference("请至少选择一项!") + deleteScript;
                // 绑定表格
                this.BindGrid();
            }
        }
        #endregion
        #region 数据绑定
        /// 
        /// 数据绑定
        /// 
        private void BindGrid()
        {
            string strSql = @"SELECT ElectrodeItemID,ElectrodeID,CardCode,BatchCode,InLibCode,Specifications,ElectrodeCount,OvenElectricHours,OvenElectricMinute ,OvenElectricTemperature,"
                + @" ConstantTemperature,ConstantStartHours,ConstantStartMinute,ConstantEndHours,ConstantEndMinute,MoveInBoxHours,MoveInBoxMinute,MoveInTemperature,BakeNumber,BakeHead,ElectrodeModel"
                + @" FROM HJGL_ElectrodeBakeItem"
                + @" WHERE ElectrodeID=@ElectrodeID";
            SqlParameter[] parameter = new SqlParameter[]
                    {
                        new SqlParameter("@ElectrodeID",this.ElectrodeID),
                    };
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
            Grid1.DataSource = tb;
            Grid1.DataBind();
        }
        #endregion
        /// 
        /// 
        /// 
        /// 
        /// 
        protected void Grid1_PreDataBound(object sender, EventArgs e)
        {
            // 设置LinkButtonField的点击客户端事件
            LinkButtonField deleteField = Grid1.FindColumn("Delete") as LinkButtonField;
            deleteField.OnClientClick = GetDeleteScript();
        }
        /// 
        /// 
        /// 
        /// 
        private string GetDeleteScript()
        {
            if (!CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_ElectrodeBakeMenuId, Const.BtnDelete))
            {
                ShowNotify("您没有这个权限,请与管理员联系!");
                return null;
            }
            else
            {
                return Confirm.GetShowReference("删除选中行?", String.Empty, MessageBoxIcon.Question, Grid1.GetDeleteSelectedRowsReference(), String.Empty);
            }
        }
        #region 排序
        /// 
        /// 排序
        /// 
        /// 
        /// 
        protected void Grid1_Sort(object sender, GridSortEventArgs e)
        {
            BindGrid();
        }
        #endregion
        /// 
        /// 
        /// 
        /// 
        /// 
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (!CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_ElectrodeBakeMenuId, Const.BtnSave))
            {
                ShowNotify("您没有这个权限,请与管理员联系!");
                return;
            }
            Model.HJGL_ElectrodeBake newElectrodeBake = new Model.HJGL_ElectrodeBake();
            newElectrodeBake.ElectrodeCode = this.txtEletrodeCode.Text.Trim();
            newElectrodeBake.ElectrodeDate = Funs.GetNewDateTime(this.txtElectrodeDate.Text);
            newElectrodeBake.UnitId = null;
            newElectrodeBake.CompileMan = this.CurrUser.UserId;
            newElectrodeBake.CompileDate = Funs.GetNewDateTime(this.txtCompileDate.Text);
            newElectrodeBake.ProjectId = this.CurrUser.LoginProjectId;
            if (!string.IsNullOrEmpty(ElectrodeID))
            {
                newElectrodeBake.ElectrodeID = ElectrodeID;
                BLL.HJGL_ElectrodeBakeService.UpdateElectrodeBake(newElectrodeBake); //修改焊丝烘烤记录
                BLL.HJGL_ElectrodeBakeService.DeleteElectrodeBakeItem(this.ElectrodeID);
                //BLL.Sys_LogService.AddLog(BLL.Const.System_7, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "修改焊丝烘烤记录!");
            }
            else
            {
                newElectrodeBake.ElectrodeID = SQLHelper.GetNewID(typeof(Model.HJGL_ElectrodeBake));
                BLL.HJGL_ElectrodeBakeService.AddElectrodeBake(newElectrodeBake); //添加焊丝烘烤记录主表信息               
               // BLL.Sys_LogService.AddLog(BLL.Const.System_7, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "添加焊丝烘烤记录!");
            }
            if (Grid1.GetModifiedData().Count > 0)
            {
                JArray teamGroupData = Grid1.GetMergedData();
                foreach (JObject teamGroupRow in teamGroupData)
                {
                    //string status = teamGroupRow.Value("status");
                    JObject values = teamGroupRow.Value("values");
                    Model.HJGL_ElectrodeBakeItem newElectrodeBakeItem = new Model.HJGL_ElectrodeBakeItem();
                    newElectrodeBakeItem.ElectrodeItemID = SQLHelper.GetNewID(typeof(Model.HJGL_ElectrodeBakeItem));
                    newElectrodeBakeItem.ElectrodeID = newElectrodeBake.ElectrodeID;
                    newElectrodeBakeItem.ElectrodeModel = values.Value("ElectrodeModel");
                    newElectrodeBakeItem.CardCode = values.Value("CardCode");
                    newElectrodeBakeItem.BatchCode = values.Value("BatchCode");
                    newElectrodeBakeItem.InLibCode = values.Value("InLibCode");
                    newElectrodeBakeItem.Specifications = values.Value("Specifications");
                    newElectrodeBakeItem.ElectrodeCount = Funs.GetNewInt(values.Value("ElectrodeCount"));
                    newElectrodeBakeItem.OvenElectricHours = Funs.GetNewInt(values.Value("OvenElectricHours"));
                    newElectrodeBakeItem.OvenElectricMinute = Funs.GetNewInt(values.Value("OvenElectricMinute"));
                    newElectrodeBakeItem.OvenElectricTemperature = Funs.GetNewInt(values.Value("OvenElectricTemperature"));
                    newElectrodeBakeItem.ConstantTemperature = Funs.GetNewInt(values.Value("ConstantTemperature"));
                    newElectrodeBakeItem.ConstantStartHours = Funs.GetNewInt(values.Value("ConstantStartHours"));
                    newElectrodeBakeItem.ConstantStartMinute = Funs.GetNewInt(values.Value("ConstantStartMinute"));
                    newElectrodeBakeItem.ConstantEndHours = Funs.GetNewInt(values.Value("ConstantEndHours"));
                    newElectrodeBakeItem.ConstantEndMinute = Funs.GetNewInt(values.Value("ConstantEndMinute"));
                    newElectrodeBakeItem.MoveInBoxHours = Funs.GetNewInt(values.Value("MoveInBoxHours"));
                    newElectrodeBakeItem.MoveInBoxMinute = Funs.GetNewInt(values.Value("MoveInBoxMinute"));
                    newElectrodeBakeItem.MoveInTemperature = Funs.GetNewInt(values.Value("MoveInTemperature"));
                    newElectrodeBakeItem.BakeNumber = Funs.GetNewInt(values.Value("BakeNumber"));
                    newElectrodeBakeItem.BakeHead = values.Value("BakeHead");
                    BLL.HJGL_ElectrodeBakeService.AddElectrodeBakeItem(newElectrodeBakeItem);
                }
            }
            Alert.ShowInTop("保存成功!", MessageBoxIcon.Success);
            PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
        }
    }
    
}