clearcorp team mailing list archive
-
clearcorp team
-
Mailing list archive
-
Message #00237
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