Exemplo n.º 1
0
        public async Task <ActionResult> RemittanceAdvise(FormCollection form, HttpPostedFileBase file)
        {
            if (ModelState.IsValid)
            {
                var clientname            = form["DoRemittance"];
                var invoicenum            = form["InvoiceNumber"];
                var serventry             = form["ServiceNumber"];
                var amountpaid            = form["AmountPaid"];
                var invoicetype           = form["InvoiceTypes"];
                var comment               = form["Comments"];
                var amountlcd             = Getlcd(clientname, invoicenum, serventry, invoicetype);
                var actual                = decimal.Parse(amountpaid);
                var lcd                   = amountlcd[0];
                var payable               = amountlcd[2];
                var outstanding           = payable - actual - lcd;
                var remittance            = file;
                var httpServerUtilityBase = this.Server;
                if (httpServerUtilityBase != null)
                {
                    var baspath          = AppDomain.CurrentDomain.BaseDirectory;
                    var folder           = Server.MapPath("../RemittanceUpload/");
                    var pathtoremittance = Path.Combine(folder, remittance.FileName);
                    using (pdInvoiceEntities db = new pdInvoiceEntities())
                    {
                        if (invoicetype == "Naira")
                        {
                            SaveRemittance(remittance, httpServerUtilityBase, folder, pathtoremittance);
                            var naira = db.Nairas.FirstOrDefault(c =>
                                                                 c.InvoiceNumber.Equals(invoicenum) && c.SENumber.Equals(serventry) &&
                                                                 c.ClientName.Equals(clientname));
                            naira.Outstanding      = outstanding;
                            naira.Comments         = comment;
                            naira.RemittanceAdvise = pathtoremittance;
                            await db.SaveChangesAsync().ConfigureAwait(true);

                            ViewBag.Success = "Naira table succesffuly updated";
                            return(RedirectToAction("RemittanceAdvise"));
                        }

                        if (invoicetype == "Dollar")
                        {
                            SaveRemittance(remittance, httpServerUtilityBase, folder, pathtoremittance);
                            var naira = db.Dollars.FirstOrDefault(c =>
                                                                  c.InvoiceNumber.Equals(invoicenum) && c.SENumber.Equals(serventry) &&
                                                                  c.ClientName.Equals(clientname));
                            naira.Outstanding      = outstanding;
                            naira.Comments         = comment;
                            naira.RemittanceAdvise = pathtoremittance;
                            await db.SaveChangesAsync().ConfigureAwait(true);

                            ViewBag.Success = "Dollar table succesffuly updated";
                            return(RedirectToAction("RemittanceAdvise"));
                        }
                    }
                }
            }

            ViewBag.Error = "An error occured, check your inputs";
            return(RedirectToAction("RemittanceAdvise"));
        }
Exemplo n.º 2
0
 public decimal[] Getlcd(string clientname, string invoicenum, string servicenum, string invoicetype)
 {
     using (pdInvoiceEntities db = new pdInvoiceEntities())
     {
         if (invoicetype == "Naira")
         {
             var naira = db.Nairas.FirstOrDefault(c => c.ClientName.Equals(clientname) && c.InvoiceNumber.Equals(invoicenum) &&
                                                  c.SENumber.Equals(servicenum));
             decimal[] result = new decimal[3];
             if (naira != null)
             {
                 result[0] = naira.LcdCharge;
             }
             result[1] = naira.Amount;
             result[2] = naira.Payable;
             return(result);
         }
         else
         {
             var dollar = db.Dollars.FirstOrDefault(c => c.ClientName.Equals(clientname) && c.InvoiceNumber.Equals(invoicenum) &&
                                                    c.SENumber.Equals(servicenum));
             decimal[] result = new decimal[3];
             if (dollar != null)
             {
                 result[0] = dollar.LcdCharge;
             }
             result[1] = dollar.Amount;
             result[2] = dollar.Payable;
             return(result);
         }
     }
 }
