Example #1
0
        /// <summary>
        /// 获取库存信息
        /// </summary>
        /// <param name="condition"></param>
        /// <returns></returns>
        public WHMatAmount GetStock(WHMatAmount condition)
        {
            string      sql  = null;
            WHMatAmount info = null;

            sql = "select * from T_WH_MatAmount where Warehouse = @Warehouse and SaveSite = @SaveSite and MatID = @MatID and MatBarCode = @MatBarCode";

            if (Session != null)
            {
                info = Session.Get <WHMatAmount>(sql
                                                 , new DataParameter("Warehouse", condition.Warehouse)
                                                 , new DataParameter("SaveSite", condition.SaveSite)
                                                 , new DataParameter("MatID", condition.MatID)
                                                 , new DataParameter("MatBarCode", condition.MatBarCode));
            }
            else
            {
                using (IDataSession session = AppDataFactory.CreateMainSession())
                {
                    info = session.Get <WHMatAmount>(sql
                                                     , new DataParameter("Warehouse", condition.Warehouse)
                                                     , new DataParameter("SaveSite", condition.SaveSite)
                                                     , new DataParameter("MatID", condition.MatID)
                                                     , new DataParameter("MatBarCode", condition.MatBarCode));
                }
            }

            return(info);
        }
Example #2
0
        /// <summary>
        /// 获取库存预警列表
        /// </summary>
        /// <param name="condition">查询条件</param>
        /// <param name="page">分页信息</param>
        /// <returns>库存预警列表</returns>
        public DataPage GetList(WHMatAmount condition, DataPage page)
        {
            if (this.LoginUser.UserName.ToLower() != "admin")
            {
                condition.CreateUser = this.LoginUser.UserID;
            }
            page = new StockWarningDAL().GetList(condition, page);

            List <StockWarningResult> list = page.Result as List <StockWarningResult>;

            foreach (StockWarningResult item in list)
            {
                if (item.StockAmount >= item.MaxAmount)
                {
                    item.WarningMode = "1";
                }

                if (item.StockAmount <= item.MinAmount)
                {
                    item.WarningMode = "2";
                }
            }

            return(page);
        }
Example #3
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentEncoding = Encoding.UTF8;
            context.Response.ContentType     = "application/json";

            string idCode = context.Request.QueryString["IDCode"];

            StockBLL bll = BLLFactory.CreateBLL <StockBLL>();

            WHMatAmount mat = null;

            if (string.IsNullOrEmpty(idCode) == false)
            {
                //根据识别码
                mat = bll.GetStockByBarCode(idCode);
                if (mat == null || mat.ProductAmount == 0)
                {
                    mat            = new WHMatAmount();
                    mat.MatCode    = "none";
                    mat.MatBarCode = "none";
                }
            }

            context.Response.Write(LAF.Common.Serialization.JsonConvertHelper.GetSerializes(mat));
        }
