예제 #1
0
        public static Seminartermin GetSeminartermin(Mandant mandant, string seminarterminID)
        {
            var qry     = "SELECT * FROM PSDSeminartermine WHERE Mandant=@mandant AND SeminarterminID=@seminarterminid";
            var command = mandant.MainDevice.GenericConnection.CreateSqlStringCommand(qry);

            command.AppendInParameter("mandant", typeof(short), mandant.Id);
            command.AppendInParameter("seminarterminid", typeof(string), seminarterminID);

            try
            {
                using (var reader = command.ExecuteReader())
                {
                    if (reader.Read())
                    {
                        return(new Seminartermin()
                        {
                            Abgesagt = reader.GetDBBoolean("Abgesagt"),
                            Absagegrund = reader.GetString("Absagegrund"),
                            Absagetermin = reader.GetNullableDateTime("Absagetermin"),
                            Adresse = reader.GetNullableInt32("Adresse"),
                            Aktiv = reader.GetDBBoolean("Aktiv"),
                            AnzahlTeilnehmer = reader.GetNullableInt16("AnzahlTeilnehmer"),
                            AnzahlTeilnehmerMax = reader.GetNullableInt16("AnzahlTeilnehmerMax"),
                            AnzahlTeilnehmerMin = reader.GetNullableInt16("AnzahlTeilnehmerMin"),
                            Artikelnummer = reader.GetString("Artikelnummer"),
                            Endedatum = reader.GetNullableDateTime("Endedatum"),
                            Endezeit = reader.GetString("Endezeit"),
                            Mandant = reader.GetInt16("Mandant"),
                            Matchcode = reader.GetString("Matchcode"),
                            Memo = reader.GetString("Memo"),
                            Ort = reader.GetString("Ort"),
                            PLZ = reader.GetString("PLZ"),
                            SeminarterminID = reader.GetString("SeminarterminID"),
                            Startdatum = reader.GetNullableDateTime("Startdatum"),
                            Startzeit = reader.GetString("Startzeit"),
                            Status = reader.GetString("Status"),
                            Stornofrist = reader.GetNullableInt16("Stornofrist"),
                            TrainerIDEins = reader.GetString("TrainerIDEins"),
                            TrainerIDZwei = reader.GetString("TrainerIDZwei"),
                            Timestamp = reader.GetBytes("Timestamp")
                        });
                    }
                    else
                    {
                        throw new RecordNotFoundException("Seminartermin", seminarterminID);
                    }
                }
            }
            catch (RecordNotFoundException ex)
            {
                TraceLog.LogVerbose(ex.Message);
                throw;
            }
            catch (Exception ex)
            {
                TraceLog.LogException(ex);
                throw;
            }
        }
예제 #2
0
        /// <summary>
        /// Aktualisiert die Teilnehmer zu einem Termin
        /// </summary>
        /// <param name="mandant"></param>
        /// <param name="seminarterminID"></param>
        public static void UpdateSeminarterminTeilnehmer(Mandant mandant, string seminarterminID)
        {
            var seminartermin   = SeminarData.GetSeminartermin(mandant, seminarterminID);
            var countTeilnehmer = mandant.MainDevice.Lookup.RowCount("PSDSeminarbuchungen", $"Mandant={mandant.Id} AND SeminarterminID={SqlStrings.ToSqlString(seminarterminID)}");

            seminartermin.AnzahlTeilnehmer = ConversionHelper.ToInt16(countTeilnehmer);
            SeminarData.UpdateOrCreateSeminartermin(mandant, seminartermin);
        }
예제 #3
0
 private void DeleteAllKenngroessenFruehererJahre(Mandant mandant)
 {
     if (erfassungsPeriodService.GetClosedErfassungsPeriodModels().Count == 1)
     {
         kenngroessenFruehererJahreService
         .DeleteAllKenngroessenFruehererJahre(kenngroessenFruehererJahreService.GetEntitiesBy(mandant));
     }
 }
