Beispiel #1
0
        public ActionResult SaveOrder(Z10Order xorder, bool?IsOutDepot, bool?IsPay, long?Bank)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder  = xorder.DateOrder;
            order.Z10Order.DateShip   = xorder.DateOrder;
            order.Z10Order.Currency   = xorder.Currency;
            order.Z10Order.Remark     = xorder.Remark;
            order.Z10Order.FeeShip    = xorder.FeeShip;
            order.Z10Order.FeeShould  = xorder.FeeShould;

            order.Save(_tenant.TenantID.Value, db, null);

            db.ColAdd <Z01Customer>("ManageHot", xorder.CustomerID ?? 0);


            bool isout = IsOutDepot ?? false;
            bool ispay = IsPay ?? false;

            if (isout)
            {
                order.SaleOutDepot(_tenant.TenantID, _user.UserID);
            }
            if (ispay)
            {
                order.Pay(_tenant.TenantID, _user.UserID, xorder.FeeShould.Value, Bank);
            }
            Session.Remove("Z10Order");
            return(Content("1"));
        }
Beispiel #2
0
        public ActionResult SavePutOut(int orderStatus)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            Z10Order myOrder = new Z10Order();

            myOrder.OrderID  = order.Z10Order.OrderID;
            myOrder.DateShip = DateTime.Now;

            db.Update <Z10Order>(myOrder);

            Hashtable hsItem = new Hashtable();

            foreach (var item in order.Items)
            {
                hsItem.Add(item.ItemID, -item.CountHappend2);
            }

            var oStatus = (EAP.Logic.Z10.OrderStatus)orderStatus;

            var result = order.InOutDepot(_tenant.TenantID.Value, _user.UserID.Value, oStatus, hsItem, db);

            if (result)
            {
                return(Content("1"));
            }
            else
            {
                return(Content("0"));
            }
        }
Beispiel #3
0
        public ActionResult SaveOrderStatus(long id, int?orderStatus)
        {
            OrderStatus oStatus = (OrderStatus)(orderStatus ?? 0);
            Z10Order    xorder  = db.FindUnique <Z10Order>(id);

            if (oStatus == OrderStatus.Inned && ((xorder.OrderStatus ?? 0) & (int)OrderStatus.InnedSome) == (int)OrderStatus.InnedSome)
            {
                oStatus            = oStatus & (~OrderStatus.InnedSome);
                xorder.OrderStatus = (xorder.OrderStatus ?? 0) & (~(int)OrderStatus.InnedSome);
                xorder.OrderStatus = (xorder.OrderStatus ?? 0) | (int)oStatus;
            }
            else if (oStatus == OrderStatus.Outted && ((xorder.OrderStatus ?? 0) & (int)OrderStatus.OuttedSome) == (int)OrderStatus.OuttedSome)
            {
                oStatus            = oStatus & (~OrderStatus.OuttedSome);
                xorder.OrderStatus = (xorder.OrderStatus ?? 0) & (~(int)OrderStatus.OuttedSome);
                xorder.OrderStatus = (xorder.OrderStatus ?? 0) | (int)oStatus;
            }
            else
            {
                xorder.OrderStatus = (xorder.OrderStatus ?? 0) | (int)oStatus;
            }
            Z10Order xorder1 = new Z10Order();

            xorder1.OrderID     = id;
            xorder1.OrderStatus = xorder.OrderStatus;

            db.Update(xorder1);
            return(Content("1"));
        }
Beispiel #4
0
        public ActionResult EditSave(long id, Z10Order xorder)
        {
            if ((_crud & Zippy.SaaS.Entity.CRUD.Update) != Zippy.SaaS.Entity.CRUD.Update)
            {
                return(RedirectToAction("NoPermission", "Error"));
            }

            EAP.Logic.Z10.Order.Snap(id, _tenant.TenantID.Value, _user.UserID.Value, db); //制作快照

            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();
            order.Z10Order.OrderID    = null;
            order.Z10Order.OriID      = id;
            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder  = xorder.DateOrder;
            order.Z10Order.DateShip   = xorder.DateShip;
            order.Z10Order.Currency   = xorder.Currency;
            order.Z10Order.Remark     = xorder.Remark;

            foreach (Z10OrderItem item in order.Items)
            {
                item.ItemID = null;
            }
            order.Save(_tenant.TenantID.Value, db, id);
            Session.Remove("Z10Order");
            return(Content("1"));
        }
