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