Beispiel #1
0
        public ActionResult UpdateOrder(OrderFullViewModel model)
        {
            ResponseData responseData = new ResponseData();

            if (model.Status == (short)OrderStatusEnum.Inactive || model.Status == (short)OrderStatusEnum.Pending)
            {
                ErrorCodes error = _orderBo.CreateOrder(model);
                if ((int)error == (int)ErrorCodes.Success)
                {
                    responseData.Success = true;
                }
                else
                {
                    responseData.Success = false;
                    responseData.Message = GetEnumDescription(error);
                }
            }
            else
            {
                responseData.Success = false;
                responseData.Message = "Không thể update đơn hàng này!";
            }

            return(Json(responseData));
        }
Beispiel #2
0
        public ActionResult Update(string encryptId)
        {
            OrderFullViewModel model = new OrderFullViewModel();
            int id = !string.IsNullOrEmpty(encryptId) ? EncryptUtility.DecryptId(encryptId) : 0;
            //List<EnumInfo> listOrderType = GetEnumValuesAndDescriptions<OrderTypeEnum>();
            //List<EnumInfo> listSourceType = GetEnumValuesAndDescriptions<SourceTypeEnum>();
            List <OrderDetailViewModel> listOrderDetail = new List <OrderDetailViewModel>();
            int            totalRow    = 0;
            List <Product> listProduct = (List <Product>)_productBo.GetList("", out totalRow);

            if (listProduct != null && listProduct.Count > 0)
            {
                foreach (Product product in listProduct)
                {
                    OrderDetailViewModel orderDetailViewModel = new OrderDetailViewModel(product);
                    listOrderDetail.Add(orderDetailViewModel);
                }
            }
            if (id > 0)
            {
                model = _orderBo.GetByFullValueById(id);
                model.lstOrderDetailViewModel = listOrderDetail;
                model.ListProductViewModel    = _orderBo.GetByOrderId(id).ToList();
                model.ListDistrict            = (List <District>)_districtBoCached.GetAll();
                model.ListWard = (List <Ward>)_wardBoCached.GetByDistrictId(model.DistrictId);
                if (model.DeliverDate == DateTime.MinValue)
                {
                    model.DeliverDate = DateTime.Now;
                }
                else
                {
                }
                model.DeliverDateStr = model.DeliverDate.ToString("dd/MM/yyyy HH:mm");

                ViewBag.Title = "Sửa đơn hàng";
            }
            else
            {
                var             result       = new Order();
                List <District> listDistrict = (List <District>)_districtBoCached.GetAll();
                List <Ward>     listWard     = new List <Ward>();

                model = new DVG.WIS.PublicModel.OrderFullViewModel(result, new District(), new Ward(), listOrderDetail);
                model.ListDistrict = listDistrict;
                //model.ListOrderType = listOrderType;
                model.DeliverDate          = DateTime.Now;
                model.DeliverDateStr       = DateTime.Now.ToString("dd/MM/yyyy HH:mm");
                model.ListProductViewModel = new List <OrderDetailViewModel>();
                model.OrderType            = -1;
                model.SourceType           = -1;

                ViewBag.Title = "Tạo đơn hàng";
            }
            model.ProductViewModelItem = new OrderDetailViewModel();
            model.CityCode             = "SG";

            return(View(model));
        }