예제 #4
0
        /// <summary>
        /// Aktualisiert oder legt eine neue Seminarbuchung an
        /// </summary>
        /// <param name="mandant"></param>
        /// <param name="buchung"></param>
        /// <returns></returns>
        /// <exception cref="Exception">wird bei allgemeinen Fehler geworfen.</exception>
        /// <exception cref="RecordUpdateException">wird bei Fehlern im DB-Update geworfen.</exception>
        public static Seminarbuchung UpdateOrInsertSeminarbuchung(Mandant mandant, Seminarbuchung buchung)
        {
            var qry = new StringBuilder();

            if (buchung.BuchungID == 0)
            {
                // Neuanlage
                buchung.BuchungID = mandant.MainDevice.GetTan("PSDSeminarbuchungen", mandant.Id);
                buchung.Mandant   = buchung.Mandant == 0 ? mandant.Id : buchung.Mandant;
                qry.AppendLine("INSERT INTO PSDSeminarbuchungen ");
                qry.AppendLine("(BuchungID, Mandant, SeminarterminID, BelID, BelPosID, VorPosID, Adresse, ");
                qry.AppendLine("Konto, KontoMatchcode, Ansprechpartnernummer, AnsprechpartnerVorname, ");
                qry.AppendLine("AnsprechpartnerNachname, AnsprechpartnerEmail, EmailBestaetigungGesendet)");
                qry.AppendLine("VALUES");
                qry.AppendLine("(@buchungid, @mandant, @seminarterminid, @belid, @belposid, @vorposid, @adresse, ");
                qry.AppendLine("@konto, @kontomatchcode, @ansprechpartnernummer, @ansprechpartnervorname, ");
                qry.AppendLine("@ansprechpartnernachname, @ansprechpartneremail, @emailbestaetigunggesendet)");
            }
            else
            {
                // Aktualisierung
                qry.AppendLine("UPDATE PSDSeminarbuchungen SET ");
                qry.AppendLine("SeminarterminID=@seminarterminid, BelID=@belid, BelPosID=@belposid, VorPosID=@vorposid, ");
                qry.AppendLine("Adresse=@adresse, Konto=@konto, KontoMatchcode=@kontomatchcode, Ansprechpartnernummer=@ansprechpartnernummer, AnsprechpartnerVorname=@ansprechpartnervorname, ");
                qry.AppendLine("AnsprechpartnerNachname=@ansprechpartnernachname, AnsprechpartnerEmail=@ansprechpartneremail, EmailbestaetigungGesendet=@emailbestaetigunggesendet ");
                qry.AppendLine("WHERE Mandant=@mandant AND BuchungID=@buchungID");
            }

            var command = mandant.MainDevice.GenericConnection.CreateSqlStringCommand(qry.ToString());

            command.AppendInParameter("buchungid", typeof(int), buchung.BuchungID);
            command.AppendInParameter("mandant", typeof(short), buchung.Mandant);
            command.AppendInParameter("seminarterminid", typeof(string), buchung.SeminarterminID);
            command.AppendInParameter("belid", typeof(int), buchung.BelID);
            command.AppendInParameter("belposid", typeof(int), buchung.BelPosID);
            command.AppendInParameter("vorposid", typeof(int), buchung.VorPosID);
            command.AppendInParameter("adresse", typeof(int), buchung.Adresse);
            command.AppendInParameter("konto", typeof(string), buchung.Konto);
            command.AppendInParameter("kontomatchcode", typeof(string), buchung.KontoMatchcode);
            command.AppendInParameter("ansprechpartnernummer", typeof(int), buchung.Ansprechpartnernummer);
            command.AppendInParameter("ansprechpartnervorname", typeof(string), buchung.AnsprechpartnerVorname);
            command.AppendInParameter("ansprechpartnernachname", typeof(string), buchung.AnsprechpartnerNachname);
            command.AppendInParameter("ansprechpartneremail", typeof(string), buchung.AnsprechpartnerEmail);
            command.AppendInParameter("emailbestaetigunggesendet", typeof(short), ConversionHelper.ToDBBoolean(buchung.EmailBestaetigungGesendet));

            var result = command.TryExecuteNonQuery();

            if (result.State.IsSucceeded)
            {
                buchung = SeminarData.GetSeminarbuchung(mandant, buchung.BuchungID);
                return(buchung);
            }
            else
            {
                TraceLog.LogException(result.State.ExceptionOccurred);
                throw new RecordUpdateException("Seminarbuchung", buchung.BuchungID.ToString());
            }
        }
