示例#1
0
        private void ProvisieNota_Click(object sender, RibbonControlEventArgs e)
        {
            Boolean          einde    = false;
            Provisie         provisie = null;
            ProvisieNotaForm form     = new ProvisieNotaForm();

            #region Bevestiging
            while (!einde)
            {
                form.ShowDialog();

                if (form.DialogResult == System.Windows.Forms.DialogResult.OK)
                {
                    Double       Totaal    = form.Totaal;
                    DialogResult Bevestigd = MessageBox.Show("Klopt het dat je een provisie 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 provisie
            using (var context = new FacturatieModel())
            {
                provisie = new Provisie(Convert.ToDecimal(form.Ereloon), Convert.ToDecimal(form.BTW),
                                        Convert.ToDecimal(form.Gerechtskosten), Convert.ToDecimal(form.Totaal), form.IC);

                context.Provisies.Add(provisie);
                provisie.PrintText(Globals.CoCoCo_Facturatie_Plugin.Application.Selection);
                context.SaveChanges();
            }
            #endregion

            form.Dispose();
        }
示例#2
0
        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);
        }