diff --git a/account_constraints/__init__.py b/account_constraints/__init__.py
index 403b23fcb..9fd8f5806 100644
--- a/account_constraints/__init__.py
+++ b/account_constraints/__init__.py
@@ -17,4 +17,4 @@
# along with this program. If not, see .
#
##############################################################################
-from . import account_constraints
+from . import model
diff --git a/account_constraints/model/__init__.py b/account_constraints/model/__init__.py
new file mode 100644
index 000000000..28d810046
--- /dev/null
+++ b/account_constraints/model/__init__.py
@@ -0,0 +1,33 @@
+# -*- coding: utf-8 -*-
+#
+#
+# Authors: Adrien Peiffer
+# Copyright (c) 2014 Acsone SA/NV (http://www.acsone.eu)
+# All Rights Reserved
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsibility of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs.
+# End users who are looking for a ready-to-use solution with commercial
+# guarantees and support are strongly advised to contact a Free Software
+# Service Company.
+#
+# 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 . import account_bank_statement
+from . import account_invoice
+from . import account_journal
+from . import account_move_line
+from . import account_move
diff --git a/account_constraints/model/account_bank_statement.py b/account_constraints/model/account_bank_statement.py
new file mode 100644
index 000000000..22010bc81
--- /dev/null
+++ b/account_constraints/model/account_bank_statement.py
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Author Joel Grand-Guillaume. Copyright 2012 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 .
+#
+##############################################################################
+
+from openerp import models, api
+
+
+class AccountBankStatement(models.Model):
+ _inherit = "account.bank.statement"
+
+ @api.multi
+ def button_cancel(self):
+ """Override the method to add the key 'from_parent_object' in
+ the context. This is to allow to delete move line related to
+ bank statement through the cancel button.
+ """
+ self = self.with_context(from_parent_object=True)
+ return super(AccountBankStatement, self).button_cancel()
+
+ @api.multi
+ def button_confirm_bank(self):
+ """Add the from_parent_object key in context in order to be able
+ to post the move.
+ """
+ self = self.with_context(from_parent_object=True)
+ return super(AccountBankStatement, self).button_confirm_bank()
+
+
+class AccountBankStatementLine(models.Model):
+ _inherit = "account.bank.statement.line"
+
+ @api.multi
+ def process_reconciliation(self, mv_line_dicts):
+ """Add the from_parent_object key in context in order to be able
+ to balanced the move.
+ """
+ self = self.with_context(from_parent_object=True)
+ return super(AccountBankStatementLine, self)\
+ .process_reconciliation(mv_line_dicts)
diff --git a/account_constraints/model/account_invoice.py b/account_constraints/model/account_invoice.py
new file mode 100644
index 000000000..5e59ae9d0
--- /dev/null
+++ b/account_constraints/model/account_invoice.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Author Joel Grand-Guillaume. Copyright 2012 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 .
+#
+##############################################################################
+
+from openerp import models, api
+
+
+class AccountInvoice(models.Model):
+ _inherit = "account.invoice"
+
+ @api.multi
+ def action_cancel(self):
+ """Override the method to add the key 'from_parent_object' in
+ the context. This is to allow to delete move line related to
+ invoice through the cancel button.
+ """
+ self = self.with_context(from_parent_object=True)
+ return super(AccountInvoice, self).action_cancel()
+
+ @api.multi
+ def action_move_create(self):
+ """Override the method to add the key 'from_parent_object' in
+ the context."""
+ self = self.with_context(from_parent_object=True)
+ return super(AccountInvoice, self).action_move_create()
diff --git a/account_constraints/model/account_journal.py b/account_constraints/model/account_journal.py
new file mode 100644
index 000000000..dd02dd62a
--- /dev/null
+++ b/account_constraints/model/account_journal.py
@@ -0,0 +1,30 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Author Joel Grand-Guillaume. Copyright 2012 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 .
+#
+##
+from openerp import models, fields
+
+
+class AccountJournal(models.Model):
+ _inherit = 'account.journal'
+ allow_date_fy = fields.Boolean(string='Check Date in Fiscal Year',
+ help='If set to True then do not '
+ 'accept the entry if '
+ 'the entry date is not into '
+ 'the fiscal year dates',
+ default=True)
diff --git a/account_constraints/model/account_move.py b/account_constraints/model/account_move.py
new file mode 100644
index 000000000..3123cbf87
--- /dev/null
+++ b/account_constraints/model/account_move.py
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Author Joel Grand-Guillaume. Copyright 2012 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 .
+#
+##############################################################################
+
+from openerp import models, api
+
+
+class AccountMove(models.Model):
+ _inherit = "account.move"
+
+ @api.multi
+ def _check_fiscal_year(self):
+ for move in self:
+ if move.journal_id.allow_date_fy:
+ date_start = move.period_id.fiscalyear_id.date_start
+ date_stop = move.period_id.fiscalyear_id.date_stop
+ if not date_start <= move.date <= date_stop:
+ return False
+ return True
+
+ _constraints = [
+ (_check_fiscal_year,
+ 'You cannot create entries with date not in the '
+ 'fiscal year of the chosen period',
+ ['line_id']),
+ ]
diff --git a/account_constraints/account_constraints.py b/account_constraints/model/account_move_line.py
similarity index 100%
rename from account_constraints/account_constraints.py
rename to account_constraints/model/account_move_line.py