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)"/>
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)
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']),