示例#1
0
 public static int Update(Zippy.Data.IDalProvider db, Z10DepotFlow entity)
 {
     return db.Update(entity);
 }
示例#2
0
 public static int Insert(Zippy.Data.IDalProvider db, Z10DepotFlow entity)
 {
     int rtn = db.Insert(entity);
     return rtn;
 }
示例#3
0
        public static int Insert(Zippy.Data.IDalProvider db, Z10DepotFlow entity)
        {
            int rtn = db.Insert(entity);

            return(rtn);
        }
示例#4
0
 public static int Update(Zippy.Data.IDalProvider db, Z10DepotFlow entity)
 {
     return(db.Update(entity));
 }
示例#5
0
        public static Z10DepotFlow Create(Zippy.Data.IDalProvider db, Int64 _FlowID)
        {
            Z10DepotFlow rtn = db.FindUnique <Z10DepotFlow>(_FlowID);

            return(rtn);
        }
示例#6
0
文件: Order.cs 项目: honj51/EAP
        /// <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);
        }
示例#7
0
文件: Order.cs 项目: honj51/EAP
        /// <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;
        }
示例#8
0
        /// <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);
        }
示例#9
0
        /// <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);
        }