add http://codereview.tryton.org/2961002/ account: Fix update taxes and line rule taxes

This commit is contained in:
?ngel ?lvarez Serra 2014-01-28 09:52:55 +01:00
parent caa8560652
commit eb3d0add10
2 changed files with 117 additions and 0 deletions

View File

@ -0,0 +1,116 @@
Index: tax.py
===================================================================
--- ./modules/account/tax.py
+++ ./modules/account/tax.py
@@ -802,49 +802,52 @@
if self.template:
vals = self.template._get_tax_value(tax=self)
- if (self.template.invoice_account
- and self.invoice_account.id != template2account.get(
- self.template.invoice_account.id)):
+ if (self.template.invoice_account and (not self.invoice_account
+ or self.invoice_account.id != template2account.get(
+ self.template.invoice_account.id))):
vals['invoice_account'] = template2account.get(
self.template.invoice_account.id)
elif (not self.template.invoice_account
and self.invoice_account):
vals['invoice_account'] = None
- if (self.template.credit_note_account
- and self.credit_note_account.id != template2account.get(
- self.template.credit_note_account.id)):
+ if (self.template.credit_note_account and (not
+ self.credit_note_account or
+ self.credit_note_account.id != template2account.get(
+ self.template.credit_note_account.id))):
vals['credit_note_account'] = template2account.get(
self.template.credit_note_account.id)
elif (not self.template.credit_note_account
and self.credit_note_account):
vals['credit_note_account'] = None
- if (self.template.invoice_base_code
- and self.invoice_base_code.id != template2tax_code.get(
- self.template.invoice_base_code.id)):
+ if (self.template.invoice_base_code and (not self.invoice_base_code
+ or self.invoice_base_code.id != template2tax_code.get(
+ self.template.invoice_base_code.id))):
vals['invoice_base_code'] = template2tax_code.get(
self.template.invoice_base_code.id)
elif (not self.template.invoice_base_code
and self.invoice_base_code):
vals['invoice_base_code'] = None
- if (self.template.invoice_tax_code
- and self.invoice_tax_code.id != template2tax_code.get(
- self.template.invoice_tax_code.id)):
+ if (self.template.invoice_tax_code and (not self.invoice_tax_code
+ or self.invoice_tax_code.id != template2tax_code.get(
+ self.template.invoice_tax_code.id))):
vals['invoice_tax_code'] = template2tax_code.get(
self.template.invoice_tax_code.id)
elif (not self.template.invoice_tax_code
and self.invoice_tax_code):
vals['invoice_tax_code'] = None
- if (self.template.credit_note_base_code
- and self.credit_note_base_code.id != template2tax_code.get(
- self.template.credit_note_base_code.id)):
+ if (self.template.credit_note_base_code and (not
+ self.credit_note_base_code or
+ self.credit_note_base_code.id != template2tax_code.get(
+ self.template.credit_note_base_code.id))):
vals['credit_note_base_code'] = template2tax_code.get(
self.template.credit_note_base_code.id)
elif (not self.template.credit_note_base_code
and self.credit_note_base_code):
vals['credit_note_base_code'] = None
- if (self.template.credit_note_tax_code
- and self.credit_note_tax_code.id != template2tax_code.get(
- self.template.credit_note_tax_code.id)):
+ if (self.template.credit_note_tax_code and (not
+ self.credit_note_tax_code or
+ self.credit_note_tax_code.id != template2tax_code.get(
+ self.template.credit_note_tax_code.id))):
vals['credit_note_tax_code'] = template2tax_code.get(
self.template.credit_note_tax_code.id)
elif (not self.template.credit_note_tax_code
@@ -1118,8 +1121,6 @@
res = {}
if not rule_line or rule_line.group != self.group:
res['group'] = self.group.id if self.group else None
- if not rule_line or rule_line.origin_tax != self.origin_tax:
- res['origin_tax'] = self.origin_tax.id if self.origin_tax else None
if not rule_line or rule_line.sequence != self.sequence:
res['sequence'] = self.sequence
if not rule_line or rule_line.template != self:
@@ -1271,16 +1272,19 @@
vals = self.template._get_tax_rule_line_value(rule_line=self)
if self.rule.id != template2rule[self.template.rule.id]:
vals['rule'] = template2rule[self.template.rule.id]
- if self.origin_tax:
- if self.template.origin_tax:
- if self.origin_tax.id != \
- template2tax[self.template.origin_tax.id]:
- vals['origin_tax'] = template2tax[
- self.template.origin_tax.id]
- if self.tax:
- if self.template.tax:
- if self.tax.id != template2tax[self.template.tax.id]:
- vals['tax'] = template2tax[self.template.tax.id]
+ if self.template.origin_tax:
+ if (not self.origin_tax or self.origin_tax.id !=
+ template2tax[self.template.origin_tax.id]):
+ vals['origin_tax'] = template2tax[
+ self.template.origin_tax.id]
+ elif self.origin_tax:
+ vals['origin_tax'] = None
+ if self.template.tax:
+ if (not self.tax or self.tax.id !=
+ template2tax[self.template.tax.id]):
+ vals['tax'] = template2tax[self.template.tax.id]
+ elif self.tax:
+ vals['tax'] = None
if vals:
self.write([self], vals)
template2rule_line[self.template.id] = self.id

1
series
View File

@ -10,3 +10,4 @@ add_db_client.diff
issue2661002_20001.diff
issue101_226.diff
issue2731002_20001.diff
issue2961002_20001_30001.diff