private void EreloonNota_Click(object sender, RibbonControlEventArgs e) { Boolean einde = false; EreloonNota ereLoonNota = null; EreloonNotaForm form = new EreloonNotaForm(); #region Bevestiging while (!einde) { form.ShowDialog(); if (form.DialogResult == System.Windows.Forms.DialogResult.OK) { Decimal Totaal = form.Totaal; DialogResult Bevestigd = MessageBox.Show("Klopt het dat je een ereloon nota voor " + Totaal.ToString("C", Variabelen.Cultuur) + " wil invoegen?", "Bevestiging", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (Bevestigd == DialogResult.Yes) { einde = true; form.Hide(); } } else { form.Dispose(); return; } } #endregion #region Vul text in en bewaar ereloon using (var context = new FacturatieModel()) { ereLoonNota = form.EreloonNota; context.Entry(ereLoonNota.KostenSchema).State = System.Data.Entity.EntityState.Unchanged; context.EreloonNotas.Add(ereLoonNota); ereLoonNota.PrintText(Globals.CoCoCo_Facturatie_Plugin.Application.Selection); context.SaveChanges(); } #endregion form.Dispose(); }
private void Factuur_Klick(object sender, RibbonControlEventArgs e) { FacturatieForm1 form = new FacturatieForm1(); FactuurModel FactuurModel = null; Factuur Factuur; decimal Bedrag; form.ShowDialog(); if (form.DialogResult != System.Windows.Forms.DialogResult.OK) { return; } #region Vul text in en bewaar factuur using (var context = new FacturatieModel()) { switch (form.Tab) { case 0: var OGMCode = form.OGM; Bedrag = form.OGM_Bedrag; FactuurModel = new FactuurModel(Bedrag, EreloonNota.EreloonNotaOGM(OGMCode.ToString(), context), Provisie.ProvisieOGM(OGMCode.ToString(), context), context); break; case 1: var DossierNummer = form.DossierNummer; Bedrag = form.Dossier_Bedrag; FactuurModel = new FactuurModel(Bedrag, EreloonNota.EreloonNotaDossierNr(DossierNummer, context), Provisie.ProvisieDossierNr(DossierNummer, context), context); break; default: throw new NotImplementedException("Factuur maken, zonder dat er Ereloon of Provisie voor bestaat is nog niet gemaakt!"); } Factuur = FactuurModel.Genereer(); context.SaveChanges(); } #endregion }
internal Factuur Genereer() { Boolean found = false; Factuur Factuur = null; Decimal EreloonBedrag = 0; Decimal ProvisieBedrag = 0; if (0 != EreloonNotas.Count()) { EreloonBedrag = EreloonNotas.Sum(p => p.Totaal); if (EreloonNotas.Any(p => p.Facturen.Any())) { EreloonBedrag -= EreloonNotas.Sum(p => p.Facturen.Sum(f => f.Totaal)); } ; } if (0 != Provisies.Count()) { ProvisieBedrag = Provisies.Sum(p => p.Totaal); if (Provisies.Any(p => p.Facturen.Any())) { ProvisieBedrag -= Provisies.Sum(p => p.Facturen.Sum(f => f.Totaal)); } } if (Bedrag == EreloonBedrag) { // Bedrag = som van openstaande bedragen voor ereloonnota's Factuur = new EreloonNotaFactuur(EreloonNotas, Bedrag); // Sluit Ereloonnotas af foreach (var EreloonNota in EreloonNotas) { EreloonNota.Close(Factuur); } found = true; } else if (Bedrag < EreloonBedrag) { // Kijk of Bedrag het bedrag van 1 ereloonnota is. foreach (var EreloonNota in EreloonNotas) { if (Bedrag == EreloonNota.Totaal) { // EreloonNota gevonden Factuur = new EreloonNotaFactuur(EreloonNota.ToQueryable(), Bedrag); EreloonNota.Close(Factuur); found = true; // Spring uit lus break; } } } if (Bedrag == ProvisieBedrag && !found) { // Bedrag = som van openstaande bedragen voor provisies's Factuur = new ProvisieFactuur(Provisies, Bedrag); // Sluit provisies af foreach (var Provisie in Provisies) { Provisie.Close(Factuur); } found = true; } else if (Bedrag < ProvisieBedrag && !found) { // Kijk of Bedrag het bedrag van 1 provisie is foreach (var Provisie in Provisies) { if (Bedrag == Provisie.Totaal) { // Provisie gevonden Factuur = new ProvisieFactuur(Provisie.ToQueryable(), Bedrag); Provisie.Close(Factuur); found = true; //spring uit lus break; } } } if (found && Factuur != null) { Factuur.PrintText(Globals.CoCoCo_Facturatie_Plugin.Application.Selection); } else { throw new NotImplementedException(); } return(Factuur); }