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")); }
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); } } }
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); }
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()); }
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); } }
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)); } }
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); } }
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); } }
// 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); } }
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); } }
// 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); } }
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()); }
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()); }
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); } }
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")); }
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)); } }
// 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); } }
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")); }
// 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")); }
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()); }
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")); }