[FIX] Account: account journals code and journal name should be unique
authorMustufa Rangwala <mra@mra-laptop>
Wed, 3 Nov 2010 08:17:13 +0000 (13:47 +0530)
committerMustufa Rangwala <mra@mra-laptop>
Wed, 3 Nov 2010 08:17:13 +0000 (13:47 +0530)
lp bug: https://launchpad.net/bugs/669532 fixed

bzr revid: mra@mra-laptop-20101103081713-p0hgynh02lr0v2wp

addons/account/account.py
addons/account/demo/account_minimal.xml

index 507d1d3..90947a5 100644 (file)
@@ -614,9 +614,22 @@ class account_journal(osv.osv):
         'user_id': lambda self,cr,uid,context: uid,
         'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
     }
+    _sql_constraints = [
+        ('code_company_uniq', 'unique (code, company_id)', 'The code of the journal must be unique per company !'),
+        ('name_company_uniq', 'unique (name, company_id)', 'The name of the journal must be unique per company !'),
+    ]
 
     _order = 'code'
 
+    def copy(self, cr, uid, id, default={}, context=None, done_list=[], local=False):
+        journal = self.browse(cr, uid, id, context=context)
+        if not default:
+            default = {}
+        default = default.copy()
+        default['code'] = (journal['code'] or '') + '(copy)'
+        default['name'] = (journal['name'] or '') + '(copy)'
+        return super(account_journal, self).copy(cr, uid, id, default, context=context)
+
     def write(self, cr, uid, ids, vals, context=None):
         if 'company_id' in vals:
             move_lines = self.pool.get('account.move.line').search(cr, uid, [('journal_id', 'in', ids)])
index 87c8a37..d17fe1d 100644 (file)
 
         <record id="sales_journal" model="account.journal">
             <field name="name">Sales Journal - (test)</field>
-            <field name="code">SAJ</field>
+            <field name="code">SAJ - (test)</field>
             <field name="type">sale</field>
             <field name="view_id" ref="account_sp_journal_view"/>
             <field name="sequence_id" ref="sequence_sale_journal"/>
         </record>
         <record id="refund_sales_journal" model="account.journal">
             <field name="name">Sales Credit Note Journal - (test)</field>
-            <field name="code">SCNJ</field>
+            <field name="code">SCNJ- (test)</field>
             <field name="type">sale_refund</field>
             <field eval="True" name="refund_journal"/>
             <field name="view_id" ref="account_sp_refund_journal_view"/>
 
         <record id="expenses_journal" model="account.journal">
             <field name="name">Expenses Journal - (test)</field>
-            <field name="code">EXJ</field>
+            <field name="code">EXJ- (test)</field>
             <field name="type">purchase</field>
             <field name="view_id" ref="account_sp_journal_view"/>
             <field name="sequence_id" ref="sequence_purchase_journal"/>
         </record>
         <record id="refund_expenses_journal" model="account.journal">
             <field name="name">Expenses Credit Notes Journal - (test)</field>
-            <field name="code">ECNJ</field>
+            <field name="code">ECNJ- (test)</field>
             <field name="type">purchase_refund</field>
             <field eval="True" name="refund_journal"/>
             <field name="view_id" ref="account_sp_refund_journal_view"/>
 
         <record id="bank_journal" model="account.journal">
             <field name="name">Bank Journal - (test)</field>
-            <field name="code">BNK</field>
+            <field name="code">BNK- (test)</field>
             <field name="type">bank</field>
             <field name="view_id" ref="account_journal_bank_view"/>
             <field name="sequence_id" ref="sequence_bank_journal"/>
         </record>
         <record id="check_journal" model="account.journal">
             <field name="name">Checks Journal - (test)</field>
-            <field name="code">CHK</field>
+            <field name="code">CHK- (test)</field>
             <field name="type">bank</field>
             <field name="view_id" ref="account_journal_bank_view"/>
             <field name="sequence_id" ref="sequence_check_journal"/>
         </record>
         <record id="cash_journal" model="account.journal">
             <field name="name">Cash Journal - (test)</field>
-            <field name="code">CSH</field>
+            <field name="code">CSH- (test)</field>
             <field name="type">cash</field>
             <field name="view_id" ref="account_journal_bank_view"/>
             <field name="sequence_id" ref="sequence_cash_journal"/>