diff --git a/bt5/erp5_banking_cash/SkinTemplateItem/portal_skins/erp5_banking_cash/MonetaryReceptionModule_importMonetaryReceptionFromCDAction.xml b/bt5/erp5_banking_cash/SkinTemplateItem/portal_skins/erp5_banking_cash/MonetaryReceptionModule_importMonetaryReceptionFromCDAction.xml index e409f7aa8d741d16b2b23822cc3b2b9bc81663b1..ab364f297b7dafd7ccdace9c63b6e7920a86d259 100644 --- a/bt5/erp5_banking_cash/SkinTemplateItem/portal_skins/erp5_banking_cash/MonetaryReceptionModule_importMonetaryReceptionFromCDAction.xml +++ b/bt5/erp5_banking_cash/SkinTemplateItem/portal_skins/erp5_banking_cash/MonetaryReceptionModule_importMonetaryReceptionFromCDAction.xml @@ -100,10 +100,11 @@ today_date = DateTime()\n def create_movement(CD_head_dict, CD_line_list):\n # Head creation\n movement_head = context.newContent( portal_type = \'Monetary Reception\'\n - , reindex_object = 1\n - , start_date = today_date\n - , comment = CD_head_dict[\'start_date\']\n - , destination = CD_head_dict[\'destination\']\n + , reindex_object = 1\n + , start_date = today_date\n + , comment = CD_head_dict[\'start_date\']\n + , destination = CD_head_dict[\'destination\']\n + , activate_kw = {"tag" : import_tag}\n )\n # Container Creation\n base_list=(\'emission_letter\', \'variation\', \'cash_status\')\n @@ -116,13 +117,15 @@ def create_movement(CD_head_dict, CD_line_list):\n , reindex_object = 1\n , reference = CD_line[\'reference\']\n , cash_number_range_start = CD_line[\'range_start\']\n - , cash_number_range_stop = CD_line[\'range_stop\']\n + , cash_number_range_stop = CD_line[\'range_stop\']\n + , activate_kw = {"tag" : import_tag}\n )\n # create a cash container line\n container_line = movement_container.newContent(portal_type = \'Container Line\'\n , reindex_object = 1\n , resource_value =CD_head_dict[\'resource\']\n , quantity = CD_line[\'quantity\']\n + , activate_kw = {"tag" : import_tag}\n )\n \n container_line.setResourceValue(CD_head_dict[\'resource\'])\n @@ -137,7 +140,8 @@ def create_movement(CD_head_dict, CD_line_list):\n cell.setMembershipCriterionBaseCategoryList(base_list)\n cell.setMembershipCriterionCategoryList(category_list)\n cell.edit(force_update = 1,\n - price = container_line.getResourceValue().getBasePrice())\n + price = container_line.getResourceValue().getBasePrice(),\n + activate_kw = {"tag" : import_tag})\n \n \n resource_total_quantity += CD_line[\'quantity\']\n @@ -146,6 +150,7 @@ def create_movement(CD_head_dict, CD_line_list):\n , portal_type = \'Cash Delivery Line\'\n , resource_value = CD_head_dict[\'resource\']\n , quantity_unit_value = context.portal_categories.quantity_unit.unit\n + , activate_kw = {"tag" : import_tag}\n )\n movement_line.setVariationBaseCategoryList(base_list)\n movement_line.setVariationCategoryList(category_list)\n @@ -159,7 +164,8 @@ def create_movement(CD_head_dict, CD_line_list):\n cell.setMembershipCriterionBaseCategoryList(base_list)\n cell.setMembershipCriterionCategoryList(category_list)\n cell.edit(force_update = 1,\n - price = movement_line.getResourceValue().getBasePrice())\n + price = movement_line.getResourceValue().getBasePrice(),\n + activate_kw = {"tag" : import_tag})\n \n return {\'error\' : False, \'message\':message_dict[\'00\']+CD_head_dict[\'reference\'],\'delivery_id\':movement_head.getId()}\n \n @@ -317,8 +323,7 @@ def split_lines(CD_file_line_list):\n # check reference doesn\'t already exist for this resource\n movement_container_list = context.portal_catalog(portal_type = "Cash Container Item", reference = line_container_id)\n if len(movement_container_list) > 0:\n - pass\n - #return {\'error\':True, \'message\':message_dict[\'03\'], \'head_dict\':{}}\n + return {\'error\':True, \'message\':message_dict[\'03\'], \'head_dict\':{}}\n \n \n \n @@ -329,14 +334,27 @@ def split_lines(CD_file_line_list):\n \n \n def url_redirection(error_message,delivery_id=None):\n - if delivery_id is not None:\n - redirect_url = \'%s?%s\' % ( context.absolute_url()+\'/\'+delivery_id+\'/\'+\'view\', \'portal_status_message=\' + error_message)\n - else:\n - redirect_url = \'%s?%s\' % ( context.absolute_url()+\'/\'+\'view\', \'portal_status_message=\' + error_message)\n - request[ \'RESPONSE\' ].redirect( redirect_url )\n + if delivery_id is not None:\n + redirect_url = \'%s?%s\' % ( context.absolute_url()+\'/\'+delivery_id+\'/\'+\'view\', \'portal_status_message=\' + error_message)\n + else:\n + redirect_url = \'%s?%s\' % ( context.absolute_url()+\'/\'+\'view\', \'portal_status_message=\' + error_message)\n + request[ \'RESPONSE\' ].redirect( redirect_url )\n \n \n +user_site = context.Baobab_getUserAssignedSiteList()\n +if len(user_site) == 0:\n + if batch == 1:\n + raise ValueError, "Operation denied, you\'re not assigned to a site"\n + else:\n + return url_redirection("Operation denied, you\'re not assigned to a site")\n \n +import_tag = "%s_monetary_reception" %(user_site[0],)\n +# check remaining activities\n +if context.portal_activities.countMessageWithTag(import_tag) != 0:\n + if batch == 1:\n + raise ValueError, "Some activities are remaining from previous import, please try later."\n + else:\n + return url_redirection("Some activities are remaining from previous import, please try later.")\n \n request = context.REQUEST\n if file_data is not None:\n @@ -349,25 +367,26 @@ context.log("new_line_list", CD_file_line_list)\n # analyse the container head and split it into dictionnary\n split_head_result_dict = split_head(CD_file_line_list[:20])\n if split_head_result_dict[\'error\']:\n + if batch == 1:\n + raise ValueError, split_head_result_dict[\'message\']\n + else:\n return url_redirection(split_head_result_dict[\'message\'])\n \n \n # analyse the container lines and split it into dictionnary\n split_line_result_dict = split_lines(CD_file_line_list[20:])\n if split_line_result_dict[\'error\']:\n + if batch == 1:\n + raise ValueError, split_line_result_dict[\'message\']\n + else:\n return url_redirection(split_line_result_dict[\'message\'])\n \n \n -# raise \'KHADIM TEST\', repr((split_head_result_dict[\'head_dict\'],\'<P>\', split_line_result_dict[\'lines_dict\'] ))\n -\n -\n -\n message_dict = create_movement(CD_head_dict = split_head_result_dict[\'head_dict\'], CD_line_list = split_line_result_dict[\'lines_dict\'] )\n \n -\n -\n if message_dict[\'error\'] :\n - None # Annuler les transactions\n + if batch == 1:\n + raise ValueError, message_dict[\'message\' ]\n \n return url_redirection(message_dict[\'message\' ],delivery_id=message_dict[\'delivery_id\'])\n @@ -394,7 +413,7 @@ return url_redirection(message_dict[\'message\' ],delivery_id=message_dict[\'del </item> <item> <key> <string>_params</string> </key> - <value> <string>import_file=None, file_data=None, **kw</string> </value> + <value> <string>import_file=None, file_data=None, batch=0, **kw</string> </value> </item> <item> <key> <string>_proxy_roles</string> </key> @@ -422,7 +441,7 @@ return url_redirection(message_dict[\'message\' ],delivery_id=message_dict[\'del <dictionary> <item> <key> <string>co_argcount</string> </key> - <value> <int>2</int> </value> + <value> <int>3</int> </value> </item> <item> <key> <string>co_varnames</string> </key> @@ -430,6 +449,7 @@ return url_redirection(message_dict[\'message\' ],delivery_id=message_dict[\'del <tuple> <string>import_file</string> <string>file_data</string> + <string>batch</string> <string>kw</string> <string>message_dict</string> <string>isSameSet</string> @@ -438,14 +458,18 @@ return url_redirection(message_dict[\'message\' ],delivery_id=message_dict[\'del <string>reference_currency_id</string> <string>DateTime</string> <string>today_date</string> + <string>import_tag</string> <string>create_movement</string> <string>split_head</string> <string>split_lines</string> <string>None</string> <string>request</string> <string>url_redirection</string> - <string>CD_file_line_list</string> + <string>user_site</string> + <string>len</string> + <string>ValueError</string> <string>_getitem_</string> + <string>CD_file_line_list</string> <string>split_head_result_dict</string> <string>split_line_result_dict</string> </tuple> @@ -462,6 +486,7 @@ return url_redirection(message_dict[\'message\' ],delivery_id=message_dict[\'del <tuple> <none/> <none/> + <int>0</int> </tuple> </value> </item> diff --git a/bt5/erp5_banking_cash/bt/revision b/bt5/erp5_banking_cash/bt/revision index 430faa64e76e7478e4653bc318c717b548aa76e8..37e6f1741c6beff28585046f1038d9f2377b9514 100644 --- a/bt5/erp5_banking_cash/bt/revision +++ b/bt5/erp5_banking_cash/bt/revision @@ -1 +1 @@ -511 \ No newline at end of file +515 \ No newline at end of file