Beispiel #5
0
        public ActionResult SaveOrder(Z10Order xorder, bool?IsInDepot, bool?IsPay, long?Bank)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder  = xorder.DateOrder;
            order.Z10Order.DateShip   = xorder.DateOrder;
            order.Z10Order.Currency   = xorder.Currency;
            order.Z10Order.Remark     = xorder.Remark;
            order.Z10Order.OrderType  = (int)EAP.Logic.Z10.OrderTypes.Purchase;
            order.Z10Order.FeeShip    = xorder.FeeShip;
            order.Z10Order.FeeShould  = xorder.FeeShould;

            order.Save(_tenant.TenantID.Value, db, null);
            Session.Remove("Z10Order");

            bool isin  = IsInDepot ?? false;
            bool ispay = IsPay ?? false;

            if (isin)
            {
                order.StockInDepot(_tenant.TenantID, _user.UserID);
            }
            if (ispay)
            {
                order.Pay(_tenant.TenantID, _user.UserID, -xorder.FeeShould.Value, Bank);
            }
            return(Content("1"));
        }
Beispiel #6
0
 public static Z01Beetle.Entity.Z01Customer GetCustomer(this Z10Order order, Zippy.Data.IDalProvider db)
 {
     Z01Beetle.Entity.Z01Customer rtn = db.FindUnique <Z01Beetle.Entity.Z01Customer>("CustomerID=@CustomerID", db.CreateParameter("CustomerID", order.CustomerID));
     if (rtn == null)
     {
         rtn = new Z01Beetle.Entity.Z01Customer();
     }
     return(rtn);
 }
Beispiel #7
0
        public ActionResult Terms(long id)
        {
            Z10Order xorder = db.FindUnique <Z10Order>("OrderID=@OrderID and TenantID=@TenantID", db.CreateParameter("OrderID", id),
                                                       db.CreateParameter("TenantID", _tenant.TenantID));

            ViewData["TempOptions"] = EAP.Logic.Z01.HtmlHelper.PaperTemplateSelectOptions(_tenant.TenantID.Value, db);

            return(View(xorder));
        }
Beispiel #8
0
        public ActionResult Terms(long id, FormCollection cols)
        {
            Z10Order xorder = new Z10Order();

            xorder.OrderID = id;
            xorder.Terms   = cols["Terms"];
            db.Update(xorder);
            return(Return());
        }
Beispiel #9
0
        public static int Delete(Zippy.Data.IDalProvider db, Z10Order xOrder)
        {
            //db.Delete<Z10OrderItem>("OrderID=@OrderID", db.CreateParameter("OrderID", _OrderID));
            //db.Delete<Z10Order>(_OrderID);

            xOrder.DeleteFlag = (int)EAP.Logic.DeleteFlags.Deleted;
            var result = db.Update<Z10Order>(xOrder);

            return result;
        }
Beispiel #10
0
        public static int Delete(Zippy.Data.IDalProvider db, Z10Order xOrder)
        {
            //db.Delete<Z10OrderItem>("OrderID=@OrderID", db.CreateParameter("OrderID", _OrderID));
            //db.Delete<Z10Order>(_OrderID);

            xOrder.DeleteFlag = (int)EAP.Logic.DeleteFlags.Deleted;
            var result = db.Update <Z10Order>(xOrder);

            return(result);
        }
Beispiel #11
0
        /// <summary>
        /// 改用户
        /// </summary>
        /// <param name="oid"></param>
        /// <param name="cid"></param>
        /// <returns></returns>
        public ActionResult ChangeOrderCustomer(long oid, long cid)
        {
            EAP.Logic.DictResponse res = new Logic.DictResponse();
            Z10Order data = new Z10Order();
            data.OrderID = oid;
            data.CustomerID = cid;
            db.Update(data);
            res._state = true;

            return Content(res.ToJson());
        }
Beispiel #12
0
        /// <summary>
        /// 改用户
        /// </summary>
        /// <param name="oid"></param>
        /// <param name="cid"></param>
        /// <returns></returns>
        public ActionResult ChangeOrderCustomer(long oid, long cid)
        {
            EAP.Logic.DictResponse res = new Logic.DictResponse();
            Z10Order data = new Z10Order();

            data.OrderID    = oid;
            data.CustomerID = cid;
            db.Update(data);
            res._state = true;

            return(Content(res.ToJson()));
        }
