/// <summary>
        /// Sucht alle Buchungsdetails einer Firma aus einem bestimmten Monat
        /// </summary>
        /// <param name="fa_id"></param>
        /// <param name="monat"></param>
        /// <returns></returns>
        public static List <Buchungsdetails> MonatsBuchungsDetails(int fa_id, int monat)
        {
            log.Info("RechnungsVerwaltung - MonatsRechnung");
            List <Rechnungsdetails> gesRGdetails            = new List <Rechnungsdetails>();
            List <Buchungsdetails>  gesuchteBuchungsDetails = new List <Buchungsdetails>();
            List <Rechnung>         monatsRechnungen        = new List <Rechnung>();

            try
            {
                using (var context = new Innovation4AustriaEntities())
                {
                    monatsRechnungen = context.AlleRechnungen.Where(x => x.fa_id == fa_id).ToList();
                    foreach (var eineRechnung in monatsRechnungen)
                    {
                        List <Rechnungsdetails> alleRGDetails = context.AlleRechnungsdetails.Where(x => x.Rechnung_Id == eineRechnung.Id).ToList();
                        foreach (var rechnungsdetail in alleRGDetails)
                        {
                            Buchungsdetails einBuchungsDetail = context.AlleBuchungsdetails.Where(x => x.Id == rechnungsdetail.Buchungsdetail_Id && x.Datum.Month == monat).Include(y => y.Rechnungsdetails).FirstOrDefault();
                            if (einBuchungsDetail != null)
                            {
                                gesuchteBuchungsDetails.Add(einBuchungsDetail);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                log.Error("RechnungsVerwaltung - MonatsBuchungsDetails - DB-Verbindung fehlgeschlagen");
            }
            return(gesuchteBuchungsDetails);
        }
예제 #2
0
        /// <summary>
        /// trägt eine Buchungsdetails ein, jedes Datum vom Anfang-Enddatum wird tageweise in einen Buchungssatz
        /// </summary>
        /// <param name="buchung_id"></param>
        /// <param name="vonDatum"></param>
        /// <param name="BisDatum"></param>
        /// <param name="preis"></param>
        /// <returns></returns>
        public static bool ErstelleBuchungDetails(int buchung_id, DateTime vonDatum, DateTime BisDatum, decimal preis)
        {
            bool erfolgreich = false;

            log.Info("BuchungsVerwaltung - ErstelleBuchungDetails");
            if (buchung_id > 0)
            {
                if (vonDatum != null)
                {
                    if (BisDatum != null)
                    {
                        int wievieleTage = (BisDatum - vonDatum).Days;
                        wievieleTage++;
                        try
                        {
                            using (var context = new Innovation4AustriaEntities())
                            {
                                for (int i = 0; i < wievieleTage; i++)
                                {
                                    Buchungsdetails neueBuchung = new Buchungsdetails()
                                    {
                                        Buchung_id = buchung_id,
                                        Datum      = vonDatum,
                                        Preis      = preis
                                    };
                                    context.AlleBuchungsdetails.Add(neueBuchung);
                                    if (vonDatum < BisDatum)
                                    {
                                        vonDatum = vonDatum.AddDays(1);
                                    }
                                }
                                if (context.SaveChanges() == wievieleTage)
                                {
                                    erfolgreich = true;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            log.Error("BuchungsVerwaltung - ErstelleBuchungDetals - fehlgeschlagen");
                            if (ex.InnerException != null)
                            {
                                log.Info(ex.InnerException);
                            }
                        }
                    }
                }
            }
            return(erfolgreich);
        }
        public static Buchungsdetails BuchungsDetailEinerRechnung(int id)
        {
            log.Info("RechnungsVerwaltung - RechnungsDetailsEinerRechnung");

            Buchungsdetails buchungsDetail = new Buchungsdetails();

            try
            {
                using (var context = new Innovation4AustriaEntities())
                {
                    buchungsDetail = context.AlleBuchungsdetails.Where(x => x.Id == id).FirstOrDefault();
                }
            }
            catch (Exception ex)
            {
                log.Error("RechnugnsVerwaltung - RechnungsDetailsEinerRechnung - DB_Verbindung fehlgeschlagen");
            }
            return(buchungsDetail);
        }