Programacion Interactiva

Descubre una Nueva y Poderosa Herramienta.

FrameWork de Nueva Generacion

Acceso a tu Informacion desde cualquier Dispositivo con Navegador.

Enfoque en el Backend

Frontend de forma facil con Odoo y XML.

Creacion de Verticales

Creacion de nuevas Verticales Conquistando nuevos Mercados.

Tu marca aqui mismo

Llega a miles de personas.

Publicidad

Mostrando las entradas con la etiqueta sql. Mostrar todas las entradas
Mostrando las entradas con la etiqueta sql. Mostrar todas las entradas

viernes, 27 de noviembre de 2015

Script SQL Autocorreccion de Margenes

Corrección de Margenes Negativos o erróneos a partir de SQL



update sale_order set margin = amount_untaxed-(select sum(sol.purchase_price*sol.product_uos_qty) 
   from sale_order_line as sol join sale_order as so on so.id = sol.order_id and so.id=sale_order.id)

miƩrcoles, 18 de noviembre de 2015

Actualizar campos a partir de una segunda Tabla en PostreSQL

Actualización entre Tablas PostgreSQL


Postgres es una herramienta super poderosa te permite manipular una infinidad de datos en tiempos muy cortos, aprovechando este administrador de bases de datos podemos actualizar registros a una velocidad superior de una tabla a otra con un query bastante sencillo, este ejemplo que les voy a compartir actualiza el campo Empresa de la tabla account_move a partir de la tabla account_move_line:

UPDATE account_move SET partner_id=account_move_line.partner_id FROM account_move_line 
WHERE account_move_line.move_id=account_move.id and account_move.partner_id is null 

jueves, 26 de junio de 2014

Utilizar un Servidor Independiente PostgreSQL para Odoo (OpenERP 8.0)


    En ocasiones una Instalación de Odoo (OpenERP) y un servidor de Base de Datos (PostgreSQL 9.3) en un solo servidor, no son suficientes cuando el numero de Usuarios del Sistema crece demasiado, las consultas suelen ser mas lentas y en ocasiones el servidor puede Crashear por la carga de informacion y los recursos limitados de tener un solo Servidor.

    PostgreSQL es un gestor de base de datos que permite conexiones remotas, esta ventaja la podemos utilizar para tener nuestro propio servidor dedicado, unica y exclusivamente para el manejo de la Informacion, ahora como podemos tener 2 servidores para estos 2 Procesos.

miƩrcoles, 5 de febrero de 2014

Crear Reportes Jasper Reports con Conexion a Base de Datos en Odoo (OpenERP 8.0)


Creando Query SQL para Generar un Reporte

Centered Popup
    Para crear Reportes en Jasper Reports y retomando los Post Anteriores, tenemos 2 Opciones una de ellas es haciendo conexion directa a la Base de Datos y la Otra generando un archivo XML, en este post vamos a conocer como generar un reporte utilizando un Query.

01. Lo primero y mas importante es tener instalado el Modulo Jasper Reports en Nuesta Base OPENERP y tambien tener instalado el JDK de Oracle ó en su defecto el OpenJDK.


02. Abrimos el iReport y Creamos una Nueva Conexión:


miƩrcoles, 8 de enero de 2014

MƩtodos ORM BƔsicos para Programar Modulos en Odoo (OpenERP)

MƩtodos ORM bƔsicos (Crear, Buscar, Leer, Actualizar y Borrar)

MƩtodo create

Sintaxis

create (cr, uid, values, context=None)

Crea un nuevo registro con los valores especificados. ParƔmetros especƭficos:

values: Diccionario con los valores de los campos para el nuevo registro.

Devuelve el id del registro creado. Puede generar los siguientes errores:

AccessError: Si el usuario no tiene permisos de escritura en el objeto solicitado, o si el usuario intenta
ignorar las reglas de acceso para crear el objeto solicitado.

ValidateError: Si el usuario intenta introducir un valor invƔlido para un campo que no estƔ en la
selección.

