跳至内容
菜单
此问题已终结
2 回复
3874 查看

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.

形象
丢弃
最佳答案

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

   'cr':fields.float("CR")
   'pr':field.float("PR")
   'fc':fields.float("FC")

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

please see the error .

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

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

upload your full cude here

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

I use the onchange function to display the result..

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

what kind of help ? which type of report

thanks atul for your answer

Thanks Atul for your answer

最佳答案
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}}

rent_rent()

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"/>
                 </field>
     <!--</form>-->
   </field>
</record>

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

形象
丢弃