Beispiel #3
0
        public ErrorCodes CreateOrder(OrderFullViewModel model)
        {
            ErrorCodes errorCodes = ErrorCodes.Success;

            try
            {
                var user = _userService.GetUserLogin().UserName;
                model.DeliverDate = DateTime.ParseExact(model.DeliverDateStr, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);
                if (model.Code == Guid.Empty)
                {
                    model.Code = Guid.NewGuid();
                }
                ///------- bỏ Code thay bằng OrderCode
                if (string.IsNullOrEmpty(model.OrderCode))
                {
                    model.OrderCode = StringUtils.GenerateUniqueId();
                }
                model.CreatedBy        = user;
                model.ModifiedBy       = user;
                model.CustomerNote     = string.IsNullOrEmpty(model.CustomerNote) ? string.Empty : model.CustomerNote;
                model.OrderPrice       = int.Parse(model.OrderPriceStr.Replace(".", ""));
                model.OrderOriginPrice = int.Parse(model.OrderOriginPriceStr.Replace(".", ""));
                var result     = 0;
                var change_log = "";
                if (model.OrderId == 0)
                {
                    result     = _orderDal.CreateOrder(model);
                    change_log = "Tạo đơn hàng";
                }
                else
                {
                    result     = _orderDal.UpdateOrder(model);
                    change_log = "Sửa đơn hàng";
                }
                if (result <= 0)
                {
                    errorCodes = ErrorCodes.BusinessError;
                }
                else
                {
                    _orderHistoryBo.Insert(new OrderHistory
                    {
                        change_log = change_log,
                        created_by = user,
                        order_id   = result,
                        status     = model.Status
                    });
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                errorCodes = ErrorCodes.Exception;
            }
            return(errorCodes);
        }
Beispiel #4
0
        public ActionResult UpdateOrder(OrderFullViewModel model)
        {
            if (model.Status == (short)OrderStatusEnum.Inactive || model.Status == (short)OrderStatusEnum.Pending)
            {
                ErrorCodes error = _orderBo.CreateOrder(model);
                if ((int)error == (int)ErrorCodes.Success)
                {
                    Msg.Error = false;
                }
                else
                {
                    Msg.Error = true;
                    Msg.Title = GetEnumDescription(error);
                }
            }
            else
            {
                Msg.Error = true;
                Msg.Title = "Không thể update đơn hàng này!";
            }

            return(AuthorizeJson(Msg));
        }
Beispiel #5
0
        public OrderFullViewModel GetByFullValueById(int id)
        {
            OrderFullViewModel orderModel = new OrderFullViewModel();

            try
            {
                var order = _orderDal.GetById(id);
                if (order != null && order.order_id > 0)
                {
                    var lstDistrict     = _districtBoCached.GetAll().ToList();
                    var lstWard         = _wardBoCached.GetAll().ToList();
                    var district        = lstDistrict.Find(x => x.district_id == order.district_id);
                    var ward            = lstWard.Find(x => x.ward_id == order.ward_id);
                    var listOrderDetail = _orderDetailDal.GetByOrderId(id).Select(x => new OrderDetailViewModel()).ToList();

                    orderModel = new OrderFullViewModel(order, district, ward, listOrderDetail);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(orderModel);
        }
Beispiel #6
0
        public int CreateOrder(OrderFullViewModel order)
        {
            string storeName            = "admin_order_insert_v1";
            string storeNameOrderDetail = "admin_orderdetail_insert";
            int    order_id             = 0;

            try
            {
                using (var db = new PostgresSQL(ConnectionEntity.DBPosition.Master))
                {
                    db.BeginTransaction();

                    try
                    {
                        using (var command = db.CreateCommand(storeName, true))
                        {
                            command.Parameters.Add(NpgsqlParameter("@_code", order.Code));
                            command.Parameters.Add(NpgsqlParameter("@_order_code", order.OrderCode));
                            command.Parameters.Add(NpgsqlParameter("@_customer_name", order.CustomerName));
                            command.Parameters.Add(NpgsqlParameter("@_city_code", order.CityCode));
                            command.Parameters.Add(NpgsqlParameter("@_district_id", order.DistrictId));
                            command.Parameters.Add(NpgsqlParameter("@_ward_id", order.WardId));
                            command.Parameters.Add(NpgsqlParameter("@_delivery_address", order.DeliveryAddress));
                            command.Parameters.Add(NpgsqlParameter("@_customer_phone", order.CustomerPhone));
                            command.Parameters.Add(NpgsqlParameter("@_customer_note", order.CustomerNote));
                            command.Parameters.Add(NpgsqlParameter("@_created_date", DateTime.Now));
                            command.Parameters.Add(NpgsqlParameter("@_modified_date", DateTime.Now));
                            command.Parameters.Add(NpgsqlParameter("@_created_by", order.CreatedBy));
                            command.Parameters.Add(NpgsqlParameter("@_modified_by", order.ModifiedBy));
                            command.Parameters.Add(NpgsqlParameter("@_reason_note", string.Empty));
                            command.Parameters.Add(NpgsqlParameter("@_origin_price", order.OrderOriginPrice));
                            command.Parameters.Add(NpgsqlParameter("@_price", order.OrderPrice));
                            command.Parameters.Add(NpgsqlParameter("@_status", order.Status));
                            command.Parameters.Add(NpgsqlParameter("@_ship_fee", order.ShipFee));
                            command.Parameters.Add(NpgsqlParameter("@_request_type", order.RequestType));
                            command.Parameters.Add(NpgsqlParameter("@_order_type", order.OrderType));
                            if (order.DeliverDate <= DateTime.Now)
                            {
                                command.Parameters.Add(NpgsqlParameter("@_delivery_date", DBNull.Value));
                            }
                            else
                            {
                                command.Parameters.Add(NpgsqlParameter("@_delivery_date", order.DeliverDate));
                            }
                            command.Parameters.Add(NpgsqlParameter("@_source_type", order.SourceType));

                            order_id = (int)command.ExecuteScalar();
                        }

                        if (order_id > 0)
                        {
                            foreach (OrderDetailViewModel item in order.ListProductViewModel)
                            {
                                using (var command = db.CreateCommand(storeNameOrderDetail, true))
                                {
                                    command.Parameters.Add(NpgsqlParameter("@_order_id", order_id));
                                    command.Parameters.Add(NpgsqlParameter("@_product_id", item.ProductId));
                                    command.Parameters.Add(NpgsqlParameter("@_quantity", item.Quantity));
                                    command.Parameters.Add(NpgsqlParameter("@_origin_price", item.OriginPrice));
                                    command.Parameters.Add(NpgsqlParameter("@_price", item.Price));
                                    command.Parameters.Add(NpgsqlParameter("@_created_date", DateTime.Now));
                                    command.Parameters.Add(NpgsqlParameter("@_created_by", order.CreatedBy));
                                    command.Parameters.Add(NpgsqlParameter("@_note", item.Note));
                                    command.ExecuteScalar();
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        db.RollbackTransaction();
                        throw ex;
                    }

                    if (order_id > 0)
                    {
                        db.CommitTransaction();
                    }
                    else
                    {
                        db.RollbackTransaction();
                    }

                    return(order_id);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format("{0} => {1}", storeName, ex.ToString()));
            }
        }