Example #4
0
        private void BindData()
        {
            StockOverdueAlarmBLL bll       = null;
            DataPage             dp        = new DataPage();
            WHMatAmount          condition = new WHMatAmount();

            try
            {
                bll = BLLFactory.CreateBLL <StockOverdueAlarmBLL>();
                condition.Warehouse   = this.Warehouse.SelectedValue;
                condition.ProductType = this.ProductType.SelectedValue;
                condition.MatID       = this.MatID.SelectedValue;
                PagerHelper.InitPageControl(this.AspNetPager1, dp, true);
                dp = bll.GetList(condition, dp);

                List <WHMatAmount> list = dp.Result as List <WHMatAmount>;
                this.GvList.DataSource = list;
                this.GvList.DataBind();

                PagerHelper.SetPageControl(AspNetPager1, dp, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #5
0
        /// <summary>
        /// 获取库存预警列表
        /// </summary>
        /// <param name="condition">查询条件</param>
        /// <param name="page">分页信息</param>
        /// <returns>库存预警列表</returns>
        public DataPage GetList(WHMatAmount condition, DataPage page)
        {
            DataTable            dt         = new DataTable();
            StringBuilder        sql        = null;
            List <DataParameter> parameters = new List <DataParameter>();

            try
            {
                sql = new StringBuilder(@"select t1.MatID,t3.Description as ProductType,t1.StockAmount as StockAmount
                                                        ,t2.Description as WarehouseName,t4.MatCode,t4.MatName,t5.Description as MainUnitName,
                                                        t6.MaxAmount,t6.MinAmount       
                                                        from v_wh_matamount t1 
                                                        inner join T_WH_Warehouse t2 on t1.Warehouse=t2.ID
                                                        inner join T_WH_Mat t4 on t1.MatID=t4.ID
                                                        inner join T_WH_MatType t3 on t4.ProductType=t3.ID
                                                        inner join T_WH_MatUnit t5 on t4.UnitCode=t5.ID
                                                        inner join T_WH_StockLimit t6 on t1.Warehouse = t6.Warehouse and t1.MatID =  t6.MatID
                                                        where (t1.StockAmount >= t6.MaxAmount or t1.StockAmount <= t6.MinAmount)");

                page.KeyName = "ID";

                if (!string.IsNullOrEmpty(condition.Warehouse))
                {
                    sql.Append(" and t1.Warehouse = @Warehouse");
                    parameters.Add(new DataParameter("Warehouse", condition.Warehouse));
                }

                if (!string.IsNullOrEmpty(condition.ProductType))
                {
                    sql.Append(" and t4.ProductType = @ProductType");
                    parameters.Add(new DataParameter("ProductType", condition.ProductType));
                }

                if (!string.IsNullOrEmpty(condition.MatID))
                {
                    sql.Append(" and t1.MatID = @MatID");
                    parameters.Add(new DataParameter("MatID", condition.MatID));
                }

                if (!string.IsNullOrEmpty(condition.CreateUser))
                {
                    sql.Append(" and exists(select WarehouseID from T_WH_WHPower where UserID=@userID and WarehouseID=t1.Warehouse)");
                    parameters.Add(new DataParameter("userID", condition.CreateUser));
                }

                page.SortExpression = "WarehouseName,MatCode";

                using (IDataSession session = AppDataFactory.CreateMainSession())
                {
                    page = session.GetDataPage <StockWarningResult>(sql.ToString(), parameters.ToArray(), page);
                }

                return(page);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #6
0
        /// <summary>
        /// 获取库存列表
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public DataPage GetList(WHMatAmount condition, DataPage page)
        {
            if (this.LoginUser.UserName.ToLower() != "admin")
            {
                condition.CreateUser = this.LoginUser.UserID;
            }

            return(new StockDAL().GetList(condition, page));
        }
Example #7
0
        private void BindData()
        {
            StockBLL    bll       = null;
            DataPage    dp        = new DataPage();
            WHMatAmount condition = new WHMatAmount();

            try
            {
                bll = BLLFactory.CreateBLL <StockBLL>();
                condition.Warehouse   = this.Warehouse.SelectedValue;
                condition.ProductType = this.ProductType.SelectedValue;
                condition.MatID       = this.MatID.SelectedValue;
                condition.IsDetail    = this.CbxDetail.Checked;
                PagerHelper.InitPageControl(this.AspNetPager1, dp, true);
                dp = bll.GetList(condition, dp);

                if (condition.IsDetail == false)
                {
                    this.GvList.Columns[1].Visible  = false;
                    this.GvList.Columns[2].Visible  = false;
                    this.GvList.Columns[8].Visible  = false;
                    this.GvList.Columns[9].Visible  = false;
                    this.GvList.Columns[10].Visible = false;
                    this.GvList.Columns[12].Visible = false;
                    this.GvList.Columns[13].Visible = false;
                }
                else
                {
                    this.GvList.Columns[1].Visible  = true;
                    this.GvList.Columns[2].Visible  = true;
                    this.GvList.Columns[8].Visible  = true;
                    this.GvList.Columns[9].Visible  = true;
                    this.GvList.Columns[10].Visible = true;
                    this.GvList.Columns[12].Visible = true;
                    this.GvList.Columns[13].Visible = true;
                }

                List <WHMatAmount> list = dp.Result as List <WHMatAmount>;
                this.GvList.DataSource = list;
                this.GvList.DataBind();

                PagerHelper.SetPageControl(AspNetPager1, dp, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #8
0
        /// <summary>
        /// 盘点确认
        /// </summary>
        /// <param name="info">盘点单</param>
        public void ConfirmCheck(CheckStockBill info)
        {
            CheckStockDAL dal  = new CheckStockDAL();
            StockDAL      sDal = new StockDAL();

            int seq = 1;

            foreach (CheckStockDetail detail in info.Details)
            {
                detail.ID     = Guid.NewGuid().ToString();
                detail.BillID = info.ID;
                detail.Seq    = seq;
                seq++;
            }

            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                session.OpenTs();

                dal.Session  = session;
                sDal.Session = session;

                //更新盘点单信息
                info.IsConfirm = 1;
                dal.Update(info);

                foreach (CheckStockDetail detail in info.Details)
                {
                    //更新库存信息
                    WHMatAmount matStock = sDal.GetStock(new WHMatAmount()
                    {
                        Warehouse    = info.Warehouse
                        , SaveSite   = detail.SaveSite
                        , MatID      = detail.MatID
                        , MatBarCode = detail.IDCode
                    });

                    matStock.MainAmount    = matStock.MainAmount * detail.FactAmount / matStock.ProductAmount;
                    matStock.ProductAmount = detail.FactAmount;

                    sDal.Update(matStock);
                }

                session.CommitTs();
            }
        }
Example #9
0
        /// <summary>
        /// 获取可用库存货品
        /// </summary>
        /// <param name="condition">获取条件</param>
        /// <returns>可用库存货品</returns>
        public List <WHMatAmount> GetMayUseStock(WHMatAmount condition)
        {
            List <WHMatAmount>   list       = null;
            string               sql        = null;
            List <DataParameter> parameters = new List <DataParameter>();

            sql = @"select * from T_WH_MatAmount 
                    where Warehouse = @Warehouse and MatID = @MatID and ProductAmount>0 order by UpdateTime asc";

            parameters.Add(new DataParameter("Warehouse", condition.Warehouse));
            parameters.Add(new DataParameter("MatID", condition.MatID));

            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                list = session.GetList <WHMatAmount>(sql, parameters.ToArray()).ToList();
            }

            return(list);
        }
Example #10
0
        /// <summary>
        /// 获取根据条码库存信息
        /// </summary>
        /// <param name="condition"></param>
        /// <returns></returns>
        public WHMatAmount GetStockByBarCode(string matBarCode)
        {
            string      sql  = null;
            WHMatAmount info = null;

            sql = @"select t1.*,twms.UnitName,t2.MatCode,t2.MatName,twms.Description as MatSpec
                    from T_WH_MatAmount t1
                    left outer join T_WH_MatSpec twms on t1.Unit = twms.ID
                    left outer join T_WH_Mat t2 on t1.MatID=t2.ID
                    where t1.MatBarCode = @MatBarCode";

            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                info = session.Get <WHMatAmount>(sql
                                                 , new DataParameter("MatBarCode", matBarCode));
            }

            return(info);
        }
Example #11
0
        private void BindData()
        {
            StockWarningBLL bll       = null;
            DataPage        dp        = new DataPage();
            WHMatAmount     condition = new WHMatAmount();

            try
            {
                bll = BLLFactory.CreateBLL <StockWarningBLL>();
                condition.Warehouse   = this.Warehouse.SelectedValue;
                condition.ProductType = this.ProductType.SelectedValue;
                condition.MatID       = this.MatID.SelectedValue;
                PagerHelper.InitPageControl(this.AspNetPager1, dp, true);
                dp = bll.GetList(condition, dp);

                List <StockWarningResult> list = dp.Result as List <StockWarningResult>;
                this.GvList.DataSource = list;
                this.GvList.DataBind();

                for (int i = 0; i < this.GvList.Rows.Count; i++)
                {
                    if (this.GvList.DataKeys[i]["WarningMode"].ToString() == "1")
                    {
                        this.GvList.Rows[i].BackColor = System.Drawing.Color.Red;
                    }
                    else
                    {
                        this.GvList.Rows[i].BackColor = System.Drawing.Color.Yellow;
                    }
                }

                PagerHelper.SetPageControl(AspNetPager1, dp, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #12
0
        /// <summary>
        /// 出库
        /// </summary>
        /// <param name="record">出库记录</param>
        public string OutStock(WHMatAmount record)
        {
            WHMatAmount info = this.GetStock(record);

            string result = "";

            if (info != null)
            {
                if (info.ProductAmount < record.ProductAmount || info.MainAmount < record.MainAmount)
                {
                    //库存数量不足
                    return("库存数量不足");
                }

                info.MainAmount    -= record.MainAmount;
                info.ProductAmount -= record.ProductAmount;

                if (info.ProductAmount == 0 || info.MainAmount == 0)
                {
                    info.ProductSum   = 0;
                    info.ProductPrice = 0;
                    Session.Delete <WHMatAmount>(info);
                }
                else
                {
                    info.ProductSum = info.ProductPrice * info.ProductAmount;
                    info.UpdateTime = DateTime.Now;
                    Session.Update <WHMatAmount>(info);
                }
            }
            else
            {
                return("无库存,无法出库");
            }

            return(result);
        }
Example #13
0
        /// <summary>
        /// 入库
        /// </summary>
        /// <param name="record">入库记录</param>
        public void InStock(WHMatAmount record)
        {
            WHMatAmount info = this.GetStock(record);

            if (info != null)
            {
                //已有库存
                info.ProductAmount += record.ProductAmount;
                info.ProductSum    += record.ProductSum;
                info.ProductPrice   = info.ProductSum / info.ProductAmount;
                info.UpdateTime     = DateTime.Now;

                Session.Update <WHMatAmount>(info);
            }
            else
            {
                //无库存
                info               = new WHMatAmount();
                info.ProduceDate   = record.ProduceDate;
                info.ID            = Guid.NewGuid().ToString();
                info.MatBarCode    = record.MatBarCode;
                info.Warehouse     = record.Warehouse;
                info.SaveSite      = record.SaveSite;
                info.MatID         = record.MatID;
                info.ProductAmount = record.ProductAmount;
                info.ProductSum    = record.ProductSum;
                info.ProductPrice  = record.ProductPrice;
                info.Unit          = record.Unit;
                info.MainAmount    = record.MainAmount;
                info.CreateUser    = record.CreateUser;
                info.CreateTime    = DateTime.Now;
                info.UpdateTime    = DateTime.Now;


                Session.Insert <WHMatAmount>(info);
            }
        }
Example #14
0
        /// <summary>
        /// 入库
        /// </summary>
        /// <param name="bill">入库单</param>
        /// <returns></returns>
        public string InStorage(InStockBill bill)
        {
            string result = "";

            bill.ID         = Guid.NewGuid().ToString();
            bill.CREATEUSER = this.LoginUser.UserID;
            bill.CREATETIME = DateTime.Now;
            bill.UPDATEUSER = this.LoginUser.UserID;
            bill.UPDATETIME = bill.CREATETIME;

            int seq = 1;

            foreach (InStockDetail detail in bill.Details)
            {
                detail.ID         = Guid.NewGuid().ToString();
                detail.BillID     = bill.ID;
                detail.CREATEUSER = bill.CREATEUSER;
                detail.CREATETIME = bill.CREATETIME;
                detail.UPDATEUSER = bill.UPDATEUSER;
                detail.UPDATETIME = bill.UPDATETIME;
                detail.Seq        = seq;
                seq++;
            }

            StockDAL   stockDal = new StockDAL();
            InStockDAL isDal    = new InStockDAL();

            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                try
                {
                    stockDal.Session = session;
                    isDal.Session    = session;

                    foreach (InStockDetail detail in bill.Details)
                    {
                        WHMatAmount inStock = new WHMatAmount();
                        inStock.Warehouse     = bill.Warehouse;
                        inStock.SaveSite      = detail.SaveSite;
                        inStock.MatBarCode    = detail.MatBarCode;
                        inStock.MatID         = detail.MatID;
                        inStock.ProductAmount = detail.InAmount;
                        inStock.ProductPrice  = detail.InPrice;
                        inStock.ProductSum    = detail.InSum;
                        inStock.Unit          = detail.UnitCode;
                        inStock.MainAmount    = detail.MainUnitAmount;

                        if (string.IsNullOrEmpty(detail.MatBarCode) == false && string.IsNullOrEmpty(detail.ProduceDate) == false)
                        {
                            inStock.ProduceDate = DateTime.Parse(detail.ProduceDate);
                            //更新条码信息的生产日期
                            new WHMatDAL().UpdateIDCodeProduceDate(new MatIDCode {
                                IDCode = detail.MatBarCode, ProduceDate = detail.ProduceDate
                            });
                        }


                        stockDal.InStock(inStock);
                    }

                    isDal.Insert(bill);

                    session.CommitTs();
                }
                catch (Exception ex)
                {
                    session.RollbackTs();
                    throw ex;
                }
            }

            return(result);
        }
Example #15
0
        /// <summary>
        /// 出库
        /// </summary>
        /// <param name="bill">出库单</param>
        /// <returns></returns>
        public string OutStorage(OutStockBill bill)
        {
            string result = "";

            bill.ID         = Guid.NewGuid().ToString();
            bill.CREATEUSER = this.LoginUser.UserID;
            bill.CREATETIME = DateTime.Now;
            bill.UPDATEUSER = this.LoginUser.UserID;
            bill.UPDATETIME = bill.CREATETIME;

            //设置明细
            int seq = 1;

            foreach (OutStockDetail detail in bill.Details)
            {
                detail.ID  = Guid.NewGuid().ToString("N");
                detail.Seq = seq;
                seq++;
                detail.BillID     = bill.ID;
                detail.CREATEUSER = bill.CREATEUSER;
                detail.CREATETIME = bill.CREATETIME;
                detail.UPDATEUSER = bill.UPDATEUSER;
                detail.UPDATETIME = bill.UPDATETIME;
            }

            StockDAL    stockDal = new StockDAL();
            OutStockDAL outDal   = new OutStockDAL();

            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                try
                {
                    stockDal.Session = session;
                    outDal.Session   = session;

                    foreach (OutStockDetail detail in bill.Details)
                    {
                        WHMatAmount outStock = new WHMatAmount();
                        outStock.Warehouse     = bill.Warehouse;
                        outStock.SaveSite      = detail.SaveSite;
                        outStock.MatBarCode    = detail.IDCode;
                        outStock.MatID         = detail.MatID;
                        outStock.ProductAmount = detail.OutAmount;
                        outStock.ProductPrice  = detail.OutPrice;
                        outStock.ProductSum    = detail.OutSum;
                        outStock.Unit          = detail.UnitCode;
                        outStock.MainAmount    = detail.MainUnitAmount;

                        result = stockDal.OutStock(outStock);

                        if (result != "")
                        {
                            break;
                        }
                    }

                    if (result != "")
                    {
                        session.RollbackTs();

                        return(result);
                    }

                    outDal.Insert(bill);

                    session.CommitTs();
                }
                catch (Exception ex)
                {
                    session.RollbackTs();
                    throw ex;
                }
            }

            return(result);
        }
Example #16
0
        /// <summary>
        /// 获取过期预警列表
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public DataPage GetList(WHMatAmount condition, DataPage page)
        {
            DataTable            dt         = new DataTable();
            StringBuilder        sql        = null;
            List <DataParameter> parameters = new List <DataParameter>();

            try
            {
                sql = new StringBuilder(@"select t1.MatBarCode,t1.MatID,t4.MatCode,t4.MatName,t3.Description as ProductType,t1.ProductAmount,t1.ProductSum
                                                        ,t2.Description as WarehouseName,t5.Description as SaveSite,twms.UnitName,twms.Description as MatSpec,t1.CreateTime,
                                                        t1.ProduceDate,t4.QualityPeriod                                
                                                        from T_WH_MatAmount t1 
                                                        left outer join T_WH_Warehouse t2 on t1.Warehouse=t2.ID  
                                                        left outer join T_WH_MatSpec twms on t1.Unit=twms.ID                                                      
                                                        left outer join T_WH_Mat t4 on t1.MatID=t4.ID
                                                        left outer join T_WH_MatType t3 on t4.ProductType=t3.ID
                                                        left outer join T_WH_Site t5 on t1.SaveSite = t5.ID
                                                        where (t4.QualityPeriod-DATEDIFF(NOW(),t1.ProduceDate))<=t4.OverdueAlarmDay ");

                page.KeyName = "ID";

                if (!string.IsNullOrEmpty(condition.Warehouse))
                {
                    sql.Append(" and t1.Warehouse = @Warehouse");
                    parameters.Add(new DataParameter("Warehouse", condition.Warehouse));
                }

                if (!string.IsNullOrEmpty(condition.SaveSite))
                {
                    sql.Append(" and t1.SaveSite = @SaveSite");
                    parameters.Add(new DataParameter("SaveSite", condition.SaveSite));
                }

                if (!string.IsNullOrEmpty(condition.ProductType))
                {
                    sql.Append(" and t4.ProductType = @ProductType");
                    parameters.Add(new DataParameter("ProductType", condition.ProductType));
                }

                if (!string.IsNullOrEmpty(condition.MatID))
                {
                    sql.Append(" and t1.MatID = @MatID");
                    parameters.Add(new DataParameter("MatID", condition.MatID));
                }

                if (!string.IsNullOrEmpty(condition.MatCode))
                {
                    sql.Append(" and t4.MatCode like @MatCode");
                    parameters.Add(new DataParameter("MatCode", "%" + condition.MatCode + "%"));
                }

                if (!string.IsNullOrEmpty(condition.MatName))
                {
                    sql.Append(" and t4.MatName like @MatName");
                    parameters.Add(new DataParameter("MatName", "%" + condition.MatName + "%"));
                }

                if (!string.IsNullOrEmpty(condition.CreateUser))
                {
                    sql.Append(" and exists(select WarehouseID from T_WH_WHPower where UserID=@userID and WarehouseID=t1.Warehouse)");
                    parameters.Add(new DataParameter("userID", condition.CreateUser));
                }

                page.SortExpression = "WarehouseName,SaveSite,MatCode,MatBarCode,CreateTime";


                using (IDataSession session = AppDataFactory.CreateMainSession())
                {
                    page = session.GetDataPage <WHMatAmount>(sql.ToString(), parameters.ToArray(), page);
                }

                return(page);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #17
0
 public void Update(WHMatAmount info)
 {
     Session.Update <WHMatAmount>(info);
 }
Example #18
0
        /// <summary>
        /// 获取库存列表
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public DataPage GetList(WHMatAmount condition, DataPage page)
        {
            DataTable            dt         = new DataTable();
            StringBuilder        sql        = null;
            List <DataParameter> parameters = new List <DataParameter>();

            try
            {
                if (condition.IsDetail == false)
                {
                    sql = new StringBuilder(@"select t1.MatID,t3.Description as ProductType,sum(t1.MainAmount) as ProductAmount,sum(t1.ProductSum) as ProductSum
                                                        ,t2.Description as WarehouseName,t4.MatCode,t4.MatName,twmu.Description as UnitName,'' as MatSpec       
                                                        from T_WH_MatAmount t1 
                                                        left outer join T_WH_Warehouse t2 on t1.Warehouse=t2.ID
                                                        left outer join T_WH_Mat t4 on t1.MatID=t4.ID
                                                        left outer join T_WH_MatType t3 on t4.ProductType=t3.ID
                                                        left outer join T_WH_MatUnit twmu on t4.UnitCode=twmu.ID
                                                        where 1=1 ");
                }
                else
                {
                    sql = new StringBuilder(@"select t1.MatBarCode,t1.MatID,t4.MatCode,t4.MatName,t3.Description as ProductType,t1.ProductAmount,t1.MainAmount as MainAmount,t1.ProductSum
                                                        ,t2.Description as WarehouseName,t5.Description as SaveSite,twms.UnitName,twmu.Description as MainUnitName,twms.Description as MatSpec,t1.CreateTime,
                                                        t1.ProduceDate                                
                                                        from T_WH_MatAmount t1 
                                                        left outer join T_WH_Warehouse t2 on t1.Warehouse=t2.ID  
                                                        left outer join T_WH_MatSpec twms on t1.Unit=twms.ID                                                      
                                                        left outer join T_WH_Mat t4 on t1.MatID=t4.ID
                                                        left outer join T_WH_MatType t3 on t4.ProductType=t3.ID
                                                        left outer join T_WH_Site t5 on t1.SaveSite = t5.ID
                                                        left outer join T_WH_MatUnit twmu on t4.UnitCode=twmu.ID
                                                        where 1=1 ");
                }

                page.KeyName = "ID";

                if (!string.IsNullOrEmpty(condition.Warehouse))
                {
                    sql.Append(" and t1.Warehouse = @Warehouse");
                    parameters.Add(new DataParameter("Warehouse", condition.Warehouse));
                }

                //if (string.IsNullOrEmpty(condition.CreateUser) == false && condition.CreateUser.ToLower() != "admin")
                //{
                //    sql.Append(" and t1.Warehouse in (select WarehouseID from TWarehousePower where UserID=@UserID)");
                //    parameters.Add(new DataParameter("UserID", condition.CreateUser));
                //}

                if (!string.IsNullOrEmpty(condition.SaveSite))
                {
                    sql.Append(" and t1.SaveSite = @SaveSite");
                    parameters.Add(new DataParameter("SaveSite", condition.SaveSite));
                }

                if (!string.IsNullOrEmpty(condition.ProductType))
                {
                    sql.Append(" and t4.ProductType = @ProductType");
                    parameters.Add(new DataParameter("ProductType", condition.ProductType));
                }

                if (!string.IsNullOrEmpty(condition.MatID))
                {
                    sql.Append(" and t1.MatID = @MatID");
                    parameters.Add(new DataParameter("MatID", condition.MatID));
                }

                if (!string.IsNullOrEmpty(condition.MatCode))
                {
                    sql.Append(" and t4.MatCode like @MatCode");
                    parameters.Add(new DataParameter("MatCode", "%" + condition.MatCode + "%"));
                }

                if (!string.IsNullOrEmpty(condition.MatName))
                {
                    sql.Append(" and t4.MatName like @MatName");
                    parameters.Add(new DataParameter("MatName", "%" + condition.MatName + "%"));
                }

                if (!string.IsNullOrEmpty(condition.CreateUser))
                {
                    sql.Append(" and exists(select WarehouseID from T_WH_WHPower where UserID=@userID and WarehouseID=t1.Warehouse)");
                    parameters.Add(new DataParameter("userID", condition.CreateUser));
                }

                if (condition.IsDetail == false)
                {
                    sql.Append(" group by WarehouseName,t1.MatID,t4.MatCode,t4.MatName,ProductType");
                    page.SortExpression = "WarehouseName,MatCode";
                }
                else
                {
                    page.SortExpression = "WarehouseName,SaveSite,MatCode,MatBarCode,CreateTime";
                }

                //page.KeyName = "ID";

                using (IDataSession session = AppDataFactory.CreateMainSession())
                {
                    page = session.GetDataPage <WHMatAmount>(sql.ToString(), parameters.ToArray(), page);
                }

                return(page);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #19
0
        /// <summary>
        /// 入库(货品编号)
        /// </summary>
        /// <param name="bill">入库单</param>
        /// <returns></returns>
        public void InMatStorage(InStockBill bill)
        {
            //设置基本信息
            bill.BillNO   = this.GetNewBillNO();
            bill.BillDate = DateTime.Now;
            bill.Receiver = this.LoginUser.UserID;

            bill.ID         = Guid.NewGuid().ToString();
            bill.CREATEUSER = this.LoginUser.UserID;
            bill.CREATETIME = DateTime.Now;
            bill.UPDATEUSER = this.LoginUser.UserID;
            bill.UPDATETIME = bill.CREATETIME;

            int seq = 1;

            foreach (InStockDetail detail in bill.Details)
            {
                detail.ID         = Guid.NewGuid().ToString();
                detail.BillID     = bill.ID;
                detail.InAmount   = detail.MainUnitAmount;
                detail.CREATEUSER = bill.CREATEUSER;
                detail.CREATETIME = bill.CREATETIME;
                detail.UPDATEUSER = bill.UPDATEUSER;
                detail.UPDATETIME = bill.UPDATETIME;
                detail.Seq        = seq;
                seq++;
            }

            StockDAL   stockDal = new StockDAL();
            InStockDAL isDal    = new InStockDAL();

            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                try
                {
                    stockDal.Session = session;
                    isDal.Session    = session;

                    foreach (InStockDetail detail in bill.Details)
                    {
                        WHMatAmount inStock = new WHMatAmount();
                        inStock.Warehouse     = bill.Warehouse;
                        inStock.SaveSite      = detail.SaveSite;
                        inStock.MatBarCode    = detail.MatBarCode;
                        inStock.MatID         = detail.MatID;
                        inStock.ProductAmount = detail.InAmount;
                        inStock.ProductPrice  = detail.InPrice;
                        inStock.ProductSum    = detail.InSum;
                        inStock.Unit          = detail.UnitCode;
                        inStock.CreateUser    = this.LoginUser.UserID;
                        inStock.UpdateUser    = this.LoginUser.UserID;
                        inStock.MainAmount    = detail.MainUnitAmount;

                        stockDal.InStock(inStock);
                    }

                    isDal.Insert(bill);

                    session.CommitTs();
                }
                catch (Exception ex)
                {
                    session.RollbackTs();
                    throw ex;
                }
            }
        }