public ActionResult InvoiceCheckOut(Guid Doctor_Id, Guid Patient_Id, long OrderNumber) { InvoiceCheckoutViewModel InvoiceCheckoutViewModel = new InvoiceCheckoutViewModel(); InvoiceCheckoutViewModel.Doctor_Id = Doctor_Id; InvoiceCheckoutViewModel.Patient_Id = Patient_Id; InvoiceCheckoutViewModel.OrderNumber = OrderNumber; InvoiceCheckoutViewModel.Branch_Id = Guid.Parse(User.Identity.GetUserBranchId()); InvoiceCheckoutViewModel.Bill_Generator = Guid.Parse(User.Identity.GetUser_Id()); InvoiceCheckoutViewModel.TotalBill = (from T in db.Tests join O in db.Orders on T.Id equals O.TestId where O.PatientId == Patient_Id && O.OrderCode == OrderNumber && O.DoctorId == Doctor_Id select T.Price).Sum(); /// To Do Individual Test Discount not considered InvoiceCheckoutViewModel.TotalPayable = InvoiceCheckoutViewModel.TotalBill; ViewBag.ReferelLabId = new SelectList(db.ReferelLabs, "Id", "ReferelLabName"); return(View(InvoiceCheckoutViewModel)); }
public ActionResult InvoiceCheckOut(InvoiceCheckoutViewModel InvoiceCheckoutViewModel) { if (InvoiceCheckoutViewModel != null) { var data = db.InvoiceCheckouts.FirstOrDefault(x => x.OrderNumber == InvoiceCheckoutViewModel.OrderNumber); if (data != null) { db.InvoiceCheckouts.Remove(data); db.SaveChanges(); } InvoiceCheckout invoiceCheckout = new InvoiceCheckout(); invoiceCheckout.Id = Guid.NewGuid(); invoiceCheckout.Doctor_Id = InvoiceCheckoutViewModel.Doctor_Id; invoiceCheckout.Patient_Id = InvoiceCheckoutViewModel.Patient_Id; invoiceCheckout.OrderNumber = InvoiceCheckoutViewModel.OrderNumber; invoiceCheckout.TotalPayable = InvoiceCheckoutViewModel.TotalPayable; invoiceCheckout.Branch_Id = InvoiceCheckoutViewModel.Branch_Id; invoiceCheckout.Bill_Generator = InvoiceCheckoutViewModel.Bill_Generator; invoiceCheckout.InvoiceDate = InvoiceCheckoutViewModel.InvoiceDate; invoiceCheckout.PaymentMode = InvoiceCheckoutViewModel.PaymentMode; invoiceCheckout.PaymentMethod = InvoiceCheckoutViewModel.PaymentMethod; invoiceCheckout.TotalBill = InvoiceCheckoutViewModel.TotalBill; invoiceCheckout.Discount = InvoiceCheckoutViewModel.Discount; invoiceCheckout.SampleReceiveDate = InvoiceCheckoutViewModel.SampleReceiveDate; invoiceCheckout.SampleReceiveTime = InvoiceCheckoutViewModel.SampleReceiveTime; invoiceCheckout.IsCorporateCustomer = InvoiceCheckoutViewModel.IsCorporateCustomer; invoiceCheckout.ReferelLabId = InvoiceCheckoutViewModel.ReferelLabId; invoiceCheckout.Remarks = InvoiceCheckoutViewModel.Remarks; invoiceCheckout.ReportDeliveryDate = InvoiceCheckoutViewModel.ReportDeliveryDate; invoiceCheckout.ReportDeliveryTime = InvoiceCheckoutViewModel.ReportDeliveryTime; db.InvoiceCheckouts.Add(invoiceCheckout); db.SaveChanges(); var ExistData = db.BillTransactions.FirstOrDefault(x => x.OrderNumber == InvoiceCheckoutViewModel.OrderNumber); if (ExistData != null) { db.BillTransactions.Remove(ExistData); db.SaveChanges(); } BillTransaction billTransaction = new BillTransaction(); billTransaction.Id = Guid.NewGuid(); billTransaction.OrderNumber = InvoiceCheckoutViewModel.OrderNumber; billTransaction.Patient_Id = InvoiceCheckoutViewModel.Patient_Id; billTransaction.Doctor_Id = InvoiceCheckoutViewModel.Doctor_Id; billTransaction.Branch_Id = InvoiceCheckoutViewModel.Branch_Id; billTransaction.BillDate = InvoiceCheckoutViewModel.InvoiceDate; billTransaction.Transtype = "Bill"; billTransaction.BillAmount = InvoiceCheckoutViewModel.TotalPayable; db.BillTransactions.Add(billTransaction); db.SaveChanges(); var existingDataPaymentTrans = db.PaymentTransactions.Where(x => x.OrderNumber == InvoiceCheckoutViewModel.OrderNumber); if (existingDataPaymentTrans.Count() != 0) { db.ExecuteNonQuery("Delete from PaymentTransactions where OrderNumber='" + InvoiceCheckoutViewModel.OrderNumber + "'"); } if (InvoiceCheckoutViewModel.AmountReceived > 0) { PaymentTransaction PaymentTransaction = new PaymentTransaction(); PaymentTransaction.Id = Guid.NewGuid(); PaymentTransaction.OrderNumber = InvoiceCheckoutViewModel.OrderNumber; PaymentTransaction.Patient_Id = InvoiceCheckoutViewModel.Patient_Id; PaymentTransaction.Doctor_Id = InvoiceCheckoutViewModel.Doctor_Id; PaymentTransaction.Branch_Id = InvoiceCheckoutViewModel.Branch_Id; PaymentTransaction.PaymentDate = InvoiceCheckoutViewModel.InvoiceDate; PaymentTransaction.Transtype = "Payment"; PaymentTransaction.TransAmount = InvoiceCheckoutViewModel.AmountReceived; db.PaymentTransactions.Add(PaymentTransaction); db.SaveChanges(); } return(RedirectToAction("InvoiceCheckOut", new { Doctor_Id = InvoiceCheckoutViewModel.Doctor_Id, Patient_Id = InvoiceCheckoutViewModel.Patient_Id, OrderNumber = InvoiceCheckoutViewModel.OrderNumber })); } ViewBag.ReferelLabId = new SelectList(db.ReferelLabs, "Id", "ReferelLabName"); return(View(InvoiceCheckoutViewModel)); }