Exemplo n.º 3
0
        public List <DollarInvoice> GetDollarInvoices(pdInvoiceEntities db, int year, string client)
        {
            var dollar        = db.Dollars.Where(c => c.Year.Equals(year) && c.ClientName.Equals(client)).OrderBy(c => c.Month).ToList();
            var dollarinvoice = new List <DollarInvoice>();

            foreach (var n in dollar)
            {
                var nairapart = new DollarInvoice
                {
                    Date          = $"{n.Month}/{n.Year}",
                    InvoiceNumber = n.InvoiceNumber,
                    SeNumber      = n.SENumber,
                    Amount        = n.Amount,
                    Vat           = n.VAT,
                    TotalInvoice  = n.TotalInvoice,
                    Payable       = n.Payable,
                    AmountPaid    = n.AmountPaid,
                    LcdCharge     = n.LcdCharge,
                    Outstanding   = n.Outstanding,
                    DateSubmitted = n.DateSubmitted,
                    DueDate       = n.DueDate
                };
                dollarinvoice.Add(nairapart);
            }

            return(dollarinvoice);
        }
Exemplo n.º 4
0
        public async Task <ActionResult> CreateClient(FormCollection form)
        {
            if (ModelState.IsValid)
            {
                using (pdInvoiceEntities db = new pdInvoiceEntities())
                {
                    var clientname = form["ClientName"];
                    var clientcode = form["ClientCode"];
                    if (await db.Clients.AnyAsync(c => c.ClientName.Equals(clientname)))
                    {
                        ViewBag.Client = "Client name already exist in the database!";
                        return(View());
                    }

                    var client = new Client
                    {
                        ClientName = clientname,
                        ClientCode = clientcode
                    };
                    db.Clients.Add(client);
                    await db.SaveChangesAsync().ConfigureAwait(true);

                    ViewBag.Success = "Staff created successfully";
                    return(View());
                }
            }
            return(View());
        }
Exemplo n.º 5
0
        public IEnumerable <Debts> Get()
        {
            var paid = new List <Debts>();

            using (pdInvoiceEntities db = new pdInvoiceEntities())
            {
                var m = Enumerable.Range(1, 12);
                //  var months = db.Nairas.Select(c => c.Month).Distinct().AsEnumerable();
                var year = DateTime.Now.Year;
                var data = db.Dollars.Where(c => c.DateSubmitted.Value.Year == year).ToList();
                foreach (var b in m)
                {
                    var ninflow = data.Where(c => c.DateSubmitted.Value.Month == b).Sum(c => c.AmountPaid);
                    var outflow = data.Where(c => c.DateSubmitted.Value.Month == b).Sum(c => c.Outstanding);
                    var p       = new Debts
                    {
                        Month  = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(b),
                        Paid   = Convert.ToDecimal(ninflow),
                        Unpaid = outflow
                    };
                    paid.Add(p);
                }

                return(paid);
            }
        }
Exemplo n.º 6
0
        public async Task <ActionResult> EditNaira(string invoicenum, string servicenum)
        {
            using (pdInvoiceEntities db = new pdInvoiceEntities())
            {
                var data = await db.Nairas.Where(c => c.InvoiceNumber.Equals(invoicenum) && c.SENumber.Equals(servicenum))
                           .Select(c =>
                                   new NairaInvoice
                {
                    ClientName = c.ClientName,
                    //Year = c.Year,
                    InvoiceNumber  = c.InvoiceNumber,
                    SeNumber       = c.SENumber,
                    Amount         = c.Amount,
                    AmountPaid     = c.AmountPaid,
                    Vat            = c.VAT,
                    FxRate         = c.FxRate,
                    TotalInvoice   = c.TotalInvoice,
                    Payable        = c.Payable,
                    LcdCharge      = c.LcdCharge,
                    Outstanding    = c.Outstanding,
                    DateSubmitted  = c.DateSubmitted,
                    DueDate        = c.DueDate,
                    WithHoldingTax = c.WithHoldingTax,
                    Comments       = c.Comments
                }).FirstOrDefaultAsync();

                return(View(data));
            }
        }
