Overslaan naar inhoud
Menu
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Deze vraag is gerapporteerd
2 Antwoorden
3884 Weergaven

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.

Avatar
Annuleer
Beste antwoord

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),
Avatar
Annuleer

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

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

Avatar
Annuleer