public InvoicePaymentDetails SaveInvoicePaymentDetails(InvoicePaymentDetails details) { SqlServerConnection conn = new SqlServerConnection(); details.Id = conn.SqlServerUpdate("DECLARE @idnt INT=" + details.Id + ", @pymt INT=" + details.Payment.Id + ", @mode INT=" + details.Mode.Id + ", @amount FLOAT=" + details.Amount + ", @refs NVARCHAR(250)='" + details.Reference + "', @account NVARCHAR(250)='" + details.Account + "', @notes NVARCHAR(MAX)='" + details.Notes + "'; IF NOT EXISTS (SELECT ipd_idnt FROM InvoicePaymentDetails WHERE ipd_idnt=@idnt) BEGIN INSERT INTO InvoicePaymentDetails (ipd_payment, ipd_mode, ipd_amount, ipd_reference, ipd_account, ipd_notes) output INSERTED.ipd_idnt VALUES (@pymt, @mode, @amount, @refs, @account, @notes) END ELSE BEGIN UPDATE InvoicePaymentDetails SET ipd_mode=@mode, ipd_amount=@amount, ipd_reference=@refs, ipd_account=@account, ipd_notes=@notes output INSERTED.ipd_idnt WHERE ipd_idnt=@idnt END"); return(details); }
public IActionResult RegisterVisit() { Users user = new Users { Id = Int64.Parse(HttpContext.User.FindFirst(ClaimTypes.Actor).Value) }; Patient patient = VisitModel.Visit.Patient; patient.Status = new PatientStatus { Id = Constants.STATUS_ACTIVE }; patient.UpdateStatus(); Encounter encounter = new Encounter { Type = new EncounterType { Id = Constants.ENCOUNTER_VISIT }, Patient = patient, CreatedBy = user }; encounter.Create(IPatientService); Visit visit = VisitModel.Visit; visit.Type = new VisitType { Id = Constants.VISIT_FACILITY }; visit.CreatedBy = user; visit.CreatedOn = DateTime.Now; visit.Save(); Referral referral = VisitModel.Referral; if (!referral.Type.Id.Equals(0)) { referral.Visit = visit; referral.CreatedBy = user; referral.Save(); var seps = new string[] { "," }; string[] doctors = VisitModel.DoctorString.Split(seps, StringSplitOptions.RemoveEmptyEntries); foreach (string doc in doctors) { new ReferralDoctors { Referral = referral, Doctor = new Doctor { Id = Convert.ToInt64(doc) } }.Save(); } } Bills bill = VisitModel.Bill; bill.Visit = visit; bill.Department = new Department { Id = Constants.DEPT_REGISTRATION }; bill.CreatedBy = user; bill.Save(); if (VisitModel.Waiver) { bill.Waiver = bill.Amount; bill.WaiverReason = VisitModel.WaiverReason; bill.WaivedBy = user; bill.UpdateWaiver(); bill.Flag = new BillingFlag { Id = Constants.FLAG_CLEARED }; bill.ProcessedBy = user; bill.UpdateProcess(); } BillsItem item = VisitModel.Item; item.Bill = bill; item.CreatedBy = user; item.Save(); //INVOICE/FLAG/CLEAR if (VisitModel.Waiver) { Invoice invoice = new Invoice { Patient = patient, Flag = new BillingFlag { Id = Constants.FLAG_CLEARED }, CreatedBy = user, Notes = "Waivered Bill" }; invoice.Save(); InvoiceDetails details = new InvoiceDetails { Invoice = invoice, Item = item, CreatedBy = user, Notes = "Waivered Item" }; details.Save(); InvoicePayment payment = new InvoicePayment { Invoice = invoice, CreatedBy = user, Notes = "Waiver Payment" }; payment.Save(); InvoicePaymentDetails pd = new InvoicePaymentDetails { Mode = new BillingMode { Id = Constants.MODE_WAIVER }, Reference = "CASHIER-00", Amount = bill.Amount, Notes = "Waiver Payment" }; pd.Save(); } Queues queue = VisitModel.Queue; queue.Visit = visit; queue.Item = item; queue.CreatedBy = user; queue.Save(); return(LocalRedirect("/registration/search")); }