Questo sito utilizza cookie per le proprie funzionalità e per inviarti pubblicità e servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.

Accedendo al link http://www.odoo-italia.org/index.php/home/cookie-policy puoi leggere in dettaglio le modalità di trattamento dei cookie da parte dell'Associazione Odoo Italia.

Benvenuto, Ospite
Nome utente: Password: Ricordami

ARGOMENTO: creare modulo che genera pdf di abbonamento

creare modulo che genera pdf di abbonamento 1 Anno 9 Mesi fa #27959

  • ndrini
  • Avatar di ndrini
  • Offline
  • Gold Boarder
  • Messaggi: 291
  • Ringraziamenti ricevuti 22
  • Karma: 0
Non so se la sezione migliore sia report o moduli, comunque...

Posso agevolmente far stampare un pdf che prende i dati di un abbonamento e li formatta in un file qweb.
Passi:
  • creo una vista
  • creo un id_esterno per la vista
  • creo un modello qweb
  • lego vista e qweb
  • metto il link al print con action binding

Non trovo il filo per mettere tutto questo in un modulo!
:type:

A grandi linee:


definisco una funzione in model.py che lanci la stampa
def print_contract(self):
???

a questa ci arrivo da un link al menu a tendina (print) che scrivo in un xml (view.xml)
 <act_window id="print_contract_menu"
            multi="True"
            key2="client_print_multi" name="print the contract"
            res_model="account.analytics.account" src_model="object.object"
            view_mode="form" target="new" view_type="form" /

oppure
<report
    id="print_contract_menu"
    string="print the contract"
    model="account.analytics.account"
    report_type="qweb-pdf"
    file="purchase.order.file"               ???
    name="purchase.order.report"      ???
    menu="True"
/>

Boh.

Grazie per ogni contributo possa arrivare.

Andrea
Ultima modifica: 1 Anno 9 Mesi fa da ndrini.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

creare modulo che genera pdf di abbonamento 1 Anno 9 Mesi fa #27961

  • Antoniov
  • Avatar di Antoniov
  • Online
  • Administrator
  • Messaggi: 1555
  • Ringraziamenti ricevuti 283
  • Karma: -115
Se ho capito di cosa hai bisogno, a titolo di esempio puoi dare un'occhiata qui
github.com/zeroincombenze/l10n-italy-sup..._invoice_multireport

Questo è un modulo che estende la funzionalità di stampa fattura sulla 8.0 permettendo la stampa di report diversi.
Puoi capire come ingaggiare la richiesta di stampa e quali parametri.
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo. - Presidente eletto dell'associazione
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

creare modulo che genera pdf di abbonamento 1 Anno 9 Mesi fa #27972

  • ndrini
  • Avatar di ndrini
  • Offline
  • Gold Boarder
  • Messaggi: 291
  • Ringraziamenti ricevuti 22
  • Karma: 0
Antoniov ha scritto:
Se ho capito di cosa hai bisogno, a titolo di esempio puoi dare un'occhiata qui
github.com/zeroincombenze/l10n-italy-sup..._invoice_multireport

Questo è un modulo che estende la funzionalità di stampa fattura sulla 8.0 permettendo la stampa di report diversi.
Puoi capire come ingaggiare la richiesta di stampa e quali parametri.

Perfetto.
Vediamo se posso copiare a man bassa.
;)
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

creare modulo che genera pdf di abbonamento 1 Anno 9 Mesi fa #27981

  • ndrini
  • Avatar di ndrini
  • Offline
  • Gold Boarder
  • Messaggi: 291
  • Ringraziamenti ricevuti 22
  • Karma: 0
Dalla documentazione ufficiale (odoo 8).
Servono solo due cose:
il Report template (cioè il qweb che dice come fare il report) ed l'azione
il "ir.actions.report.xml", che genera la creazione del report.

Vedendo un esempio che funziona, la stampa di un ordine di vendita (in odoo/addons/sale)
ci sono effettivamente solo questi due, nessun ulteriore file in python è necessario (verifica con
ca@A:~$ grep -r render_html /home/odoo/addons/sale che non trova niente)

Nel report template, i.e. il model qweb in /odoo/addons/sale/views/report_saleorder.xml, ci sono il documento vero e proprio (report_saleorder_document) ed il modello che garantisce la traduzione (report_saleorder) richiamato originariamente dall’azione.
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="report_saleorder_document">
    <t t-call="report.external_layout">
        <div class="page">
...
<template id="report_saleorder">
    <t t-call="report.html_container">
        <t t-foreach="doc_ids" t-as="doc_id">
            <t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'sale.report_saleorder_document')"/>
        </t>
    </t>
</template>


l’azione in /odoo/addons/sale/ Report Actions (ir.actions.report.xml)
che usa la scorciatoia del tag report
<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <report 
            id="report_sale_order"
            string="Quotation / Order"
            model="sale.order" 
            report_type="qweb-pdf"
            file="sale.report_saleorder" 
            name="sale.report_saleorder" 
        />
    </data>
</openerp>

Purtroppo non riesco a replicarlo, cioè non riesco a far creare, con gli abbonamenti, una stampa dei contratti, con questo codice:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <report 
            id="report_contract_pdf"
            string="print contract"
            model="account.analytic.account"  
            report_type="qweb-pdf"
            name="account.analytic.account.report_contract"
        />
    </data>
</openerp>

E neppure con name="analytic.report_contract"

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <template id="report_contract_document">
            <t t-call="report.external_layout">
                <div class="page">
                   <h1>hola</h1>
                </div>
            </t>
        </template>

        <template id="report_contract">
            <t t-call="report.html_container">
                <t t-foreach="doc_ids" t-as="doc_id">
                    <t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'sale.report_contract_document')"/>
                </t>
            </t>
        </template>
    </data>
</openerp>
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

creare modulo che genera pdf di abbonamento 1 Anno 9 Mesi fa #27985

  • gigidn
  • Avatar di gigidn
  • Offline
  • Platinum Boarder
  • Messaggi: 1925
  • Ringraziamenti ricevuti 446
  • Karma: 22
Il name nella sezione reporto deve essere:

nomemodulo.id_esterno_template

Puoi evitare nomemodulo se il template è definito localmente nel modulo in cui definisci il report.

<report> e <tamplate> son il minimo che ti serve ... il report verrà aggiunto al bottone print del modello a cui si riferisce.

Le situazioni per le quali è necessari scrivere delle funzioni python riguardano il render complesso con oggetti esterni allo specifico modello a cui vai ad agganciare il report.
@KTec
www.ktec.it
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Ringraziano per il messaggio: ndrini

creare modulo che genera pdf di abbonamento 1 Anno 9 Mesi fa #27996

  • ndrini
  • Avatar di ndrini
  • Offline
  • Gold Boarder
  • Messaggi: 291
  • Ringraziamenti ricevuti 22
  • Karma: 0
gigidn ha scritto:
Il name nella sezione reporto deve essere:
nomemodulo.id_esterno_template

Ma come ho fatto a non farci caso!!!
:slaphead:

Grazie

Andrea
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Tempo creazione pagina: 0.142 secondi

Odoo Italia Associazione - C.F: 94200470485 - Sede: Viale dei Cadorna, 83 - Firenze - Italy

Protected by R Antispam