Example #1
0
        public IActionResult Update(ConfirmInvoiceViewModel confirmInvoiceViewModel, int[] RemoveWorkTimeIDs)
        {
            List <Worktime> RemoveList = new List <Worktime>();

            Invoice updatedInvoice = context.Invoices
                                     .Include(inv => inv.Project.Client)
                                     .Include(inv => inv.Worktimes)
                                     .Single(inv => inv.InvoiceID == confirmInvoiceViewModel.InvoiceID);

            foreach (int i in RemoveWorkTimeIDs)
            {
                foreach (Worktime aWorktime in updatedInvoice.Worktimes)
                {
                    if (aWorktime.WorktimeID == i)
                    {
                        RemoveList.Add(aWorktime);
                    }
                }
            }

            foreach (Worktime aWorktime in RemoveList)
            {
                updatedInvoice.Worktimes.Remove(aWorktime);
                updatedInvoice.TotalAmount -= aWorktime.Amount;
                aWorktime.OpenStatus        = true;
            }

            context.SaveChanges();

            ConfirmInvoiceViewModel confirmInvoiceViewModel2 = new ConfirmInvoiceViewModel(updatedInvoice);

            return(View("ConfirmInvoice", confirmInvoiceViewModel2));
        }
        public async Task <ActionResult> LockInvoice(ConfirmInvoiceViewModel confirmModel)
        {
            string       userId      = User.Identity.GetUserId();
            ShoppingCart sessionCart = GetCartFromSession(userId);
            int          orderNumber = sessionCart.Order.OrderNumber;

            if (ModelState.IsValid)
            {
                using (FreeMarketEntities db = new FreeMarketEntities())
                {
                    OrderHeader order = db.OrderHeaders.Find(orderNumber);
                    if (order != null)
                    {
                        order.OrderStatus     = "Invoiced";
                        db.Entry(order).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();

                        OrderHeader.SendInvoice(userId, order.OrderNumber);

                        AuditUser.LogAudit(28, string.Format("Order Number: {0}", order.OrderNumber), User.Identity.GetUserId());

                        sessionCart.Initialize(User.Identity.GetUserId());
                    }
                }
                return(RedirectToAction("PayInvoice", new { orderNumber = orderNumber }));
            }

            ConfirmInvoiceViewModel model = new ConfirmInvoiceViewModel(sessionCart);

            model.TermsAndConditions = confirmModel.TermsAndConditions;

            return(View("ConfirmInvoice", model));
        }
        public ActionResult ConfirmInvoice()
        {
            string       userId      = User.Identity.GetUserId();
            ShoppingCart sessionCart = GetCartFromSession(userId);

            // EFT
            sessionCart.Order.PaymentOption = 1;

            ConfirmInvoiceViewModel model = new ConfirmInvoiceViewModel(sessionCart);

            return(View("ConfirmInvoice", model));
        }
Example #4
0
        public IActionResult Generator(InvoiceViewModel invoiceViewModel)
        {
            if (ModelState.IsValid)
            {
                Project newProject = context.Projects
                                     .Include(p => p.Client)
                                     .Single(p => p.ProjectID == invoiceViewModel.ProjectID);

                Invoice newInvoice = new Invoice
                {
                    CurrentDate = DateTime.Today.ToString("d"),
                    Project     = newProject
                };

                IList <Worktime> openWorktimes = context.Worktimes
                                                 .Where(w => w.ProjectID == invoiceViewModel.ProjectID)
                                                 .Where(w => w.OpenStatus == true)
                                                 .Include(w => w.Project)
                                                 .Include(w => w.Project.Client)
                                                 .ToList();

                if (openWorktimes.Count == 0)
                {
                    return(Redirect("/"));
                }

                newInvoice.Worktimes = openWorktimes;

                foreach (Worktime aWorktime in openWorktimes)
                {
                    newInvoice.TotalAmount += aWorktime.Amount;
                    aWorktime.OpenStatus    = false;
                }

                context.Invoices.Add(newInvoice);
                context.SaveChanges();

                ConfirmInvoiceViewModel confirmInvoiceViewModel = new ConfirmInvoiceViewModel(newInvoice);

                return(View("ConfirmInvoice", confirmInvoiceViewModel));
            }

            return(View("Invoice", invoiceViewModel));
        }
Example #5
0
        public IActionResult Cancel(ConfirmInvoiceViewModel confirmInvoiceViewModel)
        {
            Invoice RemoveInvoice = context.Invoices
                                    .Include(inv => inv.Project.Client)
                                    .Include(inv => inv.Worktimes)
                                    .Single(inv => inv.InvoiceID == confirmInvoiceViewModel.InvoiceID);

            List <Worktime> restoreTimes = RemoveInvoice.Worktimes.ToList();

            foreach (Worktime aWorktime in restoreTimes)
            {
                aWorktime.OpenStatus = true;
            }

            context.Remove(RemoveInvoice);
            context.SaveChanges();

            return(Redirect("/"));
        }