Commit c94e2775 authored by Jérome Perrin's avatar Jérome Perrin

When we modify a transaction with a grouping reference, reset this grouping...

When we modify a transaction with a grouping reference, reset this grouping reference if the group is not longer valid after modification

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@20081 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent ffd048e3
<?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>Python_magic</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</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>"""Resets grouping reference on this line and all related lines.\n
\n
If the parameter keep_if_valid_group is true, then the grouping reference\n
will be kept as is if the group is still valid, ie. the total quantity\n
of all accounting lines in the group is 0.\n
"""\n
portal = context.getPortalObject()\n
precision = context.getResourceValue(portal_type=\'Currency\').getQuantityPrecision()\n
\n
assert context.getGroupingReference()\n
\n
if context.AccountingTransaction_isSourceView():\n
node_uid = context.getSourceUid()\n
section_uid = context.getSourceSectionUid()\n
mirror_section_uid = context.getDestinationSectionUid()\n
else:\n
node_uid = context.getDestinationUid()\n
section_uid = context.getDestinationSectionUid()\n
mirror_section_uid = context.getSourceSectionUid()\n
\n
line_list = portal.portal_simulation.getMovementHistoryList(\n
portal_type=portal.getPortalAccountingMovementTypeList(),\n
grouping_reference=context.getGroupingReference(),\n
node_uid=node_uid,\n
section_uid=section_uid,\n
mirror_section_uid=mirror_section_uid)\n
\n
# If the group is still valid, we may want to keep it as is.\n
if round(sum([(l.total_price or 0) for l in line_list]), precision) == 0 and keep_if_valid_group:\n
return\n
\n
for line in line_list:\n
line.setGroupingReference(None)\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>keep_if_valid_group=0</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>keep_if_valid_group</string>
<string>_getattr_</string>
<string>context</string>
<string>portal</string>
<string>precision</string>
<string>AssertionError</string>
<string>node_uid</string>
<string>section_uid</string>
<string>mirror_section_uid</string>
<string>line_list</string>
<string>round</string>
<string>sum</string>
<string>append</string>
<string>$append0</string>
<string>_getiter_</string>
<string>l</string>
<string>line</string>
<string>None</string>
</tuple>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>func_defaults</string> </key>
<value>
<tuple>
<int>0</int>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>AccountingTransactionLine_resetGroupingReference</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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>Python_magic</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</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>"""When transaction is restarted, we\'ll check if we have to break existing\n
grouping references on lines.\n
"""\n
transaction = sci[\'object\']\n
for line in transaction.getMovementList(\n
portal_type=sci.getPortal().getPortalAccountingMovementTypeList()):\n
if line.getGroupingReference():\n
line.activate(after_path_and_method_id=(\n
(transaction.getPath(), (\'recursiveImmediateReindexObject\', \'immediateReindexObject\')),\n
(line.getPath(), (\'recursiveImmediateReindexObject\', \'immediateReindexObject\')),),\n
).AccountingTransactionLine_resetGroupingReference(keep_if_valid_group=1)\n
</string> </value>
</item>
<item>
<key> <string>_code</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_filepath</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>sci</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>sci</string>
<string>_getitem_</string>
<string>transaction</string>
<string>_getiter_</string>
<string>_getattr_</string>
<string>line</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>onRestart</string> </value>
</item>
<item>
<key> <string>warnings</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -29,7 +29,7 @@
</item>
<item>
<key> <string>after_script_name</string> </key>
<value> <string></string> </value>
<value> <string>onRestart</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......
645
\ No newline at end of file
648
\ No newline at end of file
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