public ActionResult Bezahlen(int Monatnummer)
        {
            log.Info("Rechnung - Bezahlen - GET");

            Benutzer aktBenutzer = BenutzerAdministrator.GetUser(User.Identity.Name);

            List <Buchungsdetails> gesuchteBuchungsDetails = RechnungsVerwaltung.MonatsBuchungsDetails((int)aktBenutzer.Firma_id, Monatnummer);
            KreditkartenModel      KreditkartenVorlage     = new KreditkartenModel();

            foreach (var item in gesuchteBuchungsDetails)
            {
                if (KreditkartenVorlage.Rechnungsnummer == 0)
                {
                    Rechnungsdetails rgDeatail = RechnungsVerwaltung.RGDetailZuBuchung(item.Id);
                    KreditkartenVorlage.Rechnungsnummer = rgDeatail.Rechnung_Id;
                }
            }

            KreditkartenVorlage.KreditkartenBezeichnung = new List <KreditkartenArtModel>();
            List <Kreditkarte> alleKreditkarten = RechnungsVerwaltung.AlleKreditKarten();

            foreach (var kreditkarte in alleKreditkarten)
            {
                KreditkartenArtModel model = new KreditkartenArtModel()
                {
                    bezeichnung = kreditkarte.bezeichnung,
                    id          = kreditkarte.id
                };
                KreditkartenVorlage.KreditkartenBezeichnung.Add(model);
            }

            KreditkartenVorlage.Rechnungsbetrag = gesuchteBuchungsDetails.Sum(x => x.Preis);

            return(View(KreditkartenVorlage));
        }
        public ActionResult Bezahlen(KreditkartenModel model)
        {
            log.Info("Rechnung - Bezahlen - POST");
            Benutzer aktBenutzer = BenutzerAdministrator.GetUser(User.Identity.Name);

            if (ModelState.IsValid)
            {
                if (model.GültigBisJahr >= DateTime.Now.Year)
                {
                    if (model.GültigBisMonat >= DateTime.Now.Month)
                    {
                        if (checkLuhn(model.KreditKartenNummer))
                        {
                            RechnungsVerwaltung.RechnungIstBezahlt(model.Rechnungsnummer);
                        }
                        else
                        {
                            TempData[ConstStrings.SUCCESS_MESSAGE] = Validierungen.WurdeSchonBezahlt;
                        }
                    }
                }
            }



            return(RedirectToAction("Dashboard", "Benutzer"));
        }
        public ActionResult Erstellen(int Monatnummer)
        {
            log.Info("Rechnung - Erstellen - GET");

            Benutzer aktBenutzer = BenutzerAdministrator.GetUser(User.Identity.Name);

            List <Buchungsdetails> gesuchteBuchungsDetails = RechnungsVerwaltung.MonatsBuchungsDetails((int)aktBenutzer.Firma_id, Monatnummer);

            Rechnung rechnung = RechnungsVerwaltung.LiefereRechnungzuFirmaAusMonat(gesuchteBuchungsDetails);

            RechnungErstellenModel rechnungsModel = new RechnungErstellenModel();

            Firma firma = FirmenVerwaltung.LiefereFirma((int)aktBenutzer.Firma_id);

            rechnungsModel.Rg_Id                = rechnung.Id;
            rechnungsModel.Firmenname           = firma.Bezeichnung;
            rechnungsModel.FirmenstrassenNummer = firma.Nummer;
            rechnungsModel.FirmenOrt            = firma.Ort;
            rechnungsModel.Firmenstrasse        = firma.Strasse;
            rechnungsModel.FirmenPlz            = firma.Plz;
            rechnungsModel.Datum                = (DateTime)rechnung.Datum;
            rechnungsModel.Firmenname           = firma.Bezeichnung;
            rechnungsModel.Gesamtpreis          = gesuchteBuchungsDetails.Sum(x => x.Preis);
            rechnungsModel.Steuerbetrag         = (rechnungsModel.Gesamtpreis / 100) * 20;
            rechnungsModel.RechnungsDetails     = new List <RechnungsDetailModel>();
            foreach (var buchungsDetail in gesuchteBuchungsDetails)
            {
                RechnungsDetailModel model = new RechnungsDetailModel()
                {
                    Buchungs_ID   = buchungsDetail.Id.ToString(),
                    Buchungsdatum = buchungsDetail.Datum,
                    Preis         = buchungsDetail.Preis,
                    RaumNummer    = RaumVerwaltung.GesuchterRaumName(buchungsDetail.Buchung_id)
                };

                rechnungsModel.RechnungsDetails.Add(model);
            }
            DateTime VonDatum = (from x in gesuchteBuchungsDetails orderby x.Datum select x.Datum).FirstOrDefault();
            DateTime BisDatum = (from x in gesuchteBuchungsDetails orderby x.Datum descending select x.Datum).FirstOrDefault();

            return(new Rotativa.ViewAsPdf("Erstellen", rechnungsModel));
        }
        public ActionResult Stornieren(int Id)
        {
            Benutzer aktBenutzer = BenutzerAdministrator.GetUser(User.Identity.Name);

            Buchung aktBuchung = BuchungsVerwaltung.HoleBuchung(Id);
            List <Buchungsdetails> BuchungsDetailsZuBuchung = BuchungsVerwaltung.BuchungsDetailsVonBuchung(aktBuchung.Id);

            BuchungsDetailsZuBuchung = BuchungsDetailsZuBuchung.OrderBy(x => x.Datum).ToList();
            foreach (var item in BuchungsDetailsZuBuchung)
            {
                if (item.Datum < DateTime.Now.AddDays(1))
                {
                    KreditkartenModel StornoModel = new KreditkartenModel();
                    StornoModel.KreditkartenBezeichnung = new List <KreditkartenArtModel>();
                    List <Kreditkarte> alleKreditkarten = RechnungsVerwaltung.AlleKreditKarten();
                    foreach (var kreditkarte in alleKreditkarten)
                    {
                        KreditkartenArtModel model = new KreditkartenArtModel()
                        {
                            bezeichnung = kreditkarte.bezeichnung,
                            id          = kreditkarte.id
                        };
                        StornoModel.Buchung_id = Id;
                        StornoModel.KreditkartenBezeichnung.Add(model);
                        StornoModel.Rechnungsbetrag = BuchungsDetailsZuBuchung.Sum(x => x.Preis) / 2;
                    }
                    BuchungsVerwaltung.SperreVonUser(aktBenutzer.Id);
                    return(View(StornoModel));
                }
            }


            log.Info("BuchungController - Stornieren -Get");
            if (Id > 0)
            {
                bool storniert = BuchungsVerwaltung.Stornieren(Id);
            }
            return(RedirectToAction("Dashboard", "Benutzer"));
        }
        public ActionResult Dashboard()
        {
            log.Info("BenutzerController - Dashboard");

            Benutzer aktBenutzer = BenutzerAdministrator.GetUser(User.Identity.Name);

            DashboardModel dashboard = new DashboardModel();
            //User.Identity.Name

            // holt alle Mitarbeiter einer Firma
            List <BenutzerModel> alleMitarbeitereinerFirma = new List <BenutzerModel>();

            if (aktBenutzer.Firma_id != null)
            {
                List <Benutzer> alleBenutzer = BenutzerVerwaltung.LadeMitarbeiterEinerFirma((int)aktBenutzer.Firma_id);
                if (alleBenutzer == null)
                {
                    log.Warn("No stuff was found");
                }
                foreach (var einBenutzer in alleBenutzer)
                {
                    BenutzerModel einMitarbeiter = new BenutzerModel()
                    {
                        Emailadresse = einBenutzer.Emailadresse,
                        Nachname     = einBenutzer.Nachname,
                        Vorname      = einBenutzer.Vorname
                    };
                    alleMitarbeitereinerFirma.Add(einMitarbeiter);
                }
            }
            dashboard.AlleMitarbeiter = alleMitarbeitereinerFirma;

            List <BuchungsAnzeigeModel> alleBuchungen = new List <BuchungsAnzeigeModel>();
            List <Rechnungsdetails>     rechnungsDetailsEinerBuchung = new List <Rechnungsdetails>();
            List <Buchungsdetails>      BuchungsDetailsVonFirma      = new List <Buchungsdetails>();

            List <Buchung> bookingsOfCompany = BuchungsVerwaltung.GebuchteRaeume((int)aktBenutzer.Firma_id);

            dashboard.AlleBuchungen = new List <BuchungsAnzeigeModel>();
            if (bookingsOfCompany != null)
            {
                foreach (var booking in bookingsOfCompany)
                {
                    BuchungsDetailsVonFirma = BuchungsVerwaltung.BuchungsDetailsVonBuchung(booking.Id);

                    Raum aktRaum = RaumVerwaltung.GesuchterRaum(booking.Raum_id);
                    BuchungsAnzeigeModel buchungsmodel = new BuchungsAnzeigeModel();
                    buchungsmodel.Id         = booking.Id;
                    buchungsmodel.Raumnummer = aktRaum.Bezeichnung;
                    buchungsmodel.RaumArt    = aktRaum.Art.Bezeichnung;

                    buchungsmodel.VonDatum = (from x in BuchungsDetailsVonFirma orderby x.Datum select x.Datum).FirstOrDefault();
                    buchungsmodel.BisDatum = (from x in BuchungsDetailsVonFirma orderby x.Datum descending select x.Datum).FirstOrDefault();

                    dashboard.AlleBuchungen.Add(buchungsmodel);
                }
            }

            else
            {
                log.Info("BenutzerController - Dashboard - keine Buchungen für die Firma vorhanden sind");
            }

            dashboard.AlleBuchungen = dashboard.AlleBuchungen.OrderBy(x => x.BisDatum).ToList();

            List <Rechnung> alleRechnungenEinerFirma = RechnungsVerwaltung.RechnungenEinerFirma((int)aktBenutzer.Firma_id);

            List <RechnungsModel> alleRechnungenAnzeigen = new List <RechnungsModel>();


            List <Buchungsdetails> buchungsDetailsDieInRechnungsDetailsvorkommen = new List <Buchungsdetails>();

            Buchungsdetails buchungsDetail = new Buchungsdetails();

            foreach (var rechnung in alleRechnungenEinerFirma)
            {
                List <Rechnungsdetails> RechnungsDetailsEinerRechnung = RechnungsVerwaltung.RechnungsDetailsEinerRechnung(rechnung.Id);
                foreach (var rechnungsDetail  in RechnungsDetailsEinerRechnung)
                {
                    buchungsDetail = RechnungsVerwaltung.BuchungsDetailEinerRechnung(rechnungsDetail.Buchungsdetail_Id);
                    buchungsDetailsDieInRechnungsDetailsvorkommen.Add(buchungsDetail);
                }
            }

            List <int> dates = new List <int>();

            foreach (var buchungsdetail in buchungsDetailsDieInRechnungsDetailsvorkommen)
            {
                if (!dates.Contains(buchungsDetail.Datum.Month))
                {
                    int date = buchungsDetail.Datum.Month;
                    dates.Add(date);
                }
            }

            List <RechnungsModel> alleRechnungen = new List <RechnungsModel>();

            foreach (var item in dates)
            {
                RechnungsModel RgModel = new RechnungsModel()
                {
                    Monat       = Monat(item),
                    Monatnummer = item
                };
                alleRechnungen.Add(RgModel);
            }
            ;


            dashboard.AlleRechnungen = alleRechnungen;

            return(View(dashboard));
        }
