public bool Update(Producto producto)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando(@"update producto set 
                                        fecha_vencimiento = :fecha_vencimiento,
                                        descripcion = :descripcion,
                                        precio_compra = :precio_compra,
                                        precio_venta = :precio_venta,
                                        stock = :stock,
                                        stock_critico = :stock_critico,
                                        vigencia = :vigencia,
                                        id_tipo_producto = :id_tipo_producto,
                                        id_proveedor = :id_proveedor
                                    where codigo_barra = :codigo_barra");
                da.AgregarParametro(":fecha_vencimiento", producto.FechaVencimiento);
                da.AgregarParametro(":descripcion", producto.Descripcion);
                da.AgregarParametro(":precio_compra", producto.PrecioCompra, DbType.Int32);
                da.AgregarParametro(":precio_venta", producto.PrecioVenta, DbType.Int32);
                da.AgregarParametro(":stock", producto.Stock, DbType.Int32);
                da.AgregarParametro(":stock_critico", producto.StockCritico, DbType.Int32);
                da.AgregarParametro(":vigencia", producto.Vigencia ? "y" : "n");
                da.AgregarParametro(":id_tipo_producto", producto.IdTipo, DbType.Int32);
                da.AgregarParametro(":id_proveedor", producto.IdProveedor, DbType.Int32);
                da.AgregarParametro(":codigo_barra", producto.CodigoBarra);
                res = da.ExecuteNonQuery() > 0;
            }
            return(res);
        }
        private bool CambiarEstadoClienteDeudor(string rut_cliente, string id_usuario, bool nuevo_estado)
        {
            bool res = false;
            EstadoClienteDeudor estadoActual = ObtenerEstadoClienteDeudor(rut_cliente);

            #region Caso Autorizar
            if (nuevo_estado)
            {
                if (estadoActual == null) // Cliente no se encuentra registrado como deudor, se autoriza para deudas
                {
                    using (da = new DataAccess.DataAccess())
                    {
                        da.GenerarComando(@"insert into cliente_fiado(rut_cliente, usuario_autorizador, fecha_autorizacion)
                                            values (:rut, :usuario, :fecha)");
                        da.AgregarParametro(":rut", rut_cliente);
                        da.AgregarParametro(":usuario", id_usuario);
                        da.AgregarParametro(":fecha", DateTime.Now, DbType.Date);
                        res = da.ExecuteNonQuery() > 0;
                    }
                }
                else if (estadoActual.FechaBloqueo == null) // Cliente ya se encuentra registrado como deudor habilitado
                {
                    res = true;
                }
                else // Cliente se encuentra registrado como deudor no habilitado, no es posible desbloquear
                {
                    res = false;
                }
            }
            #endregion

            #region Caso Revocar
            else
            {
                if (estadoActual == null) // Cliente no se encuentra registrado como deudor, no se puede bloquear en forma preventiva
                {
                    res = false;
                }
                else if (estadoActual.FechaBloqueo != null) // Cliente se encuentra registrado como deudor habilitado, se revoca autorizacion
                {
                    using (da = new DataAccess.DataAccess())
                    {
                        da.GenerarComando(@"update cliente_fiado set usuario_bloqueador = :usuario, fecha_bloqueo = :fecha where rut_cliente = :rut)");
                        da.AgregarParametro(":usuario", id_usuario);
                        da.AgregarParametro(":fecha", DateTime.Now, DbType.Date);
                        da.AgregarParametro(":rut", rut_cliente);
                        res = da.ExecuteNonQuery() > 0;
                    }
                }
                else // Cliente se encuentra registrado como deudor no habilitado, ya fue bloqueado
                {
                    res = true;
                }
            }
            #endregion

            return(res);
        }
        private bool AsignarProductoABoleta(string codigo_barra, decimal nro_boleta)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando("@insert into boleta_producto(nro_boleta, codigo_barra) values (:nro_boleta, :cod_barra)");
                da.AgregarParametro(":nro_boleta", nro_boleta, DbType.Int64);
                da.AgregarParametro(":cod_barra", codigo_barra);
                res = da.ExecuteNonQuery() >= 0;
            }
            return(res);
        }
        public bool Abonar(Abono abono, decimal id_fiado)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando(@"insert into abono_fiado (id_fiado, id_abono, monto_abono, fecha_abono)
                                                values (:id_fiado, seq.id_abono.nextval, :monto, :fecha_abono");
                da.AgregarParametro(":id_fiado", id_fiado);
                da.AgregarParametro(":monto", abono.MontoAbono);
                da.AgregarParametro(":fecha_abono", abono.FechaAbono);
                res = da.ExecuteNonQuery() > 0;
            }
            return(res);
        }
        //Buscar una orden
        public Orden Read(decimal id_orden)
        {
            Orden orden = null;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando(@"select num_orden, fecha_orden, total_orden, fecha_recepcion, recibida, anulada, id_usuario from orden where num_orden = :orden");
                da.AgregarParametro(":orden", id_orden);
                IDataReader reader = da.ExecuteReader();
                while (reader.Read())
                {
                    string fecha_recepcion = reader["fecha_recepcion"].ToString();
                    orden = new Orden
                    {
                        IdOrden          = Convert.ToDecimal(reader["num_orden"].ToString()),
                        FechaOrden       = Convert.ToDateTime(reader["fecha_orden"].ToString()),
                        TotalOrden       = Convert.ToDecimal(reader["total_orden"].ToString()),
                        FechaRecepcion   = String.IsNullOrEmpty(fecha_recepcion) ? null : (DateTime?)Convert.ToDateTime(fecha_recepcion),
                        Recibida         = reader["recibida"].ToString() == "y",
                        Anulada          = reader["anulada"].ToString() == "y",
                        IdUsuario        = reader["id_usuario"].ToString(),
                        ProductosEnOrden = ObtenerProductosEnOrden(id_orden)
                    };
                }
            }
            return(orden);
        }
        //crear listado productos de la orden
        private bool AsociarProductoOrden(Pedido pedido, decimal id_orden)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando(@"insert into pedido_producto(codigo_barra, num_orden, cant_producto, subtotal)
                                    values (:cod_barra, :num_orden, :cant_producto, :subtotal");
                da.AgregarParametro(":cod_barra", pedido.CodigoBarra);
                da.AgregarParametro(":num_orden", id_orden);
                da.AgregarParametro(":cant_producto", pedido.Cantidad, DbType.Int32);
                da.AgregarParametro(":subtotal", pedido.SubTotal, DbType.Int64);
                res = da.ExecuteNonQuery() > 0;
            }
            return(res);
        }
        public List <Abono> ListarAbonosPorCliente(string rut)
        {
            List <Abono> lista = new List <Abono>();

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando(@"select ab.id_fiado, ab.id_abono, ab.monto_abono, ab.fecha_abono
                                    from abono_fiado ab
                                    inner join fiado fi on (fi.id_fiado = ab.id_fiado)
                                    where fi.rut_cliente = :rut");
                da.AgregarParametro(":rut", rut);
                IDataReader reader = da.ExecuteReader();
                while (reader.Read())
                {
                    lista.Add(new Abono
                    {
                        IdFiado    = Convert.ToDecimal(reader["id_fiado"].ToString()),
                        IdAbono    = Convert.ToDecimal(reader["id_abono"].ToString()),
                        FechaAbono = Convert.ToDateTime(reader["monto_abono"].ToString()),
                        MontoAbono = Convert.ToDecimal(reader["fecha_abono"].ToString())
                    });
                }
            }
            return(lista);
        }
        public Fiado Read(decimal id_fiado)
        {
            Fiado fiado = null;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando("select id_fiado, nro_boleta, rut_cliente, fecha_fiado, fecha_vencimiento, total_abonos, total_pago, esta_vencido from fiado where id_fiado = :id_fiado");
                da.AgregarParametro(":id_fiado", id_fiado);
                IDataReader reader = da.ExecuteReader();
                while (reader.Read())
                {
                    decimal nro_boleta  = Convert.ToDecimal(reader["nro_boleta"].ToString());
                    string  rut_cliente = reader["rut_cliente"].ToString();
                    fiado = new Fiado
                    {
                        IdFiado          = Convert.ToDecimal(reader["id_fiado"].ToString()),
                        FechaFiado       = Convert.ToDateTime(reader["fecha_fiado"].ToString()),
                        FechaVencimiento = Convert.ToDateTime(reader["fecha_vencimiento"].ToString()),
                        Boleta           = mantenedorBoletas.Read(Convert.ToDecimal(nro_boleta.ToString())),
                        TotalAbonos      = Convert.ToDecimal(reader["total_abonos"].ToString()),
                        TotalPago        = Convert.ToDecimal(reader["total_pago"].ToString()),
                        Vencido          = reader["esta_vencido"].ToString() == "y",
                        ClienteFiado     = mantenedorClientes.Read(rut_cliente),
                        AbonosRealizados = ListarAbonos(id_fiado)
                    };
                }
            }
            return(fiado);
        }
        public Producto Read(string codigo_barra)
        {
            Producto producto = null;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando(@"select codigo_barra, fecha_vencimiento, descripcion, precio_compra, precio_venta, stock, stock_critico, vigencia, pr.id_tipo_producto, fpr.id_familia, id_proveedor
                                    from producto pr
                                    inner join tipo_producto tpr on (pr.id_tipo_producto = tpr.id_tipo_producto)
                                    inner join familia_producto fpr on (tpr.id_familia = fpr.id_familia)
                                    where codigo_barra = :cod");
                da.AgregarParametro(":cod", codigo_barra);
                IDataReader reader = da.ExecuteReader();
                while (reader.Read())
                {
                    string fecha_vencimiento = reader["fecha_vencimiento"].ToString();
                    producto = new Producto
                    {
                        CodigoBarra      = reader["codigo_barra"].ToString(),
                        FechaVencimiento = String.IsNullOrEmpty(fecha_vencimiento) ? null : (DateTime?)Convert.ToDateTime(fecha_vencimiento),
                        Descripcion      = reader["descripcion"].ToString(),
                        PrecioCompra     = Convert.ToInt32(reader["precio_compra"].ToString()),
                        PrecioVenta      = Convert.ToInt32(reader["precio_venta"].ToString()),
                        Stock            = Convert.ToInt32(reader["stock"].ToString()),
                        StockCritico     = Convert.ToInt32(reader["stock_critico"].ToString()),
                        Vigencia         = reader["vigencia"].ToString() == "y",
                        IdTipo           = Convert.ToInt32(reader["id_tipo_producto"].ToString()),
                        IdFamilia        = Convert.ToInt32(reader["id_familia"].ToString()),
                        IdProveedor      = Convert.ToInt32(reader["id_proveedor"].ToString())
                    };
                }
            }
            return(producto);
        }
        public Boleta Read(decimal nro_boleta)
        {
            Boleta boleta = null;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando("select nro_boleta, fecha_venta, total_boleta, es_fiado, id_usuario, anulada from boleta where nro_boleta = :nro_boleta");
                da.AgregarParametro(":nro_boleta", nro_boleta);
                IDataReader reader = da.ExecuteReader();
                while (reader.Read())
                {
                    string fecha_venta = reader["fecha_venta"].ToString();
                    boleta = new Boleta
                    {
                        NroBoleta       = Convert.ToDecimal(reader["nro_boleta"].ToString()),
                        FechaVenta      = Convert.ToDateTime(fecha_venta),
                        TotalBoleta     = Convert.ToDecimal(reader["total_boleta"].ToString()),
                        BoletaFiada     = reader["es_fiado"].ToString() == "y",
                        Anulada         = reader["anulada"].ToString() == "y",
                        UsuarioVendedor = mantenedorUsuarios.Read(reader["id_usuario"].ToString()),
                        Productos       = ObtenerProductosDeBoleta(nro_boleta).Select(cod_producto => mantenedorProductos.Read(cod_producto)).ToList()
                    };
                }
            }
            return(boleta);
        }
