[Erp5-report] r27233 - in /erp5/trunk/bt5/erp5_item: SkinTemplateItem/portal_skins/erp5_ite...
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu May 28 16:07:12 CEST 2009
Author: mame
Date: Thu May 28 16:07:09 2009
New Revision: 27233
URL: http://svn.erp5.org?rev=27233&view=rev
Log:
2009-05-28 mame
*modify script to properly create variation cells on DeliveryLine
Modified:
erp5/trunk/bt5/erp5_item/SkinTemplateItem/portal_skins/erp5_item/DeliveryLine_createItemList.xml
erp5/trunk/bt5/erp5_item/bt/revision
erp5/trunk/bt5/erp5_item/bt/template_action_path_list
Modified: erp5/trunk/bt5/erp5_item/SkinTemplateItem/portal_skins/erp5_item/DeliveryLine_createItemList.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_item/SkinTemplateItem/portal_skins/erp5_item/DeliveryLine_createItemList.xml?rev=27233&r1=27232&r2=27233&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_item/SkinTemplateItem/portal_skins/erp5_item/DeliveryLine_createItemList.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_item/SkinTemplateItem/portal_skins/erp5_item/DeliveryLine_createItemList.xml [utf8] Thu May 28 16:07:09 2009
@@ -68,7 +68,7 @@
cell_portal_type = \'Internal Packing List Cell\'\n
\n
movement_cell_list = context.contentValues(portal_type=cell_portal_type)\n
-context.setVariationCategoryList([])\n
+update_quantity = not context.Movement_isQuantityEditable()\n
base_id = \'movement\'\n
for line in kw.get(\'listbox\'):\n
if line.has_key(\'listbox_key\') and line[\'quantity\'] in (\'\',None):\n
@@ -89,30 +89,44 @@
\n
\n
if line.has_key("variation_category_list") and line[\'variation_category_list\'] not in(\'\',[]):\n
- new_list = filter(lambda x:(x not in context.getVariationCategoryList()),line["variation_category_list"])\n
- context.setVariationCategoryList(context.getVariationCategoryList()+new_list)\n
- if line.has_key("variation_category_list") and line[\'variation_category_list\'] not in(\'\',None):\n
- cell_key = list((line[\'variation_category_list\']))\n
- quantity = line[\'quantity\']\n
- cell = context.newCell(base_id=base_id, \\\n
- portal_type=cell_portal_type,*cell_key)\n
- cell.edit(mapped_value_property_list=[\'price\',\'quantity\'],\n
- price=cell.getPrice(), quantity=cell.getQuantity()+quantity,\n
- predicate_category_list=cell_key,\n
- variation_category_list=cell_key)\n
- cell.setAggregateValueList(cell.getAggregateValueList()+[item])\n
- total_quantity+=line[\'quantity\']\n
-\n
-if movement_cell_list ==[]:\n
- context.setQuantity(context.getQuantity()+total_quantity)\n
-else:\n
- context.setQuantity(total_quantity)\n
-\n
-if context.getVariationCategoryList()==[]: \n
- context.setAggregateValueList(item_list )\n
+ cell_found = None\n
+ for cell in context.getCellValueList(base_id=\'movement\'):\n
+ if cell.getVariationCategoryList() == line["variation_category_list"]:\n
+ cell_found = cell\n
+ break\n
+ if cell_found is not None:\n
+ movement_to_update = cell_found\n
+ else:\n
+ if not context.hasInRange(base_id=\'movement\', *line["variation_category_list"]):\n
+ # update line variation category list, if not already containing this one\n
+ variation_category_list = context.getVariationCategoryList()\n
+ for variation in line["variation_category_list"]:\n
+ if variation not in variation_category_list:\n
+ variation_category_list.append(variation)\n
+ context.setVariationCategoryList(variation_category_list)\n
+ movement_to_update = context.newCell(base_id=\'movement\',\n
+ portal_type=cell_portal_type,\n
+ *line["variation_category_list"])\n
+ movement_to_update.edit(mapped_value_property_list=(\'quantity\', \'price\'),\n
+ variation_category_list=line["variation_category_list"],)\n
+ \n
+ else:\n
+ # no variation, we\'ll update the line itself\n
+ movement_to_update = context\n
+\n
+ if item not in movement_to_update.getAggregateValueList():\n
+ movement_to_update.setAggregateValueSet(\n
+ movement_to_update.getAggregateValueList() + [item])\n
+ if update_quantity:\n
+ if item.getQuantityUnit() != movement_to_update.getQuantityUnit():\n
+ raise NotImplementedError(\n
+ \'Quantity unit from the movement differs from quantity\'\n
+ \' unit on the item\')\n
+ movement_to_update.setQuantity(\n
+ movement_to_update.getQuantity() + item.getQuantity())\n
\n
return context.Base_redirect(form_id, keep_items=dict(\n
- portal_status_message=translateString(\'Items created\')))\n
+ portal_status_message=translateString(\'Items created\')))\n
</string> </value>
</item>
<item>
@@ -162,6 +176,7 @@
<string>type</string>
<string>cell_portal_type</string>
<string>movement_cell_list</string>
+ <string>update_quantity</string>
<string>base_id</string>
<string>_getiter_</string>
<string>line</string>
@@ -171,14 +186,13 @@
<string>dict</string>
<string>module</string>
<string>item</string>
- <string>filter</string>
- <string>new_list</string>
- <string>list</string>
- <string>cell_key</string>
- <string>quantity</string>
+ <string>cell_found</string>
+ <string>cell</string>
+ <string>movement_to_update</string>
<string>_apply_</string>
- <string>cell</string>
- <string>_inplacevar_</string>
+ <string>variation_category_list</string>
+ <string>variation</string>
+ <string>NotImplementedError</string>
</tuple>
</value>
</item>
Modified: erp5/trunk/bt5/erp5_item/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_item/bt/revision?rev=27233&r1=27232&r2=27233&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_item/bt/revision [utf8] (original)
+++ erp5/trunk/bt5/erp5_item/bt/revision [utf8] Thu May 28 16:07:09 2009
@@ -1,1 +1,1 @@
-139
+140
Modified: erp5/trunk/bt5/erp5_item/bt/template_action_path_list
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_item/bt/template_action_path_list?rev=27233&r1=27232&r2=27233&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_item/bt/template_action_path_list [utf8] (original)
+++ erp5/trunk/bt5/erp5_item/bt/template_action_path_list [utf8] Thu May 28 16:07:09 2009
@@ -1,4 +1,5 @@
Internal Packing List Line | item_creation
+Internal Packing List Line | pagel_item_fast_input
Internal Packing List Line | select_item_fast_input
Internal Packing List | aggregate_item
Item Module | create_order
More information about the Erp5-report
mailing list