public ActionResult ViewOrderDetail(long OrderId = 0)
        {
            ViewOrderModel model       = new ViewOrderModel();
            CmnEntityModel currentUser = Session["CmnEntityModel"] as CmnEntityModel;

            if (currentUser == null || currentUser.IsAdmin == false)
            {
                return(RedirectToAction("Login", "Login"));
            }

            CommonService comService = new CommonService();
            CommonDa      da         = new CommonDa();
            AdminOrderDa  dataAccess = new AdminOrderDa();

            if (OrderId > 0)
            {
                ViewOrderModel infor = new ViewOrderModel();
                infor = dataAccess.getInforOrder(OrderId);
                model = infor != null ? infor : model;
                string CompanyCd    = "00000";
                var    inforCompany = da.getInfoCompany(CompanyCd);
                if (inforCompany != null)
                {
                    model.CompanyName    = inforCompany.COMPANY_NAME;
                    model.CompanyAddress = inforCompany.COMPANY_ADDRESS;
                    model.CompanyEmail   = inforCompany.COMPANY_EMAIL;
                    model.CompanyPhone   = inforCompany.COMPANY_PHONE;
                }

                model.AddressCustomer   = model.DistrictName + ", " + model.Receive_Address;
                model.ORDER_STATUS_TEXT = OrderStatus.Items[model.Status].ToString();

                var getOrderDetail = dataAccess.getOrderDetail(model.ID).Take(3);
                ViewBag.listOrderDetail = getOrderDetail.ToList();
                foreach (var data in getOrderDetail)
                {
                    model.ProductDetailTotal += data.ProductName + " (Số lượng: " + data.Quantity.ToString() + "), ";
                }

                if (String.IsNullOrEmpty(model.LINK_QRCODE))
                {
                    model.LINK_QRCODE = QRCodeServices.creatQR(model.Code);
                    dataAccess.UpdateQRLink(OrderId, model.LINK_QRCODE);
                }
                if (!String.IsNullOrEmpty(model.LINK_QRCODE))
                {
                    model.LINK_QRCODE = model.LINK_QRCODE.Replace("~", "");
                }
            }

            return(this.PartialView("ViewOrderDetail", model));
        }
예제 #2
0
        public long InsertOrder(OrderModel model, List <ItemGioHang> lstGioHang)
        {
            long res = 0;
            // Declare new DataAccess object
            OrderCartDa dataAccess = new OrderCartDa();

            using (var transaction = new TransactionScope())
            {
                try
                {
                    Order order = new Order();
                    order.UserID = model.UserID;
                    int maxOrder = dataAccess.getMaxOrder() + 1;

                    order.Code        = "VB" + DateTime.Now.ToString("ddMM") + maxOrder.ToString("D6");
                    order.LINK_QRCODE = QRCodeServices.creatQR(order.Code);

                    order.TongTienHang       = model.TongTienHang;
                    order.PriceTotal         = model.PriceTotal;
                    order.PriceShip          = model.PriceShip;
                    order.PriceDiscountTotal = model.PriceDiscountTotal;
                    order.PaymentMethod      = model.METHOD_TYPE;
                    order.Paid             = PayStatus.None;
                    order.Note             = model.Note;
                    order.Receive_District = model.Receive_District;
                    order.Receive_Address  = model.Receive_Address;
                    order.Receive_Phone    = model.Receive_Phone;
                    order.Receive_Address  = model.Receive_Address;
                    order.Status           = OrderStatus.Create;
                    order.del_flg          = Constant.DeleteFlag.NON_DELETE;

                    res = dataAccess.InsertOrder(order);

                    if (res <= 0)
                    {
                        transaction.Dispose();
                    }

                    if (res > 0)
                    {
                        long res1 = 0;
                        foreach (var data in lstGioHang)
                        {
                            OrderDetail detail = new OrderDetail();
                            detail.OrderID     = res;
                            detail.ProductID   = data.IdSanPham;
                            detail.ProductName = data.TenSanPham;
                            detail.Quantity    = data.SoLuong;
                            detail.Price       = data.TienHang;
                            detail.del_flg     = Constant.DeleteFlag.NON_DELETE;

                            res1 = dataAccess.InsertOrderDetail(detail);
                            if (res1 <= 0)
                            {
                                transaction.Dispose();
                            }

                            res1 = dataAccess.UpdateQuantityProduct(detail.ProductID, detail.Quantity.Value);
                            if (res1 <= 0)
                            {
                                transaction.Dispose();
                            }
                        }
                    }

                    transaction.Complete();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message, ex);
                }
                finally
                {
                    transaction.Dispose();
                }
            }
            return(res);
        }
        public ActionResult PrintOrderCustom(string ORDER_ID_STRING)
        {
            CmnEntityModel currentUser = Session["CmnEntityModel"] as CmnEntityModel;

            if (currentUser == null || currentUser.IsAdmin == false)
            {
                return(RedirectToAction("Login", "Login"));
            }

            CommonService         comService      = new CommonService();
            CommonDa              da              = new CommonDa();
            AdminOrderDa          dataAccess      = new AdminOrderDa();
            List <ViewOrderModel> listOrderDetail = new List <ViewOrderModel>();
            ViewOrderModel        model           = new ViewOrderModel();

            if (!string.IsNullOrEmpty(ORDER_ID_STRING))
            {
                List <long> ORDER_ID_LIST = ORDER_ID_STRING.Split(',').Select(long.Parse).ToList();
                if (ORDER_ID_LIST.Count > 0)
                {
                    for (int i = 0; i < ORDER_ID_LIST.Count(); i++)
                    {
                        if (ORDER_ID_LIST[i] > 0)
                        {
                            ViewOrderModel infor = new ViewOrderModel();
                            infor = dataAccess.getInforOrder(ORDER_ID_LIST[i]);
                            model = infor != null ? infor : model;
                            string CompanyCd    = "00000";
                            var    inforCompany = da.getInfoCompany(CompanyCd);
                            if (inforCompany != null)
                            {
                                model.CompanyName    = inforCompany.COMPANY_NAME;
                                model.CompanyAddress = inforCompany.COMPANY_ADDRESS;
                                model.CompanyEmail   = inforCompany.COMPANY_EMAIL;
                                model.CompanyPhone   = inforCompany.COMPANY_PHONE;
                            }

                            model.AddressCustomer   = model.DistrictName + ", " + model.Receive_Address;
                            model.ORDER_STATUS_TEXT = OrderStatus.Items[model.Status].ToString();

                            var getOrderDetail = dataAccess.getOrderDetail(model.ID).Take(3);
                            ViewBag.listOrderDetail = getOrderDetail.ToList();
                            foreach (var data in getOrderDetail)
                            {
                                model.ProductDetailTotal += data.ProductName + " (Số lượng: " + data.Quantity.ToString() + "), ";
                            }

                            if (String.IsNullOrEmpty(model.LINK_QRCODE))
                            {
                                model.LINK_QRCODE = QRCodeServices.creatQR(model.Code);
                                dataAccess.UpdateQRLink(ORDER_ID_LIST[i], model.LINK_QRCODE);
                            }
                            if (!String.IsNullOrEmpty(model.LINK_QRCODE))
                            {
                                model.LINK_QRCODE = model.LINK_QRCODE.Replace("~", "");
                            }
                            listOrderDetail.Add(model);
                        }
                    }
                }
                //return new ViewAsPdf("ViewOrderDetailPDF", listOrderDetail);
                return(PartialView("ViewOrderDetailPDF", listOrderDetail));
            }

            return(new EmptyResult());
        }