예제 #11
0
        public Cliente Read(string rut)
        {
            Cliente cliente = null;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando(@"select rut_cliente, nombre_cliente, telefono, correo, direccion, autorizado_para_fiar, cl.id_comuna, pr.id_provincia, re.id_region
                                    from cliente cl
                                    inner join comuna co on (cl.id_comuna = co.id_comuna)
                                    inner join provincia pr on (co.id_provincia = pr.id_provincia)
                                    inner join region re on (pr.id_region = re.id_region)
                                    where rut_cliente = :rut");
                da.AgregarParametro(":rut", rut);
                IDataReader reader = da.ExecuteReader();
                while (reader.Read())
                {
                    cliente = new Cliente
                    {
                        RutCliente         = reader["rut_cliente"].ToString(),
                        NombreCliente      = reader["nombre_cliente"].ToString(),
                        Telefono           = reader["telefono"].ToString(),
                        Correo             = reader["correo"].ToString(),
                        Direccion          = reader["direccion"].ToString(),
                        AutorizadoParaFiar = reader["autorizado_para_fiar"].ToString() == "y",
                        IdComuna           = Convert.ToInt32(reader["id_comuna"].ToString()),
                        IdProvincia        = Convert.ToInt32(reader["id_provincia"].ToString()),
                        IdRegion           = Convert.ToInt32(reader["id_region"].ToString())
                    };
                }
            }
            return(cliente);
        }
        public EstadoClienteDeudor ObtenerEstadoClienteDeudor(string rut_cliente)
        {
            EstadoClienteDeudor estado = null;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando("select rut_cliente, usuario_autorizador, fecha_autorizacion, usuario_bloqueador, fecha_bloqueo from cliente_fiado where rut_cliente = :rut");
                da.AgregarParametro(":rut", rut_cliente);
                var reader = da.ExecuteReader();
                while (reader.Read())
                {
                    string fecha_bloqueo   = reader["fecha_bloqueo"].ToString();
                    string usuario_bloqueo = reader["usuario_bloqueador"].ToString();
                    estado = new EstadoClienteDeudor
                    {
                        ClienteDeudor      = mantenedorClientes.Read(reader["rut_cliente"].ToString()),
                        UsuarioAutorizador = mantenedorUsuarios.Read(reader["usuario_autorizador"].ToString()),
                        FechaAutorizado    = Convert.ToDateTime(reader["fecha_autorizacion"].ToString()),
                        UsuarioBloqueo     = String.IsNullOrEmpty(usuario_bloqueo) ? null : mantenedorUsuarios.Read(usuario_bloqueo),
                        FechaBloqueo       = String.IsNullOrEmpty(fecha_bloqueo) ? null : (DateTime?)Convert.ToDateTime(fecha_bloqueo)
                    };
                }
            }
            return(estado);
        }