예제 #5
0
        private Mandant CreateMandant(ISession session, string mandantName, MengeTyp summarischerModusMengeTyp)
        {
            var mandant = new Mandant {
                MandantName = mandantName, SummarischerModusMengeTyp = summarischerModusMengeTyp
            };

            session.Save(mandant);
            return(mandant);
        }
예제 #6
0
        public AchsenAutoUpdate(ISession session, Mandant mandant, ErfassungsPeriod erfassungsPeriod, string owner)
            : base(session,
                   mandant,
                   erfassungsPeriod,
                   owner,
                   GetLastImpNr(session, mandant))

        {
        }
예제 #7
0
        public static void ClearUpdateLog(ISession session, Mandant testMandant, ErfassungsPeriod erfPeriod)
        {
            var allEntries = session.QueryOver <AchsenUpdateLog>()
                             .Where(o => o.ErfassungsPeriod == erfPeriod)
                             .Where(o => o.Mandant == testMandant)
                             .List();

            allEntries.ToList().ForEach(o => session.Delete(o));
        }
        public void InitMandant()
        {
            var startTimer = Sagede.Core.Diagnostics.HighResolutionTimer.Now();

            TraceLog.LogVerbose("InitMandant => Testprojekt");
            _mandant = Sagede.OfficeLine.Engine.ApplicationEngine.CreateSession(DATABASE, Sagede.OfficeLine.Shared.ApplicationToken.AddOn,
                                                                                null, new NamePasswordCredential(USERNAME, PASSWORD)).CreateMandant(MANDANT);
            TraceLog.LogTime("Dauer InitMandant => Testprojekt ", startTimer);
        }
예제 #9
0
        /// <summary>
        /// Löscht eine Seminarbuchung in der Datenbank
        /// </summary>
        /// <param name="mandant"></param>
        /// <param name="buchungID"></param>
        public static void DeleteSeminarbuchung(Mandant mandant, int buchungID)
        {
            var qry    = $"DELETE FROM PSDSeminarbuchungen WHERE Mandant={mandant.Id} AND BuchungID={buchungID}";
            var result = mandant.MainDevice.GenericConnection.TryExecuteNonQuery(qry);

            if (!result.State.IsSucceeded)
            {
                throw new RecordUpdateException("Seminarbuchung", buchungID.ToString());
            }
        }
예제 #10
0
        /// <summary>
        /// Liefert den Ansprechpartner zur Nummer
        /// </summary>
        /// <param name="mandant"></param>
        /// <param name="nummer"></param>
        /// <returns></returns>
        public static AnsprechpartnerItem GetAnsprechpartner(Mandant mandant, int nummer)
        {
            var ansprechpartnerItem = mandant.MainDevice.Entities.Ansprechpartner.GetItem(nummer, mandant.Id);

            if (ansprechpartnerItem == null)
            {
                throw new RecordNotFoundException("Ansprechpartner", nummer.ToString());
            }
            return(ansprechpartnerItem);
        }
        private void AddMandant()
        {
            Mandant neuerMandant = new Mandant()
            {
                Des = this.Des
            };

            _db.SetMandant(neuerMandant);
            Mandants.Add(neuerMandant);
            RaisePropertyChangedEvent(nameof(Mandants));
        }
예제 #12
0
        public AchsenUpdate(ISession session, Mandant mandant, ErfassungsPeriod erfassungsPeriod, string owner, int lastImpNr)
        {
            this.session          = session;
            this.mandant          = mandant;
            this.erfassungsPeriod = erfassungsPeriod;
            this.owner            = owner;
            this.lastImpNr        = lastImpNr;

            this.maxImpNr = lastImpNr;
            this.gisKopieMappingEngine = new GISKopieMappingEngine(new GISKopieMappingConfiguration(new IgnoreIdMappingRule(), new MLineStringTo2DMappingRule()));
        }
예제 #13
0
        public static int GetLastImpNr(ISession session, Mandant mandant)
        {
            var list = session.QueryOver <AchsenUpdateLog>()
                       .Where(o => o.Mandant == mandant)
                       .List();

            if (list.Count == 0)
            {
                return(0); // full import required
            }

            return(list.Max(o => o.ImpNr));
        }
