public ActionResult ExemptEarlierRegisteredUnder5() { if (hs.ExemptUnderFive()) { var underFiveServices = db.BillServices.Where(e => !e.Paid); foreach (var u5s in underFiveServices) { if (hs.IsUnderFive(u5s.OpdRegister.PatientId)) { hs.AutoWaiver(u5s.Id, "under 5 automatic waiver"); } } return(Content("Cleared " + underFiveServices.Count())); } return(Content("Under five exemption is disabled. Check Keyvalue pairs.")); }
public ActionResult OPDRegistration(int?id, string QueueType = "OPD", string mode = "New") { if (id != null) { var opdRegg = db.Patients.FirstOrDefault(e => e.Id == id)?.OpdRegisters?.OrderByDescending(e => e.Id)? .FirstOrDefault(e => !e.Status.Equals("draft")); if (opdRegg != null) { ViewBag.LastRegistationDate = opdRegg.TimeAdded; } else { ViewBag.LastRegistationDate = DateTime.Now; } } else { ViewBag.LastRegistationDate = DateTime.Now; } var data = new OPDModels(); if (mode == "New") { data.Patient = db.Patients.Find(id); if (data.Patient.OpdRegisters.FirstOrDefault( e => e.Date.Date == DateTime.Today && !(e.Status.ToLower().Trim().Equals("draft") || e.Status.ToLower().Trim().Equals("closed"))) != null) { return(Json(new { status = "info", message = "This patient is already in todays queue!" }, JsonRequestBehavior.AllowGet)); } var opdDraft = data.Patient.OpdRegisters.FirstOrDefault(e => e.Status.ToLower().Trim().Equals("draft")); if (opdDraft != null) { data.OPDEntry = opdDraft; } else { var entry = new OpdRegister(); entry.BranchId = (int)Session["UserBranchId"]; entry.Date = DateTime.Now; entry.PatientId = data.Patient.Id; entry.Status = "draft"; entry.TimeAdded = DateTime.Now; var tariffCash = db.Tariffs.FirstOrDefault(e => e.TariffName.ToLower().Trim().Equals("cash")); if (tariffCash == null) { entry.TariffId = new Seeder().SeedCashAsATariff(); } else { entry.TariffId = tariffCash.Id; } entry.Username = int.Parse(Session["UserId"].ToString()); db.OpdRegisters.Add(entry); int res = db.SaveChanges(); if (res > 0) { new Utils.TurnAroundTime().insert( new PatientTurnAroundTime() { OPDId = entry.Id, RequestTime = DateTime.Now, FullfilmentTime = null, Department = "billing", SearvedByUserId = (int)Session["UserId"], FacilityId = 1, } ); } data.OPDEntry = entry; //enter consultation fee by default var consultationService = db.KeyValuePairs.FirstOrDefault(e => e.Key_ == "default_consultation_service_name").Value; var consultation = db.Services.FirstOrDefault(e => e.ServiceName.Trim().ToLower().Equals(consultationService)); var billService = new BillService(); billService.OPDNo = entry.Id; billService.DepartmentId = consultation.DepartmentId; billService.SeviceId = consultation.Id; billService.ServiceName = consultation.ServiceName; billService.Price = consultation.CashPrice; billService.Quatity = 1; billService.Award = 0; billService.DoctorFee = 0; billService.Paid = false; billService.Offered = false; billService.DateAdded = DateTime.Now; billService.UserId = int.Parse(Session["UserId"].ToString()); billService.BranchId = (int)Session["UserBranchId"]; billService.IsNurse = false; db.BillServices.Add(billService); db.SaveChanges(); if (hs.IsUnderFive(entry.PatientId) && hs.ExemptUnderFive()) { hs.AutoWaiver(billService.Id, "under 5 automatic waiver"); } } } else if (mode == "Edit") { data.OPDEntry = db.OpdRegisters.Find(id); data.Patient = data.OPDEntry.Patient; } ViewBag.Mode = mode; data.Doctors = db.Employees.Where(e => e.Designation.DesignationName.Trim().ToLower().Equals("doctor")).ToList(); data.RevenueDepartments = db.Departments.Where(e => e.DepartmentType1.DepartmnetType.ToLower().Trim().Equals("revenue")).ToList(); //data.PatientCategories = db.Companies.ToList(); data.MainCategories = db.CompanyTypes.ToList(); data.Relationships = db.Relationships.ToList(); var defaultConsultationServiceName = db.KeyValuePairs.FirstOrDefault(e => e.Key_.ToLower().Trim().Equals("default_consultation_service_name")).Value; data.Consultation = db.Services.FirstOrDefault(e => e.ServiceName.ToLower().Trim().Equals(defaultConsultationServiceName)); ViewBag.QueueType = QueueType; return(PartialView(data)); }