예제 #1
0
파일: UseMatDAL.cs 프로젝트: 48401298/efp
        /// <summary>
        /// 获取列表
        /// </summary>
        /// <param name="condition">条件</param>
        /// <param name="page">数据页</param>
        /// <returns>数据页</returns>
        public DataPage GetList(UseMatBill condition, DataPage page)
        {
            string sql = null;
            List <DataParameter> parameters = new List <DataParameter>();

            try
            {
                sql = this.GetQuerySql(condition, ref parameters);
                //分页关键字段及排序
                page.KeyName = "PID";
                if (string.IsNullOrEmpty(page.SortExpression))
                {
                    page.SortExpression = "UPDATETIME DESC";
                }
                using (IDataSession session = AppDataFactory.CreateMainSession())
                {
                    page = session.GetDataPage <UseMatBill>(sql, parameters.ToArray(), page);
                }
                return(page);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #2
0
파일: UseMatDAL.cs 프로젝트: 48401298/efp
 public void Insert(UseMatBill bill)
 {
     using (IDataSession session = AppDataFactory.CreateMainSession())
     {
         session.OpenTs();
         session.Insert <UseMatBill>(bill);
         session.Insert <UseMatAmount>(bill.Amounts);
         session.Insert <UseMatDetail>(bill.Details);
         session.CommitTs();
     }
 }
예제 #3
0
파일: UseMatBLL.cs 프로젝트: 48401298/efp
        public void Update(UseMatBill bill)
        {
            bill.UPDATEUSER = this.LoginUser.UserID;
            bill.UPDATETIME = DateTime.Now;
            foreach (UseMatAmount item in bill.Amounts)
            {
                item.USEID = bill.PID;
            }

            foreach (UseMatDetail item in bill.Details)
            {
                item.USEID = bill.PID;
            }

            new UseMatDAL().Update(bill);
        }
예제 #4
0
파일: UseMatDAL.cs 프로젝트: 48401298/efp
        /// <summary>
        /// 获取领料单信息
        /// </summary>
        /// <param name="">条件</param>
        /// <returns>*信息</returns>
        public UseMatBill Get(UseMatBill model)
        {
            UseMatBill           info       = null;
            List <DataParameter> parameters = new List <DataParameter>();
            string sql = null;

            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                //基本信息
                sql = @"SELECT um.PID,si.BatchNumber,fi.PNAME AS FACTORYNAME,pi.PNAME AS ProduceName,pl.PLNAME AS PLName
                ,wh.Description as WarehouseName
                FROM T_WH_UseMat um
                INNER JOIN T_FP_SUPPLYINFO si on um.SUPPLYID = si.PID
                LEFT OUTER JOIN T_FP_ProducePlan pp ON  si.PLANID = pp.PID 
                LEFT OUTER JOIN T_FP_FACTORYINFO fi ON pp.FACTORYPID =fi.PID
                LEFT OUTER JOIN T_FP_PRODUCTINFO pi ON pp.PRODUCTIONID = pi.PID
                LEFT OUTER JOIN T_FP_PRODUCTLINE pl on pp.PRID = pl.PID
                LEFT OUTER JOIN T_WH_Warehouse wh on si.Warehouse=wh.ID
                where um.PID = @PID";

                info = session.Get <UseMatBill>(sql, new DataParameter("PID", model.PID));

                //领料数量
                sql = @"select mat.MatName,uma.AMOUNT,mu.Description as UnitName from T_WH_UseMatAmount uma
                        left outer join T_WH_Mat mat on uma.MATRIALID =  mat.ID
                        left outer join T_WH_MatUnit mu on mat.UnitCode = mu.ID";

                parameters.Clear();
                parameters.Add(new DataParameter("PID", model.PID));
                info.Amounts = session.GetList <UseMatAmount>(sql, parameters.ToArray()).ToList();

                //领料明细
                sql = @"select whs.Description as SaveSite,umd.MatBarCode,mat.MatName,umd.AMOUNT,twms.UnitName as Unit
                        from T_WH_UseMatDetail umd
                        left outer join T_WH_MatIDCode mic on umd.MatBarCode=mic.IDCode
                        left outer join T_WH_MatSpec twms on mic.MatSpec = twms.ID
                        left outer join T_WH_Site whs on umd.SaveSite =  whs.ID
                        left outer join T_WH_Mat mat on umd.MATRIALID =  mat.ID
                        left outer join T_WH_MatUnit mu on mat.UnitCode = mu.ID";
                parameters.Clear();
                parameters.Add(new DataParameter("PID", model.PID));
                info.Details = session.GetList <UseMatDetail>(sql, parameters.ToArray()).ToList();
            }
            return(info);
        }
예제 #5
0
        private void BindData()
        {
            UseMatBLL  bll       = null;
            DataPage   dp        = new DataPage();
            UseMatBill condition = new UseMatBill();

            try
            {
                bll = BLLFactory.CreateBLL <UseMatBLL>();
                condition.BatchNumber = this.BatchNumber.Text;


                PagerHelper.InitPageControl(this.AspNetPager1, dp, true);
                dp = bll.GetList(condition, dp);

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

                for (int i = 0; i < this.GvList.Rows.Count; i++)
                {
                    string pid = null;

                    if (this.GvList.DataKeys[i]["PID"] != null)
                    {
                        pid = this.GvList.DataKeys[i]["PID"].ToString();
                        string viewClick = string.Format("return view('{0}');", pid);

                        (this.GvList.Rows[i].Cells[6].FindControl("LinkView") as LinkButton).Attributes.Add("onclick", viewClick);
                        (this.GvList.Rows[i].Cells[6].FindControl("LinkView") as LinkButton).Text     = "查看";
                        (this.GvList.Rows[i].Cells[7].FindControl("LinkBuild") as LinkButton).Visible = false;
                    }
                    else
                    {
                        (this.GvList.Rows[i].Cells[6].FindControl("LinkView") as LinkButton).Enabled = false;
                    }
                }
                PagerHelper.SetPageControl(AspNetPager1, dp, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #6
0
파일: UseMatDAL.cs 프로젝트: 48401298/efp
        public void Delete(UseMatBill bill)
        {
            string sql = null;

            using (IDataSession session = AppDataFactory.CreateMainSession())
            {
                session.OpenTs();
                session.Delete <UseMatBill>(bill);

                sql = "delete from T_WH_UseMatAmount where USEID = @USEID";
                session.ExecuteSql(sql, new DataParameter("USEID", bill.PID));
                session.Insert <UseMatAmount>(bill.Amounts);

                sql = "delete from T_WH_UseMatDetail where USEID = @USEID";
                session.ExecuteSql(sql, new DataParameter("USEID", bill.PID));
                session.Insert <UseMatDetail>(bill.Details);
                session.CommitTs();
            }
        }
예제 #7
0
파일: UseMatBLL.cs 프로젝트: 48401298/efp
        public void Insert(UseMatBill bill)
        {
            bill.PID        = Guid.NewGuid().ToString();
            bill.CREATEUSER = this.LoginUser.UserID;
            bill.CREATETIME = DateTime.Now;
            bill.UPDATEUSER = this.LoginUser.UserID;
            bill.UPDATETIME = DateTime.Now;
            foreach (UseMatAmount item in bill.Amounts)
            {
                item.USEID = bill.PID;
            }

            foreach (UseMatDetail item in bill.Details)
            {
                item.USEID = bill.PID;
            }

            new UseMatDAL().Insert(bill);
        }
예제 #8
0
        private void BindData()
        {
            string     id   = Request.QueryString["id"];
            UseMatBLL  bll  = null;
            UseMatBill info = new UseMatBill();

            try
            {
                bll = BLLFactory.CreateBLL <UseMatBLL>();
                if (!string.IsNullOrEmpty(id))
                {
                    info.PID = id;
                    info     = bll.Get(info);
                    UIBindHelper.BindForm(this.Page, info);
                    PDNAME.Text       = info.ProduceName;
                    FNAME.Text        = info.FactoryName;
                    REMARK.Text       = info.REMARK;
                    DELIVERYDATE.Text = info.DELIVERYDATE.ToString();
                }

                //绑定明细
                DataGridResult <UseMatAmount> supplyMaterialInfo = new DataGridResult <UseMatAmount>();
                supplyMaterialInfo.Total = info.Amounts.Count;
                supplyMaterialInfo.Rows  = info.Amounts;

                this.hiMaterialList.Value = supplyMaterialInfo.GetJsonSource();

                DataGridResult <UseMatDetail> details = new DataGridResult <UseMatDetail>();
                details.Total = info.Details.Count;
                details.Rows  = info.Details;

                this.hiUseMatList.Value = details.GetJsonSource();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #9
0
파일: UseMatDAL.cs 프로젝트: 48401298/efp
        /// <summary>
        /// 获取查询语句
        /// </summary>
        /// <param name="user">查询条件</param>
        /// <param name="parameters">参数</param>
        /// <returns>查询语句</returns>
        private string GetQuerySql(UseMatBill condition, ref List <DataParameter> parameters)
        {
            StringBuilder sqlBuilder   = new StringBuilder();
            StringBuilder whereBuilder = new StringBuilder();

            try
            {
                //构成查询语句
                sqlBuilder.Append(@"SELECT si.PID as SUPPLYID,si.UPDATETIME,si.BatchNumber,si.DELIVERYDATE,fi.PNAME AS FACTORYNAME,
                    pi.PNAME AS ProduceName,pl.PLNAME AS PLNAME,wh.Description as WarehouseName,um.PID
                    FROM T_FP_SUPPLYINFO si 
                    LEFT OUTER JOIN T_FP_ProducePlan pp ON si.PLANID = pp.PID 
                    LEFT OUTER JOIN T_FP_FACTORYINFO fi ON pp.FACTORYPID =fi.PID
                    LEFT OUTER JOIN T_FP_PRODUCTINFO pi ON pp.PRODUCTIONID = pi.PID
                    LEFT OUTER JOIN T_FP_PRODUCTLINE pl on pp.PRID = pl.PID
                    LEFT OUTER JOIN T_WH_Warehouse wh on si.Warehouse=wh.ID
                    LEFT OUTER JOIN T_WH_UseMat um on si.PID = um.SUPPLYID
                    ");

                if (string.IsNullOrEmpty(condition.BatchNumber) == false)
                {
                    whereBuilder.Append(" AND si.BatchNumber like @BatchNumber");
                    parameters.Add(new DataParameter("BatchNumber", "%" + condition.BatchNumber + "%"));
                }

                //查询条件
                if (whereBuilder.Length > 0)
                {
                    sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4));
                }
                return(sqlBuilder.ToString());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #10
0
파일: UseMatBLL.cs 프로젝트: 48401298/efp
        public UseMatBill Build(string supplyID)
        {
            UseMatBill bill = new UseMatBill();

            SupplyInfo supply = new SupplyInfo()
            {
                PID = supplyID
            };

            //获取要货信息
            supply         = new SupplyInfoBLL().Get(supply);
            supply.Details = new SupplyInfoBLL().GetList(supply.PID);

            bill.PID      = Guid.NewGuid().ToString();
            bill.SUPPLYID = supply.PID;
            bill.Amounts  = new List <UseMatAmount>();
            bill.Details  = new List <UseMatDetail>();

            UseMatDAL umDAL = new UseMatDAL();

            foreach (SupplyMaterialInfo detail in supply.Details)
            {
                bill.Amounts.Add(new UseMatAmount {
                    PID = Guid.NewGuid().ToString(), USEID = bill.PID, MATRIALID = detail.MATRIALID, AMOUNT = detail.AMOUNT, Unit = detail.Unit
                });
                //获取可用库存
                List <WHMatAmount> stockList = new UseMatDAL().GetMayUseStock(new WHMatAmount {
                    Warehouse = supply.Warehouse, MatID = detail.MATRIALID
                });

                if (stockList.Count == 0)
                {
                    continue;
                }

                int index = 0;
                while (detail.AMOUNT > 0)
                {
                    if (index > stockList.Count - 1)
                    {
                        break;
                    }

                    detail.AMOUNT = detail.AMOUNT - Convert.ToInt32(stockList[0].MainAmount);

                    //更新库存
                    stockList[index].MainAmount    = 0;
                    stockList[index].ProductAmount = 0;

                    bill.Details.Add(new UseMatDetail
                    {
                        PID        = Guid.NewGuid().ToString(),
                        USEID      = bill.PID,
                        SaveSite   = stockList[index].SaveSite,
                        MatBarCode = stockList[index].MatBarCode,
                        MATRIALID  = stockList[index].MatID,
                        AMOUNT     = stockList[index].MainAmount,
                        Unit       = stockList[index].Unit
                    });

                    index++;
                }
            }

            this.Insert(bill);

            return(bill);
        }
예제 #11
0
파일: UseMatBLL.cs 프로젝트: 48401298/efp
 /// <summary>
 /// 获取列表
 /// </summary>
 /// <param name="condition">条件</param>
 /// <param name="page">数据页</param>
 /// <returns>数据页</returns>
 public DataPage GetList(UseMatBill condition, DataPage page)
 {
     return(new UseMatDAL().GetList(condition, page));
 }
예제 #12
0
파일: UseMatBLL.cs 프로젝트: 48401298/efp
 public void Delete(UseMatBill bill)
 {
     new UseMatDAL().Delete(bill);
 }
예제 #13
0
파일: UseMatBLL.cs 프로젝트: 48401298/efp
 /// <summary>
 /// 获取领料单信息
 /// </summary>
 /// <param name="">条件</param>
 /// <returns>*信息</returns>
 public UseMatBill Get(UseMatBill model)
 {
     return(new UseMatDAL().Get(model));
 }