Beispiel #13
0
        public ActionResult doCreate(Z10Order xorder)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            order.Z10Order.DateOrder = xorder.DateOrder;
            order.Z10Order.Remark    = xorder.Remark;
            order.Z10Order.OrderType = (int)EAP.Logic.Z10.OrderTypes.Transfer;

            order.Save(_tenant.TenantID.Value, db, null);

            Session.Remove("Z10Order");
            return(Content("1"));
        }
Beispiel #14
0
        public ActionResult savefee(long id, decimal?ship, decimal?feeShould)
        {
            decimal  xship      = ship ?? 0;
            decimal  xfeeshould = feeShould ?? 0;
            Z10Order order      = new Z10Order();

            order.OrderID   = id;
            order.FeeShip   = ship;
            order.FeeShould = feeShould;

            db.Update(order);
            return(Content("1"));
        }
Beispiel #15
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="tenantID"></param>
        /// <param name="userID"></param>
        /// <param name="oStatus">用户指定的状态</param>
        /// <param name="paidAmount">支付金额</param>
        /// <param name="bankID">银行</param>
        /// <param name="db"></param>
        /// <returns></returns>
        public bool Pay(Guid tenantID, Guid userID, EAP.Logic.Z10.OrderStatus oStatus, decimal paidAmount, long?bankID)
        {
            int orderSts = Z10Order.OrderStatus ?? 0;

            if ((orderSts & (int)EAP.Logic.Z10.OrderStatus.Paid) == (int)EAP.Logic.Z10.OrderStatus.Paid ||
                (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("已经支付的订单,已经结束的订单和已经存档的订单不能支付。");
            }

            Zippy.Data.IDalProvider db = Zippy.Data.StaticDB.DB;

            Z10Order xorder = new Z10Order();

            xorder.OrderID = Z10Order.OrderID;
            xorder.FeePaid = Z10Order.FeePaid + paidAmount;

            if (oStatus == OrderStatus.Paid)
            {
                xorder.OrderStatus = orderSts & ~(int)OrderStatus.PaidSome;
                xorder.OrderStatus = (xorder.OrderStatus ?? 0) | (int)oStatus;
            }
            else
            {
                //throw new Exception(orderSts.ToString() + "  -- " + oStatus + " -- " + ((Z10Order.OrderStatus ?? 0) | (int)oStatus));
                xorder.OrderStatus = orderSts | (int)oStatus;
            }

            db.Update(xorder);

            Z01Beetle.Entity.Z01FinancialFlow dflow = new Z01Beetle.Entity.Z01FinancialFlow();

            dflow.FlowID   = null;
            dflow.OrderID  = Z10Order.OrderID;
            dflow.Amount   = paidAmount;
            dflow.Creator  = userID;
            dflow.TenantID = tenantID;
            dflow.BankID   = bankID;
            dflow.Currency = Z10Order.Currency;
            db.Insert(dflow);


            //string sqlUpdateStatus = "update Z10Order set OrderStatus=OrderStatus|@paid where OrderID=@orderid ";
            //Zippy.Data.StaticDB.DB.ExecuteNonQuery(sqlUpdateStatus,
            //    Zippy.Data.StaticDB.DB.CreateParameter("paid", (int)EAP.Logic.Z10.OrderStatus.Paid),
            //    Zippy.Data.StaticDB.DB.CreateParameter("orderid", Z10Order.OrderID ?? 0));


            return(true);
        }
Beispiel #16
0
        public ActionResult doReturned(Z10Order xorder)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder  = xorder.DateOrder;
            order.Z10Order.Currency   = xorder.Currency;
            order.Z10Order.Remark     = xorder.Remark;
            order.Z10Order.OrderType  = (int)EAP.Logic.Z10.OrderTypes.PurchaseReturn;

            order.Save(_tenant.TenantID.Value, db, null);

            Session.Remove("Z10Order");
            return(Content("1"));
        }
Beispiel #17
0
 /// <summary>
 /// 计算并保存订单费用
 /// </summary>
 /// <param name="id"></param>
 /// <param name="ship"></param>
 /// <returns></returns>
 public ActionResult calfee(long id, decimal? ship)
 {
     if (id == 0)
     {
         var order0 = EAP.Logic.Z10.Order.CreateWithSession();
         var sum = order0.Items.Sum(s => s.Total) ?? 0;
         return Content(sum.ToString("0.##"));
     }
     decimal xship = ship ?? 0;
     //decimal xfeeshould = feeshould ?? 0;
     Z10Order order = new Z10Order();
     order.OrderID = id;
     order.FeeShip = ship;
     var sumTotal = db.ExecuteScalar("update Z10OrderItem set Total=Price*CountShould where OrderID=@orderid;  select sum(Total) from Z10OrderItem where OrderID=@orderid", db.CreateParameter("orderid", id)).ToDecimal();
     order.Total = sumTotal;
     db.Update(order);
     return Content(sumTotal.ToString());
 }
