Se rendre au contenu
Nexelans
  • 0
    • Page d'accueil
    • Nos services
    • Odoo
    • Formations
    • Services
    • Support
    • Aide
    • Facture électronique
    • Formations proposées
    • Blog Odoo
    • Postes
    • Partenaires
    • Contactez-nous
  • +33 9 72 02 75 90 contact@nexelans.fr
  • Se connecter
Nexelans
  • 0
    • Page d'accueil
    • Nos services
    • Odoo
    • Formations
    • Services
    • Support
    • Aide
    • Facture électronique
    • Formations proposées
    • Blog Odoo
    • Postes
    • Partenaires
    • Contactez-nous
  • +33 9 72 02 75 90 contact@nexelans.fr
  • Se connecter
  • T&A Odoo
  • Afficher les composants d'une nomenclature dans un devis
  • Afficher les composants d'une nomenclature dans un devis

    Dans Odoo
    21 juin 2024 par
    Nexelans, Emmanuel Chaumery
    | Aucun commentaire pour l'instant

    Introduction

    Lorsque l'on vend des produits composés, des kits ou des produits finis, il peut être important pour le client d'afficher les composants de notre nomenclature.

    Ce n'est pas disponible par défaut dans Odoo et cela nécessite un petit bout de code avec Studio. On vous explique tout de suite comment faire.

    Méthodologie

    Il va nous falloir indiquer à notre rapport PDF que l'on veut afficher les composants sous le nom du produit sans forcément remplir les autres colonnes (prix unitaire ou TVA). 
    Cette opération ne sera réalisée que si l'article dispose d'une nomenclature.

    Pour cela, on va d'abord, comme d'habitude prendre les précautions d'usage :

    • Se mettre en base de test en dupliquant la base de production 
    • Dupliquer le modèle de devis actuel
    • Activer le mode développeur

    Si vous ne savez pas faire ce genre d'opérations, contactez nous, nous vous accompagnerons dans les opérations ou les feront pour vous.

    1. Aller dans le module ventes
    2. Aller dans Studio
    3. Sélectionner Rapport
    4. Dupliquer le modèle de base dupliquer modele de base
    5. Cliquer sur modifier les sources
    6. Repérer la ligne d'affichage du produit qui ressemble à 
                                     <td name="td_name">
                                          <span t-field="line.name">Bacon Burger</span>
                                      </td>
    7. Se positionner avant le <td> qui ressemble à :
                                      <td t-if="not line.is_downpayment" name="td_subtotal" class="text-end o_price_total">
                                          <span t-field="line.price_subtotal">27.00</span>
                                      </td>
                                  </t> 


    Maintenant, nous allons insérer ici une ligne de plus qui ne devra apparaître que si le produit est une nomenclature : 

                                <t t-if="line.product_id.bom_ids">
                                    <t t-set="bom" t-value="line.product_id.bom_ids[0]"/>
                                    <t t-foreach="bom.bom_line_ids" t-as="bom_line">
                                        <tr>
                                            <td style="padding-left: 20px;">
                                                <span t-field="bom_line.product_id.display_name"/>
                                            </td>
                                            <td/>
                                            <td/>
                                             <td/>
                                        </tr>
                                    </t>
                                </t>

    Attention à bien respecter les imbrications de balises XML, Odoo vous rappellera à l'ordre si ce n'est pas le cas.

    La première ligne teste si le produit a des composants puis pour chaque composant, il va afficher son nom. La dernière colonne indique la classe CSS permettant de conserver le même style que les autres lignes. Dans notre cas, le modèle de rapport grise la dernière colonne "montant". Et voilà...

    Code et pdf

    Améliorations possibles

    Dans le code ci-dessus, nous avons limité les informations affichées. Mais on peut parfaitement indiquer la quantité de composants nécessaires en remplissant les <td> </td> (ou <td/>) vides avec le nom du champ correspondant. Dans ce cas, ce sera t-field="bom_line.product_qty" par exemple.

    On pourrait aussi ajouter un champ calculé qui multiplie la quantité commandée du produit fini par la quantité définie dans la nomenclature... Nous avons en fait autant de champs disponibles que de colonnes dans le pdf d'origine. 

    On pourrait aussi afficher le tout sur une ligne fusionnée etc...

    Voilà, si ce tuto vous plaît, n'hésitez pas à partager votre expérience et vos améliorations dans les commentaires.

    A très vite pour un nouveau tuto

    Nexelans, Emmanuel Chaumery 21 juin 2024
    Partager cet article
    Étiquettes
    Archive
    Se connecter pour laisser un commentaire.
    Nexelans​​​

    Siège social :141 chemin de la Basse Biousse, 38890 St Chef

    Bureaux : 2 rue des Sayes, 38080 L'Isle d'Abeau

    Une adresse doit être spécifiée pour qu'une carte soit intégrée

                         

    Entrer en contact
    • contact@nexelans.fr
    • 09 72 02 75 90
    Suivez-nous

     LinkedIn

    • YouTube
    Divers
    • Mentions légales
    • Vie privée
    • Conditions générales de services
    • Conditions générales de maintenance
    Produits
    • Odoo
    • Facture électronique




    Logo Nexelans

    Nexelans
    • Page d'accueil
    • Contact
    • Prendre Rendez-vous
    • Nos services
    • Formations
    •   Numeum
    ​
    Copyright 2024 © Nexelans
    Généré par Odoo - Le #1 Open Source eCommerce

    Nous utilisons des cookies pour vous offrir une meilleure expérience utilisateur sur ce site. Politique en matière de cookies

    Que les essentiels Je suis d'accord