← Back to team overview

clearcorp team mailing list archive

lp:~rr.clearcorp/openerp-ccorp-addons/6.1-account_voucher_reverse into lp:openerp-ccorp-addons

 

Ronald Rubi has proposed merging lp:~rr.clearcorp/openerp-ccorp-addons/6.1-account_voucher_reverse into lp:openerp-ccorp-addons.

Requested reviews:
  CLEARCORP drivers (clearcorp-drivers)

For more details, see:
https://code.launchpad.net/~rr.clearcorp/openerp-ccorp-addons/6.1-account_voucher_reverse/+merge/115842

[FIX]Fix relation with original_move in multicompany relation
-- 
https://code.launchpad.net/~rr.clearcorp/openerp-ccorp-addons/6.1-account_voucher_reverse/+merge/115842
Your team CLEARCORP development team is subscribed to branch lp:openerp-ccorp-addons.
=== modified file 'account_move_reverse/__openerp__.py'
--- account_move_reverse/__openerp__.py	2012-07-18 22:03:00 +0000
+++ account_move_reverse/__openerp__.py	2012-07-19 21:54:19 +0000
@@ -36,7 +36,7 @@
     "depends" : ["account_voucher"],
     "init_xml" : [],
     "demo_xml" : [],
-    "update_xml" : [],
+    "update_xml" : ['account_move_reverse_view.xml'],
     "test" : [],
     "auto_install": False,
     "application": False,

=== modified file 'account_move_reverse/account_move_reverse.py'
--- account_move_reverse/account_move_reverse.py	2012-07-18 22:03:00 +0000
+++ account_move_reverse/account_move_reverse.py	2012-07-19 21:54:19 +0000
@@ -21,8 +21,9 @@
 ##############################################################################
 
 from osv import orm, osv, fields
+from tools.translate import _
 
-class account_move(orm.Model):
+class AccountMove(orm.Model):
 
     _inherit = 'account.move'
 
@@ -41,8 +42,11 @@
                 raise osv.except_osv(_('Error !'), _('You can not modify a posted entry of this journal !\nYou should set the journal to allow cancelling entries if you want to do that.'))
 
             if move.move_reverse_id:
+                if not move.journal_id.update_reversed:
+                    raise osv.except_osv(_('Error !'), _('You can not modify a posted entry of this journal !\nYou should set the journal to allow cancelling reversed entries if you want to do that.'))
+                
                 move_reverse = self.browse(cr, uid, move.move_reverse_id.id, context=context)
-                
+                line.move_mirror_rel_id
                 for line_reverse in move_reverse.line_id:
                     if line_reverse.reconcile_id:
                         self.pool.get('account.move.reconcile').unlink(cr,uid,[line_reverse.reconcile_id.id],context=context)
@@ -58,6 +62,9 @@
 
         for move_original_id in ids:
             move_original = self.pool.get('account.move').browse(cr, 1, move_original_id, context=context)
+            
+            if move_original.move_reverse_id:
+                continue
 
             move = {
                     'name':'Reverse: ' + move_original.name,
@@ -115,9 +122,19 @@
 
                 if line.account_id.reconcile:
                     reconcile_id = self.pool.get('account.move.reconcile').create(cr, uid, {'type': 'Account Reverse'})
-                    self.pool.get('account.move.line').write(cr,uid,[line.id],{'reconcile_id': reconcile_id})
+                    cr.execute('UPDATE account_move_line '\
+                               'SET reconcile_id=%s '\
+                               'WHERE id IN %s', (reconcile_id, tuple([line.id]),))
+                    #self.pool.get('account.move.line').write(cr,uid,[line.id],{'reconcile_id': reconcile_id})
                     self.pool.get('account.move.line').write(cr,uid,[line_created_id],{'reconcile_id': reconcile_id})
 
             #Posted move reverse
             self.pool.get('account.move').post(cr, 1, [move_id, move_original.id], context={})
         return True
+
+class AccountJournal(orm.Model):
+    _inherit = 'account.journal'
+    
+    _columns = {
+        'update_reversed' : fields.boolean('Allow Cancelling Reversed Entries', help="Check this box if you want to allow the cancellation of the reversed entries related to this journal or of the invoice related to this journal"),
+        }

=== added file 'account_move_reverse/account_move_reverse_view.xml'
--- account_move_reverse/account_move_reverse_view.xml	1970-01-01 00:00:00 +0000
+++ account_move_reverse/account_move_reverse_view.xml	2012-07-19 21:54:19 +0000
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<openerp>
+    <data>
+        <record id="view_account_journal_form_inherit" model="ir.ui.view">
+            <field name="name">account.journal.form</field>
+            <field name="model">account.journal</field>
+            <field name="type">form</field>
+            <field name="inherit_id" ref="account.view_account_journal_form"/>
+            <field name="arch" type="xml">
+                <field name="entry_posted" position="after">
+                    <field name="update_reversed"/>
+                </field>
+            </field>
+        </record>
+    </data>
+</openerp>

=== modified file 'account_multicompany_relation/account_multicompany_relation.py'
--- account_multicompany_relation/account_multicompany_relation.py	2012-07-18 22:03:00 +0000
+++ account_multicompany_relation/account_multicompany_relation.py	2012-07-19 21:54:19 +0000
@@ -18,8 +18,9 @@
 #
 ##############################################################################
 
-from osv import orm, fields
+from osv import orm, osv, fields
 from copy import copy
+from tools.translate import _
 
 class account_multicompany_relation(orm.Model):
 
@@ -69,20 +70,23 @@
         )
     ]
 