Beispiel #18
0
        public ActionResult SaveOutDepot(Z10Order xorder)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder  = xorder.DateOrder;
            order.Z10Order.DateShip   = xorder.DateShip;
            order.Z10Order.Currency   = xorder.Currency;
            order.Z10Order.Remark     = xorder.Remark;
            order.Z10Order.OrderType  = (int?)EAP.Logic.Z10.OrderTypes.Sale;
            order.Z10Order.FeeShip    = xorder.FeeShip;
            order.Z10Order.FeeShould  = xorder.FeeShould;

            order.Save(_tenant.TenantID.Value, db, null);
            Session.Remove("Z10Order");

            return(Content("1"));
        }
Beispiel #19
0
        /// <summary>
        /// 计算并保存订单费用
        /// </summary>
        /// <param name="id"></param>
        /// <param name="ship"></param>
        /// <returns></returns>
        public ActionResult calfee(long id, decimal?ship)
        {
            if (id == 0)
            {
                var order0 = EAP.Logic.Z10.Order.CreateWithSession();
                var sum    = order0.Items.Sum(s => s.Total) ?? 0;
                return(Content(sum.ToString("0.##")));
            }
            decimal xship = ship ?? 0;
            //decimal xfeeshould = feeshould ?? 0;
            Z10Order order = new Z10Order();

            order.OrderID = id;
            order.FeeShip = ship;
            var sumTotal = db.ExecuteScalar("update Z10OrderItem set Total=Price*CountShould where OrderID=@orderid;  select sum(Total) from Z10OrderItem where OrderID=@orderid", db.CreateParameter("orderid", id)).ToDecimal();

            order.Total = sumTotal;
            db.Update(order);
            return(Content(sumTotal.ToString()));
        }
Beispiel #20
0
        public ActionResult PurchaseSave(Z10Order xorder)
        {
            if ((_crud & Zippy.SaaS.Entity.CRUD.Create) != Zippy.SaaS.Entity.CRUD.Create)
            {
                return(RedirectToAction("NoPermission", "Error"));
            }
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder  = xorder.DateOrder;
            order.Z10Order.DateShip   = xorder.DateShip;
            order.Z10Order.Currency   = xorder.Currency;
            order.Z10Order.Remark     = xorder.Remark;
            order.Z10Order.OrderType  = (int)EAP.Logic.Z10.OrderTypes.Purchase;
            order.Z10Order.FeeShip    = xorder.FeeShip;
            order.Z10Order.FeeShould  = xorder.FeeShould;

            order.Save(_tenant.TenantID.Value, db, null);
            Session.Remove("Z10Order");
            return(Content("1"));
        }
Beispiel #21
0
        public ActionResult SaveOrder(Z10Order xorder, bool?IsInDepot, bool?IsPay, long?Bank)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession("Z10InventoryInOrder");

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder  = xorder.DateOrder;
            order.Z10Order.DateShip   = xorder.DateOrder;
            order.Z10Order.Currency   = xorder.Currency;
            order.Z10Order.Remark     = xorder.Remark;
            order.Z10Order.OrderType  = (int)EAP.Logic.Z10.OrderTypes.InventoryIn;
            order.Z10Order.FeeShip    = xorder.FeeShip;
            order.Z10Order.FeeShould  = xorder.FeeShould;

            order.Save(_tenant.TenantID.Value, db, null);
            Session.Remove("Z10InventoryInOrder");


            order.StockInDepot(_tenant.TenantID, _user.UserID);

            return(Content("1"));
        }
        public ActionResult SaveOrder(Z10Order xorder, bool?IsOutDepot)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession("InventoryOrderOut");

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.Remark     = xorder.Remark;

            order.Save(_tenant.TenantID.Value, db, null);

            db.ColAdd <Z01Customer>("ManageHot", xorder.CustomerID ?? 0);


            order.SaleOutDepot(_tenant.TenantID, _user.UserID);

            //if (ispay)
            //{
            //    order.Pay(_tenant.TenantID, _user.UserID, xorder.FeeShould.Value, Bank);
            //}
            Session.Remove("InventoryOrderOut");
            return(Content("1"));
        }
