public ActionResult PreviewInvoice(EInvoice invoice, int?id, string Preview, EMultipleService multipleServices)
        {
            multipleServices.invoiceId     = invoice.invoiceId;
            invoice.Multiple               = true;
            invoice.TypeOfService          = "Multiple";
            invoice.Description            = "MultipleServices";
            invoice.Amount                 = multipleServices.SubTotal;
            multipleServices.NameOfService = invoice.TypeOfService;
            var lfHldr = Convert.ToDecimal(invoice.LateFee);


            //government tax


            //withholding tax
            //JEV WAS HERE NYAHAHA
            if (invoice.GovernmentTax == 12)
            {
                decimal x = multipleServices.SubTotal * invoice.GovernmentTax;
                invoice.gtholder = 12;
                decimal govtax = x / 100;
                invoice.GovernmentTax  = govtax;
                invoice.WithholdingTax = 0;
                decimal y = invoice.Amount * invoice.WithholdingTax;
                invoice.whtholder = invoice.WithholdingTax;
                decimal whtax = y / 100;
                invoice.WithholdingTax = whtax;
            }

            if (invoice.WithholdingTax == 1)
            {
                invoice.WithholdingTax = 1;
                decimal wttax = invoice.WithholdingTax / 100;
                invoice.whtholder = wttax;
                Convert.ToDouble(invoice.Amount);
                decimal y = multipleServices.SubTotal * wttax;
                invoice.WithholdingTax = y;
            }
            else if (invoice.WithholdingTax == 2)
            {
                invoice.WithholdingTax = 2;
                decimal wttax = invoice.WithholdingTax / 100;
                invoice.whtholder = invoice.WithholdingTax;
                decimal y = invoice.Amount * wttax;
                invoice.WithholdingTax = y;
            }
            else if (invoice.WithholdingTax == 5)
            {
                invoice.WithholdingTax = 5;
                decimal wttax = invoice.WithholdingTax / 100;
                invoice.whtholder = wttax;
                Convert.ToDouble(invoice.Amount);
                decimal y = invoice.Amount * wttax;
                invoice.WithholdingTax = y;
            }
            else
            {
                invoice.WithholdingTax = 0;
                decimal wttax = invoice.WithholdingTax / 100;
                invoice.whtholder = wttax;
                Convert.ToDouble(invoice.Amount);
                decimal y = invoice.Amount * wttax;
                invoice.WithholdingTax = y;
            }


            //latefee
            decimal q = invoice.Amount * lfHldr;

            invoice.lfholder = lfHldr;
            decimal latefee = q / 100;

            lfHldr          = latefee;
            invoice.LateFee = Convert.ToString(lfHldr);



            invoice.totalTax = invoice.gtholder + invoice.whtholder + invoice.lfholder;
            invoice.Total    = invoice.Amount + invoice.GovernmentTax + invoice.WithholdingTax + latefee;
            invoice.Status   = "Pending";

            if (ModelState.IsValid)
            {
                switch (Preview)
                {
                case "Preview":
                    return(RedirectToAction("PreviewInvoice", invoice));

                default:
                    db.invoices.Add(invoice);
                    db.SaveChanges();
                    db.invoices.Find(id);
                    return(RedirectToAction("EmailRedirect", new { id = invoice.invoiceId }));
                }
            }
            //return View(invoice);
            return(Json(invoice));
        }
        public ActionResult CreateInvoice(string Submit, string Comments, EInvoice invoice, EMultipleService multipleServices)
        {
            multipleServices.invoiceId     = invoice.invoiceId;
            invoice.Multiple               = true;
            invoice.TypeOfService          = "Multiple";
            invoice.Description            = "Multiple Services";
            invoice.Amount                 = multipleServices.SubTotal;
            multipleServices.NameOfService = invoice.TypeOfService;

            //Converts everything from string to their definite var type
            var lfHldr = Convert.ToDecimal(invoice.LateFee);

            //amount
            //invoice.Amount = rateHldr * qtyHldr;
            //government tax


            //withholding tax
            //JEV WAS HERE NYAHAHA
            if (invoice.GovernmentTax == 12)
            {
                decimal x = multipleServices.SubTotal * invoice.GovernmentTax;
                invoice.gtholder = 12;
                decimal govtax = x / 100;
                invoice.GovernmentTax  = govtax;
                invoice.WithholdingTax = 0;
                decimal y = invoice.Amount * invoice.WithholdingTax;
                invoice.whtholder = invoice.WithholdingTax;
                decimal whtax = y / 100;
                invoice.WithholdingTax = whtax;
            }

            if (invoice.WithholdingTax == 1)
            {
                invoice.WithholdingTax = 1;
                decimal wttax = invoice.WithholdingTax / 100;
                invoice.whtholder = wttax;
                Convert.ToDouble(invoice.Amount);
                decimal y = multipleServices.SubTotal * wttax;
                invoice.WithholdingTax = y;
            }
            else if (invoice.WithholdingTax == 2)
            {
                invoice.WithholdingTax = 2;
                decimal wttax = invoice.WithholdingTax / 100;
                invoice.whtholder = invoice.WithholdingTax;
                decimal y = invoice.Amount * wttax;
                invoice.WithholdingTax = y;
            }
            else if (invoice.WithholdingTax == 5)
            {
                invoice.WithholdingTax = 5;
                decimal wttax = invoice.WithholdingTax / 100;
                invoice.whtholder = wttax;
                Convert.ToDouble(invoice.Amount);
                decimal y = invoice.Amount * wttax;
                invoice.WithholdingTax = y;
            }


            //latefee
            decimal q = invoice.Amount * lfHldr;

            invoice.lfholder = lfHldr;
            decimal latefee = q / 100;

            lfHldr           = latefee;
            invoice.LateFee  = Convert.ToString(lfHldr);
            invoice.Comments = Comments;

            invoice.totalTax = invoice.gtholder + invoice.whtholder + invoice.lfholder;

            invoice.Status = "Pending";

            if (invoice.TypeOfService != null && invoice.Quantity != null && invoice.Rate != null)
            {
                if (ModelState.IsValid)
                {
                    switch (Submit)
                    {
                    case "Preview":
                        return(RedirectToAction("PreviewInvoice", invoice));

                    default:
                        db.invoices.Add(invoice);
                        db.SaveChanges();
                        if (invoice.TypeOfService == "Multiple")
                        {
                            return(RedirectToAction("Submit"));
                        }
                        return(RedirectToAction("EmailRedirect", new { id = invoice.invoiceId }));
                    }
                }
            }
            ViewBag.CompanyName      = new SelectList(db.companies, "CompanyName", "CompanyName", invoice.CompanyName);
            ViewBag.TypeOfService    = new SelectList(db.typeofservices, "typeofserviceId", "NameOfService", invoice.TypeOfService);
            ViewBag.MultipleServices = new SelectList(db.MultipleServices, "typeofserviceId", "NameOfService", invoice.multipleServices);
            //return View(invoice);
            return(Json(invoice));
        }