In Odoo first install the accounting module and then if users want all customer related account invoice to be added only to the product price and the quantity of the product calculated and stored in the fields in res.partner, for this follow the steps given below:
Step1- First we create module and then inherits the res.partner object in customer form and then create function and functional fields in test.py file.
Use this code show below
from openerp.osv import osv, fields
#from openerp import api
class test(osv.osv):
def mrg_partner(self, cr, uid, ids,field_name, args, context=None):
if context is None:
context = {}
for order in self.browse(cr,uid,ids):
rent_obj = self.browse(cr,uid,ids)
print"=====rent_obj=====",rent_obj
#inv_ids = rent_obj.partner_id.invoices_ids
inv_obj = self.pool.get('account.invoice')
inv_ids = inv_obj.search(cr, uid, [('partner_id','=',order.id)])
print"=====inv_ids=====",inv_ids
res = {}
total = 0
for inv in inv_obj.browse(cr, uid, inv_ids):
for product in inv.invoice_line_ids:
sub_total = product.price_unit * product.quantity
total += sub_total
res[order.id] = total
return res
_inherit='res.partner'
_columns={
'TOT': fields.function(string='Total Amount', fnct=mrg_partner, store=True, type='char'),
}
test()
Step2- Then create another file like test.xml file and inherits the views of the res.partner object in own module and add existing fields in test.xml file.
Use this code given below
<?xml version="1.0"?>
<openerp>
<data>
<record model="ir.ui.view" id="view_partner_form4">
<field name="name">res.partner.form.inherit4</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="/form/sheet/group/group/field[@name='website']" position="after">
<field name="TOT"/>
</xpath>
</field>
</record>
</data>
</openerp>
0 Comment(s)