public static Presek GetPresekByZahtev(ZahtevZaDobijanjeIzvoda zahtev) { Presek p = null; using (SqlConnection conn = MySQLUtils.NapraviBankaConn()) { conn.Open(); string sql = "SELECT * FROM presek WHERE datumnaloga = @datumnaloga AND brracuna = @brracuna"; using (SqlCommand cmd = new SqlCommand(sql, conn)) { cmd.Parameters.AddWithValue("@brracuna", zahtev.BrRacuna); cmd.Parameters.AddWithValue("@datumnaloga", zahtev.Datum); SqlDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { p = ReadFromReader(reader); } reader.Close(); } conn.Close(); } return(p); }
/// <summary> /// Menja stanje u bankama za firme /// </summary> /// <param name="racun"> Racun firme odn. polje broj racuna</param> /// <param name="iznos"> Iznos koji treba da se doda oduzme (-iznos ako oduzimas)</param> /// <returns></returns> private void PromenaStanjaUBanciZaFirmu(string racun, double iznos, StavkaPreseka stavkaPreseka) { Racun r = KombinacijeDB.PromeniStanjeRacunaFirme(Int64.Parse(racun), iznos); Presek p = KombinacijeDB.ProveriPresek(r); stavkaPreseka.IDPreseka = p.IDPreseka; StavkaPresekaDB.InsertStavkaPreseka(stavkaPreseka); BANKASVCCONSOLE(PresekDB.GetPresek(p.IDPreseka).ToString()); }
} // public static Presek ReadFromReader(SqlDataReader reader) { Presek ret = new Presek(); ret.IDPreseka = (int)reader["idpreseka"]; ret.BrRacuna = (string)reader["brracuna"]; ret.DatumNaloga = (DateTime)reader["datumnaloga"]; ret.BrPreseka = (double)(decimal)reader["brpreseka"]; ret.PrethodnoStanje = (double)(decimal)reader["prethodnostanje"]; ret.BrPromenaUKorist = (double)(decimal)reader["brpromenaukorist"]; ret.UkupnoUKorist = (double)(decimal)reader["ukupnoukorist"]; ret.BrPromenaNaTeret = (double)(decimal)reader["brpromenanateret"]; ret.UkupnoNaTeret = (double)(decimal)reader["ukupnonateret"]; ret.NovoStanje = (double)(decimal)reader["novostanje"]; ret.StavkePreseka = StavkaPresekaDB.GetAllStavkaPresekaByPresekId(ret.IDPreseka); return(ret); }
} // // public static void InsertIntoPresek(Presek f) { using (SqlConnection conn = MySQLUtils.NapraviBankaConn()) { string sql = @"INSERT INTO [dbo].[presek] ([brracuna] ,[datumnaloga] ,[brpreseka] ,[prethodnostanje] ,[brpromenaukorist] ,[ukupnoukorist] ,[brpromenanateret] ,[ukupnonateret] ,[novostanje]) VALUES (@brracuna ,@datumnaloga ,@brpreseka ,@prethodnostanje ,@brpromenaukorist ,@ukupnoukorist ,@brpromenanateret ,@ukupnonateret ,@novostanje )" ; conn.Open(); using (SqlCommand cmd = new SqlCommand(sql, conn)) { cmd.Parameters.AddWithValue("@brracuna", f.BrRacuna); cmd.Parameters.AddWithValue("@datumnaloga", f.DatumNaloga); cmd.Parameters.AddWithValue("@brpreseka", f.BrPreseka); cmd.Parameters.AddWithValue("@prethodnostanje", f.PrethodnoStanje); cmd.Parameters.AddWithValue("@brpromenaukorist", f.BrPromenaUKorist); cmd.Parameters.AddWithValue("@ukupnoukorist", f.UkupnoUKorist); cmd.Parameters.AddWithValue("@brpromenanateret", f.BrPromenaNaTeret); cmd.Parameters.AddWithValue("@ukupnonateret", f.UkupnoNaTeret); cmd.Parameters.AddWithValue("@novostanje", f.NovoStanje); cmd.ExecuteNonQuery(); } conn.Close(); } } //
} // // public static Presek GetPresek(int idPreseka) { Presek ret; using (SqlConnection conn = MySQLUtils.NapraviBankaConn()) { conn.Open(); string sql = @"SELECT * FROM presek WHERE idpreseka= @idpreseka"; using (SqlCommand cmd = new SqlCommand(sql, conn)) { cmd.Parameters.AddWithValue("@idpreseka", idPreseka); ret = new Presek(); SqlDataReader reader = cmd.ExecuteReader(); reader.Read(); ret = ReadFromReader(reader); reader.Close(); } conn.Close(); } return(ret); } //
// public static List <Presek> GetAllPresek() { List <Presek> preseci = new List <Presek>(); using (SqlConnection conn = MySQLUtils.NapraviFirmaConn()) { conn.Open(); string sql = @"SELECT * FROM presek"; using (SqlCommand cmd = new SqlCommand(sql, conn)) { SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Presek ret = new Presek(); ret = ReadFromReader(reader); preseci.Add(ret); } reader.Close(); } conn.Close(); } return(preseci); } //
/// <summary> /// Proverava da li postoji presek za dati racun i datum (koji izvlaci iz racuna); /// <para>ako ne postoji: /// kreira se novi presek sa default vrednostima u skladu sa racunom;</para> /// <para>ako postoji: /// updateuj presek u skladu sa racunom;</para> /// </summary> /// <param name="r"></param> /// <returns></returns> public static Presek ProveriPresek(Racun r) { Presek p = null; DateTime datumnaloga = r.Datum; string brracuna = r.BrojRacuna.ToString(); using (SqlConnection conn = MySQLUtils.NapraviBankaConn()) { conn.Open(); string sqlNadjiPresek = @"SELECT * FROM presek WHERE brracuna = @brracuna AND datumnaloga = @datumnaloga" ; //gledas dal presek postoji using (SqlCommand cmd = new SqlCommand(sqlNadjiPresek, conn)) { cmd.Parameters.AddWithValue("@brracuna ", brracuna); cmd.Parameters.AddWithValue("@datumnaloga", datumnaloga); SqlDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { p = PresekDB.ReadFromReader(reader); } reader.Close(); } //ako nisi iscitao presek, pravi novi if (p == null) { p = new Presek(); p.BrRacuna = r.BrojRacuna.ToString(); p.DatumNaloga = r.Datum; p.BrPreseka = 0; p.BrPromenaNaTeret = 0; p.BrPromenaUKorist = 0; p.UkupnoNaTeret = 0; p.UkupnoUKorist = 0; if (r.PredhodnoStanje > r.TrenutnoStanje) { p.BrPromenaNaTeret = 1; p.UkupnoNaTeret = r.PredhodnoStanje - r.TrenutnoStanje; } else { p.BrPromenaUKorist = 1; p.UkupnoUKorist = r.TrenutnoStanje - r.PredhodnoStanje; } p.NovoStanje = r.TrenutnoStanje; p.PrethodnoStanje = r.PredhodnoStanje; PresekDB.InsertIntoPresek(p); } //ako si iscitao presek, updateuj ga else { string sqlUpdate = @"UPDATE presek SET prethodnostanje = @prethodnostanje, brpromenaukorist = @brpromenaukorist, ukupnoukorist = @ukupnoukorist, brpromenanateret = @brpromenanateret , ukupnonateret = @ukupnonateret , novostanje = @novostanje WHERE brracuna = @brracuna AND datumnaloga = @datumnaloga;" ; if (r.PredhodnoStanje > r.TrenutnoStanje) { p.BrPromenaNaTeret += 1; p.UkupnoNaTeret += r.PredhodnoStanje - r.TrenutnoStanje; } else { p.BrPromenaUKorist += 1; p.UkupnoUKorist += r.TrenutnoStanje - r.PredhodnoStanje; } //updateuj postojeci using (SqlCommand cmd = new SqlCommand(sqlUpdate, conn)) { cmd.Parameters.AddWithValue("@prethodnostanje", r.PredhodnoStanje); cmd.Parameters.AddWithValue("@brpromenaukorist", p.BrPromenaUKorist); cmd.Parameters.AddWithValue("@ukupnoukorist", p.UkupnoUKorist); cmd.Parameters.AddWithValue("@brpromenanateret", p.BrPromenaNaTeret); cmd.Parameters.AddWithValue("@ukupnonateret", p.UkupnoNaTeret); cmd.Parameters.AddWithValue("@novostanje", r.TrenutnoStanje); cmd.Parameters.AddWithValue("@brracuna", r.BrojRacuna); cmd.Parameters.AddWithValue("@datumnaloga", r.Datum); cmd.ExecuteNonQuery(); } } //uiscupaj ga ponovo, ovaj put <b>sigurno</b> postoji using (SqlCommand cmd = new SqlCommand(sqlNadjiPresek, conn)) { cmd.Parameters.AddWithValue("@brracuna ", brracuna); cmd.Parameters.AddWithValue("@datumnaloga", datumnaloga); SqlDataReader reader = cmd.ExecuteReader(); reader.Read(); p = PresekDB.ReadFromReader(reader); Console.WriteLine("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n" + p.ToString() + "\n"); reader.Close(); } conn.Close(); } return(p); }