Exemplo n.º 7
0
        public IEnumerable <Debts> Get(string yr, string client)
        {
            var paid = new List <Debts>();

            using (pdInvoiceEntities db = new pdInvoiceEntities())
            {
                var m         = Enumerable.Range(1, 12);
                var months    = db.Nairas.Select(c => c.DateSubmitted.Value.Month).Distinct().AsEnumerable();
                var year      = DateTime.Now.Year;
                var queryYear = int.Parse(yr);
                var data      = db.Nairas.Where(c => c.DateSubmitted.Value.Year == queryYear && c.ClientName.Equals(client)).ToList();
                foreach (var b in m)
                {
                    var ninflow = data.Where(c => c.DateSubmitted.Value.Month == b).Sum(c => c.AmountPaid);
                    var outflow = data.Where(c => c.DateSubmitted.Value.Month == b).Sum(c => c.Outstanding);
                    var p       = new Debts
                    {
                        //  Dtype = "Paid",
                        //Flow = Convert.ToDecimal(ninflow),
                        Month  = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(b),
                        Paid   = Convert.ToDecimal(ninflow),
                        Unpaid = outflow
                    };
                    paid.Add(p);
                }

                return(paid);
            }
        }
Exemplo n.º 8
0
 public IEnumerable <ServiceEnNum> Get(string clientName, string invoicenum)
 {
     using (pdInvoiceEntities db = new pdInvoiceEntities())
     {
         var invoice = db.ServiceEnteries.Where(c => c.ClientName == clientName && c.InvoiceNumber == invoicenum).Select(c => new ServiceEnNum
         {
             SeNumber = c.SENumber
         }).ToList();
         return(invoice);
     }
 }
Exemplo n.º 9
0
 // GET api/<controller>
 // [HttpGet]
 public IEnumerable <InvoiceNum> Get(string clientName)
 {
     using (pdInvoiceEntities db = new pdInvoiceEntities())
     {
         var invoice = db.Invoices.Where(c => c.ClientName == clientName).Select(c => new InvoiceNum {
             InvoiceNumber = c.InvoiceNumber
         }).Where(c => c.InvoiceNumber != null && !c.InvoiceNumber.Equals("NULL")).ToList();
         invoice.Insert(0, new InvoiceNum {
             InvoiceNumber = "Select Invoice Number"
         });
         return(invoice);
     }
 }
Exemplo n.º 10
0
 public List <Remittance> DoRemittance()
 {
     using (pdInvoiceEntities db = new pdInvoiceEntities())
     {
         var remittancevm = db.ServiceEnteries.GroupBy(c => new { c.ClientName, c.InvoiceNumber, c.SENumber }).Select(c => new Remittance
         {
             ClientName    = c.Key.ClientName,
             InvoiceNumber = c.Key.InvoiceNumber,
             ServiceEntry  = c.Key.SENumber
         }).ToList();
         return(remittancevm);
     }
 }
Exemplo n.º 11
0
 // GET api/<controller>
 public IEnumerable <ServiceNum> Get(string clientName, string invoicenumber)
 {
     using (pdInvoiceEntities db = new pdInvoiceEntities())
     {
         var invoice = db.ServiceEnteries.Where(c => c.ClientName == clientName && c.InvoiceNumber == invoicenumber).Select(c => new ServiceNum {
             ServiceNumber = c.SENumber
         }).Where(c => c.ServiceNumber != null && !c.ServiceNumber.Equals("NULL")).ToList();
         invoice.Insert(0, new ServiceNum {
             ServiceNumber = "Select Service Number"
         });
         return(invoice);
     }
 }