Beispiel #23
0
 public static int Insert(Zippy.Data.IDalProvider db, Z10Order entity)
 {
     int rtn = db.Insert(entity);
     return rtn;
 }
Beispiel #24
0
 public static int Update(Zippy.Data.IDalProvider db, Z10Order entity)
 {
     return db.Update(entity);
 }
Beispiel #25
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;
        }
Beispiel #26
0
        public ActionResult savefee(long id, decimal? ship, decimal? feeShould)
        {
            decimal xship = ship ?? 0;
            decimal xfeeshould = feeShould ?? 0;
            Z10Order order = new Z10Order();
            order.OrderID = id;
            order.FeeShip = ship;
            order.FeeShould = feeShould;

            db.Update(order);
            return Content("1");
        }
Beispiel #27
0
        public ActionResult EditSave(long id, Z10Order xorder)
        {
            if ((_crud & Zippy.SaaS.Entity.CRUD.Update) != Zippy.SaaS.Entity.CRUD.Update) return RedirectToAction("NoPermission", "Error");

            EAP.Logic.Z10.Order.Snap(id, _tenant.TenantID.Value, _user.UserID.Value, db); //制作快照

            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();
            order.Z10Order.OrderID = null;
            order.Z10Order.OriID = id;
            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder = xorder.DateOrder;
            order.Z10Order.DateShip = xorder.DateShip;
            order.Z10Order.Currency = xorder.Currency;
            order.Z10Order.Remark = xorder.Remark;

            foreach (Z10OrderItem item in order.Items)
            {
                item.ItemID = null;
            }
            order.Save(_tenant.TenantID.Value, db, id);
            Session.Remove("Z10Order");
            return Content("1");
        }
Beispiel #28
0
 public static Z10Cabbage.Entity.Z10OrderItem GetTop1OrderItem(this Z10Order order, Zippy.Data.IDalProvider db)
 {
     return(db.FindUnique <Z10Cabbage.Entity.Z10OrderItem>("OrderID=@OrderID", db.CreateParameter("OrderID", order.OrderID)));
 }
Beispiel #29
0
        public ActionResult SaveOrderStatus(long id, int? orderStatus)
        {
            OrderStatus oStatus = (OrderStatus)(orderStatus ?? 0);
            Z10Order xorder = db.FindUnique<Z10Order>(id);

            if (oStatus == OrderStatus.Inned && ((xorder.OrderStatus ?? 0) & (int)OrderStatus.InnedSome) == (int)OrderStatus.InnedSome)
            {
                oStatus = oStatus & (~OrderStatus.InnedSome);
                xorder.OrderStatus = (xorder.OrderStatus ?? 0) & (~(int)OrderStatus.InnedSome);
                xorder.OrderStatus = (xorder.OrderStatus ?? 0) | (int)oStatus;
            }
            else if (oStatus == OrderStatus.Outted && ((xorder.OrderStatus ?? 0) & (int)OrderStatus.OuttedSome) == (int)OrderStatus.OuttedSome)
            {
                oStatus = oStatus & (~OrderStatus.OuttedSome);
                xorder.OrderStatus = (xorder.OrderStatus ?? 0) & (~(int)OrderStatus.OuttedSome);
                xorder.OrderStatus = (xorder.OrderStatus ?? 0) | (int)oStatus;
            }
            else
            {
                xorder.OrderStatus = (xorder.OrderStatus ?? 0) | (int)oStatus;
            }
            Z10Order xorder1 = new Z10Order();
            xorder1.OrderID = id;
            xorder1.OrderStatus = xorder.OrderStatus;

            db.Update(xorder1);
            return Content("1");
        }
