/// <summary> /// Verifica la existencia de la instancia en la base de datos. /// </summary> /// <returns></returns> private bool ValidaMoneda() { string query = "SELECT * FROM c_monedas WHERE " + "descripcion = @Descripcion AND " + "simbolo = @Simbolo"; BDCon con = new BDCon(query); con.PasarParametros("Descripcion", this.descripcion); con.PasarParametros("Simbolo", this.simbolo); SQLiteDataReader dr = con.ComandoSqlite().ExecuteReader(); dr.Read(); //Si existe una moneda con exactamente los mismos valores, //Se retorna verdadero. if (dr.HasRows) { dr.Close(); return(true); } dr.Close(); return(false); }
/// <summary> /// Registra el artículo y sus precios en la base de datos, con el estado de actividad indicado. /// </summary> /// <param name="articulo">Artículo a registrar.</param> /// <param name="activo">Activo o Inactivo.</param> /// <returns></returns> public bool RegistraDatosArticulo(bool activo) { //Si el artículo tiene id, es porque ya está registrado. if (this.Id != null) { return(true); } string query = "INSERT INTO c_articulos (descripcion,precioDolar,costoDolar,codBarras,activo) " + "VALUES( @Descripcion, @PrecioDolar, @CostoDolar, @CodBarras, @Activo )"; BDCon con = new BDCon(query); con.PasarParametros("Descripcion", this.Descripcion); con.PasarParametros("PrecioDolar", this.PrecioDolar); con.PasarParametros("CostoDolar", this.CostoDolar); con.PasarParametros("CodBarras", this.CodBarras); con.PasarParametros("Activo", activo); //Ejecuta el comando y verifica la cantidad de registros afectados if (con.EjecutarComando() > 0) { return(true); } //Si no hubo registros por alguna razón, arroja false return(false); }
private void TxtBuscar_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e) { //Armar query de consulta string query = "SELECT " + "id," + "descripcion," + "precioDolar," + "costoDolar, " + "(SELECT precioRedondo FROM c_articulos_precios WHERE idTipoPago = 1 AND idArticulo = id) as precioPunto, " + "(SELECT precioRedondo FROM c_articulos_precios WHERE idTipoPago = 2 AND idArticulo = id) as precioEfect, " + "codBarras " + "FROM c_articulos " + "WHERE " + "descripcion like @Descripcion " + "OR " + "codBarras like @CodBarras " + "AND " + "activo = 1"; BDCon con = new BDCon(query); con.PasarParametros("Descripcion", "%" + this.txtBuscar.Text + "%"); con.PasarParametros("CodBarras", "%" + this.txtBuscar.Text + "%"); //Llenar datagrid con los datos consultados con.ConsultaSqlite(this.dataBuscados); }
/// <summary> /// Actualiza los datos de un artículo en los campos asociados al id. /// </summary> /// <param name="id">ID del artículo.</param> /// <param name="articulo">Instancia con datos a refrescar.</param> /// <returns></returns> public static void ActualizarDatosById(int id, Articulo articulo) { //Borrar artículo y precios de la BD string query = "DELETE FROM c_articulos WHERE id = @Id;" + "DELETE FROM c_articulos_precios WHERE idArticulo = @Id;"; BDCon con = new BDCon(query); con.PasarParametros("Id", id); con.EjecutarComando(); //Registrar de nuevo artículo de la BD, con el mismo id query = "INSERT INTO c_articulos (id,descripcion,precioDolar,costoDolar,codBarras,activo) " + "VALUES( @Id, @Descripcion, @PrecioDolar, @CostoDolar, @CodBarras, @Activo )"; con = new BDCon(query); con.PasarParametros("Id", id); con.PasarParametros("Descripcion", articulo.Descripcion); con.PasarParametros("PrecioDolar", articulo.PrecioDolar); con.PasarParametros("CostoDolar", articulo.CostoDolar); con.PasarParametros("CodBarras", articulo.CodBarras); con.PasarParametros("Activo", true); //Registrar el artículo con.EjecutarComando(); //Volver a registrar sus precios articulo.RegistraPreciosArticulo(); }
/// <summary> /// Registrar instancia de moneda en la base de datos. /// </summary> /// <returns></returns> public bool RegistraMoneda() { //Si ya existe, no la creo y retorno true. if (ValidaMoneda()) { return(true); } string query = "INSERT INTO c_monedas (descripcion,simbolo) " + "VALUES( @Descripcion, @Simbolo )"; BDCon con = new BDCon(query); con.PasarParametros("Descripcion", this.descripcion); con.PasarParametros("Simbolo", this.simbolo); //Ejecuta el comando y verifica la cantidad de registros afectados if (con.EjecutarComando() > 0) { return(true); } //Si no hubo registros por alguna razón, arroja false return(false); }
/// <summary> /// Actualiza los precios de los artículos según la tasa actual. /// </summary> public static void ActualizarPreciosBBDD() { //Armando consulta a BBDD. string query = "SELECT * FROM c_articulos"; BDCon con = new BDCon(query); SQLiteDataReader dr = con.ComandoSqlite().ExecuteReader(); #region Variables Auxiliares Articulo articulo; int id; string descripcion, codBarras; decimal costoDolar, precioDolar; #endregion //Mientras hayan artículos leídos while (dr.Read()) { //Obtengo valores para Artículo id = Convert.ToInt32(dr["id"]); descripcion = (string)dr["descripcion"]; codBarras = (string)dr["codBarras"]; precioDolar = Convert.ToDecimal(dr["precioDolar"]); costoDolar = Convert.ToDecimal(dr["costoDolar"]); //Instanciar artículo y guardo sus datos en base de datos articulo = new Articulo(descripcion, costoDolar, precioDolar, codBarras); //Actualizar del artículo para refrescar su precio Articulo.ActualizarDatosById(id, articulo); } //Cierro para prevenir errores dr.Close(); }
/// <summary> /// Verifica la existencia de la instancia en la base de datos. Retorna el id del artículo /// </summary> /// <returns></returns> private int?ValidaIdArticulo() { string query = "SELECT id FROM c_articulos WHERE " + "descripcion = @Descripcion AND " + "precioDolar = @PrecioDolar AND " + "costoDolar = @CostoDolar AND " + "codBarras = @CodBarras"; BDCon con = new BDCon(query); con.PasarParametros("Descripcion", this.descripcion); con.PasarParametros("PrecioDolar", this.precioDolar); con.PasarParametros("CostoDolar", this.costoDolar); con.PasarParametros("CodBarras", this.codBarras); SQLiteDataReader dr = con.ComandoSqlite().ExecuteReader(); //Si existe un artículo con exactamente los mismos valores, //Se retorna el id. if (dr.Read()) { int id = Convert.ToInt32(dr["id"]); dr.Close(); return(id); } dr.Close(); //Si no existe, retorno null para indicar inexistencia return(null); }
/// <summary> /// Devuelve una lista con los tipos de pago disponibles en la BBDD. /// </summary> /// <returns></returns> public static List <TipoPago> TiposDisponibles() { List <TipoPago> disponibles = new List <TipoPago>(); TipoPago pago; Moneda moneda; string query = "SELECT * FROM c_tipopagos"; BDCon con = new BDCon(query); SQLiteDataReader dr = con.ComandoSqlite().ExecuteReader(); //Mientras haya registros disp. en la consulta. while (dr.Read()) { //Obtengo instancia de la moneda asociada moneda = Moneda.MonedaById(Convert.ToInt32(dr["idMoneda"])); //Determino si aplica para descuento o no bool aplicaDescuento = false; if (Convert.ToInt32(dr["aplicaDescuento"]) == 1) { aplicaDescuento = true; } //Obtengo instancia con la descripción y moneda asociada pago = new TipoPago((string)dr["descripcion"], moneda, aplicaDescuento); //Añado el pago a los disponibles disponibles.Add(pago); } //Cierro para prevenir errores. dr.Close(); return(disponibles); }
/// <summary> /// Agregar unidades del artículo en el inventario. Si no existe en la BBDD, retorna false. /// </summary> /// <param name="cantidad">Cantidad a añadir.</param> /// <returns></returns> public bool AgregarInventario(int cantidad) { int?id = this.Id; //Si el artículo no tiene id, no se le pueden agregar unidades. if (id == null) { return(false); } string query = "INSERT INTO c_articulos (fechaHora, idArticulo, cantidad) " + "VALUES( @FechaHora, @IdArticulo, @Cantidad )"; BDCon con = new BDCon(query); con.PasarParametros("FechaHora", DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss")); con.PasarParametros("IdArticulo", id); con.PasarParametros("IdArticulo", cantidad); //Ejecuta el comando y verifica la cantidad de registros afectados if (con.EjecutarComando() > 0) { return(true); } //Si no hubo registros por alguna razón, arroja false return(false); }
/// <summary> /// Registrar instancia de moneda en la base de datos. /// </summary> /// <returns></returns> public bool RegistraTipoPago() { //Si ya existe, no la creo y retorno true. if (ValidaTipoPago()) { return(true); } string query = "INSERT INTO c_tipopagos (descripcion,idMoneda,aplicaDescuento) " + "VALUES( @Descripcion, @IdMoneda, @AplicaDescuento )"; BDCon con = new BDCon(query); con.PasarParametros("Descripcion", this.descripcion); con.PasarParametros("IdMoneda", this.moneda.Id); int aplicaDescuento = 0; if (this.aplicaDescuento == true) { aplicaDescuento = 1; } con.PasarParametros("AplicaDescuento", aplicaDescuento); //Ejecuta el comando y verifica la cantidad de registros afectados if (con.EjecutarComando() > 0) { return(true); } //Si no hubo registros por alguna razón, arroja false return(false); }
/// <summary> /// Verifica la existencia de la instancia en la base de datos. /// </summary> /// <returns></returns> private bool ValidaTipoPago() { string query = "SELECT * FROM c_tipopagos WHERE " + "descripcion = @Descripcion AND " + "idMoneda = @IdMoneda"; BDCon con = new BDCon(query); con.PasarParametros("Descripcion", this.descripcion); con.PasarParametros("IdMoneda", this.moneda.Id); SQLiteDataReader dr = con.ComandoSqlite().ExecuteReader(); dr.Read(); //Si existe un tipo de pago con exactamente los mismos valores, //Se retorna verdadero. if (dr.HasRows) { dr.Close(); return(true); } dr.Close(); return(false); }
/// <summary> /// Verifica la existencia de la tasa en la base de datos. /// </summary> /// <returns></returns> private bool ValidarTasa() { string query = "SELECT * FROM c_tasa WHERE " + "tasaDolar = @TasaDolar AND " + "porcentajeEfectivo = @PorcentajeEfectivo AND " + "fecha = @Fecha AND " + "hora = @Hora"; BDCon con = new BDCon(query); con.PasarParametros("TasaDolar", tasaDolar); con.PasarParametros("PorcentajeEfectivo", porcentajeEfect); con.PasarParametros("Fecha", fecha); con.PasarParametros("Hora", hora); SQLiteDataReader dr = con.ComandoSqlite().ExecuteReader(); dr.Read(); //Si existe una tasa con exactamente los mismos valores, //Se retorna verdadero. if (dr.HasRows) { dr.Close(); return(true); } dr.Close(); return(false); }
public void CodigoTest() { BDCon con = new BDCon("SELECT @Efectivo as tipopago, @Monto as monto FROM c_tasa"); con.PasarParametros("Efectivo", "Aaacaa"); con.PasarParametros("Monto", "Bbbbbcb"); con.ConsultaSqlite(dgVentas); con.ConsultaSqlite(listIngresosMonedas); }
/// <summary> /// Consultar la última tasa registrada. /// </summary> /// <returns>Última tasa registrada.</returns> public static Tasa ConsultarTasa() { string query = "SELECT * FROM c_tasa ORDER BY id DESC LIMIT 1"; BDCon con = new BDCon(query); SQLiteDataReader dr = con.ComandoSqlite().ExecuteReader(); dr.Read(); Tasa tasa = new Tasa( Convert.ToDecimal(dr["tasaDolar"]), Convert.ToDecimal(dr["porcentajeEfectivo"]), Convert.ToString(dr["fecha"]), Convert.ToString(dr["hora"])); dr.Close(); return(tasa); }
/// <summary> /// Registra la instancia en la base de datos. /// </summary> /// <returns>Verdadero si logra hacer el registro</returns> public bool RegistrarTasa() { string query = "INSERT INTO c_tasa (tasaDolar,porcentajeEfectivo,fecha,hora) " + "VALUES( @TasaDolar, @PorcentajeEfectivo, @Fecha, @Hora )"; BDCon con = new BDCon(query); con.PasarParametros("TasaDolar", tasaDolar); con.PasarParametros("PorcentajeEfectivo", porcentajeEfect); con.PasarParametros("Fecha", fecha); con.PasarParametros("Hora", hora); //Ejecuta el comando y verifica la cantidad de registros afectados if (con.EjecutarComando() > 0) { return(true); } //Si no hubo registros por alguna razón, arroja false return(false); }
/// <summary> /// Registra los precios asociados al artículo en la base de datos. /// </summary> /// <param name="articulo">Artículo con precios inicializados.</param> /// <returns></returns> public void RegistraPreciosArticulo() { //Si el artículo no tiene id, entonces no ha sido registrado. int?id = this.Id; if (id == null) { //Retorno, indicando que no se pueden registrar sus precios. return; } decimal[] preciosRedondos = this.PreciosRedondos.ToArray(); decimal[] preciosCalculados = this.PreciosCalculados.ToArray(); TipoPago[] tiposPago = this.TiposDePago.ToArray(); #region Variables auxiliares string query; BDCon con; #endregion for (int i = 0; i < preciosRedondos.Length; i++) { //Construyo el query query = "INSERT INTO c_articulos_precios (idArticulo,idTipoPago,precioCalculado,precioRedondo) " + "VALUES( @IdArticulo, @IdTipoPago, @PrecioCalculado, @PrecioRedondo )"; con = new BDCon(query); //Id del artículo con.PasarParametros("IdArticulo", id); //Id del tipo de pago de turno en el ciclo con.PasarParametros("IdTipoPago", tiposPago[i].Id); //Precios correspondientes que se asociaron al tipo de pago en cuestión con.PasarParametros("PrecioCalculado", preciosCalculados[i]); con.PasarParametros("PrecioRedondo", preciosRedondos[i]); //Ejecuto el comando con.EjecutarComando(); } }
/// <summary> /// Devuelve instancia de moneda dado un id de la BBDD. Si no existe, retorna null. /// </summary> /// <param name="id">Id de la moneda</param> /// <returns></returns> public static Moneda MonedaById(int id) { Moneda moneda = null; //Construyo la consulta string query = "SELECT * FROM c_monedas WHERE id = @Id"; BDCon con = new BDCon(query); con.PasarParametros("Id", id); SQLiteDataReader dr = con.ComandoSqlite().ExecuteReader(); //Si existe el objeto consultado, lo instancio if (dr.Read()) { moneda = new Moneda((string)dr["descripcion"], (string)dr["simbolo"]); } //Cierro para prevenir errores dr.Close(); return(moneda); }
/// <summary> /// Consulta si un artículo está activo o inactivo. /// </summary> /// <param name="id">Id del artículo a consultar</param> /// <returns></returns> public static bool ActivoById(int id) { //Construyendo consulta string query = "SELECT * FROM c_articulos WHERE id = @Id AND activo = 1"; BDCon con = new BDCon(query); con.PasarParametros("Id", id); SQLiteDataReader dr = con.ComandoSqlite().ExecuteReader(); dr.Read(); //Si existe un artículo activo con dicha Id, //Se retorna verdadero. if (dr.HasRows) { dr.Close(); return(true); } dr.Close(); return(false); }