Exemplo n.º 12
0
        public async Task <ActionResult> ChangePassword(FormCollection loginform)
        {
            if (ModelState.IsValid)
            {
                var adminname = loginform["email"];
                var password  = loginform["pass"];
                var password2 = loginform["repeatpass"];
                if (!string.IsNullOrEmpty(adminname))
                {
                    if (password != password2)
                    {
                        ViewBag.PassMismatch = "Your password do not match";
                        return(View());
                    }
                    var db       = new pdInvoiceEntities();
                    var username = db.Staffs.Single(a => a.Email == adminname);
                    if (username == null)
                    {
                        ViewBag.ErrorMessage = "User not found, verify you have entered a valid information";
                        return(View());
                    }
                    var pass = Encryption.Sha256(password);
                    username.Password = pass;
                    await db.SaveChangesAsync();

                    if (username.Role.Equals("MD") || username.Role.Equals("GM") ||
                        username.Role.Equals("Accountant"))
                    {
                        if (pass.Equals(username.Password))
                        {
                            Session["AdminId"]       = username.Email;
                            Session["AdminFullname"] = username.FullName;
                            return(RedirectToAction("Index", "Debtors"));
                        }
                    }
                    else
                    {
                        if (pass.Equals(username.Password))
                        {
                            Session["AdminId"]       = username.Email;
                            Session["AdminFullname"] = username.FullName;
                            return(RedirectToAction("Index", "Debtors"));
                        }
                    }
                }
            }
            return(View());
        }
Exemplo n.º 13
0
        public async Task <ActionResult> AddInvoice(FormCollection form)
        {
            if (ModelState.IsValid)
            {
                using (pdInvoiceEntities db = new pdInvoiceEntities())
                {
                    if (form["invoicenumber"] != null)
                    {
                        var invoice = new Invoice
                        {
                            InvoiceNumber = form["invoicenumber"],
                            ClientName    = form["GetClients"]
                        };

                        var dated           = DateTime.UtcNow;
                        var span            = dated.TimeOfDay;
                        var activitybyStaff = $"added or Updated the Invoice Number {invoice.InvoiceNumber}  @ {dated} and timespan {span}";
                        var activityLog     = new ActivityLog
                        {
                            Staffinfo      = this.Session["AdminFullname"].ToString(),
                            TypeofActivity = activitybyStaff
                        };

                        try
                        {
                            db.Invoices.AddOrUpdate(invoice);
                            db.ActivityLogs.Add(activityLog);
                            await db.SaveChangesAsync().ConfigureAwait(true);

                            return(RedirectToAction("AddInvoice"));
                        }
                        catch (Exception)
                        {
                            ViewBag.ErrorMessage = "Invoice can not be added or already exist duplicate entry not allowed";
                            return(View());
                        }
                    }

                    ViewBag.Empty = "Invoice field is empty";
                    return(View());
                }
            }

            ViewBag.Error = "Invalid submission";
            return(View());
        }
Exemplo n.º 14
0
 public List <Clients> GetClients()
 {
     using (pdInvoiceEntities db = new pdInvoiceEntities())
     {
         var clientslist = db.Clients.ToList();
         var result      = new List <Clients>();
         foreach (var client in clientslist)
         {
             var clients = new Clients
             {
                 ClientCode = client.ClientCode,
                 ClientName = client.ClientName
             };
             result.Add(clients);
         }
         return(result);
     }
 }
