mirror of
https://github.com/OCA/account-reconcile.git
synced 2025-01-20 12:27:39 +02:00
[add] statement cancel line: ask for confirmation if the line is reconciled
This commit is contained in:
@@ -22,3 +22,4 @@
|
||||
|
||||
import statement # noqa
|
||||
import statement_line # noqa
|
||||
import wizard # noqa
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
'init_xml': [],
|
||||
'update_xml': [
|
||||
'statement_view.xml',
|
||||
'wizard/cancel_line_view.xml',
|
||||
],
|
||||
'demo_xml': [],
|
||||
'test': [
|
||||
|
||||
@@ -97,6 +97,28 @@ class StatementLine(orm.Model):
|
||||
|
||||
return res
|
||||
|
||||
def button_cancel(self, cr, uid, ids, context=None):
|
||||
"""Check if a line is reconciled, and cancel it. Return action."""
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
for st_line in self.browse(cr, uid, ids, context=context):
|
||||
for move in st_line.move_ids:
|
||||
for move_line in move.line_id:
|
||||
if move_line.reconcile:
|
||||
# ask confirmation, we have some reconciliation already
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'wizard.cancel.line',
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
'target': 'new',
|
||||
'context': context,
|
||||
}
|
||||
|
||||
# no reconciliation to worry about: we cancel our lines directly then
|
||||
return self.cancel(cr, uid, ids, context=context)
|
||||
|
||||
def cancel(self, cr, uid, ids, context=None):
|
||||
"""Cancel one statement line, return action.
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
string="Confirm transaction"
|
||||
icon="gtk-ok"
|
||||
type="object"/>
|
||||
<button name="cancel" states="confirmed"
|
||||
<button name="button_cancel" states="confirmed"
|
||||
string="Cancel transaction"
|
||||
icon="gtk-cancel"
|
||||
type="object"/>
|
||||
|
||||
23
account_statement_cancel_line/wizard/__init__.py
Normal file
23
account_statement_cancel_line/wizard/__init__.py
Normal file
@@ -0,0 +1,23 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
###############################################################################
|
||||
# #
|
||||
# Author: Leonardo Pistone
|
||||
# Copyright 2014 Camptocamp SA
|
||||
# #
|
||||
# This program is free software: you can redistribute it and/or modify #
|
||||
# it under the terms of the GNU Affero General Public License as #
|
||||
# published by the Free Software Foundation, either version 3 of the #
|
||||
# License, or (at your option) any later version. #
|
||||
# #
|
||||
# This program is distributed in the hope that it will be useful, #
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
||||
# GNU Affero General Public License for more details. #
|
||||
# #
|
||||
# You should have received a copy of the GNU Affero General Public License #
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
||||
# #
|
||||
###############################################################################
|
||||
"""Account Statement Cancel Line."""
|
||||
|
||||
import cancel_line # noqa
|
||||
46
account_statement_cancel_line/wizard/cancel_line.py
Normal file
46
account_statement_cancel_line/wizard/cancel_line.py
Normal file
@@ -0,0 +1,46 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
###############################################################################
|
||||
# #
|
||||
# Author: Leonardo Pistone
|
||||
# Copyright 2014 Camptocamp SA
|
||||
# #
|
||||
# This program is free software: you can redistribute it and/or modify #
|
||||
# it under the terms of the GNU Affero General Public License as #
|
||||
# published by the Free Software Foundation, either version 3 of the #
|
||||
# License, or (at your option) any later version. #
|
||||
# #
|
||||
# This program is distributed in the hope that it will be useful, #
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
||||
# GNU Affero General Public License for more details. #
|
||||
# #
|
||||
# You should have received a copy of the GNU Affero General Public License #
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
||||
# #
|
||||
###############################################################################
|
||||
"""Wizard to Cancel a Statement Line."""
|
||||
|
||||
from openerp.osv import orm
|
||||
|
||||
|
||||
class wizard_cancel_line(orm.TransientModel):
|
||||
|
||||
"""Wizard to Cancel a Statement Line."""
|
||||
|
||||
_name = "wizard.cancel.line"
|
||||
_description = "Cancel Line"
|
||||
_columns = {
|
||||
}
|
||||
|
||||
def unreconcile(self, cr, uid, ids, context=None):
|
||||
"""Proceed and cancel the statement line, return Action.
|
||||
|
||||
This will delete the move.line and the reconciliation.
|
||||
|
||||
"""
|
||||
return self.pool['account.bank.statement.line'].cancel(
|
||||
cr,
|
||||
uid,
|
||||
context['active_ids'],
|
||||
context=context
|
||||
)
|
||||
22
account_statement_cancel_line/wizard/cancel_line_view.xml
Normal file
22
account_statement_cancel_line/wizard/cancel_line_view.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="view_wizard_cancel_line_form" model="ir.ui.view">
|
||||
<field name="name">view.wizard.cancel.line.form</field>
|
||||
<field name="model">wizard.cancel.line</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Reconciled Entries" version="7.0">
|
||||
<separator string="Unreconciliation"/>
|
||||
<label string="Some entries are already reconciled. Do you want to unreconcile them and proceed?"/>
|
||||
<footer>
|
||||
<button name="unreconcile" string="Unreconcile" type="object" class="oe_highlight"/>
|
||||
or
|
||||
<button string="Cancel" class="oe_link" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
Reference in New Issue
Block a user