예제 #13
0
        //crear orden pedido
        public bool Create(Orden orden)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando(@"insert into orden(num_orden, fecha_orden, total_orden, fecha_recepcion, recibida, anulada, id_usuario)
                                    values (seq_id_orden, :fecha_orden, :total_orden, null, 'n', 'n',:usuario)");
                da.AgregarParametro(":fecha_orden", orden.FechaOrden, DbType.Date);
                da.AgregarParametro(":total_orden", orden.TotalOrden, DbType.Int32);
                da.AgregarParametro(":fecha_recepcion", orden.FechaRecepcion, DbType.Date);
                da.AgregarParametro(":usuario", orden.IdUsuario, DbType.String);
                int resultado = da.ExecuteNonQuery();
                res = resultado >= 0;
            }
            return(res);
        }
        public bool Login(string id_usuario, string hash)
        {
            bool logueado = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando("select id_usuario, nombre_usuario, administrador, vigencia from usuario where id_usuario = :usuario and hash_contraseña = :hash and vigencia = 'y'");
                da.AgregarParametro(":usuario", id_usuario);
                da.AgregarParametro(":hash", hash);
                IDataReader reader = da.ExecuteReader();
                while (reader.Read())
                {
                    logueado = true;
                }
            }
            return(logueado);
        }
        public bool Create(Fiado fiado)
        {
            bool resFiado = false;

            using (da = new DataAccess.DataAccess())
            {
                decimal total_abono = fiado.AbonosRealizados.Sum(x => x.MontoAbono);
                da.GenerarComando(@"insert into fiado (id_fiado, nro_boleta, rut_cliente, fecha_fiado, fecha_vencimiento, total_abonos, total_pago, esta_vencido)
                                    values (seq_id_fiado.nextval, :nro_boleta, :rut_cliente, :fecha_fiado, :fecha_vencimiento, :total_abono, :total_pago, :vencido)
                                    returning id_fiado into :nuevo_id");
                da.AgregarParametro(":nro_boleta", fiado.Boleta.NroBoleta, DbType.Int32);
                da.AgregarParametro(":rut_cliente", fiado.ClienteFiado.RutCliente);
                da.AgregarParametro(":fecha_fiado", fiado.FechaFiado, DbType.Date);
                da.AgregarParametro(":fecha_vencimiento", fiado.FechaVencimiento, DbType.Date);
                da.AgregarParametro(":total_abono", total_abono, DbType.Int32);
                da.AgregarParametro(":total_pago", fiado.TotalPago, DbType.Int32);
                da.AgregarParametro(":vencido", fiado.Vencido ? "y" : "n");
                da.AgregarParametroOut(":nuevo_id", DbType.Decimal);
                resFiado = da.ExecuteNonQuery() > 0;
                decimal nuevo_id = Convert.ToDecimal(da.GetValorParametro(":nuevo_id"));
                if (nuevo_id > 0 && fiado.AbonosRealizados.Count > 0)
                {
                    foreach (Abono abono in fiado.AbonosRealizados)
                    {
                        Abonar(abono, nuevo_id);
                    }
                }
            }
            return(resFiado);
        }
        public bool Create(Usuario usuario)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando(@"insert into usuario(id_usuario, nombre_usuario, hash_contraseña, fecha_creacion, ultimo_cambio_contraseña, administrador, vigencia)
                                    values (:id_usuario, :nombre_usuario, :hash, sysdate, sysdate, :administrador, :vigencia)");
                da.AgregarParametro(":id_usuario", usuario.IdUsuario, DbType.String);
                da.AgregarParametro(":nombre_usuario", usuario.NombreUsuario, DbType.String);
                da.AgregarParametro(":hash", usuario.HashContraseña, DbType.String);
                da.AgregarParametro(":administrador", usuario.Administrador ? "y" : "n", DbType.String);
                da.AgregarParametro(":vigencia", usuario.Vigente ? "y" : "n", DbType.String);
                int resultado = da.ExecuteNonQuery();
                res = resultado > 0;
            }
            return(res);
        }
