public ActionResult UpdateOrder(int?ID, string str)
        {
            CASDatabaseEntities db          = new CASDatabaseEntities();
            PatientOrderModel   dt          = new PatientOrderModel();
            PatientOrderDetail  objOrder    = new PatientOrderDetail();
            DrugDelivery        objDelivery = new DrugDelivery();

            var id      = Convert.ToInt32(ID);
            var getData = db.PatientOrderDetails.Where(m => m.PatientOrderID == id).FirstOrDefault();

            if (str == "Deliver")
            {
                getData.OrderStatus = "Delivered";

                objDelivery.PatientOrderID = getData.PatientOrderID;
                objDelivery.DeliveryDate   = DateTime.Today;
                db.DrugDeliveries.Add(objDelivery);

                Session["Deliver"] = "Delivered";
            }
            else
            {
                getData.OrderStatus = "Rejected";
            }
            dt.OrderStatus = getData.OrderStatus;
            db.SaveChanges();
            return(RedirectToAction("ViewPatientOrders", "Salesperson"));
        }
        public ActionResult ViewOrders()
        {
            CASDatabaseEntities      db   = new CASDatabaseEntities();
            List <PatientOrderModel> list = new List <PatientOrderModel>();
            PatientOrderModel        dt   = new PatientOrderModel();

            int id = Convert.ToInt32(Session["ID"]);

            var getDetails = from o in db.PatientOrderDetails
                             join d in db.Drugs
                             on o.DrugID equals d.DrugID
                             where o.PatientID == id
                             select new
            {
                d.DrugName,
                o.OrderNumber,
                o.OrderDate,
                o.OrderStatus,
                o.Quantity
            };

            foreach (var item in getDetails)
            {
                list.Add(new PatientOrderModel
                {
                    DrugName    = item.DrugName,
                    OrderNumber = item.OrderNumber,
                    OrderDate   = Convert.ToDateTime(item.OrderDate),
                    OrderStatus = item.OrderStatus,
                    Quantity    = Convert.ToInt32(item.Quantity)
                });
            }
            dt.ListOrder = list;
            return(View(dt));
        }
        public ActionResult OrderDrugs()
        {
            CASDatabaseEntities db = new CASDatabaseEntities();
            PatientOrderModel   dt = new PatientOrderModel();

            List <SelectListItem> list = new List <SelectListItem>();
            var getDrugDetails         = from d in db.Drugs
                                         where d.IsDeleted == false
                                         select new
            {
                d.DrugID,
                d.DrugName,
            };

            foreach (var item in getDrugDetails)
            {
                list.Add(new SelectListItem
                {
                    Text  = item.DrugName,
                    Value = item.DrugID.ToString()
                });
            }
            dt.ListDrug = list;
            return(View(dt));
        }
        public ActionResult ViewPatientOrders()
        {
            CASDatabaseEntities      db   = new CASDatabaseEntities();
            List <PatientOrderModel> list = new List <PatientOrderModel>();
            PatientOrderModel        dt   = new PatientOrderModel();

            var getData = from po in db.PatientOrderDetails
                          join d in db.Drugs
                          on po.DrugID equals d.DrugID
                          join p in db.Patients
                          on po.PatientID equals p.PatientID
                          select new
            {
                p.FirstName,
                p.LastName,
                d.DrugName,
                po.PatientOrderID,
                po.OrderNumber,
                po.OrderDate,
                po.Quantity,
                po.OrderStatus
            };

            foreach (var item in getData)
            {
                list.Add(new PatientOrderModel
                {
                    PatientOrderID = item.PatientOrderID,
                    OrderNumber    = item.OrderNumber,
                    DrugName       = item.DrugName,
                    PatientName    = item.FirstName + " " + item.LastName,
                    Quantity       = Convert.ToInt32(item.Quantity),
                    OrderStatus    = item.OrderStatus,
                    OrderDate      = Convert.ToDateTime(item.OrderDate)
                });
            }
            dt.ListOrder = list;
            return(View(dt));
        }
        public ActionResult OrderDrugs(PatientOrderModel dt)
        {
            CASDatabaseEntities db       = new CASDatabaseEntities();
            PatientOrderDetail  objOrder = new PatientOrderDetail();

            Random random = new Random();

            List <SelectListItem> list = new List <SelectListItem>();
            var getDrugDetails         = from d in db.Drugs
                                         where d.IsDeleted == false
                                         select new
            {
                d.DrugID,
                d.DrugName,
            };

            foreach (var item in getDrugDetails)
            {
                list.Add(new SelectListItem
                {
                    Text  = item.DrugName,
                    Value = item.DrugID.ToString()
                });
            }
            dt.ListDrug = list;

            var getQuantity = db.Drugs.Where(m => m.DrugID == dt.DrugID).FirstOrDefault();

            dt.QuantityAvailable = getQuantity.QOH;
            dt.QuantityType      = getQuantity.QOHType;
            dt.DrugID            = getQuantity.DrugID;

            var getSales = db.Salespersons.SingleOrDefault();

            dt.SalespersonID = getSales.SalespersonID;

            if (ModelState.IsValid)
            {
                if (dt.Quantity == 0)
                {
                    ViewBag.text = "Quantity Must Not be Zero.";
                }
                else if (dt.Quantity <= dt.QuantityAvailable)
                {
                    objOrder.DrugID        = dt.DrugID;
                    objOrder.Quantity      = dt.Quantity;
                    objOrder.OrderNumber   = random.Next();
                    objOrder.OrderDate     = DateTime.Today;
                    objOrder.OrderStatus   = "Requested";
                    objOrder.PatientID     = Convert.ToInt32(Session["ID"]);
                    objOrder.SalespersonID = dt.SalespersonID;

                    db.PatientOrderDetails.Add(objOrder);

                    getQuantity.QOH -= dt.Quantity;
                    if (getQuantity.QOH == 0)
                    {
                        getQuantity.IsDeleted = true;
                    }
                    db.SaveChanges();
                    ViewBag.text = "Order Successfully Placed";
                }
                else if (dt.Quantity > dt.QuantityAvailable)
                {
                    ViewBag.text = "Quantity Exceeded";
                }
            }
            return(View(dt));
        }