diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index c759ac4ea14..4489cfea1a2 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -202,13 +202,13 @@
-
+
-
+
@@ -555,7 +555,7 @@
-
+
diff --git a/addons/account/data/account_minimal.xml b/addons/account/data/account_minimal.xml
index 12ffb7e3c1f..325326f8754 100644
--- a/addons/account/data/account_minimal.xml
+++ b/addons/account/data/account_minimal.xml
@@ -97,6 +97,12 @@ your own chart of account.
+
+ property_account_supplier_tax
+
+
+
+
property_account_tax
diff --git a/addons/account/invoice.py b/addons/account/invoice.py
index 89e47a1ac43..fe4d16196c8 100644
--- a/addons/account/invoice.py
+++ b/addons/account/invoice.py
@@ -794,6 +794,8 @@ class account_invoice_line(osv.osv):
return {'price_unit': price_unit,'invoice_line_tax_id': tax_id}
def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, price_unit=False, address_invoice_id=False, context={}):
+ if not partner_id:
+ raise osv.except_osv(_('No Partner Defined !'),_("You must first select a partner !") )
if not product:
if type in ('in_invoice', 'in_refund'):
return {'domain':{'product_uom':[]}}
diff --git a/addons/account_analytic_default/account_analytic_default.py b/addons/account_analytic_default/account_analytic_default.py
index bf0dcce3c9a..a2f95a1a04a 100644
--- a/addons/account_analytic_default/account_analytic_default.py
+++ b/addons/account_analytic_default/account_analytic_default.py
@@ -38,7 +38,7 @@ class account_analytic_default(osv.osv):
_order = 'sequence'
_columns = {
'sequence': fields.integer('Sequence'),
- 'analytic_id': fields.many2one('account.analytic.account', 'Analytic Account', required=True),
+ 'analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'),
'product_id': fields.many2one('product.product', 'Product', ondelete='cascade'),
'partner_id': fields.many2one('res.partner', 'Partner', ondelete='cascade'),
'user_id': fields.many2one('res.users', 'User', ondelete='cascade'),
@@ -49,14 +49,18 @@ class account_analytic_default(osv.osv):
def account_get(self, cr, uid, product_id=None, partner_id=None, user_id=None, date=None, context={}):
domain = []
if product_id:
- domain += ['|',('product_id','=',product_id),('product_id','=',False)]
+ domain += ['|',('product_id','=',product_id)]
+ domain += [('product_id','=',False)]
if partner_id:
- domain += ['|',('partner_id','=',partner_id),('partner_id','=',False)]
- if partner_id:
- domain += ['|',('user_id','=',uid),('user_id','=',False)]
+ domain += ['|',('partner_id','=',partner_id)]
+ domain += [('partner_id','=',False)]
+ if user_id:
+ domain += ['|',('user_id','=',uid)]
+ domain += [('user_id','=',False)]
if date:
domain += ['|',('date_start','<=',date),('date_start','=',False)]
domain += ['|',('date_stop','>=',date),('date_stop','=',False)]
+ print 'DOMAIN', domain
best_index = -1
res = False
for rec in self.browse(cr, uid, self.search(cr, uid, domain, context=context), context=context):
@@ -79,7 +83,7 @@ class account_invoice_line(osv.osv):
res_prod = super(account_invoice_line,self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, price_unit, address_invoice_id, context)
rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context)
if rec:
- res_prod['value'].update({'account_analytic_id':res.account_id.id})
+ res_prod['value'].update({'account_analytic_id':rec.analytic_id.id})
return res_prod
account_invoice_line()
diff --git a/addons/account_analytic_default/account_analytic_default_view.xml b/addons/account_analytic_default/account_analytic_default_view.xml
index a2d4e0df0b8..fb5eb636f01 100644
--- a/addons/account_analytic_default/account_analytic_default_view.xml
+++ b/addons/account_analytic_default/account_analytic_default_view.xml
@@ -8,7 +8,7 @@
-
+
@@ -24,7 +24,7 @@
form