diff --git a/bt5/erp5_mrp/SkinTemplateItem/portal_skins/erp5_mrp/ProductionOrder_getConsumptionMovementList.xml b/bt5/erp5_mrp/SkinTemplateItem/portal_skins/erp5_mrp/ProductionOrder_getConsumptionMovementList.xml deleted file mode 100644 index 98f8ed5555b6388e32b09312682eb69be084e554..0000000000000000000000000000000000000000 --- a/bt5/erp5_mrp/SkinTemplateItem/portal_skins/erp5_mrp/ProductionOrder_getConsumptionMovementList.xml +++ /dev/null @@ -1,136 +0,0 @@ -<?xml version="1.0"?> -<ZopeData> - <record id="1" aka="AAAAAAAAAAE="> - <pickle> - <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> - </pickle> - <pickle> - <dictionary> - <item> - <key> <string>Script_magic</string> </key> - <value> <int>3</int> </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>"""Returns list of resources\' inventories used in consumption for production\n -\n -Args:\n - - omit_order_resources [default: 1]\n - Do not show resources, which are on order lines.\n -"""\n -if omit_order_resources:\n - from Products.ZSQLCatalog.SQLCatalog import Query\n - from Products.ZSQLCatalog.SQLCatalog import NegatedQuery\n -\n - ignored_resource_uid_list = [q.getResourceUid() for q in context.getMovementList() if q.getResourceUid() is not None]\n - kwargs[\'query\'] = NegatedQuery(Query(operator=\'IN\',**{\'stock.resource_uid\': ignored_resource_uid_list}))\n -\n -kwargs[\'group_by_date\'] = 1\n -kwargs[\'group_by_node\'] = 1\n -kwargs[\'group_by_variation\'] = 1\n -kwargs[\'group_by_resource\'] = 1\n -kwargs[\'section_uid\'] = context.getDestinationSectionUid()\n -\n -inventory_dict = {}\n -for inventory in context.portal_simulation.getFutureInventoryList(*args,**kwargs):\n - inventory_dict[inventory.getResourceUid(), \\\n - tuple(sorted(inventory.getVariationCategoryList())), \\\n - inventory.getDestination()] = inventory\n -\n -result_list = inventory_dict.values()\n -consumption_dict = {}\n -for movement in context.getMovementList():\n - movement_quantity = movement.getQuantity()\n - movement_destination = movement.getDestination()\n -\n - transformation = movement.getSpecialiseValue()\n - if transformation is not None:\n - transformation_line_list = transformation.objectValues()\n - else:\n - transformation_line_list = ()\n -\n - for material in transformation_line_list:\n - material_resource_uid = material.getResourceUid()\n - if not material_resource_uid:\n - continue\n -\n - inventory_dict_key = material_resource_uid, \\\n - tuple(sorted(material.getVariationCategoryList())), \\\n - movement_destination\n -\n - quantity = material.getQuantity()\n -\n - try:\n - obj = inventory_dict[inventory_dict_key]\n - except KeyError:\n - obj = material\n - result_list.append(obj)\n - else:\n - inventory_quantity_unit = obj.getQuantityUnit()\n - quantity_unit = material.getQuantityUnit()\n - if quantity_unit != inventory_quantity_unit:\n - quantity = material.getResourceValue().convertQuantity(quantity,\n - quantity_unit,\n - inventory_quantity_unit)\n -\n - if quantity:\n - consumption_dict[obj.getUid()] = quantity * movement_quantity\n -\n -context.REQUEST.set(\'consumption_dict\', consumption_dict)\n -return result_list\n -</string> </value> - </item> - <item> - <key> <string>_params</string> </key> - <value> <string>omit_order_resources=1,*args,**kwargs</string> </value> - </item> - <item> - <key> <string>id</string> </key> - <value> <string>ProductionOrder_getConsumptionMovementList</string> </value> - </item> - <item> - <key> <string>title</string> </key> - <value> <string></string> </value> - </item> - </dictionary> - </pickle> - </record> -</ZopeData> diff --git a/bt5/erp5_mrp/SkinTemplateItem/portal_skins/erp5_mrp/ProductionOrder_getMaterialFutureInventoryList.xml b/bt5/erp5_mrp/SkinTemplateItem/portal_skins/erp5_mrp/ProductionOrder_getMaterialFutureInventoryList.xml index f11f0290839de6b73ebbe3f2eab08dbed0f0be8b..d14478873198987ff5860b1ff2018582087f4ea6 100644 --- a/bt5/erp5_mrp/SkinTemplateItem/portal_skins/erp5_mrp/ProductionOrder_getMaterialFutureInventoryList.xml +++ b/bt5/erp5_mrp/SkinTemplateItem/portal_skins/erp5_mrp/ProductionOrder_getMaterialFutureInventoryList.xml @@ -50,9 +50,71 @@ </item> <item> <key> <string>_body</string> </key> - <value> <string>"""Returns list of materials\' inventories used in consumption for production"""\n -kwargs[\'resource_portal_type\'] = context.getPortalObject().getPortalProductTypeList()\n -return context.ProductionOrder_getConsumptionMovementList(*args,**kwargs)\n + <value> <string>"""Returns list of resources\' inventories used in consumption for production\n + Show only resources which are defined in transformation.\n +"""\n +movement_list = context.getMovementList()\n +transformation_line_list_dict = {}\n +consumed_resource_list = []\n +for movement in movement_list:\n + transformation = movement.getSpecialiseValue()\n + if transformation is not None:\n + transformation_line_list = transformation.objectValues()\n + transformation_line_list_dict[movement] = transformation_line_list\n + for transformation_line in transformation_line_list:\n + transformation_resource = transformation_line.getResourceValue()\n + if transformation_resource is not None:\n + consumed_resource_list.append(transformation_resource)\n + else:\n + transformation_line_list_dict[movement] = ()\n +\n +if not consumed_resource_list:\n + return ()\n +\n +kwargs[\'resource\'] = [resource.getRelativeUrl() for resource in consumed_resource_list]\n +kwargs[\'group_by_section\'] = 0\n +kwargs[\'group_by_node\'] = 1\n +kwargs[\'group_by_variation\'] = 1\n +kwargs[\'section_uid\'] = context.getSourceSectionUid()\n +\n +inventory_dict = {}\n +for inventory in context.portal_simulation.getFutureInventoryList(*args,**kwargs):\n + inventory_dict[inventory.resource_relative_url,\n + inventory.variation_text,\n + inventory.node_relative_url] = inventory\n +\n +result_list = inventory_dict.values()\n +consumption_dict = {}\n +for movement in movement_list:\n + for material in transformation_line_list_dict[movement]:\n + material_resource = material.getResource()\n + if material_resource is None:\n + continue\n +\n + inventory_dict_key = (material_resource,\n + \'\\n\'.join(sorted(material.getVariationCategoryList())),\n + movement.getSource())\n +\n + quantity = material.getQuantity()\n +\n + try:\n + obj = inventory_dict[inventory_dict_key]\n + except KeyError:\n + obj = material\n + result_list.append(obj)\n + else:\n + inventory_quantity_unit = obj.getQuantityUnit()\n + quantity_unit = material.getQuantityUnit()\n + if quantity_unit != inventory_quantity_unit:\n + quantity = material.getResourceValue().convertQuantity(quantity,\n + quantity_unit,\n + inventory_quantity_unit)\n +\n + if quantity:\n + consumption_dict[obj.getUid()] = quantity * (movement.getQuantity() or 0)\n +\n +context.REQUEST.set(\'consumption_dict\', consumption_dict)\n +return result_list\n </string> </value> </item> <item> diff --git a/bt5/erp5_mrp/SkinTemplateItem/portal_skins/erp5_mrp/ProductionOrder_viewMaterialConsumption/listbox.xml b/bt5/erp5_mrp/SkinTemplateItem/portal_skins/erp5_mrp/ProductionOrder_viewMaterialConsumption/listbox.xml index 7b80bfbd82eab9c1371a44b59fa4952daaf78eb4..80fce53fd7080e5ba74da69aff5f11857b1f31e7 100644 --- a/bt5/erp5_mrp/SkinTemplateItem/portal_skins/erp5_mrp/ProductionOrder_viewMaterialConsumption/listbox.xml +++ b/bt5/erp5_mrp/SkinTemplateItem/portal_skins/erp5_mrp/ProductionOrder_viewMaterialConsumption/listbox.xml @@ -11,7 +11,7 @@ <value> <list> <string>columns</string> - <string>editable_columns</string> + <string>default_params</string> <string>list_action</string> <string>list_method</string> <string>selection_name</string> @@ -96,10 +96,6 @@ <string>consumption_item</string> <string>Consumption</string> </tuple> - <tuple> - <string>quantity_unit_item</string> - <string>Unit</string> - </tuple> <tuple> <string>getCurrentInventory</string> <string>Current</string> @@ -112,18 +108,17 @@ <string>getFutureInventory</string> <string>Future</string> </tuple> + <tuple> + <string>quantity_unit_item</string> + <string>Unit</string> + </tuple> </list> </value> </item> <item> - <key> <string>editable_columns</string> </key> + <key> <string>default_params</string> </key> <value> - <list> - <tuple> - <string>movement.start_date</string> - <string>movement.start_date</string> - </tuple> - </list> + <list/> </value> </item> <item> diff --git a/bt5/erp5_mrp/bt/change_log b/bt5/erp5_mrp/bt/change_log index 03ab0293668f7eff3d036ebb0d8b68d83f408eb9..001aaa12850d37afcdfaeaefd6ca305e0528025a 100644 --- a/bt5/erp5_mrp/bt/change_log +++ b/bt5/erp5_mrp/bt/change_log @@ -1,3 +1,6 @@ +2011-06-22 yusei +* Fix bug on production order material consumption tab. + 2011-06-15 yusei * production order movement may not have specialise category value. diff --git a/bt5/erp5_mrp/bt/revision b/bt5/erp5_mrp/bt/revision index 2b808f36cfa85e246f7c84822abab53c178d3ec2..495ae252f0ccba7cb30f39a2737131a2734406b6 100644 --- a/bt5/erp5_mrp/bt/revision +++ b/bt5/erp5_mrp/bt/revision @@ -1 +1 @@ -463 \ No newline at end of file +464 \ No newline at end of file