public ActionResult DeleteConfirmed(int id) { PaymentsModels paymentsModels = db.PaymentsModels.Find(id); db.PaymentsModels.Remove(paymentsModels); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Approve(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ReservationsModels reservationsModels = db.ReservationsModels.Find(id); if (reservationsModels.approved == false) { reservationsModels.approved = true; db.SaveChanges(); var newApprovedReservation = new ApprovedReservationsModels(); newApprovedReservation.User = reservationsModels.User; newApprovedReservation.Date = reservationsModels.Date; newApprovedReservation.Reason = reservationsModels.Reason; newApprovedReservation.Phone = reservationsModels.Phone; newApprovedReservation.LocationReserved = reservationsModels.LocationReserved; db.ApprovedReservationsModels.Add(newApprovedReservation); db.SaveChanges(); var newCostsModels = new CostsModels(); newCostsModels.UserName = reservationsModels.User; newCostsModels.Date = reservationsModels.Date; newCostsModels.Amount = 200; newCostsModels.Month = reservationsModels.Date; newCostsModels.EventId = 0; newCostsModels.EventName = reservationsModels.Reason; db.CostsModels.Add(newCostsModels); db.SaveChanges(); var newPaymentsModelss = new PaymentsModels(); newPaymentsModelss.UserName = reservationsModels.User; newPaymentsModelss.Date = DateTime.Now; newPaymentsModelss.Amount = 400; newPaymentsModelss.Month = DateTime.Now; newPaymentsModelss.Member = false; db.PaymentsModels.Add(newPaymentsModelss); db.SaveChanges(); string redirectUrlInside = "/Reservations/Index/"; return(Redirect(redirectUrlInside)); } string redirectUrl = "/Reservations/Index/"; return(Redirect(redirectUrl)); }
public ActionResult Edit([Bind(Include = "Id,UserName,Amount,Month,Member")] PaymentsModels paymentsModels) { if (ModelState.IsValid) { db.Entry(paymentsModels).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(paymentsModels)); }
public ActionResult Create([Bind(Include = "Id,UserName,Amount,Month,Member")] PaymentsModels paymentsModels) { if (ModelState.IsValid) { paymentsModels.Date = DateTime.Now; db.PaymentsModels.Add(paymentsModels); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(paymentsModels)); }
public ActionResult AddPayment([Bind(Include = "Id,FlatId,Value")] PaymentsModels paymentsModels) { if (ModelState.IsValid) { paymentsModels.PaymentDate = DateTime.Now; db.PaymentsModels.Add(paymentsModels); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(paymentsModels)); }
// GET: Payments/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PaymentsModels paymentsModels = db.PaymentsModels.Find(id); if (paymentsModels == null) { return(HttpNotFound()); } return(View(paymentsModels)); }
public async Task <ActionResult> Print(Guid?id) { Permission p = new Permission(); bool auth = p.IsGranted(User.Identity.Name, this.ControllerContext.RouteData.Values["controller"].ToString() + "_" + this.ControllerContext.RouteData.Values["action"].ToString()); if (!auth) { return(new ViewResult() { ViewName = "Unauthorized" }); } else { if (id == null || id == Guid.Empty) //show payment index { //var login_session = Session["Login"] as LoginViewModel; //Guid user_branch = db.User.Where(x => x.UserName == User.Identity.Name).FirstOrDefault().Branches_Id; //List<PaymentsIndexModels> list_pim = new List<PaymentsIndexModels>(); //foreach (var item in db.Payments.ToList()) //{ // var check_session = await (from pi in db.PaymentItems // join si in db.SaleInvoices on pi.ReferenceId equals si.Id // join sii in db.SaleInvoiceItems on si.Id equals sii.SaleInvoices_Id // where pi.Payments_Id == item.Id && sii.SessionHours > sii.SessionHours_Remaining // select new { pi, si, sii }).ToListAsync(); // PaymentsIndexModels pim = new PaymentsIndexModels // { // Id = item.Id, // No = item.No, // Timestamp = TimeZoneInfo.ConvertTimeFromUtc(item.Timestamp, TimeZoneInfo.FindSystemTimeZoneById("SE Asia Standard Time")), // CashAmount = item.CashAmount, // DebitAmount = item.DebitAmount, // ConsignmentAmount = item.ConsignmentAmount, // Cancelled = item.Cancelled, // Confirmed = item.Confirmed, // Notes_Cancel = item.Notes_Cancel, // HasSession = check_session.Count > 0 ? true : false // }; // Guid sales_invoice_id = db.PaymentItems.Where(x => x.Payments_Id == item.Id).FirstOrDefault().ReferenceId; // Guid branch_id = db.SaleInvoices.Where(x => x.Id == sales_invoice_id).FirstOrDefault().Branches_Id; // pim.Branch = db.Branches.Where(x => x.Id == branch_id).FirstOrDefault().Name; // if (branch_id == user_branch) // list_pim.Add(pim); //} ViewBag.Cancel = p.IsGranted(User.Identity.Name, "payments_cancel"); ViewBag.Approve = p.IsGranted(User.Identity.Name, "payments_approve"); ViewBag.Log = p.IsGranted(User.Identity.Name, "logs_view"); return(View()); //return View(list_pim); } else //show payment receipt { PaymentsModels paymentsModels = await db.Payments.Where(x => x.Id == id).FirstOrDefaultAsync(); BranchesModels branchesModels = new BranchesModels(); List <PaymentItemsDetails> listItems = new List <PaymentItemsDetails>(); List <SaleInvoiceItemsDetails> listDetails = new List <SaleInvoiceItemsDetails>(); decimal total_paid = 0; //var list_PaymentItemsModels = db.PaymentItems.Where(x => x.Payments_Id == paymentsModels.Id).ToList(); var list_PaymentItemsModels = await(from pi in db.PaymentItems join si in db.SaleInvoices on pi.ReferenceId equals si.Id where pi.Payments_Id == paymentsModels.Id orderby si.Timestamp ascending select new { pi }).ToListAsync(); foreach (var item in list_PaymentItemsModels) { Guid branch_id = db.SaleInvoices.Where(x => x.Id == item.pi.ReferenceId).FirstOrDefault().Branches_Id; branchesModels = await db.Branches.Where(x => x.Id == branch_id).FirstOrDefaultAsync(); PaymentItemsDetails paymentItemsDetails = new PaymentItemsDetails { Invoice = db.SaleInvoices.Where(x => x.Id == item.pi.ReferenceId).FirstOrDefault().No, Amount = db.SaleInvoices.Where(x => x.Id == item.pi.ReferenceId).Sum(x => x.Amount), DueBefore = item.pi.DueBefore, Payment = (item.pi.DueBefore > item.pi.DueAfter) ? item.pi.DueBefore - item.pi.DueAfter : item.pi.DueAfter - item.pi.DueBefore, DueAfter = item.pi.DueAfter }; listItems.Add(paymentItemsDetails); total_paid += paymentItemsDetails.Payment; //decimal total = 0; var list_SaleInvoiceItemsModels = await db.SaleInvoiceItems.Where(x => x.SaleInvoices_Id == item.pi.ReferenceId).OrderBy(x => x.RowNo).ToListAsync(); foreach (var subitem in list_SaleInvoiceItemsModels) { var data_customer = await(from si in db.SaleInvoices join c in db.User on si.Customer_UserAccounts_Id equals c.Id where si.Id == item.pi.ReferenceId select new { c }).FirstOrDefaultAsync(); SaleInvoiceItemsDetails saleInvoiceItemsDetails = new SaleInvoiceItemsDetails(); saleInvoiceItemsDetails.Invoice = paymentItemsDetails.Invoice; saleInvoiceItemsDetails.Description = subitem.Description; saleInvoiceItemsDetails.Notes = subitem.Notes; saleInvoiceItemsDetails.Customer = data_customer.c.Firstname + " " + data_customer.c.Middlename + " " + data_customer.c.Lastname; saleInvoiceItemsDetails.Qty = subitem.Qty; saleInvoiceItemsDetails.Price = subitem.Price; saleInvoiceItemsDetails.Travel = subitem.TravelCost; saleInvoiceItemsDetails.Tutor = subitem.TutorTravelCost; saleInvoiceItemsDetails.Voucher = (subitem.SaleInvoiceItems_Vouchers_Id.HasValue) ? db.SaleInvoiceItems_Vouchers.Where(x => x.Id == subitem.SaleInvoiceItems_Vouchers_Id).FirstOrDefault().Amount : 0; saleInvoiceItemsDetails.Discount = subitem.DiscountAmount; saleInvoiceItemsDetails.Amount = (subitem.Qty * subitem.Price) + subitem.TravelCost - subitem.DiscountAmount - saleInvoiceItemsDetails.Voucher; listDetails.Add(saleInvoiceItemsDetails); //total += saleInvoiceItemsDetails.Amount; } } ReceiptViewModels receiptViewModels = new ReceiptViewModels(); receiptViewModels.Branch = branchesModels; receiptViewModels.Payment = paymentsModels; receiptViewModels.listSaleInvoiceItems = listDetails; receiptViewModels.listPaymentItems = listItems; //receiptViewModels.TotalCash = paymentsModels.CashAmount; //receiptViewModels.TotalDebit = paymentsModels.DebitAmount; receiptViewModels.ConsignmentName = (paymentsModels.Consignments_Id.HasValue) ? db.Consignments.Where(x => x.Id == paymentsModels.Consignments_Id.Value).FirstOrDefault().Name : ""; receiptViewModels.TotalAmount = total_paid; return(View("Printed", receiptViewModels)); } } }
public JsonResult SavePayments(Guid branch_id, int cash_amount, int consignment_amount, Guid?consignment_id, int bank_amount, string bank_name, string owner_name, string bank_number, string reff_no, string notes, string bank_type, string invoices_id) { string lastHex_string = db.Payments.AsNoTracking().Max(x => x.No); int lastHex_int = int.Parse( string.IsNullOrEmpty(lastHex_string) ? 0.ToString("X5") : lastHex_string, System.Globalization.NumberStyles.HexNumber); PaymentsModels paymentsModels = new PaymentsModels { Id = Guid.NewGuid(), No = (lastHex_int + 1).ToString("X5"), Timestamp = DateTime.UtcNow, CashAmount = cash_amount, DebitAmount = bank_amount, DebitBank = (bank_amount == 0) ? "" : bank_name, DebitOwnerName = (bank_amount == 0) ? "" : owner_name, DebitNumber = (bank_amount == 0) ? "" : bank_number, DebitRefNo = (bank_amount == 0) ? "" : reff_no, Consignments_Id = (consignment_amount == 0) ? null : consignment_id, ConsignmentAmount = consignment_amount, Notes = notes, Cancelled = false, Confirmed = false, IsTransfer = (bank_type == "Transfer") ? true : false }; string status; Guid payment_id; DateTime dateStart = DateTime.UtcNow.AddSeconds(-10); //range time = 10 seconds DateTime dateEnd = DateTime.UtcNow; var paymentCheck = db.Payments.Where(x => x.Timestamp >= dateStart && x.Timestamp <= dateEnd && x.CashAmount == paymentsModels.CashAmount && x.DebitAmount == paymentsModels.DebitAmount && x.DebitBank == paymentsModels.DebitBank && x.DebitOwnerName == paymentsModels.DebitOwnerName && x.DebitNumber == paymentsModels.DebitNumber && x.DebitRefNo == paymentsModels.DebitRefNo && x.Consignments_Id == paymentsModels.Consignments_Id && x.ConsignmentAmount == paymentsModels.ConsignmentAmount && x.Notes == paymentsModels.Notes && x.Cancelled == paymentsModels.Cancelled && x.Confirmed == paymentsModels.Confirmed && x.IsTransfer == paymentsModels.IsTransfer ).FirstOrDefault(); if (paymentCheck != null) { status = "300"; payment_id = paymentCheck.Id; } //duplicate else { status = "200"; payment_id = paymentsModels.Id; db.Payments.Add(paymentsModels); int total_paid = cash_amount + bank_amount + consignment_amount; string[] ids = invoices_id.Split(','); for (int i = ids.Length - 1; i >= 0; i--) //foreach (string id in ids) { if (total_paid > 0) { string id_saleinvoice = ids[i]; SaleInvoicesModels saleInvoicesModels = db.SaleInvoices.Where(x => x.Id.ToString() == id_saleinvoice).FirstOrDefault(); int due_inv = saleInvoicesModels.Due; if (total_paid >= due_inv) { saleInvoicesModels.Due = 0; total_paid -= due_inv; } else { saleInvoicesModels.Due -= total_paid; total_paid = 0; } db.Entry(saleInvoicesModels).State = EntityState.Modified; PaymentItemsModels paymentItemsModels = new PaymentItemsModels { Id = Guid.NewGuid(), Payments_Id = paymentsModels.Id, ReferenceId = saleInvoicesModels.Id, Amount = (due_inv > saleInvoicesModels.Due) ? due_inv - saleInvoicesModels.Due : saleInvoicesModels.Due - due_inv, DueBefore = due_inv, DueAfter = saleInvoicesModels.Due }; db.PaymentItems.Add(paymentItemsModels); } } if (cash_amount > 0) { string lastHex_string_pcr = db.PettyCashRecords.AsNoTracking().Max(x => x.No); int lastHex_int_pcr = int.Parse( string.IsNullOrEmpty(lastHex_string_pcr) ? 0.ToString("X5") : lastHex_string_pcr, System.Globalization.NumberStyles.HexNumber); PettyCashRecordsModels pettyCashRecordsModels = new PettyCashRecordsModels { Id = Guid.NewGuid(), Branches_Id = branch_id, RefId = paymentsModels.Id, No = (lastHex_int_pcr + 1).ToString("X5"), Timestamp = DateTime.UtcNow, PettyCashRecordsCategories_Id = db.Settings.Where(x => x.Id == SettingsValue.GUID_AutoEntryForCashPayments).FirstOrDefault().Value_Guid.Value, //db.PettyCashRecordsCategories.Where(x => x.Name == "Penjualan Tunai").FirstOrDefault().Id, Notes = "Cash Payment [" + paymentsModels.No + "]", Amount = cash_amount, IsChecked = false, UserAccounts_Id = db.User.Where(x => x.UserName == User.Identity.Name).FirstOrDefault().Id }; db.PettyCashRecords.Add(pettyCashRecordsModels); } db.SaveChanges(); } return(Json(new { status, payment_id }, JsonRequestBehavior.AllowGet)); }