From 63e80fa37164ec85ad643d09ddb4255289e40fb3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Wed, 20 Sep 2006 18:29:54 +0000
Subject: [PATCH] Add a constraint on accounts, to check that m9's gap and
 account_type are consistant. Attach this constraint to account types.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@10215 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../M9AccountTypeConstraint.py                | 50 +++++++++++++++++++
 .../property_sheet_list.xml                   |  3 ++
 .../PropertySheetTemplateItem/M9Account.py    | 38 ++++++++++++++
 bt5/erp5_accounting_l10n_fr_m9/bt/revision    |  2 +-
 .../bt/template_constraint_id_list            |  1 +
 .../template_portal_type_property_sheet_list  |  1 +
 .../bt/template_property_sheet_id_list        |  1 +
 7 files changed, 95 insertions(+), 1 deletion(-)
 create mode 100644 bt5/erp5_accounting_l10n_fr_m9/ConstraintTemplateItem/M9AccountTypeConstraint.py
 create mode 100644 bt5/erp5_accounting_l10n_fr_m9/PropertySheetTemplateItem/M9Account.py

diff --git a/bt5/erp5_accounting_l10n_fr_m9/ConstraintTemplateItem/M9AccountTypeConstraint.py b/bt5/erp5_accounting_l10n_fr_m9/ConstraintTemplateItem/M9AccountTypeConstraint.py
new file mode 100644
index 0000000000..f8f4880813
--- /dev/null
+++ b/bt5/erp5_accounting_l10n_fr_m9/ConstraintTemplateItem/M9AccountTypeConstraint.py
@@ -0,0 +1,50 @@
+##############################################################################
+#
+# Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.
+#          Jerome Perrin <jerome@nexedi.com>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability 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
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+##############################################################################
+
+from Products.ERP5.Constraint.AccountTypeConstraint import \
+                                  AccountTypeConstraint
+
+class M9AccountTypeConstraint(AccountTypeConstraint):
+  """Account type constraints specific to erp5_accounting_l10n_fr_m9
+  """
+  _account_type_map = (
+    ('gap/fr/m9/1', ('equity', )),
+    ('gap/fr/m9/2', ('asset', )),
+    ('gap/fr/m9/3', ('asset', )),
+    ('gap/fr/m9/4/40', ('liability/payable', )),
+    ('gap/fr/m9/4/41', ('asset/receivable', )),
+    ('gap/fr/m9/4/42', ('liability/payable', )),
+    ('gap/fr/m9/4/43', ('liability/payable', )),
+    ('gap/fr/m9/4', ('liability/payable', 'asset/receivable')),
+    ('gap/fr/m9/5/59', ('asset', )),
+    ('gap/fr/m9/5', ('asset/cash', )),
+    ('gap/fr/m9/6', ('expense', )),
+    ('gap/fr/m9/7', ('income', )),
+    ('gap/fr/m9/8', ('equity', )),
+  )
+
diff --git a/bt5/erp5_accounting_l10n_fr_m9/PortalTypePropertySheetTemplateItem/property_sheet_list.xml b/bt5/erp5_accounting_l10n_fr_m9/PortalTypePropertySheetTemplateItem/property_sheet_list.xml
index d5c85903e0..ed18f54535 100644
--- a/bt5/erp5_accounting_l10n_fr_m9/PortalTypePropertySheetTemplateItem/property_sheet_list.xml
+++ b/bt5/erp5_accounting_l10n_fr_m9/PortalTypePropertySheetTemplateItem/property_sheet_list.xml
@@ -1,4 +1,7 @@
 <property_sheet_list>
+ <portal_type id="Account">
+  <item>M9Account</item>
+ </portal_type>
  <portal_type id="Purchase Invoice Transmission Sheet">
   <item>SortIndex</item>
   <item>Task</item>
diff --git a/bt5/erp5_accounting_l10n_fr_m9/PropertySheetTemplateItem/M9Account.py b/bt5/erp5_accounting_l10n_fr_m9/PropertySheetTemplateItem/M9Account.py
new file mode 100644
index 0000000000..e03689ddbf
--- /dev/null
+++ b/bt5/erp5_accounting_l10n_fr_m9/PropertySheetTemplateItem/M9Account.py
@@ -0,0 +1,38 @@
+##############################################################################
+#
+# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability 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
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+##############################################################################
+
+class M9Account:
+  """Accounts uses constraints from M9 accounting.
+  """
+
+  _constraints = (
+      {   'id': 'm9_account_type_constraint',
+          'description' : 'Account Type and GAP Category checks',
+          'type' : 'M9AccountTypeConstraint', },
+  )
+  
+
diff --git a/bt5/erp5_accounting_l10n_fr_m9/bt/revision b/bt5/erp5_accounting_l10n_fr_m9/bt/revision
index c7930257df..301160a930 100644
--- a/bt5/erp5_accounting_l10n_fr_m9/bt/revision
+++ b/bt5/erp5_accounting_l10n_fr_m9/bt/revision
@@ -1 +1 @@
-7
\ No newline at end of file
+8
\ No newline at end of file
diff --git a/bt5/erp5_accounting_l10n_fr_m9/bt/template_constraint_id_list b/bt5/erp5_accounting_l10n_fr_m9/bt/template_constraint_id_list
index e69de29bb2..d497c9b15f 100644
--- a/bt5/erp5_accounting_l10n_fr_m9/bt/template_constraint_id_list
+++ b/bt5/erp5_accounting_l10n_fr_m9/bt/template_constraint_id_list
@@ -0,0 +1 @@
+M9AccountTypeConstraint
\ No newline at end of file
diff --git a/bt5/erp5_accounting_l10n_fr_m9/bt/template_portal_type_property_sheet_list b/bt5/erp5_accounting_l10n_fr_m9/bt/template_portal_type_property_sheet_list
index 02ff443246..d399441298 100644
--- a/bt5/erp5_accounting_l10n_fr_m9/bt/template_portal_type_property_sheet_list
+++ b/bt5/erp5_accounting_l10n_fr_m9/bt/template_portal_type_property_sheet_list
@@ -1,2 +1,3 @@
+Account | M9Account
 Purchase Invoice Transmission Sheet | SortIndex
 Purchase Invoice Transmission Sheet | Task
\ No newline at end of file
diff --git a/bt5/erp5_accounting_l10n_fr_m9/bt/template_property_sheet_id_list b/bt5/erp5_accounting_l10n_fr_m9/bt/template_property_sheet_id_list
index e69de29bb2..7c1eded822 100644
--- a/bt5/erp5_accounting_l10n_fr_m9/bt/template_property_sheet_id_list
+++ b/bt5/erp5_accounting_l10n_fr_m9/bt/template_property_sheet_id_list
@@ -0,0 +1 @@
+M9Account
\ No newline at end of file
-- 
2.30.9