public async Task <ActionResult> Edit(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) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } BranchesModels branchesModels = await db.Branches.FindAsync(id); if (branchesModels == null) { return(HttpNotFound()); } return(View(branchesModels)); } }
public async Task <ActionResult> Edit([Bind(Include = "Id,Name,Address,PhoneNumber,Notes,InvoiceHeaderText,Active")] BranchesModels branchesModels) { if (ModelState.IsValid) { var current_data = await db.Branches.FindAsync(branchesModels.Id); current_data.Name = branchesModels.Name; current_data.Address = branchesModels.Address; current_data.PhoneNumber = branchesModels.PhoneNumber; current_data.Notes = branchesModels.Notes; current_data.InvoiceHeaderText = branchesModels.InvoiceHeaderText; current_data.Active = branchesModels.Active; db.Entry(current_data).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(branchesModels)); }
public async Task <ActionResult> Create([Bind(Include = "Id,Name,Address,PhoneNumber,Notes,InvoiceHeaderText,Active")] BranchesModels branchesModels) { if (ModelState.ContainsKey("Duplicate")) { return(RedirectToAction("Index")); } if (ModelState.IsValid) { branchesModels.Id = Guid.NewGuid(); branchesModels.Active = true; db.Branches.Add(branchesModels); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(branchesModels)); }
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)); } } }