[FIX] account_voucher: put on_change() in account_voucher and removed check of statem...
authorRifakat (OpenERP) <rha@tinyerp.com>
Wed, 14 Mar 2012 10:44:58 +0000 (16:14 +0530)
committerRifakat (OpenERP) <rha@tinyerp.com>
Wed, 14 Mar 2012 10:44:58 +0000 (16:14 +0530)
bzr revid: rha@tinyerp.com-20120314104458-13ikcbw377jh987w

1  2 
addons/account/account_bank_statement.py
addons/account/account_view.xml
addons/account_voucher/account_voucher.py

@@@ -443,6 -443,13 +443,9 @@@ class account_bank_statement_line(osv.o
                  account_id = part.property_account_receivable.id
              res['value']['account_id'] = account_id
          return res
+     
+     def onchange_date(self, cr, uid, statement_lines, date, bank_period_id, context=None):
 -        voucher_obj = self.pool.get('account.voucher')
 -        for line in self.browse(cr, uid, statement_lines, context=context):
 -            if line.voucher_id:
 -                voucher_obj.write(cr, uid, [line.voucher_id.id],{'date': date, 'period_id': bank_period_id}, context=context)
 -        return True
++        return {}
  
      _order = "statement_id desc, sequence"
      _name = "account.bank.statement.line"
                      </group>
                      <notebook colspan="4">
                          <page string="Transaction" name="statement_line_ids">
-                             <field colspan="4" name="line_ids" nolabel="1">
+                             <field colspan="4" name="line_ids" nolabel="1" context="{'date':date}">
                                  <tree editable="bottom" string="Statement lines">
                                      <field name="sequence" readonly="1" invisible="1"/>
-                                     <field name="date" groups="base.group_extended"/>
 -                                    <field name="date" groups="base.group_extended" on_change="onchange_date(date)"/>
++                                    <field name="date" groups="base.group_extended" on_change="onchange_date(date, parent.period_id)"/>
                                      <field name="name"/>
                                      <field name="ref"/>
                                      <field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
                                      <field name="amount"/>
                                  </tree>
                                  <form string="Statement lines">
-                                     <field name="date"/>
 -                                    <field name="date" groups="base.group_extended" on_change="onchange_date(date)"/>
++                                    <field name="date" groups="base.group_extended" on_change="onchange_date(date, parent.period_id)"/>
                                      <field name="name"/>
                                      <field name="ref"/>
                                      <field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
@@@ -977,6 -970,15 +977,12 @@@ class account_bank_statement(osv.osv)
          bank_st_line_obj = self.pool.get('account.bank.statement.line')
          st_line = bank_st_line_obj.browse(cr, uid, st_line_id, context=context)
          if st_line.voucher_id:
+             if st_line.statement_id.period_id != st_line.voucher_id.period_id:
+                 raise osv.except_osv(_('Error !'),_("Bank statement period %s and voucher period %s of Statement line '%s' (ref: %s) are not same!")
+                                      % (st_line.statement_id.period_id.name, st_line.voucher_id.period_id.name, st_line.name, st_line.ref or ''))
 -            if st_line.statement_id.date != st_line.voucher_id.date:
 -                raise osv.except_osv(_('Error !'),_("Bank statement date %s and voucher date %s of Statement line '%s' (ref: %s) are not same!")
 -                                     % (st_line.statement_id.date, st_line.voucher_id.date, st_line.name, st_line.ref or ''))
+             if st_line.date != st_line.voucher_id.date:
+                 raise osv.except_osv(_('Error !'),_("Statement line '%s' (ref: %s) date %s and its voucher date %s are not same!")
+                                      % (st_line.name, st_line.ref or '' , st_line.date, st_line.voucher_id.date))
              voucher_obj.write(cr, uid, [st_line.voucher_id.id], {'number': next_number}, context=context)
              if st_line.voucher_id.state == 'cancel':
                  voucher_obj.action_cancel_draft(cr, uid, [st_line.voucher_id.id], context=context)
@@@ -1019,6 -1021,6 +1025,13 @@@ class account_bank_statement_line(osv.o
                  if not (abs(obj.amount) == obj.voucher_id.amount):
                      return False
          return True
++    
++    def onchange_date(self, cr, uid, statement_lines, date, bank_period_id, context=None):
++        voucher_obj = self.pool.get('account.voucher')
++        for line in self.browse(cr, uid, statement_lines, context=context):
++            if line.voucher_id:
++                voucher_obj.write(cr, uid, [line.voucher_id.id], {'date': date, 'period_id': bank_period_id}, context=context)
++        return {}
  
      _constraints = [
          (_check_amount, 'The amount of the voucher must be the same amount as the one on the statement line', ['amount']),