Exemplo n.º 15
0
        public async Task <ActionResult> ServiceEntry(FormCollection form)
        {
            if (this.ModelState.IsValid)
            {
                using (pdInvoiceEntities db = new pdInvoiceEntities())
                {
                    if (string.Equals(form["invoicenumber"], null, StringComparison.Ordinal) || form["servicenumber"] == null)
                    {
                        ViewBag.Empty = "Invoice field is empty";
                        return(RedirectToAction("ServiceEntry"));
                    }

                    var service = new ServiceEntery
                    {
                        InvoiceNumber = form["invoicenumber"],
                        SENumber      = form["servicenumber"],
                        ClientName    = form["GetClients"]
                    };
                    var dated           = DateTime.UtcNow;
                    var span            = dated.TimeOfDay;
                    var activitybyStaff = $"added or Updated the Invoice {service.InvoiceNumber} Service Entry Number {service.SENumber}  @ {dated} and timespan {span}";
                    var activityLog     = new ActivityLog
                    {
                        Staffinfo      = Session["AdminFullname"].ToString(),
                        TypeofActivity = activitybyStaff
                    };

                    try
                    {
                        db.ServiceEnteries.AddOrUpdate(service);
                        db.ActivityLogs.Add(activityLog);
                        await db.SaveChangesAsync().ConfigureAwait(true);

                        return(RedirectToAction("ServiceEntry"));
                    }
                    catch (Exception)
                    {
                        ViewBag.ErrorMessage = "Invoice can not be added or already exist duplicate entry not allowed";
                        return(RedirectToAction("ServiceEntry"));
                    }
                }
            }
            return(RedirectToAction("ServiceEntry"));
        }
Exemplo n.º 16
0
        public ViewResult MonthlyAnalysis(FormCollection form)
        {
            var clientname = form["GetClients"];
            var year       = form["YearList"];

            Session["YearList"]   = year;
            Session["GetClients"] = clientname;
            using (pdInvoiceEntities db = new pdInvoiceEntities())
            {
                var _year = int.Parse(year);
                var monthlyAnalysisViewmModel = new InvoiceViewModel
                {
                    NairaInvoices  = GetNairaInvoices(db, _year, clientname),
                    DollarInvoices = GetDollarInvoices(db, _year, clientname),
                    GetClients     = GetClients(),
                    YearList       = YearList()
                };
                return(View(monthlyAnalysisViewmModel));
            }
        }
Exemplo n.º 17
0
        // GET api/<controller>
        public IEnumerable <Activiti> Get(string month)
        {
            //   return new string[] { "value1", "value2" };
            var m = int.Parse(month);

            using (pdInvoiceEntities db = new pdInvoiceEntities())
            {
                var paid   = db.Nairas.Count(c => c.Outstanding == 0 && c.DateSubmitted.Value.Month.Equals(m));
                var unpaid = db.Nairas.Count(c => c.Outstanding != 0 && c.DateSubmitted.Value.Month.Equals(m));
                var data   = new Activiti
                {
                    Paid   = paid,
                    Unpaid = unpaid
                };
                var finaldata = new List <Activiti> {
                    data
                };
                return(finaldata);
            }
        }
Exemplo n.º 18
0
        public async Task <ActionResult> EditNaira(FormCollection form)
        {
            if (ModelState.IsValid)
            {
                using (pdInvoiceEntities db = new pdInvoiceEntities())
                {
                    var clientname = form["ClientName"];
                    var invoicenum = form["InvoiceNumber"];
                    var senum      = form["SeNumber"];
                    if (await db.Nairas.AnyAsync(c =>
                                                 c.ClientName == clientname && c.InvoiceNumber == invoicenum && c.SENumber == senum))
                    {
                        var dataupdate = db.Nairas
                                         .FirstOrDefault(c => c.InvoiceNumber.Equals(invoicenum) && c.SENumber.Equals(senum));
                        if (dataupdate != null)
                        {
                            var dated           = DateTime.UtcNow;
                            var span            = dated.TimeOfDay;
                            var activitybyStaff = $"Updated the amount paid for Naira part of Invoice Number {dataupdate.InvoiceNumber} with Services Entry Number {dataupdate.SENumber}, The amount paid is {decimal.Parse(form["AmountPaid"])}  @ {dated} and timespan {span}";
                            var activityLog     = new ActivityLog
                            {
                                Staffinfo      = Session["AdminFullname"].ToString(),
                                TypeofActivity = activitybyStaff
                            };
                            db.ActivityLogs.AddOrUpdate(activityLog);
                            dataupdate.AmountPaid  = decimal.Parse(form["AmountPaid"]);
                            dataupdate.Outstanding = decimal.Parse(form["Outstanding"]);
                            await db.SaveChangesAsync();

                            ViewBag.Success = "Paid amount successfully updated for ";
                            return(RedirectToAction("EditInvoice", new { invoicenum, senum }));
                        }
                        ViewBag.Error = "The Invoice doesn't exist";
                        return(RedirectToAction("EditInvoice", new { invoicenum, senum }));
                    }
                    ViewBag.Error = "The submitted entry is invalid";
                    return(RedirectToAction("EditInvoice", new { invoicenum, senum }));
                }
            }
            return(RedirectToAction("EditInvoice"));
        }
