public async Task <IActionResult> PostSpaardoel([FromBody] SpaardoelPostModel spaardoelPM) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Spaardoel spaardoel = new Spaardoel { Id = spaardoelPM.Id, Percentage = spaardoelPM.Percentage, Eindbedrag = spaardoelPM.Eindbedrag, EersteMaand = spaardoelPM.EersteMaand, LaatsteMaand = spaardoelPM.LaatsteMaand, Omschrijving = spaardoelPM.Omschrijving, LaatstGewijzigd = DateTime.Now, SpaardoelLabels = new List <SpaardoelLabel>() }; foreach (var newLabelId in spaardoelPM.Label) { Label label = _context.Label.Where(l => l.Id == newLabelId).First(); spaardoel.SpaardoelLabels.Add ( nieuwSpaardoelLabel(spaardoel, label) ); } _context.Spaardoel.Add(spaardoel); await _context.SaveChangesAsync(); Rekening rekening = new Rekening { Id = 0, LaatstGewijzigd = DateTime.Now, Naam = spaardoelPM.Omschrijving, Hoofdrekening = false, Startbedrag = 0, Spaardoel = spaardoel.Id }; _context.Rekening.Add(rekening); await _context.SaveChangesAsync(); return(CreatedAtAction("GetSpaardoel", new { id = spaardoel.Id }, spaardoel)); }
public ActionResult Edit(Rekening model) { if (ModelState.IsValid) { if (RepoRekening.IsExist(model.IdBank.Value, model.NoRekening, model.Id)) { ModelState.AddModelError("NoRekening", "No Rekening sudah terdaftar."); return(View("Form", model)); } Context.Rekenings dbitem = RepoRekening.FindByPK(model.Id); model.setDb(dbitem); RepoRekening.save(dbitem); return(RedirectToAction("Index")); } return(View("Form", model)); }
private List <Rekening> ReadTables(DataTable dataTable) { List <Rekening> rekeningen = new List <Rekening>(); foreach (DataRow dr in dataTable.Rows) { Rekening rekening = new Rekening() { ID = (int)dr["rekeningID"], Datum = (DateTime)dr["datum"], KlantID = (int)dr["kID"], Fooi = (decimal)dr["fooi"], BTW = (decimal)dr["btw"], TotaalPrijs = (decimal)dr["totaal"], }; rekeningen.Add(rekening); } return(rekeningen); }
private (Rekening rekening, List <string> errorMessages) FindOrImportRekening(IList <Rekening> rekeningen, string rekeningnummer, string naam) { var errorMessages = new List <string>(); var rekening = FindRekeningByRekeningnummer(rekeningen, rekeningnummer); if (rekening != null) { return(rekening, errorMessages); } rekening = FindRekeningByNaam(rekeningen, naam); if (rekening != null) { return(rekening, errorMessages); } //Niet gevonden, importeren rekening = new Rekening { Naam = naam, Rekeningnummer = string.IsNullOrWhiteSpace(rekeningnummer) ? null : rekeningnummer, IsEigenRekening = false }; var validationResults = new List <ValidationResult>(); Validator.TryValidateObject(rekening, new ValidationContext(rekening, null, null), validationResults, true); foreach (var validationResult in validationResults) { errorMessages.Add($"Rekening met rekeningnummer '{rekening.Rekeningnummer}' en naam '{rekening.Naam}' is ongeldig, {validationResult.ErrorMessage}"); } if (errorMessages.Any()) { return(null, errorMessages); } else { _rekeningenService.Add(rekening); rekeningen.Add(rekening); return(rekening, errorMessages); } }
private async Task MoveTranssactiesAsync(Rekening uiteindelijkeRekening, Rekening overigeRekening) { var transacties = await _transactiesService.GetListByRekeningAsync(overigeRekening, null); foreach (var transactie in transacties) { if (transactie.VanRekening == uiteindelijkeRekening || transactie.NaarRekening == uiteindelijkeRekening) { //Dit wordt een boeking naar zichzelf. _transactiesService.Remove(transactie); } else if (transactie.VanRekening == overigeRekening) { transactie.VanRekening = uiteindelijkeRekening; } else if (transactie.NaarRekening == overigeRekening) { transactie.NaarRekening = uiteindelijkeRekening; } } }
public async Task <IActionResult> PutRekening([FromRoute] int id, [FromBody] RekeningPostModel rekeningPM) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != rekeningPM.Id) { return(BadRequest()); } Rekening rekening = _context.Rekening.Where(a => a.Id == id).First(); rekening.LaatstGewijzigd = DateTime.Now; rekening.Naam = rekeningPM.Naam; rekening.Iban = rekeningPM.Iban; rekening.Hoofdrekening = rekeningPM.Hoofdrekening; rekening.Startbedrag = rekeningPM.Startbedrag; _context.Entry(rekening).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!RekeningExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> PostRekening([FromBody] RekeningPostModel rekeningPM) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Rekening rekening = new Rekening() { LaatstGewijzigd = DateTime.Now, Naam = rekeningPM.Naam, Iban = rekeningPM.Iban, Hoofdrekening = rekeningPM.Hoofdrekening, Startbedrag = rekeningPM.Startbedrag, Spaardoel = null }; _context.Rekening.Add(rekening); await _context.SaveChangesAsync(); return(CreatedAtAction("GetRekening", new { id = rekening.Id }, rekening)); }
// voegt de rekening toe aan database public void InsertRekening(Rekening r) { // query wordt aangemaakt en meegegeven aan command string com = "INSERT INTO Rekening VALUES (@bestId,@btwl,@btwh,@prijs,@fooi,@totaalprijs,@datumtijd,@medid,@opm)"; SqlCommand c = new SqlCommand(com, conn); // parameters worden toegekend c.Parameters.AddWithValue("@bestId", r.bestelling.ID); c.Parameters.AddWithValue("@btwl", r.btwLaag); c.Parameters.AddWithValue("@btwh", r.btwHoog); c.Parameters.AddWithValue("@prijs", r.Prijs); c.Parameters.AddWithValue("@fooi", r.fooi); c.Parameters.AddWithValue("@totaalprijs", r.totaalprijs); c.Parameters.AddWithValue("@datumtijd", r.datumtijd); c.Parameters.AddWithValue("@medid", r.medewerker.ID); c.Parameters.AddWithValue("@opm", r.opmerking); // execute query conn.Open(); c.ExecuteNonQuery(); conn.Close(); }
public MainWindow() { InitializeComponent(); Current = MijnRekening; SaldoLabel.Content = MijnRekening.Saldo.ToString("C"); SaldoLabel2.Content = MijnRekening2.Saldo.ToString("C"); Btn.Click += (e, s) => DoeIets(); Btn2.Click += (e, s) => DoeIets2(); Btn3.Click += (e, s) => DoeIets3(); rk1.Checked += (s, e) => { Current = MijnRekening; SaldoLabel.Content = MijnRekening.Saldo.ToString("C"); SaldoLabel2.Content = MijnRekening2.Saldo.ToString("C"); }; rk2.Checked += (s, e) => { Current = MijnRekening2; SaldoLabel.Content = MijnRekening.Saldo.ToString("C"); SaldoLabel2.Content = MijnRekening2.Saldo.ToString("C"); }; }
private async Task <Rekening> getRekeningObject(string loc) { System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; using (var client = new HttpClient(new HttpClientHandler { UseProxy = false, ClientCertificateOptions = ClientCertificateOption.Automatic })) { client.BaseAddress = new Uri("https://hrsqlapp.tk"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = await client.GetAsync(string.Concat("/api/rekenings/", loc)).ConfigureAwait(false); if (response.IsSuccessStatusCode)//Als het lukt { Rekening rekening = await response.Content.ReadAsAsync <Rekening>(); return(rekening); } else { return(null); } } }
public async Task <IList <Transactie> > GetRawListWithNoCategorieByRekeningAsync(Rekening rekening) { return(await GetRawListQuery() .Where(t => t.VanRekening == rekening || t.NaarRekening == rekening) .Where(t => t.Categorie == null) .ToListAsync()); }
public Form1() { InitializeComponent(); _rekening = new Rekening(); }
public void Initialiseer() { //Arrange rekening = new Rekening(); }
public String getHash(String RekeningID) { Rekening result = getRekeningObject(RekeningID).Result; return(result.hash); }
private async Task SetSelectListsAsync(Rekening rekening) { ViewData["StandaardCategorieId"] = SelectListUtil.GetSelectList(await _categorieenService.GetSelectListAsync(), rekening?.StandaardCategorieId); }
public ActionResult Add() { Rekening model = new Rekening(); return(View("Form", model)); }
public void GetBegrotingenFromExcelViaStream(Stream fileStream) { GemeenteManager gemeenteMgr = new GemeenteManager(uowMgr); // Open het Excel document met read-only acces. using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileStream, false)) { // Referentie maken naar het Workbook Part. WorkbookPart workbookPart = document.WorkbookPart; // Vind de eerste sheet en maak een referentie naar de worksheet. Sheet sheet = workbookPart.Workbook.Descendants <Sheet>().First(); // Gooi een exception als de sheet niet wordt gevonden. if (sheet == null) { throw new ArgumentException("De sheet met begrotingen werd niet gevonden!"); } // Maak een referentie naar de Worksheet Part. WorksheetPart worksheetPart = (WorksheetPart)workbookPart.GetPartById(sheet.Id); int i = 2; string cityString = ""; List <Categorie> categories = GetAllCategorieën().ToList(); do { // CITY & BUDGET string actionBudgetString = GetCellValue(worksheetPart, workbookPart, "O" + i); double actionBudget; Double.TryParse(actionBudgetString, out actionBudget); cityString = GetCellValue(worksheetPart, workbookPart, "A" + i); Gemeente city = gemeenteMgr.GetGemeente(cityString); if (actionBudget != 0) { if (city != null) { if (city.BegrotingsTypes == null) { city.BegrotingsTypes = new List <BegrotingsType>(); } int year = Int32.Parse(GetCellValue(worksheetPart, workbookPart, "M" + i)); BegrotingsType begrotingsType; if (year < DateTime.Now.Year) { begrotingsType = new Rekening(year); //Alle categorieinformaties aanmaken foreach (Categorie c in categories) { begrotingsType.CategorieInformaties.Add(new CategorieInformatie { Categorie = c, Bedrag = 0 }); } } else { begrotingsType = new Begroting(year); //Alle categorieinformaties aanmaken foreach (Categorie c in categories) { begrotingsType.CategorieInformaties.Add(new CategorieInformatie { Categorie = c, Bedrag = 0 }); } } if (!city.BegrotingsTypes.Exists(x => x.Jaartal.Equals(year))) { city.BegrotingsTypes.Add(begrotingsType); } else { begrotingsType = city.BegrotingsTypes.Find(x => x.Jaartal.Equals(year)); } // MAAK ACTIES if (begrotingsType != null) { //ACTIE string actionName = GetCellValue(worksheetPart, workbookPart, "D" + i); string actionDescription = GetCellValue(worksheetPart, workbookPart, "E" + i); Actie action = new Actie(actionName, actionDescription, actionBudget); if (begrotingsType.Acties == null) { begrotingsType.Acties = new List <Actie>(); } // BESTUUR string bestuurString = GetCellValue(worksheetPart, workbookPart, "B" + i); Bestuur bestuur; if (bestuurString.Contains("OCMW")) { bestuur = new Bestuur(bestuurString, BestuurType.OCMW); } else if (bestuurString.Equals(city.Naam)) { bestuur = new Bestuur(bestuurString, BestuurType.Gemeente); } else { bestuur = new Bestuur(bestuurString, BestuurType.AutonomeGemeentebedrijven); } if (GetAllBesturen().ToList().Exists(x => bestuurString.Equals(x.Naam))) { bestuur = GetAllBesturen().ToList().Find(x => bestuurString.Equals(x.Naam)); } action.Bestuur = bestuur; // CATEGORIE string categoryString = GetCellValue(worksheetPart, workbookPart, "H" + i); Categorie categorie = categories.Single(x => categoryString.Contains(x.Naam) && x.CategorieNiveau.Equals(CategorieNiveau.C)); action.Categorie = categorie; // ADD ACTIE BIJ BUDGET if (actionBudget > 0 && !begrotingsType.Acties.ToList().Exists(x => x.Naam.Equals(actionName))) { begrotingsType.Acties.Add(action); // CATEGORYINFO if (action.Categorie != null) { // C CategorieInformatie infoC; infoC = begrotingsType.CategorieInformaties.ToList().Find(x => x.Categorie.Naam.Equals(action.Categorie.Naam) && x.Categorie.CategorieNiveau == action.Categorie.CategorieNiveau); infoC.Bedrag += actionBudget; // B string catBString = GetCellValue(worksheetPart, workbookPart, "G" + i); Categorie catB = categories.Single(x => catBString.Contains(x.Naam) && x.CategorieNiveau == CategorieNiveau.B); if (catB == null) { throw new Exception(); } CategorieInformatie infoB; infoB = begrotingsType.CategorieInformaties.ToList().Find(x => x.Categorie.Naam.Equals(catB.Naam) && x.Categorie.CategorieNiveau == catB.CategorieNiveau); infoB.Bedrag += actionBudget; // A string catAString = GetCellValue(worksheetPart, workbookPart, "F" + i); Categorie catA = categories.Single(x => catAString.Contains(x.Naam) && x.CategorieNiveau == CategorieNiveau.A); if (catA == null) { throw new Exception(); } CategorieInformatie infoA; infoA = begrotingsType.CategorieInformaties.ToList().Find(x => x.Categorie.Naam.Equals(catA.Naam) && x.Categorie.CategorieNiveau == catA.CategorieNiveau); infoA.Bedrag += actionBudget; begrotingsType.Totaal += actionBudget; } } } // UPDATE gemeenteMgr.ChangeGemeente(city); } } Console.WriteLine("Rij " + i + "ingelezen."); i++; } while (cityString != null && !cityString.Equals("")); } uowMgr.Save(); }
private async Task SetSaldoAsync(Rekening rekening, DateTime?datum) { ViewData["Saldo"] = await _rekeningenService.GetSaldoOnDatumAsync(rekening, datum); }
public TransactionManager(String r, int u, ArduinoData a, String p, Stock s) { this.rekeningID = r; this.klantID = u; this.userName = downloadConnection.getKlant(klantID.ToString()).achternaam; this.arduino = a; this.pasID = p; this.rekening = downloadConnection.getRekening(rekeningID); this.saldo = rekening.balans; this.stock = s; }
private async Task SetTransactiesAsync(Rekening rekening, DateTime?datum) { ViewBag.Transacties = await _transactiesService.GetListByRekeningAsync(rekening, datum); }
private async Task <List <string> > ImportTransactiesRabobankCsv2013Async(List <List <string> > importRows) { var messages = new List <string>(); //Massa import, laad alle rekeningen en instellingen van te voren in. var rekeningenTask = _rekeningenService.GetListAsync(); var instellingenTask = _instellingenService.GetSingleAsync(); await Task.WhenAll(rekeningenTask, instellingenTask); var rekeningen = rekeningenTask.Result; var instellingen = instellingenTask.Result; var importedTransacties = new List <Transactie>(); for (var rowIndex = 0; rowIndex < importRows.Count; rowIndex++) { var importRow = importRows[rowIndex]; var errorMessages = new List <string>(); var infoMessages = new List <string>(); var eigenRekeningnummer = importRow[0].Trim(); var datumImportValue = importRow[2].Trim(); if (!DateTime.TryParseExact(datumImportValue, "yyyyMMdd", CultureInfo.CurrentCulture, DateTimeStyles.None, out DateTime datum)) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, '{datumImportValue}' is geen geldige datum."); } var isBijschrijving = false; var isBijschrijvingImportValue = importRow[3].Trim(); if (isBijschrijvingImportValue.Equals("C", StringComparison.InvariantCultureIgnoreCase)) { isBijschrijving = true; } else if (!isBijschrijvingImportValue.Equals("D", StringComparison.InvariantCultureIgnoreCase)) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, '{isBijschrijvingImportValue}' is geen geldige waarde voor is bijschrijving."); } //Bedragen met een punt, gebruik InvariantCulture var bedragImportValue = importRow[4].Trim(); if (!decimal.TryParse(bedragImportValue, NumberStyles.Number, CultureInfo.InvariantCulture, out decimal bedrag)) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, '{bedragImportValue}' is geen geldig bedrag."); } var tegenRekeningnummer = importRow[5].Trim(); var tegenRekeningNaam = importRow[6].Trim(); var boekcode = importRow[8].Trim(); var skipOmschrijving1 = false; if (boekcode == "ba" || boekcode == "bc") { //Betaalautomaat, Betalen contactloos //In deze gevallen is er geen tegenrekening, en staat de naam in Omschrijving1 if (tegenRekeningnummer != string.Empty || tegenRekeningNaam != string.Empty) { infoMessages.Add($"Transactie op regel {rowIndex + 1} heeft boekcode '{boekcode}' en zou daarom geen tegen rekeningnummer '{tegenRekeningnummer}' of tegen rekening naam '{tegenRekeningNaam}' moeten hebben. Deze zijn overschreven met omschrijving1."); tegenRekeningnummer = string.Empty; } tegenRekeningNaam = importRow[10].Trim(); skipOmschrijving1 = true; } var omschrijvingSb = new StringBuilder(); if (!skipOmschrijving1) { omschrijvingSb.AppendLine(importRow[10].Trim()); } omschrijvingSb.AppendLine(importRow[11].Trim()); omschrijvingSb.AppendLine(importRow[12].Trim()); omschrijvingSb.AppendLine(importRow[13].Trim()); omschrijvingSb.AppendLine(importRow[14].Trim()); omschrijvingSb.AppendLine(importRow[15].Trim()); var omschrijving = omschrijvingSb.ToString().Trim(); var eigenRekening = FindRekeningByRekeningnummer(rekeningen, eigenRekeningnummer); if (eigenRekening == null) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, eigen rekening '{eigenRekeningnummer}' is niet gevonden."); } Rekening tegenRekening = null; if (boekcode == "kh" || boekcode == "ga" || boekcode == "gb") { //Kasafhandeling, Geldautomaat Euro, Geldautomaat VV tegenRekening = instellingen.PortemonneeRekening; if (tegenRekening == null) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, er is geen portemonnee ingesteld."); } } else { (var rekening, var rekeningErrorMessages) = FindOrImportRekening(rekeningen, tegenRekeningnummer, tegenRekeningNaam); tegenRekening = rekening; foreach (var rekeningErrorMessage in rekeningErrorMessages) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, {rekeningErrorMessage}"); } } Transactie transactie = null; if (!errorMessages.Any()) { //De waarden zijn succesvol geparsed. Maak de transactie transactie = new Transactie { Datum = datum, Bedrag = bedrag, VanRekening = isBijschrijving ? tegenRekening : eigenRekening, NaarRekening = isBijschrijving ? eigenRekening : tegenRekening, Omschrijving = string.IsNullOrWhiteSpace(omschrijving) ? null : omschrijving }; //Validatie werkt op Id, zet voor nu expliciet (voor o.a. de Unlike validator) transactie.VanRekeningId = transactie.VanRekening.RekeningId; transactie.NaarRekeningId = transactie.NaarRekening.RekeningId; await _transactiesService.DetermineCategorieAsync(transactie); var validationResults = new List <ValidationResult>(); Validator.TryValidateObject(transactie, new ValidationContext(transactie, null, null), validationResults, true); foreach (var validationResult in validationResults) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, {validationResult.ErrorMessage}"); } if (importedTransacties.Any(t => t.Datum == transactie.Datum && t.Bedrag == transactie.Bedrag && t.VanRekening == transactie.VanRekening && t.NaarRekening == transactie.NaarRekening && t.Omschrijving == transactie.Omschrijving)) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, er is in dit bestand al een andere transactie op {transactie.Datum:ddd d/M/yyyy} met {transactie.Bedrag:C} van '{transactie.VanRekening.Naam}' naar '{transactie.NaarRekening.Naam}' met omschrijving '{transactie.Omschrijving}'."); } } if (errorMessages.Any()) { messages.AddRange(errorMessages); } else { messages.AddRange(infoMessages); _transactiesService.Add(transactie); importedTransacties.Add(transactie); } } await _transactiesService.SaveChangesAsync(); return(messages); }
private async Task <List <string> > ImportRekeningenOudeApplicatieAsync(List <List <string> > importRows) { var messages = new List <string>(); //Massa import, laad alle categorieën en rekeningen van te voren in. var rekeningenTask = _rekeningenService.GetListAsync(); var categorieenTask = _categorieenService.GetListAsync(); await Task.WhenAll(rekeningenTask, categorieenTask); var rekeningen = rekeningenTask.Result; var categorieen = categorieenTask.Result; foreach (var importRow in importRows) { var errorMessages = new List <string>(); var infoMessages = new List <string>(); var rekening = new Rekening { Naam = importRow[1].Trim(), Rekeningnummer = string.IsNullOrWhiteSpace(importRow[0]) ? null : importRow[0].Trim() }; var isEigenRekeningImportValue = importRow[2].Trim(); if (isEigenRekeningImportValue.Equals("Ja", StringComparison.InvariantCultureIgnoreCase)) { rekening.IsEigenRekening = true; } else if (!isEigenRekeningImportValue.Equals("Nee", StringComparison.InvariantCultureIgnoreCase)) { infoMessages.Add($"Rekening '{rekening.Naam}' bevat onbekende waarde '{isEigenRekeningImportValue}' voor is eigen rekening. Is eigen rekening is op uit gezet."); } var validationResults = new List <ValidationResult>(); Validator.TryValidateObject(rekening, new ValidationContext(rekening, null, null), validationResults, true); foreach (var validationResult in validationResults) { errorMessages.Add($"Rekening '{rekening.Naam}' is overgeslagen, {validationResult.ErrorMessage}"); } if (!string.IsNullOrWhiteSpace(rekening.Rekeningnummer) && rekeningen.Any(r => r.Rekeningnummer != null && r.Rekeningnummer.Equals(rekening.Rekeningnummer, StringComparison.InvariantCultureIgnoreCase))) { errorMessages.Add($"Rekening '{rekening.Naam}' is overgeslagen, er bestaat al een rekening met rekeningnummer '{rekening.Rekeningnummer}'."); } if (!string.IsNullOrWhiteSpace(rekening.Naam) && rekeningen.Any(r => r.Naam.Equals(rekening.Naam, StringComparison.InvariantCultureIgnoreCase))) { errorMessages.Add($"Rekening '{rekening.Naam}' is overgeslagen, er bestaat al een rekening met deze naam."); } //Doe categorie, alleen indien er nog geen fouten zijn if (!errorMessages.Any()) { var standaardCategorieImportValue = importRow[3].Trim(); (var categorie, var categorieErrorMessages) = FindOrImportCategorie(categorieen, standaardCategorieImportValue); rekening.StandaardCategorie = categorie; foreach (var categorieErrorMessage in categorieErrorMessages) { infoMessages.Add($"Rekening '{rekening.Naam}' bevat een ongeldige standaard categorie, {categorieErrorMessage} standaard categorie is op leeg gezet."); } } if (errorMessages.Any()) { messages.AddRange(errorMessages); } else { messages.AddRange(infoMessages); _rekeningenService.Add(rekening); rekeningen.Add(rekening); } } await _rekeningenService.SaveChangesAsync(); return(messages); }
public void Initialize() { rekening = new Rekening(); }
public Rekening getRekening(string s) { Rekening result = getRekeningObject(s).Result; return(result); }
private void Fill() { string nProject = ""; if (Project != "SEMUA") { nProject = " AND c.Project IN('" + Project.Replace(",", "','") + "')"; } string nPerusahaan = ""; if (Perusahaan != "SEMUA") { nPerusahaan = " AND c.Pers = '" + Perusahaan + "'"; } DateTime Dari = Db.SingleTime("SELECT FilterDari FROM LapPDF WHERE AttachmentID='" + AttachmentID + "'"); DateTime Sampai = Db.SingleTime("SELECT FilterSampai FROM LapPDF WHERE AttachmentID='" + AttachmentID + "'"); decimal t1 = 0; decimal t2 = 0; decimal t3 = 0; string Rek = ""; if (Rekening != "SEMUA") { Rek = " AND a.Bank = '" + Rekening.Replace("%", " ") + "'"; } string Status = ""; if (StatusB != "") { Status = " AND a.Status = 'BARU'"; } if (StatusID != "") { Status = " AND a.Status = 'ID'"; } if (StatusS != "") { Status = " AND a.Status = 'S'"; } string tgl = "Tgl"; string strSql = "SELECT * " + " FROM MS_ANONIM a LEFT JOIN MS_TTS b ON a.NoAnonim = b.NoAnonim" + " LEFT JOIN " + Mi.DbPrefix + "MARKETINGJUAL..MS_KONTRAK c ON b.Ref = c.NoKontrak" + " WHERE 1=1 " + " AND CONVERT(varchar," + tgl + ",112) >= '" + Cf.Tgl112(Dari) + "'" + " AND CONVERT(varchar," + tgl + ",112) <= '" + Cf.Tgl112(Sampai) + "'" + nProject + nPerusahaan + Rek + Status + " ORDER BY a.NoAnonim"; DataTable rs = Db.Rs(strSql); for (int i = 0; i < rs.Rows.Count; i++) { if (!Response.IsClientConnected) { break; } TableRow r = new TableRow(); TableCell c; r.VerticalAlign = VerticalAlign.Top; r.Attributes["ondblclick"] = "popEditTA('" + rs.Rows[i]["NoAnonim"] + "')"; c = new TableCell(); c.Text = (i + 1) + "."; c.HorizontalAlign = HorizontalAlign.Right; r.Cells.Add(c); c = new TableCell(); c.Text = rs.Rows[i]["NoAnonim"].ToString().PadLeft(7, '0'); c.HorizontalAlign = HorizontalAlign.Left; r.Cells.Add(c); c = new TableCell(); c.Text = Cf.Day(rs.Rows[i]["Tgl"]); c.Wrap = false; c.HorizontalAlign = HorizontalAlign.Left; r.Cells.Add(c); string NamaBank = Db.SingleString("SELECT Bank FROM REF_ACC WHERE Acc = '" + rs.Rows[i]["Bank"] + "'"); string RekBank = Db.SingleString("SELECT Rekening FROM REF_ACC WHERE Acc = '" + rs.Rows[i]["Bank"] + "'"); c = new TableCell(); c.Text = NamaBank;// +" " + RekBank; c.HorizontalAlign = HorizontalAlign.Left; r.Cells.Add(c); c = new TableCell(); c.Text = Cf.StrKet(rs.Rows[i]["Ket"].ToString()); c.HorizontalAlign = HorizontalAlign.Left; r.Cells.Add(c); c = new TableCell(); c.Text = Cf.Num(rs.Rows[i]["Nilai"]); c.HorizontalAlign = HorizontalAlign.Right; r.Cells.Add(c); DataTable kw = Db.Rs("SELECT * FROM MS_TTS WHERE Status = 'POST' AND NoAnonim = '" + rs.Rows[i]["NoAnonim"].ToString() + "'"); c = new TableCell(); if (kw.Rows.Count > 0) { c.Text = Cf.Day(kw.Rows[0]["TglBKM"]); } c.HorizontalAlign = HorizontalAlign.Left; r.Cells.Add(c); c = new TableCell(); if (kw.Rows.Count > 0) { c.Text = kw.Rows[0]["ManualBKM"].ToString(); } c.HorizontalAlign = HorizontalAlign.Left; r.Cells.Add(c); c = new TableCell(); if (kw.Rows.Count > 0) { c.Text = kw.Rows[0]["Unit"].ToString(); } c.HorizontalAlign = HorizontalAlign.Left; r.Cells.Add(c); c = new TableCell(); if (kw.Rows.Count > 0) { c.Text = kw.Rows[0]["Customer"].ToString(); } c.HorizontalAlign = HorizontalAlign.Left; r.Cells.Add(c); c = new TableCell(); if (kw.Rows.Count > 0) { c.Text = Cf.Num(kw.Rows[0]["Total"]); } c.HorizontalAlign = HorizontalAlign.Left; r.Cells.Add(c); rpt.Rows.Add(r); t1 += Convert.ToDecimal(rs.Rows[i]["Nilai"]); if (kw.Rows.Count > 0) { t2 += Convert.ToDecimal(kw.Rows[0]["Total"]); } if (i == rs.Rows.Count - 1) { SubTotal("GRAND TOTAL", t1, t2); } } }
private async Task <List <string> > ImportTransactiesRabobankCsv2018Async(List <List <string> > importRows) { var messages = new List <string>(); //Massa import, laad alle rekeningen en instellingen van te voren in. var rekeningenTask = _rekeningenService.GetListAsync(); var instellingenTask = _instellingenService.GetSingleAsync(); await Task.WhenAll(rekeningenTask, instellingenTask); var rekeningen = rekeningenTask.Result; var instellingen = instellingenTask.Result; var importedTransacties = new List <Transactie>(); for (var rowIndex = 0; rowIndex < importRows.Count; rowIndex++) { var importRow = importRows[rowIndex]; var errorMessages = new List <string>(); var infoMessages = new List <string>(); var eigenRekeningnummer = importRow[0].Trim(); var datumImportValue = importRow[4].Trim(); if (!DateTime.TryParseExact(datumImportValue, "yyyy-MM-dd", CultureInfo.CurrentCulture, DateTimeStyles.None, out DateTime datum)) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, '{datumImportValue}' is geen geldige datum."); } var isBijschrijving = false; var isBijschrijvingImportValue = importRow[6].Trim(); if (isBijschrijvingImportValue.Length >= 1) { isBijschrijvingImportValue = isBijschrijvingImportValue.Substring(0, 1); } if (isBijschrijvingImportValue.Equals("+", StringComparison.InvariantCultureIgnoreCase)) { isBijschrijving = true; } else if (!isBijschrijvingImportValue.Equals("-", StringComparison.InvariantCultureIgnoreCase)) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, '{isBijschrijvingImportValue}' is geen geldige waarde voor is bijschrijving."); } var bedragImportValue = importRow[6].Trim(); if (bedragImportValue.Length >= 1) { bedragImportValue = bedragImportValue.Substring(1); } if (!decimal.TryParse(bedragImportValue, NumberStyles.Number, CultureInfo.CurrentCulture, out decimal bedrag)) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, '{bedragImportValue}' is geen geldig bedrag."); } var tegenRekeningnummer = importRow[8].Trim(); var tegenRekeningNaam = importRow[9].Trim(); var transactieCode = importRow[13].Trim(); var omschrijvingSb = new StringBuilder(); omschrijvingSb.AppendLine(importRow[19].Trim()); omschrijvingSb.AppendLine(importRow[20].Trim()); omschrijvingSb.AppendLine(importRow[21].Trim()); var omschrijving = omschrijvingSb.ToString().Trim(); var eigenRekening = FindRekeningByRekeningnummer(rekeningen, eigenRekeningnummer); if (eigenRekening == null) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, eigen rekening '{eigenRekeningnummer}' is niet gevonden."); } Rekening tegenRekening = null; if (transactieCode == "kh" || transactieCode == "ga" || transactieCode == "gb") { //Kasafhandeling, Geldautomaat Euro, Geldautomaat VV tegenRekening = instellingen.PortemonneeRekening; if (tegenRekening == null) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, er is geen portemonnee ingesteld."); } } else { (var rekening, var rekeningErrorMessages) = FindOrImportRekening(rekeningen, tegenRekeningnummer, tegenRekeningNaam); tegenRekening = rekening; foreach (var rekeningErrorMessage in rekeningErrorMessages) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, {rekeningErrorMessage}"); } } Transactie transactie = null; if (!errorMessages.Any()) { //De waarden zijn succesvol geparsed. Maak de transactie transactie = new Transactie { Datum = datum, Bedrag = bedrag, VanRekening = isBijschrijving ? tegenRekening : eigenRekening, NaarRekening = isBijschrijving ? eigenRekening : tegenRekening, Omschrijving = string.IsNullOrWhiteSpace(omschrijving) ? null : omschrijving }; //Validatie werkt op Id, zet voor nu expliciet (voor o.a. de Unlike validator) transactie.VanRekeningId = transactie.VanRekening.RekeningId; transactie.NaarRekeningId = transactie.NaarRekening.RekeningId; await _transactiesService.DetermineCategorieAsync(transactie); var validationResults = new List <ValidationResult>(); Validator.TryValidateObject(transactie, new ValidationContext(transactie, null, null), validationResults, true); foreach (var validationResult in validationResults) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, {validationResult.ErrorMessage}"); } if (importedTransacties.Any(t => t.Datum == transactie.Datum && t.Bedrag == transactie.Bedrag && t.VanRekening == transactie.VanRekening && t.NaarRekening == transactie.NaarRekening && ( (transactie.VanRekening.IsEigenRekening && transactie.NaarRekening.IsEigenRekening) || //Interne boeking. Deze komen dubbel voor in een bestand (t.Omschrijving == transactie.Omschrijving) //Externe boeking. Controleer ook de omschrijving (Betaalverzoeken verschillen vaak alleen op omschrijving) ))) { errorMessages.Add($"Transactie op regel {rowIndex + 1} is overgeslagen, er is in dit bestand al een andere transactie op {transactie.Datum:ddd d/M/yyyy} met {transactie.Bedrag:C} van '{transactie.VanRekening.Naam}' naar '{transactie.NaarRekening.Naam}'."); } } if (errorMessages.Any()) { messages.AddRange(errorMessages); } else { messages.AddRange(infoMessages); _transactiesService.Add(transactie); importedTransacties.Add(transactie); } } await _transactiesService.SaveChangesAsync(); return(messages); }