2017-08-07 1 views
0

J'ai client et déposer le champ sous forme de client qui est one2many réellement, mais l'utilisateur ajouter une ligne en dépôt et soumettre ou modifier certains existant. Je veux faire des calculs sur cet événement. J'ai essayé onchange et compute les deux mais son ne fonctionne pas.Odoo - calcul sur ajouter ou modifier de one2many domaine

+0

Pouvez-vous ajouter un extrait de votre code avec les champs XML et les champs Python avec ce que vous avez essayé? – travisw

Répondre

0

ajouter ou modifier les champs One2many est FormView.

si vous venez de mettre le champ ce que vous quoi faire en calculer FormView * .xml

Ex. avec mon SUM champs

<!-- FormView --> 
     <record model="ir.ui.view" id="view_nstda_bst_dbill_form"> 
      <field name="name">nstda.bst.dbill.form</field> 
      <field name="model">nstda.bst.dbill</field> 
      <field name="type">form</field> 
      <field name="arch" type="xml"> 
       <form string="nstda_bst_dbill" class="nstda_bst_dbill_form" > 
        <group> 
         <field name="status" invisible="1" /> 
         <field name="matno" /> 
<!--      <field name="matdesc" /> --> 

         <label for="balance" /> 
         <div> 
          <field name="balance" style="width: 20%%" /> 
          <field name="uom_1" style="width: 10%%;" 
           attrs="{'invisible':[('matno','=',False)]}" /> 
         </div> 

         <label for="balance_rs" /> 
         <div> 
          <field name="balance_rs" style="color:Red;width: 20%%" /> 
          <field name="uom_2" style="width: 10%%;" 
           attrs="{'invisible':[('matno','=',False)]}" /> 
         </div> 

         <label for="qty" /> 
         <div> 
          <field name="qty" style="width: 20%%" 
           attrs="{'required':[('status','in',['draft','edit',False])]}" /> 
          <field name="uom" style="width: 10%%;" 
           attrs="{'invisible':[('matno','=',False)]}" /> 
         </div> 

<!--      <field name="unitprice" /> --> 
         <label for="unitprice" /> 
         <div> 
          <field name="unitprice" style="width: 20%%" /> 
          <field name="currency" style="width: 10%%;" /> 
         </div> 

         <field name="sum" invisible="1" /> 
         <field name="dbill_discount_sum" invisible="1" /> 
        </group> 
       </form> 
      </field> 
     </record> 

et le côté * .py est ...

Ex.

@api.one 
@api.onchange('qty','matno') 
@api.depends('qty','matno') 
def _set_sum(self): 
    self.sum = self.unitprice * self.qty 


sum = fields.Float(string="summary", store=True, compute='_set_sum') 
matno = fields.Many2one('bst.stock', 'matno') 
qty = fields.Integer('qty')