Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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;
                }
            }
        }
Ejemplo n.º 6
0
        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());
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
0
        // 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();
        }
Ejemplo n.º 9
0
        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");
            };
        }
Ejemplo n.º 10
0
    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);
            }
        }
    }
Ejemplo n.º 11
0
 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());
 }
Ejemplo n.º 12
0
 public Form1()
 {
     InitializeComponent();
     _rekening = new Rekening();
 }
 public void Initialiseer()
 {
     //Arrange
     rekening = new Rekening();
 }
Ejemplo n.º 14
0
    public String getHash(String RekeningID)
    {
        Rekening result = getRekeningObject(RekeningID).Result;

        return(result.hash);
    }
Ejemplo n.º 15
0
 private async Task SetSelectListsAsync(Rekening rekening)
 {
     ViewData["StandaardCategorieId"] = SelectListUtil.GetSelectList(await _categorieenService.GetSelectListAsync(), rekening?.StandaardCategorieId);
 }
Ejemplo n.º 16
0
        public ActionResult Add()
        {
            Rekening model = new Rekening();

            return(View("Form", model));
        }
Ejemplo n.º 17
0
        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();
        }
Ejemplo n.º 18
0
 private async Task SetSaldoAsync(Rekening rekening, DateTime?datum)
 {
     ViewData["Saldo"] = await _rekeningenService.GetSaldoOnDatumAsync(rekening, datum);
 }
Ejemplo n.º 19
0
 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;
 }
Ejemplo n.º 20
0
 private async Task SetTransactiesAsync(Rekening rekening, DateTime?datum)
 {
     ViewBag.Transacties = await _transactiesService.GetListByRekeningAsync(rekening, datum);
 }
Ejemplo n.º 21
0
        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);
        }
Ejemplo n.º 22
0
        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);
        }
Ejemplo n.º 23
0
 public void Initialize()
 {
     rekening = new Rekening();
 }
Ejemplo n.º 24
0
    public Rekening getRekening(string s)
    {
        Rekening result = getRekeningObject(s).Result;

        return(result);
    }
Ejemplo n.º 25
0
        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);
                }
            }
        }
Ejemplo n.º 26
0
        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);
        }