Commit c1ebef5b authored by Sebastien Robin's avatar Sebastien Robin

many changes on account incident because specification has changed.

Fixed security problem on currency sale

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@12447 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 55aa6c5d
...@@ -108,6 +108,7 @@ ...@@ -108,6 +108,7 @@
<string>my_source_decision_title</string> <string>my_source_decision_title</string>
<string>my_responsible_title</string> <string>my_responsible_title</string>
<string>my_source_total_asset_price</string> <string>my_source_total_asset_price</string>
<string>my_resource_title</string>
</list> </list>
</value> </value>
</item> </item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.StandardFields</string>
<string>StringField</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_owner</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_resource_title</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
<item>
<key> <string>required_not_found</string> </key>
<value> <string>Input is required but no input given.</string> </value>
</item>
<item>
<key> <string>too_long</string> </key>
<value> <string>Too much input was given.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_maxwidth</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>display_width</string> </key>
<value> <int>20</int> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>max_length</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>required</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Currency</string> </value>
</item>
<item>
<key> <string>truncate</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>unicode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>whitespace_preserve</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -69,12 +69,22 @@ ...@@ -69,12 +69,22 @@
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>request = context.REQUEST\n <value> <string>request = context.REQUEST\n
currency = context.getResourceId()\n
\n
if currency != context.Baobab_getPortalReferenceCurrencyID():\n
cash_status = [\'not_defined\']\n
emission_letter = [\'not_defined\']\n
variation = [\'not_defined\']\n
else:\n
cash_status = None\n
emission_letter = None\n
variation = context.Baobab_getResourceVintageList(banknote=1, coin=1)\n
\n \n
cash_detail_dict = {\'line_portal_type\' : \'Incoming Cash Incident Line\'\n cash_detail_dict = {\'line_portal_type\' : \'Incoming Cash Incident Line\'\n
, \'operation_currency\' : context.Baobab_getPortalReferenceCurrencyID()\n , \'operation_currency\' : currency\n
, \'cash_status_list\' : None\n , \'cash_status_list\' : cash_status\n
, \'emission_letter_list\' : None\n , \'emission_letter_list\' : emission_letter\n
, \'variation_list\' : context.Baobab_getResourceVintageList(banknote=1, coin=1)\n , \'variation_list\' : variation\n
, \'currency_cash_portal_type\': None\n , \'currency_cash_portal_type\': None\n
, \'read_only\' : False\n , \'read_only\' : False\n
, \'column_base_category\' : \'variation\'\n , \'column_base_category\' : \'variation\'\n
...@@ -135,6 +145,10 @@ return context.CashDelivery_generateCashDetailInputDialog(listbox = None\n ...@@ -135,6 +145,10 @@ return context.CashDelivery_generateCashDetailInputDialog(listbox = None\n
<string>_getattr_</string> <string>_getattr_</string>
<string>context</string> <string>context</string>
<string>request</string> <string>request</string>
<string>currency</string>
<string>cash_status</string>
<string>emission_letter</string>
<string>variation</string>
<string>None</string> <string>None</string>
<string>False</string> <string>False</string>
<string>cash_detail_dict</string> <string>cash_detail_dict</string>
......
...@@ -69,12 +69,22 @@ ...@@ -69,12 +69,22 @@
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>request = context.REQUEST\n <value> <string>request = context.REQUEST\n
currency = context.getResourceId()\n
\n
if currency != context.Baobab_getPortalReferenceCurrencyID():\n
cash_status = [\'not_defined\']\n
emission_letter = [\'not_defined\']\n
variation = [\'not_defined\']\n
else:\n
cash_status = None\n
emission_letter = None\n
variation = context.Baobab_getResourceVintageList(banknote=1, coin=1)\n
\n \n
cash_detail_dict = {\'line_portal_type\' : \'Outgoing Cash Incident Line\'\n cash_detail_dict = {\'line_portal_type\' : \'Outgoing Cash Incident Line\'\n
, \'operation_currency\' : context.Baobab_getPortalReferenceCurrencyID()\n , \'operation_currency\' : currency\n
, \'cash_status_list\' : None\n , \'cash_status_list\' : cash_status\n
, \'emission_letter_list\' : None\n , \'emission_letter_list\' : emission_letter\n
, \'variation_list\' : context.Baobab_getResourceVintageList(banknote=1, coin=1)\n , \'variation_list\' : variation\n
, \'currency_cash_portal_type\': None\n , \'currency_cash_portal_type\': None\n
, \'read_only\' : False\n , \'read_only\' : False\n
, \'column_base_category\' : \'variation\'\n , \'column_base_category\' : \'variation\'\n
...@@ -135,6 +145,10 @@ return context.CashDelivery_generateCashDetailInputDialog(listbox = None\n ...@@ -135,6 +145,10 @@ return context.CashDelivery_generateCashDetailInputDialog(listbox = None\n
<string>_getattr_</string> <string>_getattr_</string>
<string>context</string> <string>context</string>
<string>request</string> <string>request</string>
<string>currency</string>
<string>cash_status</string>
<string>emission_letter</string>
<string>variation</string>
<string>None</string> <string>None</string>
<string>False</string> <string>False</string>
<string>cash_detail_dict</string> <string>cash_detail_dict</string>
......
...@@ -86,16 +86,17 @@ source = context.getSource()\n ...@@ -86,16 +86,17 @@ source = context.getSource()\n
baobab_source = None\n baobab_source = None\n
\n \n
# Get the history of the workflow\n # Get the history of the workflow\n
user_id=\'None\'\n user_id=None\n
\n \n
for workflow_item in context.Base_getWorkflowHistoryItemList(\'currency_sale_workflow\',display=0):\n for workflow_item in context.Base_getWorkflowHistoryItemList(\'currency_sale_workflow\',display=0):\n
\n \n
if workflow_item.getProperty(\'action\')==\'deliver_action\':\n if workflow_item.getProperty(\'action\')==\'deliver_action\':\n
user_id=workflow_item.getProperty(\'actor\')\n user_id=workflow_item.getProperty(\'actor\')\n
\n \n
site_list = context.Baobab_getUserAssignedSiteList(user_id=user_id)\n if user_id is not None:\n
site_list = context.Baobab_getUserAssignedSiteList(user_id=user_id)\n
\n \n
for site in site_list:\n for site in site_list:\n
site_value = context.portal_categories.getCategoryValue(site)\n site_value = context.portal_categories.getCategoryValue(site)\n
\n \n
if site_value.getVaultType().endswith(\'guichet\') and source in site:\n if site_value.getVaultType().endswith(\'guichet\') and source in site:\n
......
...@@ -335,7 +335,7 @@ ...@@ -335,7 +335,7 @@
</tuple> </tuple>
<tuple> <tuple>
<string>source_reference</string> <string>source_reference</string>
<string encoding="base64">UsOpZsOpcmVuY2U=</string> <string>Reference</string>
</tuple> </tuple>
<tuple> <tuple>
<string>delivery.start_date</string> <string>delivery.start_date</string>
......
...@@ -341,7 +341,7 @@ ...@@ -341,7 +341,7 @@
</tuple> </tuple>
<tuple> <tuple>
<string>source_reference</string> <string>source_reference</string>
<string encoding="base64">UsOpZsOpcmVuY2U=</string> <string>Reference</string>
</tuple> </tuple>
<tuple> <tuple>
<string>delivery.start_date</string> <string>delivery.start_date</string>
...@@ -453,6 +453,10 @@ ...@@ -453,6 +453,10 @@
<list/> <list/>
</value> </value>
</item> </item>
<item>
<key> <string>page_template</string> </key>
<value> <string></string> </value>
</item>
<item> <item>
<key> <string>portal_types</string> </key> <key> <string>portal_types</string> </key>
<value> <value>
......
...@@ -68,7 +68,8 @@ ...@@ -68,7 +68,8 @@
</item> </item>
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>return None\n <value> <string>#return None\n
return context.getSource()\n
</string> </value> </string> </value>
</item> </item>
<item> <item>
...@@ -119,7 +120,8 @@ ...@@ -119,7 +120,8 @@
<tuple> <tuple>
<string>args</string> <string>args</string>
<string>kw</string> <string>kw</string>
<string>None</string> <string>_getattr_</string>
<string>context</string>
</tuple> </tuple>
</value> </value>
</item> </item>
......
...@@ -68,24 +68,7 @@ ...@@ -68,24 +68,7 @@
</item> </item>
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>transaction = state_change[\'object\']\n <value> <string>return None\n
bank_account = transaction.getDestinationPaymentValue()\n
price = transaction.getSourceTotalAssetPrice()\n
line = transaction.get(\'movement\')\n
\n
in_list = transaction.objectValues(portal_type=\'Incoming Account Incident Line\')\n
out_list = transaction.objectValues(portal_type=\'Outgoing Account Incident Line\')\n
\n
if (len(in_list)!= 0): \n
if line is not None and line.getPortalType() == \'Banking Operation Line\':\n
# This is a single currency operation, so it is not necessary to convert the price.\n
line.setSourceCredit(price)\n
\n
elif (len(out_list) != 0) :\n
line = transaction.get(\'movement\')\n
if line is not None and line.getPortalType() == \'Banking Operation Line\':\n
# This is a single currency operation, so it is not necessary to convert the price.\n
line.setSourceDebit(price)\n
</string> </value> </string> </value>
</item> </item>
<item> <item>
...@@ -108,15 +91,7 @@ elif (len(out_list) != 0) :\n ...@@ -108,15 +91,7 @@ elif (len(out_list) != 0) :\n
</item> </item>
<item> <item>
<key> <string>_params</string> </key> <key> <string>_params</string> </key>
<value> <string>state_change</string> </value> <value> <string>*args, **kw</string> </value>
</item>
<item>
<key> <string>_proxy_roles</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item> </item>
<item> <item>
<key> <string>errors</string> </key> <key> <string>errors</string> </key>
...@@ -136,22 +111,14 @@ elif (len(out_list) != 0) :\n ...@@ -136,22 +111,14 @@ elif (len(out_list) != 0) :\n
<dictionary> <dictionary>
<item> <item>
<key> <string>co_argcount</string> </key> <key> <string>co_argcount</string> </key>
<value> <int>1</int> </value> <value> <int>0</int> </value>
</item> </item>
<item> <item>
<key> <string>co_varnames</string> </key> <key> <string>co_varnames</string> </key>
<value> <value>
<tuple> <tuple>
<string>state_change</string> <string>args</string>
<string>_getitem_</string> <string>kw</string>
<string>transaction</string>
<string>_getattr_</string>
<string>bank_account</string>
<string>price</string>
<string>line</string>
<string>in_list</string>
<string>out_list</string>
<string>len</string>
<string>None</string> <string>None</string>
</tuple> </tuple>
</value> </value>
...@@ -169,7 +136,7 @@ elif (len(out_list) != 0) :\n ...@@ -169,7 +136,7 @@ elif (len(out_list) != 0) :\n
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>updateBankingOperation</string> </value> <value> <string>OutgoingCashIncidentLine_getBaobabSource</string> </value>
</item> </item>
<item> <item>
<key> <string>warnings</string> </key> <key> <string>warnings</string> </key>
......
...@@ -74,12 +74,13 @@ ...@@ -74,12 +74,13 @@
from Products.DCWorkflow.DCWorkflow import ValidationFailed\n from Products.DCWorkflow.DCWorkflow import ValidationFailed\n
from Products.ERP5Type.Message import Message\n from Products.ERP5Type.Message import Message\n
\n \n
txn = state_change[\'object\']\n transaction = state_change[\'object\']\n
date = transaction.getStartDate()\n
\n \n
user_id = txn.portal_membership.getAuthenticatedMember().getUserName()\n user_id = transaction.portal_membership.getAuthenticatedMember().getUserName()\n
site_list = context.Baobab_getUserAssignedSiteList(user_id=user_id)\n site_list = context.Baobab_getUserAssignedSiteList(user_id=user_id)\n
# context.log(\'validateVaultBalance site_list\',site_list)\n # context.log(\'validateVaultBalance site_list\',site_list)\n
source = txn.getSource()\n source = transaction.getSource()\n
baobab_source = None\n baobab_source = None\n
for site in site_list:\n for site in site_list:\n
site_value = context.portal_categories.getCategoryValue(site)\n site_value = context.portal_categories.getCategoryValue(site)\n
...@@ -90,17 +91,17 @@ source = baobab_source\n ...@@ -90,17 +91,17 @@ source = baobab_source\n
source_object = context.portal_categories.getCategoryValue(source)\n source_object = context.portal_categories.getCategoryValue(source)\n
\n \n
# check again that we are in the good accounting date\n # check again that we are in the good accounting date\n
if not txn.Baobab_checkCounterDateOpen(site=source_object, date=txn.getStartDate()):\n if not transaction.Baobab_checkCounterDateOpen(site=source_object, date=date):\n
msg = Message(domain = "ui", message="Transaction not in the good accounting date")\n msg = Message(domain = "ui", message="Transaction not in the good accounting date")\n
raise ValidationFailed, (msg,)\n raise ValidationFailed, (msg,)\n
\n \n
\n \n
in_list = txn.objectValues(portal_type=\'Incoming Account Incident Line\')\n in_list = transaction.objectValues(portal_type=\'Incoming Account Incident Line\')\n
out_list = txn.objectValues(portal_type=\'Outgoing Account Incident Line\')\n out_list = transaction.objectValues(portal_type=\'Outgoing Account Incident Line\')\n
vault = "%s/surface/caisse_courante/encaisse_des_billets_et_monnaies" %(txn.getSource(),)\n vault = "%s/surface/caisse_courante/encaisse_des_billets_et_monnaies" %(transaction.getSource(),)\n
price = txn.getSourceTotalAssetPrice()\n price = transaction.getSourceTotalAssetPrice()\n
in_price = txn.getTotalPrice(portal_type=[\'Incoming Account Incident Line\',\'Cash Delivery Cell\'],fast=0)\n in_price = transaction.getTotalPrice(portal_type=[\'Incoming Account Incident Line\',\'Cash Delivery Cell\'],fast=0)\n
out_price = txn.getTotalPrice(portal_type=[\'Outgoing Account Incident Line\',\'Cash Delivery Cell\'],fast=0)\n out_price = transaction.getTotalPrice(portal_type=[\'Outgoing Account Incident Line\',\'Cash Delivery Cell\'],fast=0)\n
\n \n
if len(in_list) != 0 and len(out_list) != 0:\n if len(in_list) != 0 and len(out_list) != 0:\n
msg = Message(domain = "ui", message="You can\'t have excess and deficit on the document.")\n msg = Message(domain = "ui", message="You can\'t have excess and deficit on the document.")\n
...@@ -110,13 +111,56 @@ elif len(in_list) == 0 and len(out_list) == 0:\n ...@@ -110,13 +111,56 @@ elif len(in_list) == 0 and len(out_list) == 0:\n
raise ValidationFailed, (msg,)\n raise ValidationFailed, (msg,)\n
elif len(out_list) !=0:\n elif len(out_list) !=0:\n
#resource = transaction.CashDelivery_checkCounterInventory(source=vault, portal_type=\'Outgoing Account Incident Line\')\n #resource = transaction.CashDelivery_checkCounterInventory(source=vault, portal_type=\'Outgoing Account Incident Line\')\n
resource = txn.CashDelivery_checkCounterInventory(source=vault, portal_type=\'Outgoing Account Incident Line\')\n resource = transaction.CashDelivery_checkCounterInventory(source=vault, portal_type=\'Outgoing Account Incident Line\')\n
if resource <> 0 :\n if resource <> 0 :\n
msg = Message(domain="ui", message="Insufficient Balance.")\n msg = Message(domain="ui", message="Insufficient Balance.")\n
raise ValidationFailed, (msg,)\n raise ValidationFailed, (msg,)\n
elif (in_price != 0 and in_price != price) or (out_price != 0 and out_price != price):\n elif (in_price != 0 and in_price != price) or (out_price != 0 and out_price != price):\n
msg = Message(domain = "ui", message="Price differs between document and resource.")\n msg = Message(domain = "ui", message="Price differs between document and resource.")\n
raise ValidationFailed, (msg,)\n raise ValidationFailed, (msg,)\n
\n
# Now we will validate the accounting position\n
transaction = state_change[\'object\']\n
bank_account = transaction.getDestinationPaymentValue()\n
price = transaction.getSourceTotalAssetPrice()\n
line = transaction.get(\'movement\')\n
\n
in_list = transaction.objectValues(portal_type=\'Incoming Account Incident Line\')\n
out_list = transaction.objectValues(portal_type=\'Outgoing Account Incident Line\')\n
\n
debit=0\n
if (len(in_list)!= 0): \n
# This is a single currency operation, so it is not necessary to convert the price.\n
line.setSourceCredit(price)\n
\n
elif (len(out_list) != 0) :\n
# This is a single currency operation, so it is not necessary to convert the price.\n
debit=1\n
line.setSourceDebit(price)\n
\n
# this prevents multiple transactions from being committed at the same time for this bank account.\n
bank_account.serialize()\n
\n
# Make sure there are no other operations pending for this account\n
if transaction.BankAccount_isMessagePending(bank_account):\n
msg = Message(domain=\'ui\', message="There are operations pending for this account that prevent form calculating its position. Please try again later.")\n
raise ValidationFailed, (msg,)\n
\n
# Index the banking operation line so it impacts account position\n
transaction.BankingOperationLine_index(line)\n
\n
if debit:\n
# Test if the account balance is sufficient.\n
error = transaction.BankAccount_checkAvailableBalance(bank_account.getRelativeUrl(), price)\n
if error[\'error_code\'] == 1:\n
msg = Message(domain=\'ui\', message="Bank account is not sufficient.")\n
raise ValidationFailed, (msg,)\n
elif error[\'error_code\'] == 2:\n
msg = Message(domain=\'ui\', message="Bank account is not valid.")\n
raise ValidationFailed, (msg,)\n
elif error[\'error_code\'] != 0:\n
msg = Message(domain=\'ui\', message="Unknown error code.")\n
raise ValidationFailed, (msg,)\n
]]></string> </value> ]]></string> </value>
...@@ -167,8 +211,9 @@ elif (in_price != 0 and in_price != price) or (out_price != 0 and out_price != p ...@@ -167,8 +211,9 @@ elif (in_price != 0 and in_price != price) or (out_price != 0 and out_price != p
<string>Products.ERP5Type.Message</string> <string>Products.ERP5Type.Message</string>
<string>Message</string> <string>Message</string>
<string>_getitem_</string> <string>_getitem_</string>
<string>txn</string> <string>transaction</string>
<string>_getattr_</string> <string>_getattr_</string>
<string>date</string>
<string>user_id</string> <string>user_id</string>
<string>context</string> <string>context</string>
<string>site_list</string> <string>site_list</string>
...@@ -188,6 +233,10 @@ elif (in_price != 0 and in_price != price) or (out_price != 0 and out_price != p ...@@ -188,6 +233,10 @@ elif (in_price != 0 and in_price != price) or (out_price != 0 and out_price != p
<string>out_price</string> <string>out_price</string>
<string>len</string> <string>len</string>
<string>resource</string> <string>resource</string>
<string>bank_account</string>
<string>line</string>
<string>debit</string>
<string>error</string>
</tuple> </tuple>
</value> </value>
</item> </item>
...@@ -204,7 +253,7 @@ elif (in_price != 0 and in_price != price) or (out_price != 0 and out_price != p ...@@ -204,7 +253,7 @@ elif (in_price != 0 and in_price != price) or (out_price != 0 and out_price != p
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
<value> <string>checkConsistency</string> </value> <value> <string>checkConsistencyAndValidatePositionAccounting</string> </value>
</item> </item>
<item> <item>
<key> <string>warnings</string> </key> <key> <string>warnings</string> </key>
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
</item> </item>
<item> <item>
<key> <string>after_script_name</string> </key> <key> <string>after_script_name</string> </key>
<value> <string>updateBankingOperation</string> </value> <value> <string></string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
</item> </item>
<item> <item>
<key> <string>script_name</string> </key> <key> <string>script_name</string> </key>
<value> <string>checkConsistency</string> </value> <value> <string>checkConsistencyAndValidatePositionAccounting</string> </value>
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</item> </item>
<item> <item>
<key> <string>after_script_name</string> </key> <key> <string>after_script_name</string> </key>
<value> <string></string> </value> <value> <string>updateBankingOperation</string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
......
...@@ -88,6 +88,11 @@ if not context.Baobab_checkCounterOpened(site):\n ...@@ -88,6 +88,11 @@ if not context.Baobab_checkCounterOpened(site):\n
msg = Message(domain = "ui", message="Counter is not opened")\n msg = Message(domain = "ui", message="Counter is not opened")\n
raise ValidationFailed, (msg,)\n raise ValidationFailed, (msg,)\n
\n \n
# use of the constraint : Test source and destination\n
vliste = transaction.checkConsistency()\n
transaction.log(\'vliste\', vliste)\n
if len(vliste) != 0:\n
raise ValidationFailed, (vliste[0].getMessage(),)\n
\n \n
resource = transaction.CashDelivery_checkCounterInventory(source=vault, portal_type=\'Cash Delivery Line\')\n resource = transaction.CashDelivery_checkCounterInventory(source=vault, portal_type=\'Cash Delivery Line\')\n
\n \n
...@@ -166,6 +171,9 @@ elif resource <> 0 :\n ...@@ -166,6 +171,9 @@ elif resource <> 0 :\n
<string>msg</string> <string>msg</string>
<string>site</string> <string>site</string>
<string>context</string> <string>context</string>
<string>vliste</string>
<string>len</string>
<string>_getitem_</string>
<string>resource</string> <string>resource</string>
<string>amount</string> <string>amount</string>
<string>total_price</string> <string>total_price</string>
......
144 146
\ No newline at end of file \ 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