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 qweb odoo. Mostrar todas las entradas
Mostrando las entradas con la etiqueta qweb odoo. Mostrar todas las entradas

jueves, 25 de junio de 2020

AƱadir Firmas en Reportes Qweb Odoo

Firmas en Reporte Qweb


    Es muy comĆŗn que algunos documentos puedan ser requeridos con firmas de autorización o responsables o la firma de la recepción del cliente en un AlbarĆ”n, esto es muy sencillo a continuación voy a emplear un ejemplo hecho en el reporte de Licitaciones:



<template id="report_purchaserequisitions_signatures" inherit_id="purchase_requisition.report_purchaserequisitions">
        <xpath expr="//div[@class='oe_structure'][2]" position="after">
           <div style="position:absolute;top:850px; page-break-inside: avoid;">
                <table border="0" style="border-collapse:collapse;color:000000;width:100%" cellpadding="3" cellspacing="3">
                   <tr>
                        <td class="text-center">
                            <strong style="font-size:12px;">Responsable</strong>
                        </td>
                          <td class="text-center">
                              <strong style="font-size:12px;">Autorizó</strong>
                          </td>
                    </tr>
                    <tr>
                         <td><br/></td>
                         <td><br/></td>
                     </tr>
                    <tr>
                        <td class="text-center">________________________</td>
                        <td class="text-center">________________________</td>
                    </tr>
                    
                     <tr>
                        <td class="text-center">
                            <strong style="font-size:12px;"><span t-field="o.user_id.partner_id"/></strong>
                        </td>
                        <td class="text-center">
                            <strong style="font-size:12px;"><span t-field="o.user_approved_id.partner_id"/></strong>
                        </td>
                     </tr>
                </table>
                        
            </div>
        </xpath>
    </template>

En el ejemplo anterior de autorización lo mas importante es mencionar que el campo user_approve_id es un campo añadido por medio de herencia de clases y este valor se ingresa al confirmar una Licitación.

El estilo empleado:


style="position:absolute;top:850px; page-break-inside: avoid;"

Tiene como función que las firmas aparezcan al final del documento

miƩrcoles, 19 de febrero de 2020

Debug en Plantillas Qweb

Debug Qweb en Odoo


Como en el desarrollo de modulos y aplicaciones en Odoo podemos también debuggear nuestras plantillas una practica que nos puede llegar a ser muy util para conocer el momento exacto donde se genera o ejecuta una sentencia, funcion o se manada a ejecutar metodos dentro de nuestro reporte, esto nos facilita la resolución de muchos errores.

Lo unico que necesitamos agregar dentro de nuestro reporte es:



<t t-debug="pdb"/>


Con  ello podremos utilizar dentro de nuestro Debug Python con el metodo set_trace(), habilitamos dentro de nuestro registro de eventos el parametro --log-level=debug y por ultimo solo queda depurar nuestra plantilla XML con pdb.

Odoo Qweb manejo de Ciclos

Loops o Ciclos con




QWeb en Odoo es muy util al momento de realizar o ejecutar funcionalidades como Reportes, Archivos XML etc. todo esto basado en plantillas, pero existen muchas funcionalidades muy utiles que nos pueden ayudar a mejorar el diseƱo de nuestros Reportes, de las cuales les vengo a hablar en este post y son:


  • as_first
  • as_last
  • as_index

t t-foreach="['A','B','C','D','E']" t-as="item">
    <p t-if="item_first">
        Inicio
    </p>
    <p>
        Indice <t t-esc="item_index"/> y resultado <t t-esc="item"/>
    </p>
    <p t-if="item_last">
        Fin
    </p>
</t>

El resultado seria:

Inicio
Indice 0 y resultado A
Indice 1 y resultado B
Indice 2 y resultado C
Indice 3 y resultado D
Indice 4 y resultado E
Fin

Podemos deducir que las palabras clave as_first indica el inicio del loop, as_index el recorrido de nuestro ciclo y as_end si es el ultimo valor de nuestra lista.


viernes, 3 de julio de 2015

Llamar funciones python desde Qweb Reports

Funciones Python desde Qweb Reports



    Qweb Reports el nuevo Reporteador para Odoo, ofrece muchas ventajas como lo ofrecĆ­a anteriormente RML, en ocaciones no podemos ejecutar directamente una operacion en Qweb o necesitamos tener un resultado de una funcion, esto es muy sencillo en RML, vamos a tomar como ejemplo las Facturas y voy a ejecutar un metodo desde el reporte Qweb, para calcular manualmente el total de un producto:


Qweb


<span  t-esc="line.subtotal_manual(line.price_unit,line.quantity)"/>

    Como podemos observar line es mi variable de iteracion para obtener los valores de invoice_lines, las lineas de Factura, para ejecutar un metodo llamado subtotal_manual. Este metodo que estamos utilizando no existe en el objecto account.invoice.line, asĆ­ que tendremos que crearlo.

Clases Python

# -*- encoding: utf-8 -*-
############################################################################
#    (c) 2015 German Ponce Dominguez
#    All Rights Reserved.
#    info skype: german_442 email: (german.ponce@outlook.com)
############################################################################

from openerp.osv import fields, osv
from openerp.tools.translate import _
from datetime import datetime, timedelta
from openerp import SUPERUSER_ID

class account_invoice_line(osv.osv):
    _name = 'account.invoice.line'
    _inherit ='account.invoice.line'
    _columns = {

        }

    _defaults = {
        }

    def subtotal_manual(self, price, qty):
        return price*qty

    En la clase python account_invoice_line, se aƱade el metodo que queremos ejecutar, esto sera variable de acuerdo al objecto en donde quieran ejecutar su funcion.