Exemplo n.º 19
0
        // GET: Staffs
        public ActionResult Index()
        {
            if (Session["AdminId"] != null)
            {
                ViewBag.UserFullName = Session["AdminFullname"].ToString();
                ViewBag.Username     = Session["AdminId"].ToString();
                using (pdInvoiceEntities db = new pdInvoiceEntities())
                {
                    var year         = DateTime.Now.Year;
                    var data         = db.Nairas.Count(c => c.Year == year && c.Outstanding.Equals(0));
                    var datadollar   = db.Dollars.Count(c => c.Year == year && c.Outstanding.Equals(0));
                    var unpaid       = db.Nairas.Count(c => c.Year == year && !c.Outstanding.Equals(0));
                    var unpaiddollar = db.Dollars.Count(c => c.Year == year && !c.Outstanding.Equals(0));
                    ViewBag.PaidNaira    = data;
                    ViewBag.PaidDollar   = datadollar;
                    ViewBag.Unpaid       = unpaid;
                    ViewBag.UnpaidDollar = unpaiddollar;
                }

                return(View());
            }
            return(RedirectToAction("Login", "Account"));
        }
Exemplo n.º 20
0
        public ActionResult Login(FormCollection loginform)
        {
            if (ModelState.IsValid)
            {
                var adminname = loginform["email"];
                var password  = loginform["pass"];
                if (!String.IsNullOrEmpty(adminname))
                {
                    var db        = new pdInvoiceEntities();
                    var usernamee = db.Staffs.Any(a => a.Email == adminname);
                    if (usernamee)
                    {
                        var username = db.Staffs.Single(a => a.Email == adminname);
                        if (username == null)
                        {
                            TempData["ErrorMessage"] = "User not found, verify you have entered a valid information";
                            return(View());
                        }
                        var pass = Encryption.Sha256(password);
                        if (username.Role.Equals("MD") || username.Role.Equals("GM") ||
                            username.Role.Equals("Accountant"))
                        {
                            if (pass.Equals(username.Password))
                            {
                                Session["AdminId"]       = username.Email;
                                Session["AdminFullname"] = username.FullName;
                                return(RedirectToAction("Index", "Debtors"));
                            }

                            if (!pass.Equals(username.Password))
                            {
                                TempData["PasswordError"] = "Invalid password";
                                return(RedirectToAction("Login"));
                            }

                            if (pass != username.Password)
                            {
                                TempData["PasswordError"] = "Invalid password";
                                return(RedirectToAction("Login"));
                            }
                        }
                        else
                        {
                            if (pass.Equals(username.Password))
                            {
                                Session["AdminId"]       = username.Email;
                                Session["AdminFullname"] = username.FullName;
                                return(RedirectToAction("Index", "Debtors"));
                            }

                            if (!pass.Equals(username.Password))
                            {
                                TempData["PasswordError"] = "Invalid password";
                                return(RedirectToAction("Login"));
                            }
                        }
                    }

                    TempData["ErrorMessage"] = "Invalid user or user not found!!!";
                    return(RedirectToAction("Login"));
                }
            }

            TempData["ErrorMessage"] = "User details cannot be empty";
            return(View());
        }