Beispiel #30
0
        /// <summary>
        /// 将订单保存到数据库
        /// </summary>
        /// <param name="tenantID"></param>
        /// <param name="db"></param>
        /// <param name="oid"></param>
        public void Save(Guid tenantID, Zippy.Data.IDalProvider db, long? oid)
        {
            long orderID = 0;
            Z10Order.Total = Items.Sum(s => s.Total);
            Z10Order.TenantID = tenantID;
            try
            {
                // 此处应该加入事务
                db.BeginTransaction();
                if (Z10Order.OrderID.HasValue && Z10Order.OrderID > 0)
                {
                    orderID = Z10Order.OrderID.Value;
                    db.Update(Z10Order);
                }
                else
                {
                    orderID = db.Insert(Z10Order);

                    Z10Order zorder = new Z10Order();

                    if (!oid.HasValue)
                    {
                        zorder.OrderID = orderID;
                        zorder.OriID = orderID;
                    }
                    else
                    {
                        zorder.OriID = oid;
                    }

                    //zorder.FeeShould = this.CalFeeShould();

                    db.Update(zorder);
                }

                foreach (Z10OrderItem item in Items)
                {
                    item.ItemStatus = 1;
                    item.TenantID = tenantID;
                    item.Total = (item.Price ?? 0) * (item.CountShould ?? 0);
                    if (item.ItemID.HasValue && item.ItemID > 0 && item.OrderID == orderID)
                    {
                        db.Update(item);
                    }
                    else
                    {
                        item.OrderID = orderID;
                       var itemID = db.Insert(item);
                       item.ItemID = itemID;
                    }
                }

                Z10Order.OrderID = orderID;
                db.Commit();
            }
            catch (Exception ex)
            {
                db.RollbackTransaction();
                throw ex;
            }
        }
Beispiel #31
0
        public ActionResult doReturned(Z10Order xorder)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder = xorder.DateOrder;
            order.Z10Order.Currency = xorder.Currency;
            order.Z10Order.Remark = xorder.Remark;
            order.Z10Order.OrderType = (int)EAP.Logic.Z10.OrderTypes.PurchaseReturn;

            order.Save(_tenant.TenantID.Value, db, null);

            Session.Remove("Z10Order");
            return Content("1");
        }
Beispiel #32
0
        public ActionResult SaveOrder(Z10Order xorder, bool? IsInDepot, bool? IsPay, long? Bank)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder = xorder.DateOrder;
            order.Z10Order.DateShip = xorder.DateOrder;
            order.Z10Order.Currency = xorder.Currency;
            order.Z10Order.Remark = xorder.Remark;
            order.Z10Order.OrderType = (int)EAP.Logic.Z10.OrderTypes.Purchase;
            order.Z10Order.FeeShip = xorder.FeeShip;
            order.Z10Order.FeeShould = xorder.FeeShould;

            order.Save(_tenant.TenantID.Value, db, null);
            Session.Remove("Z10Order");

            bool isin = IsInDepot ?? false;
            bool ispay = IsPay ?? false;

            if (isin)
            {
                order.StockInDepot(_tenant.TenantID, _user.UserID);
            }
            if (ispay)
            {
                order.Pay(_tenant.TenantID, _user.UserID, -xorder.FeeShould.Value, Bank);
            }
            return Content("1");
        }
        public ActionResult SaveOrder(Z10Order xorder, bool? IsInDepot, bool? IsPay, long? Bank)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession("Z10InventoryInOrder");

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder = xorder.DateOrder;
            order.Z10Order.DateShip = xorder.DateOrder;
            order.Z10Order.Currency = xorder.Currency;
            order.Z10Order.Remark = xorder.Remark;
            order.Z10Order.OrderType = (int)EAP.Logic.Z10.OrderTypes.InventoryIn;
            order.Z10Order.FeeShip = xorder.FeeShip;
            order.Z10Order.FeeShould = xorder.FeeShould;

            order.Save(_tenant.TenantID.Value, db, null);
            Session.Remove("Z10InventoryInOrder");

            order.StockInDepot(_tenant.TenantID, _user.UserID);

            return Content("1");
        }
Beispiel #34
0
        public ActionResult SaveOutDepot(Z10Order xorder)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder = xorder.DateOrder;
            order.Z10Order.DateShip = xorder.DateShip;
            order.Z10Order.Currency = xorder.Currency;
            order.Z10Order.Remark = xorder.Remark;
            order.Z10Order.OrderType = (int?)EAP.Logic.Z10.OrderTypes.Sale;
            order.Z10Order.FeeShip = xorder.FeeShip;
            order.Z10Order.FeeShould = xorder.FeeShould;

            order.Save(_tenant.TenantID.Value, db, null);
            Session.Remove("Z10Order");

            return Content("1");
        }
Beispiel #35
0
 public static int Update(Zippy.Data.IDalProvider db, Z10Order entity)
 {
     return(db.Update(entity));
 }
Beispiel #36
0
 public static EAP.Bus.Entity.Currency GetCurrency(this Z10Order order, Zippy.Data.IDalProvider db)
 {
     return(db.FindUnique <EAP.Bus.Entity.Currency>("ID=@ID", db.CreateParameter("ID", order.Currency)));
 }
Beispiel #37
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);
        }
