public static int Update(Zippy.Data.IDalProvider db, Z10DepotFlow entity) { return db.Update(entity); }
public static int Insert(Zippy.Data.IDalProvider db, Z10DepotFlow entity) { int rtn = db.Insert(entity); return rtn; }
public static int Insert(Zippy.Data.IDalProvider db, Z10DepotFlow entity) { int rtn = db.Insert(entity); return(rtn); }
public static int Update(Zippy.Data.IDalProvider db, Z10DepotFlow entity) { return(db.Update(entity)); }
public static Z10DepotFlow Create(Zippy.Data.IDalProvider db, Int64 _FlowID) { Z10DepotFlow rtn = db.FindUnique <Z10DepotFlow>(_FlowID); return(rtn); }
/// <summary> /// 单项入库和出库(按照明细一个一个的入库) /// </summary> /// <param name="tenantID"></param> /// <param name="userID"></param> /// <param name="item"></param> /// <param name="itemHappened">当前发生的入库量</param> /// <returns></returns> public static void PutInOut(Guid? tenantID, Guid? userID, Z10Cabbage.Entity.Z10OrderItem item, decimal itemHappened) { var db = Zippy.Data.StaticDB.DB; if (itemHappened > 0) //入库 ,数量为正数 则入库,否则出库 { #region 入库 //更新商品库 if (!db.Exists<Z10DepotProduct>("ProductID=@ProductID and DepotID=@DepotID and TenantID=@TenantID", db.CreateParameter("ProductID", item.ProductID), db.CreateParameter("DepotID", item.DepotID), db.CreateParameter("TenantID", tenantID))) { Z10DepotProduct xProduct = new Z10DepotProduct(); xProduct.TenantID = tenantID; xProduct.ProductID = item.ProductID; xProduct.DepotID = item.DepotID; xProduct.StockSum = itemHappened; xProduct.InSum = itemHappened; xProduct.Creator = userID; db.Insert(xProduct); } else { string sqlUpdateDepot = "update Z10DepotProduct set StockSum=StockSum + @itemHappened, InSum=InSum + @itemHappened" + " where ProductID=@ProductID and DepotID=@DepotID"; db.ExecuteNonQuery(sqlUpdateDepot, db.CreateParameter("itemHappened", itemHappened), db.CreateParameter("ProductID", item.ProductID), db.CreateParameter("DepotID", item.DepotID)); } //更新库存详情 Z10DepotProductDetail dpd = new Z10DepotProductDetail(); dpd.TenantID = tenantID; dpd.ProductID = item.ProductID; dpd.DepotID = item.DepotID; dpd.OrderID = item.OrderID; dpd.StockSum = itemHappened; dpd.InSum = itemHappened; dpd.ExtColor = item.ExtColor; dpd.ExtSize = item.ExtSize; dpd.ExtSpecification = item.ExtSpecification; dpd.ExtModel1 = item.ExtModel1; dpd.ExtModel2 = item.ExtModel2; dpd.ExtModel3 = item.ExtModel3; dpd.ExtModel4 = item.ExtModel4; dpd.ExtModel5 = item.ExtModel5; dpd.PriceStock = item.Price; dpd.Creator = userID; db.Insert(dpd); //更新订单项 db.ColAdd<Z10OrderItem>("CountHappend", itemHappened, item.ItemID); #endregion } else { #region 出库 var productDetail = db.FindUnique<Z10Cabbage.Entity.Z10DepotProductDetail>(item.DepotProductDetailID); if (productDetail == null || productDetail.StockSum <= 0) { throw new Exception("错误的库存商品,或者商品数量为0。"); } if (productDetail.StockSum < Math.Abs(itemHappened)) { throw new Exception("库存数量太少,无法完成此次出货。"); } //更新总库存 string sqlUpdateDepot = "update Z10DepotProduct set StockSum=StockSum + @itemHappened, OutSum=OutSum + @itemHappened" + " where ProductID=@ProductID and DepotID=@DepotID"; db.ExecuteNonQuery(sqlUpdateDepot, db.CreateParameter("itemHappened", itemHappened), db.CreateParameter("ProductID", item.ProductID), db.CreateParameter("DepotID", item.DepotID)); //更新单项(型号)库存 string sqlUpdateDepotDetail = "update Z10DepotProductDetail set StockSum=StockSum + @itemHappened, OutSum=OutSum + @itemHappened" + " where DepotProductID=@DepotProductID"; db.ExecuteNonQuery(sqlUpdateDepotDetail, db.CreateParameter("itemHappened", itemHappened), db.CreateParameter("DepotProductID", item.DepotProductDetailID)); //更新订单项 db.ColAdd<Z10OrderItem>("CountHappend2", itemHappened, item.ItemID); #endregion } //增加库存流水 Z10DepotFlow xflow = new Z10DepotFlow(); xflow.Creator = userID; xflow.Count = itemHappened; xflow.DepotID = item.DepotID; xflow.OrderID = item.OrderID; xflow.ProductID = item.ProductID; xflow.TenantID = tenantID; db.Insert(xflow); }
/// <summary> /// 采购出入库 /// </summary> /// <param name="tenantID">租户</param> /// <param name="userID">操作者</param> /// <param name="oStatus">当前状态</param> /// <param name="hsItemCount">各个商品的具体入库数量</param> /// <param name="db"></param> /// <returns></returns> public bool InOutDepot(Guid tenantID, Guid userID, EAP.Logic.Z10.OrderStatus oStatus, Hashtable hsItemCount, Zippy.Data.IDalProvider db) { throw new Exception("这个入库方式需要商榷。"); int orderSts = Z10Order.OrderStatus ?? 0; if ((orderSts & (int)EAP.Logic.Z10.OrderStatus.Outted) == (int)EAP.Logic.Z10.OrderStatus.Inned || (orderSts & (int)EAP.Logic.Z10.OrderStatus.Finished) == (int)EAP.Logic.Z10.OrderStatus.Finished || (orderSts & (int)EAP.Logic.Z10.OrderStatus.Archived) == (int)EAP.Logic.Z10.OrderStatus.Archived) { throw new Exception("已经出入库的订单,已经结束的订单和已经存档的订单不能出入库。"); } Z10Order xorder = new Z10Order(); xorder.OrderID = Z10Order.OrderID; if (oStatus == OrderStatus.Inned && ((Z10Order.OrderStatus ?? 0) & (int)OrderStatus.InnedSome) == (int)OrderStatus.InnedSome) { oStatus = oStatus & (~OrderStatus.InnedSome); xorder.OrderStatus = (Z10Order.OrderStatus ?? 0) & (~(int)OrderStatus.InnedSome); xorder.OrderStatus = (xorder.OrderStatus ?? 0) | (int)oStatus; } else if (oStatus == OrderStatus.Outted && ((Z10Order.OrderStatus ?? 0) & (int)OrderStatus.OuttedSome) == (int)OrderStatus.OuttedSome) { oStatus = oStatus & (~OrderStatus.OuttedSome); xorder.OrderStatus = (Z10Order.OrderStatus ?? 0) & (~(int)OrderStatus.OuttedSome); xorder.OrderStatus = (xorder.OrderStatus ?? 0) | (int)oStatus; } else { xorder.OrderStatus = (Z10Order.OrderStatus ?? 0) | (int)oStatus; } db.Update(xorder); Z10DepotFlow dflow = new Z10DepotFlow(); foreach (Z10OrderItem item in Items) { decimal itemHappened = hsItemCount[item.ItemID].ToDecimal(); if ((oStatus & OrderStatus.Outted) == OrderStatus.Outted || (oStatus & OrderStatus.OuttedSome) == OrderStatus.OuttedSome) db.ColAdd<Z10OrderItem>("CountHappend2", itemHappened, item.ItemID); else db.ColAdd<Z10OrderItem>("CountHappend", itemHappened, item.ItemID); if (item.CountHappend != 0 || item.CountHappend2 != 0) { dflow.FlowID = null; dflow.OrderID = Z10Order.OrderID; dflow.Count = itemHappened; dflow.DepotID = item.DepotID; dflow.Creator = userID; dflow.ProductID = item.ProductID; dflow.TenantID = tenantID; db.Insert(dflow); if (!db.Exists<Z10DepotProduct>("ProductID=@ProductID and DepotID=@DepotID and TenantID=@TenantID", db.CreateParameter("ProductID", item.ProductID), db.CreateParameter("DepotID", item.DepotID), db.CreateParameter("TenantID", tenantID))) { Z10DepotProduct xProduct = new Z10DepotProduct(); xProduct.TenantID = tenantID; xProduct.ProductID = item.ProductID; xProduct.DepotID = item.DepotID; xProduct.StockSum = itemHappened; db.Insert(xProduct); } else { string sqlUpdateDepot = "update Z10DepotProduct set StockSum=StockSum + @itemHappened, InSum=InSum + @itemHappened" + " where ProductID=@ProductID and DepotID=@DepotID"; db.ExecuteNonQuery(sqlUpdateDepot, db.CreateParameter("itemHappened", itemHappened), db.CreateParameter("ProductID", item.ProductID), db.CreateParameter("DepotID", item.DepotID)); } } } return true; }
/// <summary> /// 采购出入库 /// </summary> /// <param name="tenantID">租户</param> /// <param name="userID">操作者</param> /// <param name="oStatus">当前状态</param> /// <param name="hsItemCount">各个商品的具体入库数量</param> /// <param name="db"></param> /// <returns></returns> public bool InOutDepot(Guid tenantID, Guid userID, EAP.Logic.Z10.OrderStatus oStatus, Hashtable hsItemCount, Zippy.Data.IDalProvider db) { throw new Exception("这个入库方式需要商榷。"); int orderSts = Z10Order.OrderStatus ?? 0; if ((orderSts & (int)EAP.Logic.Z10.OrderStatus.Outted) == (int)EAP.Logic.Z10.OrderStatus.Inned || (orderSts & (int)EAP.Logic.Z10.OrderStatus.Finished) == (int)EAP.Logic.Z10.OrderStatus.Finished || (orderSts & (int)EAP.Logic.Z10.OrderStatus.Archived) == (int)EAP.Logic.Z10.OrderStatus.Archived) { throw new Exception("已经出入库的订单,已经结束的订单和已经存档的订单不能出入库。"); } Z10Order xorder = new Z10Order(); xorder.OrderID = Z10Order.OrderID; if (oStatus == OrderStatus.Inned && ((Z10Order.OrderStatus ?? 0) & (int)OrderStatus.InnedSome) == (int)OrderStatus.InnedSome) { oStatus = oStatus & (~OrderStatus.InnedSome); xorder.OrderStatus = (Z10Order.OrderStatus ?? 0) & (~(int)OrderStatus.InnedSome); xorder.OrderStatus = (xorder.OrderStatus ?? 0) | (int)oStatus; } else if (oStatus == OrderStatus.Outted && ((Z10Order.OrderStatus ?? 0) & (int)OrderStatus.OuttedSome) == (int)OrderStatus.OuttedSome) { oStatus = oStatus & (~OrderStatus.OuttedSome); xorder.OrderStatus = (Z10Order.OrderStatus ?? 0) & (~(int)OrderStatus.OuttedSome); xorder.OrderStatus = (xorder.OrderStatus ?? 0) | (int)oStatus; } else { xorder.OrderStatus = (Z10Order.OrderStatus ?? 0) | (int)oStatus; } db.Update(xorder); Z10DepotFlow dflow = new Z10DepotFlow(); foreach (Z10OrderItem item in Items) { decimal itemHappened = hsItemCount[item.ItemID].ToDecimal(); if ((oStatus & OrderStatus.Outted) == OrderStatus.Outted || (oStatus & OrderStatus.OuttedSome) == OrderStatus.OuttedSome) { db.ColAdd <Z10OrderItem>("CountHappend2", itemHappened, item.ItemID); } else { db.ColAdd <Z10OrderItem>("CountHappend", itemHappened, item.ItemID); } if (item.CountHappend != 0 || item.CountHappend2 != 0) { dflow.FlowID = null; dflow.OrderID = Z10Order.OrderID; dflow.Count = itemHappened; dflow.DepotID = item.DepotID; dflow.Creator = userID; dflow.ProductID = item.ProductID; dflow.TenantID = tenantID; db.Insert(dflow); if (!db.Exists <Z10DepotProduct>("ProductID=@ProductID and DepotID=@DepotID and TenantID=@TenantID", db.CreateParameter("ProductID", item.ProductID), db.CreateParameter("DepotID", item.DepotID), db.CreateParameter("TenantID", tenantID))) { Z10DepotProduct xProduct = new Z10DepotProduct(); xProduct.TenantID = tenantID; xProduct.ProductID = item.ProductID; xProduct.DepotID = item.DepotID; xProduct.StockSum = itemHappened; db.Insert(xProduct); } else { string sqlUpdateDepot = "update Z10DepotProduct set StockSum=StockSum + @itemHappened, InSum=InSum + @itemHappened" + " where ProductID=@ProductID and DepotID=@DepotID"; db.ExecuteNonQuery(sqlUpdateDepot, db.CreateParameter("itemHappened", itemHappened), db.CreateParameter("ProductID", item.ProductID), db.CreateParameter("DepotID", item.DepotID)); } } } return(true); }
/// <summary> /// 单项入库和出库(按照明细一个一个的入库) /// </summary> /// <param name="tenantID"></param> /// <param name="userID"></param> /// <param name="item"></param> /// <param name="itemHappened">当前发生的入库量</param> /// <returns></returns> public static void PutInOut(Guid?tenantID, Guid?userID, Z10Cabbage.Entity.Z10OrderItem item, decimal itemHappened) { var db = Zippy.Data.StaticDB.DB; if (itemHappened > 0) //入库 ,数量为正数 则入库,否则出库 { #region 入库 //更新商品库 if (!db.Exists <Z10DepotProduct>("ProductID=@ProductID and DepotID=@DepotID and TenantID=@TenantID", db.CreateParameter("ProductID", item.ProductID), db.CreateParameter("DepotID", item.DepotID), db.CreateParameter("TenantID", tenantID))) { Z10DepotProduct xProduct = new Z10DepotProduct(); xProduct.TenantID = tenantID; xProduct.ProductID = item.ProductID; xProduct.DepotID = item.DepotID; xProduct.StockSum = itemHappened; xProduct.InSum = itemHappened; xProduct.Creator = userID; db.Insert(xProduct); } else { string sqlUpdateDepot = "update Z10DepotProduct set StockSum=StockSum + @itemHappened, InSum=InSum + @itemHappened" + " where ProductID=@ProductID and DepotID=@DepotID"; db.ExecuteNonQuery(sqlUpdateDepot, db.CreateParameter("itemHappened", itemHappened), db.CreateParameter("ProductID", item.ProductID), db.CreateParameter("DepotID", item.DepotID)); } //更新库存详情 Z10DepotProductDetail dpd = new Z10DepotProductDetail(); dpd.TenantID = tenantID; dpd.ProductID = item.ProductID; dpd.DepotID = item.DepotID; dpd.OrderID = item.OrderID; dpd.StockSum = itemHappened; dpd.InSum = itemHappened; dpd.ExtColor = item.ExtColor; dpd.ExtSize = item.ExtSize; dpd.ExtSpecification = item.ExtSpecification; dpd.ExtModel1 = item.ExtModel1; dpd.ExtModel2 = item.ExtModel2; dpd.ExtModel3 = item.ExtModel3; dpd.ExtModel4 = item.ExtModel4; dpd.ExtModel5 = item.ExtModel5; dpd.PriceStock = item.Price; dpd.Creator = userID; db.Insert(dpd); //更新订单项 db.ColAdd <Z10OrderItem>("CountHappend", itemHappened, item.ItemID); #endregion } else { #region 出库 var productDetail = db.FindUnique <Z10Cabbage.Entity.Z10DepotProductDetail>(item.DepotProductDetailID); if (productDetail == null || productDetail.StockSum <= 0) { throw new Exception("错误的库存商品,或者商品数量为0。"); } if (productDetail.StockSum < Math.Abs(itemHappened)) { throw new Exception("库存数量太少,无法完成此次出货。"); } //更新总库存 string sqlUpdateDepot = "update Z10DepotProduct set StockSum=StockSum + @itemHappened, OutSum=OutSum + @itemHappened" + " where ProductID=@ProductID and DepotID=@DepotID"; db.ExecuteNonQuery(sqlUpdateDepot, db.CreateParameter("itemHappened", itemHappened), db.CreateParameter("ProductID", item.ProductID), db.CreateParameter("DepotID", item.DepotID)); //更新单项(型号)库存 string sqlUpdateDepotDetail = "update Z10DepotProductDetail set StockSum=StockSum + @itemHappened, OutSum=OutSum + @itemHappened" + " where DepotProductID=@DepotProductID"; db.ExecuteNonQuery(sqlUpdateDepotDetail, db.CreateParameter("itemHappened", itemHappened), db.CreateParameter("DepotProductID", item.DepotProductDetailID)); //更新订单项 db.ColAdd <Z10OrderItem>("CountHappend2", itemHappened, item.ItemID); #endregion } //增加库存流水 Z10DepotFlow xflow = new Z10DepotFlow(); xflow.Creator = userID; xflow.Count = itemHappened; xflow.DepotID = item.DepotID; xflow.OrderID = item.OrderID; xflow.ProductID = item.ProductID; xflow.TenantID = tenantID; db.Insert(xflow); }