From b04639a3c07dc3076275d4786f905e5d3b789dc9 Mon Sep 17 00:00:00 2001 From: Laetitia Gangloff Date: Thu, 19 Feb 2015 13:39:19 +0100 Subject: [PATCH 1/2] Add a configuration parameter to use entry_posted journal setting --- account_default_draft_move/__init__.py | 1 + account_default_draft_move/__openerp__.py | 4 +- account_default_draft_move/account.py | 4 ++ .../account_bank_statement.py | 10 +++- .../i18n/account_default_draft_move.pot | 18 ++++-- account_default_draft_move/i18n/en.po | 15 ++++- account_default_draft_move/i18n/fr.po | 15 ++++- account_default_draft_move/res_config.py | 55 +++++++++++++++++++ .../res_config_view.xml | 20 +++++++ 9 files changed, 131 insertions(+), 11 deletions(-) create mode 100644 account_default_draft_move/res_config.py create mode 100644 account_default_draft_move/res_config_view.xml diff --git a/account_default_draft_move/__init__.py b/account_default_draft_move/__init__.py index 3593dc32f..09e765e7e 100644 --- a/account_default_draft_move/__init__.py +++ b/account_default_draft_move/__init__.py @@ -19,3 +19,4 @@ ############################################################################## from . import account from . import account_bank_statement +from . import res_config diff --git a/account_default_draft_move/__openerp__.py b/account_default_draft_move/__openerp__.py index 87e8da64f..942e80594 100644 --- a/account_default_draft_move/__openerp__.py +++ b/account_default_draft_move/__openerp__.py @@ -50,7 +50,9 @@ need to make a refund). """, 'website': 'http://www.camptocamp.com', 'data': ['account_view.xml', - 'invoice_view.xml'], + 'invoice_view.xml', + 'res_config_view.xml', + ], 'installable': True, 'active': False, } diff --git a/account_default_draft_move/account.py b/account_default_draft_move/account.py index b73275ca0..b7cd25bd6 100644 --- a/account_default_draft_move/account.py +++ b/account_default_draft_move/account.py @@ -30,8 +30,12 @@ class AccountInvoice(orm.Model): res = super(AccountInvoice, self).action_move_create(cr, uid, ids, context=context) move_obj = self.pool.get('account.move') + use_journal_setting = bool(self.pool['ir.config_parameter'].get_param( + cr, uid, 'use_journal_setting', False)) for inv in self.browse(cr, uid, ids, context=context): if inv.move_id: + if use_journal_setting and inv.move_id.journal_id.entry_posted: + continue move_obj.write(cr, uid, [inv.move_id.id], {'state': 'draft'}, context=context) return res diff --git a/account_default_draft_move/account_bank_statement.py b/account_default_draft_move/account_bank_statement.py index 5a966ed81..e529f1804 100644 --- a/account_default_draft_move/account_bank_statement.py +++ b/account_default_draft_move/account_bank_statement.py @@ -44,9 +44,15 @@ class AccountBankStatement(orm.Model): move_ids = [move_ids] # We receive the move created for the bank statement, we set it # to draft + use_journal_setting = bool(self.pool['ir.config_parameter'].get_param( + cr, uid, 'use_journal_setting', False)) if move_ids: move_obj = self.pool.get('account.move') - move_obj.write(cr, uid, move_ids, - {'state': 'draft'}, context=context) + moves = move_obj.browse(cr, uid, move_ids, context=context) + for move in moves: + if use_journal_setting and move.journal_id.entry_posted: + continue + move_obj.write(cr, uid, [move.id], + {'state': 'draft'}, context=context) return move_ids # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/account_default_draft_move/i18n/account_default_draft_move.pot b/account_default_draft_move/i18n/account_default_draft_move.pot index c9f641c37..4b52f8296 100644 --- a/account_default_draft_move/i18n/account_default_draft_move.pot +++ b/account_default_draft_move/i18n/account_default_draft_move.pot @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OpenERP Server 7.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-10-18 17:48+0000\n" -"PO-Revision-Date: 2013-10-18 17:48+0000\n" +"POT-Creation-Date: 2015-02-19 10:15+0000\n" +"PO-Revision-Date: 2015-02-19 10:15+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -31,7 +31,7 @@ msgid "Bank Statement" msgstr "" #. module: account_default_draft_move -#: code:addons/account_default_draft_move/account.py:47 +#: code:addons/account_default_draft_move/account.py:59 #, python-format msgid "Error!" msgstr "" @@ -42,9 +42,19 @@ msgid "Invoice" msgstr "" #. module: account_default_draft_move -#: code:addons/account_default_draft_move/account.py:47 +#: code:addons/account_default_draft_move/account.py:60 #, python-format msgid "You cannot modify a posted entry of this journal.\n" "First you should set the journal to allow cancelling entries." msgstr "" +#. module: account_default_draft_move +#: model:ir.model,name:account_default_draft_move.model_account_config_settings +msgid "account.config.settings" +msgstr "" + +#. module: account_default_draft_move +#: field:account.config.settings,use_journal_setting:0 +#: model:ir.model.fields,field_description:account_default_draft_move.field_account_config_settings_use_journal_setting +msgid "Use journal setting to post journal entries on invoice and bank statement validation" +msgstr "" diff --git a/account_default_draft_move/i18n/en.po b/account_default_draft_move/i18n/en.po index e744754ae..3c1175659 100644 --- a/account_default_draft_move/i18n/en.po +++ b/account_default_draft_move/i18n/en.po @@ -33,7 +33,7 @@ msgid "Bank Statement" msgstr "Bank Statement" #. module: account_default_draft_move -#: code:addons/account_default_draft_move/account.py:47 +#: code:addons/account_default_draft_move/account.py:59 #, python-format msgid "Error!" msgstr "" @@ -44,9 +44,20 @@ msgid "Invoice" msgstr "" #. module: account_default_draft_move -#: code:addons/account_default_draft_move/account.py:47 +#: code:addons/account_default_draft_move/account.py:60 #, python-format msgid "" "You cannot modify a posted entry of this journal.\n" "First you should set the journal to allow cancelling entries." msgstr "" + +#. module: account_default_draft_move +#: model:ir.model,name:account_default_draft_move.model_account_config_settings +msgid "account.config.settings" +msgstr "" + +#. module: account_default_draft_move +#: field:account.config.settings,use_journal_setting:0 +#: model:ir.model.fields,field_description:account_default_draft_move.field_account_config_settings_use_journal_setting +msgid "Use journal setting to post journal entries on invoice and bank statement validation" +msgstr "" diff --git a/account_default_draft_move/i18n/fr.po b/account_default_draft_move/i18n/fr.po index 1f24069d7..29fc58fb8 100644 --- a/account_default_draft_move/i18n/fr.po +++ b/account_default_draft_move/i18n/fr.po @@ -33,7 +33,7 @@ msgid "Bank Statement" msgstr "Relevé bancaire" #. module: account_default_draft_move -#: code:addons/account_default_draft_move/account.py:47 +#: code:addons/account_default_draft_move/account.py:59 #, python-format msgid "Error!" msgstr "" @@ -44,9 +44,20 @@ msgid "Invoice" msgstr "Facture" #. module: account_default_draft_move -#: code:addons/account_default_draft_move/account.py:47 +#: code:addons/account_default_draft_move/account.py:60 #, python-format msgid "" "You cannot modify a posted entry of this journal.\n" "First you should set the journal to allow cancelling entries." msgstr "" + +#. module: account_default_draft_move +#: model:ir.model,name:account_default_draft_move.model_account_config_settings +msgid "account.config.settings" +msgstr "" + +#. module: account_default_draft_move +#: field:account.config.settings,use_journal_setting:0 +#: model:ir.model.fields,field_description:account_default_draft_move.field_account_config_settings_use_journal_setting +msgid "Use journal setting to post journal entries on invoice and bank statement validation" +msgstr "Utiliser les paramètres du journal pour comptabiliser les pièces comptables lièes aux factures et aux extraits bancaires" diff --git a/account_default_draft_move/res_config.py b/account_default_draft_move/res_config.py new file mode 100644 index 000000000..b5b8f4005 --- /dev/null +++ b/account_default_draft_move/res_config.py @@ -0,0 +1,55 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# +# Copyright (c) 2014 ACSONE SA/NV (http://acsone.eu). +# +# 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 . +# +############################################################################## + +from openerp.osv import orm, fields + + +class AccountConfigSettings(orm.TransientModel): + _inherit = 'account.config.settings' + + _columns = { + 'use_journal_setting': fields.boolean( + 'Use journal setting to post journal entries ' + 'on invoice and bank statement validation',), + } + + def set_parameters(self, cr, uid, ids, context=None): + config = self.browse(cr, uid, ids[0], context) + config_pool = self.pool['ir.config_parameter'] + if config.use_journal_setting: + config_pool.set_param(cr, uid, 'use_journal_setting', + config.use_journal_setting) + else: + # remove the key from parameter + ids = config_pool.search(cr, uid, + [('key', '=', 'use_journal_setting')], + context=context) + if ids: + config_pool.unlink(cr, uid, ids) + + def default_get(self, cr, uid, fields, context=None): + res = super(AccountConfigSettings, self).default_get(cr, uid, fields, + context=context) + config_pool = self.pool['ir.config_parameter'] + res['use_journal_setting'] = config_pool.get_param( + cr, uid, 'use_journal_setting', False) + return res diff --git a/account_default_draft_move/res_config_view.xml b/account_default_draft_move/res_config_view.xml new file mode 100644 index 000000000..1ce0227d2 --- /dev/null +++ b/account_default_draft_move/res_config_view.xml @@ -0,0 +1,20 @@ + + + + + + account.config.settings.inherit + + account.config.settings + +
+
+ +
+
+
+
+ +
+
\ No newline at end of file From 0debcdd60aa73b4cccae39e755d7b9dd6bb4cc56 Mon Sep 17 00:00:00 2001 From: Laetitia Gangloff Date: Thu, 19 Feb 2015 14:12:14 +0100 Subject: [PATCH 2/2] Update string and help of entry_posted checkbox --- account_default_draft_move/account.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/account_default_draft_move/account.py b/account_default_draft_move/account.py index b7cd25bd6..2822bffea 100644 --- a/account_default_draft_move/account.py +++ b/account_default_draft_move/account.py @@ -66,3 +66,17 @@ class AccountMove(orm.Model): 'SET state=%s ' 'WHERE id IN %s', ('draft', tuple(ids),)) return True + + +class AccountJournal(orm.Model): + _inherit = 'account.journal' + + def __init__(self, pool, cr): + super(AccountJournal, self).__init__(pool, cr) + # update help of entry_posted flag + self._columns['entry_posted'].string = 'Skip \'Draft\' State' + self._columns['entry_posted'].help = \ + """Check this box if you don't want new journal entries +to pass through the 'draft' state and instead goes directly +to the 'posted state' without any manual validation.""" + return