LevelOS-Core/DAL/DALLContratoEquipamentos.cs

954 lines
28 KiB
C#

using Microsoft.Data.SqlClient;
using MLL;
using System;
using System.Collections.Generic;
using System.Data;
namespace DALL
{
public class DALLContratoEquipamentos
{
private readonly string connectionString;
public DALLContratoEquipamentos(string conexao)
{
connectionString = conexao;
}
#region CRUD
public bool Inserir(
ModeloContratoEquipamentos modelo)
{
try
{
using SqlConnection conn =
new(connectionString);
string sql = @"
INSERT INTO ContratoEquipamentos
(
ContratoId,
Modelo,
Marca,
Operadora,
Serial,
NumeroPatrimonio,
Observacoes
)
VALUES
(
@ContratoId,
@Modelo,
@Marca,
@Operadora,
@Serial,
@NumeroPatrimonio,
@Observacoes
)";
using SqlCommand cmd =
new(sql, conn);
PreencherParametros(
cmd,
modelo);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
catch
{
return false;
}
}
public bool Alterar(
ModeloContratoEquipamentos modelo)
{
try
{
using SqlConnection conn =
new(connectionString);
string sql = @"
UPDATE ContratoEquipamentos
SET
ContratoId = @ContratoId,
Modelo = @Modelo,
Marca = @Marca,
Operadora = @Operadora,
Serial = @Serial,
NumeroPatrimonio = @NumeroPatrimonio,
Observacoes = @Observacoes
WHERE Id_equipamentos =
@Id_equipamentos";
using SqlCommand cmd =
new(sql, conn);
PreencherParametros(
cmd,
modelo);
cmd.Parameters.AddWithValue(
"@Id_equipamentos",
modelo.Id_equipamentos);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
catch
{
return false;
}
}
public bool Excluir(int id)
{
try
{
using SqlConnection conn =
new(connectionString);
string sql = @"
DELETE FROM ContratoEquipamentos
WHERE Id_equipamentos =
@Id_equipamentos";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@Id_equipamentos",
id);
conn.Open();
return cmd.ExecuteNonQuery() > 0;
}
catch
{
return false;
}
}
public ModeloContratoEquipamentos? Carregar(
int id)
{
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE Id_equipamentos =
@Id_equipamentos";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@Id_equipamentos",
id);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
if (dr.Read())
{
return PreencherModelo(dr);
}
return null;
}
public List<ModeloContratoEquipamentos> Listar()
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarPorContratoId(int contratoId)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE ContratoId =
@ContratoId
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@ContratoId",
contratoId);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarPorMarca(string marca)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE Marca =
@Marca
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@Marca",
marca);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarPorSerial(string serial)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE Serial =
@Serial
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@Serial",
serial);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarPorNumeroPatrimonio(string numeroPatrimonio)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE NumeroPatrimonio =
@NumeroPatrimonio
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@NumeroPatrimonio",
numeroPatrimonio);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarPorObservacoes(string observacoes)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE Observacoes LIKE
'%' + @Observacoes + '%'
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@Observacoes",
observacoes);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarPorModelo(string modelo)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE Modelo =
@Modelo
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@Modelo",
modelo);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarPorOperadora(string operadora)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE Operadora =
@Operadora
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@Operadora",
operadora);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarPorContratoIdMarca(int contratoId, string marca)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE ContratoId =
@ContratoId AND Marca =
@Marca
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@ContratoId",
contratoId);
cmd.Parameters.AddWithValue(
"@Marca",
marca);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarPorContratoIdSerial(int contratoId, string serial)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE ContratoId =
@ContratoId AND Serial =
@Serial
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@ContratoId",
contratoId);
cmd.Parameters.AddWithValue(
"@Serial",
serial);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarPorContratoIdNumeroPatrimonio(int contratoId, string numeroPatrimonio)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE ContratoId =
@ContratoId AND NumeroPatrimonio =
@NumeroPatrimonio
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@ContratoId",
contratoId);
cmd.Parameters.AddWithValue(
"@NumeroPatrimonio",
numeroPatrimonio);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarPorContratoIdObservacoes(int contratoId, string observacoes)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE ContratoId =
@ContratoId AND Observacoes LIKE
'%' + @Observacoes + '%'
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@ContratoId",
contratoId);
cmd.Parameters.AddWithValue(
"@Observacoes",
observacoes);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarPorContratoIdModelo(int contratoId, string modelo)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE ContratoId =
@ContratoId AND Modelo =
@Modelo
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@ContratoId",
contratoId);
cmd.Parameters.AddWithValue(
"@Modelo",
modelo);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarPorContratoIdOperadora(int contratoId, string operadora)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE ContratoId =
@ContratoId AND Operadora =
@Operadora
ORDER BY Id_equipamentos DESC";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@ContratoId",
contratoId);
cmd.Parameters.AddWithValue(
"@Operadora",
operadora);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
public List<ModeloContratoEquipamentos> ListarOtimizado( int? contratoId = null,string? modelo = null, string? marca = null, string? operadora = null, string? serial = null, string? numeroPatrimonio = null, string? observacoes = null)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE 1 = 1";
using SqlCommand cmd =
new();
cmd.Connection = conn;
// ─────────────────────────────────────
// CONTRATO
// ─────────────────────────────────────
if (contratoId.HasValue)
{
sql += @"
AND ContratoId =
@ContratoId";
cmd.Parameters.AddWithValue(
"@ContratoId",
contratoId.Value);
}
// ─────────────────────────────────────
// MODELO
// ─────────────────────────────────────
if (!string.IsNullOrWhiteSpace(modelo))
{
sql += @"
AND Modelo LIKE
@Modelo";
cmd.Parameters.AddWithValue(
"@Modelo",
"%" + modelo + "%");
}
// ─────────────────────────────────────
// MARCA
// ─────────────────────────────────────
if (!string.IsNullOrWhiteSpace(marca))
{
sql += @"
AND Marca LIKE
@Marca";
cmd.Parameters.AddWithValue(
"@Marca",
"%" + marca + "%");
}
// ─────────────────────────────────────
// OPERADORA
// ─────────────────────────────────────
if (!string.IsNullOrWhiteSpace(operadora))
{
sql += @"
AND Operadora LIKE
@Operadora";
cmd.Parameters.AddWithValue(
"@Operadora",
"%" + operadora + "%");
}
// ─────────────────────────────────────
// SERIAL
// ─────────────────────────────────────
if (!string.IsNullOrWhiteSpace(serial))
{
sql += @"
AND Serial LIKE
@Serial";
cmd.Parameters.AddWithValue(
"@Serial",
"%" + serial + "%");
}
// ─────────────────────────────────────
// PATRIMONIO
// ─────────────────────────────────────
if (!string.IsNullOrWhiteSpace(numeroPatrimonio))
{
sql += @"
AND NumeroPatrimonio LIKE
@NumeroPatrimonio";
cmd.Parameters.AddWithValue(
"@NumeroPatrimonio",
"%" + numeroPatrimonio + "%");
}
// ─────────────────────────────────────
// OBSERVAÇÕES
// ─────────────────────────────────────
if (!string.IsNullOrWhiteSpace(observacoes))
{
sql += @"
AND Observacoes LIKE
@Observacoes";
cmd.Parameters.AddWithValue(
"@Observacoes",
"%" + observacoes + "%");
}
// ─────────────────────────────────────
sql += @"
ORDER BY
Id_equipamentos DESC";
cmd.CommandText = sql;
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
#endregion
#region VIEWS
public List<ModeloContratoEquipamentos>
ListarPorContrato(
int contratoId)
{
List<ModeloContratoEquipamentos> lista = [];
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT *
FROM ContratoEquipamentos
WHERE ContratoId =
@ContratoId";
using SqlCommand cmd =
new(sql, conn);
cmd.Parameters.AddWithValue(
"@ContratoId",
contratoId);
conn.Open();
using SqlDataReader dr =
cmd.ExecuteReader();
while (dr.Read())
{
lista.Add(
PreencherModelo(dr));
}
return lista;
}
//public List<ModeloContratoEquipamentos>
// ListarPorMarca(
// string marca)
//{
// List<ModeloContratoEquipamentos> lista = [];
// using SqlConnection conn =
// new(connectionString);
// string sql = @"
// SELECT *
// FROM ContratoEquipamentos
// WHERE Marca =
// @Marca";
// using SqlCommand cmd =
// new(sql, conn);
// cmd.Parameters.AddWithValue(
// "@Marca",
// marca);
// conn.Open();
// using SqlDataReader dr =
// cmd.ExecuteReader();
// while (dr.Read())
// {
// lista.Add(
// PreencherModelo(dr));
// }
// return lista;
//}
//public List<ModeloContratoEquipamentos>
// ListarPorSerial(
// string serial)
//{
// List<ModeloContratoEquipamentos> lista = [];
// using SqlConnection conn =
// new(connectionString);
// string sql = @"
// SELECT *
// FROM ContratoEquipamentos
// WHERE Serial =
// @Serial";
// using SqlCommand cmd =
// new(sql, conn);
// cmd.Parameters.AddWithValue(
// "@Serial",
// serial);
// conn.Open();
// using SqlDataReader dr =
// cmd.ExecuteReader();
// while (dr.Read())
// {
// lista.Add(
// PreencherModelo(dr));
// }
// return lista;
//}
#endregion
#region DASHBOARD
public DataTable Dashboard()
{
using SqlConnection conn =
new(connectionString);
string sql = @"
SELECT
COUNT(*) AS TOTAL_EQUIPAMENTOS
FROM ContratoEquipamentos";
using SqlCommand cmd =
new(sql, conn);
using SqlDataAdapter da =
new(cmd);
DataTable dt = new();
da.Fill(dt);
return dt;
}
#endregion
#region HELPERS
private static ModeloContratoEquipamentos
PreencherModelo(
SqlDataReader dr)
{
return new ModeloContratoEquipamentos
{
Id_equipamentos =
Convert.ToInt32(
dr["Id_equipamentos"]),
ContratoId =
Convert.ToInt32(
dr["ContratoId"]),
Modelo =
dr["Modelo"] == DBNull.Value
? null
: Convert.ToString(
dr["Modelo"]),
Marca =
dr["Marca"] == DBNull.Value
? null
: Convert.ToString(
dr["Marca"]),
Operadora =
dr["Operadora"] == DBNull.Value
? null
: Convert.ToString(
dr["Operadora"]),
Serial =
dr["Serial"] == DBNull.Value
? null
: Convert.ToString(
dr["Serial"]),
NumeroPatrimonio =
dr["NumeroPatrimonio"]
== DBNull.Value
? null
: Convert.ToString(
dr["NumeroPatrimonio"]),
Observacoes =
dr["Observacoes"]
== DBNull.Value
? null
: Convert.ToString(
dr["Observacoes"])
};
}
private static void PreencherParametros(
SqlCommand cmd,
ModeloContratoEquipamentos modelo)
{
cmd.Parameters.AddWithValue(
"@ContratoId",
modelo.ContratoId);
cmd.Parameters.AddWithValue(
"@Modelo",
string.IsNullOrWhiteSpace(
modelo.Modelo)
? DBNull.Value
: modelo.Modelo);
cmd.Parameters.AddWithValue(
"@Marca",
string.IsNullOrWhiteSpace(
modelo.Marca)
? DBNull.Value
: modelo.Marca);
cmd.Parameters.AddWithValue(
"@Operadora",
string.IsNullOrWhiteSpace(
modelo.Operadora)
? DBNull.Value
: modelo.Operadora);
cmd.Parameters.AddWithValue(
"@Serial",
string.IsNullOrWhiteSpace(
modelo.Serial)
? DBNull.Value
: modelo.Serial);
cmd.Parameters.AddWithValue(
"@NumeroPatrimonio",
string.IsNullOrWhiteSpace(
modelo.NumeroPatrimonio)
? DBNull.Value
: modelo.NumeroPatrimonio);
cmd.Parameters.AddWithValue(
"@Observacoes",
string.IsNullOrWhiteSpace(
modelo.Observacoes)
? DBNull.Value
: modelo.Observacoes);
}
#endregion
}
}