Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
3 Odpovědi
5924 Zobrazení

Hi,

I am trying to extend the sale.order class, but I do not know how to use the new field discount_rate in _amount_all.

Could someone help and clarify how to add this field?


This is the code to inherit the sale.order class adding the two new fields:
# -*- coding: utf-8 -*-
from openerp import models, fields, api
class SaleOrderDiscount(models.Model):
_inherit = 'sale.order'
discount_rate = fields.Float(
string='Discount Rate (%)',
readonly=False
)
amount_discount = fields.Float(
string='Amount Discount'
)
@api.onchange('discount_rate', 'amount_untaxed')
def calculate_discount(self):
self.amount_discount = self.amount_untaxed * (self.discount_rate / 100)
def _amount_all(self, cr, uid, ids, field_name, arg, context=None):
cur_obj = self.pool.get('res.currency')
res = {}
for order in self.browse(cr, uid, ids, context=context):
res[order.id] = {
'amount_untaxed': 0.0,
'amount_discount': 0.0,
'amount_tax': 0.0,
'amount_total': 0.0,
}
val = val1 = 0.0
cur = order.pricelist_id.currency_id
for line in order.order_line:
val1 += line.price_subtotal
val += self._amount_line_tax(cr, uid, line, context=context)
val2 = val1 * (self.discount_rate / 100)
res[order.id]['amount_tax'] = cur_obj.round(cr, uid, cur, val)
res[order.id]['amount_untaxed'] = cur_obj.round(cr, uid, cur, val1)
res[order.id]['amount_discount'] = cur_obj.round(cr, uid, cur, val2)
res[order.id]['amount_total'] = res[order.id]['amount_untaxed'] + res[order.id]['amount_tax'] - res[order.id]['amount_discount']
return res

Avatar
Zrušit
Nejlepší odpověď

Have you seen "Global Discount on Sales Orders" at https://apps.openerp.com/apps/modules/8.0/global_discount/

Avatar
Zrušit
Autor

Thanks Ray, I checked it out and it is great and easy. However I would like to be able to add a true global discount Ialso for the shake of trying to finally understand how Odoo works, (which is being quite challenging)

Nejlepší odpověď

Please refer this link. This may help you.

Visit: https://www.odoo.com/apps/modules/11.0/tis_sales_purchase_global_discount/

Avatar
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
1
srp 17
4081
3
dub 17
8349
2
lis 16
3345
0
dub 15
4367
1
kvě 25
934