/**
         * Consulta todos los registros de la tabla
         * @param FACTURA obj
         * @return Retorna la lista de los registros en la tabla
         */
        public FACTURA[] listarFACTURA()
        {
            FACTURA[]      result = null;
            List <FACTURA> lista  = null;

            try
            {
                FACTURADao dao = new FACTURADao();
                conn  = conexion.conection();
                lista = dao.loadAll(conn);
                if (lista != null && lista.Count > 0)
                {
                    result = lista.ToArray();
                }
            }
            catch (Exception e)
            {
                result = null;
            } finally {
                if (conn != null && conn.State == System.Data.ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return(result);
        }
        /**
         * Busca el primer registro que coincida con los datos enviados
         * @param FACTURA obj
         * @return Retorna el mismo objeto pero con los datos consultados
         */
        public FACTURA buscarPrimeroFACTURA(FACTURA obj)
        {
            List <FACTURA> lista = null;

            try
            {
                FACTURADao dao = new FACTURADao();
                conn  = conexion.conection();
                lista = dao.search(conn, obj);
                if (lista != null && lista.Count > 0)
                {
                    obj = (FACTURA)lista[0];
                }
                else
                {
                    obj.ID = -1;
                }
            }
            catch (Exception e)
            {
                obj.ID = -1;
            } finally {
                if (conn != null && conn.State == System.Data.ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return(obj);
        }
        /**
         * Elimina un registro de la tabla
         * @param FACTURA obj
         * @return Retorna un boolean indicando si se realizo o no la operacion
         */
        public bool eliminarFACTURA(FACTURA obj)
        {
            bool resultado;

            resultado = false;
            try
            {
                FACTURADao dao = new FACTURADao();
                conn = conexion.conection();
                dao.delete(conn, obj);
                resultado = true;
            }
            catch (Exception e)
            {
                resultado = false;
            } finally {
                if (conn != null && conn.State == System.Data.ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return(resultado);
        }
        /**
         * Inserta nuevo registro en la tabla
         * @param FACTURA obj
         * @return Retorna el mismo objeto pero con la llave primaria configurada
         */
        public FACTURA crearFACTURA(FACTURA obj)
        {
            List <FACTURA> lista = null;

            try
            {
                FACTURADao dao = new FACTURADao();
                conn = conexion.conection();
                dao.create(conn, obj);
                //verificar existencia
                FACTURA objNew = new FACTURA();
                objNew.DISPONIBLE        = obj.DISPONIBLE;
                objNew.ID_FACTURA_ESTADO = obj.ID_FACTURA_ESTADO;
                objNew.ID_LIQUIDACION    = obj.ID_LIQUIDACION;
                objNew.NUMERO_FACTURA    = obj.NUMERO_FACTURA;
                lista = dao.search(conn, obj);
                if (lista != null && lista.Count > 0)
                {
                    obj = (FACTURA)lista[0];
                }
                else
                {
                    obj.ID = -1;
                }
            }
            catch (Exception e)
            {
                obj.ID = -1;
            } finally {
                if (conn != null && conn.State == System.Data.ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return(obj);
        }