Beispiel #38
0
        public static Z10Order Create(Zippy.Data.IDalProvider db, Int64 _OrderID)
        {
            Z10Order rtn = db.FindUnique <Z10Order>(_OrderID);

            return(rtn);
        }
Beispiel #39
0
        public ActionResult doCreate(Z10Order xorder)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            order.Z10Order.DateOrder = xorder.DateOrder;
            order.Z10Order.Remark = xorder.Remark;
            order.Z10Order.OrderType = (int)EAP.Logic.Z10.OrderTypes.Transfer;

            order.Save(_tenant.TenantID.Value, db, null);

            Session.Remove("Z10Order");
            return Content("1");
        }
Beispiel #40
0
        public static int Insert(Zippy.Data.IDalProvider db, Z10Order entity)
        {
            int rtn = db.Insert(entity);

            return(rtn);
        }
Beispiel #41
0
        public ActionResult SaveOrder(Z10Order xorder, bool? IsOutDepot, bool? IsPay, long? Bank)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder = xorder.DateOrder;
            order.Z10Order.DateShip = xorder.DateOrder;
            order.Z10Order.Currency = xorder.Currency;
            order.Z10Order.Remark = xorder.Remark;
            order.Z10Order.FeeShip = xorder.FeeShip;
            order.Z10Order.FeeShould = xorder.FeeShould;

            order.Save(_tenant.TenantID.Value, db, null);

            db.ColAdd<Z01Customer>("ManageHot", xorder.CustomerID ?? 0);

            bool isout = IsOutDepot ?? false;
            bool ispay = IsPay ?? false;

            if (isout)
            {
                order.SaleOutDepot(_tenant.TenantID, _user.UserID);
            }
            if (ispay)
            {
                order.Pay(_tenant.TenantID, _user.UserID, xorder.FeeShould.Value, Bank);
            }
            Session.Remove("Z10Order");
            return Content("1");
        }
Beispiel #42
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="tenantID"></param>
        /// <param name="userID"></param>
        /// <param name="oStatus">用户指定的状态</param>
        /// <param name="paidAmount">支付金额</param>
        /// <param name="bankID">银行</param>
        /// <param name="db"></param>
        /// <returns></returns>
        public bool Pay(Guid tenantID, Guid userID, EAP.Logic.Z10.OrderStatus oStatus, decimal paidAmount, long? bankID)
        {
            int orderSts = Z10Order.OrderStatus ?? 0;
            if ((orderSts & (int)EAP.Logic.Z10.OrderStatus.Paid) == (int)EAP.Logic.Z10.OrderStatus.Paid ||
                (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("已经支付的订单,已经结束的订单和已经存档的订单不能支付。");
            }

            Zippy.Data.IDalProvider db = Zippy.Data.StaticDB.DB;

            Z10Order xorder = new Z10Order();
            xorder.OrderID = Z10Order.OrderID;
            xorder.FeePaid = Z10Order.FeePaid + paidAmount;

            if (oStatus == OrderStatus.Paid)
            {
                xorder.OrderStatus = orderSts & ~(int)OrderStatus.PaidSome;
                xorder.OrderStatus = (xorder.OrderStatus ?? 0) | (int)oStatus;
            }
            else
            {
                //throw new Exception(orderSts.ToString() + "  -- " + oStatus + " -- " + ((Z10Order.OrderStatus ?? 0) | (int)oStatus));
                xorder.OrderStatus = orderSts | (int)oStatus;
            }

            db.Update(xorder);

            Z01Beetle.Entity.Z01FinancialFlow dflow = new Z01Beetle.Entity.Z01FinancialFlow();

            dflow.FlowID = null;
            dflow.OrderID = Z10Order.OrderID;
            dflow.Amount = paidAmount;
            dflow.Creator = userID;
            dflow.TenantID = tenantID;
            dflow.BankID = bankID;
            dflow.Currency = Z10Order.Currency;
            db.Insert(dflow);

            //string sqlUpdateStatus = "update Z10Order set OrderStatus=OrderStatus|@paid where OrderID=@orderid ";
            //Zippy.Data.StaticDB.DB.ExecuteNonQuery(sqlUpdateStatus,
            //    Zippy.Data.StaticDB.DB.CreateParameter("paid", (int)EAP.Logic.Z10.OrderStatus.Paid),
            //    Zippy.Data.StaticDB.DB.CreateParameter("orderid", Z10Order.OrderID ?? 0));

            return true;
        }
        public ActionResult SaveOrder(Z10Order xorder, bool? IsOutDepot)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession("InventoryOrderOut");

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.Remark = xorder.Remark;

            order.Save(_tenant.TenantID.Value, db, null);

            db.ColAdd<Z01Customer>("ManageHot", xorder.CustomerID ?? 0);

            order.SaleOutDepot(_tenant.TenantID, _user.UserID);

            //if (ispay)
            //{
            //    order.Pay(_tenant.TenantID, _user.UserID, xorder.FeeShould.Value, Bank);
            //}
            Session.Remove("InventoryOrderOut");
            return Content("1");
        }
