Example #1
0
        public ActionResult Create(CreateBillViewModel model)
        {
            ViewBag.Parent = "Quản lý giao hàng";
            ViewBag.Child  = "Lập hóa đơn";
            isAdminLogged();
            var bill = new Bill();

            bill.idDeliveryOrder = model.idDeliveryOrder;
            bill.idDistributor   = model.idDistributor;
            bill.idStaff         = model.idStaff;
            bill.purchase        = model.purchase;
            bill.description     = model.description;
            bill.createdDate     = model.createdDate;
            var delivery = _dOrderService.SearchById(bill.idDeliveryOrder.Value);
            var order    = _orderService.GetOrder(delivery.idOrder.Value);

            // TH thanh toán giao hàng
            // nếu hình thức thanh toán của đơn hàng là qua thẻ thì ko cần lập hóa đơn (paymenttype = true)
            if (order.PaymentType == true)
            {
                ViewBag.types = 1;
                ViewBag.msg   = "Đã thanh toán qua thẻ, không cần lập hóa đơn thanh toán giao hàng";
            }
            else
            {
                // TH thanh toán bằng tiền mặt
                var bills = delivery.Bills;
                // TH Đơn đã có hóa đơn rồi
                if (bills.FirstOrDefault() != null)
                {
                    ViewBag.types = 1;
                    ViewBag.msg   = "Đơn hàng này đã lập hóa đơn thanh toán rồi, vui lòng thanh toán công nợ nếu có!";
                }
                else
                {
                    // TH đơn chưa có hóa đơn
                    decimal tienthieu = delivery.totalPurchase.Value - bill.purchase.Value;
                    if (tienthieu < 0)
                    {
                        ViewBag.types = 1;
                        ViewBag.msg   = "Lập thất bại, tiền đơn hàng chỉ có " + string.Format("{0:0,0}", delivery.totalPurchase.Value) + " VNĐ.";
                    }
                    else
                    {
                        // TH thu tiền ít hơn tổng tiền đơn hàng, thì tăng thêm công nợ
                        if (tienthieu > 0)
                        {
                            var dis = order.Distributor;
                            dis.debt += tienthieu;
                            _distributoriervice.UpdateDebt(bill.idDistributor.Value, dis.debt.Value);
                        }
                        _billService.AddBill(bill);
                    }
                }
            }
            ViewBag.types = 2;
            ViewBag.msg   = "Lập hoá đơn thành công, bạn đã thanh toán " + string.Format("{0:0,0}", delivery.totalPurchase.Value) + " VNĐ.";
            return(View(model));
        }
 public ActionResult Search(DeliveryOrderViewModel model)
 {
     isAdminLogged();
     ViewBag.Parent = "Quản lý giao hàng";
     ViewBag.Child  = "Tìm kiếm";
     try
     {
         if (model.idDeliveryOrder > 0)
         {
             var t = _deliveryOrderService.SearchById(model.idDeliveryOrder);
             if (t != null)
             {
                 IList <DeliveryOrder> temp = new List <DeliveryOrder>();
                 temp.Add(t);
                 model.listDeliveryOrder = temp.ToList();
             }
             return(View("List", model));
         }
         else if (model.deliveryDate != null)
         {
             DateTime delivery_date = Convert.ToDateTime(model.deliveryDate);
             model.listDeliveryOrder = _deliveryOrderService.SearchByDeliveryDate(delivery_date);
             return(View("List", model));
         }
         else if (model.status != 0)
         {
             //byte status = Convert.ToByte(dOrder.status);
             model.listDeliveryOrder = _deliveryOrderService.SearchByStatus(model.status);
             View("List", model);
         }
         else
         {
             model.listDeliveryOrder = _deliveryOrderService.GetAll();
             return(View("List", model));
         }
     }
     catch (FormatException e)
     {
         throw;
     }
     return(View("List"));
 }