예제 #17
0
 public static void BorrarClientePrueba(string rut)
 {
     using (DataAccess.DataAccess da = new DataAccess.DataAccess())
     {
         da.GenerarComando("delete from cliente where rut_cliente = :rut");
         da.AgregarParametro(":rut", rut);
         da.ExecuteNonQuery();
     }
 }
        public bool Create(Boleta boleta)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando(@"insert into boleta(nro_boleta, fecha_venta, total_boleta, es_fiado, id_usuario, anulada)
                                    values (seq_nro_boleta.nextval, sysdate, :total_boleta, :es_fiado, :usuario, 'n')");
                da.AgregarParametro(":total_boleta", boleta.TotalBoleta, DbType.Int32);
                da.AgregarParametro(":es_fiado", boleta.BoletaFiada, DbType.String);
                da.AgregarParametro(":usuario", boleta.UsuarioVendedor, DbType.String);
                int resultado = da.ExecuteNonQuery();
                res = resultado >= 0;
                foreach (string cod_producto in boleta.Productos.Select(x => x.CodigoBarra))
                {
                    AsignarProductoABoleta(cod_producto, boleta.NroBoleta);
                }
            }
            return(res);
        }
예제 #19
0
        //crear listado productos de la orden
        public bool CreatePedido(List <Pedido> pedido)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                while (pedido.Read())
                {
                    da.GenerarComando(@"insert into pedido_producto(codigo_barra, num_orden, cant_producto, subtotal)
                                    values (:codigobarra, :numorden, :cantidad, :subtotal)");
                    da.AgregarParametro(":codigobarra", pedido.CodigoBarra, DbType.String);
                    da.AgregarParametro(":numorden", pedido.NumeroOrden, DbType.Int32);
                    da.AgregarParametro(":cantidad", pedido.cantidad, DbType.Int32);
                    da.AgregarParametro(":subtotal", pedido.SubTotal, DbType.Int32);
                    int resultado = da.ExecuteNonQuery();
                    res = resultado >= 0;
                }
            }
            return(res);
        }
 public static void BorrarUsuariosPrueba(List <string> ids)
 {
     foreach (string id in ids)
     {
         using (DataAccess.DataAccess da = new DataAccess.DataAccess())
         {
             da.GenerarComando("delete from usuario where id_usuario = :id");
             da.AgregarParametro(":id", id);
             da.ExecuteNonQuery();
         }
     }
 }
        public bool Delete(string codigo_barra)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando("delete from producto where codigo_barra = :cod");
                da.AgregarParametro(":cod", codigo_barra);
                res = da.ExecuteNonQuery() > 0;
            }
            return(res);
        }
        public bool Delete(string id_usuario)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando("delete from usuario where id_usuario = :usuario");
                da.AgregarParametro(":usuario", id_usuario);
                res = da.ExecuteNonQuery() > 0;
            }
            return(res);
        }
        public bool Anular(decimal nro_boleta)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando("update boleta set anulada = 'y' where nro_boleta = :nro_boleta");
                da.AgregarParametro(":nro_boleta", nro_boleta);
                res = da.ExecuteNonQuery() > 0;
            }
            return(res);
        }
        public bool Delete(int id_proveedor)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando("delete from proveedor where id_proveedor = :proveedor");
                da.AgregarParametro(":proveedor", id_proveedor, DbType.Int32);
                res = da.ExecuteNonQuery() > 0;
            }
            return(res);
        }
        public bool RecibirOrden(int num_orden)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando("update pedido_producto set recibida = 'y' where num_orden = :num_orden");
                da.AgregarParametro(":num_orden", num_orden);
                res = da.ExecuteNonQuery() > 0;
            }
            return(res);
        }
        //crear orden pedido
        public bool Create(Orden orden)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando(@"insert into orden(num_orden, fecha_orden, total_orden, fecha_recepcion, recibida, anulada, id_usuario)
                                    values (seq_id_orden.nextval, :fecha_orden, :total_orden, null, 'n', 'n', :usuario)
                                    returning num_orden into :nuevo_num");
                da.AgregarParametro(":fecha_orden", orden.FechaOrden, DbType.Date);
                da.AgregarParametro(":total_orden", orden.TotalOrden, DbType.Int64);
                da.AgregarParametro(":usuario", orden.IdUsuario, DbType.String);
                da.AgregarParametroOut(":nuevo_num", DbType.Int64);
                int     resultado = da.ExecuteNonQuery();
                decimal nuevo_num = Convert.ToDecimal(da.GetValorParametro(":nuevo_num"));
                foreach (var item in orden.ProductosEnOrden)
                {
                    AsociarProductoOrden(item, nuevo_num);
                }
                res = resultado > 0;
            }
            return(res);
        }
        private List <string> ObtenerProductosDeBoleta(decimal nro_boleta)
        {
            List <string> lista = new List <string>();

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando("select codigo_barra from boleta_producto where nro_boleta = :nro_boleta");
                da.AgregarParametro(":nro_boleta", nro_boleta);
                var reader = da.ExecuteReader();
                while (reader.Read())
                {
                    lista.Add(reader["codigo_barra"].ToString());
                }
            }
            return(lista);
        }
        //llenar cbx de provincia
        public List <Provincia> ListarProvincias(int id_region)
        {
            List <Provincia> list = new List <Provincia>();

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando(@"select id_provincia, nombre_provincia from provincia where id_region = :id_region ");
                da.AgregarParametro(":id_region", id_region, DbType.Int32);
                IDataReader reader = da.ExecuteReader();
                while (reader.Read())
                {
                    Provincia prov = new Provincia
                    {
                        IdProvincia     = Convert.ToInt32(reader["id_provincia"].ToString()),
                        NombreProvincia = reader["nombre_provincia"].ToString()
                    };
                    list.Add(prov);
                }
            }
            return(list);
        }
        //llenar cbx comuna
        public List <Comuna> ListarComunas(int id_provincia)
        {
            List <Comuna> list = new List <Comuna>();

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando(@"select id_comuna, nombre_comuna from comuna where id_provincia = :id_provincia");
                da.AgregarParametro(":id_provincia", id_provincia, DbType.Int32);
                IDataReader reader = da.ExecuteReader();
                while (reader.Read())
                {
                    Comuna com = new Comuna
                    {
                        IdComuna     = Convert.ToInt32(reader["id_comuna"].ToString()),
                        NombreComuna = reader["nombre_comuna"].ToString()
                    };
                    list.Add(com);
                }
            }
            return(list);
        }
        public bool Update(Proveedor proveedor)
        {
            bool res = false;

            using (da = new DataAccess.DataAccess())
            {
                da.GenerarComando("update proveedor set nombre_proveedor = :nombre_proveedor, telefono = :telefono, email = :email, id_comuna = :comuna, id_rubro = :rubro, vigencia = :vigencia where id_proveedor = :id_proveedor");
                da.AgregarParametro(":nombre_proveedor", proveedor.NombreProveedor);
                da.AgregarParametro(":telefono", proveedor.Telefono);
                da.AgregarParametro(":email", proveedor.Email);
                da.AgregarParametro(":direccion", proveedor.Direccion);
                da.AgregarParametro(":comuna", proveedor.Comuna, DbType.Int32);
                da.AgregarParametro(":rubro", proveedor.Rubro, DbType.Int32);
                da.AgregarParametro(":vigencia", proveedor.Vigencia ? "y" : "n");
                int resultado = da.ExecuteNonQuery();
                res = resultado >= 0;
            }
            return(res);
        }