public void TestDeleteEingang()
 {
     Eingang r = new Eingang();
     int oldlength = BL.getEingaenge().Count;
     r = BL.getEingaenge().Last();
     BL.deleteEingang(r);
     Assert.That(BL.getEingaenge().Count, Is.EqualTo(oldlength - 1));
     Assert.That(BL.getEingaenge().Last(), Is.Not.EqualTo(r));
 }
 public void TestAddEingangMin()
 {
     Eingang r = new Eingang(5,"Eingangtest",DateTime.Now,323.434,"C:",1,ObjectStates.New);
     BL.saveEingang(r);
     Assert.That(BL.getEingaenge(1).Last().Betrag, Is.EqualTo(323.434));
     Assert.That(BL.getEingaenge(1).Last().Bezeichnung, Is.EqualTo("Eingangtest"));
     Assert.That(BL.getEingaenge(1).Last().Path, Is.EqualTo("C:"));
     BL.deleteEingang(r);
 }
Пример #3
0
 public static void deleteEingang(Eingang r)
 {
     try
     {
         DALFactory.getDAL().deleteEingang(r);
         Logger.Info("Eingangsrechnung mit ID " + r.Rechnungid + " gelöscht!");
     }
     catch (DALException ex)
     {
         Logger.Error("Fehler beim Löschen der Eingangsrechnung mit ID " + r.Rechnungid, ex);
         throw new BLException("Eingangsrechnung konnte nicht gelöscht werden!");
     }
 }
 public void TestAddEingang()
 {
     Eingang r = new Eingang();
     int oldlength = BL.getEingaenge().Count;
     r.Bezeichnung = "Testeingangsrechnung";
     r.Betrag = 656;
     r.Path = "C:";
     r.Status = ObjectStates.New;
     BL.saveEingang(r);
     Assert.That(BL.getEingaenge().Count, Is.EqualTo(oldlength + 1));
     Assert.That(BL.getEingaenge().ElementAt(oldlength).Betrag, Is.EqualTo(656));
     Assert.That(BL.getEingaenge().ElementAt(oldlength).Bezeichnung, Is.EqualTo("Testeingangsrechnung"));
     Assert.That(BL.getEingaenge().ElementAt(oldlength).Path, Is.EqualTo("C:"));
 }
Пример #5
0
 public void saveEingang(Eingang r)
 {
     if (r.Status == ObjectStates.New)
     {
         r.Status = ObjectStates.Unmodified;
         r.Rechnungid = rechnungid + 1;
         rechnungid++;
         eingaenge.Add(r);
     }
     else if (r.Status == ObjectStates.Modified)
     {
         int index = eingaenge.IndexOf(r);
         eingaenge[index].Rechnungid = r.Rechnungid;
         eingaenge[index].Bezeichnung = r.Bezeichnung;
         eingaenge[index].Datum = r.Datum;
         eingaenge[index].Path = r.Path;
         eingaenge[index].Kontaktid = r.Kontaktid;
         eingaenge[index].Status = ObjectStates.Unmodified;
     }
 }
Пример #6
0
 public void deleteEingang(Eingang r)
 {
     eingaenge.Remove(r);
 }
Пример #7
0
        public List<Eingang> getEingangViewList(int kontaktid)
        {
            buildconnection();
            List<Eingang> rlist = new List<Eingang>();
            NpgsqlCommand comm = null;
            NpgsqlDataReader reader = null;
            try
            {
                string sql = @"Select r.rechnungid, e.kontaktid, e.betrag, r.datum,r.bezeichnung, e.path from eingang e, rechnungen r
                where e.rechnungid = r.rechnungid and e.kontaktid = @kontaktid;";
                comm = new NpgsqlCommand(sql, conn);
                comm.Parameters.AddWithValue("@kontaktid", kontaktid);
                reader = comm.ExecuteReader();
                while (reader.Read())
                {
                    Eingang r = new Eingang();
                    r.Rechnungid = reader.GetInt32(0);
                    r.Kontaktid = reader.GetInt32(1);
                    r.Betrag = reader.GetDouble(2);
                    r.Datum = reader.ReadNullableDateTime(3);
                    r.Bezeichnung = reader.GetString(4).Trim();
                    r.Path = reader.GetString(5).Trim();
                    rlist.Add(r);
                }
            }
            catch (NpgsqlException exp)
            {
                throw new DALException("DAL: Rechnungsliste konnte nicht aus der Datenbank geladen werden!", exp);
            }
            finally
            {
                reader.Close();
                comm.Dispose();
                conn.Close();
            }

            return rlist;
        }
