Odoo-bacode

De Admin -- TALEVAS.
(Différences entre les versions)
(aller chercher dans les mouvements celui qui correspond a la bonne ligne de descriptif)
Ligne 51 : Ligne 51 :
 
     print "delivery_ids_search", delivery_ids_search
 
     print "delivery_ids_search", delivery_ids_search
 
<pre>
 
<pre>
 +
 +
== prendre l'ID d'article qui correspond ==
 +
 +
== chercher le packaging id qui correspond ==

Version du 1 avril 2020 à 19:01

Sommaire

Avec ou sans fabrication

Dans l'inventaire on a 3 onglets. L'un avec les opérations et un autre avec la demande initiale.

Malgré l'ajout du plugin ajoutant les descriptions des articles, les articles identiques restent groupés dans l'onglet "opérations".

L'idée consiste à gérer manuellement les approvisionnements à défaut de gérer la fabrication. Ainsi les produits restent en attente de disponibilité dans l'onglet "demande initiale" (il n'y a pas d'onglet "opérations").

Approvisionnements :

- Reserve products immediately after the sale order confirmation
- Reserve products manually or based on automatic scheduler


On peut jouer sur les statuts dans la demande initiale.

- draft => "nouveau" bouton "a faire" en brouillon reproductible lors d'une duplication d'un ordre de transfert
- confirmed => "attente de disponibilité" 
  Premier état si on a bien indiquer qu'on voulait gérer les approvisionnements manuellement.
- assigned => "disponible"
  Etat de départ si on décide que les produits sont réservé dès validation du devis.
- done => "fait"
- cancel => "annulé"

Mais ça ne suffit pas ... il faut aussi mettre les quantités tant dans la demande initiale que dans les opérations.

L'idée c'est d'aller chercher l'ID de l'article dans la demande initiale avec le numéro de devis et la description venant de camduct. Ensuite on peut retrouver l'id de pack_operation correspondant et aller l'update.

récupérer l'id de mouvement d'inventaire

res_id = models.execute_kw(
    db, uid, password, 'stock.picking', 'search',
    [[['origin','like',origin], ['state','!=', 'cancel'], ['state', '!=','done']]] # get all WH/OUT except cancel and done ones
    )

récupérer la liste de mouvements de stock

Une ligne pas ligne de devis

    move_lines = models.execute_kw(
	db, uid, password, 'stock.picking', 'read',
	[[res_id],["move_lines"]]
	)

aller chercher dans les mouvements celui qui correspond a la bonne ligne de descriptif

    delivery_ids_search = models.execute_kw(
        db, uid, password, 'stock.move', 'search',
        [[["product_description","like", desc], ["id", "=", move_lines]]]
        )
    print "delivery_ids_search", delivery_ids_search
<pre>

== prendre l'ID d'article qui correspond ==

== chercher le packaging id qui correspond ==