Ejemplo n.º 6
0
 public ActionResult RechnungenFuerMonatProduzieren(int Monat, int Jahr)
 {
     log.Info("Innovation4AustriaMitarbeiterController - RechnungenFuerMonatProduzieren - Post");
     RechnungsVerwaltung.ErstelleRechnungenFuerMonat(Monat, Jahr);
     return(RedirectToAction("RechnungsUebersicht"));
 }
Ejemplo n.º 7
0
        public ActionResult RechnungsUebersicht()
        {
            log.Info("Innovation4Austria - RechnungsUebersicht - GET");


            List <RechnungsuebersichtModel> alleRechnungen = new List <RechnungsuebersichtModel>();

            for (int i = 1; i <= 12; i++)
            {
                RechnungsuebersichtModel Monatsabrechnung = new RechnungsuebersichtModel();
                Monatsabrechnung.Monat = i;
                Monatsabrechnung.Jahr  = DateTime.Now.AddYears(-1).Year;
                List <Buchungsdetails> CountBuchungen = RechnungsVerwaltung.BuchungenFuerMonatVorhanden(Monatsabrechnung.Monat, Monatsabrechnung.Jahr);
                if (CountBuchungen.Count > 0)
                {
                    Monatsabrechnung.schonBezahlt = RechnungsVerwaltung.RechnungenFuerMonatVorhanden(Monatsabrechnung.Monat, Monatsabrechnung.Jahr);
                    if (Monatsabrechnung.schonBezahlt)
                    {
                        Monatsabrechnung.Bezeichnung = Innovation4Austria.web.AppCode.ConstStrings.RECHNUNG_SCHON_VORHANDEN;
                    }
                    else
                    {
                        Monatsabrechnung.Bezeichnung = Innovation4Austria.web.AppCode.ConstStrings.RECHNUNGEN_JETZT_ERZEUGEN;
                    }
                }
                else
                {
                    Monatsabrechnung.Bezeichnung  = Innovation4Austria.web.AppCode.ConstStrings.KEINE_RECHNUNGEN_VORHANDEN;
                    Monatsabrechnung.schonBezahlt = true;
                }
                alleRechnungen.Add(Monatsabrechnung);
                alleRechnungen = alleRechnungen.OrderBy(x => x.Monat).ToList();
            }
            for (int i = 1; i <= 12; i++)
            {
                RechnungsuebersichtModel Monatsabrechnung = new RechnungsuebersichtModel();
                Monatsabrechnung.Monat = i;
                Monatsabrechnung.Jahr  = DateTime.Now.Year;
                List <Buchungsdetails> CountBuchungen = RechnungsVerwaltung.BuchungenFuerMonatVorhanden(Monatsabrechnung.Monat, Monatsabrechnung.Jahr);
                if (CountBuchungen.Count > 0)
                {
                    Monatsabrechnung.schonBezahlt = RechnungsVerwaltung.RechnungenFuerMonatVorhanden(Monatsabrechnung.Monat, Monatsabrechnung.Jahr);
                    if (Monatsabrechnung.schonBezahlt)
                    {
                        Monatsabrechnung.Bezeichnung = Innovation4Austria.web.AppCode.ConstStrings.RECHNUNG_SCHON_VORHANDEN;
                    }
                    else
                    {
                        Monatsabrechnung.Bezeichnung = Innovation4Austria.web.AppCode.ConstStrings.RECHNUNGEN_JETZT_ERZEUGEN;
                    }
                }
                else
                {
                    Monatsabrechnung.Bezeichnung  = Innovation4Austria.web.AppCode.ConstStrings.KEINE_RECHNUNGEN_VORHANDEN;
                    Monatsabrechnung.schonBezahlt = true;
                }
                if (i >= DateTime.Now.Month)
                {
                    Monatsabrechnung.Bezeichnung  = Innovation4Austria.web.AppCode.ConstStrings.RECHNUNG_KANN_NICHT_ERZEUGT_WERDEN;
                    Monatsabrechnung.schonBezahlt = true;
                }
                alleRechnungen.Add(Monatsabrechnung);
            }
            return(View(alleRechnungen));
        }