2017-08-07 3 views
0

Ich habe Kunden-und Einzahlungsfeld in Kundenformular, die One2many tatsächlich ist, aber Benutzer hinzufügen eine Zeile in der Einzahlung und senden oder bearbeiten einige bestehende. Ich möchte ein paar Berechnungen zu diesem Ereignis anstellen. Ich versuchte onchange und compute beide, aber es funktioniert nicht.Odoo - Berechnung auf Hinzufügen oder Bearbeiten von one2many Feld

+0

Können Sie einen Auszug aus Ihrem Code mit den XML-Feldern und den Python-Feldern mit dem, was Sie versucht haben, hinzufügen? – travisw

Antwort

0

hinzufügen oder bearbeiten One2many Felder ist FormView.

so setzen Sie nur das Feld, was Sie, was in Formview * .xml

Ex berechnen zu tun. mit meiner SUM Felder

<!-- 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> 

und die * Py Seite ist ...

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') 
Verwandte Themen