Skip to Content
Odoo Menu
  • Prijavi
  • Try it free
  • Aplikacije
    Finance
    • Knjigovodstvo
    • Obračun
    • Stroški
    • Spreadsheet (BI)
    • Dokumenti
    • Podpisovanje
    Prodaja
    • CRM
    • Prodaja
    • POS Shop
    • POS Restaurant
    • Naročnine
    • Najem
    Spletne strani
    • Website Builder
    • Spletna trgovina
    • Blog
    • Forum
    • Pogovor v živo
    • eUčenje
    Dobavna veriga
    • Zaloga
    • Proizvodnja
    • PLM
    • Nabava
    • Vzdrževanje
    • Kakovost
    Kadri
    • Kadri
    • Kadrovanje
    • Odsotnost
    • Ocenjevanja
    • Priporočila
    • Vozni park
    Marketing
    • Družbeno Trženje
    • Email Marketing
    • SMS Marketing
    • Dogodki
    • Avtomatizacija trženja
    • Ankete
    Storitve
    • Projekt
    • Časovnice
    • Storitve na terenu
    • Služba za pomoč
    • Načrtovanje
    • Termini
    Produktivnost
    • Razprave
    • Artificial Intelligence
    • IoT
    • Voip
    • Znanje
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industrije
    Trgovina na drobno
    • Book Store
    • Trgovina z oblačili
    • Trgovina s pohištvom
    • Grocery Store
    • Trgovina s strojno opremo računalnikov
    • Trgovina z igračami
    Food & Hospitality
    • Bar and Pub
    • Restavracija
    • Hitra hrana
    • Guest House
    • Beverage Distributor
    • Hotel
    Nepremičnine
    • Real Estate Agency
    • Arhitekturno podjetje
    • Gradbeništvo
    • Property Management
    • Vrtnarjenje
    • Združenje lastnikov nepremičnin
    Svetovanje
    • Računovodsko podjetje
    • Odoo Partner
    • Marketinška agencija
    • Law firm
    • Pridobivanje talentov
    • Audit & Certification
    Proizvodnja
    • Tekstil
    • Metal
    • Pohištvo
    • Hrana
    • Brewery
    • Poslovna darila
    Health & Fitness
    • Športni klub
    • Trgovina z očali
    • Fitnes center
    • Wellness Practitioners
    • Lekarna
    • Frizerski salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Sistemi sončne energije
    • Izdelovalec čevljev
    • Čistilne storitve
    • HVAC Services
    Ostali
    • Neprofitna organizacija
    • Agencija za okolje
    • Najem oglasnih panojev
    • Fotografija
    • Najem koles
    • Prodajalec programske opreme
    Browse all Industries
  • Skupnost
    Learn
    • Tutorials
    • Dokumentacija
    • Certifikati
    • Šolanje
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Prenesi
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Dogodki
    • Prevodi
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
    • Meet an advisor
    • Implementation Services
    • Sklici kupca
    • Podpora
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Get a demo
  • Določanje cen
  • Pomoč