예제 #14
0
        public void CreateSpecFlowTestDaten(ISession session, INetzSummarischRepository repository)
        {
            //TestUserInfo und Test Mandanten
            Mandant          mandant          = CreateMandant(session, "Mandant", MengeTyp.StrassenFlaeche);
            ErfassungsPeriod erfassungsPeriod = CreateErfassungsPeriod(session, mandant, NetzErfassungsmodus.Summarisch);

            repository.CreateNetzSummarischFor(erfassungsPeriod);

            //Test Users
            CreateTestUser(session, "Test", new List <Mandant> {
                mandant
            }, AllRollen);
        }
예제 #15
0
        /// <summary>
        /// Aktualisiert bzw. legt einen neuen Ansprechpartner an
        /// </summary>
        /// <param name="mandant"></param>
        /// <param name="ansprechpartner"></param>
        /// <returns></returns>
        public static AnsprechpartnerItem UpdateAnsprechpartner(Mandant mandant, AnsprechpartnerItem ansprechpartner)
        {
            AnsprechpartnerItem item = null;

            if (SeminarData.AnsprechpartnerExists(mandant, ansprechpartner.Adresse, ansprechpartner.EMail))
            {
                var parameterList = new QueryParameterList();
                parameterList.AddClauseParameter("Mandant", mandant.Id);
                parameterList.AddClauseParameter("Adresse", ansprechpartner.Adresse);
                parameterList.AddClauseParameter("EMail", ansprechpartner.EMail);
                item = mandant.MainDevice.Entities.Ansprechpartner.GetItem(parameterList);
            }
            else
            {
                item         = mandant.MainDevice.Entities.Ansprechpartner.CreateItem();
                item.Mandant = mandant.Id;
            }

            item.Abteilung       = ansprechpartner.Abteilung;
            item.Adresse         = ansprechpartner.Adresse;
            item.Anrede          = ansprechpartner.Anrede;
            item.Ansprechpartner = ansprechpartner.Ansprechpartner;
            item.Autotelefon     = ansprechpartner.Autotelefon;
            item.Briefanrede     = ansprechpartner.Briefanrede;
            item.EMail           = ansprechpartner.EMail;
            if (ansprechpartner.Geburtsdatum.HasValue)
            {
                item.Geburtsdatum = ansprechpartner.Geburtsdatum.GetValueOrDefault();
            }
            item.Gruppe          = ansprechpartner.Gruppe;
            item.Memo            = ansprechpartner.Memo;
            item.Mobilfunk       = ansprechpartner.Mobilfunk;
            item.Nachname        = ansprechpartner.Nachname;
            item.Position        = ansprechpartner.Position;
            item.Telefax         = ansprechpartner.Telefax;
            item.Telefon         = ansprechpartner.Telefon;
            item.TelefonPrivat   = ansprechpartner.TelefonPrivat;
            item.Titel           = ansprechpartner.Titel;
            item.Transferadresse = ansprechpartner.Transferadresse;
            item.Vorname         = ansprechpartner.Vorname;
            item.ZuHaendenText   = ansprechpartner.ZuHaendenText;
            //ansprechpartner.UserDefinedFields.ToList().ForEach(u => item.UserDefinedFields[u.Name].Value = u.Value);
            var result = item.TrySave();

            if (!result.IsSucceeded)
            {
                TraceLog.LogException(result.ExceptionOccurred);
                throw result.ExceptionOccurred;
            }
            return(item);
        }
예제 #16
0
        public List <GewichtMesswert> LoadGewicht(Mandant mandant)
        {
            DataTable tbl = _con.Connection.GetData("CALL sp_GetGewichts(?mid)", new MySqlParameter("?mid", mandant.ID));
            List <GewichtMesswert> gewichts = new List <GewichtMesswert>();

            foreach (DataRow row in tbl.Rows)
            {
                GewichtMesswert g = new GewichtMesswert();
                g.FromDataRow(row);
                g.Mandant = LoadMandant((int)row["MandantID"]);
                gewichts.Add(g);
            }
            return(gewichts);
        }
예제 #17
0
 /// <summary>
 /// Konstruktor
 /// </summary>
 /// <param name="mandant"></param>
 public BaseManager(Mandant mandant)
 {
     try
     {
         TraceLog.LogVerbose("Konstruktor Basisklasse aufgerufen.");
         Mandant = mandant;
         TraceLog.LogVerbose("Konstruktor Ende / Erfolg.");
     }
     catch (Exception ex)
     {
         TraceLog.LogException(ex);
         throw;
     }
 }
