Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre du Club
    Inscrit en
    octobre 2013
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : octobre 2013
    Messages : 99
    Points : 43
    Points
    43

    Par défaut Masquer /Afficher une liste d'enregistrement

    Bonsoir tous le monde
    Je débute avec la programmation en python et odoo 11
    Voila j'ai deux modéle "res.config.settings" et "account.tax" je voudrais que quand je coche "Ecotaxe" qui est un champ booléen qui se trouve dans le modéle "res.config.settings" une liste de tax apparait sur le modéle "account.tax".
    Est ce que vous avez une idée de la méthode a suivre?
    Comment puis je controler l'affichage d'un ensemble de records a apartir d'un autre modéle ? est ce possible ?
    Voici mon code python :
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    from odoo import models, fields, api
    import logging
    class EcotaxeConfig(models.TransientModel):
        _inherit = "res.config.settings"
     
        is_ecotaxe = fields.Boolean('Ecotaxe', help="Warning : To include Ecotaxe ",default=False)
     
     
        @api.model
        def get_values(self):
            res = super(EcotaxeConfig, self).get_values()
            get_param = self.env['ir.config_parameter'].sudo().get_param
            res.update(
                is_ecotaxe=get_param('l10n_fr_ecotaxe.is_ecotaxe'),                                                                         
            )
            return res
     
        def set_values(self):
            super(EcotaxeConfig, self).set_values()
            set_param = self.env['ir.config_parameter'].sudo().set_param
            set_param('l10n_fr_ecotaxe.is_ecotaxe', self.is_ecotaxe)
     
        @api.onchange('is_ecotaxe')
        def _onchange_is_ecotaxe(self):
            tax = self.env['account.tax'].search([
                ('company_id', '=', self.env.user.company_id.id)  ] )
            if self.is_ecotaxe == True:
               for eco in tax :
                    eco.visible_eco=True
               else :
                for eco in tax :
                eco.visible_eco=False
    Voici mon code xml
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?xml version="1.0" encoding="UTF-8"?>
    <odoo>
      <record model="ir.ui.view" id="account_tax_eco_form">
        <field name="name">account_taxe_eco_form</field>
        <field name="model">res.config.settings</field>
        <field name="inherit_id" ref="account.res_config_settings_view_form"/>
        <field name="arch" type="xml">
          <div id="eu_service" position="after">                                                                                            
            <div class="col-xs-12 col-md-6 o_setting_box" >
              <div class="o_setting_left_pane">
                <field name="is_ecotaxe"/>
              </div>
              <div class="o_setting_right_pane">
                <label for="is_ecotaxe"/>
                <div class="text-muted">                                                                                                    
                  if you want to add ecotaxes with other taxes                                                                              
                </div>
              </div>
            </div>
          </div>
        </field>
      </record>
    </odoo>
    Et voici mes records
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?xml version="1.0" encoding="utf-8"?>                                                                                                  
    <odoo>
      <record model="account.tax" id="taxe0" >
        <field name="name">Eco/Cat02/42070</field>
        <field name="type_tax_use" >sale</field>
        <field name="amount_type">fixed</field>
        <field name="amount">10</field>
        <field name="price_include">True</field>
        <field name="include_base_amount">True</field>
        <field name="visible">False</field>
      </record>
      <record model="account.tax" id="taxe1" >
        <field name="name" >Eco/Cat02/42070</field>
        <field name="type_tax_use" >purchase</field>
        <field name="amount_type">fixed</field>
        <field name="amount">10</field>
        <field name="price_include">True</field>
        <field name="include_base_amount">True</field>
        <field name="visible">False</field>
      </record>
      <record model="account.tax" id="taxe2" >
        <field name="name">Eco/Cat02/42080</field>
        <field name="type_tax_use" >sale</field>
        <field name="amount_type">fixed</field>
        <field name="amount">6.67</field>
        <field name="price_include">True</field>
        <field name="include_base_amount">True</field>
        <field name="visible">False</field>
      </record>
    Je vous remercie d'avance pour votre aide

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    mars 2019
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2019
    Messages : 24
    Points : 31
    Points
    31

    Par défaut

    Bonjour,

    Alors je n'ai pas trop eu le temps de regarder ce que tu as fais et comment c'est fait dans le code Odoo mais ce que je peux te proposer c'est de t'inspirer de ce qui est fait pour afficher les adresses de livraisons/facturation sur les devis.

    En effet dans la configuration de vente, si tu coches la case pour demander d'afficher les adresses de livraison et facturation, cela ajoute tout les utilisateurs à un groupe dédié à ceci.

    Ensuite c'est simplement que les vues sont paramétrées pour ne faire apparaître ces adresses que si les utilisateurs font partie de ce groupe.

    Dans ton cas, tu devras juste associer ton groupe à une ir.rules pour rendre visible des taxes spécifiques qui seraient normalement caché.

Discussions similaires

  1. Afficher une liste d'enregistrement dans un WinForm
    Par Msysteme dans le forum Windows Forms
    Réponses: 17
    Dernier message: 24/02/2009, 11h34
  2. Réponses: 1
    Dernier message: 29/08/2007, 14h08
  3. [VB]Ja'imerais afficher une liste d'éléments...
    Par STRUFIELD dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/01/2006, 18h49
  4. Enregistrer une liste d'enregistrements
    Par Xandar dans le forum PHP & MySQL
    Réponses: 3
    Dernier message: 15/01/2006, 12h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo