Commit 08d05945 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

* make more new naming simulation rules

  * Invoice Simulation Rule
  * Invoice Transaction Simulation Rule
  * Trade Model Simulation Rule
* make new rule's test method support new rules only
* make old rule's test method support old rules only


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@33163 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 13de2c96
......@@ -112,7 +112,7 @@
<key> <string>test_method_id</string> </key>
<value>
<tuple>
<string>SimulationMovement_testPaymentRule</string>
<string>SimulationMovement_testPaymentSimulationRule</string>
</tuple>
</value>
</item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>movement = context\n
\n
parent = movement.getParentValue()\n
if parent.getPortalType() != \'Applied Rule\':\n
return False\n
\n
parent_rule = parent.getSpecialiseValue()\n
if parent_rule.getPortalType() not in (\'Invoice Transaction Simulation Rule\',):\n
return False\n
\n
# XXX hardcoded\n
receivable_account_type_list = (\'asset/receivable\',)\n
payable_account_type_list = (\'liability/payable\',)\n
\n
for account in (movement.getSourceValue(portal_type=\'Account\'),\n
movement.getDestinationValue(portal_type=\'Account\')):\n
if account is not None:\n
account_type = account.getAccountType()\n
if account_type in receivable_account_type_list or \\\n
account_type in payable_account_type_list:\n
return True\n
\n
return False\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>rule</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>rule</string>
<string>context</string>
<string>movement</string>
<string>_getattr_</string>
<string>parent</string>
<string>False</string>
<string>parent_rule</string>
<string>receivable_account_type_list</string>
<string>payable_account_type_list</string>
<string>_getiter_</string>
<string>account</string>
<string>None</string>
<string>account_type</string>
<string>True</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SimulationMovement_testPaymentRule</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
1120
\ No newline at end of file
1121
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/Rule_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>divergence</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>2.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Divergence Testers</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/Rule_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/InvoiceTransactionRule_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="Expression" module="Products.CMFCore.Expression"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/Rule_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -3,7 +3,7 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="CategoryMovementGroup" module="Products.ERP5Type.Document.CategoryMovementGroup"/>
<global name="MirrorCategoryMovementGroup" module="Products.ERP5Type.Document.MirrorCategoryMovementGroup"/>
<tuple/>
</tuple>
</pickle>
......@@ -34,7 +34,7 @@
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Category Movement Group</string> </value>
<value> <string>Mirror Category Movement Group</string> </value>
</item>
<item>
<key> <string>tested_property</string> </key>
......
......@@ -3,7 +3,7 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="CategoryMovementGroup" module="Products.ERP5Type.Document.CategoryMovementGroup"/>
<global name="MirrorCategoryMovementGroup" module="Products.ERP5Type.Document.MirrorCategoryMovementGroup"/>
<tuple/>
</tuple>
</pickle>
......@@ -34,7 +34,7 @@
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Category Movement Group</string> </value>
<value> <string>Mirror Category Movement Group</string> </value>
</item>
<item>
<key> <string>tested_property</string> </key>
......
......@@ -3,7 +3,7 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="CategoryMovementGroup" module="Products.ERP5Type.Document.CategoryMovementGroup"/>
<global name="MirrorCategoryMovementGroup" module="Products.ERP5Type.Document.MirrorCategoryMovementGroup"/>
<tuple/>
</tuple>
</pickle>
......@@ -34,7 +34,7 @@
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Category Movement Group</string> </value>
<value> <string>Mirror Category Movement Group</string> </value>
</item>
<item>
<key> <string>tested_property</string> </key>
......
......@@ -3,7 +3,7 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="PropertyMovementGroup" module="Products.ERP5Type.Document.PropertyMovementGroup"/>
<global name="MirrorPropertyMovementGroup" module="Products.ERP5Type.Document.MirrorPropertyMovementGroup"/>
<tuple/>
</tuple>
</pickle>
......@@ -34,7 +34,7 @@
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Property Movement Group</string> </value>
<value> <string>Mirror Property Movement Group</string> </value>
</item>
<item>
<key> <string>tested_property</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="InvoiceSimulationRule" module="Products.ERP5Type.Document.InvoiceSimulationRule"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<dictionary>
<item>
<key> <string>portal_type</string> </key>
<value>
<list>
<string>Simulation Movement</string>
</list>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<dictionary>
<item>
<key> <string>start_date</string> </key>
<value>
<tuple>
<none/>
<none/>
</tuple>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>criterion_property</string> </key>
<value>
<tuple>
<string>portal_type</string>
</tuple>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>default_invoicing_rule</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>expandable_property</string> </key>
<value>
<tuple>
<string>source</string>
<string>source_section</string>
<string>source_decision</string>
<string>source_administration</string>
<string>source_project</string>
<string>source_function</string>
<string>source_payment</string>
<string>source_account</string>
<string>destination</string>
<string>destination_section</string>
<string>destination_decision</string>
<string>destination_administration</string>
<string>destination_project</string>
<string>destination_function</string>
<string>destination_payment</string>
<string>destination_account</string>
<string>start_date</string>
<string>stop_date</string>
<string>description</string>
<string>resource</string>
<string>variation_category_list</string>
<string>variation_property_dict</string>
<string>delivery_mode</string>
<string>incoterm</string>
<string>base_contribution_list</string>
<string>aggregate_list</string>
<string>quantity</string>
<string>quantity_unit</string>
<string>price</string>
<string>price_currency</string>
<string>efficiency</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default_invoice_simulation_rule</string> </value>
</item>
<item>
<key> <string>matching_property</string> </key>
<value>
<tuple>
<string>resource</string>
<string>variation_category_list</string>
<string>variation_property_dict</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Invoice Simulation Rule</string> </value>
</item>
<item>
<key> <string>test_method_id</string> </key>
<value>
<tuple>
<string>SimulationMovement_testInvoiceSimulationRule</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Default Invoice Simulation Rule</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>2</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="CategoryDivergenceTester" module="Products.ERP5Type.Document.CategoryDivergenceTester"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default_category_tester</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Category Divergence Tester</string> </value>
</item>
<item>
<key> <string>solver</string> </key>
<value>
<tuple>
<string>CopyToTarget</string>
</tuple>
</value>
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>aggregate | Aggregate</string>
<string>base_application | Base Application</string>
<string>base_contribution | Base Contribution</string>
<string>destination | Destination</string>
<string>destination_account | Destination Account</string>
<string>destination_administration | Destination Administration</string>
<string>destination_decision | Destination Decision</string>
<string>destination_function | Destination Function</string>
<string>destination_payment | Destination Payment</string>
<string>destination_project | Destination Project</string>
<string>destination_section | Destination Section</string>
<string>price_currency | Price Currency</string>
<string>resource | Resource</string>
<string>source | Source</string>
<string>source_account | Source Account</string>
<string>source_administration | Source Administration</string>
<string>source_decision | Source Decision</string>
<string>source_function | Source Function</string>
<string>source_payment | Source Payment</string>
<string>source_project | Source Project</string>
<string>source_section | Source Section</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="PropertyDivergenceTester" module="Products.ERP5Type.Document.PropertyDivergenceTester"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tested_property_list</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default_property_tester</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Property Divergence Tester</string> </value>
</item>
<item>
<key> <string>solver</string> </key>
<value>
<tuple>
<string>CopyToTarget</string>
</tuple>
</value>
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>start_date | Start Date</string>
<string>stop_date | Stop Date</string>
<string>price | Price</string>
</tuple>
</value>
</item>
<item>
<key> <string>tested_property_list</string> </key>
<value>
<tuple>
<string>aaa</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="QuantityDivergenceTester" module="Products.ERP5Type.Document.QuantityDivergenceTester"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default_quantity_tester</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Quantity Divergence Tester</string> </value>
</item>
<item>
<key> <string>property_tester</string> </key>
<value> <string>quantity</string> </value>
</item>
<item>
<key> <string>solver</string> </key>
<value>
<tuple>
<string>SplitAndDefer</string>
<string>CopyToTarget</string>
</tuple>
</value>
</item>
<item>
<key> <string>solver_list</string> </key>
<value>
<tuple>
<string>Solver</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="InvoiceTransactionSimulationRule" module="Products.ERP5Type.Document.InvoiceTransactionSimulationRule"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<dictionary>
<item>
<key> <string>portal_type</string> </key>
<value>
<list>
<string>Simulation Movement</string>
</list>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>criterion_property</string> </key>
<value>
<tuple>
<string>portal_type</string>
</tuple>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>default_invoice_transaction_rule</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>expandable_property</string> </key>
<value>
<tuple>
<string>destination_administration</string>
<string>destination_decision</string>
<string>destination_function</string>
<string>destination_payment</string>
<string>destination_project</string>
<string>destination_section</string>
<string>source_administration</string>
<string>source_decision</string>
<string>source_function</string>
<string>source_payment</string>
<string>source_project</string>
<string>source_section</string>
<string>start_date</string>
<string>stop_date</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default_invoice_transaction_simulation_rule</string> </value>
</item>
<item>
<key> <string>index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
</value>
</item>
<item>
<key> <string>last_id</string> </key>
<value> <string>15</string> </value>
</item>
<item>
<key> <string>matching_property</string> </key>
<value>
<tuple>
<string>destination</string>
<string>destination_total_asset_price</string>
<string>source</string>
<string>source_total_asset_price</string>
<string>resource</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Invoice Transaction Simulation Rule</string> </value>
</item>
<item>
<key> <string>test_method_id</string> </key>
<value>
<tuple>
<string>SimulationMovement_testInvoiceTransactionSimulationRule</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Default Invoice Transaction Simulation Rule</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>2</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="5" aka="AAAAAAAAAAU=">
<pickle>
<tuple>
<tuple>
<string>Persistence</string>
<string>PersistentMapping</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_container</string> </key>
<value>
<dictionary>
<item>
<key> <string>movement</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
</value>
</item>
<item>
<key> <string>vat_per_region</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="6" aka="AAAAAAAAAAY=">
<pickle>
<tuple>
<tuple>
<string>Persistence</string>
<string>PersistentMapping</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_container</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="7" aka="AAAAAAAAAAc=">
<pickle>
<tuple>
<tuple>
<string>Persistence</string>
<string>PersistentMapping</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_container</string> </key>
<value>
<dictionary>
<item>
<key> <int>0</int> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAg=</string> </persistent>
</value>
</item>
<item>
<key> <int>1</int> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAk=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="8" aka="AAAAAAAAAAg=">
<pickle>
<tuple>
<tuple>
<string>Persistence</string>
<string>PersistentMapping</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_container</string> </key>
<value>
<dictionary>
<item>
<key> <string>portal_rules/default_invoice_transaction_simulation_rule/4</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="9" aka="AAAAAAAAAAk=">
<pickle>
<tuple>
<tuple>
<string>Persistence</string>
<string>PersistentMapping</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_container</string> </key>
<value>
<dictionary>
<item>
<key> <string>portal_rules/default_invoice_transaction_simulation_rule/10</string> </key>
<value> <int>2</int> </value>
</item>
<item>
<key> <string>portal_rules/default_invoice_transaction_simulation_rule/11</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_rules/default_invoice_transaction_simulation_rule/12</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="TradeModelSimulationRule" module="Products.ERP5Type.Document.TradeModelSimulationRule"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<dictionary>
<item>
<key> <string>portal_type</string> </key>
<value>
<list>
<string>Simulation Movement</string>
</list>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>expandable_property_list</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>lines</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<dictionary>
<item>
<key> <string>start_date</string> </key>
<value>
<tuple>
<none/>
<none/>
</tuple>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>criterion_property</string> </key>
<value>
<tuple>
<string>portal_type</string>
</tuple>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>default_trade_model_rule</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>expandable_property</string> </key>
<value>
<tuple>
<string>aggregate_list</string>
<string>delivery_mode_list</string>
<string>description</string>
<string>destination_account_list</string>
<string>destination_administration_list</string>
<string>destination_decision_list</string>
<string>destination_function_list</string>
<string>destination_list</string>
<string>destination_payment_list</string>
<string>destination_section_list</string>
<string>incoterm_list</string>
<string>price_currency_list</string>
<string>resource_list</string>
<string>source_account_list</string>
<string>source_administration_list</string>
<string>source_decision_list</string>
<string>source_function_list</string>
<string>source_list</string>
<string>source_payment_list</string>
<string>source_section_list</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default_trade_model_simulation_rule</string> </value>
</item>
<item>
<key> <string>last_id</string> </key>
<value> <string>3</string> </value>
</item>
<item>
<key> <string>matching_property</string> </key>
<value>
<tuple>
<string>reference</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Trade Model Simulation Rule</string> </value>
</item>
<item>
<key> <string>test_method_id</string> </key>
<value>
<tuple>
<string>SimulationMovement_testTradeModelSimulationRule</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Default Trade Model Simulation Rule</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>2</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees._OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="CategoryDivergenceTester" module="Products.ERP5Type.Document.CategoryDivergenceTester"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default_category_tester</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Category Divergence Tester</string> </value>
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>resource_list | Resource</string>
<string>source_section_list | Source Section</string>
<string>destination_section_list | Destination Section</string>
<string>source_list | Source</string>
<string>destination_list | Destination</string>
<string>source_function_list | Source Function</string>
<string>destination_function_list | Destination Function</string>
<string>source_project_list | Source Project</string>
<string>destination_project_list | Destination Project</string>
<string>aggregate_list | Aggregate</string>
<string>price_currency_list | Price Currency</string>
<string>base_contribution_list | Base Contribution</string>
<string>base_application_list | Base Application</string>
<string>source_account_list | Source Account</string>
<string>destination_account_list | Destination Account</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>default_category_tester</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="PropertyDivergenceTester" module="Products.ERP5Type.Document.PropertyDivergenceTester"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default_property_tester</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Property Divergence Tester</string> </value>
</item>
<item>
<key> <string>tested_property</string> </key>
<value>
<tuple>
<string>start_date | Start Date</string>
<string>stop_date | Stop Date</string>
<string>price | Price</string>
</tuple>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>default_property_tester</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="QuantityDivergenceTester" module="Products.ERP5Type.Document.QuantityDivergenceTester"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>decimal_alignment_enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>decimal_exponent</string> </key>
<value> <string>0.000001</string> </value>
</item>
<item>
<key> <string>decimal_rounding_option</string> </key>
<value> <string>ROUND_DOWN</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default_quantity_tester</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Quantity Divergence Tester</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>default_quantity_tester</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -3,6 +3,11 @@
<item>Invoice Cell</item>
<item>Invoice Line</item>
</portal_type>
<portal_type id="Invoice Simulation Rule">
<item>Category Divergence Tester</item>
<item>Property Divergence Tester</item>
<item>Quantity Divergence Tester</item>
</portal_type>
<portal_type id="Invoice Transaction Rule">
<item>Accounting Rule Cell</item>
<item>Category Divergence Tester</item>
......@@ -10,19 +15,34 @@
<item>Property Divergence Tester</item>
<item>Quantity Divergence Tester</item>
</portal_type>
<portal_type id="Invoice Transaction Simulation Rule">
<item>Accounting Rule Cell</item>
<item>Category Divergence Tester</item>
<item>Predicate</item>
<item>Property Divergence Tester</item>
<item>Quantity Divergence Tester</item>
</portal_type>
<portal_type id="Invoicing Rule">
<item>Category Divergence Tester</item>
<item>Property Divergence Tester</item>
<item>Quantity Divergence Tester</item>
</portal_type>
<portal_type id="Rule Tool">
<item>Invoice Simulation Rule</item>
<item>Invoice Transaction Rule</item>
<item>Invoice Transaction Simulation Rule</item>
<item>Invoicing Rule</item>
<item>Trade Model Rule</item>
<item>Trade Model Simulation Rule</item>
</portal_type>
<portal_type id="Trade Model Rule">
<item>Category Divergence Tester</item>
<item>Property Divergence Tester</item>
<item>Quantity Divergence Tester</item>
</portal_type>
<portal_type id="Trade Model Simulation Rule">
<item>Category Divergence Tester</item>
<item>Property Divergence Tester</item>
<item>Quantity Divergence Tester</item>
</portal_type>
</allowed_content_type_list>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ERP5TypeInformation" module="Products.ERP5Type.ERP5Type"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>acquire_local_roles</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>content_icon</string> </key>
<value> <string>document.gif</string> </value>
</item>
<item>
<key> <string>content_meta_type</string> </key>
<value> <string>ERP5 Invoice Simulation Rule</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string> Transformation Sourcing Rule object make sure\n
items required in a Transformation are sourced\n
</string> </value>
</item>
<item>
<key> <string>factory</string> </key>
<value> <string>addInvoiceSimulationRule</string> </value>
</item>
<item>
<key> <string>filter_content_types</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<tuple>
<string>rule</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Invoice Simulation Rule</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>permission</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ERP5TypeInformation" module="Products.ERP5Type.ERP5Type"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>acquire_local_roles</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>content_icon</string> </key>
<value> <string>document.gif</string> </value>
</item>
<item>
<key> <string>content_meta_type</string> </key>
<value> <string>ERP5 Invoice Transaction Simulation Rule</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string> Invoice Transaction Simulation Rule object make sure an Invoice in the simulation\n
is consistent with the real invoice\n
\n
WARNING: what to do with movement split ?\n
</string> </value>
</item>
<item>
<key> <string>factory</string> </key>
<value> <string>addInvoiceTransactionSimulationRule</string> </value>
</item>
<item>
<key> <string>filter_content_types</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<tuple>
<string>rule</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Invoice Transaction Simulation Rule</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>permission</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="ERP5TypeInformation" module="Products.ERP5Type.ERP5Type"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_property_domain_dict</string> </key>
<value>
<dictionary>
<item>
<key> <string>short_title</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>acquire_local_roles</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>content_icon</string> </key>
<value> <string>rule_icon.gif</string> </value>
</item>
<item>
<key> <string>content_meta_type</string> </key>
<value> <string>ERP5 Trade Model Simulation Rule</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>factory</string> </key>
<value> <string>addTradeModelSimulationRule</string> </value>
</item>
<item>
<key> <string>filter_content_types</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<tuple>
<string>rule</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Trade Model Simulation Rule</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>permission</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<tuple>
<global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>domain_name</string> </key>
<value> <string>erp5_content</string> </value>
</item>
<item>
<key> <string>property_name</string> </key>
<value> <string>short_title</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<tuple>
<global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>domain_name</string> </key>
<value> <string>erp5_content</string> </value>
</item>
<item>
<key> <string>property_name</string> </key>
<value> <string>title</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -7,10 +7,18 @@
<type>Invoice Line</type>
<workflow>delivery_movement_causality_interaction_workflow, delivery_movement_simulation_interaction_workflow, edit_workflow, movement_base_contribution_interaction_workflow, pricing_interaction_workflow, trade_matrix_workflow</workflow>
</chain>
<chain>
<type>Invoice Simulation Rule</type>
<workflow>edit_workflow, rule_validation_workflow</workflow>
</chain>
<chain>
<type>Invoice Transaction Rule</type>
<workflow>edit_workflow, rule_interaction_workflow, rule_validation_workflow</workflow>
</chain>
<chain>
<type>Invoice Transaction Simulation Rule</type>
<workflow>edit_workflow, rule_interaction_workflow, rule_validation_workflow</workflow>
</chain>
<chain>
<type>Invoicing Rule</type>
<workflow>edit_workflow, rule_validation_workflow</workflow>
......@@ -19,4 +27,8 @@
<type>Trade Model Rule</type>
<workflow>edit_workflow, rule_validation_workflow</workflow>
</chain>
<chain>
<type>Trade Model Simulation Rule</type>
<workflow>edit_workflow, rule_validation_workflow</workflow>
</chain>
</workflow_chain>
\ No newline at end of file
......@@ -65,7 +65,7 @@ for movement in movement_list:\n
line = None\n
\n
# case of tax movement \n
if ar.getSpecialiseValue().getPortalType() == \'Tax Rule\':\n
if ar.getSpecialiseValue().getPortalType() in (\'Tax Rule\', \'Tax Simulation Rule\'):\n
for other_rule in ar.getParentValue().contentValues():\n
if other_rule == ar:\n
continue\n
......@@ -73,7 +73,7 @@ for movement in movement_list:\n
line = sm.getDeliveryValue()\n
\n
# case of trade model movement\n
if ar.getParentValue().getParentValue().getSpecialiseValue().getPortalType() == \'Trade Model Rule\':\n
if ar.getParentValue().getParentValue().getSpecialiseValue().getPortalType() in (\'Trade Model Rule\', \'Trade Model Simulation Rule\'):\n
line = ar.getParentValue().getParentValue().getParentValue().getDeliveryValue()\n
\n
# in case of invoice rule (ie. starting from Invoice)\n
......
......@@ -59,9 +59,9 @@ Simulation Movements can come from normal Invoice Transaction Rule\n
and same rule which is children of Trade Model Rule """\n
\n
# search for normal movements\n
kw[\'parent_specialise_portal_type\'] = \'Invoice Transaction Rule\'\n
kw[\'parent_specialise_portal_type\'] = [\'Invoice Transaction Rule\', \'Invoice Transaction Simulation Rule\']\n
kw[\'grand_grand_parent_specialise_portal_type\'] = [\n
\'Invoicing Rule\', \'Invoice Rule\', \'Invoice Root Simulation Rule\', \'Tax Rule\']\n
\'Invoicing Rule\', \'Invoice Simulation Rule\', \'Invoice Rule\', \'Invoice Root Simulation Rule\', \'Tax Rule\']\n
if context.Invoice_isAdvanced():\n
kw[\'explanation_portal_type\'] = [\'%s Order\' % trade_type,\n
\'%s Invoice\' % trade_type,\n
......@@ -80,7 +80,7 @@ normal_movement_list = [movement for movement in context.InvoiceTransaction_zSel
\n
# update query to search for movements which are children of Trade Model Rule\n
kw.pop(\'grand_parent_simulation_state\')\n
kw[\'grand_grand_parent_specialise_portal_type\'] = \'Trade Model Rule\'\n
kw[\'grand_grand_parent_specialise_portal_type\'] = [\'Trade Model Rule\', \'Trade Model Simulation Rule\']\n
kw[\'grand_grand_grand_parent_simulation_state\'] = [\'started\']\n
\n
search_kw = kw.copy()\n
......
......@@ -53,7 +53,7 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>kw[\'parent_specialise_portal_type\'] = \'Invoicing Rule\'\n
<value> <string>kw[\'parent_specialise_portal_type\'] = [\'Invoicing Rule\', \'Invoice Simulation Rule\']\n
kw[\'explanation_portal_type\'] = [\'Purchase Order\', \'Purchase Packing List\']\n
kw[\'portal_type\'] = \'Simulation Movement\'\n
kw[\'grand_parent_simulation_state\'] = [\'started\', \'stopped\',\'delivered\']\n
......
......@@ -53,7 +53,7 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>kw[\'parent_specialise_portal_type\'] = \'Trade Model Rule\'\n
<value> <string>kw[\'parent_specialise_portal_type\'] = [\'Trade Model Rule\', \'Trade Model Simulation Rule\']\n
kw[\'explanation_portal_type\'] = [\'Purchase Order\', \'Purchase Packing List\', \'Purchase Invoice Transaction\', \'Purchase Invoice\']\n
kw[\'portal_type\'] = \'Simulation Movement\'\n
kw[\'grand_parent_simulation_state\'] = [\'started\', \'stopped\', \'delivered\', \'planned\', \'confirmed\']\n
......
......@@ -53,7 +53,7 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>kw[\'parent_specialise_portal_type\'] = \'Invoicing Rule\'\n
<value> <string>kw[\'parent_specialise_portal_type\'] = [\'Invoicing Rule\', \'Invoice Simulation Rule\']\n
kw[\'explanation_portal_type\'] = [\'Sale Order\', \'Sale Packing List\']\n
kw[\'portal_type\'] = \'Simulation Movement\'\n
kw[\'grand_parent_simulation_state\'] = [\'started\', \'stopped\',\'delivered\']\n
......
......@@ -53,7 +53,7 @@
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>kw[\'parent_specialise_portal_type\'] = \'Trade Model Rule\'\n
<value> <string>kw[\'parent_specialise_portal_type\'] = [\'Trade Model Rule\', \'Trade Model Simulation Rule\']\n
kw[\'explanation_portal_type\'] = [\'Sale Order\', \'Sale Packing List\', \'Sale Invoice Transaction\', \'Sale Invoice\']\n
kw[\'portal_type\'] = \'Simulation Movement\'\n
kw[\'grand_parent_simulation_state\'] = [\'started\', \'stopped\', \'delivered\', \'planned\', \'confirmed\']\n
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>movement = context\n
\n
parent = movement.getParentValue()\n
if parent.getPortalType() == \'Applied Rule\':\n
parent_rule = parent.getSpecialiseValue()\n
parent_rule_portal_type = parent_rule.getPortalType()\n
if parent_rule_portal_type not in [\'Delivery Root Simulation Rule\', \'Delivery Simulation Rule\']:\n
return False\n
# XXX can we create invoicing rule for Production Order?\n
if parent_rule_portal_type in [\'Delivery Simulation Rule\',] and \\\n
parent.getParentValue().getParentValue().getSpecialiseValue().getPortalType() not in [\'Order Root Simulation Rule\']:\n
return False\n
\n
source_section = movement.getSourceSection()\n
destination_section = movement.getDestinationSection()\n
if source_section == destination_section or source_section is None \\\n
or destination_section is None:\n
return False\n
\n
return True\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>rule</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>rule</string>
<string>context</string>
<string>movement</string>
<string>_getattr_</string>
<string>parent</string>
<string>parent_rule</string>
<string>parent_rule_portal_type</string>
<string>False</string>
<string>source_section</string>
<string>destination_section</string>
<string>None</string>
<string>True</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SimulationMovement_testInvoicingRule</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -61,7 +61,6 @@ if parent.getPortalType() != \'Applied Rule\':\n
\n
parent_rule = parent.getSpecialiseValue()\n
if parent_rule.getPortalType() not in (\'Invoice Rule\',\n
\'Invoice Root Simulation Rule\',\n
\'Invoicing Rule\',\n
\'Trade Model Rule\',\n
\'Tax Rule\'):\n
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>movement = context\n
\n
parent = movement.getParentValue()\n
if parent.getPortalType() != \'Applied Rule\':\n
return False\n
\n
parent_rule = parent.getSpecialiseValue()\n
if parent_rule.getPortalType() not in (\'Invoice Root Simulation Rule\',\n
\'Invoice Simulation Rule\',\n
\'Trade Model Simulation Rule\',\n
\'Tax Simulation Rule\'):\n
return False\n
\n
delivery_movement = movement.getDeliveryValue()\n
if delivery_movement is not None and (\n
delivery_movement.getPortalType() not in movement.getPortalInvoiceMovementTypeList()\n
and delivery_movement.getPortalType() not in movement.getPortalTaxMovementTypeList()):\n
return False\n
\n
return rule.getMatchingCell(movement) is not None\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>rule</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>rule</string>
<string>context</string>
<string>movement</string>
<string>_getattr_</string>
<string>parent</string>
<string>False</string>
<string>parent_rule</string>
<string>delivery_movement</string>
<string>None</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SimulationMovement_testInvoiceTransactionRule</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -59,11 +59,7 @@ parent = movement.getParentValue()\n
if parent.getPortalType() == \'Applied Rule\':\n
parent_rule = parent.getSpecialiseValue()\n
parent_rule_portal_type = parent_rule.getPortalType()\n
if parent_rule_portal_type not in [\'Order Rule\', \'Delivery Rule\', \'Delivery Root Simulation Rule\', \'Delivery Simulation Rule\']:\n
return False\n
# XXX can we create invoicing rule for Production Order?\n
if parent_rule_portal_type in [\'Delivery Simulation Rule\',] and \\\n
parent.getParentValue().getParentValue().getSpecialiseValue().getPortalType() not in [\'Order Root Simulation Rule\']:\n
if parent_rule_portal_type not in [\'Order Rule\', \'Delivery Rule\']:\n
return False\n
\n
source_section = movement.getSourceSection()\n
......
......@@ -61,7 +61,6 @@ if parent.getPortalType() != \'Applied Rule\':\n
\n
parent_rule = parent.getSpecialiseValue()\n
if parent_rule.getPortalType() not in (\'Invoice Rule\',\n
\'Invoice Root Simulation Rule\',\n
\'Invoicing Rule\'):\n
return False\n
\n
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>movement = context\n
\n
parent = movement.getParentValue()\n
if parent.getPortalType() != \'Applied Rule\':\n
return False\n
\n
parent_rule = parent.getSpecialiseValue()\n
if parent_rule.getPortalType() not in (\'Invoice Root Simulation Rule\',\n
\'Invoice Simulation Rule\'):\n
return False\n
\n
return True\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>rule</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>func_code</string> </key>
<value>
<object>
<klass>
<global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
<string>rule</string>
<string>context</string>
<string>movement</string>
<string>_getattr_</string>
<string>parent</string>
<string>False</string>
<string>parent_rule</string>
<string>True</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>SimulationMovement_testTradeModelRule</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
341
\ No newline at end of file
342
\ No newline at end of file
......@@ -2,7 +2,11 @@ Invoice Line | price
Invoice Line | quantity
Invoice Line | view
Invoice Line | view_trade_model
Invoice Simulation Rule | view
Invoice Transaction Rule | divergence
Invoice Transaction Rule | view
Invoice Transaction Simulation Rule | divergence
Invoice Transaction Simulation Rule | view
Invoicing Rule | view
Trade Model Rule | view
Trade Model Simulation Rule | view
\ No newline at end of file
portal_deliveries/payment_transaction_builder
portal_deliveries/payment_transaction_builder/**
portal_rules/default_invoice_simulation_rule
portal_rules/default_invoice_simulation_rule/**
portal_rules/default_invoice_transaction_rule
portal_rules/default_invoice_transaction_rule/**
portal_rules/default_invoice_transaction_simulation_rule
portal_rules/default_invoice_transaction_simulation_rule/**
portal_rules/default_invoicing_rule
portal_rules/default_invoicing_rule/**
portal_rules/default_trade_model_rule
portal_rules/default_trade_model_rule/**
portal_rules/default_trade_model_simulation_rule
portal_rules/default_trade_model_simulation_rule/**
\ No newline at end of file
Invoice Line | Invoice Cell
Invoice Line | Invoice Line
Invoice Simulation Rule | Category Divergence Tester
Invoice Simulation Rule | Property Divergence Tester
Invoice Simulation Rule | Quantity Divergence Tester
Invoice Transaction Rule | Accounting Rule Cell
Invoice Transaction Rule | Category Divergence Tester
Invoice Transaction Rule | Predicate
Invoice Transaction Rule | Property Divergence Tester
Invoice Transaction Rule | Quantity Divergence Tester
Invoice Transaction Simulation Rule | Accounting Rule Cell
Invoice Transaction Simulation Rule | Category Divergence Tester
Invoice Transaction Simulation Rule | Predicate
Invoice Transaction Simulation Rule | Property Divergence Tester
Invoice Transaction Simulation Rule | Quantity Divergence Tester
Invoicing Rule | Category Divergence Tester
Invoicing Rule | Property Divergence Tester
Invoicing Rule | Quantity Divergence Tester
Rule Tool | Invoice Simulation Rule
Rule Tool | Invoice Transaction Rule
Rule Tool | Invoice Transaction Simulation Rule
Rule Tool | Invoicing Rule
Rule Tool | Trade Model Rule
Rule Tool | Trade Model Simulation Rule
Trade Model Rule | Category Divergence Tester
Trade Model Rule | Property Divergence Tester
Trade Model Rule | Quantity Divergence Tester
Trade Model Simulation Rule | Category Divergence Tester
Trade Model Simulation Rule | Property Divergence Tester
Trade Model Simulation Rule | Quantity Divergence Tester
\ No newline at end of file
Invoice Cell
Invoice Line
Invoice Simulation Rule
Invoice Transaction Rule
Invoice Transaction Simulation Rule
Invoicing Rule
Trade Model Rule
Trade Model Simulation Rule
\ No newline at end of file
......@@ -8,10 +8,17 @@ Invoice Line | edit_workflow
Invoice Line | movement_base_contribution_interaction_workflow
Invoice Line | pricing_interaction_workflow
Invoice Line | trade_matrix_workflow
Invoice Simulation Rule | edit_workflow
Invoice Simulation Rule | rule_validation_workflow
Invoice Transaction Rule | edit_workflow
Invoice Transaction Rule | rule_interaction_workflow
Invoice Transaction Rule | rule_validation_workflow
Invoice Transaction Simulation Rule | edit_workflow
Invoice Transaction Simulation Rule | rule_interaction_workflow
Invoice Transaction Simulation Rule | rule_validation_workflow
Invoicing Rule | edit_workflow
Invoicing Rule | rule_validation_workflow
Trade Model Rule | edit_workflow
Trade Model Rule | rule_validation_workflow
Trade Model Simulation Rule | edit_workflow
Trade Model Simulation Rule | rule_validation_workflow
\ No newline at end of file
##############################################################################
#
# Copyright (c) 2010 Nexedi SA and Contributors. 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions
from Products.ERP5.Document.InvoicingRule import InvoicingRule
class InvoiceSimulationRule(InvoicingRule):
"""
Invoice Simulation Rule expand simulation created by a order or delivery rule.
"""
# CMF Type Definition
meta_type = 'ERP5 Invoice Simulation Rule'
portal_type = 'Invoice Simulation Rule'
add_permission = Permissions.AddPortalContent
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
##############################################################################
#
# Copyright (c) 2010 Nexedi SA and Contributors. 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions
from Products.ERP5.Document.InvoiceTransactionRule import InvoiceTransactionRule
class InvoiceTransactionSimulationRule(InvoiceTransactionRule):
"""
Invoice Transaction Simulation Rule object generates accounting movements for
each invoice movement based on category membership and other
predicated. Template accounting movements are stored in cells inside
an instance of the InvoiceTransactionRule.
"""
# CMF Type Definition
meta_type = 'ERP5 Invoice Transaction Simulation Rule'
portal_type = 'Invoice Transaction Simulation Rule'
add_permission = Permissions.AddPortalContent
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
##############################################################################
#
# Copyright (c) 2010 Nexedi SA and Contributors. 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions
from Products.ERP5.Document.TradeModelRule import TradeModelRule
class TradeModelSimulationRule(TradeModelRule):
"""
Rule for Trade Model
"""
# CMF Type Definition
meta_type = 'ERP5 Trade Model Simulation Rule'
portal_type = 'Trade Model Simulation Rule'
add_permission = Permissions.AddPortalContent
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment