IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Odoo (ex-OpenERP) Discussion :

Calculer le total de plusieurs lignes dans une tree view


Sujet :

Odoo (ex-OpenERP)

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mars 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 29
    Points : 14
    Points
    14
    Par défaut Calculer le total de plusieurs lignes dans une tree view
    Bonjour,

    Mon but est de calculer le total de montants par exemple comme c'est déjà le cas dans plusieurs modules voir exemples ci-dessous :
    Nom : 1.PNG
Affichages : 2056
Taille : 88,0 Ko
    Nom : 2.PNG
Affichages : 1991
Taille : 11,0 Ko

    Connaissez-vous un moyen simple de le faire ?

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,
    Pour cela il faut rajouter l'attribut sum dans le champ (integer ou decimal) du treeview.
    Voir par exemple dans le POS le champ amount_total de la vue tree:
    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
     
    <record model="ir.ui.view" id="view_pos_order_tree">
                <field name="name">Orders</field>
                <field name="model">pos.order</field>
                <field name="arch" type="xml">
                    <tree string="POS Orders" colors="blue:state == 'draft';gray:state in ('done','cancel');black:state not in('done','cancel')">
                        <field name="name"/>
                        <field name="pos_reference"/>
                        <field name="partner_id"/>
                        <field name="date_order"/>
                        <field name="user_id"/>
                        <field name="invoice_id"/>
                        <field name="amount_total" sum="Amount total"/>
                        <field name="company_id" groups="base.group_multi_company"/>
                        <field name="state"/>
                        <field name="session_id" />
                    </tree>
                </field>
            </record>
    Ça a pour effet de rajouter un total en bas de la colonne concernée.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mars 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup de ta réponse,

    Malheureusement je ne trouve pas cela dans le POS, la tree view sur le site et dans le zip est la suivante :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      <!-- Vue Tree -->
            <record model="ir.ui.view" id="view_pos_cashier_tree">
                <field name="model">pos.order</field>
                <field name="name">view.inherit.pos.order.tree</field>
                <field name="view_type">tree</field>
                <field name="inherit_id" ref="point_of_sale.view_pos_order_tree"/>
                <field name="arch" type="xml">
                    <field name="user_id" position="replace">
                        <field name="cashier_name"/>
                    </field>
                </field>

    Aurais-tu un exemple python qui utilise le champ "amount_total" ?

    Merci d'avance

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Ben, le code que je t'ai posté est la tree view de pos.order

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mars 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    J'ai l'impression d'être bête mais impossible de trouver ce fameux pos.order, je ne trouve que des tutos sur le pos.cashier ?

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Sur Debian, c'est dans :
    /usr/share/pyshared/openerp/addons/point_of_sale/point_of_sale_view.xml autour de la ligne 130

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Mars 2014
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    j'ai trouvé merci.

    Par contre, est-il possible de faire la même mais pour avoir la moyenne et non le total (par exemple pour un pourcentage) ?
    Ou carrément influencer le calcule du sum= ?

  8. #8
    Membre habitué

    Homme Profil pro
    Developpeur Web & Odoo
    Inscrit en
    Novembre 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Developpeur Web & Odoo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2010
    Messages : 87
    Points : 164
    Points
    164
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par alexdess Voir le message
    j'ai trouvé merci.

    Par contre, est-il possible de faire la même mais pour avoir la moyenne et non le total (par exemple pour un pourcentage) ?
    Ou carrément influencer le calcule du sum= ?
    Slt,

    Pour calculer la moyenne plûtot que la somme, tu devras utiliser l'attribut group_operator sur ton champ avec la valeur avg (par défaut c'est sum) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'amount_total': fields.function(_amount_all, group_operator="avg", string='Total', digits_compute=dp.get_precision('Account'),  multi='all'),
    Cordialement,
    N'oubliez pas de marquer vos discussions
    Si une réponse vous a été utile pensez à voter Pour

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