Exemplo n.º 21
0
        public async Task <ActionResult> PostNaira(FormCollection form, HttpPostedFileBase file)
        {
            if (this.ModelState.IsValid)
            {
                try
                {
                    var date                  = form["year"].Split('-');
                    var year                  = date[0];
                    var month                 = date[2];
                    var clientName            = form["GetClients"];
                    var invoicenum            = form["invoicenumber"];
                    var servicesEntry         = form["servicenumber"];
                    var fxRate                = form["FxRate"];
                    var amount                = form["Amount"];
                    var vat                   = form["Vat"];
                    var totalinvoice          = form["TotalInvoice"];
                    var payable               = form["Payable"];
                    var lcdcharge             = form["LcdCharge"];
                    var amountpaid            = form["AmountPaid"];
                    var outstanding           = form["Outstanding"];
                    var datesubmitted         = form["DateSubmitted"];
                    var duedate               = form["DueDate"];
                    var comments              = form["comments"];
                    var withold               = form["WithHoldingTax"];
                    var remittance            = file;
                    var httpServerUtilityBase = this.Server;
                    if (httpServerUtilityBase != null)
                    {
                        var folder           = httpServerUtilityBase.MapPath("~/RemittanceUpload/");
                        var pathtoremittance = Path.Combine(folder, remittance.FileName);
                        if (remittance.ContentLength != 0)
                        {
                            if (remittance.FileName != null)
                            {
                                if (!remittance.FileName.EndsWith(".pdf"))
                                {
                                    if (remittance.FileName.EndsWith(".png") || remittance.FileName.EndsWith(".jpg") ||
                                        remittance.FileName.EndsWith(".jpeg"))
                                    {
                                        remittance.SaveAs(pathtoremittance);
                                    }
                                }
                                else
                                {
                                    folder = httpServerUtilityBase.MapPath("~/RemittanceUpload/");
                                    remittance.SaveAs(Path.Combine(folder, remittance.FileName));
                                }
                            }
                        }
                        ////  System.IO.File.Move(pathtoremittance,$"{}");

                        using (pdInvoiceEntities db = new pdInvoiceEntities())
                        {
                            var invoice = new Naira
                            {
                                ClientName       = clientName,
                                Amount           = decimal.Parse(amount),
                                AmountPaid       = decimal.Parse(amountpaid),
                                Year             = int.Parse(year),
                                Month            = int.Parse(month),
                                InvoiceNumber    = invoicenum,
                                SENumber         = servicesEntry,
                                FxRate           = decimal.Parse(fxRate),
                                VAT              = decimal.Parse(vat),
                                TotalInvoice     = decimal.Parse(totalinvoice),
                                Payable          = decimal.Parse(payable),
                                LcdCharge        = decimal.Parse(lcdcharge),
                                Outstanding      = decimal.Parse(outstanding),
                                WithHoldingTax   = decimal.Parse(withold),
                                DateSubmitted    = DateTime.Parse(datesubmitted),
                                DueDate          = DateTime.Parse(duedate),
                                RemittanceAdvise = pathtoremittance,
                                Comments         = comments
                            }; var dated           = DateTime.UtcNow;
                            var    span            = dated.TimeOfDay;
                            var    activitybyStaff = $"Posted or Updated the Naira Invoice Number {invoice.InvoiceNumber} with Services Entry Number {invoice.SENumber}  @ {dated} and timespan {span}";
                            var    activityLog     = new ActivityLog
                            {
                                Staffinfo      = this.Session["AdminFullname"].ToString(),
                                TypeofActivity = activitybyStaff
                            };
                            db.Nairas.AddOrUpdate(invoice);
                            db.ActivityLogs.AddOrUpdate(activityLog);
                            await db.SaveChangesAsync().ConfigureAwait(true);

                            return(RedirectToAction("PostNairaInvoice"));
                        }
                    }
                }
                catch (Exception e)
                {
                    this.ViewBag.Error = $"An error occured, this message could help debug:  {e.Message}";
                    return(RedirectToAction("PostNairaInvoice"));
                }
            }

            return(RedirectToAction("PostNairaInvoice"));
        }