UserError: Si se crease un bucle en una estructura de objetos jerÔrquica como resultado de la operación (como establecer un objeto como su propio padre).

Por ejemplo para crear un producto tendriamos que generar el diccionario con los valores necesarios, principalmente los que son requeridos por el Modelo:

product_obj = self.pool.get('product.product')

product_vals = {
                         'name': 'Producto X',
                         'type': 'product' ,
                         'list_price': 45.00,
                         'procure_method': 'make_to_stock',
                         }

product_create_id = product_obj.create(cr, uid, product_vals, context=None)

lunes, 6 de enero de 2014

INSTALACION DE OPENERP 7.0 EN UBUNTU, UBUNTU SERVER, 12.X y 13.X


OpenERP Logo
Que tal buenas tardes a todos en este tutorial enseƱare como instalar OpenERP en Ubuntu 12.04, aplica tambien para 12.10 y otras distribuciones de Linux como Debian, Linux Mint, entre otras.....

Si alguno no sabe que es OpenERP o un ERP aqui esta el concepto:

"OpenERP es un conjunto de soluciones integradas para gestión empresarial.
OpenERP automatiza y simplifica los procesos de negocio con la cadena de suministro, con la cadena logĆ­stica, con la gestión de los clientes, con la lógica financiera, con los recursos humanos de la empresa... y  definitiva con todas y cada una de las Ć”reas inherentes a cualquier modelo de negocio. Bajo licencia libre, multiplataforma y con posibilidad de uso bien mediante interfaz web o aplicación de escritorio, la información y la gestión empresarial siempre estĆ”n accesibles desde cualquier lugar."

Realizar Respaldo y Restauración Base de Datos de OpenERP 7.0 desde Terminal o Linea de Comandos Utilizando PostgreSQL 9.1 y 9.2

Que tal muy buenas tardes en este tutorial explicaremos como poder realizar un backup o respaldo y restauracion de nuestra base de datos de openerp con postgresql. Antes que nada utilzaremos el comando pg_dump podemos informanos un poco mas en el siguiente enlace:

  http://www.postgresql.org/docs/9.1/static/app-pgdump.html

 Para realizar un respaldo o tambiĆ©n conocido como backup de nuestras base de datos de OpenERP mediante postgrest mediante terminal ejecutaremos el siguiente comando en donde especificaremos la base de datos a restaurar en este caso se nombro TMS, el usuario despues de la letra -U en este caso mi usuario de postgres relacionado con openerp se nombro durante mi instalacion como openerp70, en la letra -h definimos el servidor de nuestra instalacion de openerp en este caso ejecutamos el comando localmente asi que nuestro servidor local por defecto seria localhost, despues insertamos el puerto que utiliza nuestro servicio despues de la leta -p en este caso por defecto utiliza openerp el puerto 5432 y por ultimo especificamos la ruta donde guardara el archivo de restauracion de nuestra base de datos en este caso la ruta de utilizacion fue /opt/openerp y de ahĆ­ el nombre con el que se guardara nuestro respaldo en este caso el nombre utilizado es dbbackup tambien podemos aƱadir que se comprima nuestra base de datos agregandole -Z y un numero de compresion de archivos que va del rango 1 a 9, el numero 9 seria la compresion maxima de un archivo, al fina de la ruta solo se le agrega .gz a tu backup y listo!!!!

 En este caso lo realizare sin la compresion, quedando asi el siguiente comando: pg_dump TMS -Fp -U openerp70 -h localhost -p 5432 > /opt/openerp/dbbackup

  Nota: El comando pg_dump se ejecuta fuera del superusuario de postgres...

Agregar nuevos campos en formularios OpenERP 7 sin necesidad de crear modulos

