From b98abcceb93283ef787897e542e14ccb45872807 Mon Sep 17 00:00:00 2001 From: Vincent Pelletier <vincent@nexedi.com> Date: Mon, 3 Mar 2008 15:22:56 +0000 Subject: [PATCH] Disallow check deposit of the same check more than once in the same deposit document. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@19652 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../scripts/validateConsistency.xml | 14 +++++++++++++- bt5/erp5_banking_check/bt/revision | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/bt5/erp5_banking_check/WorkflowTemplateItem/portal_workflow/check_deposit_workflow/scripts/validateConsistency.xml b/bt5/erp5_banking_check/WorkflowTemplateItem/portal_workflow/check_deposit_workflow/scripts/validateConsistency.xml index 83bac47a62..212967d734 100644 --- a/bt5/erp5_banking_check/WorkflowTemplateItem/portal_workflow/check_deposit_workflow/scripts/validateConsistency.xml +++ b/bt5/erp5_banking_check/WorkflowTemplateItem/portal_workflow/check_deposit_workflow/scripts/validateConsistency.xml @@ -112,6 +112,7 @@ if state_change[\'transition\'].getId() == "wait_action":\n \n \n bank_account_dict = {}\n +seen_check_dict = {}\n \n # Check each check operation line.\n for check_operation_line in transaction.contentValues(filter = {\'portal_type\' : \'Check Operation Line\'}):\n @@ -139,6 +140,14 @@ for check_operation_line in transaction.contentValues(filter = {\'portal_type\' msg = Message(domain=\'ui\', message=\'Bank account not defined on line $line.\'\n , mapping={"line" : check_operation_line.getId()})\n raise ValidationFailed, (msg,)\n +\n + seen_check_dict_key = (source_bank_account, check_type, check_number)\n + seen_check = seen_check_dict.get(seen_check_dict_key)\n + if seen_check is not None:\n + msg = Message(domain=\'ui\', message=\'Check on line $line is already used on line $oldline.\'\n + , mapping={"line" : check_operation_line.getId(), "oldline": seen_check})\n + raise ValidationFailed, (msg,)\n + seen_check_dict[seen_check_dict_key] = check_operation_line.getId()\n \n # Test check is valid based on date\n transaction.Check_checkIntervalBetweenDate(resource=check_operation_line.getAggregateResourceValue(),\n @@ -245,14 +254,17 @@ if transaction.getSimulationState() == "draft" and state_change[\'transition\']. <string>destination_bank_account</string> <string>context</string> <string>bank_account_dict</string> + <string>seen_check_dict</string> <string>_getiter_</string> <string>check_operation_line</string> <string>check_number</string> <string>check_type</string> <string>source_bank_account</string> + <string>seen_check_dict_key</string> + <string>seen_check</string> + <string>_write_</string> <string>account_path</string> <string>check_price</string> - <string>_write_</string> <string>error</string> <string>check</string> </tuple> diff --git a/bt5/erp5_banking_check/bt/revision b/bt5/erp5_banking_check/bt/revision index e41567feb8..c4c828bd4e 100644 --- a/bt5/erp5_banking_check/bt/revision +++ b/bt5/erp5_banking_check/bt/revision @@ -1 +1 @@ -384 \ No newline at end of file +386 \ No newline at end of file -- 2.30.9