예제 #18
0
        public List <Setting> LoadSettings(Mandant mandant)
        {
            DataTable      t      = _con.Connection.GetData("CALL sp_GetSettings(?mid)", new MySqlParameter("?mid", mandant.ID));
            List <Setting> retval = new List <Setting>();

            foreach (DataRow row in t.Rows)
            {
                Setting s = new Setting();
                s.FromDataRow(row);
                s.Mandant = LoadMandant((int)row["MandantID"]);
                retval.Add(s);
            }
            return(retval);
        }
예제 #19
0
        public static List <Seminar> GetSeminare(Mandant mandant)
        {
            var list = new List <Seminar>();
            var qry  = $"SELECT Artikelnummer FROM KHKArtikel WHERE Mandant={mandant.Id} AND USER_Seminar=-1";

            using (var reader = mandant.MainDevice.GenericConnection.ExecuteReader(qry))
            {
                while (reader.Read())
                {
                    list.Add(SeminarData.GetSeminar(mandant, reader.GetString("Artikelnummer")));
                }
            }
            return(list);
        }
예제 #20
0
        public static ErfassungsPeriod CreateErfassungsPeriod(ISession session, Mandant mandant, NetzErfassungsmodus netzErfassungsmodus)
        {
            var erfassungsPeriod = new ErfassungsPeriod
            {
                IsClosed            = false,
                Mandant             = mandant,
                Name                = mandant.MandantName + " InitialErfassungsPeriod",
                Erfassungsjahr      = new DateTime(2000, 1, 1),
                NetzErfassungsmodus = netzErfassungsmodus,
            };

            session.Save(erfassungsPeriod);

            return(erfassungsPeriod);
        }
예제 #21
0
        private static void DoAxisUpdate(TransactionScopeFactory transactionScopeFactory, string mandantName)
        {
            using (var transactionScope = transactionScopeFactory.CreateReadWrite())
            {
                Mandant          testMandant = transactionScope.Session.QueryOver <Mandant>().Where(o => o.MandantName == mandantName).SingleOrDefault();
                ErfassungsPeriod erfPeriod   = transactionScope.Session.QueryOver <ErfassungsPeriod>().Where(o => o.Mandant == testMandant).OrderBy(o => o.Erfassungsjahr).Desc.List().First();

                //AxisDataUtils.ClearAxisDataForMandant(transactionScope.Session, testMandant.Id);

                AchsenAutoUpdate axisUpdate = new AchsenAutoUpdate(transactionScope.Session, testMandant, erfPeriod, testMandant.OwnerId);

                axisUpdate.Start();

                transactionScope.Commit();
            }
        }
예제 #22
0
        public void AngenommenFurMandantMandant_1ExistierenFolgendeZustandsinformationen(string mandant, Table table)
        {
            using (NHibernateSpecflowScope scope = new NHibernateSpecflowScope())
            {
                var zustandsabschnittReader = GetZustandsabschnittReader();
                currentMandant = scope.GetMandant(mandant);
                var zustandsabschnitten = zustandsabschnittReader.GetObjectListWithRow <Zustandsabschnitt>(table);

                foreach (var zustandsabschnitt in zustandsabschnitten)
                {
                    Zustandsabschnitt za = zustandsabschnitt.Item2;
                    za.Aufnahmedatum = DateTime.Now;
                    scope.Session.Save(za);
                }
            }
        }
예제 #23
0
 /// <summary>
 /// Löscht die Seminarbuchungen zu einer BelegPosition
 /// </summary>
 /// <param name="mandant"></param>
 /// <param name="belID"></param>
 /// <param name="belPosID"></param>
 public static void DeleteSeminarbuchungen(Mandant mandant, int belID, int belPosID)
 {
     try
     {
         var qry     = "DELETE FROM PSDSeminarbuchungen WHERE Mandant=@mandant AND BelID=@belid";
         var command = mandant.MainDevice.GenericConnection.CreateSqlStringCommand(qry);
         command.AppendInParameter("mandant", typeof(short), mandant.Id);
         command.AppendInParameter("belid", typeof(int), belID);
         command.AppendInParameter("belposid", typeof(int), belPosID);
         command.ExecuteNonQuery();
     }
     catch (Exception ex)
     {
         TraceLog.LogException(ex);
         throw;
     }
 }
