private decimal CalculateTotaalBedrag(tblLid lid)
 {
     if (lid.VastBedrag != 0)
     {
         // Vast bedrag
         decContributieBedrag = lid.VastBedrag;
     }
     else
     {
         // Normaal of Zwerf
         if (lid.LidType == tblLid.constLidNormaal || lid.LidType == tblLid.constLidZwerflid)
         {
             string cat = DateRoutines.LeeftijdCategorieContributie(lid.GeboorteDatum, dtpPeilDatum.Value);
             if (cat == tblLid.constPupil)
             {
                 decContributieBedrag = txtWlpPup.ToFromDecimal;
             }
             if (cat == tblLid.constJunior)
             {
                 decContributieBedrag = txtCadJun.ToFromDecimal;
             }
             if (cat == tblLid.constSenior)
             {
                 decContributieBedrag = txtSen.ToFromDecimal;
             }
             if (cat == tblLid.const65Plus)
             {
                 decContributieBedrag = txt65.ToFromDecimal;
             }
         }
         // Als zwerf
         if (lid.LidType == tblLid.constLidZwerflid)
         {
             decContributieBedrag = (decContributieBedrag * Convert.ToInt32(txtPercZwerf.Text)) / 100;
         }
         if (lid.LidType == tblLid.constLidPakket)
         {
             decContributieBedrag = txtPakketBedrag.ToFromDecimal;
         }
     }
     return(decContributieBedrag);
 }
        private void cmdMaakRekeningen_Click(object sender, EventArgs e)
        {
            localRekeningen = new RekeningenLijst();
            foreach (tblLid lid in leden)
            {
                bool berekenen = false;
                decContributieBedrag = 0;
                if (lid.Opgezegd)
                {
                    continue;
                }
                if (lid.IsLidContVrij)
                {
                    continue;
                }
                //fout//
                tblRekening rekening = tblRekening.CreateRekeningRecord(lid, rekeningen);
                switch (cboSelectieType.SelectedIndex)
                {
                case 0:     // Alle leden
                    if ((clbLidTypes.CheckedItems.Contains(clbLidTypes.Items[0]) && lid.IsLidNormaal) ||
                        (clbLidTypes.CheckedItems.Contains(clbLidTypes.Items[1]) && lid.IsLidZwerf) ||
                        (clbLidTypes.CheckedItems.Contains(clbLidTypes.Items[2]) && lid.IsLidPakket))
                    {
                        berekenen = true;
                    }
                    ;
                    break;

                case 1:     //Gemerkte leden
                    if (lid.Gemerkt)
                    {
                        berekenen = true;
                    }
                    ;
                    break;

                default: break;
                }

                if (berekenen)
                {
                    rekening.ContributieBedrag = CalculateTotaalBedrag(lid);

                    // als een lid halverwege het seizoen lid wordt dan berekenen we de contributie per maand.
                    // we doen dit niet voor pakket leden.

                    if (ckbRelatief.Checked && lid.LidType != tblLid.constLidPakket)
                    {
                        // bereken eerst het aantal maanden tussen peildatum en inschrijfdatum.
                        var dateSpan = DateTimeSpan.CompareDates(lid.LidVanaf, dtpPeilDatum.Value);

                        // stel berekende maanden is 4 dan krijgt het lid 4 maanden korting.
                        int     aantalMaanden = dateSpan.Months + 1; // +1 omdat we vanaf de eerst volgende maand berekenen.
                        decimal korting       = decimal.Round((decContributieBedrag * aantalMaanden) / 6, 2);
                        rekening.Korting      += korting;
                        rekening.TotaalBedrag -= korting;
                    }

                    if (!lid.IsLidPakket && lid.VastBedrag == 0)
                    {
                        rekening.Korting      += lid.Korting;
                        rekening.TotaalBedrag -= lid.Korting;

                        if (lid.CompGerechtigd)
                        {
                            string cat = DateRoutines.LeeftijdCategorieContributie(lid.GeboorteDatum, dtpPeilDatum.Value);
                            if (cat == tblLid.constPupil || cat == tblLid.constJunior)
                            {
                                rekening.CompetitieBijdrage = txtCompBijdrageJun.ToFromDecimal;
                            }
                            else
                            {
                                rekening.CompetitieBijdrage = txtCompBijdrageSen.ToFromDecimal;
                            }
                            rekening.TotaalBedrag += rekening.CompetitieBijdrage;
                        }

                        if (lid.LidBond)
                        {
                            rekening.Bondsbijdrage = decimal.Round((txtBondsBijdrage.ToFromDecimal / 2), 2);
                            rekening.TotaalBedrag += rekening.Bondsbijdrage;
                        }

                        if (lid.IsRekening || lid.IsZelfBetaler)
                        {
                            rekening.ExtraBedrag   = txtKostenRekening.ToFromDecimal;
                            rekening.TotaalBedrag += rekening.ExtraBedrag;
                        }
                        // Ik ga hier de bijdrage voor taak uitrekenen
                        // regeling toepassen && geen vaste taak && taak niet uitgevoerd  of
                        // regeling toepassen && afkopen

                        if (rekening.Lid.Is_SEN1_65_SEN)
                        {
                            if (rekening.Lid.VrijwillgersRegelingIsVanToepassing)
                            {
                                rekening.BedragKortingVrijwilliger = 0;
                                if (rekening.Lid.VrijwillgersVasteTaak)
                                {
                                    rekening.BedragKortingVrijwilliger = txtKortingVrijwilliger.ToFromDecimal;
                                    if (lid.LidType == tblLid.constLidZwerflid)
                                    {
                                        rekening.BedragKortingVrijwilliger = (rekening.BedragKortingVrijwilliger * Convert.ToInt32(txtPercZwerf.Text)) / 100;
                                    }
                                }
                            }
                            else
                            {
                                rekening.BedragKortingVrijwilliger = txtKortingVrijwilliger.ToFromDecimal;
                            }
                        }
                        else
                        {
                            rekening.BedragKortingVrijwilliger = 0;
                        }
                    }
                    rekening.TotaalBedrag  -= rekening.BedragKortingVrijwilliger;
                    rekening.TotaalBedrag  += rekening.ContributieBedrag;
                    rekening.Omschrijving   = txtOmschrijving.Text + " " + lid.NetteNaam;
                    rekening.IBAN           = param.IBAN;
                    rekening.BIC            = param.BIC;
                    rekening.AanmaakDatum   = DateTime.Now;
                    rekening.PeilDatum      = dtpPeilDatum.Value;
                    rekening.TypeRekening   = 0;
                    rekening.Verstuurd      = false;
                    rekening.VerstuurdDatum = DateTime.Now;

                    if (rekening.TotaalBedrag != 0)
                    {
                        localRekeningen.Add(rekening);
                    }
                }
            }
            ReportRoutines.CreateRekeningingenReport("Aangemaakte contributie rekeningen", localRekeningen, reportFileName, true);
            MessageBox.Show(localRekeningen.Count.ToString() + " rekeningen aangemaakt.\nZie " + reportFileName, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
Exemple #3
0
        /// <summary>
        /// Schrijft aangemaakte rekeningen aan het einde van een file.
        /// </summary>
        /// <param name="titel"></param>
        /// <param name="rekeningen"></param>
        /// <param name="outputfile"></param>
        /// <param name="append">Append or new file</param>
        public static void CreateRekeningingenReport(string titel, RekeningenLijst rekeningen, string outputfile, bool append)
        {
            StreamWriter sw = new StreamWriter(outputfile, append);

            sw.WriteLine(titel + "    *** " + DateTime.Today.ToShortDateString() + " ***");
            decimal       amtTotal              = 0;
            decimal       amtKorting            = 0;
            decimal       amtCompetitieBijdrage = 0;
            decimal       amtContributieBedrag  = 0;
            decimal       amtBondsbijdrage      = 0;
            decimal       amtExtraBedrag        = 0;
            decimal       amtAfkoopTaak         = 0;
            List <string> columns = new List <string>();

            columns.Add("Lidnr");
            columns.Add("Naam");
            columns.Add("LB");
            columns.Add("CG");
            columns.Add("Leeftijd");
            columns.Add("LidType");
            columns.Add("BetaalWijze");
            columns.Add("RekType");
            columns.Add("TotBedrag");
            columns.Add("ContBedrag");
            columns.Add("Korting");
            columns.Add("CompBijdr");
            columns.Add("Bondsbijdr");
            columns.Add("ExtraBedr");
            columns.Add("Taakafkoop");
            columns.Add("Omschrijving");
            columns.Add("Verstuurd");
            columns.Add("IBAN");
            columns.Add("BIC");
            columns.Add("U-Pas");


            sw.WriteLine(String.Join(";", columns.ToArray()));

            foreach (tblRekening rekening in rekeningen)
            {
                columns.Clear();

                columns.Add(rekening.Lid.LidNr.ToString());
                columns.Add(rekening.Lid.VolledigeNaam);
                columns.Add(rekening.Lid.LidBond ? "J" : "N");
                columns.Add(rekening.Lid.CompGerechtigd ? "J" : "N");
                columns.Add(DateRoutines.LeeftijdCategorieContributie(rekening.Lid.GeboorteDatum, rekening.PeilDatum));
                columns.Add(rekening.Lid.LidType);
                columns.Add(rekening.Lid.BetaalWijze);

                columns.Add(rekening.TypeRekening.ToString());
                columns.Add(rekening.TotaalBedrag.ToCSVString());
                if (rekening.IsContributie)
                {
                    columns.Add(rekening.ContributieBedrag.ToCSVString());
                    columns.Add(rekening.Korting.ToCSVString());
                    columns.Add(rekening.CompetitieBijdrage.ToCSVString());
                    columns.Add(rekening.Bondsbijdrage.ToCSVString());
                    columns.Add(rekening.ExtraBedrag.ToCSVString());
                    columns.Add(rekening.BedragKortingVrijwilliger.ToCSVString());
                }
                else
                {
                    columns.Add(string.Empty);
                    columns.Add(string.Empty);
                    columns.Add(string.Empty);
                    columns.Add(string.Empty);
                    columns.Add(string.Empty);
                    columns.Add(string.Empty);
                }
                columns.Add(rekening.Omschrijving);
                columns.Add(rekening.Verstuurd ?  "J" : "N");
                columns.Add(rekening.IBAN);
                columns.Add(rekening.BIC);
                columns.Add(rekening.Lid.U_PasNr);

                amtTotal              += rekening.TotaalBedrag;
                amtKorting            += rekening.Korting;
                amtCompetitieBijdrage += rekening.CompetitieBijdrage;
                amtContributieBedrag  += rekening.ContributieBedrag;
                amtBondsbijdrage      += rekening.Bondsbijdrage;
                amtExtraBedrag        += rekening.ExtraBedrag;
                amtAfkoopTaak         += rekening.BedragKortingVrijwilliger;
                sw.WriteLine(String.Join(";", columns.ToArray()));
            }

            columns.Clear();
            columns.Add("Totaal bestand");
            columns.Add(string.Empty);
            columns.Add(string.Empty);
            columns.Add(string.Empty);
            columns.Add(string.Empty);
            columns.Add(string.Empty);
            columns.Add(string.Empty);
            columns.Add(amtTotal.ToCSVString());
            columns.Add(amtContributieBedrag.ToCSVString());
            columns.Add(amtKorting.ToCSVString());
            columns.Add(amtCompetitieBijdrage.ToCSVString());
            columns.Add(amtBondsbijdrage.ToCSVString());
            columns.Add(amtExtraBedrag.ToCSVString());
            columns.Add(amtAfkoopTaak.ToCSVString());

            sw.WriteLine(String.Join(";", columns.ToArray()));

            sw.Close();
        }