2017-08-24 3 views
-1

Ich bestätige Massenfertigungsaufträge (MOs), die im Entwurf des Staat ist und ich folgenden Code verwenden, die von mehr Taste nach MOs in Fertigungsauftrag Baumansicht der Auswahl ausgeführt wird:odoo 8 Masse bestätigt Herstellung

@api.multi 
def mass_action(self): 
    mo_obj = self.env['mrp.production'] 
    mo_ids = self.env.context.get('active_ids') 
    if self.confirm: 
     domain = [('state', '=', 'draft'), 
        ('id', 'in', mo_ids)] 
     draft_mo_lst = mo_obj.search(domain) 
     for x in draft_mo_lst: 
      x.action_confirm() 

Alles funktioniert, wenn ich "Reservierung erzwingen" drücke, wenn die MO aus dem Verkaufsauftrag erstellt wurde (sie sind bereits bestätigt, wenn sie von dort aus gemacht werden).

Wenn ich MOs bestätige, die mit create button oder function von einer anderen Vorlage erstellt wurden, wird die Produktion nach der Verwendung dieses Assistenten nicht in den Status "ready" versetzt, nachdem die Schaltfläche "Reservation erzwingen" gedrückt wurde. Es scheint, dass es die Produkte reserviert und ihnen in der Bestandsverschiebungs-Datenbanktabelle zuweist, aber MO selbst ändert den Status nicht, um bereit zu sein. Der MO scheint danach festgefahren zu sein.

Fehle ich etwas oder muss ich es irgendwie anders machen?

+2

Was bedeutet "self.confirm" in mehrfacher Hinsicht? Sie sollten selbst iterieren, wenn Sie das erreichen möchten – dccdany

+0

es ist ein boolesches Feld, das zuvor überprüft werden muss, damit der Assistent funktioniert – Madis

Antwort

0

Der folgende Code behebt das Problem. Die Funktion action_confirm() musste über das Workflow-Signal "button_confirm" aufgerufen werden.

@api.multi 
def mass_action(self): 
    mo_obj = self.env['mrp.production'] 
    mo_ids = self.env.context.get('active_ids') 
    from openerp import workflow 
    if self.confirm: 
     domain = [('state', '=', 'draft'), 
        ('id', 'in', mo_ids)] 
     draft_mo_lst = mo_obj.search(domain) 
     for x in draft_mo_lst: 
      workflow.trg_validate(self._uid, 'mrp.production', x.id, 'button_confirm', self._cr)