You need to be registered to interact with the community.
All Posts People Badges
Ključne besede (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Ključne besede (View all)
odoo accounting v14 pos v15
About this forum
Pomoč

Missing products in zpl report from wizard

Naroči se

Get notified when there's activity on this post

This question has been flagged
actiondevelopmentwizard
1821 Prikazi
Avatar
Ramón Reyna García

Hi!, 


Im trying to create a zpl report by giving products from an delivery move, but when i print the report the products are empty, my wizard have a grid where i write the quantity of labels and the quantity of each product, but when the zpl prints it doesnt contain the products, i read about transient models and saw that the many2one fields are not maintained when I create the zpl, what can i do?

This is the code to my wizard:

from odoo import models, fields, api


class WizardOutLabel(models.Model):

    _name = "out.label.wizard"

    _description = "Wizard para etiquetas de salida"


    transient_out_label_id = fields.One2many(

        'out.label', 'wizard_id', string="Wizard ID"

    )


    stock_picking_id = fields.Many2one('stock.picking', string="Movimiento de salida")


    @api.model

    def default_get(self, fields):

        res = super().default_get(fields)

        picking_id = self.env.context.get('default_stock_picking_id')

        if picking_id:

            picking = self.env['stock.picking'].browse(picking_id)

            lines = []

            for move in picking.move_ids_without_package:

                lines.append((0, 0, {

                    'product_id': move.product_id.product_tmpl_id.id,

                    'product_qty': move.product_uom_qty,

                    'labels_qty': 1,

                    'stock_picking_id': picking.id,

                    'product_name': move.product_id.display_name,

                }))

            res['transient_out_label_id'] = lines

            res['stock_picking_id'] = picking.id

        return res


    def action_confirm(self):

        report_action = self.env.ref('inventory_labels.download_out_label_report_zpl').report_action(self)

        report_action['close_on_report_download'] = True

        return report_action

Then i have my grid for products in other model:

from odoo import models, fields, api


class TransientOutLabel(models.Model):

    _name = "out.label"

    _description = "Utilizado para etiquetas de salida"


    wizard_id = fields.Many2one('out.label.wizard', string="Wizard")


    product_id = fields.Many2one(

        'product.template',

        string="Producto"

    )


    product_name = fields.Char(string="Nombre del producto")


    stock_picking_id = fields.Many2one('stock.picking', string="Movimiento de salida")


    labels_qty = fields.Integer(string="Cantidad de etiquetas")


    product_qty = fields.Float(string="Cantidad de producto")


my code xml is:

<data>

    <record id="view_out_labels_wizard_form" model="ir.ui.view">

        <field name="name">out.labels.wizard.list</field>

        <field name="model">out.label.wizard</field>

        <field name="arch" type="xml">

            <form string="Etiquetas de salida">

                <field name="transient_out_label_id">

                <tree editable="bottom" create="0" delete="0">

                    <field name="product_id" readonly="1"/>

                    <field name="product_name" readonly="1"/>

                    <field name="labels_qty"/>

                    <field name="product_qty"/>

                </tree>

            </field>

                <footer>

                    <button name="action_confirm" type="object" string="Confirmar" class="btn-primary"/>

                    <button string="Cancelar" class="btn-secondary" special="cancel"/>

                </footer>

            </form>

        </field>

    </record>


    <record id="out_label_form_view_inherit_wizard" model="ir.ui.view">

        <field name="name">stock.picking.form.inherit.wizard</field>

        <field name="model">stock.picking</field>

        <field name="inherit_id" ref="stock.view_picking_form"/>

        <field name="arch" type="xml">

            <xpath expr="//button[@name='do_print_picking']" position="replace">

                <button string="Imprimir etiquetas" name="%(open_out_label_wizard)d" type="action"/>

            </xpath>

        </field>

    </record>


    <record id="product_out_label_zpl_report" model="ir.ui.view">

    <field name="name">out_label.zpl_report</field>

    <field name="type">qweb</field>

    <field name="arch" type="xml">

        <t t-name="inventory_labels.product_out_label_zpl_report">

    <t t-foreach="docs" t-as="wizard">

        <t t-foreach="wizard.transient_out_label_id" t-as="line">

            <t t-foreach="range(line.labels_qty)" t-as="i">

<t t-set="clean_name"

    t-value="(line.product_name or '').translate({

        ord('á'): 'a', ord('é'): 'e', ord('í'): 'i', ord('ó'): 'o', ord('ú'): 'u',

        ord('Á'): 'A', ord('É'): 'E', ord('Í'): 'I', ord('Ó'): 'O', ord('Ú'): 'U',

        ord('ñ'): 'n', ord('Ñ'): 'N'

    }).strip()"/>


<t t-if="len(clean_name) &lt;= 48">

^XA

^FO50,50^A0N,30,30^FDProducto: <t t-esc="line.product_id.name"/>^FS

^FO50,95^A0N,30,30^FDCantidad: <t t-esc="line.product_qty"/>^FS

^XZ

</t>

<t t-else="">

^XA

^FO50,50^A0N,30,30^FDProducto: <t t-esc="clean_name[:48]"/>^FS

^FO50,85^A0N,30,30^FD<t t-esc="clean_name[48:]"/>^FS

^FO50,140^A0N,30,30^FDCantidad: <t t-esc="line.product_qty"/>^FS

^XZ

</t>

            </t>

        </t>

    </t>

</t>



    </field>

</record>



</data>


and my actions:

<record id="open_out_label_wizard" model="ir.actions.act_window">

        <field name="name">Etiquetas de salida de producto</field>

        <field name="res_model">out.label.wizard</field>

        <field name="view_mode">form</field>

        <field name="target">new</field>

        <field name="context">{'default_stock_picking_id': active_id}</field>

    </record>


    <record id="download_out_label_report_zpl" model="ir.actions.report">

        <field name="name">Etiquetas de salida de producto</field>

        <field name="model">out.label.wizard</field>

        <field name="report_type">qweb-text</field>

        <field name="report_name">inventory_labels.product_out_label_zpl_report</field>

    </record>

0
Avatar
Opusti
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Prijavi
Related Posts Odgovori Prikazi Aktivnost
How can I apply update access (ACL) on a Purchase Order? Because after creating the PO, it goes into read-only mode.
action development
Avatar
Avatar
1
apr. 26
761
¿Cómo llamar a BoA desde celular?
action development
Avatar
0
nov. 25
2
Problem with opening full composer in send message
action wizard
Avatar
0
jan. 25
3297
Basic wizard help with multiple object types
action wizard
Avatar
0
mar. 15
6171
Wizard doesn't show up in selection more list view
action wizard
Avatar
1
mar. 15
7383
Community
  • Tutorials
  • Dokumentacija
  • Forum
Open Source
  • Prenesi
  • Github
  • Runbot
  • Prevodi
Services
  • Odoo.sh Hosting
  • Podpora
  • Nadgradnja
  • Custom Developments
  • Izobraževanje
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Sredstva blagovne znamke
  • Kontakt
  • Zaposlitve
  • Dogodki
  • Podcast
  • Blog
  • Stranke
  • Pravno • Zasebnost
  • Varnost
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk Slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now