diff --git a/addons/account/account.py b/addons/account/account.py
index 449a58f136d..69b46c68d6c 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -330,6 +330,9 @@ class account_account(osv.osv):
_constraints = [
(_check_recursion, 'Error ! You can not create recursive accounts.', ['parent_id'])
]
+ _sql_constraints = [
+ ('code_company_uniq', 'unique (code,company_id)', 'The code of the account must be unique per company !')
+ ]
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80):
if not args:
args = []
diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index cd383da14d1..1410c9bc5ac 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -199,14 +199,14 @@
-
+
-
+
@@ -243,7 +243,7 @@
-
+
@@ -251,7 +251,7 @@
-
+
diff --git a/addons/account/account_invoice_workflow.xml b/addons/account/account_invoice_workflow.xml
index d026408d643..1f41b9fb4ed 100644
--- a/addons/account/account_invoice_workflow.xml
+++ b/addons/account/account_invoice_workflow.xml
@@ -34,7 +34,8 @@ write({'state':'proforma'})
open
- action_move_create()
+ action_date_assign()
+action_move_create()
action_number()
write({'state':'open'})
function
diff --git a/addons/account/invoice.py b/addons/account/invoice.py
index d64ba93c089..5c977ed9500 100644
--- a/addons/account/invoice.py
+++ b/addons/account/invoice.py
@@ -357,14 +357,6 @@ class account_invoice(osv.osv):
if type in ('in_invoice', 'in_refund'):
result['value']['partner_bank'] = bank_id
- if payment_term != partner_payment_term:
- if partner_payment_term:
- to_update = self.onchange_payment_term_date_invoice(
- cr,uid,ids,partner_payment_term,date_invoice)
- result['value'].update(to_update['value'])
- else:
- result['value']['date_due'] = False
-
if partner_bank_id != bank_id:
to_update = self.onchange_partner_bank(cr, uid, ids, bank_id)
result['value'].update(to_update['value'])
@@ -378,17 +370,13 @@ class account_invoice(osv.osv):
return {}
res={}
pt_obj= self.pool.get('account.payment.term')
-
if not date_invoice :
date_invoice = time.strftime('%Y-%m-%d')
-
pterm_list= pt_obj.compute(cr, uid, payment_term_id, value=1, date_ref=date_invoice)
-
if pterm_list:
pterm_list = [line[0] for line in pterm_list]
pterm_list.sort()
res= {'value':{'date_due': pterm_list[-1]}}
-
return res
def onchange_invoice_line(self, cr, uid, ids, lines):
@@ -498,6 +486,13 @@ class account_invoice(osv.osv):
})]
return iml
+ def action_date_assign(self, cr, uid, ids, *args):
+ for inv in self.browse(cr, uid, ids):
+ res = self.onchange_payment_term_date_invoice(cr, uid, inv.id, inv.payment_term.id, inv.date_invoice)
+ if res and res['value']:
+ self.write(cr, uid, [inv.id], res['value'])
+ return True
+
def action_move_create(self, cr, uid, ids, *args):
ait_obj = self.pool.get('account.invoice.tax')
cur_obj = self.pool.get('res.currency')
diff --git a/addons/crm/wizard/crm_wizard.py b/addons/crm/wizard/crm_wizard.py
index 2f9d9ddc0ca..b0ae66e95db 100644
--- a/addons/crm/wizard/crm_wizard.py
+++ b/addons/crm/wizard/crm_wizard.py
@@ -32,6 +32,8 @@ section_form = '''
+
+
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index f6d4a685387..f368eb10c77 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -769,10 +769,10 @@ class mrp_procurement(osv.osv):
'date_planned': fields.datetime('Scheduled date', required=True),
'date_close': fields.datetime('Date Closed'),
'product_id': fields.many2one('product.product', 'Product', required=True),
- 'product_qty': fields.float('Quantity', required=True),
- 'product_uom': fields.many2one('product.uom', 'Product UoM', required=True),
- 'product_uos_qty': fields.float('UoS Quantity'),
- 'product_uos': fields.many2one('product.uom', 'Product UoS'),
+ 'product_qty': fields.float('Quantity', required=True, states={'draft':[('readonly',False)]}, readonly=True),
+ 'product_uom': fields.many2one('product.uom', 'Product UoM', required=True, states={'draft':[('readonly',False)]}, readonly=True),
+ 'product_uos_qty': fields.float('UoS Quantity', states={'draft':[('readonly',False)]}, readonly=True),
+ 'product_uos': fields.many2one('product.uom', 'Product UoS', states={'draft':[('readonly',False)]}, readonly=True),
'move_id': fields.many2one('stock.move', 'Reservation', ondelete='set null'),
'bom_id': fields.many2one('mrp.bom', 'BoM', ondelete='cascade', select=True),
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index 2093c51396d..5f7f02f3b61 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -713,7 +713,7 @@
-
+