-
-class account_move(orm.Model):
-
-    _inherit = 'account.move'
+class AccountMoveLine(orm.Model):
+
+    _inherit = 'account.move.line'
     
     _columns = {
                 'move_mirror_rel_id':fields.many2one('account.move','Move Multicompany Relation'),
                 }
-
+    
     def copy(self, cr, uid, id, default={}, context=None):
         default.update({
             'move_mirror_rel_id':False,
         })
 
+class account_move(orm.Model):
+
+    _inherit = 'account.move'
+
     def button_cancel(self, cr, uid, ids, context=None):
         self.pool.get('account.move.reconcile')
         for move in self.browse(cr, uid, ids, context=context):
@@ -91,33 +95,39 @@
 
             #Set user administrator to run this portion of code
             uid = 1
-            if move.move_mirror_rel_id:
-                move_mirror = self.browse(cr, uid, move.move_mirror_rel_id.id, context=context)
-                if not move_mirror.journal_id.update_posted:
-                    raise osv.except_osv(_('Error !'), _('You can not modify a posted multicompany mirror entry of this journal !\nYou should set the journal to allow cancelling entries if you want to do that.'))
-
-                move_reconcile_obj = self.pool.get('account.move.reconcile')
-                for line_mirror in move_mirror.line_id:
-                    if line_mirror.reconcile_id:
-                        reconcile = line_mirror.reconcile_id
-                        if len(reconcile.line_id) > 2:
-                            self.pool.get('account.move.line').write(cr,uid,reconcile.line_id,{'reconcile_id': False, 'reconcile_partial_id':reconcile.id})
-                            self.pool.get('account.move.line').write(cr,uid,line_mirror.id,{'reconcile_partial_id': False})
-                        else:
-                            move_reconcile_obj.unlink(cr,uid,[reconcile.id],context=context)
-
-                    elif line_mirror.reconcile_partial_id:
-                        reconcile = line_mirror.reconcile_partial_id
-                        if len(reconcile.line_partial_ids) > 2:
-                            self.pool.get('account.move.line').write(cr,uid,line_mirror.id,{'reconcile_partial_id': False })
-                        else:
-                            move_reconcile_obj.unlink(cr,uid,[reconcile.id],context=context)
-
-                cr.execute('UPDATE account_move '\
-                           'SET state=%s '\
-                           'WHERE id IN %s', ('draft', tuple([move_mirror.id]),))
-                self.button_cancel(cr,uid,[move_mirror.id],context=context)
-                self.unlink(cr,uid,[move_mirror.id],context=context)
+            for line in move.line_id:
+                if line.move_mirror_rel_id:
+                    move_mirror = self.browse(cr, uid, line.move_mirror_rel_id.id, context=context)
+                    if not move_mirror.journal_id.update_posted:
+                        raise osv.except_osv(_('Error !'), _('You can not modify a posted multicompany mirror entry of this journal !\nYou should set the journal to allow cancelling entries if you want to do that.'))
+
+            move_reconcile_obj = self.pool.get('account.move.reconcile')
+
+            for line in move.line_id:
+                if line.move_mirror_rel_id:
+                    move_mirror = self.browse(cr, uid, line.move_mirror_rel_id.id, context=context)
+
+                    for line_mirror in move_mirror.line_id:
+                        if line_mirror.reconcile_id:
+                            reconcile = line_mirror.reconcile_id
+                            if len(reconcile.line_id) > 2:
+                                self.pool.get('account.move.line').write(cr,uid,reconcile.line_id,{'reconcile_id': False, 'reconcile_partial_id':reconcile.id})
+                                self.pool.get('account.move.line').write(cr,uid,line_mirror.id,{'reconcile_partial_id': False})
+                            else:
+                                move_reconcile_obj.unlink(cr,uid,[reconcile.id],context=context)
+
+                        elif line_mirror.reconcile_partial_id:
+                            reconcile = line_mirror.reconcile_partial_id
+                            if len(reconcile.line_partial_ids) > 2:
+                                self.pool.get('account.move.line').write(cr,uid,line_mirror.id,{'reconcile_partial_id': False })
+                            else:
+                                move_reconcile_obj.unlink(cr,uid,[reconcile.id],context=context)
+
+                    cr.execute('UPDATE account_move '\
+                               'SET state=%s '\
+                               'WHERE id IN %s', ('draft', tuple([move_mirror.id]),))
+                    self.button_cancel(cr,uid,[move_mirror.id],context=context)
+                    self.unlink(cr,uid,[move_mirror.id],context=context)
 
         result = super(account_move, self).button_cancel(cr, uid, ids, context=context)
         return True
