Italy mailing list archives

italy@odoo-community.org

Avatar

Re: Performance DDT e scelta prodotti in Odoo10

by
Link IT SpA, Marco Di Francesco
- 08/03/2019 12:56:43
Il giorno ven 8 mar 2019 alle ore 10:36 Sergio Corato <sergiocorato@gmail.com> ha scritto:
se vuoi proporre un'alternativa è benvenuta :D

Sì, quello che intendevo con "l'azione che viene lanciata dal DDT per completare le picking con questo parametro nel context." è questo:
Se nella action_done della stock.picking.package.preparation chiami l'action_done della picking con skip_update_line_ids=True ci mette circa un centesimo del tempo. Guarda i tempi nei commenti:  14 secondi vs 1580 secondi (si tratta della ricezione da ddt di una picking che contiene 40 move). 


class StockPickingPackagePreparation(models.Model):

    _inherit = 'stock.picking.package.preparation'

    @api.multi
    def action_done(self):
        start_time = time.time()
        if not self.mapped('package_id'):
            raise UserError(
                _('The package has not been generated.')
            )
        for picking in self.picking_ids:
            # picking.action_done()  # --- 1580.0589308738708 seconds ---
            picking.with_context(skip_update_line_ids=True).action_done()  # --- 14.491227149963379 seconds ---
        self.write({'state': 'done', 'date_done': fields.Datetime.now()})
        print("--- %s seconds ---" % (time.time() - start_time))

Un intervento del genere però non coprirebbe la validazione di una picking manuale (non da DDT). In questo caso continuerebbe a dare attese molto lunghe.

Reference