예제 #24
0
        public Mandant LoadMandant(int mandantID)
        {
            DataTable tbl = _con.Connection.GetData("CALL sp_GetMandant(?mid)", new MySqlParameter("?mid", mandantID));

            if (tbl.Rows.Count != 1)
            {
                throw new ApplicationException("zu viele oder kein Mandant zu einer ID gefunden");
            }
            Mandant m = new Mandant();

            m.FromDataRow(tbl.Rows[0]);
            if (!(tbl.Rows[0]["ParentMandantID"] is DBNull))
            {
                m.Parent = LoadMandant((int)tbl.Rows[0]["ParentMandantID"]);
            }
            return(m);
        }
예제 #25
0
        public List <Mandant> LoadMandants()
        {
            DataTable      tbl      = _con.Connection.GetData("CALL sp_GetMandants()");
            List <Mandant> mandants = new List <Mandant>();

            foreach (DataRow row in tbl.Rows)
            {
                Mandant m = new Mandant();
                m.FromDataRow(row);
                if (!(row["ParentMandantID"] is DBNull))
                {
                    m.Parent = LoadMandant((int)row["ParentMandantID"]);
                }
                mandants.Add(m);
            }
            return(mandants);
        }
예제 #26
0
        public static List <Seminartermin> GetSeminartermine(Mandant mandant, string artikelnummer)
        {
            var list    = new List <Seminartermin>();
            var qry     = "SELECT SeminarterminID FROM PSDSeminartermine WHERE Mandant=@mandant AND Artikelnummer=@artikelnummer";
            var command = mandant.MainDevice.GenericConnection.CreateSqlStringCommand(qry);

            command.AppendInParameter("mandant", typeof(short), mandant.Id);
            command.AppendInParameter("artikelnummer", typeof(string), artikelnummer);

            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    list.Add(SeminarData.GetSeminartermin(mandant, reader.GetString("SeminarterminID")));
                }
            }
            return(list);
        }
예제 #27
0
        /// <summary>
        /// GetSeminarbuchung
        /// </summary>
        /// <param name="mandant"></param>
        /// <param name="buchungID"></param>
        /// <returns></returns>
        /// <exception cref="Exception">wird bei allgemeinen Fehler geworfen.</exception>
        /// <exception cref="RecordNotFoundException">wird geworfen, wenn Datensatz nicht in Datenbank vorhanden.</exception>
        public static Seminarbuchung GetSeminarbuchung(Mandant mandant, int buchungID)
        {
            var qry     = "SELECT * FROM PSDSeminarbuchungen WHERE Mandant=@mandant AND BuchungID=@buchungid";
            var command = mandant.MainDevice.GenericConnection.CreateSqlStringCommand(qry);

            command.AppendInParameter("mandant", typeof(short), mandant.Id);
            command.AppendInParameter("buchungid", typeof(int), buchungID);

            using (var reader = command.ExecuteReader())
            {
                if (reader.Read())
                {
                    // Variante 1 instanziierung und Zuweisung
                    //var seminarbuchung = new Seminarbuchung();
                    //seminarbuchung.Adresse = reader.GetInt32("Adresse");
                    //seminarbuchung.AnsprechpartnerEmail = reader.GetString("AnsprechpartnerEmail");
                    //seminarbuchung.AnsprechpartnerNachname = reader.GetString("AnsprechpartnerNachname");

                    // Variante 2 über Class-Initializer
                    return(new Seminarbuchung()
                    {
                        Adresse = reader.GetInt32("Adresse"),
                        AnsprechpartnerEmail = reader.GetString("AnsprechpartnerEmail"),
                        AnsprechpartnerNachname = reader.GetString("AnsprechpartnerNachname"),
                        Ansprechpartnernummer = reader.GetInt32("Ansprechpartnernummer"),
                        AnsprechpartnerVorname = reader.GetString("AnsprechpartnerVorname"),
                        BelID = reader.GetInt32("BelID"),
                        BelPosID = reader.GetInt32("BelPosID"),
                        BuchungID = reader.GetInt32("BuchungID"),
                        EmailBestaetigungGesendet = reader.GetDBBoolean("EmailBestaetigungGesendet"),
                        Konto = reader.GetString("Konto"),
                        KontoMatchcode = reader.GetString("KontoMatchcode"),
                        Mandant = reader.GetInt16("Mandant"),
                        SeminarterminID = reader.GetString("SeminarterminID"),
                        Timestamp = reader.GetBytes("Timestamp"),
                        VorPosID = reader.GetInt32("VorPosID")
                    });
                }
                else
                {
                    throw new RecordNotFoundException("Seminarbuchung", buchungID.ToString());
                }
            }
        }
