Fix supplier invoice line domain and don't fail for lines without invoice date

issue3803
review4761002
This commit is contained in:
Sergi Almacellas Abellana committed 2014-04-02 10:08:36 +02:00
1 parent 802055d40b
commit 48f20de021
1 file changed
+13 -9
+13 -9
View File
@@ -7,7 +7,7 @@ from dateutil import relativedelta
from dateutil import rrule
from trytond.model import Workflow, ModelSQL, ModelView, fields
from trytond.pyson import Eval, Bool
from trytond.pyson import Eval, Bool, If
from trytond.pool import Pool
from trytond.transaction import Transaction
from trytond.wizard import Wizard, StateView, StateTransition, Button
@@ -38,7 +38,10 @@ class Asset(Workflow, ModelSQL, ModelView):
supplier_invoice_line = fields.Many2One('account.invoice.line',
'Supplier Invoice Line',
domain=[
('product', '=', Eval('product', -1)),
If(Eval('product', None) == None,
('product', '=', -1),
('product', '=', Eval('product', -1)),
),
('invoice.type', '=', 'in_invoice'),
],
states={
@@ -235,13 +238,14 @@ class Asset(Workflow, ModelSQL, ModelView):
invoice.currency)
else:
new_values['value'] = invoice_line.amount
new_values['purchase_date'] = invoice.invoice_date
new_values['start_date'] = invoice.invoice_date
if invoice_line.product.depreciation_duration:
duration = relativedelta.relativedelta(
months=int(invoice_line.product.depreciation_duration),
days=-1)
new_values['end_date'] = new_values['start_date'] + duration
if invoice.invoice_date:
new_values['purchase_date'] = invoice.invoice_date
new_values['start_date'] = invoice.invoice_date
if invoice_line.product.depreciation_duration:
duration = relativedelta.relativedelta(
months=int(invoice_line.product.depreciation_duration),
days=-1)
new_values['end_date'] = new_values['start_date'] + duration
if not self.unit:
new_values['quantity'] = invoice_line.quantity