From 99af01f64db26974bf48006fbcf4ebf834d9ddb5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aur=C3=A9lien=20Calonne?= <aurel@nexedi.com>
Date: Thu, 21 Jan 2010 10:37:50 +0000
Subject: [PATCH] 2010-01-21 aurel * add fast input for inventory and sale
 packing list, factorize the code so that it is easy to add a new fast input

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@31870 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../BaseTrade_getFastInputLineList.xml        | 228 +++++++++++++
 .../BaseTrade_setFastInputLineList.xml        | 243 ++++++++++++++
 .../BaseTrade_updateFastInputLineList.xml     | 235 ++++++++++++++
 ...nventory_getFastInputInventoryLineList.xml | 128 ++++++++
 .../Inventory_setInventoryLineList.xml        | 135 ++++++++
 .../Inventory_updateInventoryLineList.xml     | 134 ++++++++
 ...Inventory_viewInventoryFastInputDialog.xml | 162 ++++++++++
 .../listbox.xml                               | 269 ++++++++++++++++
 .../listbox_quantity.xml                      | 109 +++++++
 .../listbox_quantity_unit.xml}                |  46 +--
 .../listbox_reference.xml                     |  93 ++++++
 .../listbox_title.xml                         |  95 ++++++
 .../listbox_total_quantity.xml                |  93 ++++++
 .../listbox_variation_category_list.xml       | 283 ++++++++++++++++
 ...aleOrder_getFastInputSaleOrderLineList.xml |  74 +----
 .../SaleOrder_setSaleOrderLineList.xml        | 121 +------
 .../SaleOrder_updateSaleOrderLineList.xml     | 104 +-----
 ...SaleOrder_viewSaleOrderFastInputDialog.xml |   1 -
 .../listbox.xml                               |  20 +-
 ...st_getFastInputSalePackingListLineList.xml | 127 ++++++++
 ...PackingList_setSalePackingListLineList.xml | 133 ++++++++
 ...kingList_updateSalePackingListLineList.xml | 133 ++++++++
 ...ist_viewSalePackingListFastInputDialog.xml | 168 ++++++++++
 .../listbox.xml                               | 301 ++++++++++++++++++
 .../listbox_getAvailableInventory.xml         | 112 +++++++
 .../listbox_getCurrentInventory.xml           |  99 ++++++
 .../listbox_inventory.xml                     |  99 ++++++
 .../listbox_quantity.xml                      | 109 +++++++
 .../listbox_quantity_unit.xml                 | 147 +++++++++
 .../listbox_reference.xml                     |  93 ++++++
 .../listbox_title.xml                         |  95 ++++++
 .../listbox_total_price.xml                   | 121 +++++++
 .../listbox_total_quantity.xml                |  93 ++++++
 .../listbox_variation_category_list.xml       | 283 ++++++++++++++++
 .../my_total_price.xml                        | 121 +++++++
 bt5/erp5_trade/bt/change_log                  |   3 +
 bt5/erp5_trade/bt/revision                    |   2 +-
 37 files changed, 4491 insertions(+), 321 deletions(-)
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/BaseTrade_getFastInputLineList.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/BaseTrade_setFastInputLineList.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/BaseTrade_updateFastInputLineList.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_getFastInputInventoryLineList.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_setInventoryLineList.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_updateInventoryLineList.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_quantity.xml
 rename bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/{SaleOrder_viewSaleOrderFastInputDialog/listbox_resource_relative_url.xml => Inventory_viewInventoryFastInputDialog/listbox_quantity_unit.xml} (81%)
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_reference.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_title.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_total_quantity.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_variation_category_list.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_getFastInputSalePackingListLineList.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_setSalePackingListLineList.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_updateSalePackingListLineList.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_getAvailableInventory.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_getCurrentInventory.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_inventory.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_quantity.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_quantity_unit.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_reference.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_title.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_total_price.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_total_quantity.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_variation_category_list.xml
 create mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/my_total_price.xml

diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/BaseTrade_getFastInputLineList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/BaseTrade_getFastInputLineList.xml
new file mode 100644
index 0000000000..335abb057d
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/BaseTrade_getFastInputLineList.xml
@@ -0,0 +1,228 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+        <tuple/>
+      </tuple>
+    </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>"""\n
+  This script creates a list of empty lines when called for\n
+  the first time.When called the next time, it displays on \n
+  the fast input all documents lines already added and \n
+  updates them based on fast input entries.\n
+"""\n
+from Products.ERP5Type.Document import newTempBase\n
+portal = context.getPortalObject()\n
+getobject = portal.portal_catalog.getobject\n
+request = context.REQUEST\n
+trade_document = context\n
+result = []\n
+line_list = context.contentValues(portal_type=line_portal_type)\n
+\n
+source_section = context.getSourceSectionValue()\n
+if no_inventory is False and source_section is None:\n
+  from Products.ERP5Type.Message import translateString\n
+  return context.Base_redirect(\'view\', keep_items=dict(\n
+    portal_status_message=translateString(\'Source section must be defined.\')))\n
+\n
+len_line_list = len(line_list)\n
+used_id = [] # list use to make sure we do not generate two line with same uid\n
+\n
+# first browse document\'s lines\n
+if len_line_list!=0:\n
+  for line in line_list:\n
+    obj=trade_document.newContent(portal_type=line_portal_type,\n
+                          id=line.getId(),\n
+                          uid="new_%s" % line.getId(),\n
+                          temp_object=1,\n
+                          is_indexable=0,)\n
+    used_id.append(int(line.getId()))\n
+\n
+    obj.edit(title=line.getResourceTitle(),\n
+             reference=line.getResourceReference(),\n
+             quantity=line.getQuantity(),\n
+             quantity_unit=line.getQuantityUnitList(),\n
+             total_price=line.getTotalPrice(),\n
+             )\n
+    if no_inventory is False:\n
+      obj.edit(\n
+        getAvailableInventory=line.getResourceValue().getAvailableInventory(\n
+                                  section_uid=source_section.getUid(),\n
+                                  variation_text=line.getVariationText()),\n
+        getCurrentInventory=line.getResourceValue().getCurrentInventory(\n
+                                  section_uid=source_section.getUid(),\n
+                                  variation_text=line.getVariationText()),\n
+        inventory=line.getResourceValue().getInventory(\n
+                                  section_uid=source_section.getUid(),\n
+                                  variation_text=line.getVariationText()))\n
+    result.append(obj)\n
+\n
+# then fill the remaining lines with empty ones\n
+for i in range(len_line_list+1,lines_num+1):\n
+   resource_relative_url = getattr(request,"field_listbox_resource_relative_url_new_%s"%i,None)\n
+   while i in used_id:\n
+     # do not used an id from previously generated lines\n
+     i+=1\n
+   obj=trade_document.newContent(portal_type=line_portal_type,\n
+                             id = i,\n
+                             uid="new_%s" % i,\n
+                             temp_object=1,\n
+                             getAvailableInventory=0,\n
+                             getCurrentInventory=0,\n
+                             is_indexable=0,)\n
+   used_id.append(i)\n
+\n
+   if resource_relative_url not in (\'\',None):\n
+    resource = context.restrictedTraverse(resource_relative_url)\n
+    obj.setResourceValue(resource)\n
+   result.append(obj)\n
+\n
+return result\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>line_portal_type, lines_num=10, no_inventory=False, **kw</string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>3</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>line_portal_type</string>
+                            <string>lines_num</string>
+                            <string>no_inventory</string>
+                            <string>kw</string>
+                            <string>Products.ERP5Type.Document</string>
+                            <string>newTempBase</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>portal</string>
+                            <string>getobject</string>
+                            <string>request</string>
+                            <string>trade_document</string>
+                            <string>result</string>
+                            <string>line_list</string>
+                            <string>source_section</string>
+                            <string>False</string>
+                            <string>None</string>
+                            <string>Products.ERP5Type.Message</string>
+                            <string>translateString</string>
+                            <string>dict</string>
+                            <string>len</string>
+                            <string>len_line_list</string>
+                            <string>used_id</string>
+                            <string>_getiter_</string>
+                            <string>line</string>
+                            <string>obj</string>
+                            <string>int</string>
+                            <string>range</string>
+                            <string>i</string>
+                            <string>getattr</string>
+                            <string>resource_relative_url</string>
+                            <string>_inplacevar_</string>
+                            <string>resource</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <tuple>
+                <int>10</int>
+                <int>0</int>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>BaseTrade_getFastInputLineList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/BaseTrade_setFastInputLineList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/BaseTrade_setFastInputLineList.xml
new file mode 100644
index 0000000000..acc2b9a27c
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/BaseTrade_setFastInputLineList.xml
@@ -0,0 +1,243 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+        <tuple/>
+      </tuple>
+    </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>"""\n
+  This script creates or updates trade document lines based on the fast \n
+  input information.It should take into account any trade document line \n
+  which were already created so that they are not duplicated.\n
+"""\n
+from Products.ERP5Type.Message import translateString\n
+from Products.ERP5Type.Log import log\n
+result_list = []\n
+trade_document_line_list = context.contentValues(portal_type=line_portal_type)\n
+if trade_document_line_list!=[]:\n
+  trade_document_line_id_list = [x.getId() for x in trade_document_line_list]\n
+for line in listbox:\n
+ # for each line in listbox if line has a reference or title defined, search \n
+ # for the product whose reference/title has been entered\n
+ if line.has_key(\'listbox_key\') and (line[\'title\'] not in (\'\', None) \\\n
+                                     or line[\'reference\'] not in ("", None)):\n
+   line_id = line[\'listbox_key\']\n
+   product = context.portal_catalog.getResultValue(\n
+                           portal_type=[\'Product\',\'Service\'],\n
+                                    title=line[\'title\'],\n
+                                    reference=line[\'reference\'])\n
+   # for each document line already added,\n
+   # if the line\'s id is the same as the document line, update it\n
+   for trade_document_line in trade_document_line_list:\n
+     if trade_document_line.getId()==line_id:\n
+       trade_document_line.edit(start_date=context.getStartDate(),\n
+               stop_date=context.getStopDate(),\n
+               resource_title=product.getTitle(),\n
+               price_currency = context.getPriceCurrency(),\n
+               quantity = line["quantity"],\n
+               quantity_unit = product.getQuantityUnit(),)\n
+       trade_document_line.setResourceValue(product)\n
+       if line["variation_category_list"]!=\'\':\n
+        trade_document_line.setVariationCategoryList([\'variation/%s\'%line["variation_category_list"]])\n
+        base_id = \'movement\'\n
+        cell_key_list = list(trade_document_line.getCellKeyList(base_id=base_id))\n
+        cell_key_list.sort()\n
+        price = line[\'total_price\']/line[\'quantity\']\n
+        quantity = line[\'quantity\']\n
+        for cell_key in cell_key_list:\n
+          cell = trade_document_line.newCell(base_id=base_id, \\\n
+                                portal_type=cell_portal_type, *cell_key)\n
+          cell.edit(mapped_value_property_list=[\'price\',\'quantity\'],\n
+                price=price, quantity=quantity,\n
+                predicate_category_list=cell_key,\n
+                variation_category_list=cell_key)\n
+        price += 1\n
+        quantity += 1\n
+       result_list.append(trade_document_line)\n
+   else:\n
+     # if there was no document line already defined\n
+     # for the document, add a new document line\n
+     if len(trade_document_line_list)==0 or line_id not in trade_document_line_id_list:\n
+      trade_document_line= context.newContent(\n
+                 portal_type=line_portal_type,)\n
+      trade_document_line.setResourceValue(product)\n
+      \n
+      trade_document_line.edit(\n
+               start_date=context.getStartDate(),\n
+               stop_date=context.getStopDate(),\n
+               resource_title=product.getTitle(),\n
+               price_currency = context.getPriceCurrency(),\n
+               quantity = line["quantity"],\n
+               )\n
+     if line["variation_category_list"]!=\'\':\n
+      trade_document_line.setVariationCategoryList([\'variation/%s\'%line["variation_category_list"]])\n
+      base_id = \'movement\'\n
+      cell_key_list = list(trade_document_line.getCellKeyList(base_id=base_id))\n
+      cell_key_list.sort()\n
+      price = line[\'total_price\']/line[\'quantity\']\n
+      quantity = line[\'quantity\']\n
+      for cell_key in cell_key_list:\n
+        cell = trade_document_line.newCell(base_id=base_id, \\\n
+                                portal_type=cell_portal_type, *cell_key)\n
+        cell.edit(mapped_value_property_list=[\'price\',\'quantity\'],\n
+                price=price, quantity=quantity,\n
+                predicate_category_list=cell_key,\n
+                variation_category_list=cell_key)\n
+        price += 1\n
+        quantity += 1\n
+     result_list.append(trade_document_line)\n
+\n
+\n
+#return to the feature module\n
+return context.Base_redirect(form_id, keep_items=dict(\n
+        portal_status_message=translateString(\'%s Created.\' %(line_portal_type,))))\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>line_portal_type, cell_portal_type, listbox=[], form_id=\'view\',**kw</string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>4</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>line_portal_type</string>
+                            <string>cell_portal_type</string>
+                            <string>listbox</string>
+                            <string>form_id</string>
+                            <string>kw</string>
+                            <string>Products.ERP5Type.Message</string>
+                            <string>translateString</string>
+                            <string>Products.ERP5Type.Log</string>
+                            <string>log</string>
+                            <string>result_list</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>trade_document_line_list</string>
+                            <string>append</string>
+                            <string>$append0</string>
+                            <string>_getiter_</string>
+                            <string>x</string>
+                            <string>trade_document_line_id_list</string>
+                            <string>line</string>
+                            <string>_getitem_</string>
+                            <string>None</string>
+                            <string>line_id</string>
+                            <string>product</string>
+                            <string>trade_document_line</string>
+                            <string>base_id</string>
+                            <string>list</string>
+                            <string>cell_key_list</string>
+                            <string>price</string>
+                            <string>quantity</string>
+                            <string>cell_key</string>
+                            <string>_apply_</string>
+                            <string>cell</string>
+                            <string>_inplacevar_</string>
+                            <string>len</string>
+                            <string>dict</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <tuple>
+                <list/>
+                <string>view</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>BaseTrade_setFastInputLineList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/BaseTrade_updateFastInputLineList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/BaseTrade_updateFastInputLineList.xml
new file mode 100644
index 0000000000..cdbc5a98cf
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/BaseTrade_updateFastInputLineList.xml
@@ -0,0 +1,235 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+        <tuple/>
+      </tuple>
+    </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 encoding="cdata"><![CDATA[
+
+"""\n
+  This script just returns what the user entered in\n
+  the fast input form, searches for the product whose\n
+  reference or title has been just entered and updates\n
+  the total price and the stock corresponding to the \n
+  product\n
+"""\n
+context.log("update", "no_inventory %s" %(no_inventory))\n
+result = [x.getObject() for x in context.BaseTrade_getFastInputLineList(line_portal_type=line_portal_type,\n
+                                                                        no_inventory=no_inventory,\n
+                                                                        lines_num=10, **kw)]\n
+\n
+request= context.REQUEST\n
+\n
+portal = context.getPortalObject()\n
+Base_translateString = portal.Base_translateString\n
+total_price = 0.0\n
+for line in listbox:\n
+  if line.has_key(\'listbox_key\') and (line[\'title\'] or line[\'reference\'] not in (\'\', None)):\n
+     product = context.portal_catalog.getResultValue(\n
+                                    portal_type=[\'Product\',\'Service\'],\n
+                                    title=line[\'title\'],\n
+                                    reference=line[\'reference\'])\n
+     line_id = line[\'listbox_key\']\n
+     cell = result[int(line_id)-1]\n
+     cell.setResourceValue(product)    \n
+     line["quantity_unit"] = cell.getQuantityUnit()\n
+     line["resource_relative_url"] = cell.getResource()\n
+     request.form["field_listbox_resource_relative_url_new_%s"%line_id]=cell.getResource()\n
+     kw["field_listbox_resource_relative_url_new_%s"%line_id]=cell.getResource()\n
+     request.set("field_listbox_resource_relative_url_new_%s"%line_id,cell.getResource())\n
+     request.form["field_listbox_reference_new_%s"%line_id] = product.getReference() or \'\'\n
+     request.form["field_listbox_title_new_%s"%line_id] = product.getTitle()\n
+     request.form["field_listbox_quantity_unit_new_%s"%line_id] = cell.getQuantityUnit()\n
+     \n
+     if line["variation_category_list"]!=\'\' and product.getPortalType()==\'Product\' \\\n
+        and no_inventory is False \\\n
+        and line[\'quantity\'] <= product.getAvailableInventory(section_uid=context.getSourceSectionValue().getUid(),\n
+                                                              variation_text=\'variation/%s\'%line["variation_category_list"]):\n
+       supply_cell_list = product.default_ssl.contentValues(portal_type=supply_cell_portal_type)\n
+       for supply_cell in supply_cell_list:\n
+         if supply_cell.getVariationCategoryList()[0]==\'variation/%s\'%line["variation_category_list"]:\n
+           line["total_price"] = line[\'quantity\'] * supply_cell.getBasePrice()\n
+       request.form["field_listbox_total_price_new_%s"%line_id] = line[\'total_price\']    \n
+       request.form["field_listbox_getAvailableInventory_new_%s"%line_id] = product.getAvailableInventory(\n
+                                         section_uid=context.getSourceSectionValue().getUid(),\n
+                              variation_text=\'variation/%s\'%line["variation_category_list"])\n
+       request.form[\'field_listbox_inventory_new_%s\'%line_id] = product.getInventory(\n
+                                                              section_uid=context.getSourceSectionValue().getUid(),\n
+                                                       variation_text=\'variation/%s\'%line["variation_category_list"])\n
+       request.form["field_listbox_getCurrentInventory_new_%s"%line_id] = product.getCurrentInventory(\n
+                                                                        section_uid=context.getSourceSectionValue().getUid(),\n
+                                                          variation_text=\'variation/%s\'%line["variation_category_list"])\n
+       total_price +=line[\'total_price\']\n
+       request.form["field_my_total_price"] = total_price\n
+       \n
+     elif line["variation_category_list"]==\'\' and product.getPortalType()==\'Product\' \\\n
+          and no_inventory is False \\\n
+          and line[\'quantity\'] <= product.getAvailableInventory(section_uid=context.getSourceSectionValue().getUid()):\n
+       line["total_price"] = line[\'quantity\'] * cell.getPrice()\n
+       request.form["field_listbox_total_price_new_%s"%line_id] = line[\'total_price\']\n
+       request.form["field_listbox_getAvailableInventory_new_%s"%line_id] = product.getAvailableInventory(\n
+                                         section_uid=context.getSourceSectionValue().getUid())\n
+       request.form[\'field_listbox_inventory_new_%s\'%line_id] = product.getInventory(\n
+                                                              section_uid=context.getSourceSectionValue().getUid())\n
+       request.form["field_listbox_getCurrentInventory_new_%s"%line_id] = product.getCurrentInventory(\n
+                                                                        section_uid=context.getSourceSectionValue().getUid(),)\n
+       total_price +=line[\'total_price\']\n
+       request.form["field_my_total_price"] = total_price\n
+     elif product.getPortalType()==\'Service\':\n
+       line["total_price"] = line[\'quantity\'] * cell.getPrice()\n
+       request.form["field_listbox_total_price_new_%s"%line_id] = line[\'total_price\']\n
+       total_price +=line[\'total_price\']\n
+       request.form["field_my_total_price"] = total_price\n
+     elif no_inventory is False:\n
+       request.set(\'portal_status_message\', \n
+                 Base_translateString(\'Quantity Asked For Line %s Not Available In Inventory\'%line[\'listbox_key\'])) \n
+ \n
+context.Base_updateDialogForm(listbox=listbox,update=1,kw=kw)\n
+return listbox, kw\n
+
+
+]]></string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>line_portal_type,supply_cell_portal_type, listbox=[], no_inventory=False, **kw</string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>4</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>line_portal_type</string>
+                            <string>supply_cell_portal_type</string>
+                            <string>listbox</string>
+                            <string>no_inventory</string>
+                            <string>kw</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>append</string>
+                            <string>$append0</string>
+                            <string>_getiter_</string>
+                            <string>_apply_</string>
+                            <string>x</string>
+                            <string>result</string>
+                            <string>request</string>
+                            <string>portal</string>
+                            <string>Base_translateString</string>
+                            <string>total_price</string>
+                            <string>line</string>
+                            <string>_getitem_</string>
+                            <string>None</string>
+                            <string>product</string>
+                            <string>line_id</string>
+                            <string>int</string>
+                            <string>cell</string>
+                            <string>_write_</string>
+                            <string>False</string>
+                            <string>supply_cell_list</string>
+                            <string>supply_cell</string>
+                            <string>_inplacevar_</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <tuple>
+                <list/>
+                <int>0</int>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>BaseTrade_updateFastInputLineList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_getFastInputInventoryLineList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_getFastInputInventoryLineList.xml
new file mode 100644
index 0000000000..436c2bc78d
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_getFastInputInventoryLineList.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+        <tuple/>
+      </tuple>
+    </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>result = context.BaseTrade_getFastInputLineList(line_portal_type="Inventory Line", lines_num=10, no_inventory=True, **kw)\n
+\n
+return result\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>**kw</string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>0</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>kw</string>
+                            <string>_apply_</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>True</string>
+                            <string>result</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Inventory_getFastInputInventoryLineList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_setInventoryLineList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_setInventoryLineList.xml
new file mode 100644
index 0000000000..5cb6689c64
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_setInventoryLineList.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+        <tuple/>
+      </tuple>
+    </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>context.BaseTrade_setFastInputLineList(line_portal_type="Inventory Line",\n
+                                       cell_portal_type="Inventory Cell",\n
+                                       listbox=listbox,\n
+                                       form_id=form_id,\n
+                                       no_inventory=True,\n
+                                       **kw)\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>listbox=[], form_id=\'view\',**kw</string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>2</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>listbox</string>
+                            <string>form_id</string>
+                            <string>kw</string>
+                            <string>_apply_</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>True</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <tuple>
+                <list/>
+                <string>view</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Inventory_setInventoryLineList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_updateInventoryLineList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_updateInventoryLineList.xml
new file mode 100644
index 0000000000..0be88bf5d6
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_updateInventoryLineList.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+        <tuple/>
+      </tuple>
+    </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>listbox, kw = context.BaseTrade_updateFastInputLineList(line_portal_type="Inventory Line",\n
+                                                        supply_cell_portal_type="Sale Supply Cell",\n
+                                                        listbox=listbox,\n
+                                                        no_inventory=True,\n
+                                                        **kw)\n
+return context.Inventory_viewInventoryFastInputDialog(listbox=listbox,**kw)\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>listbox=[],**kw</string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>1</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>listbox</string>
+                            <string>kw</string>
+                            <string>_apply_</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>True</string>
+                            <string>_getiter_</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <tuple>
+                <list/>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Inventory_updateInventoryLineList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog.xml
new file mode 100644
index 0000000000..67c17e3166
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ERP5Form" module="Products.ERP5Form.Form"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <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/>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>action</string> </key>
+            <value> <string>Inventory_setInventoryLineList</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>edit_order</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>enctype</string> </key>
+            <value> <string>application/x-www-form-urlencoded</string> </value>
+        </item>
+        <item>
+            <key> <string>group_list</string> </key>
+            <value>
+              <list>
+                <string>left</string>
+                <string>right</string>
+                <string>center</string>
+                <string>bottom</string>
+                <string>hidden</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>groups</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>bottom</string> </key>
+                    <value>
+                      <list>
+                        <string>listbox</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>center</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value>
+                      <list>
+                        <string>listbox_quantity</string>
+                        <string>listbox_reference</string>
+                        <string>listbox_total_quantity</string>
+                        <string>listbox_title</string>
+                        <string>listbox_variation_category_list</string>
+                        <string>listbox_quantity_unit</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>right</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Inventory_viewInventoryFastInputDialog</string> </value>
+        </item>
+        <item>
+            <key> <string>method</string> </key>
+            <value> <string>POST</string> </value>
+        </item>
+        <item>
+            <key> <string>name</string> </key>
+            <value> <string>Inventory_viewInventoryFastInputDialog</string> </value>
+        </item>
+        <item>
+            <key> <string>pt</string> </key>
+            <value> <string>form_dialog</string> </value>
+        </item>
+        <item>
+            <key> <string>row_length</string> </key>
+            <value> <int>4</int> </value>
+        </item>
+        <item>
+            <key> <string>stored_encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Define Inventory Lines</string> </value>
+        </item>
+        <item>
+            <key> <string>unicode_mode</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>update_action</string> </key>
+            <value> <string>Inventory_updateInventoryLineList</string> </value>
+        </item>
+        <item>
+            <key> <string>update_action_title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox.xml
new file mode 100644
index 0000000000..6108150647
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox.xml
@@ -0,0 +1,269 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>all_columns</string>
+                <string>columns</string>
+                <string>default_params</string>
+                <string>editable_columns</string>
+                <string>enabled</string>
+                <string>list_method</string>
+                <string>search_columns</string>
+                <string>selection_name</string>
+                <string>sort</string>
+                <string>title</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>all_columns</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>columns</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default_params</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable_columns</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>list_method</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>search_columns</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>selection_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>sort</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>all_columns</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>columns</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>title</string>
+                          <string>Product or Service</string>
+                        </tuple>
+                        <tuple>
+                          <string>reference</string>
+                          <string>Reference</string>
+                        </tuple>
+                        <tuple>
+                          <string>variation_category_list</string>
+                          <string>Variation</string>
+                        </tuple>
+                        <tuple>
+                          <string>quantity</string>
+                          <string>Quantity</string>
+                        </tuple>
+                        <tuple>
+                          <string>quantity_unit</string>
+                          <string>Quantity Unit</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>default_params</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>editable_columns</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>title</string>
+                          <string>Product or Service</string>
+                        </tuple>
+                        <tuple>
+                          <string>reference</string>
+                          <string>Reference</string>
+                        </tuple>
+                        <tuple>
+                          <string>quantity</string>
+                          <string>Quantity</string>
+                        </tuple>
+                        <tuple>
+                          <string>quantity_unit</string>
+                          <string>Quantity Unit</string>
+                        </tuple>
+                        <tuple>
+                          <string>variation_category_list</string>
+                          <string>Variation</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_order_sub_lines_listbox</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>OrderLine_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>list_method</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>search_columns</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>title</string>
+                          <string>Product or Service</string>
+                        </tuple>
+                        <tuple>
+                          <string>reference</string>
+                          <string>Reference</string>
+                        </tuple>
+                        <tuple>
+                          <string>quantity</string>
+                          <string>Quantity</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>selection_name</string> </key>
+                    <value> <string>inventory_fast_input_selection</string> </value>
+                </item>
+                <item>
+                    <key> <string>sort</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Define Inventory Lines</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="Method" module="Products.Formulator.MethodField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>method_name</string> </key>
+            <value> <string>Inventory_getFastInputInventoryLineList</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_quantity.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_quantity.xml
new file mode 100644
index 0000000000..274e8607d5
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_quantity.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>enabled</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_quantity</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_quantity</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>DeliveryCell_viewFieldLibrary</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_viewSaleOrderFastInputDialog/listbox_resource_relative_url.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_quantity_unit.xml
similarity index 81%
rename from bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_viewSaleOrderFastInputDialog/listbox_resource_relative_url.xml
rename to bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_quantity_unit.xml
index 0d84c9ec61..3a51e1a61d 100644
--- a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_viewSaleOrderFastInputDialog/listbox_resource_relative_url.xml
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_quantity_unit.xml
@@ -15,13 +15,13 @@
               <list>
                 <string>default</string>
                 <string>items</string>
-                <string>title</string>
+                <string>enabled</string>
               </list>
             </value>
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>listbox_resource_relative_url</string> </value>
+            <value> <string>listbox_quantity_unit</string> </value>
         </item>
         <item>
             <key> <string>message_values</string> </key>
@@ -39,15 +39,15 @@
             <value>
               <dictionary>
                 <item>
-                    <key> <string>field_id</string> </key>
+                    <key> <string>extra_context</string> </key>
                     <value> <string></string> </value>
                 </item>
                 <item>
-                    <key> <string>form_id</string> </key>
+                    <key> <string>field_id</string> </key>
                     <value> <string></string> </value>
                 </item>
                 <item>
-                    <key> <string>target</string> </key>
+                    <key> <string>form_id</string> </key>
                     <value> <string></string> </value>
                 </item>
               </dictionary>
@@ -61,6 +61,14 @@
                     <key> <string>default</string> </key>
                     <value> <string></string> </value>
                 </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value> <string></string> </value>
+                </item>
                 <item>
                     <key> <string>field_id</string> </key>
                     <value> <string></string> </value>
@@ -79,10 +87,6 @@
                     <key> <string>target</string> </key>
                     <value> <string></string> </value>
                 </item>
-                <item>
-                    <key> <string>title</string> </key>
-                    <value> <string></string> </value>
-                </item>
               </dictionary>
             </value>
         </item>
@@ -94,13 +98,23 @@
                     <key> <string>default</string> </key>
                     <value> <string></string> </value>
                 </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
                 <item>
                     <key> <string>field_id</string> </key>
-                    <value> <string>my_category</string> </value>
+                    <value> <string>my_quantity_unit</string> </value>
                 </item>
                 <item>
                     <key> <string>form_id</string> </key>
-                    <value> <string>Base_viewFieldLibrary</string> </value>
+                    <value> <string>DeliveryCell_viewFieldLibrary</string> </value>
                 </item>
                 <item>
                     <key> <string>items</string> </key>
@@ -108,14 +122,6 @@
                       <list/>
                     </value>
                 </item>
-                <item>
-                    <key> <string>target</string> </key>
-                    <value> <string>Click to edit the target</string> </value>
-                </item>
-                <item>
-                    <key> <string>title</string> </key>
-                    <value> <string>Resource Relative Url</string> </value>
-                </item>
               </dictionary>
             </value>
         </item>
@@ -133,7 +139,7 @@
       <dictionary>
         <item>
             <key> <string>_text</string> </key>
-            <value> <string>python: context.Base_getResourceItemList(use_list=preferences.getPreferredPurchaseUseList(), validation_state=\'validated\', show_default_quantity_unit=False)</string> </value>
+            <value> <string>python:cell.SaleOrderLine_getQuantityUnitItemList()</string> </value>
         </item>
       </dictionary>
     </pickle>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_reference.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_reference.xml
new file mode 100644
index 0000000000..21c157b067
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_reference.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_reference</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_reference</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>DeliveryCell_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_title.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_title.xml
new file mode 100644
index 0000000000..12d126e31f
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_title.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_title</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>OrderLine_viewFieldLibrary</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_total_quantity.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_total_quantity.xml
new file mode 100644
index 0000000000..1155c881da
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_total_quantity.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_total_quantity</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_total_quantity</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>OrderLine_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_variation_category_list.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_variation_category_list.xml
new file mode 100644
index 0000000000..6558d06b6c
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/Inventory_viewInventoryFastInputDialog/listbox_variation_category_list.xml
@@ -0,0 +1,283 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ListField" module="Products.Formulator.StandardFields"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_variation_category_list</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>unknown_selection</string> </key>
+                    <value> <string>You selected an item that was not in the list.</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>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>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</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>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>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</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>editable</string> </key>
+                    <value> <int>1</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>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Variation</string> </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>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python: [(\'\', \'\')] + [(x.getTitle(), x.getRelativeUrl()) for x in here.portal_catalog(portal_type=[\'Product Individual Variation\',\'Service Individual Variation\'])]</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_getFastInputSaleOrderLineList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_getFastInputSaleOrderLineList.xml
index 10946d047c..fa9332ab12 100644
--- a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_getFastInputSaleOrderLineList.xml
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_getFastInputSaleOrderLineList.xml
@@ -53,60 +53,8 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>"""\n
-  This script creates a list of empty lines when called for\n
-  the first time.When called the next time, it displays on \n
-  the fast input all sale order lines already added and \n
-  updates them based on fast input entries.\n
-"""\n
-from Products.ERP5Type.Document import newTempBase\n
-portal = context.getPortalObject()\n
-getobject = portal.portal_catalog.getobject\n
-request = context.REQUEST\n
-sale_order = context\n
-result = []\n
-line_list = context.contentValues(portal_type=\'Sale Order Line\')\n
-source_section = context.getSourceSectionValue()\n
-len_line_list = len(line_list)\n
-if len_line_list!=0:\n
-  for line in line_list:\n
-    obj=sale_order.newContent(portal_type=\'Sale Order Line\',\n
-                          id=line.getId(),\n
-                          uid="new_%s" % line.getId(),\n
-                          temp_object=1,\n
-                          is_indexable=0,)\n
-    #obj = newTempBase(portal, id="new_%s" % line.getId(), uid="new_%s" % line.getId()) \n
-    obj.edit(title=line.getResourceTitle(),\n
-           reference=line.getResourceReference(),\n
-           quantity=line.getQuantity(),\n
-           quantity_unit=line.getQuantityUnitList(),\n
-           total_price=line.getTotalPrice(),\n
-           getAvailableInventory=line.getResourceValue().getAvailableInventory(\n
-                                       section_uid=source_section.getUid(),\n
-                                       variation_text=line.getVariationText()),\n
-           getCurrentInventory=line.getResourceValue().getCurrentInventory(\n
-                                                 section_uid=source_section.getUid(),\n
-                                                 variation_text=line.getVariationText()),\n
-           inventory=line.getResourceValue().getInventory(\n
-                                                 section_uid=source_section.getUid(),\n
-                                               variation_text=line.getVariationText()))\n
-    result.append(obj)\n
+            <value> <string>result = context.BaseTrade_getFastInputLineList(line_portal_type="Sale Order Line", lines_num=10, **kw)\n
 \n
-for i in range(len_line_list+1,lines_num+1):\n
-   resource_relative_url = getattr(request,"field_listbox_resource_relative_url_new_%s"%i,None)\n
-   obj=sale_order.newContent(portal_type=\'Sale Order Line\',\n
-                          id=i,\n
-                          uid="new_%s" % i,\n
-                          temp_object=1,\n
-                          getAvailableInventory=0,\n
-                          getCurrentInventory=0,\n
-                          is_indexable=0,)\n
-   #obj = newTempBase(portal,id="new_%s" % i, uid="new_%s" % i)\n
-   if resource_relative_url not in (\'\',None):\n
-    resource = context.restrictedTraverse(resource_relative_url)   \n
-    obj.setResourceValue(resource)\n
-   result.append(obj)\n
-   \n
 return result\n
 </string> </value>
         </item>
@@ -146,28 +94,10 @@ return result\n
                           <tuple>
                             <string>lines_num</string>
                             <string>kw</string>
-                            <string>Products.ERP5Type.Document</string>
-                            <string>newTempBase</string>
+                            <string>_apply_</string>
                             <string>_getattr_</string>
                             <string>context</string>
-                            <string>portal</string>
-                            <string>getobject</string>
-                            <string>request</string>
-                            <string>sale_order</string>
                             <string>result</string>
-                            <string>line_list</string>
-                            <string>source_section</string>
-                            <string>len</string>
-                            <string>len_line_list</string>
-                            <string>_getiter_</string>
-                            <string>line</string>
-                            <string>obj</string>
-                            <string>range</string>
-                            <string>i</string>
-                            <string>getattr</string>
-                            <string>None</string>
-                            <string>resource_relative_url</string>
-                            <string>resource</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_setSaleOrderLineList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_setSaleOrderLineList.xml
index 8c6e3d3a76..51288f4740 100644
--- a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_setSaleOrderLineList.xml
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_setSaleOrderLineList.xml
@@ -53,93 +53,11 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>"""\n
-  This script creates or updates sale order lines based on the fast \n
-  input information.It should take into account any sale order line \n
-  which were already created so that they are not duplicated.\n
-"""\n
-from Products.ERP5Type.Message import translateString\n
-from Products.ERP5Type.Log import log\n
-result_list = []\n
-sale_order_line_list = context.contentValues(portal_type=\'Sale Order Line\')\n
-if sale_order_line_list!=[]:\n
-  sale_order_line_id_list = [x.getId() for x in sale_order_line_list]\n
-for line in listbox:\n
- #for each line in listbox if line has a reference defined, search \n
- #for the product whose reference has been entered\n
- if line.has_key(\'listbox_key\') and line[\'title\'] not in (\'\', None):\n
-   line_id = line[\'listbox_key\']\n
-   product = context.portal_catalog.getResultValue(\n
-                           portal_type=[\'Product\',\'Service\'],\n
-                                    title=line[\'title\'],\n
-                                    reference=line[\'reference\'])\n
-  \n
-   #for each sale order line already added,\n
-   #if the line\'s id is the same as the sale order line, update it\n
-   for sale_order_line in sale_order_line_list:\n
-     if sale_order_line.getId()==line_id:\n
-       sale_order_line.edit(start_date=context.getStartDate(),\n
-               stop_date=context.getStopDate(),\n
-               resource_title=product.getTitle(),\n
-               price_currency = context.getPriceCurrency(),\n
-               quantity = line["quantity"],\n
-               quantity_unit = product.getQuantityUnit(),)\n
-       sale_order_line.setResourceValue(product)\n
-       if line["variation_category_list"]!=\'\':\n
-        sale_order_line.setVariationCategoryList([\'variation/%s\'%line["variation_category_list"]])\n
-        base_id = \'movement\'\n
-        cell_key_list = list(sale_order_line.getCellKeyList(base_id=base_id))\n
-        cell_key_list.sort()\n
-        price = line[\'total_price\']/line[\'quantity\']\n
-        quantity = line[\'quantity\']\n
-        for cell_key in cell_key_list:\n
-          cell = sale_order_line.newCell(base_id=base_id, \\\n
-                                portal_type=\'Sale Order Cell\', *cell_key)\n
-          cell.edit(mapped_value_property_list=[\'price\',\'quantity\'],\n
-                price=price, quantity=quantity,\n
-                predicate_category_list=cell_key,\n
-                variation_category_list=cell_key)\n
-        price += 1\n
-        quantity += 1\n
-       result_list.append(sale_order_line)\n
-   else:\n
-     # if there was no sale order line already defined\n
-     # for the sale order, add a new sale order line\n
-     log("it goes in here second")\n
-     if len(sale_order_line_list)==0 or line_id not in sale_order_line_id_list:\n
-      sale_order_line= context.newContent(\n
-                 portal_type=\'Sale Order Line\',)\n
-      sale_order_line.setResourceValue(product)\n
-      \n
-      sale_order_line.edit(\n
-               start_date=context.getStartDate(),\n
-               stop_date=context.getStopDate(),\n
-               resource_title=product.getTitle(),\n
-               price_currency = context.getPriceCurrency(),\n
-               quantity = line["quantity"],\n
-               )\n
-     if line["variation_category_list"]!=\'\':\n
-      sale_order_line.setVariationCategoryList([\'variation/%s\'%line["variation_category_list"]])\n
-      base_id = \'movement\'\n
-      cell_key_list = list(sale_order_line.getCellKeyList(base_id=base_id))\n
-      cell_key_list.sort()\n
-      price = line[\'total_price\']/line[\'quantity\']\n
-      quantity = line[\'quantity\']\n
-      for cell_key in cell_key_list:\n
-        cell = sale_order_line.newCell(base_id=base_id, \\\n
-                                portal_type=\'Sale Order Cell\', *cell_key)\n
-        cell.edit(mapped_value_property_list=[\'price\',\'quantity\'],\n
-                price=price, quantity=quantity,\n
-                predicate_category_list=cell_key,\n
-                variation_category_list=cell_key)\n
-        price += 1\n
-        quantity += 1\n
-     result_list.append(sale_order_line)\n
-                             \n
-\n
-#return to the feature module\n
-return context.Base_redirect(form_id, keep_items=dict(\n
-        portal_status_message=translateString(\'Sale Order Lines Created.\')))\n
+            <value> <string>context.BaseTrade_setFastInputLineList(line_portal_type="Sale Order Line",\n
+                                       cell_portal_type="Sale Order Cell",\n
+                                       listbox=listbox,\n
+                                       form_id=form_id,\n
+                                       **kw)\n
 </string> </value>
         </item>
         <item>
@@ -179,36 +97,9 @@ return context.Base_redirect(form_id, keep_items=dict(\n
                             <string>listbox</string>
                             <string>form_id</string>
                             <string>kw</string>
-                            <string>Products.ERP5Type.Message</string>
-                            <string>translateString</string>
-                            <string>Products.ERP5Type.Log</string>
-                            <string>log</string>
-                            <string>result_list</string>
+                            <string>_apply_</string>
                             <string>_getattr_</string>
                             <string>context</string>
-                            <string>sale_order_line_list</string>
-                            <string>append</string>
-                            <string>$append0</string>
-                            <string>_getiter_</string>
-                            <string>x</string>
-                            <string>sale_order_line_id_list</string>
-                            <string>line</string>
-                            <string>_getitem_</string>
-                            <string>None</string>
-                            <string>line_id</string>
-                            <string>product</string>
-                            <string>sale_order_line</string>
-                            <string>base_id</string>
-                            <string>list</string>
-                            <string>cell_key_list</string>
-                            <string>price</string>
-                            <string>quantity</string>
-                            <string>cell_key</string>
-                            <string>_apply_</string>
-                            <string>cell</string>
-                            <string>_inplacevar_</string>
-                            <string>len</string>
-                            <string>dict</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_updateSaleOrderLineList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_updateSaleOrderLineList.xml
index 1755740568..4c68f1cdc7 100644
--- a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_updateSaleOrderLineList.xml
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_updateSaleOrderLineList.xml
@@ -53,86 +53,13 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string encoding="cdata"><![CDATA[
-
-"""\n
-  This script just returns what the user entered in\n
-  the fast input form, searches for the product whose\n
-  reference or title has been just entered and updates\n
-  the total price and the stock corresponding to the \n
-  product\n
-"""\n
-result = [x.getObject() for x in context.SaleOrder_getFastInputSaleOrderLineList(lines_num=10, **kw)]\n
+            <value> <string>listbox, kw = context.BaseTrade_updateFastInputLineList(line_portal_type="Sale Order Line",\n
+                                                        supply_cell_portal_type="Sale Supply Cell",\n
+                                                        listbox=listbox,\n
+                                                        **kw)\n
 \n
-request= context.REQUEST\n
-\n
-portal = context.getPortalObject()\n
-Base_translateString = portal.Base_translateString\n
-total_price = 0.0\n
-for line in listbox:\n
-  if line.has_key(\'listbox_key\') and (line[\'title\'] or line[\'reference\'] not in (\'\', None)):\n
-     product = context.portal_catalog.getResultValue(\n
-                                    portal_type=[\'Product\',\'Service\'],\n
-                                    title=line[\'title\'],\n
-                                    reference=line[\'reference\'])\n
-     line_id = line[\'listbox_key\']\n
-     cell = result[int(line_id)-1]\n
-     cell.setResourceValue(product)    \n
-     line["quantity_unit"] = cell.getQuantityUnit()\n
-     line["resource_relative_url"] = cell.getResource()\n
-     request.form["field_listbox_resource_relative_url_new_%s"%line_id]=cell.getResource()\n
-     kw["field_listbox_resource_relative_url_new_%s"%line_id]=cell.getResource()\n
-     request.set("field_listbox_resource_relative_url_new_%s"%line_id,cell.getResource())\n
-     request.form["field_listbox_reference_new_%s"%line_id] = product.getReference() or \'\'\n
-     request.form["field_listbox_title_new_%s"%line_id] = product.getTitle()\n
-     request.form["field_listbox_quantity_unit_new_%s"%line_id] = cell.getQuantityUnit()\n
-     \n
-     if line["variation_category_list"]!=\'\' and product.getPortalType()==\'Product\' and line[\'quantity\'] <= product.getAvailableInventory(\n
-                    section_uid=context.getSourceSectionValue().getUid(),\n
-                    variation_text=\'variation/%s\'%line["variation_category_list"]):\n
-       supply_cell_list = product.default_ssl.contentValues(portal_type=\'Sale Supply Cell\')\n
-       for supply_cell in supply_cell_list:\n
-         if supply_cell.getVariationCategoryList()[0]==\'variation/%s\'%line["variation_category_list"]:\n
-           line["total_price"] = line[\'quantity\'] * supply_cell.getBasePrice()\n
-       request.form["field_listbox_total_price_new_%s"%line_id] = line[\'total_price\']    \n
-       request.form["field_listbox_getAvailableInventory_new_%s"%line_id] = product.getAvailableInventory(\n
-                                         section_uid=context.getSourceSectionValue().getUid(),\n
-                              variation_text=\'variation/%s\'%line["variation_category_list"])\n
-       request.form[\'field_listbox_inventory_new_%s\'%line_id] = product.getInventory(\n
-                                                              section_uid=context.getSourceSectionValue().getUid(),\n
-                                                       variation_text=\'variation/%s\'%line["variation_category_list"])\n
-       request.form["field_listbox_getCurrentInventory_new_%s"%line_id] = product.getCurrentInventory(\n
-                                                                        section_uid=context.getSourceSectionValue().getUid(),\n
-                                                          variation_text=\'variation/%s\'%line["variation_category_list"])\n
-       total_price +=line[\'total_price\']\n
-       request.form["field_my_total_price"] = total_price\n
-       \n
-     elif line["variation_category_list"]==\'\' and product.getPortalType()==\'Product\' and line[\'quantity\'] <= product.getAvailableInventory(\n
-                    section_uid=context.getSourceSectionValue().getUid()):\n
-       line["total_price"] = line[\'quantity\'] * cell.getPrice()\n
-       request.form["field_listbox_total_price_new_%s"%line_id] = line[\'total_price\']\n
-       request.form["field_listbox_getAvailableInventory_new_%s"%line_id] = product.getAvailableInventory(\n
-                                         section_uid=context.getSourceSectionValue().getUid())\n
-       request.form[\'field_listbox_inventory_new_%s\'%line_id] = product.getInventory(\n
-                                                              section_uid=context.getSourceSectionValue().getUid())\n
-       request.form["field_listbox_getCurrentInventory_new_%s"%line_id] = product.getCurrentInventory(\n
-                                                                        section_uid=context.getSourceSectionValue().getUid(),)\n
-       total_price +=line[\'total_price\']\n
-       request.form["field_my_total_price"] = total_price\n
-     elif product.getPortalType()==\'Service\':\n
-       line["total_price"] = line[\'quantity\'] * cell.getPrice()\n
-       request.form["field_listbox_total_price_new_%s"%line_id] = line[\'total_price\']\n
-       total_price +=line[\'total_price\']\n
-       request.form["field_my_total_price"] = total_price\n
-     else:\n
-       request.set(\'portal_status_message\', \n
-                 Base_translateString(\'Quantity Asked For Line %s Not Available In Inventory\'%line[\'listbox_key\'])) \n
- \n
-context.Base_updateDialogForm(listbox=listbox,update=1,kw=kw)\n
 return context.SaleOrder_viewSaleOrderFastInputDialog(listbox=listbox,**kw)\n
-
-
-]]></string> </value>
+</string> </value>
         </item>
         <item>
             <key> <string>_code</string> </key>
@@ -170,29 +97,10 @@ return context.SaleOrder_viewSaleOrderFastInputDialog(listbox=listbox,**kw)\n
                           <tuple>
                             <string>listbox</string>
                             <string>kw</string>
-                            <string>append</string>
-                            <string>$append0</string>
-                            <string>_getiter_</string>
                             <string>_apply_</string>
                             <string>_getattr_</string>
                             <string>context</string>
-                            <string>x</string>
-                            <string>result</string>
-                            <string>request</string>
-                            <string>portal</string>
-                            <string>Base_translateString</string>
-                            <string>total_price</string>
-                            <string>line</string>
-                            <string>_getitem_</string>
-                            <string>None</string>
-                            <string>product</string>
-                            <string>line_id</string>
-                            <string>int</string>
-                            <string>cell</string>
-                            <string>_write_</string>
-                            <string>supply_cell_list</string>
-                            <string>supply_cell</string>
-                            <string>_inplacevar_</string>
+                            <string>_getiter_</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_viewSaleOrderFastInputDialog.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_viewSaleOrderFastInputDialog.xml
index b7c3fb2f74..4843714da3 100644
--- a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_viewSaleOrderFastInputDialog.xml
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_viewSaleOrderFastInputDialog.xml
@@ -102,7 +102,6 @@
                         <string>listbox_getCurrentInventory</string>
                         <string>listbox_getAvailableInventory</string>
                         <string>listbox_quantity_unit</string>
-                        <string>listbox_resource_relative_url</string>
                       </list>
                     </value>
                 </item>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_viewSaleOrderFastInputDialog/listbox.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_viewSaleOrderFastInputDialog/listbox.xml
index 06b068cf22..dd14021116 100644
--- a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_viewSaleOrderFastInputDialog/listbox.xml
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_viewSaleOrderFastInputDialog/listbox.xml
@@ -13,16 +13,16 @@
             <key> <string>delegated_list</string> </key>
             <value>
               <list>
-                <string>title</string>
-                <string>columns</string>
                 <string>all_columns</string>
-                <string>search_columns</string>
-                <string>sort</string>
-                <string>list_method</string>
-                <string>selection_name</string>
+                <string>columns</string>
                 <string>default_params</string>
                 <string>editable_columns</string>
                 <string>enabled</string>
+                <string>list_method</string>
+                <string>search_columns</string>
+                <string>selection_name</string>
+                <string>sort</string>
+                <string>title</string>
               </list>
             </value>
         </item>
@@ -137,10 +137,6 @@
                           <string>title</string>
                           <string>Product or Service</string>
                         </tuple>
-                        <tuple>
-                          <string>resource_relative_url</string>
-                          <string>Product or Service</string>
-                        </tuple>
                         <tuple>
                           <string>reference</string>
                           <string>Reference</string>
@@ -190,10 +186,6 @@
                           <string>title</string>
                           <string>Product or Service</string>
                         </tuple>
-                        <tuple>
-                          <string>resource_relative_url</string>
-                          <string>Product or Service</string>
-                        </tuple>
                         <tuple>
                           <string>reference</string>
                           <string>Reference</string>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_getFastInputSalePackingListLineList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_getFastInputSalePackingListLineList.xml
new file mode 100644
index 0000000000..181fc3fb19
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_getFastInputSalePackingListLineList.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+        <tuple/>
+      </tuple>
+    </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>result = context.BaseTrade_getFastInputLineList(line_portal_type="Sale Packing List Line", lines_num=10, **kw)\n
+\n
+return result\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>**kw</string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>0</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>kw</string>
+                            <string>_apply_</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>result</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>SalePackingList_getFastInputSalePackingListLineList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_setSalePackingListLineList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_setSalePackingListLineList.xml
new file mode 100644
index 0000000000..a83671599f
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_setSalePackingListLineList.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+        <tuple/>
+      </tuple>
+    </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>context.BaseTrade_setFastInputLineList(line_portal_type="Sale Packing List Line",\n
+                                       cell_portal_type="Sale Packing List Cell",\n
+                                       listbox=listbox,\n
+                                       form_id=form_id,\n
+                                       **kw)\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>listbox=[], form_id=\'view\',**kw</string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>2</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>listbox</string>
+                            <string>form_id</string>
+                            <string>kw</string>
+                            <string>_apply_</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <tuple>
+                <list/>
+                <string>view</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>SalePackingList_setSalePackingListLineList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_updateSalePackingListLineList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_updateSalePackingListLineList.xml
new file mode 100644
index 0000000000..c32b9f5af0
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_updateSalePackingListLineList.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+        <tuple/>
+      </tuple>
+    </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>listbox, kw = context.BaseTrade_updateFastInputLineList(line_portal_type="Sale Packing List Line",\n
+                                                        supply_cell_portal_type="Sale Supply Cell",\n
+                                                        listbox=listbox,\n
+                                                        **kw)\n
+\n
+return context.SalePackingList_viewSalePackingListFastInputDialog(listbox=listbox,**kw)\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>listbox=[],**kw</string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>1</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>listbox</string>
+                            <string>kw</string>
+                            <string>_apply_</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>_getiter_</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <tuple>
+                <list/>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>SalePackingList_updateSalePackingListLineList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog.xml
new file mode 100644
index 0000000000..d9b22afb11
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ERP5Form" module="Products.ERP5Form.Form"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <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/>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>action</string> </key>
+            <value> <string>SalePackingList_setSalePackingListLineList</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>edit_order</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>enctype</string> </key>
+            <value> <string>application/x-www-form-urlencoded</string> </value>
+        </item>
+        <item>
+            <key> <string>group_list</string> </key>
+            <value>
+              <list>
+                <string>left</string>
+                <string>right</string>
+                <string>center</string>
+                <string>bottom</string>
+                <string>hidden</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>groups</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>bottom</string> </key>
+                    <value>
+                      <list>
+                        <string>listbox</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>center</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value>
+                      <list>
+                        <string>listbox_quantity</string>
+                        <string>listbox_reference</string>
+                        <string>listbox_total_price</string>
+                        <string>listbox_total_quantity</string>
+                        <string>listbox_inventory</string>
+                        <string>listbox_title</string>
+                        <string>listbox_variation_category_list</string>
+                        <string>listbox_getCurrentInventory</string>
+                        <string>listbox_getAvailableInventory</string>
+                        <string>listbox_quantity_unit</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left</string> </key>
+                    <value>
+                      <list>
+                        <string>my_total_price</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>right</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>SalePackingList_viewSalePackingListFastInputDialog</string> </value>
+        </item>
+        <item>
+            <key> <string>method</string> </key>
+            <value> <string>POST</string> </value>
+        </item>
+        <item>
+            <key> <string>name</string> </key>
+            <value> <string>SalePackingList_viewSalePackingListFastInputDialog</string> </value>
+        </item>
+        <item>
+            <key> <string>pt</string> </key>
+            <value> <string>form_dialog</string> </value>
+        </item>
+        <item>
+            <key> <string>row_length</string> </key>
+            <value> <int>4</int> </value>
+        </item>
+        <item>
+            <key> <string>stored_encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Define Sale Packing List Lines</string> </value>
+        </item>
+        <item>
+            <key> <string>unicode_mode</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>update_action</string> </key>
+            <value> <string>SalePackingList_updateSalePackingListLineList</string> </value>
+        </item>
+        <item>
+            <key> <string>update_action_title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox.xml
new file mode 100644
index 0000000000..04518448fd
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox.xml
@@ -0,0 +1,301 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>all_columns</string>
+                <string>columns</string>
+                <string>default_params</string>
+                <string>editable_columns</string>
+                <string>enabled</string>
+                <string>list_method</string>
+                <string>search_columns</string>
+                <string>selection_name</string>
+                <string>sort</string>
+                <string>title</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>all_columns</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>columns</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default_params</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable_columns</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>list_method</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>search_columns</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>selection_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>sort</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>all_columns</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>columns</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>title</string>
+                          <string>Product or Service</string>
+                        </tuple>
+                        <tuple>
+                          <string>reference</string>
+                          <string>Reference</string>
+                        </tuple>
+                        <tuple>
+                          <string>variation_category_list</string>
+                          <string>Variation</string>
+                        </tuple>
+                        <tuple>
+                          <string>quantity</string>
+                          <string>Quantity</string>
+                        </tuple>
+                        <tuple>
+                          <string>quantity_unit</string>
+                          <string>Quantity Unit</string>
+                        </tuple>
+                        <tuple>
+                          <string>total_price</string>
+                          <string>Total Price</string>
+                        </tuple>
+                        <tuple>
+                          <string>getCurrentInventory</string>
+                          <string>Current</string>
+                        </tuple>
+                        <tuple>
+                          <string>getAvailableInventory</string>
+                          <string>Available</string>
+                        </tuple>
+                        <tuple>
+                          <string>inventory</string>
+                          <string>Future</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>default_params</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>editable_columns</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>title</string>
+                          <string>Product or Service</string>
+                        </tuple>
+                        <tuple>
+                          <string>reference</string>
+                          <string>Reference</string>
+                        </tuple>
+                        <tuple>
+                          <string>quantity</string>
+                          <string>Quantity</string>
+                        </tuple>
+                        <tuple>
+                          <string>quantity_unit</string>
+                          <string>Quantity Unit</string>
+                        </tuple>
+                        <tuple>
+                          <string>variation_category_list</string>
+                          <string>Variation</string>
+                        </tuple>
+                        <tuple>
+                          <string>total_price</string>
+                          <string>Total Price</string>
+                        </tuple>
+                        <tuple>
+                          <string>getCurrentInventory</string>
+                          <string>Current</string>
+                        </tuple>
+                        <tuple>
+                          <string>getAvailableInventory</string>
+                          <string>Available</string>
+                        </tuple>
+                        <tuple>
+                          <string>inventory</string>
+                          <string>Future</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_order_sub_lines_listbox</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>OrderLine_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>list_method</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>search_columns</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>title</string>
+                          <string>Product or Service</string>
+                        </tuple>
+                        <tuple>
+                          <string>reference</string>
+                          <string>Reference</string>
+                        </tuple>
+                        <tuple>
+                          <string>quantity</string>
+                          <string>Quantity</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>selection_name</string> </key>
+                    <value> <string>sale_packing_list_fast_input_selection</string> </value>
+                </item>
+                <item>
+                    <key> <string>sort</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Define Sale Packing List Lines</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="Method" module="Products.Formulator.MethodField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>method_name</string> </key>
+            <value> <string>SalePackingList_getFastInputSalePackingListLineList</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_getAvailableInventory.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_getAvailableInventory.xml
new file mode 100644
index 0000000000..5502f4e5be
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_getAvailableInventory.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>default</string>
+                <string>editable</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_getAvailableInventory</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_quantity</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_getCurrentInventory.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_getCurrentInventory.xml
new file mode 100644
index 0000000000..fd33083ddf
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_getCurrentInventory.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>editable</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_getCurrentInventory</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_quantity</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_inventory.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_inventory.xml
new file mode 100644
index 0000000000..d7795d970e
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_inventory.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>editable</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_inventory</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_quantity</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>Base_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_quantity.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_quantity.xml
new file mode 100644
index 0000000000..274e8607d5
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_quantity.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>enabled</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_quantity</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_quantity</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>DeliveryCell_viewFieldLibrary</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_quantity_unit.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_quantity_unit.xml
new file mode 100644
index 0000000000..3a51e1a61d
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_quantity_unit.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>default</string>
+                <string>items</string>
+                <string>enabled</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_quantity_unit</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_quantity_unit</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>DeliveryCell_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python:cell.SaleOrderLine_getQuantityUnitItemList()</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_reference.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_reference.xml
new file mode 100644
index 0000000000..21c157b067
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_reference.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_reference</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_reference</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>DeliveryCell_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_title.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_title.xml
new file mode 100644
index 0000000000..12d126e31f
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_title.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>extra_context</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_title</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>OrderLine_viewFieldLibrary</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_total_price.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_total_price.xml
new file mode 100644
index 0000000000..313362ea0b
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_total_price.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>default</string>
+                <string>enabled</string>
+                <string>editable</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_total_price</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</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>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_total_price</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>OrderLine_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_total_quantity.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_total_quantity.xml
new file mode 100644
index 0000000000..1155c881da
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_total_quantity.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_total_quantity</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_total_quantity</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>OrderLine_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_variation_category_list.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_variation_category_list.xml
new file mode 100644
index 0000000000..6558d06b6c
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/listbox_variation_category_list.xml
@@ -0,0 +1,283 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ListField" module="Products.Formulator.StandardFields"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>listbox_variation_category_list</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>unknown_selection</string> </key>
+                    <value> <string>You selected an item that was not in the list.</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>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>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</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>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>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</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>editable</string> </key>
+                    <value> <int>1</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>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Variation</string> </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>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python: [(\'\', \'\')] + [(x.getTitle(), x.getRelativeUrl()) for x in here.portal_catalog(portal_type=[\'Product Individual Variation\',\'Service Individual Variation\'])]</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/my_total_price.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/my_total_price.xml
new file mode 100644
index 0000000000..39a199b405
--- /dev/null
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SalePackingList_viewSalePackingListFastInputDialog/my_total_price.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>delegated_list</string> </key>
+            <value>
+              <list>
+                <string>precision</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>my_total_price</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>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>precision</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>field_id</string> </key>
+                    <value> <string>my_total_price</string> </value>
+                </item>
+                <item>
+                    <key> <string>form_id</string> </key>
+                    <value> <string>OrderLine_viewFieldLibrary</string> </value>
+                </item>
+                <item>
+                    <key> <string>precision</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>target</string> </key>
+                    <value> <string>Click to edit the target</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <global name="TALESMethod" module="Products.Formulator.TALESField"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python: here.getQuantityPrecisionFromResource(here.getPriceCurrency())</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_trade/bt/change_log b/bt5/erp5_trade/bt/change_log
index 039b99e713..6cff2c22db 100644
--- a/bt5/erp5_trade/bt/change_log
+++ b/bt5/erp5_trade/bt/change_log
@@ -1,3 +1,6 @@
+2010-01-21 aurel
+* add fast input for inventory and sale packing list, factorize the code so that it is easy to add a new fast input
+
 2009-12-16 yo
 * Change the permission of sale order fast input to Add portal content. This is not still sufficient (because Modified portal content on lines is also required), but better than before.
 
diff --git a/bt5/erp5_trade/bt/revision b/bt5/erp5_trade/bt/revision
index f9b0327477..d2014d1325 100644
--- a/bt5/erp5_trade/bt/revision
+++ b/bt5/erp5_trade/bt/revision
@@ -1 +1 @@
-815
\ No newline at end of file
+817
\ No newline at end of file
-- 
2.30.9