protected void gvMain_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#EAF1FD',this.style.fontWeight='';");
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor,this.style.fontWeight='';");
                Pro_JSXDetailInfo model = e.Row.DataItem as Pro_JSXDetailInfo;
                if (txtProNO.Text.Trim() == "" && txtPONO.Text.Trim() != "" && model.PONO.Contains(txtPONO.Text.Trim()))
                {
                    e.Row.BackColor = System.Drawing.Color.YellowGreen;
                }
                if (txtProNO.Text.Trim() != "" && txtPONO.Text.Trim() == "" && model.ProNo.Contains(txtProNO.Text.Trim()))
                {
                    e.Row.BackColor = System.Drawing.Color.Pink;
                }

                if (txtProNO.Text.Trim() != "" && txtPONO.Text.Trim() != "" && model.ProNo.Contains(txtProNO.Text.Trim()) && model.PONO.Contains(txtPONO.Text.Trim()))
                {
                    e.Row.BackColor = System.Drawing.Color.LightBlue;
                }
            }
        }
        /// <summary>
        /// 获得数据列表(比DataSet效率高,推荐使用)
        /// </summary>
        public List <Sell_Cai_OrderInHouseListModel> GetListArray_New_Out(List <Sell_Cai_OrderInHouseListModel> pOOrderList)
        {
            List <Sell_Cai_OrderInHouseListModel> pOOrderList_New = new List <Sell_Cai_OrderInHouseListModel>();
            decimal iniNum = 0;

            using (SqlConnection conn = DBHelp.getConn())
            {
                conn.Open();
                SqlCommand objCommand = new SqlCommand("Pro_JSXDetailInfo_New", conn);
                objCommand.CommandType = CommandType.StoredProcedure;
                foreach (var m in pOOrderList)
                {
                    objCommand.Parameters.Clear();
                    SqlParameter[] paras = new SqlParameter[4];
                    paras[0] = new SqlParameter("@HouseId", 1);
                    paras[1] = new SqlParameter("@GoodId", m.GooId);
                    paras[2] = new SqlParameter("@FromDate", m.RuTime);
                    paras[3] = new SqlParameter("@ToDate", DateTime.Now.ToString("yyyy-MM-dd"));
                    objCommand.Parameters.AddRange(paras);
                    bool result = false;
                    int  i      = 0;
                    using (SqlDataReader dataReader = objCommand.ExecuteReader())
                    {
                        while (dataReader.Read())
                        {
                            var    model = new Pro_JSXDetailInfo();
                            object ojb   = null;

                            ojb = dataReader["GoodInNum"];
                            if (ojb != null && ojb != DBNull.Value)
                            {
                                model.GoodInNum = Convert.ToDecimal(ojb);
                            }
                            ojb = dataReader["GoodOutNum"];
                            if (ojb != null && ojb != DBNull.Value)
                            {
                                model.GoodOutNum = Convert.ToDecimal(ojb);
                            }
                            var t = Convert.ToInt32(dataReader["T"]);

                            if (i == 0)
                            {
                                iniNum = model.GoodInNum - model.GoodOutNum;
                                //i++;
                            }
                            else
                            {
                                iniNum = iniNum + model.GoodInNum - model.GoodOutNum;
                            }
                            //这个销售退货时间点后,只要有一次采购退货或销售出库后 的库存数量=0,我们就认为是正常了
                            if ((t == 2 || t == 3) && iniNum == 0)
                            {
                                result = true;

                                break;
                            }
                            i++;
                        }
                    }
                    if (result == false)
                    {
                        m.MyColor = System.Drawing.Color.Red;
                        pOOrderList_New.Add(m);
                    }
                }
            }
            return(pOOrderList_New);
        }
        /// <summary>
        /// 获得数据列表(比DataSet效率高,推荐使用)
        /// </summary>
        public List <Sell_Cai_OrderInHouseListModel> GetListArray_New_Good_Out(List <Sell_Cai_OrderInHouseListModel> pOOrderList)
        {
            List <Sell_Cai_OrderInHouseListModel> pOOrderList_New = new List <Sell_Cai_OrderInHouseListModel>();
            List <Pro_JSXDetailInfo> allProDetail = new List <Pro_JSXDetailInfo>();
            var    l       = pOOrderList.Select(t => t.GooId.ToString()).ToArray();
            string goodIds = string.Join(",", l);

            string sql = string.Format(@"select * from (
select  1 as T,RuTime, GoodNum as GoodInNum,0 as GoodOutNum,GooId  from CAI_OrderInHouse left join CAI_OrderInHouses on CAI_OrderInHouse.Id=CAI_OrderInHouses.Id 

where status='通过' and HouseID=1 and GooId in ({0}) 

union  all

select 2 as T,RuTime, 0 as GoodInNum,GoodNum as GoodOutNum,GooId from CAI_OrderOutHouse left join CAI_OrderOutHouses on CAI_OrderOutHouse.Id=CAI_OrderOutHouses.Id 

where status='通过' and HouseID=1 and GooId in ({0}) 

union  all

select 3 as T,RuTime,0 as GoodInNum,GoodNum as GoodOutNum,GooId  from Sell_OrderOutHouse left join Sell_OrderOutHouses on Sell_OrderOutHouse.Id=Sell_OrderOutHouses.Id 

where status='通过' and HouseID=1 and GooId in ({0}) 
union  all

select 4 as T,RuTime, GoodNum as GoodInNum,0 as GoodOutNum,GooId from Sell_OrderInHouse left join Sell_OrderInHouses on Sell_OrderInHouse.Id=Sell_OrderInHouses.Id 

where status='通过' and HouseID=1 and GooId in ({0}) 
) as tb order by RuTime ;", goodIds);

            using (SqlConnection conn = DBHelp.getConn())
            {
                conn.Open();
                SqlCommand objCommand = new SqlCommand(sql, conn);


                using (SqlDataReader dataReader = objCommand.ExecuteReader())
                {
                    while (dataReader.Read())
                    {
                        var    model = new Pro_JSXDetailInfo();
                        object ojb   = null;

                        ojb             = dataReader["GoodInNum"];
                        model.GoodInNum = Convert.ToDecimal(ojb);

                        ojb = dataReader["GoodOutNum"];
                        model.GoodOutNum = Convert.ToDecimal(ojb);


                        ojb          = dataReader["RuTime"];
                        model.RuTime = Convert.ToDateTime(ojb);

                        ojb         = dataReader["GooId"];
                        model.GooId = Convert.ToInt32(ojb);

                        model.T = Convert.ToInt32(dataReader["T"]);

                        allProDetail.Add(model);
                    }
                }
            }

            foreach (var m in pOOrderList)
            {
                var goodList = allProDetail.FindAll(t => m.GooId == t.GooId);

                var count_List = goodList.FindAll(t => t.RuTime <= m.RuTime);

                var other_List = goodList.FindAll(t => t.RuTime > m.RuTime && (t.T == 2 || t.T == 3));

                var total  = count_List.Sum(t => t.GoodInNum - t.GoodOutNum);
                var result = false;
                for (int i = 0; i < other_List.Count; i++)
                {
                    count_List = goodList.FindAll(t => t.RuTime > m.RuTime && t.RuTime <= other_List[i].RuTime);
                    if (total + count_List.Sum(t => t.GoodInNum - t.GoodOutNum) == 0)
                    {
                        result = true;
                        break;
                    }
                }
                if (result == false)
                {
                    m.MyColor = System.Drawing.Color.Red;
                    pOOrderList_New.Add(m);
                }
            }
            return(pOOrderList_New);
        }
        /// <summary>
        /// 获得数据列表(比DataSet效率高,推荐使用)
        /// </summary>
        public List <VAN_OA.Model.JXC.Pro_JSXDetailInfo> GetListArray(int houseId, int GoodId, DateTime fromTime, DateTime toTime)
        {
            decimal iniNum = 0;
            List <VAN_OA.Model.JXC.Pro_JSXDetailInfo> list = new List <VAN_OA.Model.JXC.Pro_JSXDetailInfo>();

            using (SqlConnection conn = DBHelp.getConn())
            {
                conn.Open();
                SqlCommand objCommand = new SqlCommand("Pro_JSXDetailInfo", conn);
                objCommand.CommandType = CommandType.StoredProcedure;

                SqlParameter[] paras = new SqlParameter[4];
                paras[0] = new SqlParameter("@HouseId", houseId);
                paras[1] = new SqlParameter("@GoodId", GoodId);
                paras[2] = new SqlParameter("@FromDate", fromTime);
                paras[3] = new SqlParameter("@ToDate", toTime);
                objCommand.Parameters.AddRange(paras);
                int i = 0;
                using (SqlDataReader dataReader = objCommand.ExecuteReader())
                {
                    while (dataReader.Read())
                    {
                        var    model = new Pro_JSXDetailInfo();
                        object ojb   = null;

                        ojb = dataReader["TypeName"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.TypeName = ojb.ToString();
                        }
                        ojb = dataReader["RuTime"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.RuTime = Convert.ToDateTime(ojb);
                        }
                        ojb = dataReader["allRemark"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.allRemark = ojb.ToString();
                        }

                        ojb = dataReader["GoodInNum"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.GoodInNum = Convert.ToDecimal(ojb);
                        }
                        ojb = dataReader["GoodOutNum"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.GoodOutNum = Convert.ToDecimal(ojb);
                        }

                        ojb = dataReader["ProNo"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.ProNo = Convert.ToString(ojb);
                        }

                        ojb = dataReader["Price"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.Price = Convert.ToDecimal(ojb);
                        }
                        ojb = dataReader["TempHousePrice"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.TempHousePrice = Convert.ToDecimal(ojb);
                        }
                        ojb = dataReader["PONO"];
                        if (ojb != null && ojb != DBNull.Value)
                        {
                            model.PONO = Convert.ToString(ojb);
                        }

                        ojb = dataReader["HadInvoice"];
                        if (model.TypeName == "采购入库")
                        {
                            if (ojb != null && ojb != DBNull.Value)
                            {
                                model.HadInvoice = Convert.ToDecimal(ojb);// *model.GoodInNum;
                            }
                            else
                            {
                                model.HadInvoice = 0;
                            }
                            model.NoInvoice = model.GoodInNum * model.Price - model.HadInvoice;
                        }
                        //else if (model.TypeName == "采购退货")
                        //{
                        //    if (ojb != null && ojb != DBNull.Value)
                        //    {
                        //        model.HadInvoice = -model.Price * model.GoodOutNum;
                        //    }
                        //    else
                        //    {
                        //        model.HadInvoice = 0;
                        //    }
                        //    model.NoInvoice = -model.GoodOutNum * model.Price - model.HadInvoice;
                        //}

                        //if (i == 0)
                        //{
                        //    iniNum = model.GoodInNum - model.GoodOutNum;
                        //    i++;
                        //}
                        //else
                        //{
                        //    iniNum = iniNum + model.GoodInNum - model.GoodOutNum;
                        //}

                        model.GoodResultNum = iniNum;

                        model.RuId          = Convert.ToInt32(dataReader["RuId"]);
                        model.Ids           = Convert.ToInt32(dataReader["Ids"]);
                        model.avgHousePrice = Convert.ToDecimal(dataReader["avgHousePrice"]);

                        list.Add(model);
                    }
                }
            }
            return(list);
        }