/// <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); }
/// <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); }
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)); }
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; } }
/// <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; } }
/// <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)); }
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; } }
/// <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(); } }
/// <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); }
/// <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); }
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; } }
/// <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); }
/// <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); } }
/// <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); }
/// <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); }
/// <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; } }
public void Update(WHMatAmount info) { Session.Update <WHMatAmount>(info); }
/// <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; } }
/// <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; } } }