using System; using System.Collections.Generic; using System.Data.SQLite; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using compabetov2.database; using compabetov2.database.modelos; namespace compabetov2.database { internal class service { public static bool iniciarSesion(Usuario usuario) { return DAO.iniciarSesionDAO(usuario.nombreUsuario, usuario.contra); } public static LoginModel conseguirInicioSesion(string usuario) { SQLiteDataReader reader = DAO.conseguirInicioSesionDAO(usuario); while (reader.Read()) { return new LoginModel( reader["usuario"].ToString(), "", reader["tipo"].ToString() ); } return null; } public static bool crearLogin(LoginModel loginModel, int idEmpleado) { return DAO.crearLoginDAO(loginModel, idEmpleado); } public static List conseguirProductos() { List productos = new List(); SQLiteDataReader reader = DAO.conseguirProductosDAO(); while (reader.Read()) { Categoria categoria = new Categoria( int.Parse(reader["idcategoria"].ToString()), reader["nombre"].ToString(), reader["descripcion"].ToString()); Producto producto = new Producto( int.Parse(reader["idproducto"].ToString()), reader["nombre"].ToString(), reader["descripcion"].ToString(), decimal.Parse(reader["precio"].ToString()), reader["img"].ToString(), int.Parse(reader["stock"].ToString()), categoria); productos.Add(producto); } return productos; } public static bool insertarProducto(Producto producto) { return DAO.insertarProductoDAO(producto); } public static bool insertarCategoriaDAO(Categoria categoria) { return DAO.insertarCategoriaDAO(categoria); } public static bool insertarCliente(Cliente cliente) { return DAO.insertarClienteDAO(cliente); } public static bool eliminarCliente(Cliente cliente) { return DAO.eliminarClienteDAO(cliente); } public static List conseguirCliente() { List clientes = new List(); SQLiteDataReader reader = DAO.conseguirClientesDAO(); while (reader.Read()) { Cliente cliente = new Cliente( (int)reader["idCliente"], reader["nombres"].ToString(), reader["apellidos"].ToString(), reader["calle"].ToString(), reader["colonia"].ToString(), reader["cp"].ToString(), reader["no_ext"].ToString(), reader["no_int"].ToString(), reader["referencia"].ToString(), reader["telefono"].ToString(), reader["telefono_extra"].ToString() ); clientes.Add(cliente); } return clientes; } public static bool insertarEmpleado(Empleado empleado) { return DAO.insertarEmpleadoDAO(empleado); } public static List conseguirEmpleados() { List empleados = new List(); using (SQLiteDataReader reader = DAO.conseguirEmpleadosDAO()) { while (reader.Read()) { long fkIdLoginTemp = reader.GetInt64(14); int fkIdLogin = Convert.ToInt32(fkIdLoginTemp); long id = reader.GetInt64(0); Empleado empleado = new Empleado( Convert.ToInt32(id), reader["nombre"].ToString(), reader["apellidos"].ToString(), reader["calle"].ToString(), reader["fecha_contratacion"].ToString(), reader["estado"].ToString(), reader["colonia"].ToString(), reader["cp"].ToString(), reader["no_ext"].ToString(), reader["no_int"].ToString(), reader["referencia"].ToString(), reader["fecha_nac"].ToString(), reader["telefono"].ToString(), reader["img"].ToString(), fkIdLogin ) ; empleados.Add(empleado); } return empleados; } } public static bool aumentarStock(List stockNuevo) { return DAO.aumentarStockDAO(stockNuevo); } public static bool eliminarEmpleado(Empleado empleado) { return DAO.eliminarEmpleadoDAO(empleado); } public static bool actualizarEmpleado(Empleado empleado) { return DAO.actualizarEmpleadoDAO(empleado); } public static bool verificarExistenciaLogin(LoginModel loginModel) { return DAO.verificarExistenciaLoginDAO(loginModel); } public static bool eliminarLogin(Empleado empleado) { return DAO.eliminarLoginDAO(empleado); } public static bool modificarContra(Empleado empleado, string contra) { return DAO.modificarContraDAO(empleado, contra); } public static List conseguirMerma() { List mermas = new List(); SQLiteDataReader reader = DAO.conseguirMermaDAO(); while (reader.Read()) { Merma merma = new Merma( reader.GetInt64(0), reader.GetString(1), reader.GetString(2), reader.GetString(3) ); mermas.Add(merma); } return mermas; } public static bool crearVentaDAO(VentaModel venta, List detalleVentas) { return DAO.crearVentaDAO(venta, detalleVentas); } public static bool insertarMerma(Merma merma) { return DAO.insertarMermaDAO(merma); } public static bool eliminarMerma(Merma merma) { return DAO.eliminarMermaDAO(merma); } public static bool actualizarMerma(Merma merma) { return DAO.actualizarMermaDAO(merma); } public static bool crearCuenta(Cuenta cuenta, List detalleCuentas) { return DAO.crearCuentaDAO(cuenta, detalleCuentas); } public static List conseguirCuentaDAO() { List cuentas = new List(); SQLiteDataReader reader = DAO.conseguirCuentaDAO(); while(reader.Read()) { long idCuenta = reader.GetInt64(0); long total = reader.GetInt64(1); string fecha = reader["fecha"].ToString(); string estado = reader["estado"].ToString(); string descripcion = reader["descripcion"].ToString(); string cliente = reader["cliente"].ToString(); Cuenta cuenta = new Cuenta( (int) total, fecha, estado, descripcion, cliente, (int)idCuenta ); cuentas.Add(cuenta); } return cuentas; } public static List conseguirDetalleCuante(int idCuenta) { List detallesCuentas = new List(); SQLiteDataReader reader = DAO.conseguirDetalleCuanteDAO(idCuenta); while (reader.Read()) { int idProducto = (int)reader.GetInt64(0); DetalleCuentaModel detalleCuenta = new DetalleCuentaModel( new Producto(idProducto, reader["nombre"].ToString()), (int)reader.GetInt64(2) ); detallesCuentas.Add(detalleCuenta); } return detallesCuentas; } public static bool cancelarCuenta(int idCuenta) { return DAO.cancelarCuentaDAO(idCuenta); } public static bool saldarCuenta(Cuenta cuenta, List detallesCuentas) { return DAO.saldarCuentaDAO(cuenta, detallesCuentas); } /*public static Dictionary filtrarVentaFechaMes(DateTime fecha) { Dictionary estadisticas = new Dictionary(); SQLiteDataReader reader = DAO.filtrarVentaFechaMesDAO(fecha); string formatoFecha = "dd/MM/yyyy h:mm:ss tt"; decimal totalDia = 0; decimal totalMes = 0; List ventas = new List(); while (reader.Read()) { VentaModel venta = new VentaModel( reader.GetDecimal(2), (int)reader.GetInt64(0), reader.GetString(1) ); DateTime fechaVenta = DateTime.ParseExact(venta.fecha, formatoFecha, CultureInfo.InvariantCulture); if (fecha.Day == fechaVenta.Day) { totalDia += venta.total; } totalMes += venta.total; ventas.Add(venta); } estadisticas.Add("ventasDia", totalDia); estadisticas.Add("ventasMes", totalMes); MessageBox.Show($"{totalDia} -- {totalMes}"); return estadisticas; }*/ public static bool crearEnvio(Envio envio, List detallesEnvio) { return DAO.crearEnvio(envio, detallesEnvio); } public static List conseguirEnvio() { List envios = new List(); SQLiteDataReader reader = DAO.conseguirEnvioDAO(); while (reader.Read()) { Envio envio = new Envio( (int)reader.GetInt64(0), reader.GetString(1), reader.GetString(2), reader.GetString(3), reader.GetString(4), reader.GetString(5), reader.GetString(7), reader.GetDecimal(6) ) ; envios.Add(envio); } return envios; } public static List conseguirDetalleEnvio(int idEnvio) { List detallesEnvio = new List(); SQLiteDataReader reader = DAO.conseguirDetalleEnvioDAO(idEnvio); while (reader.Read()) { int idProducto = (int)reader.GetInt64(0); DetalleEnvioModel detalleEnvio = new DetalleEnvioModel( idEnvio, new Producto(idProducto, reader["nombre"].ToString()), (int)reader.GetInt64(2) ); detallesEnvio.Add(detalleEnvio); } return detallesEnvio; } public static bool editarEnvio(Envio envio) { return DAO.editarEnvioDAO(envio); } public static bool cancelarEnvio(int idEnvio) { return DAO.cancelarEnvioDAO(idEnvio); } public static bool concluirEnvio(Envio envio, List detallesEnvio) { return DAO.concluirEnvioDAO(envio, detallesEnvio); } public static Dictionary>> estadisticas(DateTime fecha) { Dictionary>> resumen = new Dictionary>>(); List> listMes = new List>(); List> listDia = new List>(); SQLiteDataReader readerVentas = DAO.conseguirVentasMesDAO(fecha); string formato = "dd/MM/yyyy"; while (readerVentas.Read()) { Dictionary dicVenta = new Dictionary(); VentaModel venta = new VentaModel( readerVentas.GetDecimal(2), (int)readerVentas.GetInt64(0), readerVentas.GetString(1), readerVentas.GetString(3) ); List detallesVenta = new List(); SQLiteDataReader readerDetalleVenta = DAO.conseguirDetalleVenta(venta); while (readerDetalleVenta.Read()) { DetalleVentaModel detalleVenta = new DetalleVentaModel( (int)readerDetalleVenta.GetInt64(2), new Producto( (int)readerDetalleVenta.GetInt64(1), readerDetalleVenta["nombre"].ToString(), readerDetalleVenta["descripcion"].ToString(), readerDetalleVenta.GetDecimal(6), readerDetalleVenta["img"].ToString(), (int)readerDetalleVenta.GetInt64(8) ), (int)readerDetalleVenta.GetInt64(0) ) ; detallesVenta.Add( detalleVenta ); } dicVenta.Add("venta", venta); dicVenta.Add("detalles", detallesVenta as List); string[] fecha_hora = venta.fecha.Split(' '); string fechaVentaStr = fecha_hora[0]; DateTime.TryParseExact(fechaVentaStr, formato, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime fechaVenta); if (fecha.Day == fechaVenta.Day) { listDia.Add(dicVenta); } listMes.Add(dicVenta); } resumen.Add("mes", listMes); resumen.Add("dia", listDia); return resumen; } } }