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