예제 #28
0
        /// <summary>
        /// Liefert den Ansprechpartner zu einer Adresse und Email
        /// </summary>
        /// <param name="mandant"></param>
        /// <param name="adresse"></param>
        /// <param name="email"></param>
        /// <returns></returns>
        public static AnsprechpartnerItem GetAnsprechpartner(Mandant mandant, int adresse, string email)
        {
            var queryParameterList = new Sagede.OfficeLine.Data.QueryParameterList();

            queryParameterList.AddClauseParameter("Mandant", mandant.Id);
            queryParameterList.AddClauseParameter("Adresse", adresse);
            queryParameterList.AddClauseParameter("EMail", email);

            var ansprechpartnerItem = mandant.MainDevice.Entities.Ansprechpartner.GetItem(queryParameterList);

            if (ansprechpartnerItem != null)
            {
                return(ansprechpartnerItem);
            }
            else
            {
                throw new RecordNotFoundException("Ansprechpartner", $"{adresse}/{email}");
            }
        }
예제 #29
0
        public static Seminar UpdateSeminar(Mandant mandant, Seminar seminar)
        {
            try
            {
                var artikelItem = mandant.MainDevice.Entities.Artikel.GetItem(seminar.Artikelnummer, mandant.Id);
                if (artikelItem == null)
                {
                    artikelItem               = mandant.MainDevice.Entities.Artikel.CreateItem();
                    artikelItem.Mandant       = mandant.Id;
                    artikelItem.Artikelnummer = seminar.Artikelnummer;
                }

                artikelItem.Bezeichnung1       = seminar.Bezeichnung1;
                artikelItem.Bezeichnung2       = seminar.Bezeichnung2;
                artikelItem.Aktiv              = seminar.Aktiv;
                artikelItem.Artikelgruppe      = seminar.Artikelgruppe;
                artikelItem.Dimensionstext     = seminar.Dimensionstext;
                artikelItem.DimensionstextHTML = seminar.DimensionstextHTML;
                artikelItem.DimensionstextRTF  = seminar.DimensionstextRTF;
                artikelItem.Langtext           = seminar.Langtext;
                artikelItem.LangtextHTML       = seminar.LangtextHTML;
                artikelItem.LangtextRTF        = seminar.LangtextRTF;
                artikelItem.Matchcode          = seminar.Matchcode;
                artikelItem.Memo = seminar.Memo;
                artikelItem.UserDefinedFields["USER_AnzahlTage"].Value = seminar.USER_AnzahlTage;
                artikelItem.UserDefinedFields["USER_Seminar"].Value    = ConversionHelper.ToDBBoolean(seminar.USER_Seminar);
                artikelItem.UserDefinedFields["USER_UhrzeitBis"].Value = seminar.USER_UhrzeitBis;
                artikelItem.UserDefinedFields["USER_UhrzeitVon"].Value = seminar.USER_UhrzeitVon;

                mandant.MainDevice.GenericConnection.BeginTransaction();
                seminar.SeminarterminCollection.ForEach(t => SeminarData.UpdateSeminarterminTeilnehmer(mandant, t.SeminarterminID));
                artikelItem.Save();
                mandant.MainDevice.GenericConnection.CommitTransaction();
                return(seminar);
            }
            catch (Exception)
            {
                mandant.MainDevice.GenericConnection.RollbackTransaction();
                throw;
            }
        }
 /// <summary>
 /// Konstruktor der Klasse
 /// </summary>
 /// <param name="mandant">Mandanten Objekt</param>
 public SeminarbuchungManager(Mandant mandant)
     : base(mandant)
 {
     _seminarManager = new SeminarManager(mandant);
 }