Пример #8
0
 public List<Eingang> getAusgaben(int month, int year)
 {
     buildconnection();
     List<Eingang> rlist = new List<Eingang>();
     NpgsqlCommand comm = null;
     NpgsqlDataReader reader = null;
     try
     {
         string sql = @"Select r.rechnungid, e.kontaktid, e.betrag, r.datum,r.bezeichnung, e.path from eingang e, rechnungen r
         where e.rechnungid = r.rechnungid;";
         comm = new NpgsqlCommand(sql, conn);
         reader = comm.ExecuteReader();
         while (reader.Read())
         {
             Eingang r = new Eingang();
             r.Rechnungid = reader.GetInt32(0);
             r.Kontaktid = reader.GetInt32(1);
             r.Betrag = reader.GetDouble(2);
             r.Datum = reader.ReadNullableDateTime(3);
             r.Bezeichnung = reader.GetString(4).Trim();
             r.Path = reader.GetString(5).Trim();
             if ((r.Datum.Value.Year) == year && (r.Datum.Value.Month == month))
             {
                 rlist.Add(r);
             }
         }
     }
     catch (NpgsqlException exp)
     {
         throw new DALException("DAL: Ausgaben konnte nicht aus der Datenbank geladen werden!", exp);
     }
     finally
     {
         reader.Close();
         comm.Dispose();
         conn.Close();
     }
     return rlist;
 }
Пример #9
0
        public void saveEingang(Eingang r)
        {
            buildconnection();
            NpgsqlCommand commein = null, commrech = null;
            try
            {
                string sqlein = "", sqlrech = "";
                if (r.Status == ObjectStates.New)
                {
                    sqlein = @"Insert into eingang (rechnungid,kontaktid, betrag,path)
                            values (currval('rechnungen_rechnungid_seq'), @kontaktid, @betrag, @path)";
                    sqlrech = @"Insert into rechnungen (bezeichnung, datum)
                            values (@bezeichnung, @datum)";
                    commein = new NpgsqlCommand(sqlein, conn);
                    commrech = new NpgsqlCommand(sqlrech,conn);
                }
                else if (r.Status == ObjectStates.Modified)
                {
                    sqlein = @"Update eingang set kontaktid = @kontaktid, betrag = @betrag, path = @path
                            where rechnungid = @rechnungid";
                    sqlrech = @"Update rechnungen set bezeichnung = @bezeichnung, datum = @datum
                            where rechnungid = @rechnungid";
                    commein = new NpgsqlCommand(sqlein, conn);
                    commrech = new NpgsqlCommand(sqlrech, conn);
                    commein.Parameters.AddWithValue("@rechnungid", r.Rechnungid);
                    commrech.Parameters.AddWithValue("@rechnungid", r.Rechnungid);
                }

                commrech.Parameters.AddWithValue("@bezeichnung", r.Bezeichnung);
                commrech.Parameters.AddWithValue("@datum", r.Datum);
                commrech.Prepare();
                commrech.ExecuteNonQuery();

                commein.Parameters.AddWithValue("@kontaktid", r.Kontaktid);
                commein.Parameters.AddWithValue("@betrag", r.Betrag);
                commein.Parameters.AddWithValue("@path", r.Path);
                commein.Prepare();
                commein.ExecuteNonQuery();

                r.Status = ObjectStates.Unmodified;
            }
            catch (NpgsqlException exp)
            {
                throw new DALException("DAL: Kontakt konnte nicht gespeichert werden!", exp);
            }
            finally
            {
                commein.Dispose();
                commrech.Dispose();
                conn.Close();
            }
        }
