2021-09-02 08:04:56 -03:00

523 lines
17 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
namespace CSharpLibrary.SqlTypes
{
public class Emprestimo : Component
{
public int idEmprestimo, idFunc, idItem, idCliente;
public DateTime dtEmprestimo;
public DateTime dtDevolucao;
public string statusEmprestimo;
public Emprestimo(int? idE, int idF, int idC, int idI, DateTime dtE, DateTime dtD, string stE)
{
if(idE != null)
idEmprestimo = (int)idE;
idFunc = idF;
idItem = idI;
idCliente = idC;
dtEmprestimo = dtE;
dtDevolucao = dtD;
statusEmprestimo = stE;
}
public List<Tuple<int, string , string, DateTime , DateTime , string>> ReturnList()
{
List<Tuple<int, string, string, DateTime, DateTime, string>> tmp = new List<Tuple<int, string, string, DateTime, DateTime, string>>();
using(con)
{
con.Open();
select = new SqlCommand("SELECT " +
"e.idEmprestimo, f.nomeFunc, c.nomeCliente, i.nomeItem, e.dataEmprestimo, e.dataDevolucao, e.statusEmprestimo " +
"FROM tbEmprestimo e " +
"INNER JOIN tbCliente c ON e.idCliente = c.idCliente " +
"INNER JOIN tbFuncionario f ON e.idFunc = f.idFunc " +
"INNER JOIN tbItem i on e.idItem = i.idItem", con);
con.Close();
using (SqlDataReader r = select.ExecuteReader())
{
while (r.Read())
{
tmp.Add(
new Tuple<int, string, string, DateTime, DateTime, string>
(
r.GetInt32(0),
r.GetString(1),
r.GetString(2),
r.GetDateTime(3),
r.GetDateTime(4),
r.GetString(5)
)
);
}
}
}
return tmp;
}
public override void Add()
{
using(con)
{
con.Open();
insert = new SqlCommand("INSERT INTO tbEmprestimo(idFunc, idCliente, idItem, dataEmprestimo, dataDevolucao, statusEmprestimo) " +
"VALUES (@idFunc, @idCliente, @idItem, @dtEmprestimo, @dtDevolucao, @statusEmprestimo)", con);
insert.Parameters.Add("@idFunc", SqlDbType.Int).Value = idFunc;
insert.Parameters.Add("@idCliente", SqlDbType.Int).Value = idCliente;
insert.Parameters.Add("@idItem", SqlDbType.Int).Value = idItem;
insert.Parameters.Add("@dtEmprestimo", SqlDbType.DateTime).Value = dtEmprestimo;
insert.Parameters.Add("@dtDevolucao", SqlDbType.DateTime).Value = dtDevolucao;
insert.Parameters.Add("@statusEmprestimo", SqlDbType.NVarChar, 10).Value = statusEmprestimo;
insert.Prepare();
insert.ExecuteNonQuery();
con.Close();
}
}
public override void Edit(int id, List<string> vlr)
{
List<int> tmp = ReturnTypes.ReturnEmprestimoVals(vlr[0], vlr[1], vlr[2]);
idEmprestimo = id;
idFunc = tmp[0];
idCliente = tmp[1];
idItem = tmp[2];
dtEmprestimo = DateTime.Parse(vlr[3]);
dtDevolucao = DateTime.Parse(vlr[4]);
statusEmprestimo = vlr[5];
using (con) {
con.Open();
update = new SqlCommand(
"UPDATE tbEmprestimo " +
"SET idFunc = @idFunc, " +
"idCliente = @idCliente, " +
"idItem = @idItem, " +
"dataEmprestimo = @dtEmprestimo, " +
"dataDevolucao = @dtDevolucao, " +
"statusEmprestimo = @statusEmprestimo " +
"WHERE idEmprestimo = @idEmprestimo", con
);
update.Parameters.Add("@idFunc", SqlDbType.Int).Value = idFunc;
update.Parameters.Add("@idCliente", SqlDbType.Int).Value = idCliente;
update.Parameters.Add("@idItem", SqlDbType.Int).Value = idItem;
update.Parameters.Add("@dtEmprestimo", SqlDbType.DateTime).Value = dtEmprestimo;
update.Parameters.Add("@dtDevolucao", SqlDbType.DateTime).Value = dtDevolucao;
update.Parameters.Add("@statusEmprestimo", SqlDbType.NVarChar, 10).Value = statusEmprestimo;
update.Parameters.Add("@idEmprestimo", SqlDbType.Int).Value = idEmprestimo;
update.Prepare();
update.ExecuteNonQuery();
con.Close();
}
}
public override bool Remove(int id)
{
try {
con.Open();
delete = new SqlCommand(
"UPDATE tbEmprestimo " +
"SET statusEmprestimo = 'ENTREGUE' " +
"WHERE idEmprestimo = @idEmprestimo", con
);
delete.Parameters.Add("@idEmprestimo", SqlDbType.Int).Value = id;
delete.Prepare();
delete.ExecuteNonQuery();
con.Close();
}
catch(SqlException)
{
throw new Exception();
}
return true;
}
}
public class Genero : Component
{
int idGenero;
string nomeGenero;
public Genero(int? idG, string nome)
{
if (idG != null)
idGenero = (int)idG;
nomeGenero = nome;
}
public override void Add()
{
using(con)
{
con.Open();
insert = new SqlCommand("INSERT INTO tbGenero(nomeGenero) VALUES (@nomeGenero)", con);
insert.Parameters.Add("@nomeGenero", SqlDbType.NVarChar, 30).Value = nomeGenero;
insert.Prepare();
insert.ExecuteNonQuery();
con.Close();
}
}
public override void Edit(int id, List<string> vlr)
{
idGenero = id;
nomeGenero = vlr[0];
using(con)
{
con.Open();
update = new SqlCommand("UPDATE tbGenero SET nomeGenero = @nomeGenero WHERE idGenero = @idGenero",con);
update.Parameters.Add("@idGenero", SqlDbType.Int).Value = idGenero;
update.Parameters.Add("@nomeGenero", SqlDbType.NVarChar, 30).Value = nomeGenero;
update.Prepare();
update.ExecuteNonQuery();
con.Close();
}
}
public override bool Remove(int id)
{
List<string> tmp = new List<string>{"DELETADO"};
try
{
Edit(id, tmp);
}
catch(SqlException)
{
throw new Exception();
}
return true;
}
}
public class Item : Component
{
public int idItem, idAutor, generoItem, editoraItem, tipoItem;
public string nomeItem, isbnItem, statusItem;
public Item(int? idT, string nI, int idA, int gI, int edI, int tpI, string isbn, string stI) {
if (idT != null)
idItem = (int)idT;
nomeItem = nI;
idAutor = idA;
generoItem = gI;
editoraItem = edI;
tipoItem = tpI;
isbnItem = isbn;
statusItem = stI;
}
public override void Add()
{
using (con)
{
con.Open();
insert = new SqlCommand("INSERT INTO tbItem(nomeItem, idAutor, generoItem, editoraItem, tipoItem, isbnItem, statusItem) " +
"VALUES (@nomeItem, @idAutor, @generoItem, @editoraItem, @tipoItem, @isbnItem, @statusItem)", con);
insert.Parameters.Add("@nomeItem", SqlDbType.NVarChar, 50).Value = nomeItem;
insert.Parameters.Add("@isbnItem", SqlDbType.NVarChar, 13).Value = isbnItem;
insert.Parameters.Add("@statusItem", SqlDbType.NVarChar, 10).Value = statusItem;
insert.Parameters.Add("@idAutor", SqlDbType.Int).Value = idAutor;
insert.Parameters.Add("@generoItem", SqlDbType.Int).Value = generoItem;
insert.Parameters.Add("@editoraItem", SqlDbType.Int).Value = editoraItem;
insert.Parameters.Add("@tipoItem", SqlDbType.Int).Value = tipoItem;
insert.Prepare();
insert.ExecuteNonQuery();
con.Close();
}
}
public override void Edit(int id, List<string> vlr)
{
List<int> ids = ReturnTypes.ReturnItemVals(vlr[1], vlr[2], vlr[3], vlr[4]);
idItem = id;
idAutor = ids[0];
generoItem = ids[1];
editoraItem = ids[2];
tipoItem = ids[3];
nomeItem = vlr[0];
// Return para pegar PK!!
// Vlr[0], [5], [6] -> nomeItem, isbnItem, statusItem;
// Vlr[1], [2], [3], [4] -> idAutor,generoItem,editoraItem,tipoItem;
isbnItem = vlr[5];
statusItem = vlr[6];
using (con)
{
con.Open();
update = new SqlCommand(
"UPDATE tbItem " +
"SET nomeItem = @nomeItem, " +
"idAutor = @idAutor, " +
"generoItem = @generoItem, " +
"editoraItem = @editoraItem, " +
"tipoItem = @tipoItem, " +
"isbnItem = @isbnItem, " +
"statusItem = @statusItem " +
"WHERE idItem = @idItem", con
);
update.Parameters.Add("@nomeItem", SqlDbType.NVarChar,50).Value = nomeItem;
update.Parameters.Add("@idAutor", SqlDbType.Int).Value = idAutor;
update.Parameters.Add("@generoItem", SqlDbType.Int).Value = generoItem;
update.Parameters.Add("@editoraItem", SqlDbType.Int).Value = editoraItem;
update.Parameters.Add("@tipoItem", SqlDbType.Int).Value = tipoItem;
update.Parameters.Add("@isbnItem", SqlDbType.NVarChar, 13).Value = isbnItem;
update.Parameters.Add("@statusItem", SqlDbType.NVarChar,10).Value = statusItem;
update.Parameters.Add("@idItem", SqlDbType.Int).Value = idItem;
update.Prepare();
update.ExecuteNonQuery();
con.Close();
}
}
public override bool Remove(int id)
{
try
{
con.Open();
delete = new SqlCommand(
"UPDATE tbItem " +
"SET statusItem = 'DESATIVADO' " +
"WHERE idItem = @idItem", con
);
delete.Parameters.Add("@idItem", SqlDbType.Int).Value = id;
delete.Prepare();
delete.ExecuteNonQuery();
con.Close();
}
catch (SqlException)
{
throw new Exception();
}
return true;
}
}
public class Tipo : Component
{
int idTipo;
string nomeTipo;
public Tipo(int? id, string nome)
{
if (id != null)
idTipo = (int)id;
nomeTipo = nome;
}
public override void Add()
{
using (con)
{
con.Open();
insert = new SqlCommand("INSERT INTO tbTipo(nomeTipo) VALUES (@nomeTipo)", con);
insert.Parameters.Add("@nomeTipo", SqlDbType.NVarChar, 30).Value = nomeTipo;
insert.Prepare();
insert.ExecuteNonQuery();
con.Close();
}
}
public override void Edit(int id, List<string> vlr)
{
idTipo = id;
nomeTipo = vlr[0];
using (con)
{
con.Open();
update = new SqlCommand("UPDATE tbTipo SET nomeTipo = @nomeTipo WHERE idTipo = @idTipo", con);
update.Parameters.Add("@idTipo", SqlDbType.Int).Value = idTipo;
update.Parameters.Add("@nomeTipo", SqlDbType.NVarChar, 30).Value = nomeTipo;
update.Prepare();
update.ExecuteNonQuery();
con.Close();
}
}
public override bool Remove(int id)
{
List<string> tmp = new List<string> { "DELETADO" };
try
{
Edit(id, tmp);
}
catch (SqlException)
{
throw new Exception();
}
return true;
}
}
public class Editora : Component
{
int idEditora;
string nomeEditora;
public Editora(int? id, string nome)
{
if (id != null)
idEditora = (int)id;
nomeEditora = nome;
}
public override void Add()
{
using (con)
{
con.Open();
insert = new SqlCommand("INSERT INTO tbEditora(nomeEditora) VALUES (@nomeEditora)", con);
insert.Parameters.Add("@nomeEditora", SqlDbType.NVarChar, 30).Value = nomeEditora;
insert.Prepare();
insert.ExecuteNonQuery();
con.Close();
}
}
public override void Edit(int id, List<string> vlr)
{
idEditora = id;
nomeEditora = vlr[0];
using (con)
{
con.Open();
update = new SqlCommand("UPDATE tbEditora SET nomeEditora = @nomeEditora WHERE idEditora = @idEditora", con);
update.Parameters.Add("@idEditora", SqlDbType.Int).Value = idEditora;
update.Parameters.Add("@nomeEditora", SqlDbType.NVarChar, 30).Value = nomeEditora;
update.Prepare();
update.ExecuteNonQuery();
con.Close();
}
}
public override bool Remove(int id)
{
List<string> tmp = new List<string> { "DELETADO" };
try
{
Edit(id, tmp);
}
catch (SqlException)
{
throw new Exception();
}
return true;
}
}
public class Autor : Component
{
int idAutor;
string nomeAutor;
public Autor(int? id, string nome)
{
if (id != null)
idAutor = (int)id;
nomeAutor = nome;
}
public override void Add()
{
using (con)
{
con.Open();
insert = new SqlCommand("INSERT INTO tbAutor(nomeAutor) VALUES (@nomeAutor)", con);
insert.Parameters.Add("@nomeAutor", SqlDbType.NVarChar, 30).Value = nomeAutor;
insert.Prepare();
insert.ExecuteNonQuery();
con.Close();
}
}
public override void Edit(int id, List<string> vlr)
{
idAutor = id;
nomeAutor = vlr[0];
using (con)
{
con.Open();
update = new SqlCommand("UPDATE tbAutor SET nomeAutor = @nomeAutor WHERE idAutor = @idAutor", con);
update.Parameters.Add("@idAutor", SqlDbType.Int).Value = idAutor;
update.Parameters.Add("@nomeAutor", SqlDbType.NVarChar, 200).Value = nomeAutor;
update.Prepare();
update.ExecuteNonQuery();
con.Close();
}
}
public override bool Remove(int id)
{
List<string> tmp = new List<string> { "DELETADO" };
try
{
Edit(id, tmp);
}
catch (SqlException)
{
throw new Exception();
}
return true;
}
}
}