AGREGAR CAMPOS EN PEDIDO DE VENTA

     OpenERP tiene la facilidad y flexibilidad de poder agregarle nuevos campos a cualquier formulario de cualquier modulo directamente en el servicio sin necesidad de crear un modulo que realice esto, esto es muy eficiente y de mucha ayuda al momento de implementar OpenERP, ya que en ocasiones los campos que contienen los modulo no satisfagan nuestras necesidades, por ejemplo en pedido de venta necesitamos un nuevo campo denominado detalles de la venta este campo contendra hasta 200 caracteres para realizar esto realizaremos lo siguiente:

Entramos a OpenERP mediante nuestro navegador web y nos dirigirnos a la siguiente ruta:

Configuración --> Personalizacion --> Estructura de la Base de Datos --> Modelos



Campos Funcionales con OpenERP

En OpenERP un campo funcional es un campo cuyo valor no sera definido por el usuario sino el resultado de una funcion (estos campos no se guardan en base de datos ). En ocasiones, para aumentar la velocidad de consulta de OpenERP y facilitar las bĆŗsquedas, los campos funcionales tambiĆ©n pueden ser guardados en la base de datos aunque siempre son calculados/actualizados por una o varias funciones y no por el usuario
.
La estructura de un campo funcional es la Siguiente:
fields.function(fnct, arg=None, fnct_inv=None, fnct_inv_arg=None, type="float, fnct_search=None, obj=None, method=False, store=False, multi=False,...)

Desarrollo de modulos para OpenERP 6.1, 7.0, 8.0

El desarrollo de modulos en OpenERP esta basado en el modelo MVC (Modelo Vista Controlador) y  ORM como su mapeo relacional de objetos, utilizando Python como lenguaje de programacion base y XML para poder generar las vistas de nuestro modulo, PostgreSQL como nuestro gestor de bases de datos, para programar modulos en OpenERP, no se necesita ser un experto en Python, simplemente con entender la base de Python, el manejo de las listas, tuplas y diccionarios y la definicion de funciones.
Para poder desarrollar modulos para OpenERP es necesario conocer un poco sobre el ORM ya que OpenERP tiene sus propias reglas para el desarrollo de sus modulos, una estructura necesaria para que nuestro modulo pueda ser instalado dentro de nuestro OpenERP, para el manejo de nuestras versiones de OpenERP utilizamos Launchpad (https://launchpad.net/) como sitio web y aplicacion web para poder mantener el versionamiento de nuestro modulo o modulos en desarrollo, y asi poder cooperar con la comunidad de software libre.
El siguiente video es desarrollado por el Ing. Israel Cruz Argil donde se trata de mostrar el desarrollo de un modulo OpenERP tocando algunos de los puntos anteriores:

Si necesitan mas informacion sobre etiquetas de XML para las estructuras de vistas para nuestro modulo visiten: http://doc.openerp.com/v6.1/developer/index.html#book-develop-link

jueves, 21 de noviembre de 2013

Herencia de Vistas y Objetos en OpenERP 7.0 para Agregar Campos en Formularios

OpenERP al utilizar Python como lenguaje de programación, obtiene la caracterĆ­sticas como la programación orientada a objetos y por lo tanto podemos hacer uso de la Herencia para modificar, extender, utilizar mĆ©todos, clases, sin necesidad de crear un metodo nuevamente.
Existen diferentes tipos de herencia en OpenERP pueden leer un poco mas sobre herencia en el enlace: http://doc.openerp.com/v6.0//developer/2_5_Objects_Fields_Methods/object_inherit.html
En este tutorial explicare como crear un modulo en OpenERP para extender nuestro objeto y modificar a nuestras necesidades los objetos de OpenERP, anteriormente se explico como agregar campos en formularios directamente en OpenERP, pero OpenERP version 7.0 tiene algunos problemas si queremos realizar cambios de esta manera, ademas de que al actualizar cualquier modulo que modificamos se eliminan los cambios realizados, para evitar esto creamos un modulo por separado que herede los objetos que queremos extender y asi poder instalar nuestro modulo cada ves que sea necesario sin afectar al Sistema directamente y de una manera mas profesional manejar nuestras clases.