Odoo Help


Getting result in the unit price column.

on 3/6/14, 9:05 AM 1,385 views

I have three fields in customer invoice form "Current reading(cr)" ,"Previous reading(pr)" ,"Free copies(fc)" , The three columns have values . Default value of Unit price is 0.15 Paise

cr=3000, pr=1000 , fc= 1000 unitprice="0.15"

((cr - pr)-(fc))*unit price of my product. = ((3000-1000)-(1000) * 0.15

I want to display 150 in my unit price field in customer invoice.

How can be make this.

Thanks in advance.


Atul Kumar jain

--Atul Kumar jain--
| 5 3 7
Indore, India
--Atul Kumar jain--


Atul Kumar jain
On 3/7/14, 2:39 AM

create the unit_price field as functional field and define the function as calculation you want than you get the value as you want

def _get_total(self, cr, uid, ids, field_names, args, context=None):
    res = {}
    for line in self.browse(cr, uid, ids, context=context):
        res[line.id] = (((line.cr-line.pr)-(linefc)*line.unit_price))
    return res

my field is


'unit_price':fields.function(_get_total, string='Unit Price', type="float", readonly=True, store=True),

please see the error .

on 3/7/14, 5:41 AM

TypeError: _get_total() takes at least 8 arguments (7 given) What does it actually means..

on 3/7/14, 5:42 AM

this error appears while press the "save" button in the invoice..

on 3/7/14, 5:44 AM

upload your full cude here

Atul Kumar jain
on 3/7/14, 7:55 AM

Hello Athul thanks for your valuable time . i solved this , Below i paste my code.

on 3/7/14, 8:07 AM

I use the onchange function to display the result..

on 3/7/14, 8:11 AM

Hi, Atul i need an another help.On generating a report, Can you help me.

on 3/11/14, 1:33 AM

what kind of help ? which type of report

Atul Kumar jain
on 3/11/14, 2:08 AM

thanks atul for your answer

NetbeamERP Technology
on 3/18/14, 9:34 AM

Thanks Atul for your answer

NetbeamERP Technology
on 3/19/14, 3:29 AM
On 3/7/14, 8:08 AM
class rent_rent(osv.osv):

_inherit = 'account.invoice'

_columns = {
    'prev_reading': fields.float('Previous reading',size=64,),
    'cur_reading': fields.float('Current reading',size=64,),
    'fre_cop': fields.float('Free copies', size=64,),
    'price': fields.float('Price',size=64,),
    'total': fields.float('Total',size=64),
def onchange_calculer(self, cr, uid, ids, prev_reading, cur_reading, fre_cop, price):

    return {'value':{'total':((cur_reading-prev_reading)-fre_cop)*price}}


in my xml file.

<?xml version="1.0" encoding="UTF-8"?>

<openerp> <data>

<record model="ir.ui.view" id="fleet_vehicle_form" &gt;="" <field="" name="name">account.invoice.form.inherit</field> <field name="model">account.invoice</field> <field name="inherit_id" ref="account.invoice_form"/> <field name="arch" type="xml">

    <!--  <form string="Vehicle" version="7.0">-->
                 <field name="date_invoice" position="after">
                 <field name="prev_reading"/>
                 <field name="cur_reading"/>
                 <field name="fre_cop"/>
                 <field name="price" on_change="onchange_calculer(prev_reading,cur_reading,fre_cop,price)"/>
                 <field name="total"/>

<record model="ir.actions.act_window" id="account_invoice"> <field name="name">Account</field> <field name="res_model">account.invoice</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record>

</data> </openerp>

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

0 follower(s)


Asked: 3/6/14, 9:05 AM
Seen: 1385 times
Last updated: 3/16/15, 8:10 AM