@@ -130,16 +140,17 @@
                 continue
                             
             original_move = self.pool.get('account.move').browse(cr, 1, move_id_original, context=context)
-            move_id = False
-
-            move_lines_ids = self.pool.get('account.move.line').search(cr, 1, [('move_id', '=', move_id_original)], context=context)
-            if move_lines_ids:
-                lines = self.pool.get('account.move.line').browse(cr, 1, move_lines_ids, context=context)
-    
+            
+            if original_move.line_id:
                 mirror_selected = False
-            
-                for line in lines:
+
+                for line in original_move.line_id:
+                    if line.move_mirror_rel_id:
+                        if original_move.move_reverse_id:
+                            self.pool.get('account.move').reverse(cr, 1, [line.move_mirror_rel_id.id], context={})
+                        continue
                     mirror_selected_list_ids = self.pool.get('account.multicompany.relation').search(cr, 1, [('origin_account', '=', line.account_id.id), ('origin_journal', '=', line.journal_id.id)], context=context)
+                    move_id = False
                     if len(mirror_selected_list_ids) > 0:
                         mirror_selected_list = self.pool.get('account.multicompany.relation').browse(cr, 1, mirror_selected_list_ids, context=context)
     
@@ -183,7 +194,7 @@
                                 'company_id':targ_account.company_id.id,
                                 }
                         move_id = self.pool.get('account.move').create(cr, 1, move)
-                        self.pool.get('account.move').write(cr, uid, [original_move.id], {'move_mirror_rel_id' : move_id})
+                        self.pool.get('account.move.line').write(cr, uid, [line.id], {'move_mirror_rel_id' : move_id})
         
                         analytic_account_id = ''
                         if line.analytic_account_id and line.analytic_account_id == mirror_selected.origin_analytic_account:
@@ -236,14 +247,15 @@
                         
                         #Posted mirror
                         self.pool.get('account.move').post(cr, 1, [move_id], context={})
-            if move_id and original_move.move_reverse_id:
-                self.pool.get('account.move').reverse(cr, 1, [move_id], context={})
+                    if move_id and original_move.move_reverse_id:
+                        self.pool.get('account.move').reverse(cr, 1, [move_id], context={})
         return result
     
     def unlink(self, cr, uid, ids, context=None, check=True):
         for move in self.browse(cr, 1, ids, context=context):
-            if move.move_mirror_rel_id:
-                self.pool.get('account.move').button_cancel(cr, 1, [move.move_mirror_rel_id.id])
-                result = super(account_move, self).unlink(cr, 1, [move.move_mirror_rel_id.id], context=context, check=check)
+            for line in move.line_id:
+                if line.move_mirror_rel_id:
+                    self.pool.get('account.move').button_cancel(cr, 1, [line.move_mirror_rel_id.id])
+                    result = super(account_move, self).unlink(cr, 1, [line.move_mirror_rel_id.id], context=context, check=check)
         result = super(account_move, self).unlink(cr, 1, ids, context=context, check=check)
         return result


Follow ups