This commit is contained in:
2025-09-13 20:34:08 -06:00
parent 598b2c2936
commit 985351f6a8
6 changed files with 151 additions and 83 deletions

View File

@@ -3,13 +3,12 @@ using System.IO;
using System.Text;
using System.Threading.Tasks;
using AdminFinanceRCA.Models;
namespace AdminFinanceRCA;
using System.Data;
using Dapper;
using Microsoft.Data.Sqlite;
namespace AdminFinanceRCA;
public class FinanzasRepository
{
private readonly string _connectionString;
@@ -20,7 +19,6 @@ public class FinanzasRepository
_connectionString = config.GetConnectionString();
InitializeDatabase();
}
// Constructor alternativo para testing
public FinanzasRepository(string connectionString)
{
_connectionString = connectionString;
@@ -42,7 +40,8 @@ public class FinanzasRepository
connection.Execute(@"
CREATE TABLE IF NOT EXISTS DepartTrabajo (
Id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
Nombre TEXT NOT NULL
Nombre TEXT NOT NULL,
Descripcion TEXT NULL
)");
connection.Execute(@"
@@ -69,40 +68,6 @@ public class FinanzasRepository
// Crear índice
connection.Execute(@"
CREATE INDEX IF NOT EXISTS Mov ON Movimientos (Concepto ASC, TipoMov ASC)");
// Insertar datos básicos si las tablas están vacías
InsertarDatosBasicos(connection);
}
}
private void InsertarDatosBasicos(SqliteConnection connection)
{
// Verificar si TipoMovimiento está vacío
var countTipos = connection.ExecuteScalar<int>("SELECT COUNT(*) FROM TipoMovimiento");
if (countTipos == 0)
{
connection.Execute("INSERT INTO TipoMovimiento (Nombre) VALUES ('Ingreso')");
connection.Execute("INSERT INTO TipoMovimiento (Nombre) VALUES ('Egreso')");
}
// Verificar si Concepto está vacío
var countConceptos = connection.ExecuteScalar<int>("SELECT COUNT(*) FROM Concepto");
if (countConceptos == 0)
{
connection.Execute("INSERT INTO Concepto (Nombre) VALUES ('Ventas')");
connection.Execute("INSERT INTO Concepto (Nombre) VALUES ('Compras')");
connection.Execute("INSERT INTO Concepto (Nombre) VALUES ('Nómina')");
connection.Execute("INSERT INTO Concepto (Nombre) VALUES ('Servicios')");
}
// Verificar si DepartTrabajo está vacío
var countDeptos = connection.ExecuteScalar<int>("SELECT COUNT(*) FROM DepartTrabajo");
if (countDeptos == 0)
{
connection.Execute("INSERT INTO DepartTrabajo (Nombre) VALUES ('Administración')");
connection.Execute("INSERT INTO DepartTrabajo (Nombre) VALUES ('Ventas')");
connection.Execute("INSERT INTO DepartTrabajo (Nombre) VALUES ('Producción')");
connection.Execute("INSERT INTO DepartTrabajo (Nombre) VALUES ('Logística')");
}
}
@@ -218,7 +183,6 @@ public class FinanzasRepository
#endregion
#region Operaciones para DepartTrabajo
public async Task<IEnumerable<DepartTrabajo>> GetAllDepartamentosAsync()
{
using (var connection = GetConnection())
@@ -249,7 +213,6 @@ public class FinanzasRepository
return rowsAffected > 0;
}
}
#endregion
#region Operaciones para TipoMovimiento