Beispiel #44
0
        public ActionResult SavePutOut(int orderStatus)
        {
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            Z10Order myOrder = new Z10Order();
            myOrder.OrderID = order.Z10Order.OrderID;
            myOrder.DateShip = DateTime.Now;

            db.Update<Z10Order>(myOrder);

            Hashtable hsItem = new Hashtable();

            foreach (var item in order.Items)
            {
                hsItem.Add(item.ItemID, -item.CountHappend2);
            }

            var oStatus = (EAP.Logic.Z10.OrderStatus)orderStatus;

            var result = order.InOutDepot(_tenant.TenantID.Value, _user.UserID.Value, oStatus, hsItem, db);

            if (result)
                return Content("1");
            else
                return Content("0");
        }
Beispiel #45
0
        public ActionResult PurchaseSave(Z10Order xorder)
        {
            if ((_crud & Zippy.SaaS.Entity.CRUD.Create) != Zippy.SaaS.Entity.CRUD.Create) return RedirectToAction("NoPermission", "Error");
            EAP.Logic.Z10.Order order = EAP.Logic.Z10.Order.CreateWithSession();

            order.Z10Order.CustomerID = xorder.CustomerID;
            order.Z10Order.DateOrder = xorder.DateOrder;
            order.Z10Order.DateShip = xorder.DateShip;
            order.Z10Order.Currency = xorder.Currency;
            order.Z10Order.Remark = xorder.Remark;
            order.Z10Order.OrderType = (int)EAP.Logic.Z10.OrderTypes.Purchase;
            order.Z10Order.FeeShip = xorder.FeeShip;
            order.Z10Order.FeeShould = xorder.FeeShould;

            order.Save(_tenant.TenantID.Value, db, null);
            Session.Remove("Z10Order");
            return Content("1");
        }
Beispiel #46
0
 public ActionResult Terms(long id, FormCollection cols)
 {
     Z10Order xorder = new Z10Order();
     xorder.OrderID = id;
     xorder.Terms = cols["Terms"];
     db.Update(xorder);
     return Return();
 }
Beispiel #47
0
        /// <summary>
        /// 将订单保存到数据库
        /// </summary>
        /// <param name="tenantID"></param>
        /// <param name="db"></param>
        /// <param name="oid"></param>
        public void Save(Guid tenantID, Zippy.Data.IDalProvider db, long?oid)
        {
            long orderID = 0;

            Z10Order.Total    = Items.Sum(s => s.Total);
            Z10Order.TenantID = tenantID;
            try
            {
                // 此处应该加入事务
                db.BeginTransaction();
                if (Z10Order.OrderID.HasValue && Z10Order.OrderID > 0)
                {
                    orderID = Z10Order.OrderID.Value;
                    db.Update(Z10Order);
                }
                else
                {
                    orderID = db.Insert(Z10Order);

                    Z10Order zorder = new Z10Order();

                    if (!oid.HasValue)
                    {
                        zorder.OrderID = orderID;
                        zorder.OriID   = orderID;
                    }
                    else
                    {
                        zorder.OriID = oid;
                    }

                    //zorder.FeeShould = this.CalFeeShould();

                    db.Update(zorder);
                }

                foreach (Z10OrderItem item in Items)
                {
                    item.ItemStatus = 1;
                    item.TenantID   = tenantID;
                    item.Total      = (item.Price ?? 0) * (item.CountShould ?? 0);
                    if (item.ItemID.HasValue && item.ItemID > 0 && item.OrderID == orderID)
                    {
                        db.Update(item);
                    }
                    else
                    {
                        item.OrderID = orderID;
                        var itemID = db.Insert(item);
                        item.ItemID = itemID;
                    }
                }

                Z10Order.OrderID = orderID;
                db.Commit();
            }
            catch (Exception ex)
            {
                db.RollbackTransaction();
                throw ex;
            }
        }