public ActionResult Procedures(TempProceedures procedures) { int userId = (int)Session["UserId"]; var successfulBilled = new List <int>(); if (1 == 1) { foreach (var pro in procedures.tempProcedure) { pro.DepartmentId = db.Services.Find(pro.ServiceId).DepartmentId; var billServiceData = new BillServiceData() { OPDNo = procedures.OPDNo, DepartmentId = pro.DepartmentId, ServiceId = pro.ServiceId, Quantity = pro.Quantity, }; var res = new Caresoft2._0.Controllers.RegistrationController().AddItemToBill(billServiceData, userId); if (res > 1) { successfulBilled.Add(billServiceData.ServiceId); } } return(Json(successfulBilled, JsonRequestBehavior.AllowGet)); } return(Json("", JsonRequestBehavior.AllowGet)); }
public int AddItemToBill(BillServiceData data, int UserId) { BillService billService = new BillService(); var service = db.Services.Find(data.ServiceId); var OPDEntry = db.OpdRegisters.Find(data.OPDNo); DateTime dob = ((DateTime)db.OpdRegisters.Find(data.OPDNo).Patient.DOB); DateTime today = DateTime.Today; int months = today.Month - dob.Month; int years = today.Year - dob.Year; if ((years <= 5 && service.IsUnder5)) { billService.Paid = true; //Insert In waiver var waiver = new Waiver() { OPDIPDNo = data.OPDNo, AmountWaived = service.CashPrice, ReasonForWaiver = "under 5 automatic waiver", WaiverNote = "", UserId = UserId, BranchId = 1, DateAdded = DateTime.Now }; //if (Session["UserBranchId"] != null) //{ // //waiver.BranchId = (int)Session["UserBranchId"]; //} var _waiver = db.Waivers.Add(waiver); db.SaveChanges(); billService.WaivedAmount = service.CashPrice * data.Quantity; billService.WaiverNo = waiver.Id; } billService.OPDNo = data.OPDNo; billService.DepartmentId = service.DepartmentId; billService.SeviceId = data.ServiceId; billService.ServiceName = service.ServiceName; billService.Price = service.CashPrice; var OPD = db.OpdRegisters.Find(data.OPDNo); if (OPD.Tariff.Company.CompanyName.ToLower() != "cash") { var Iprice = db.InsurancePrices.FirstOrDefault(e => e.CompanyId == OPD.Tariff.CompanyId && e.ServicesPrice.ServiceId == data.ServiceId); if (Iprice != null) { billService.Price = Iprice.Price; } } billService.TariffId = OPDEntry.TariffId; billService.Award = data.AwardAmount; billService.DoctorFee = 0.0; billService.Quatity = data.Quantity; billService.WorkOrderTestId = data.WorkOrderTestId; if (data.Quantity == 0) { billService.Quatity = 1; } billService.DateAdded = DateTime.Now; billService.UserId = UserId; var User = db.Users.FirstOrDefault(e => e.Id.Equals(UserId)); billService.BranchId = User?.Employee?.BranchId ?? 1; if (data.View != null && data.View.ToLower() == "provisionalbillservices") { if (OPDEntry.Patient.OpdRegisters.Any(e => e.BillServices.Any(f => f.Service. Department.DepartmentName.ToLower().Contains("clinic")))) { var ExemptConsultationForClinics = db.KeyValuePairs.FirstOrDefault(e => e.Key_.Equals("ExemptConsultationForClinics")); if (ExemptConsultationForClinics == null) { db.KeyValuePairs.Add(new KeyValuePair() { Key_ = "ExemptConsultationForClinics", Value = "No", Owner = "Dev" }); } var ExemptConsultationForClinics2 = db.KeyValuePairs.FirstOrDefault(e => e.Key_.Equals("ExemptConsultationForClinics")); if (ExemptConsultationForClinics2 != null && ExemptConsultationForClinics2.Value == "Yes") { var opd = db.OpdRegisters.Find(data.OPDNo); var billtoExempt = opd.BillServices.FirstOrDefault(e => e.Service.ServiceName.Contains("Consultation")); if (billtoExempt != null) { billtoExempt.Paid = true; billtoExempt.Price = 0; } } } } db.BillServices.Add(billService); db.SaveChanges(); if (billService.OpdRegister.Tariff.Company.CompanyName.ToLower().Trim() == "exemption") { hs.AttemptMarkPaid(billService.Id, 0); } if (OPDEntry.Tariff.TariffName.ToLower().Trim() != "cash") { hs.ApplyAward(billService.Id); } if (hs.ExemptUnderFive() && hs.IsUnderFive(billService.OpdRegister.PatientId)) { if (billService.Service.IsUnder5) { hs.AutoWaiver(billService.Id, "under 5 automatic waiver"); } } return(billService.Id); }
public ActionResult EnterBillService(BillServiceData data) { var OPDEntry = db.OpdRegisters.Find(data.OPDNo); var billserviceId = AddItemToBill(data, (int)Session["UserId"]); if (billserviceId < 1) { return(Json(new { message = "Unable to add bill item " + data.ServiceId })); } if (data.View == "ProcedureForm") { return(RedirectToAction("ProcedureForm", "emr", new { id = data.OPDNo, selectedDepartment = data.DepartmentId })); } else if (data.View == "BillingForm") { var loggedInUser = db.Users.Find(Session["UserId"]); if (loggedInUser.UserRole.RoleName.ToLower().Equals("billadjuster") || loggedInUser.UserRole.RoleName.ToLower().Equals("sa")) { ViewBag.CanAdjust = true; } if (!OPDEntry.IsIPD) { var ser = db.Services.Find(data.ServiceId); if (ser.IsLAB || ser.IsXRAY) { var investigationFormData = AddWorkOrderTest(OPDEntry, data.ServiceId, billserviceId); var bservice = db.BillServices.Find(billserviceId); var wotid = investigationFormData.TestBillServices .FirstOrDefault(e => e.Service.Id == ser.Id).WorkOrderTestId; db.SaveChanges(); hs.AttemptMarkPaid(bservice.Id, wotid); } } OPDBillingFormData formData = new OPDBillingFormData(); formData.OpdRegister = db.OpdRegisters.Find(data.OPDNo); formData.Patient = formData.OpdRegister.Patient; formData.ServiceGroups = db.ServiceGroups.ToList(); formData.Drugs = formData.OpdRegister.Medications.ToList(); formData.BillServices = db.BillServices.Where(e => e.OPDNo == data.OPDNo) .OrderBy(e => e.Id) .OrderByDescending(e => e.Service.DepartmentId).ToList(); var myWallet = db.EWallets.Where(e => e.PatientId == formData.Patient.Id).ToList(); ViewBag.EwalletBalance = (myWallet.Where(e => e.Direction == 1).Sum(e => e.AmountTransacted) - myWallet.Where(e => e.Direction == 0).Sum(e => e.AmountTransacted)); return(PartialView("~/Views/Billing/BillingForm.cshtml", formData)); } else if (data.View.ToLower() == "investigationform") { var investigationFormData = AddWorkOrderTest(OPDEntry, data.ServiceId, billserviceId); return(PartialView("~/Views/EMR/InvestigationForm.cshtml", investigationFormData)); } var myBillServices = db.BillServices.Where(e => e.OPDNo.Equals(data.OPDNo)).ToList(); return(PartialView(data.View, myBillServices)); }