Пример #10
0
        public Rechnung getRechung(int rechnungsid)
        {
            buildconnection();
            Rechnung r = new Rechnung();
            NpgsqlCommand comm = null;
            NpgsqlDataReader reader = null;
            try
            {
                string sql = @"Select r.rechnungid, a.projektid, a.kundenid, r.datum, r.bezeichnung
                from rechnungen r, ausgang a where r.rechnungid = a.rechnungid and r.rechnungid = @rechnungid";
                comm = new NpgsqlCommand(sql, conn);
                comm.Parameters.AddWithValue("@rechnungid", rechnungsid);
                reader = comm.ExecuteReader();
                while (reader.Read())
                {
                    Ausgang a = new Ausgang();
                    a.Rechnungid = reader.GetInt32(0);
                    a.Projektid = reader.GetInt32(1);
                    a.Kundenid = reader.GetInt32(2);
                    a.Datum = reader.ReadNullableDateTime(3);
                    a.Bezeichnung = reader.GetString(4).Trim();
                    return a;
                }

                sql = @"Select r.rechnungid, e.kontaktid, e.betrag, e.path, r.datum, r.bezeichnung
                from rechnungen r, eingang e where r.rechnungid = e.rechnungid and r.rechnungid = @rechnungid";
                comm = new NpgsqlCommand(sql, conn);
                comm.Parameters.AddWithValue("@rechnungid", rechnungsid);
                reader = comm.ExecuteReader();
                while (reader.Read())
                {
                    Eingang e = new Eingang();
                    e.Rechnungid = reader.GetInt32(0);
                    e.Kontaktid = reader.GetInt32(1);
                    e.Betrag = reader.GetDouble(2);
                    e.Path = reader.GetString(3);
                    e.Datum = reader.ReadNullableDateTime(4);
                    e.Bezeichnung = reader.GetString(5).Trim();
                    return e;
                }
            }
            catch (NpgsqlException exp)
            {
                throw new DALException("DAL: Rechnung konnte nicht aus der Datenbank geladen werden!", exp);
            }
            finally
            {
                reader.Close();
                comm.Dispose();
                conn.Close();
            }
            return null;
        }
Пример #11
0
        public List<Eingang> getOffeneERechnungen()
        {
            buildconnection();
            List<Eingang> rlist = new List<Eingang>();
            double summerezeile, summebuchung;
            NpgsqlCommand comm = null;
            NpgsqlDataReader reader = null;
            try
            {
                string sql = @"Select r.rechnungid, e.kontaktid, e.betrag, r.datum,r.bezeichnung, e.path from eingang e, rechnungen r
                where e.rechnungid = r.rechnungid;";
                comm = new NpgsqlCommand(sql, conn);
                reader = comm.ExecuteReader();
                while (reader.Read())
                {
                    Eingang r = new Eingang();
                    r.Rechnungid = reader.GetInt32(0);
                    r.Kontaktid = reader.GetInt32(1);
                    r.Betrag = reader.GetDouble(2);
                    r.Datum = reader.ReadNullableDateTime(3);
                    r.Bezeichnung = reader.GetString(4).Trim();
                    r.Path = reader.GetString(5).Trim();

                    summebuchung = summerezeile = 0;
                    List<Buchung> blist = getBuchungViewList(r.Rechnungid);
                    foreach (var buchung in blist)
                    {
                        summebuchung += buchung.Betrag;
                    }
                    if (summebuchung != summerezeile)
                        rlist.Add(r);
                }
            }
            catch (NpgsqlException exp)
            {
                throw new DALException("DAL: Offene Eingangsrechnungen konnten nicht aus der Datenbank geladen werden!", exp);
            }
            finally
            {
                reader.Close();
                comm.Dispose();
                conn.Close();
            }
            return rlist;
        }
Пример #12
0
 public void deleteEingang(Eingang r)
 {
     buildconnection();
     NpgsqlCommand comm = null;
     try
     {
         string sql = "Delete from rechnungen where rechnungid = @rechnungid";
         comm = new NpgsqlCommand(sql, conn);
         comm.Parameters.AddWithValue("@rechnungid", r.Rechnungid);
         comm.Prepare();
         comm.ExecuteNonQuery();
         r.Status = ObjectStates.Deleted;
     }
     catch (NpgsqlException exp)
     {
         throw new DALException("DAL: Rechnung konnte nicht gelöscht werden!", exp);
     }
     finally
     {
         comm.Dispose();
         conn.Close();
     }
 }