// GET: RegularVisit/Create
        public ActionResult Create()
        {
            ViewBag.PersonId = new SelectList(db.People, "PersonId", "OPDRegistrationID");
            var ViewModel = new RegularVisitData
            {
                PrescribedMeds = new List <PrescribedMed> {
                    new PrescribedMed {
                        VisitId = 0, MedicineName = "", Power = "", NoOfTime = "", Quantity = "", Remarks = ""
                    }
                }
            };

            return(View(ViewModel));
        }
        public ActionResult Create(RegularVisitData todayVisit)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Visit visit = new Visit()
                    {
                        PersonId      = todayVisit.PersonId,
                        Problems      = todayVisit.Problems,
                        Billable      = todayVisit.Billable,
                        NextVisit     = todayVisit.NextVisit,
                        Revisit       = todayVisit.Revisit,
                        VisitBillable = todayVisit.VisitBillable,
                        VisitCharge   = todayVisit.VisitCharge,
                        VisitDate     = todayVisit.VisitDate
                    };
                    foreach (var med in todayVisit.PrescribedMeds)
                    {
                        visit.PrescribedMeds.Add(med);
                    }

                    if (visit.Revisit)
                    {
                        Appointment apps = db.Appointments.Where(c => c.PersonId == visit.PersonId).OrderByDescending(c => c.Date).FirstOrDefault();

                        if (apps != null)
                        {
                            apps.VisitDate       = visit.VisitDate;
                            db.Entry(apps).State = EntityState.Modified;
                        }
                    }

                    if (visit.VisitCharge > 0)
                    {
                        Income income = new Income()
                        {
                            Amount     = visit.VisitCharge,
                            IncomeDate = visit.VisitDate
                        };
                        db.Incomes.Add(income);
                    }
                    if (visit.NextVisit != null)
                    {
                        Appointment apps = new Appointment()
                        {
                            Date     = (DateTime)(visit.NextVisit),
                            PersonId = visit.PersonId
                        };
                        db.Appointments.Add(apps);
                    }
                    db.Visits.Add(visit);

                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                ViewBag.PersonId = new SelectList(db.People, "PersonId", "PersonId", todayVisit.PersonId);
                return(View(todayVisit));
            }
            catch
            {
                return(View());
            }
        }