using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.SqlClient;
using System.Data;
using Newtonsoft.Json.Linq;
using BLL;
using System.Text;
using System.Web;
using System.Reflection;
using System.Diagnostics;
using System.IO;
namespace FineUIPro.Web.HJGL.MaterialManage
{
    public partial class ReleaseRecovery : PageBase
    {
        #region 加载页面
        /// 
        /// 加载页面
        /// 
        /// 
        /// 
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
                this.drpWeldType.DataTextField = "Text";
                this.drpWeldType.DataValueField = "Value";
                this.drpWeldType.DataSource = BLL.DropListService.HJGL_ConsumablesTypeList();
                this.drpWeldType.DataBind();
                Funs.FineUIPleaseSelect(this.drpWeldType);
                //Funs.FineUIPleaseSelect(this.drpTeamGroup);
                this.drpWelder.DataTextField = "Text";
                this.drpWelder.DataValueField = "Value";
                this.drpWelder.DataSource = BLL.WelderService.GetWelderCodeListByProjectId(this.CurrUser.LoginProjectId);
                this.drpWelder.DataBind();
                Funs.FineUIPleaseSelect(this.drpWelder);
                BLL.UserService.InitUserDropDownList(this.drpStoreMan,this.CurrUser.LoginProjectId,true);
                BindGrid();
            }
        }
        #endregion
        #region 绑定数据
        /// 
        /// 绑定数据
        /// 
        private void BindGrid()
        {
            string strSql = @"SELECT * FROM Weld_View_ReleaseRecovery WHERE ProjectId=@ProjectId ";
            List listStr = new List();
            listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
            if (drpWelder.SelectedValue != Const._Null && drpWelder.SelectedValue != null)
            {
                strSql += " AND WED_ID =@WED_ID";
                listStr.Add(new SqlParameter("@WED_ID", drpWelder.SelectedValue));
            }
            if (drpStoreMan.SelectedValue != Const._Null && drpStoreMan.SelectedValue != null)
            {
                strSql += " AND StoreMan =@StoreMan";
                listStr.Add(new SqlParameter("@StoreMan", drpStoreMan.SelectedValue));
            }
            if (drpWeldType.SelectedValue != Const._Null)
            {
                strSql += " AND ConsumablesType =@WeldTypeId";
                listStr.Add(new SqlParameter("@WeldTypeId", drpWeldType.SelectedValue));
            }
            if (!string.IsNullOrEmpty(this.txtWeldCode.Text.Trim()))
            {
                strSql += " AND ConsumablesCode LIKE @ConsumablesCode";
                listStr.Add(new SqlParameter("@ConsumablesCode", "%" + this.txtWeldCode.Text.Trim() + "%"));
            }
            //if (!string.IsNullOrEmpty(this.txtJOT_ID.Text.Trim()))
            //{
            //    strSql += " AND UsePosition LIKE @UsePosition";
            //    listStr.Add(new SqlParameter("@UsePosition", "%" + this.txtJOT_ID.Text.Trim() + "%"));
            //}
            if (!string.IsNullOrEmpty(this.txtStarTime.Text))
            {
                strSql += " AND UsingDate >=@StarTime";
                listStr.Add(new SqlParameter("@StarTime", Convert.ToDateTime(this.txtStarTime.Text.Trim())));
            }
            if (!string.IsNullOrEmpty(this.txtEndTime.Text))
            {
                strSql += " AND UsingDate <=@EndTime";
                listStr.Add(new SqlParameter("@EndTime", Convert.ToDateTime(this.txtEndTime.Text.Trim()).AddDays(1)));
            }
            strSql += " ORDER BY Years DESC,Months DESC,Dayt DESC ,UsePosition";
            SqlParameter[] parameter = listStr.ToArray();
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
            Grid1.RecordCount = tb.Rows.Count;
            var table = this.GetPagedDataTable(Grid1, tb);
            this.OutputSummaryData(tb); ///取合计值
            Grid1.DataSource = table;
            Grid1.DataBind();
        }
        #endregion
        #region 计算合计
        /// 
        /// 计算合计
        /// 
        private void OutputSummaryData(DataTable tb)
        {
            decimal usingMatSum = 0; //领用数量          
            decimal recycleMatSum = 0; //退回数量 
            int RecycleMatTopSum = 0; //退回焊材头数量 
            for (int i = 0; i < tb.Rows.Count; i++)
            {
                usingMatSum += Funs.GetNewDecimalOrZero(tb.Rows[i]["Amount"].ToString());
                recycleMatSum += Funs.GetNewDecimalOrZero(tb.Rows[i]["RecycleAmount"].ToString());
                RecycleMatTopSum += Funs.GetNewIntOrZero(tb.Rows[i]["MatTopAmount"].ToString());
            }
            JObject summary = new JObject();
            summary.Add("UsePosition", "合计:");
            summary.Add("Amount", usingMatSum);
            summary.Add("RecycleAmount", recycleMatSum);
            summary.Add("MatTopAmount", RecycleMatTopSum);
            Grid1.SummaryData = summary;
        }
        #endregion
        #region 表头过滤
        protected void Grid1_FilterChange(object sender, EventArgs e)
        {
            BindGrid();
        }
        #endregion
        #region 页索引改变事件
        /// 
        /// 页索引改变事件
        /// 
        /// 
        /// 
        protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
        {
            Grid1.PageIndex = e.NewPageIndex;
            BindGrid();
        }
        #endregion
        #region 排序
        /// 
        /// 排序
        /// 
        /// 
        /// 
        protected void Grid1_Sort(object sender, GridSortEventArgs e)
        {
            Grid1.SortDirection = e.SortDirection;
            Grid1.SortField = e.SortField;
            BindGrid();
        }
        #endregion
        #region 分页选择下拉改变事件
        /// 
        /// 分页选择下拉改变事件
        /// 
        /// 
        /// 
        protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
        {
            Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
            BindGrid();
        }
        #endregion
        #region 查询
        /// 
        /// 查询
        /// 
        /// 
        /// 
        protected void btnSearch_Click(object sender, EventArgs e)
        {
            BindGrid();
        }
        #endregion
        #region 导出
        /// 导出按钮
        /// 
        /// 
        /// 
        protected void btnOut_Click(object sender, EventArgs e)
        {
            // 测试图片
            //string reportId = BLL.Const.HGGL_TestReportId;
            //PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../../Common/ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId=0", reportId, "", "", "打印 - ")));
        }
        /// 
        /// 导出方法
        /// 
        /// 
        /// 
        private string GetGridTableHtml(Grid grid)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("");
            sb.Append("");
            sb.Append("");
            this.Grid1.PageSize = 10000;
            BindGrid();
            foreach (GridColumn column in grid.Columns)
            {
                sb.AppendFormat("| {0} | ", column.HeaderText);
            }
            sb.Append("
");
            foreach (GridRow row in grid.Rows)
            {
                sb.Append("");
                foreach (GridColumn column in grid.Columns)
                {
                    string html = row.Values[column.ColumnIndex].ToString();
                    //if (column.ColumnID == "tfNumber")
                    //{
                    //    html = (row.FindControl("labNumber") as AspNet.Label).Text;
                    //}
                    sb.AppendFormat("| {0} | ", html);
                }
                sb.Append("
");
            }
            sb.Append("
");
            return sb.ToString();
        }
        #endregion
        #region 打印
        /// 
        /// 打印
        /// 
        /// 
        /// 
        protected void btnPrint_Click(object sender, EventArgs e)
        {
            //string projectId = this.tvControlItem.SelectedNodeID;
            //if (!string.IsNullOrEmpty(projectId))
            //{
            //    var unit = BLL.Base_UnitService.GetUnit(Const.zzfgsId);
            //    var project = BLL.Base_ProjectService.GetProjectByProjectId(projectId);
            //    string varValue = "工程名称:" + project.ProjectName;
            //    if (unit != null)
            //    {
            //        varValue = varValue + "|" + unit.UnitName + "|" + unit.UnitName;
            //    }
            //    varValue = HttpUtility.UrlEncodeUnicode(varValue);
            //    string replaceParameter = projectId;
            //    if (drpWeldType.SelectedValue != Const._Null)
            //    {
            //        replaceParameter = replaceParameter + "|" + drpWeldType.SelectedValue;
            //    }
            //    else
            //    {
            //        replaceParameter = replaceParameter + "|" + "NULL";
            //    }
            //    if (drpStoreMan.SelectedValue != Const._Null)
            //    {
            //        replaceParameter = replaceParameter + "|" + drpStoreMan.SelectedValue;
            //    }
            //    else
            //    {
            //        replaceParameter = replaceParameter + "|" + "NULL";
            //    }
            //    if (txtStarTime.Text != string.Empty)
            //    {
            //        replaceParameter = replaceParameter + "|" + txtStarTime.Text.Trim();
            //    }
            //    else
            //    {
            //        replaceParameter = replaceParameter + "|" + "NULL";
            //    }
            //    if (this.txtEndTime.Text != string.Empty)
            //    {
            //        replaceParameter = replaceParameter + "|" + txtEndTime.Text.Trim();
            //    }
            //    else
            //    {
            //        replaceParameter = replaceParameter + "|" + "NULL";
            //    }
            //    string reportId = string.Empty;
            //    if (drpWeldType.SelectedValue != Const._Null)
            //    {
            //        if (drpWeldType.SelectedText == "焊条")
            //        {
            //            reportId = BLL.Const.CLGL_ReleaseRecoveryReportId;
            //        }
            //        else
            //        {
            //            reportId = BLL.Const.HJGL_ElectrodeRecoveryReportId;
            //        }
            //        PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../../Common/ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId=0", reportId, replaceParameter, varValue, "打印 - ")));
            //    }
            //    else
            //    {
            //        ShowNotify("请选择焊材类型!", MessageBoxIcon.Warning);
            //        return;
            //    }
            //}
            //else
            //{
            //    ShowNotify("请选择施工号!", MessageBoxIcon.Warning);
            //    return;
            //}
        }
        #endregion
        protected void btnPrint2_Click(object sender, EventArgs e)
        {
            string projectId = this.CurrUser.LoginProjectId;
            if (!string.IsNullOrEmpty(projectId))
            {
                //var project = BLL.Base_ProjectService.GetProjectByProjectId(projectId);
                //string varValue = project.ProjectCode + "|" + project.ProjectName;
                //varValue = HttpUtility.UrlEncodeUnicode(varValue);
                //string replaceParameter = projectId;
                //if (txtStarTime.Text != string.Empty)
                //{
                //    replaceParameter = replaceParameter + "|" + txtStarTime.Text.Trim();
                //}
                //else
                //{
                //    replaceParameter = replaceParameter + "|" + "NULL";
                //}
                //if (this.txtEndTime.Text != string.Empty)
                //{
                //    replaceParameter = replaceParameter + "|" + txtEndTime.Text.Trim();
                //}
                //else
                //{
                //    replaceParameter = replaceParameter + "|" + "NULL";
                //}
                string window = String.Format("ReleaseRecoveryPrint.aspx?projectId={0}&&startDate={1}&&endDate={2}", projectId, this.txtStarTime.Text.Trim(), this.txtEndTime.Text.Trim(), "编辑 - ");
                PageContext.RegisterStartupScript(Window1.GetShowReference(window));
            }
            else
            {
                ShowNotify("请选择施工号!", MessageBoxIcon.Warning);
                return;
            }
        }
    }
}