[FIX] account: encoding by line is now working also for tax included (in fact it doesn't consider that value, but it's normal)
bzr revid: qdp-launchpad@openerp.com-20111114103945-blqw5f4egom3dp9m
This commit is contained in:
parent
f79e0d1f59
commit
f033b7b1b1
|
@ -2001,8 +2001,11 @@ class account_tax(osv.osv):
|
||||||
cur_price_unit+=amount2
|
cur_price_unit+=amount2
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def compute_all(self, cr, uid, taxes, price_unit, quantity, address_id=None, product=None, partner=None):
|
def compute_all(self, cr, uid, taxes, price_unit, quantity, address_id=None, product=None, partner=None, force_excluded=False):
|
||||||
"""
|
"""
|
||||||
|
:param force_excluded: boolean used to say that we don't want to consider the value of field price_include of
|
||||||
|
tax. It's used in encoding by line where you don't matter if you encoded a tax with that boolean to True or
|
||||||
|
False
|
||||||
RETURN: {
|
RETURN: {
|
||||||
'total': 0.0, # Total without taxes
|
'total': 0.0, # Total without taxes
|
||||||
'total_included: 0.0, # Total with taxes
|
'total_included: 0.0, # Total with taxes
|
||||||
|
@ -2014,10 +2017,10 @@ class account_tax(osv.osv):
|
||||||
tin = []
|
tin = []
|
||||||
tex = []
|
tex = []
|
||||||
for tax in taxes:
|
for tax in taxes:
|
||||||
if tax.price_include:
|
if not tax.price_include or force_excluded:
|
||||||
tin.append(tax)
|
|
||||||
else:
|
|
||||||
tex.append(tax)
|
tex.append(tax)
|
||||||
|
else:
|
||||||
|
tin.append(tax)
|
||||||
tin = self.compute_inv(cr, uid, tin, price_unit, quantity, address_id=address_id, product=product, partner=partner)
|
tin = self.compute_inv(cr, uid, tin, price_unit, quantity, address_id=address_id, product=product, partner=partner)
|
||||||
for r in tin:
|
for r in tin:
|
||||||
totalex -= r.get('amount', 0.0)
|
totalex -= r.get('amount', 0.0)
|
||||||
|
|
|
@ -1326,7 +1326,7 @@ class account_move_line(osv.osv):
|
||||||
base_sign = 'base_sign'
|
base_sign = 'base_sign'
|
||||||
tax_sign = 'tax_sign'
|
tax_sign = 'tax_sign'
|
||||||
tmp_cnt = 0
|
tmp_cnt = 0
|
||||||
for tax in tax_obj.compute_all(cr, uid, [tax_id], total, 1.00).get('taxes'):
|
for tax in tax_obj.compute_all(cr, uid, [tax_id], total, 1.00, force_excluded=True).get('taxes'):
|
||||||
#create the base movement
|
#create the base movement
|
||||||
if tmp_cnt == 0:
|
if tmp_cnt == 0:
|
||||||
if tax[base_code]:
|
if tax[base_code]:
|
||||||
|
@ -1338,8 +1338,6 @@ class account_move_line(osv.osv):
|
||||||
else:
|
else:
|
||||||
data = {
|
data = {
|
||||||
'move_id': vals['move_id'],
|
'move_id': vals['move_id'],
|
||||||
'journal_id': vals['journal_id'],
|
|
||||||
'period_id': vals['period_id'],
|
|
||||||
'name': tools.ustr(vals['name'] or '') + ' ' + tools.ustr(tax['name'] or ''),
|
'name': tools.ustr(vals['name'] or '') + ' ' + tools.ustr(tax['name'] or ''),
|
||||||
'date': vals['date'],
|
'date': vals['date'],
|
||||||
'partner_id': vals.get('partner_id',False),
|
'partner_id': vals.get('partner_id',False),
|
||||||
|
@ -1356,8 +1354,6 @@ class account_move_line(osv.osv):
|
||||||
#create the VAT movement
|
#create the VAT movement
|
||||||
data = {
|
data = {
|
||||||
'move_id': vals['move_id'],
|
'move_id': vals['move_id'],
|
||||||
'journal_id': vals['journal_id'],
|
|
||||||
'period_id': vals['period_id'],
|
|
||||||
'name': tools.ustr(vals['name'] or '') + ' ' + tools.ustr(tax['name'] or ''),
|
'name': tools.ustr(vals['name'] or '') + ' ' + tools.ustr(tax['name'] or ''),
|
||||||
'date': vals['date'],
|
'date': vals['date'],
|
||||||
'partner_id': vals.get('partner_id',False),
|
'partner_id': vals.get('partner_id',False),
|
||||||
|
|
Loading…
Reference in New Issue