From b676f653d84ef851ca73a741d662233954b2281f Mon Sep 17 00:00:00 2001
From: Jean-Paul Smets <jp@nexedi.com>
Date: Mon, 12 Jul 2004 15:54:17 +0000
Subject: [PATCH] updated by yo on real use server

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@1164 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../skins/erp5_accounting/account_list.form   |  34 +-
 .../skins/erp5_accounting/account_view.form   |  51 +-
 .../accounting_transaction_line_view.form     |  31 +-
 .../accounting_transaction_view.form          | 272 +++++++---
 .../erp5_accounting/addPurchaseInvoice.py     |  18 +-
 .../skins/erp5_accounting/addSaleInvoice.py   |  14 +-
 .../skins/erp5_accounting/currency_list.form  |  17 +-
 .../skins/erp5_accounting/currency_view.form  |  22 +-
 ...voiceTransactionLineDestinationItemList.py |  51 +-
 ...getInvoiceTransactionLineSourceItemList.py |  51 +-
 .../invoice_transaction_print.pt              | 291 ++++------
 ...urchase_invoice_transaction_line_view.form |  50 +-
 .../purchase_invoice_transaction_view.form    | 255 +++++++--
 .../sale_invoice_transaction_line_view.form   |  54 +-
 .../sale_invoice_transaction_view.form        | 506 +++++++++++++-----
 .../erp5_accounting/transaction_list.form     |  54 +-
 16 files changed, 1221 insertions(+), 550 deletions(-)

diff --git a/product/ERP5/skins/erp5_accounting/account_list.form b/product/ERP5/skins/erp5_accounting/account_list.form
index fe253aeacc..a62a44407b 100755
--- a/product/ERP5/skins/erp5_accounting/account_list.form
+++ b/product/ERP5/skins/erp5_accounting/account_list.form
@@ -1,13 +1,17 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml version="1.0"?>
 
 <form>
   <title>Account List</title>
-  <name>accounting_transaction_list</name>
-  <action>base_edit</action>
-  <enctype></enctype>
-  <method>POST</method>
+  <row_length>4</row_length>
+  <name>account_list</name>
   <pt>form_list</pt>
-
+  <action>doSelect</action>
+  <update_action></update_action>
+  <method>POST</method>
+  <enctype></enctype>
+  <encoding>UTF-8</encoding>
+  <stored_encoding>ISO-8859-1</stored_encoding>
+  <unicode_mode>false</unicode_mode>
   <groups>
     <group>
       <title>left</title>
@@ -15,32 +19,36 @@
 
       <field><id>listbox</id> <type>ListBox</type>
         <values>
-          <all_columns type="list">[]</all_columns>
+          <all_columns type="list">[('id', 'id'), ('pcg_title', 'PCG'), ('Title', 'Title'), ('default_destination_title', 'Mirror'), ('Account_countAccountingTransactions', 'Count'), ('Account_getTotalSourceCredit', 'Credit'), ('Account_getTotalSourceDebit', 'Debit'), ('accounting_transaction_line_currency', 'Currency')]</all_columns>
           <all_editable_columns type="list">[]</all_editable_columns>
           <alternate_name></alternate_name>
-          <columns type="list">[('id', 'id'), ('pcg_title', 'PCG'), ('title', 'Title'), ('destination', 'Mirror')]</columns>
+          <columns type="list">[('id', 'id'), ('pcg_title', 'PCG'), ('Title', 'Title'), ('default_destination_title', 'Mirror'), ('Account_countAccountingTransactions', 'Count'), ('Account_getTotalSourceCredit', 'Credit'), ('Account_getTotalSourceDebit', 'Debit'), ('accounting_transaction_line_currency', 'Currency')]</columns>
           <css_class></css_class>
           <default></default>
-          <default_params type="list">[]</default_params>
+          <default_params type="list">[('id', "''"), ('pcg_title', "''"), ('Title', "''"), ('default_destination_title', "''")]</default_params>
           <description></description>
-          <domain_root_list type="list">[]</domain_root_list>
+          <domain_root_list type="list">[('portal_categories/pcg', 'PCG'), ('portal_categories/account_type', 'Account Type'), ('portal_categories/financial_section', 'Balance Sheet')]</domain_root_list>
           <domain_tree type="int">0</domain_tree>
+          <editable type="int">1</editable>
           <editable_columns type="list">[]</editable_columns>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <global_attributes type="list">[]</global_attributes>
           <hidden type="int">0</hidden>
           <lines type="int">25</lines>
           <list_action>list</list_action>
-          <list_method type="method">portal_catalog</list_method>
+          <list_method type="method">Account_search</list_method>
           <meta_types type="list">[]</meta_types>
           <portal_types type="list">[('Account', 'Account')]</portal_types>
-          <report_root_list type="list">[]</report_root_list>
+          <report_root_list type="list">[('portal_categories/pcg', 'PCG'), ('portal_categories/account_type', 'Account Type')]</report_root_list>
           <report_tree type="int">0</report_tree>
           <search type="int">1</search>
+          <search_columns type="list">[]</search_columns>
           <select type="int">1</select>
           <selection_name>account_selection</selection_name>
           <sort type="list">[('id', 'id')]</sort>
-          <stat_method></stat_method>
+          <sort_columns type="list">[]</sort_columns>
+          <stat_method type="method">portal_catalog</stat_method>
           <title>Account Listbox</title>
         </values>
         <tales>
diff --git a/product/ERP5/skins/erp5_accounting/account_view.form b/product/ERP5/skins/erp5_accounting/account_view.form
index 0ee236e97d..f1726af6b0 100755
--- a/product/ERP5/skins/erp5_accounting/account_view.form
+++ b/product/ERP5/skins/erp5_accounting/account_view.form
@@ -1,13 +1,17 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml version="1.0"?>
 
 <form>
   <title>Account</title>
+  <row_length>4</row_length>
   <name>accounting_transaction_list</name>
+  <pt>form_view</pt>
   <action>base_edit</action>
-  <enctype></enctype>
+  <update_action></update_action>
   <method>POST</method>
-  <pt>form_view</pt>
-
+  <enctype></enctype>
+  <encoding>UTF-8</encoding>
+  <stored_encoding>ISO-8859-1</stored_encoding>
+  <unicode_mode>false</unicode_mode>
   <groups>
     <group>
       <title>left</title>
@@ -21,6 +25,8 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
@@ -28,6 +34,8 @@
           <required type="int">1</required>
           <title>Id</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -45,6 +53,8 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
@@ -52,6 +62,8 @@
           <required type="int">1</required>
           <title>Title</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -67,6 +79,8 @@
           <css_class></css_class>
           <default type="int">0</default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
@@ -85,17 +99,22 @@
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
           <required type="int">1</required>
           <size type="int">1</size>
           <title>PCG</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
-          <items>here/portal_categories/pcg/getCategoryChildTitleItemList</items>
+          <items>python: here.getAccountPcgItemList()</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
@@ -109,14 +128,19 @@
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
           <required type="int">1</required>
           <size type="int">1</size>
           <title>Account Type</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
           <items>here/portal_categories/account_type/getCategoryChildTitleItemList</items>
@@ -133,14 +157,19 @@
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
           <required type="int">1</required>
           <size type="int">1</size>
           <title>Financial Section</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
           <items>here/portal_categories/financial_section/getCategoryChildTitleItemList</items>
@@ -155,11 +184,13 @@
         <values>
           <alternate_name></alternate_name>
           <base_category>destination</base_category>
-          <catalog_index>Title</catalog_index>
+          <catalog_index>relative_url</catalog_index>
           <css_class></css_class>
           <default type="list">[]</default>
           <default_module>account</default_module>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <height type="int">5</height>
@@ -169,9 +200,13 @@
           <max_linelength></max_linelength>
           <max_lines></max_lines>
           <portal_type type="list">[('Account', 'account')]</portal_type>
+          <relation_setter_id></relation_setter_id>
           <required type="int">0</required>
           <title>Mirror account</title>
+          <unicode type="int">0</unicode>
           <update_method>base_update_relation</update_method>
+          <view_separator>&lt;br /&gt;</view_separator>
+          <whitespace_preserve type="int">0</whitespace_preserve>
           <width type="int">40</width>
         </values>
         <tales>
@@ -202,6 +237,8 @@
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <height type="int">5</height>
@@ -211,6 +248,8 @@
           <max_lines></max_lines>
           <required type="int">0</required>
           <title>Description</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
           <width type="int">80</width>
         </values>
         <tales>
diff --git a/product/ERP5/skins/erp5_accounting/accounting_transaction_line_view.form b/product/ERP5/skins/erp5_accounting/accounting_transaction_line_view.form
index aa4cf6f165..a35eb422f8 100755
--- a/product/ERP5/skins/erp5_accounting/accounting_transaction_line_view.form
+++ b/product/ERP5/skins/erp5_accounting/accounting_transaction_line_view.form
@@ -1,13 +1,17 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml version="1.0"?>
 
 <form>
   <title>Accounting Transaction Line</title>
+  <row_length>4</row_length>
   <name>accounting_transaction_list</name>
+  <pt>form_view</pt>
   <action>base_edit</action>
-  <enctype></enctype>
+  <update_action></update_action>
   <method>POST</method>
-  <pt>form_view</pt>
-
+  <enctype></enctype>
+  <encoding>UTF-8</encoding>
+  <stored_encoding>ISO-8859-1</stored_encoding>
+  <unicode_mode>false</unicode_mode>
   <groups>
     <group>
       <title>left</title>
@@ -19,14 +23,19 @@
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
           <required type="int">0</required>
           <size type="int">1</size>
           <title>Currency</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
           <items>python:map(lambda x: (x.id,'currency/%s' % x.id),here.currency.objectValues())</items>
@@ -48,6 +57,8 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
@@ -57,7 +68,9 @@
           <required type="int">0</required>
           <title>Destination</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
           <update_method>base_update_relation</update_method>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -78,6 +91,8 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
@@ -87,7 +102,9 @@
           <required type="int">0</required>
           <title>Source</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
           <update_method>base_update_relation</update_method>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -105,11 +122,14 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
           <required type="int">0</required>
           <title>Source Credit</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -127,11 +147,14 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
           <required type="int">0</required>
           <title>Source Debit</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
diff --git a/product/ERP5/skins/erp5_accounting/accounting_transaction_view.form b/product/ERP5/skins/erp5_accounting/accounting_transaction_view.form
index 06fa6c2cb5..6b5f5b94df 100755
--- a/product/ERP5/skins/erp5_accounting/accounting_transaction_view.form
+++ b/product/ERP5/skins/erp5_accounting/accounting_transaction_view.form
@@ -1,65 +1,77 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml version="1.0"?>
 
 <form>
   <title>Accounting Transaction</title>
+  <row_length>4</row_length>
   <name>accounting_transaction_list</name>
+  <pt>form_view</pt>
   <action>base_edit</action>
-  <enctype></enctype>
+  <update_action></update_action>
   <method>POST</method>
-  <pt>form_view</pt>
-
+  <enctype></enctype>
+  <encoding>UTF-8</encoding>
+  <stored_encoding>ISO-8859-1</stored_encoding>
+  <unicode_mode>false</unicode_mode>
   <groups>
     <group>
       <title>left</title>
       <fields>
 
-      <field><id>my_id</id> <type>StringField</type>
+      <field><id>my_source_section</id> <type>ListField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
-          <display_maxwidth></display_maxwidth>
-          <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
+          <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
-          <max_length></max_length>
-          <required type="int">1</required>
-          <title>Id</title>
-          <truncate type="int">0</truncate>
+          <items type="list">[]</items>
+          <required type="int">0</required>
+          <size type="int">1</size>
+          <title>Section</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
+          <items>python: [['Nexedi', 'organisation/nexedi']]</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
           <message name="required_not_found">Input is required but no input given.</message>
-          <message name="too_long">Too much input was given.</message>
+          <message name="unknown_selection">You selected an item that was not in the list.</message>
         </messages>
       </field>
-      <field><id>my_effective_date</id> <type>DateTimeField</type>
+      <field><id>my_source_reference</id> <type>StringField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
-          <date_only type="int">1</date_only>
-          <date_separator>/</date_separator>
-          <default_now type="int">0</default_now>
+          <default></default>
           <description></description>
+          <display_maxwidth></display_maxwidth>
+          <display_width type="int">20</display_width>
+          <editable type="int">0</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
+          <extra></extra>
           <hidden type="int">0</hidden>
-          <input_order>ymd</input_order>
-          <input_style>text</input_style>
-          <required type="int">1</required>
-          <time_separator>:</time_separator>
-          <title>Accounting Date</title>
+          <max_length></max_length>
+          <required type="int">0</required>
+          <title>Section Transaction Reference</title>
+          <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
           <message name="required_not_found">Input is required but no input given.</message>
-          <message name="not_datetime">You did not enter a valid date and time.</message>
-          <message name="datetime_out_of_range">The date and time you entered were out of range.</message>
+          <message name="too_long">Too much input was given.</message>
         </messages>
       </field>
       <field><id>my_title</id> <type>StringField</type>
@@ -70,6 +82,8 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
@@ -77,6 +91,8 @@
           <required type="int">1</required>
           <title>Title</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -97,16 +113,21 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
           <jump_method>base_jump_relation</jump_method>
           <max_length></max_length>
-          <portal_type type="list">[('Person', 'Person'), ('Organisation', 'Organisation')]</portal_type>
+          <portal_type type="list">[('Organisation', 'Organisation'), ('Person', 'Person')]</portal_type>
+          <relation_setter_id></relation_setter_id>
           <required type="int">0</required>
-          <title>Destination Section</title>
+          <title>Third Party</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
           <update_method>base_update_relation</update_method>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -116,27 +137,25 @@
           <message name="too_long">Too much input was given.</message>
         </messages>
       </field>
-      <field><id>my_source_section_title</id> <type>RelationStringField</type>
+      <field><id>my_reference</id> <type>StringField</type>
         <values>
           <alternate_name></alternate_name>
-          <base_category>source_section</base_category>
-          <catalog_index>id</catalog_index>
           <css_class></css_class>
           <default></default>
-          <default_module>person</default_module>
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
-          <jump_method>base_jump_relation</jump_method>
           <max_length></max_length>
-          <portal_type type="list">[('Person', 'Person'), ('Organisation', 'Organisation')]</portal_type>
           <required type="int">0</required>
-          <title>Source Section</title>
+          <title>Transaction Reference</title>
           <truncate type="int">0</truncate>
-          <update_method>base_update_relation</update_method>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -146,46 +165,60 @@
           <message name="too_long">Too much input was given.</message>
         </messages>
       </field>
-      <field><id>my_start_date</id> <type>DateTimeField</type>
+      <field><id>my_resource</id> <type>ListField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
-          <date_only type="int">1</date_only>
-          <date_separator>/</date_separator>
-          <default_now type="int">0</default_now>
+          <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
+          <extra></extra>
+          <extra_item></extra_item>
+          <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
-          <input_order>ymd</input_order>
-          <input_style>text</input_style>
-          <required type="int">1</required>
-          <time_separator>:</time_separator>
-          <title>Order Date</title>
+          <items type="list">[]</items>
+          <required type="int">0</required>
+          <size type="int">1</size>
+          <title>Currency</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
+          <items>python:[('','')]+map(lambda x:(x.id,'currency/%s' %x.id),here.currency.objectValues())</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
           <message name="required_not_found">Input is required but no input given.</message>
-          <message name="not_datetime">You did not enter a valid date and time.</message>
-          <message name="datetime_out_of_range">The date and time you entered were out of range.</message>
+          <message name="unknown_selection">You selected an item that was not in the list.</message>
         </messages>
       </field>
-      <field><id>my_stop_date</id> <type>DateTimeField</type>
+      </fields>
+    </group>
+    <group>
+      <title>right</title>
+      <fields>
+
+      <field><id>my_start_date</id> <type>DateTimeField</type>
         <values>
+          <allow_empty_time type="int">0</allow_empty_time>
           <alternate_name></alternate_name>
+          <ampm_time_style type="int">0</ampm_time_style>
           <css_class></css_class>
           <date_only type="int">1</date_only>
           <date_separator>/</date_separator>
-          <default_now type="int">0</default_now>
+          <default_now type="int">1</default_now>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <hidden type="int">0</hidden>
           <input_order>ymd</input_order>
           <input_style>text</input_style>
-          <required type="int">1</required>
+          <required type="int">0</required>
           <time_separator>:</time_separator>
-          <title>Value Date</title>
+          <title>Operation Date</title>
         </values>
         <tales>
         </tales>
@@ -196,18 +229,14 @@
           <message name="datetime_out_of_range">The date and time you entered were out of range.</message>
         </messages>
       </field>
-      </fields>
-    </group>
-    <group>
-      <title>right</title>
-      <fields>
-
       <field><id>my_description</id> <type>TextAreaField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <height type="int">5</height>
@@ -217,6 +246,8 @@
           <max_lines></max_lines>
           <required type="int">0</required>
           <title>Description</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
           <width type="int">40</width>
         </values>
         <tales>
@@ -229,6 +260,63 @@
           <message name="too_long">You entered too many characters.</message>
         </messages>
       </field>
+      <field><id>simulation_state</id> <type>StringField</type>
+        <values>
+          <alternate_name></alternate_name>
+          <css_class></css_class>
+          <default></default>
+          <description></description>
+          <display_maxwidth></display_maxwidth>
+          <display_width type="int">20</display_width>
+          <editable type="int">0</editable>
+          <enabled type="int">1</enabled>
+          <external_validator></external_validator>
+          <extra></extra>
+          <hidden type="int">0</hidden>
+          <max_length></max_length>
+          <required type="int">0</required>
+          <title>State</title>
+          <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
+        </values>
+        <tales>
+          <default>python:here.portal_workflow.getInfoFor(here, 'simulation_state')</default>
+        </tales>
+        <messages>
+          <message name="external_validator_failed">The input failed the external validator.</message>
+          <message name="required_not_found">Input is required but no input given.</message>
+          <message name="too_long">Too much input was given.</message>
+        </messages>
+      </field>
+      <field><id>my_destination_reference</id> <type>StringField</type>
+        <values>
+          <alternate_name></alternate_name>
+          <css_class></css_class>
+          <default></default>
+          <description></description>
+          <display_maxwidth></display_maxwidth>
+          <display_width type="int">20</display_width>
+          <editable type="int">0</editable>
+          <enabled type="int">1</enabled>
+          <external_validator></external_validator>
+          <extra></extra>
+          <hidden type="int">0</hidden>
+          <max_length></max_length>
+          <required type="int">0</required>
+          <title>Third Party Transaction Reference</title>
+          <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
+        </values>
+        <tales>
+        </tales>
+        <messages>
+          <message name="external_validator_failed">The input failed the external validator.</message>
+          <message name="required_not_found">Input is required but no input given.</message>
+          <message name="too_long">Too much input was given.</message>
+        </messages>
+      </field>
       </fields>
     </group>
     <group>
@@ -246,30 +334,34 @@
           <all_columns type="list">[]</all_columns>
           <all_editable_columns type="list">[]</all_editable_columns>
           <alternate_name></alternate_name>
-          <columns type="list">[('source', 'Source Account'), ('source_debit', 'Debit'), ('source_credit', 'Credit'), ('resource', 'Currency'), ('destination', 'Destination Account'), ('destination_debit', 'Debit'), ('destination_credit', 'Credit')]</columns>
+          <columns type="list">[('id', 'id'), ('source', 'Account'), ('source_debit', 'Debit'), ('source_credit', 'Credit')]</columns>
           <css_class></css_class>
           <default></default>
           <default_params type="list">[]</default_params>
           <description></description>
           <domain_root_list type="list">[]</domain_root_list>
           <domain_tree type="int">0</domain_tree>
-          <editable_columns type="list">[('source', 'Source Account'), ('source_debit', 'Debit'), ('source_credit', 'Credit'), ('resource', 'Currency'), ('destination', 'Destination Account')]</editable_columns>
+          <editable type="int">1</editable>
+          <editable_columns type="list">[('source_debit', 'Debit'), ('source_credit', 'Credit'), ('source', 'Account')]</editable_columns>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <global_attributes type="list">[]</global_attributes>
           <hidden type="int">0</hidden>
           <lines type="int">10</lines>
           <list_action>folder_contents</list_action>
-          <list_method type="method">searchFolder</list_method>
+          <list_method type="method">searchInvoiceTransaction</list_method>
           <meta_types type="list">[]</meta_types>
           <portal_types type="list">[]</portal_types>
           <report_root_list type="list">[]</report_root_list>
           <report_tree type="int">0</report_tree>
           <search type="int">0</search>
+          <search_columns type="list">[]</search_columns>
           <select type="int">0</select>
-          <selection_name>account_line_selection</selection_name>
+          <selection_name>accounting_transaction_line_selection</selection_name>
           <sort type="list">[('id', 'id')]</sort>
+          <sort_columns type="list">[]</sort_columns>
           <stat_method></stat_method>
-          <title>Transaction Lines</title>
+          <title>Accounting Transaction Lines</title>
         </values>
         <tales>
         </tales>
@@ -289,17 +381,22 @@
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
           <required type="int">0</required>
           <size type="int">1</size>
-          <title>Source</title>
+          <title>listbox_source</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
-          <items>python:[('','')] + map(lambda x: (x.title,'account/%s' % x.id),here.account.objectValues())</items>
+          <items>python:cell.getObject().getInvoiceTransactionLineSourceItemList()</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
@@ -307,23 +404,28 @@
           <message name="unknown_selection">You selected an item that was not in the list.</message>
         </messages>
       </field>
-      <field><id>listbox_resource</id> <type>ListField</type>
+      <field><id>listbox_destination</id> <type>ListField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
-          <items type="list">[('currency/EUR', 'currency/EUR'), ('currency/USD', 'currency/USD')]</items>
+          <items type="list">[]</items>
           <required type="int">0</required>
           <size type="int">1</size>
-          <title>Currency</title>
+          <title>listbox_destination</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
-          <items>python:map(lambda x: (x.id,'currency/%s' % x.id),here.currency.objectValues())</items>
+          <items>python:[('','')] + map(lambda x: (x.title,'account/%s' % x.id),here.account.objectValues())</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
@@ -331,43 +433,47 @@
           <message name="unknown_selection">You selected an item that was not in the list.</message>
         </messages>
       </field>
-      <field><id>listbox_destination</id> <type>ListField</type>
+      <field><id>listbox_source_credit</id> <type>FloatField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
+          <display_maxwidth></display_maxwidth>
+          <display_width type="int">5</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
-          <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
-          <items type="list">[]</items>
           <required type="int">0</required>
-          <size type="int">1</size>
-          <title>Destination</title>
+          <title>listbox_source_credit</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
-          <items>python:[('','')] + map(lambda x: (x.title,'account/%s' % x.id),here.account.objectValues())</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
           <message name="required_not_found">Input is required but no input given.</message>
-          <message name="unknown_selection">You selected an item that was not in the list.</message>
+          <message name="not_float">You did not enter a floating point number.</message>
         </messages>
       </field>
-      <field><id>listbox_source_credit</id> <type>FloatField</type>
+      <field><id>listbox_source_debit</id> <type>FloatField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
           <display_maxwidth></display_maxwidth>
-          <display_width type="int">6</display_width>
+          <display_width type="int">5</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
           <required type="int">0</required>
-          <title>Quantity</title>
+          <title>listbox_source_debit</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -377,26 +483,32 @@
           <message name="not_float">You did not enter a floating point number.</message>
         </messages>
       </field>
-      <field><id>listbox_source_debit</id> <type>FloatField</type>
+      <field><id>listbox_title</id> <type>StringField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
           <display_maxwidth></display_maxwidth>
-          <display_width type="int">6</display_width>
+          <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
-          <required type="int">0</required>
-          <title>Quantity</title>
+          <max_length></max_length>
+          <required type="int">1</required>
+          <title>listbox_title</title>
+          <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
           <message name="required_not_found">Input is required but no input given.</message>
-          <message name="not_float">You did not enter a floating point number.</message>
+          <message name="too_long">Too much input was given.</message>
         </messages>
       </field>
       </fields>
diff --git a/product/ERP5/skins/erp5_accounting/addPurchaseInvoice.py b/product/ERP5/skins/erp5_accounting/addPurchaseInvoice.py
index e3c71e06fe..bb40fe8636 100755
--- a/product/ERP5/skins/erp5_accounting/addPurchaseInvoice.py
+++ b/product/ERP5/skins/erp5_accounting/addPurchaseInvoice.py
@@ -16,17 +16,19 @@ product = my_transaction.manage_addProduct[ 'ERP5' ]
 
 context.portal_types.constructContent(type_name= 'Purchase Invoice Transaction Line',
                            container=my_transaction,
-                           id='l0')
+                           id='expense')
 context.portal_types.constructContent(type_name= 'Purchase Invoice Transaction Line',
                            container=my_transaction,
-                           id='l1')
+                           id='payable')
 context.portal_types.constructContent(type_name= 'Purchase Invoice Transaction Line',
                            container=my_transaction,
-                           id='l2')
-fournisseur=my_transaction.l0
-charge=my_transaction.l1
-tva=my_transaction.l2
-
-#fournisseur.setSource('account/capital')
+                           id='collected_vat')
+context.portal_types.constructContent(type_name= 'Purchase Invoice Transaction Line',
+                           container=my_transaction,
+                           id='refundable_vat')
+expense=my_transaction.expense
+payable=my_transaction.payable
+collected_vat=my_transaction.collected_vat
+refundable_vat=my_transaction.refundable_vat
 
 return my_transaction
diff --git a/product/ERP5/skins/erp5_accounting/addSaleInvoice.py b/product/ERP5/skins/erp5_accounting/addSaleInvoice.py
index 4c0bfdb3ea..29a73bbd52 100755
--- a/product/ERP5/skins/erp5_accounting/addSaleInvoice.py
+++ b/product/ERP5/skins/erp5_accounting/addSaleInvoice.py
@@ -16,17 +16,15 @@ product = my_transaction.manage_addProduct[ 'ERP5' ]
 
 context.portal_types.constructContent(type_name= 'Sale Invoice Transaction Line',
                            container=my_transaction,
-                           id='l0')
+                           id='income')
 context.portal_types.constructContent(type_name= 'Sale Invoice Transaction Line',
                            container=my_transaction,
-                           id='l1')
+                           id='receivable')
 context.portal_types.constructContent(type_name= 'Sale Invoice Transaction Line',
                            container=my_transaction,
-                           id='l2')
-client=my_transaction.l0
-charge=my_transaction.l1
-tva=my_transaction.l2
-
-
+                           id='collected_vat')
+income=my_transaction.income
+receivable=my_transaction.receivable
+collected_vat=my_transaction.collected_vat
 
 return my_transaction
diff --git a/product/ERP5/skins/erp5_accounting/currency_list.form b/product/ERP5/skins/erp5_accounting/currency_list.form
index 872f0ff82b..a34dbd655f 100755
--- a/product/ERP5/skins/erp5_accounting/currency_list.form
+++ b/product/ERP5/skins/erp5_accounting/currency_list.form
@@ -1,13 +1,17 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml version="1.0"?>
 
 <form>
   <title>Currency List</title>
+  <row_length>4</row_length>
   <name>currency_list</name>
-  <action>base_edit</action>
-  <enctype></enctype>
-  <method>POST</method>
   <pt>form_list</pt>
-
+  <action>doSelect</action>
+  <update_action></update_action>
+  <method>POST</method>
+  <enctype></enctype>
+  <encoding>UTF-8</encoding>
+  <stored_encoding>ISO-8859-1</stored_encoding>
+  <unicode_mode>false</unicode_mode>
   <groups>
     <group>
       <title>left</title>
@@ -25,7 +29,9 @@
           <description></description>
           <domain_root_list type="list">[]</domain_root_list>
           <domain_tree type="int">0</domain_tree>
+          <editable type="int">1</editable>
           <editable_columns type="list">[]</editable_columns>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <global_attributes type="list">[]</global_attributes>
           <hidden type="int">0</hidden>
@@ -37,6 +43,7 @@
           <report_root_list type="list">[]</report_root_list>
           <report_tree type="int">0</report_tree>
           <search type="int">1</search>
+          <search_columns></search_columns>
           <select type="int">1</select>
           <selection_name>currency_selection</selection_name>
           <sort type="list">[('id', 'id')]</sort>
diff --git a/product/ERP5/skins/erp5_accounting/currency_view.form b/product/ERP5/skins/erp5_accounting/currency_view.form
index 0b6e515a15..716ed1fdc0 100755
--- a/product/ERP5/skins/erp5_accounting/currency_view.form
+++ b/product/ERP5/skins/erp5_accounting/currency_view.form
@@ -1,13 +1,17 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml version="1.0"?>
 
 <form>
   <title>Currency</title>
+  <row_length>4</row_length>
   <name>currency_view</name>
+  <pt>form_view</pt>
   <action>base_edit</action>
-  <enctype></enctype>
+  <update_action></update_action>
   <method>POST</method>
-  <pt>form_view</pt>
-
+  <enctype></enctype>
+  <encoding>UTF-8</encoding>
+  <stored_encoding>ISO-8859-1</stored_encoding>
+  <unicode_mode>false</unicode_mode>
   <groups>
     <group>
       <title>left</title>
@@ -21,13 +25,17 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
           <max_length></max_length>
           <required type="int">1</required>
-          <title>Id</title>
+          <title>ID</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -45,6 +53,8 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
@@ -52,6 +62,8 @@
           <required type="int">1</required>
           <title>Title</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
diff --git a/product/ERP5/skins/erp5_accounting/getInvoiceTransactionLineDestinationItemList.py b/product/ERP5/skins/erp5_accounting/getInvoiceTransactionLineDestinationItemList.py
index 3b09016a98..0c7dc9f3a6 100755
--- a/product/ERP5/skins/erp5_accounting/getInvoiceTransactionLineDestinationItemList.py
+++ b/product/ERP5/skins/erp5_accounting/getInvoiceTransactionLineDestinationItemList.py
@@ -7,23 +7,38 @@
 ##parameters=
 ##title=
 ##
-if context.id == 'l0':
-  if context.portal_type == 'Purchase Invoice Transaction Line':
-    compte = '41'
-    compte2 = '410'
-  elif context.portal_type == 'Sale Invoice Transaction Line':
-    compte2 = '409'
-    compte = '40'
-  return context.portal_categories.pcg['4'][compte][compte2].getCategoryMemberTitleItemList()
-elif context.id == 'l1':
-  if context.portal_type == 'Purchase Invoice Transaction Line':
-    compte = '7'
-  elif context.portal_type == 'Sale Invoice Transaction Line':
-    compte = '6'
-  return context.portal_categories.pcg[compte].getCategoryMemberTitleItemList()
-elif context.id == 'l2':
-  return context.portal_categories.pcg['4']['44'].getCategoryMemberTitleItemList()
+from Products.ERP5Type.Cache import CachingMethod
+
+category_dict = {'income': 'portal_categories/pcg/6',
+                 'expense': 'portal_categories/pcg/7',
+                 'payable': 'portal_categories/pcg/4/41/410',
+                 'receivable': 'portal_categories/pcg/4/40/409',
+                 'collected_vat': 'portal_categories/pcg/4/44',
+                 'refundable_vat': 'portal_categories/pcg/4/44',
+                 'bank': 'portal_categories/pcg/5',
+                 }
+
+if context.id in category_dict:
+  category = category_dict[context.id]
 else:
-  return context.portal_categories.pcg.getCategoryMemberTitleItemList()
+  category = 'portal_categories/pcg'
+
+display_dict = {}
+def display(x):
+  if x not in display_dict:
+    pcg_id = x.getPcgId()
+    account_title = x.getTitle()
+    display_dict[x] = "%s - %s" % (pcg_id, account_title)
+  return display_dict[x]
+
+def sort(x,y):
+  return cmp(display(x), display(y))
+
+def getItemList(category=None):
+  obj = context.restrictedTraverse(category)
+  item_list = obj.getCategoryMemberItemList(portal_type='Account', base=0,
+                                            display_method=display, sort_method=sort)
+  return item_list
 
-return ()
+getItemList = CachingMethod(getItemList, id=('getInvoiceTransactionLineItemList', 'getItemList'))
+return getItemList(category=category)
diff --git a/product/ERP5/skins/erp5_accounting/getInvoiceTransactionLineSourceItemList.py b/product/ERP5/skins/erp5_accounting/getInvoiceTransactionLineSourceItemList.py
index 35d459ff05..de9a3b8c81 100755
--- a/product/ERP5/skins/erp5_accounting/getInvoiceTransactionLineSourceItemList.py
+++ b/product/ERP5/skins/erp5_accounting/getInvoiceTransactionLineSourceItemList.py
@@ -7,23 +7,38 @@
 ##parameters=
 ##title=
 ##
-if context.id == 'l0':
-  if context.portal_type == 'Purchase Invoice Transaction Line':
-    compte2 = '409'
-    compte = '40'
-  elif context.portal_type == 'Sale Invoice Transaction Line':
-    compte = '41'
-    compte2 = '410'
-  return context.portal_categories.pcg['4'][compte][compte2].getCategoryMemberTitleItemList()
-elif context.id == 'l1':
-  if context.portal_type == 'Purchase Invoice Transaction Line':
-    compte = '6'
-  elif context.portal_type == 'Sale Invoice Transaction Line':
-    compte = '7'
-  return context.portal_categories.pcg[compte].getCategoryMemberTitleItemList()
-elif context.id == 'l2':
-  return context.portal_categories.pcg['4']['44'].getCategoryMemberTitleItemList()
+from Products.ERP5Type.Cache import CachingMethod
+
+category_dict = {'income': 'portal_categories/pcg/7',
+                 'expense': 'portal_categories/pcg/6',
+                 'payable': 'portal_categories/pcg/4/40/409',
+                 'receivable': 'portal_categories/pcg/4/41/410',
+                 'collected_vat': 'portal_categories/pcg/4/44',
+                 'refundable_vat': 'portal_categories/pcg/4/44',
+                 'bank': 'portal_categories/pcg/5',
+                 }
+
+if context.id in category_dict:
+  category = category_dict[context.id]
 else:
-  return context.portal_categories.pcg.getCategoryMemberTitleItemList()
+  category = 'portal_categories/pcg'
+
+display_dict = {}
+def display(x):
+  if x not in display_dict:
+    pcg_id = x.getPcgId()
+    account_title = x.getTitle()
+    display_dict[x] = "%s - %s" % (pcg_id, account_title)
+  return display_dict[x]
+
+def sort(x,y):
+  return cmp(display(x), display(y))
+
+def getItemList(category=None):
+  obj = context.restrictedTraverse(category)
+  item_list = obj.getCategoryMemberItemList(portal_type='Account', base=0,
+                                            display_method=display, sort_method=sort)
+  return item_list
 
-return ()
+getItemList = CachingMethod(getItemList, id=('getInvoiceTransactionLineItemList', 'getItemList'))
+return getItemList(category=category)
diff --git a/product/ERP5/skins/erp5_accounting/invoice_transaction_print.pt b/product/ERP5/skins/erp5_accounting/invoice_transaction_print.pt
index 090d16bdb3..2c533182a5 100755
--- a/product/ERP5/skins/erp5_accounting/invoice_transaction_print.pt
+++ b/product/ERP5/skins/erp5_accounting/invoice_transaction_print.pt
@@ -2,208 +2,139 @@
 
 <html>
 
-  <head>
-    <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
-    <title tal:content="here/getTitle">Nexedi</title>
-  </head>
-
-  <body bgcolor="#ffffff"
-     tal:define="packing_list
-python:here.getDefaultValue('causality',spec=['Sale Packing List']);
-                 from_organisation
-python:here.getDefaultSourceSectionValue();
-                 client_invoice
-python:here.getDefaultValue('destination_section',spec=['Organisation']);
-                 client_delivery
-python:here.getDefaultValue('destination_section',spec=['Organisation']);">
+	<head>
+		<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
+		<title tal:content="here/getTitle">Nexedi</title>
 
+	</head>
 
-  <table width=100%>
-  <tr tal:condition="from_organisation/default_logo/getUrl | nothing">
-    <td colspan="2">
-      <img src="" tal:attributes="src from_organisation/default_logo/getUrl | nothing"
-width="20%">
-    <td/>
-  </tr>
-  <tr>
-    <td align=left tal:content="python:
-from_organisation.getCorporateName()"/>
-    <td align=right tal:content="python: 'Tel : %s' %
-from_organisation.getDefaultTelephone().asText()"/>
-  </tr>
-  <tr>
-    <td tal:content="python:
-from_organisation.getDefaultAddress().getStreetAddress()"/>
-    <td>
-  </tr>
-  <tr>
-    <td tal:content="python: '%s %s' %
-
-(from_organisation.getDefaultAddress().getZipCode(),
-
-from_organisation.getDefaultAddress().getCity())"/>
-    <td>
-  </tr>
-
-  <tr>
-    <th colspan=3>
-      <h2>INVOICE</h2>
-    </th>
-  </tr>
-
-  </table>
-
-    <table width=100%>
-    <tr>
-      <td align=right tal:content="python: 'Invoice Date : %s' %
-here.getStartDate().strftime('%Y-%m-%d')"/>
-    </tr>
-
-    <tr>
-      <td align=right tal:content="python: 'Pay Before : %s' %
-here.getStartDate().strftime('%Y-%m-%d')"/>
-    </tr>
-
-    <tr>
-      <td align=right tal:content="python: 'Invoice N° : %s' %
-here.getId()"/>
-    </tr>
-
-    <tr>
-      <td>&nbsp;</td>
-    </tr>
-    </table>
-
-    <table width=100%>
-    <tr bgcolor=000000>
-      <th align=left><font color=ffffff>INVOICE ADDRESS</th>
-      <th align=left><font color=ffffff>DELIVERY ADDRESS</th>
-    </tr>
-
-    <tr>
-      <td align=left tal:content="python:
-client_invoice.getCorporateName()"/>
-      <td align=left tal:content="python:
-client_delivery.getCorporateName()"/>
-    </tr>
-    <tr>
-      <td align=left tal:content="python:
-client_invoice.getDefaultAddress().getStreetAddress()"/>
-      <td align=left tal:content="python:
-client_delivery.getDefaultAddress().getStreetAddress()"/>
-    </tr>
-    <tr>
-      <td align=left tal:content="python: '%s %s' %
-
-(client_invoice.getDefaultAddress().getZipCode(),
-
-client_invoice.getDefaultAddress().getCity())"/>
-      <td align=left tal:content="python: '%s %s' %
-
-(client_delivery.getDefaultAddress().getZipCode(),
-
-client_delivery.getDefaultAddress().getCity())"/>
-    </tr>
-    </table>
-
-    <p/>
-
-    <table width=100%>
-    <tr bgcolor=000000>
-
-     <th align=left><font color=ffffff>N°</th>
-      <th align=left><font color=ffffff>Description</th>
-      <th><font color=ffffff>Quantity</font></th>
-      <th><font color=ffffff>Unit</font></th>
-      <th><font color=ffffff>Unit Price</font></th>
-      <th><font color=ffffff>Total Price</font></th>
-    </tr>
-
-    <span tal:define="ordered_lines
-python:packing_list.contentValues(filter={'meta_type':'ERP5 Delivery
-Line'})"
-          tal:repeat="ligne ordered_lines">
-    <tr valign=top tal:condition="python:ligne.getQuantity()>0">
-
-      <td align=left tal:content="python:ligne.getId()"></td>
-<!--      <td> </td> -->
-      <td width="50%"><span tal:replace="python:
-ligne.getResourceTitle()"/>: <span tal:replace="python:
-ligne.getDescription()"/></td>
-      <td width="12%" align=right tal:content="python: '%.0f' %
-ligne.getQuantity()"></td>
-      <td>n/a</td>
-      <td width="12%" align=right tal:content="python: '%.0f' %
-ligne.getPrice()"></td>
-      <td width="12%" align=right
-          tal:define="line_price ligne/getTotalPrice | python:0.0"
-          tal:content="python: '%.0f' % line_price"></td>
-    </tr>
-    </span>
+	<body bgcolor="#ffffff"
+                tal:define="packing_list python:here.getDefaultValue('causality',spec=['Sale Packing List']);
+                from_organisation python:here.restrictedTraverse('/nexedi/organisation/nexedi');
+                client_invoice python:here.getDefaultValue('destination_section',spec=['Organisation', 'Person']);
+                client_delivery python:here.getDefaultValue('destination_section',spec=['Organisation', 'Person']);
+                total_price python:here.getDefaultTotalPrice()">
 
 
+  <table width=100%>
     <tr>
-      <td colspan=6><hr noshade></td>
+      <td colspan=3><img src="logo.png"></td>
     </tr>
-
     <tr>
-      <th colspan=4 align=right>Total (<span
-
-tal:replace="python:here.l1.getDefaultResourceValue().getTitle()"/>)</th>
-      <td colspan=2 align=right tal:content="python:
-here.l1.getSourceDebit()"></td>
+      <td align=left tal:content="python: from_organisation.getCorporateName()" colspan="2" />
+      <td align=right tal:content="python: 'Invoice Date: %s' % here.getStartDate()"/>
     </tr>
-
     <tr>
-      <th colspan=4 align=right>TVA 19.6 % (<span
-
-tal:replace="python:here.l1.getDefaultResourceValue().getTitle()"/>)</th>
-      <td colspan=2 align=right tal:content="python:
-here.l2.getSourceDebit()"></td>
+      <td align=left tal:content="python: 'Tel : %s' % from_organisation.getDefaultTelephone().asText()" colspan="2"/>
+      <td align=right tal:content="python: 'Pay Before: %s' % here.getStopDate()"/>
     </tr>
-
-
     <tr>
-      <td colspan=3>&nbsp;</td>
-      <td colspan=3><hr noshade></td>
+      <td tal:content="python: from_organisation.getDefaultAddress().getStreetAddress()" colspan="2"/>
+      <td align=right tal:content="python: 'Invoice N°: ERP5/%s' % here.getId()"/>
     </tr>
-
     <tr>
-      <td colspan=3>A régler avant le <b tal:content="python:
-here.getStartDate().strftime('%Y-%m-%d')">0</b>.
-<br><font size="-3">Conditions de réglement: par chèque, à 0 jours date de
-la facture. Paiement accepté en euros.
-Tout retard de règlement donnera lieu à une pénalité de 1,5% du montant dû
-par mois.
-Réserve de propriété: nous conservons la pleine propriété des marchandises
-jusqu'au paiement intégral du prix, des taxes et accessoires.</font></td>
-
-      <th colspan=1 align=right>Somme à régler (<span
-
-tal:replace="python:here.l1.getDefaultResourceValue().getTitle()"/>)</th>
-      <th colspan=2 align=right tal:content="python:
-here.l0.getSourceCredit()"></th>
+      <td tal:content="python: '%s %s' %
+                              (from_organisation.getDefaultAddress().getZipCode(),
+                              from_organisation.getDefaultAddress().getCity())" colspan="3"/>
     </tr>
 
     <tr>
-      <td>&nbsp;</td>
+      <th colspan=3>
+        <h2>INVOICE</h2>
+      </th>
     </tr>
 
     </table>
 
-<table width="100%">
-<tr>
-       <td><center><h6>RCS Roubaix Tourcoing 440 047 504<br>
-
-Banque:&nbsp;30027&nbsp;Guichet:&nbsp;00039&nbsp;Compte:&nbsp;00000013323&nbsp;RIB:&nbsp;36<br>IBAN:
-FR76 3002 7175 3900 0410 2760 135<br>
-VAT FR72440047504</h6></center></td>
-</tr>
-</table>
+    <br/>
+
+      <table width=100%>
+      <tr bgcolor=000000>
+        <th align=left><font color=ffffff>INVOICE ADDRESS</th>
+        <th align=left><font color=ffffff>DELIVERY ADDRESS</th>
+      </tr>
+
+      <tr>
+        <td align=left tal:content="client_invoice/getCorporateName | client_invoice/getTitle"/>
+        <td align=left tal:content="client_delivery/getCorporateName | client_delivery/getTitle"/>
+      </tr>
+      <tr>
+        <td align=left tal:content="python: client_invoice.getDefaultAddress().getStreetAddress()"/>
+        <td align=left tal:content="python: client_delivery.getDefaultAddress().getStreetAddress()"/>
+      </tr>
+      <tr>
+        <td align=left tal:content="python: '%s %s' %
+                              (client_invoice.getDefaultAddress().getZipCode(),
+                                client_invoice.getDefaultAddress().getCity())"/>
+        <td align=left tal:content="python: '%s %s' %
+                              (client_delivery.getDefaultAddress().getZipCode(),
+                                client_delivery.getDefaultAddress().getCity())"/>
+      </tr>
+      </table>
+
+    <br/>
+
+      <table width=100%>
+        <tr bgcolor=000000>
+          <th align=left nowrap><font color=ffffff>N°</font></th>
+          <th align=left nowrap><font color=ffffff>Description</font></th>
+          <th nowrap><font color=ffffff>Quantity</th>
+          <th nowrap><font color=ffffff>Unit</font></th>
+          <th nowrap><font color=ffffff>Unit Price</font></th>
+          <th nowrap><font color=ffffff>Total Price</font></th>
+        </tr>
+        <span tal:define="ordered_lines python:packing_list.contentValues(filter={'meta_type':'ERP5 Delivery Line'})"
+              tal:repeat="ligne ordered_lines">
+          <tr valign=top tal:condition="python:ligne.getQuantity()>0">
+
+            <td align=left tal:content="python:ligne.getId()"></td>
+      <!--      <td> </td> -->
+            <td tal:content="python: ligne.getResourceTitle()"></td>
+            <td align=right tal:content="python: '%.0f' % ligne.getQuantity()"></td>
+            <td>n/a</td>
+            <td align=right tal:content="python: '%.0f' % ligne.getPrice()"></td>
+            <td align=right tal:content="python: '%.0f' % ligne.getTotalPrice()"></td>
+          </tr>
+        </span>
+        <tr>
+          <td colspan=6><hr noshade></td>
+        </tr>
+        <tr>
+          <th colspan=4 align=right>Total (<span tal:replace="here/l0/getResourceId"/>)</th>
+          <td colspan=2 align=right tal:content="here/l1/getSourceCredit"></td>
+        </tr>
+        <tr>
+          <th colspan=4 align=right>TVA 19.6 % (<span tal:replace="here/l0/getResourceId"/>)</th>
+          <td colspan=2 align=right tal:content="here/l2/getSourceCredit"></td>
+        </tr>
+        <tr>
+          <td colspan=3>&nbsp;</td>
+          <td colspan=3><hr noshade></td>
+        </tr>
+        <tr>
+          <td colspan=3>A régler dans <b>0</b> jours au plus tard.
+    <br><font size="-3">Conditions de réglement: par chèque, à 0 jours date de la facture. Paiement accepté en euros.
+    Tout retard de règlement donnera lieu à une pénalité de 1,5% du montant dû par mois.
+    Réserve de propriété: nous conservons la pleine propriété des marchandises jusqu'au paiement intégral du prix, des taxes et accessoires.</font></td>
+
+          <th colspan=1 align=right nowrap>Somme à régler (<span tal:replace="here/l0/getResourceId"/>)</th>
+          <th colspan=2 align=right tal:content="here/l0/getSourceDebit"></th>
+        </tr>
+        <tr>
+          <td>&nbsp;</td>
+        </tr>
+      </table>
+
+  <table width="100%">
+  <tr>
+        <td><center><h6>RCS Roubaix Tourcoing 440 047 504<br>
+  Banque:&nbsp;30027&nbsp;Guichet:&nbsp;00039&nbsp;Compte:&nbsp;00000013323&nbsp;RIB:&nbsp;36<br>IBAN: FR76 3002 7175 3900 0410 2760 135<br>
+  VAT FR72440047504</h6></center></td>
+    </tr>
+  </table>
 
 
 
 </body>
 
-</html>
-
+</html>
\ No newline at end of file
diff --git a/product/ERP5/skins/erp5_accounting/purchase_invoice_transaction_line_view.form b/product/ERP5/skins/erp5_accounting/purchase_invoice_transaction_line_view.form
index d2116209d6..04e9381179 100755
--- a/product/ERP5/skins/erp5_accounting/purchase_invoice_transaction_line_view.form
+++ b/product/ERP5/skins/erp5_accounting/purchase_invoice_transaction_line_view.form
@@ -1,13 +1,17 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml version="1.0"?>
 
 <form>
   <title>Purchase Invoice Transaction Line</title>
+  <row_length>4</row_length>
   <name>purchase_invoice_list</name>
+  <pt>form_view</pt>
   <action>base_edit</action>
-  <enctype></enctype>
+  <update_action></update_action>
   <method>POST</method>
-  <pt>form_view</pt>
-
+  <enctype></enctype>
+  <encoding>UTF-8</encoding>
+  <stored_encoding>ISO-8859-1</stored_encoding>
+  <unicode_mode>false</unicode_mode>
   <groups>
     <group>
       <title>left</title>
@@ -21,13 +25,17 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
           <max_length></max_length>
-          <required type="int">1</required>
+          <required type="int">0</required>
           <title>Title</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -43,17 +51,22 @@
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
-          <required type="int">1</required>
+          <required type="int">0</required>
           <size type="int">1</size>
-          <title>Source</title>
+          <title>Customer Account</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
-          <items>python:here.portal_categories.pcg.getCategoryMemberTitleItemList()</items>
+          <items>python:here.getInvoiceTransactionLineSourceItemList()</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
@@ -67,17 +80,22 @@
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
-          <required type="int">1</required>
+          <required type="int">0</required>
           <size type="int">1</size>
-          <title>Destination</title>
+          <title>Vendor Account</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
-          <items>python:here.portal_categories.pcg.getCategoryMemberTitleItemList()</items>
+          <items>python:here.getInvoiceTransactionLineDestinationItemList()</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
@@ -93,11 +111,14 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
-          <required type="int">1</required>
+          <required type="int">0</required>
           <title>Source Debit</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -115,11 +136,14 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
-          <required type="int">1</required>
+          <required type="int">0</required>
           <title>Source Credit</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
diff --git a/product/ERP5/skins/erp5_accounting/purchase_invoice_transaction_view.form b/product/ERP5/skins/erp5_accounting/purchase_invoice_transaction_view.form
index 2c14efce8b..397bb7b1ff 100755
--- a/product/ERP5/skins/erp5_accounting/purchase_invoice_transaction_view.form
+++ b/product/ERP5/skins/erp5_accounting/purchase_invoice_transaction_view.form
@@ -1,18 +1,87 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml version="1.0"?>
 
 <form>
   <title>Purchase Invoice Transaction</title>
+  <row_length>4</row_length>
   <name>purchase_invoice_list</name>
+  <pt>form_view</pt>
   <action>base_edit</action>
-  <enctype></enctype>
+  <update_action></update_action>
   <method>POST</method>
-  <pt>form_view</pt>
-
+  <enctype></enctype>
+  <encoding>UTF-8</encoding>
+  <stored_encoding>ISO-8859-1</stored_encoding>
+  <unicode_mode>false</unicode_mode>
   <groups>
     <group>
       <title>left</title>
       <fields>
 
+      <field><id>my_source_section</id> <type>ListField</type>
+        <values>
+          <alternate_name></alternate_name>
+          <css_class></css_class>
+          <default></default>
+          <description></description>
+          <editable type="int">1</editable>
+          <editable_expression></editable_expression>
+          <editable_permission type="list">[]</editable_permission>
+          <editable_role type="list">[]</editable_role>
+          <enabled type="int">1</enabled>
+          <external_validator></external_validator>
+          <extra></extra>
+          <extra_item></extra_item>
+          <first_item type="int">0</first_item>
+          <hidden type="int">0</hidden>
+          <items type="list">[]</items>
+          <not_viewable type="int">0</not_viewable>
+          <read_only type="int">0</read_only>
+          <required type="int">1</required>
+          <size type="int">1</size>
+          <title>Customer</title>
+          <unicode type="int">0</unicode>
+          <viewable_expression></viewable_expression>
+          <viewable_permission type="list">[]</viewable_permission>
+          <viewable_role type="list">[]</viewable_role>
+          <whitespace_preserve type="int">0</whitespace_preserve>
+        </values>
+        <tales>
+          <items>python: [['Nexedi', 'organisation/nexedi'], ]</items>
+        </tales>
+        <messages>
+          <message name="external_validator_failed">The input failed the external validator.</message>
+          <message name="required_not_found">Input is required but no input given.</message>
+          <message name="unknown_selection">You selected an item that was not in the list.</message>
+        </messages>
+      </field>
+      <field><id>my_source_reference</id> <type>StringField</type>
+        <values>
+          <alternate_name></alternate_name>
+          <css_class></css_class>
+          <default></default>
+          <description></description>
+          <display_maxwidth></display_maxwidth>
+          <display_width type="int">20</display_width>
+          <editable type="int">0</editable>
+          <enabled type="int">1</enabled>
+          <external_validator></external_validator>
+          <extra></extra>
+          <hidden type="int">0</hidden>
+          <max_length></max_length>
+          <required type="int">0</required>
+          <title>Transaction Reference</title>
+          <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
+        </values>
+        <tales>
+        </tales>
+        <messages>
+          <message name="external_validator_failed">The input failed the external validator.</message>
+          <message name="required_not_found">Input is required but no input given.</message>
+          <message name="too_long">Too much input was given.</message>
+        </messages>
+      </field>
       <field><id>my_title</id> <type>StringField</type>
         <values>
           <alternate_name></alternate_name>
@@ -21,13 +90,17 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
           <max_length></max_length>
-          <required type="int">1</required>
+          <required type="int">0</required>
           <title>Title</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -43,11 +116,13 @@
           <base_category>destination_section</base_category>
           <catalog_index>Title</catalog_index>
           <css_class></css_class>
-          <default>Nexedi</default>
+          <default></default>
           <default_module>organisation</default_module>
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
@@ -55,9 +130,11 @@
           <max_length></max_length>
           <portal_type type="list">[('Organisation', 'Organisation'), ('Person', 'Person')]</portal_type>
           <required type="int">0</required>
-          <title>Client</title>
+          <title>Vendor</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
           <update_method>base_update_relation</update_method>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -67,27 +144,33 @@
           <message name="too_long">Too much input was given.</message>
         </messages>
       </field>
-      <field><id>my_source_section_title</id> <type>RelationStringField</type>
+      <field><id>my_reference</id> <type>StringField</type>
         <values>
           <alternate_name></alternate_name>
-          <base_category>source_section</base_category>
-          <catalog_index>Title</catalog_index>
           <css_class></css_class>
           <default></default>
-          <default_module>organisation</default_module>
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <editable_expression></editable_expression>
+          <editable_permission></editable_permission>
+          <editable_role></editable_role>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
-          <jump_method>base_jump_relation</jump_method>
           <max_length></max_length>
-          <portal_type type="list">[('Organisation', 'Organisation'), ('Person', 'Person')]</portal_type>
+          <not_viewable type="int">0</not_viewable>
+          <read_only type="int">0</read_only>
           <required type="int">0</required>
-          <title>Vendor</title>
+          <title>Invoice Number</title>
           <truncate type="int">0</truncate>
-          <update_method>base_update_relation</update_method>
+          <unicode type="int">0</unicode>
+          <viewable_expression></viewable_expression>
+          <viewable_permission></viewable_permission>
+          <viewable_role></viewable_role>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -97,24 +180,28 @@
           <message name="too_long">Too much input was given.</message>
         </messages>
       </field>
-      <field><id>resource</id> <type>ListField</type>
+      <field><id>my_resource</id> <type>ListField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
           <required type="int">0</required>
           <size type="int">1</size>
           <title>Currency</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
-          <default>here/l0/getDefaultResource | nothing</default>
-          <items>python:map(lambda x: (x.id,'currency/%s' % x.id),here.currency.objectValues())</items>
+          <items>python:[('','')]+map(lambda x:(x.id,'currency/%s' %x.id),here.currency.objectValues())</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
@@ -130,19 +217,23 @@
 
       <field><id>my_start_date</id> <type>DateTimeField</type>
         <values>
+          <allow_empty_time type="int">0</allow_empty_time>
           <alternate_name></alternate_name>
+          <ampm_time_style type="int">0</ampm_time_style>
           <css_class></css_class>
-          <date_only type="int">0</date_only>
+          <date_only type="int">1</date_only>
           <date_separator>/</date_separator>
           <default_now type="int">1</default_now>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <hidden type="int">0</hidden>
           <input_order>ymd</input_order>
           <input_style>text</input_style>
           <required type="int">0</required>
           <time_separator>:</time_separator>
-          <title>Start Date</title>
+          <title>Operation Date</title>
         </values>
         <tales>
         </tales>
@@ -153,56 +244,100 @@
           <message name="datetime_out_of_range">The date and time you entered were out of range.</message>
         </messages>
       </field>
-      <field><id>my_stop_date</id> <type>DateTimeField</type>
+      <field><id>my_description</id> <type>TextAreaField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
-          <date_only type="int">0</date_only>
-          <date_separator>/</date_separator>
-          <default_now type="int">1</default_now>
+          <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
+          <extra></extra>
+          <height type="int">5</height>
           <hidden type="int">0</hidden>
-          <input_order>ymd</input_order>
-          <input_style>text</input_style>
+          <max_length></max_length>
+          <max_linelength></max_linelength>
+          <max_lines></max_lines>
           <required type="int">0</required>
-          <time_separator>:</time_separator>
-          <title>Stop Date</title>
+          <title>Description</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
+          <width type="int">40</width>
         </values>
         <tales>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
           <message name="required_not_found">Input is required but no input given.</message>
-          <message name="not_datetime">You did not enter a valid date and time.</message>
-          <message name="datetime_out_of_range">The date and time you entered were out of range.</message>
+          <message name="too_many_lines">You entered too many lines.</message>
+          <message name="line_too_long">A line was too long.</message>
+          <message name="too_long">You entered too many characters.</message>
         </messages>
       </field>
-      <field><id>my_description</id> <type>TextAreaField</type>
+      <field><id>simulation_state</id> <type>StringField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
+          <display_maxwidth></display_maxwidth>
+          <display_width type="int">20</display_width>
+          <editable type="int">0</editable>
+          <editable_expression></editable_expression>
+          <editable_permission type="list">[]</editable_permission>
+          <editable_role type="list">[]</editable_role>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
-          <height type="int">5</height>
           <hidden type="int">0</hidden>
           <max_length></max_length>
-          <max_linelength></max_linelength>
-          <max_lines></max_lines>
+          <not_viewable type="int">0</not_viewable>
+          <read_only type="int">1</read_only>
           <required type="int">0</required>
-          <title>Description</title>
-          <width type="int">40</width>
+          <title>State</title>
+          <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <viewable_expression></viewable_expression>
+          <viewable_permission type="list">[]</viewable_permission>
+          <viewable_role type="list">[]</viewable_role>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
+          <default>python:here.portal_workflow.getInfoFor(here, 'simulation_state')</default>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
           <message name="required_not_found">Input is required but no input given.</message>
-          <message name="too_many_lines">You entered too many lines.</message>
-          <message name="line_too_long">A line was too long.</message>
-          <message name="too_long">You entered too many characters.</message>
+          <message name="too_long">Too much input was given.</message>
+        </messages>
+      </field>
+      <field><id>my_destination_reference</id> <type>StringField</type>
+        <values>
+          <alternate_name></alternate_name>
+          <css_class></css_class>
+          <default></default>
+          <description></description>
+          <display_maxwidth></display_maxwidth>
+          <display_width type="int">20</display_width>
+          <editable type="int">0</editable>
+          <enabled type="int">1</enabled>
+          <external_validator></external_validator>
+          <extra></extra>
+          <hidden type="int">0</hidden>
+          <max_length></max_length>
+          <required type="int">0</required>
+          <title>Vendor Transaction Reference</title>
+          <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
+        </values>
+        <tales>
+        </tales>
+        <messages>
+          <message name="external_validator_failed">The input failed the external validator.</message>
+          <message name="required_not_found">Input is required but no input given.</message>
+          <message name="too_long">Too much input was given.</message>
         </messages>
       </field>
       </fields>
@@ -222,30 +357,42 @@
           <all_columns type="list">[]</all_columns>
           <all_editable_columns type="list">[]</all_editable_columns>
           <alternate_name></alternate_name>
-          <columns type="list">[('id', 'id'), ('title', 'Title'), ('source', 'Source'), ('source_debit', 'Debit'), ('source_credit', 'Credit'), ('destination', 'Destination'), ('destination_debit', 'Debit'), ('destination_credit', 'Credit')]</columns>
+          <columns type="list">[('id', 'id'), ('source', 'Account'), ('source_debit', 'Debit'), ('source_credit', 'Credit')]</columns>
           <css_class></css_class>
           <default></default>
           <default_params type="list">[]</default_params>
           <description></description>
           <domain_root_list type="list">[]</domain_root_list>
           <domain_tree type="int">0</domain_tree>
-          <editable_columns type="list">[('title', 'Title'), ('source_debit', 'Debit'), ('source_credit', 'Credit'), ('destination', 'Destination'), ('source', 'Source')]</editable_columns>
+          <editable type="int">1</editable>
+          <editable_columns type="list">[('source_debit', 'Debit'), ('source_credit', 'Credit'), ('source', 'Account')]</editable_columns>
+          <editable_expression></editable_expression>
+          <editable_permission type="list">[]</editable_permission>
+          <editable_role type="list">[]</editable_role>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <global_attributes type="list">[('resource', 'resource')]</global_attributes>
           <hidden type="int">0</hidden>
           <lines type="int">10</lines>
           <list_action>folder_contents</list_action>
-          <list_method type="method">searchFolder</list_method>
+          <list_method type="method">searchInvoiceTransaction</list_method>
           <meta_types type="list">[]</meta_types>
+          <not_viewable type="int">0</not_viewable>
           <portal_types type="list">[]</portal_types>
+          <read_only type="int">0</read_only>
           <report_root_list type="list">[]</report_root_list>
           <report_tree type="int">0</report_tree>
           <search type="int">0</search>
-          <select type="int">1</select>
+          <search_columns type="list">[]</search_columns>
+          <select type="int">0</select>
           <selection_name>purchase_invoice_transaction_line_selection</selection_name>
           <sort type="list">[('id', 'id')]</sort>
+          <sort_columns type="list">[]</sort_columns>
           <stat_method></stat_method>
           <title>Purchase Invoice Transaction Lines</title>
+          <viewable_expression></viewable_expression>
+          <viewable_permission type="list">[]</viewable_permission>
+          <viewable_role type="list">[]</viewable_role>
         </values>
         <tales>
         </tales>
@@ -267,6 +414,8 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
@@ -274,6 +423,8 @@
           <required type="int">0</required>
           <title>Title</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -289,14 +440,19 @@
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
           <required type="int">0</required>
           <size type="int">1</size>
           <title>listbox_source</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
           <items>python:cell.getObject().getInvoiceTransactionLineSourceItemList()</items>
@@ -313,14 +469,19 @@
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
           <required type="int">0</required>
           <size type="int">1</size>
           <title>listbox_destination</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
           <items>python:cell.getObject().getInvoiceTransactionLineDestinationItemList()</items>
@@ -339,11 +500,14 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">5</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
           <required type="int">0</required>
           <title>listbox_source_debit</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -361,11 +525,14 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">5</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
           <required type="int">0</required>
-          <title>listbox_source_debit</title>
+          <title>listbox_source_credit</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
diff --git a/product/ERP5/skins/erp5_accounting/sale_invoice_transaction_line_view.form b/product/ERP5/skins/erp5_accounting/sale_invoice_transaction_line_view.form
index cb26173d6c..0950620e32 100755
--- a/product/ERP5/skins/erp5_accounting/sale_invoice_transaction_line_view.form
+++ b/product/ERP5/skins/erp5_accounting/sale_invoice_transaction_line_view.form
@@ -1,13 +1,17 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml version="1.0"?>
 
 <form>
   <title>Sale Invoice Transaction Line</title>
+  <row_length>4</row_length>
   <name>sale_invoice_list</name>
+  <pt>form_view</pt>
   <action>base_edit</action>
-  <enctype></enctype>
+  <update_action></update_action>
   <method>POST</method>
-  <pt>form_view</pt>
-
+  <enctype></enctype>
+  <encoding>UTF-8</encoding>
+  <stored_encoding>ISO-8859-1</stored_encoding>
+  <unicode_mode>false</unicode_mode>
   <groups>
     <group>
       <title>left</title>
@@ -21,13 +25,17 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
           <max_length></max_length>
-          <required type="int">1</required>
+          <required type="int">0</required>
           <title>Title</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -43,17 +51,22 @@
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
-          <required type="int">1</required>
+          <required type="int">0</required>
           <size type="int">1</size>
-          <title>Source</title>
+          <title>Vendor Account</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
-          <items>python:here.portal_categories.pcg.getCategoryMemberTitleItemList()</items>
+          <items>python:here.getInvoiceTransactionLineSourceItemList()</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
@@ -67,17 +80,22 @@
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
-          <required type="int">1</required>
+          <required type="int">0</required>
           <size type="int">1</size>
-          <title>Destination</title>
+          <title>Customer Account</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
-          <items>python:here.portal_categories.pcg.getCategoryMemberTitleItemList()</items>
+          <items>python:here.getInvoiceTransactionLineDestinationItemList()</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
@@ -93,11 +111,14 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
-          <required type="int">1</required>
-          <title>Source Debit</title>
+          <required type="int">0</required>
+          <title>Vendor Debit</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -115,11 +136,14 @@
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
-          <required type="int">1</required>
-          <title>Source Credit</title>
+          <required type="int">0</required>
+          <title>Vendor Credit</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
diff --git a/product/ERP5/skins/erp5_accounting/sale_invoice_transaction_view.form b/product/ERP5/skins/erp5_accounting/sale_invoice_transaction_view.form
index 867cd5f936..81de5e7498 100755
--- a/product/ERP5/skins/erp5_accounting/sale_invoice_transaction_view.form
+++ b/product/ERP5/skins/erp5_accounting/sale_invoice_transaction_view.form
@@ -1,63 +1,78 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml version="1.0"?>
 
 <form>
   <title>Sale Invoice Transaction</title>
+  <row_length>4</row_length>
   <name>sale_invoice_list</name>
+  <pt>form_view</pt>
   <action>base_edit</action>
-  <enctype></enctype>
+  <update_action></update_action>
   <method>POST</method>
-  <pt>form_view</pt>
-
+  <enctype></enctype>
+  <encoding>UTF-8</encoding>
+  <stored_encoding>ISO-8859-1</stored_encoding>
+  <unicode_mode>false</unicode_mode>
   <groups>
     <group>
       <title>left</title>
       <fields>
 
-      <field><id>my_title</id> <type>StringField</type>
+      <field><id>my_source_section</id> <type>ListField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
-          <display_maxwidth></display_maxwidth>
-          <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <editable_expression></editable_expression>
+          <editable_permission type="list">[]</editable_permission>
+          <editable_role type="list">[]</editable_role>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
+          <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
-          <max_length></max_length>
-          <required type="int">1</required>
-          <title>Title</title>
-          <truncate type="int">0</truncate>
+          <items type="list">[]</items>
+          <not_viewable type="int">0</not_viewable>
+          <read_only type="int">0</read_only>
+          <required type="int">0</required>
+          <size type="int">1</size>
+          <title>Vendor</title>
+          <unicode type="int">0</unicode>
+          <viewable_expression></viewable_expression>
+          <viewable_permission type="list">[]</viewable_permission>
+          <viewable_role type="list">[]</viewable_role>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
+          <items>python: [['Nexedi', 'organisation/nexedi']]</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
           <message name="required_not_found">Input is required but no input given.</message>
-          <message name="too_long">Too much input was given.</message>
+          <message name="unknown_selection">You selected an item that was not in the list.</message>
         </messages>
       </field>
-      <field><id>my_destination_section_title</id> <type>RelationStringField</type>
+      <field><id>my_title</id> <type>StringField</type>
         <values>
           <alternate_name></alternate_name>
-          <base_category>destination_section</base_category>
-          <catalog_index>Title</catalog_index>
           <css_class></css_class>
           <default></default>
-          <default_module>organisation</default_module>
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
-          <jump_method>base_jump_relation</jump_method>
           <max_length></max_length>
-          <portal_type type="list">[('Organisation', 'Organisation'), ('Person', 'Person')]</portal_type>
-          <required type="int">0</required>
-          <title>Client</title>
+          <required type="int">1</required>
+          <title>Title</title>
           <truncate type="int">0</truncate>
-          <update_method>base_update_relation</update_method>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -67,27 +82,33 @@
           <message name="too_long">Too much input was given.</message>
         </messages>
       </field>
-      <field><id>my_source_section_title</id> <type>RelationStringField</type>
+      <field><id>my_reference</id> <type>StringField</type>
         <values>
           <alternate_name></alternate_name>
-          <base_category>source_section</base_category>
-          <catalog_index>Title</catalog_index>
           <css_class></css_class>
           <default></default>
-          <default_module>organisation</default_module>
           <description></description>
           <display_maxwidth></display_maxwidth>
-          <display_width type="int">20</display_width>
+          <display_width type="int">10</display_width>
+          <editable type="int">0</editable>
+          <editable_expression></editable_expression>
+          <editable_permission type="list">[]</editable_permission>
+          <editable_role type="list">[]</editable_role>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
-          <jump_method>base_jump_relation</jump_method>
           <max_length></max_length>
-          <portal_type type="list">[('Organisation', 'Organisation'), ('Person', 'Person')]</portal_type>
+          <not_viewable type="int">0</not_viewable>
+          <read_only type="int">1</read_only>
           <required type="int">0</required>
-          <title>Vendor</title>
+          <title>Invoice Reference</title>
           <truncate type="int">0</truncate>
-          <update_method>base_update_relation</update_method>
+          <unicode type="int">0</unicode>
+          <viewable_expression></viewable_expression>
+          <viewable_permission type="list">[]</viewable_permission>
+          <viewable_role type="list">[]</viewable_role>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -97,52 +118,62 @@
           <message name="too_long">Too much input was given.</message>
         </messages>
       </field>
-      <field><id>resource</id> <type>ListField</type>
+      <field><id>my_description</id> <type>TextAreaField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
-          <first_item type="int">0</first_item>
+          <height type="int">3</height>
           <hidden type="int">0</hidden>
-          <items type="list">[]</items>
+          <max_length></max_length>
+          <max_linelength></max_linelength>
+          <max_lines></max_lines>
           <required type="int">0</required>
-          <size type="int">1</size>
-          <title>Currency</title>
+          <title>Description</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
+          <width type="int">40</width>
         </values>
         <tales>
-          <default>here/l0/getDefaultResource | nothing</default>
-          <items>python:map(lambda x: (x.id,'currency/%s' % x.id),here.currency.objectValues())</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
           <message name="required_not_found">Input is required but no input given.</message>
-          <message name="unknown_selection">You selected an item that was not in the list.</message>
+          <message name="too_many_lines">You entered too many lines.</message>
+          <message name="line_too_long">A line was too long.</message>
+          <message name="too_long">You entered too many characters.</message>
         </messages>
       </field>
-      <field><id>my_causality_title</id> <type>RelationStringField</type>
+      <field><id>my_source_administration_title</id> <type>RelationStringField</type>
         <values>
           <alternate_name></alternate_name>
-          <base_category>causality</base_category>
+          <base_category>source_administration</base_category>
           <catalog_index>Title</catalog_index>
           <css_class></css_class>
           <default></default>
-          <default_module>sale_packing_list</default_module>
+          <default_module>person</default_module>
           <description></description>
           <display_maxwidth></display_maxwidth>
-          <display_width type="int">10</display_width>
+          <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
           <jump_method>base_jump_relation</jump_method>
           <max_length></max_length>
-          <portal_type type="list">[('Sale Packing List', 'Sale Packing List'), ('Sales Packing List', 'Sales Packing List')]</portal_type>
+          <portal_type type="list">[('Person', 'Person')]</portal_type>
           <required type="int">0</required>
-          <title>Packing List</title>
+          <title>Sale Manager</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
           <update_method>base_update_relation</update_method>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -152,27 +183,33 @@
           <message name="too_long">Too much input was given.</message>
         </messages>
       </field>
-      </fields>
-    </group>
-    <group>
-      <title>right</title>
-      <fields>
-
       <field><id>my_start_date</id> <type>DateTimeField</type>
         <values>
+          <allow_empty_time type="int">0</allow_empty_time>
           <alternate_name></alternate_name>
+          <ampm_time_style type="int">0</ampm_time_style>
           <css_class></css_class>
-          <date_only type="int">0</date_only>
+          <date_only type="int">1</date_only>
           <date_separator>/</date_separator>
-          <default_now type="int">1</default_now>
+          <default_now type="int">0</default_now>
           <description></description>
+          <editable type="int">1</editable>
+          <editable_expression></editable_expression>
+          <editable_permission type="list">[]</editable_permission>
+          <editable_role type="list">[]</editable_role>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <hidden type="int">0</hidden>
           <input_order>ymd</input_order>
           <input_style>text</input_style>
+          <not_viewable type="int">0</not_viewable>
+          <read_only type="int">0</read_only>
           <required type="int">0</required>
           <time_separator>:</time_separator>
-          <title>Start Date</title>
+          <title>Invoice Date</title>
+          <viewable_expression></viewable_expression>
+          <viewable_permission type="list">[]</viewable_permission>
+          <viewable_role type="list">[]</viewable_role>
         </values>
         <tales>
         </tales>
@@ -183,127 +220,187 @@
           <message name="datetime_out_of_range">The date and time you entered were out of range.</message>
         </messages>
       </field>
-      <field><id>my_stop_date</id> <type>DateTimeField</type>
+      <field><id>simulation_state</id> <type>StringField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
-          <date_only type="int">0</date_only>
-          <date_separator>/</date_separator>
-          <default_now type="int">1</default_now>
+          <default></default>
           <description></description>
+          <display_maxwidth></display_maxwidth>
+          <display_width type="int">20</display_width>
+          <editable type="int">0</editable>
+          <editable_expression></editable_expression>
+          <editable_permission type="list">[]</editable_permission>
+          <editable_role type="list">[]</editable_role>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
+          <extra></extra>
           <hidden type="int">0</hidden>
-          <input_order>ymd</input_order>
-          <input_style>text</input_style>
+          <max_length></max_length>
+          <not_viewable type="int">0</not_viewable>
+          <read_only type="int">1</read_only>
           <required type="int">0</required>
-          <time_separator>:</time_separator>
-          <title>Stop Date</title>
+          <title>State</title>
+          <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <viewable_expression></viewable_expression>
+          <viewable_permission type="list">[]</viewable_permission>
+          <viewable_role type="list">[]</viewable_role>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
+          <default>python:here.portal_workflow.getInfoFor(here, 'simulation_state')</default>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
           <message name="required_not_found">Input is required but no input given.</message>
-          <message name="not_datetime">You did not enter a valid date and time.</message>
-          <message name="datetime_out_of_range">The date and time you entered were out of range.</message>
+          <message name="too_long">Too much input was given.</message>
         </messages>
       </field>
-      <field><id>my_description</id> <type>TextAreaField</type>
+      <field><id>my_resource</id> <type>ListField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
-          <height type="int">5</height>
+          <extra_item></extra_item>
+          <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
-          <max_length></max_length>
-          <max_linelength></max_linelength>
-          <max_lines></max_lines>
+          <items type="list">[]</items>
           <required type="int">0</required>
-          <title>Description</title>
-          <width type="int">40</width>
+          <size type="int">1</size>
+          <title>Currency</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
+          <items>python:[('','')]+map(lambda x:(x.id,'currency/%s' %x.id),here.currency.objectValues())</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
           <message name="required_not_found">Input is required but no input given.</message>
-          <message name="too_many_lines">You entered too many lines.</message>
-          <message name="line_too_long">A line was too long.</message>
-          <message name="too_long">You entered too many characters.</message>
+          <message name="unknown_selection">You selected an item that was not in the list.</message>
         </messages>
       </field>
       </fields>
     </group>
     <group>
-      <title>center</title>
-      <fields>
-
-      </fields>
-    </group>
-    <group>
-      <title>bottom</title>
+      <title>right</title>
       <fields>
 
-      <field><id>listbox</id> <type>ListBox</type>
+      <field><id>my_causality_id</id> <type>RelationStringField</type>
         <values>
-          <all_columns type="list">[]</all_columns>
-          <all_editable_columns type="list">[]</all_editable_columns>
           <alternate_name></alternate_name>
-          <columns type="list">[('id', 'id'), ('title', 'Title'), ('source', 'Source'), ('source_debit', 'Debit'), ('source_credit', 'Credit'), ('destination', 'Destination'), ('destination_debit', 'Debit'), ('destination_credit', 'Credit')]</columns>
+          <base_category>causality</base_category>
+          <catalog_index>id</catalog_index>
           <css_class></css_class>
           <default></default>
-          <default_params type="list">[]</default_params>
+          <default_module>sale_packing_list</default_module>
           <description></description>
-          <domain_root_list type="list">[]</domain_root_list>
-          <domain_tree type="int">0</domain_tree>
-          <editable_columns type="list">[('title', 'Title'), ('source_debit', 'Debit'), ('source_credit', 'Credit'), ('destination', 'Destination'), ('source', 'Source')]</editable_columns>
+          <display_maxwidth></display_maxwidth>
+          <display_width type="int">10</display_width>
+          <editable type="int">1</editable>
+          <editable_expression></editable_expression>
+          <editable_permission type="list">[]</editable_permission>
+          <editable_role type="list">[]</editable_role>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
-          <global_attributes type="list">[('resource', 'resource')]</global_attributes>
+          <extra></extra>
           <hidden type="int">0</hidden>
-          <lines type="int">10</lines>
-          <list_action>folder_contents</list_action>
-          <list_method type="method">searchFolder</list_method>
-          <meta_types type="list">[]</meta_types>
-          <portal_types type="list">[]</portal_types>
-          <report_root_list type="list">[]</report_root_list>
-          <report_tree type="int">0</report_tree>
-          <search type="int">0</search>
-          <select type="int">1</select>
-          <selection_name>purchase_invoice_transaction_line_selection</selection_name>
-          <sort type="list">[('id', 'id')]</sort>
-          <stat_method></stat_method>
-          <title>Sale Invoice Transaction Lines</title>
+          <jump_method>base_jump_relation</jump_method>
+          <max_length></max_length>
+          <not_viewable type="int">0</not_viewable>
+          <portal_type type="list">[('Sale Packing List', 'Sale Packing List')]</portal_type>
+          <read_only type="int">0</read_only>
+          <required type="int">0</required>
+          <title>Packing List No</title>
+          <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <update_method>base_update_relation</update_method>
+          <viewable_expression></viewable_expression>
+          <viewable_permission type="list">[]</viewable_permission>
+          <viewable_role type="list">[]</viewable_role>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
+          <message name="required_not_found">Input is required but no input given.</message>
+          <message name="too_long">Too much input was given.</message>
         </messages>
       </field>
-      </fields>
-    </group>
-    <group>
-      <title>hidden</title>
-      <fields>
-
-      <field><id>listbox_title</id> <type>StringField</type>
+      <field><id>my_destination_title</id> <type>RelationStringField</type>
         <values>
           <alternate_name></alternate_name>
+          <base_category>destination</base_category>
+          <catalog_index>Title</catalog_index>
           <css_class></css_class>
           <default></default>
+          <default_module>organisation</default_module>
           <description></description>
           <display_maxwidth></display_maxwidth>
           <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
+          <jump_method>base_jump_relation</jump_method>
           <max_length></max_length>
+          <portal_type type="list">[('Organisation', 'Organisation'), ('Person', 'Person')]</portal_type>
           <required type="int">0</required>
-          <title>Title</title>
+          <title>Deliver to</title>
+          <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <update_method>base_update_relation</update_method>
+          <whitespace_preserve type="int">0</whitespace_preserve>
+        </values>
+        <tales>
+        </tales>
+        <messages>
+          <message name="external_validator_failed">The input failed the external validator.</message>
+          <message name="required_not_found">Input is required but no input given.</message>
+          <message name="too_long">Too much input was given.</message>
+        </messages>
+      </field>
+      <field><id>my_destination_section_title</id> <type>RelationStringField</type>
+        <values>
+          <alternate_name></alternate_name>
+          <base_category>destination_section</base_category>
+          <catalog_index>Title</catalog_index>
+          <css_class></css_class>
+          <default></default>
+          <default_module>organisation</default_module>
+          <description></description>
+          <display_maxwidth></display_maxwidth>
+          <display_width type="int">20</display_width>
+          <editable type="int">1</editable>
+          <editable_expression></editable_expression>
+          <editable_permission type="list">[]</editable_permission>
+          <editable_role type="list">[]</editable_role>
+          <enabled type="int">1</enabled>
+          <external_validator></external_validator>
+          <extra></extra>
+          <hidden type="int">0</hidden>
+          <jump_method>base_jump_relation</jump_method>
+          <max_length></max_length>
+          <not_viewable type="int">0</not_viewable>
+          <portal_type type="list">[('Organisation', 'Organisation'), ('Person', 'Person')]</portal_type>
+          <read_only type="int">0</read_only>
+          <required type="int">0</required>
+          <title>For the account of</title>
           <truncate type="int">0</truncate>
+          <unicode type="int">0</unicode>
+          <update_method>base_update_relation</update_method>
+          <viewable_expression></viewable_expression>
+          <viewable_permission type="list">[]</viewable_permission>
+          <viewable_role type="list">[]</viewable_role>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
         </tales>
@@ -313,23 +410,73 @@
           <message name="too_long">Too much input was given.</message>
         </messages>
       </field>
-      <field><id>listbox_source</id> <type>ListField</type>
+      <field><id>my_value_added_tax_recoverable</id> <type>CheckBoxField</type>
+        <values>
+          <alternate_name></alternate_name>
+          <css_class></css_class>
+          <default type="int">0</default>
+          <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
+          <external_validator></external_validator>
+          <extra></extra>
+          <hidden type="int">0</hidden>
+          <title>VAT in use</title>
+        </values>
+        <tales>
+          <default>here/getValueAddedTaxRecoverable</default>
+        </tales>
+        <messages>
+          <message name="external_validator_failed">The input failed the external validator.</message>
+        </messages>
+      </field>
+      <field><id>my_value_added_tax_ratio</id> <type>FloatField</type>
+        <values>
+          <alternate_name></alternate_name>
+          <css_class></css_class>
+          <default></default>
+          <description></description>
+          <display_maxwidth></display_maxwidth>
+          <display_width type="int">10</display_width>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
+          <external_validator></external_validator>
+          <extra></extra>
+          <hidden type="int">0</hidden>
+          <required type="int">0</required>
+          <title>VAT ratio</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
+        </values>
+        <tales>
+        </tales>
+        <messages>
+          <message name="external_validator_failed">The input failed the external validator.</message>
+          <message name="required_not_found">Input is required but no input given.</message>
+          <message name="not_float">You did not enter a floating point number.</message>
+        </messages>
+      </field>
+      <field><id>my_incoterm</id> <type>ListField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
           <required type="int">0</required>
           <size type="int">1</size>
-          <title>listbox_source</title>
+          <title>Incoterm</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
-          <items>python:cell.getObject().getInvoiceTransactionLineSourceItemList()</items>
+          <items>python:here.portal_categories.incoterm.getCategoryChildItemList(display_id = 'getTitle', display_none_category=1)</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
@@ -337,23 +484,28 @@
           <message name="unknown_selection">You selected an item that was not in the list.</message>
         </messages>
       </field>
-      <field><id>listbox_destination</id> <type>ListField</type>
+      <field><id>my_delivery_mode</id> <type>ListField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
+          <editable type="int">1</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
+          <extra_item></extra_item>
           <first_item type="int">0</first_item>
           <hidden type="int">0</hidden>
           <items type="list">[]</items>
           <required type="int">0</required>
           <size type="int">1</size>
-          <title>listbox_destination</title>
+          <title>Delivery Mode</title>
+          <unicode type="int">0</unicode>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
-          <items>python:cell.getObject().getInvoiceTransactionLineDestinationItemList()</items>
+          <items>here/portal_categories/delivery_mode/getFormItemList</items>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
@@ -361,21 +513,83 @@
           <message name="unknown_selection">You selected an item that was not in the list.</message>
         </messages>
       </field>
-      <field><id>listbox_source_debit</id> <type>FloatField</type>
+      </fields>
+    </group>
+    <group>
+      <title>center</title>
+      <fields>
+
+      <field><id>total_without_tax</id> <type>FloatField</type>
+        <values>
+          <alternate_name></alternate_name>
+          <css_class></css_class>
+          <default></default>
+          <description></description>
+          <display_maxwidth></display_maxwidth>
+          <display_width type="int">10</display_width>
+          <editable type="int">0</editable>
+          <enabled type="int">1</enabled>
+          <external_validator></external_validator>
+          <extra></extra>
+          <hidden type="int">0</hidden>
+          <required type="int">0</required>
+          <title>Total without tax included</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
+        </values>
+        <tales>
+          <default>python: '%.2f' % here.getTotalPrice()</default>
+        </tales>
+        <messages>
+          <message name="external_validator_failed">The input failed the external validator.</message>
+          <message name="required_not_found">Input is required but no input given.</message>
+          <message name="not_float">You did not enter a floating point number.</message>
+        </messages>
+      </field>
+      <field><id>total_taxable</id> <type>FloatField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
           <display_maxwidth></display_maxwidth>
-          <display_width type="int">5</display_width>
+          <display_width type="int">10</display_width>
+          <editable type="int">0</editable>
+          <enabled type="int">1</enabled>
+          <external_validator></external_validator>
+          <extra></extra>
+          <hidden type="int">0</hidden>
+          <required type="int">0</required>
+          <title>Total Taxable</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
+        </values>
+        <tales>
+          <default>python: '%.2f' % here.Invoice_zGetTotalNetPrice()</default>
+        </tales>
+        <messages>
+          <message name="external_validator_failed">The input failed the external validator.</message>
+          <message name="required_not_found">Input is required but no input given.</message>
+          <message name="not_float">You did not enter a floating point number.</message>
+        </messages>
+      </field>
+      <field><id>vat</id> <type>FloatField</type>
+        <values>
+          <alternate_name></alternate_name>
+          <css_class></css_class>
+          <default></default>
+          <description></description>
+          <display_maxwidth></display_maxwidth>
+          <display_width type="int">10</display_width>
+          <editable type="int">0</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
           <required type="int">0</required>
-          <title>listbox_source_debit</title>
+          <title>VAT</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
+          <default>python: '%.2f' % here.Invoice_zGetTotalVat()</default>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
@@ -383,21 +597,25 @@
           <message name="not_float">You did not enter a floating point number.</message>
         </messages>
       </field>
-      <field><id>listbox_source_credit</id> <type>FloatField</type>
+      <field><id>total_price</id> <type>FloatField</type>
         <values>
           <alternate_name></alternate_name>
           <css_class></css_class>
           <default></default>
           <description></description>
           <display_maxwidth></display_maxwidth>
-          <display_width type="int">5</display_width>
+          <display_width type="int">10</display_width>
+          <editable type="int">0</editable>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <extra></extra>
           <hidden type="int">0</hidden>
           <required type="int">0</required>
-          <title>listbox_source_debit</title>
+          <title>Net Price to pay</title>
+          <whitespace_preserve type="int">0</whitespace_preserve>
         </values>
         <tales>
+          <default>python:'%.2f' % (here.Invoice_zGetTotalVat() + here.Invoice_zGetTotalNetPrice())</default>
         </tales>
         <messages>
           <message name="external_validator_failed">The input failed the external validator.</message>
@@ -405,7 +623,49 @@
           <message name="not_float">You did not enter a floating point number.</message>
         </messages>
       </field>
+      <field><id>due_date</id> <type>DateTimeField</type>
+        <values>
+          <allow_empty_time type="int">0</allow_empty_time>
+          <alternate_name></alternate_name>
+          <ampm_time_style type="int">0</ampm_time_style>
+          <css_class></css_class>
+          <date_only type="int">1</date_only>
+          <date_separator>/</date_separator>
+          <default_now type="int">0</default_now>
+          <description></description>
+          <editable type="int">0</editable>
+          <enabled type="int">1</enabled>
+          <external_validator></external_validator>
+          <hidden type="int">0</hidden>
+          <input_order>dmy</input_order>
+          <input_style>text</input_style>
+          <required type="int">0</required>
+          <time_separator>:</time_separator>
+          <title>Due Date</title>
+        </values>
+        <tales>
+          <default>python:here.Invoice_zGetDueDate()</default>
+        </tales>
+        <messages>
+          <message name="external_validator_failed">The input failed the external validator.</message>
+          <message name="required_not_found">Input is required but no input given.</message>
+          <message name="not_datetime">You did not enter a valid date and time.</message>
+          <message name="datetime_out_of_range">The date and time you entered were out of range.</message>
+        </messages>
+      </field>
+      </fields>
+    </group>
+    <group>
+      <title>bottom</title>
+      <fields>
+
+      </fields>
+    </group>
+    <group>
+      <title>hidden</title>
+      <fields>
+
       </fields>
     </group>
   </groups>
-</form>
+</form>
\ No newline at end of file
diff --git a/product/ERP5/skins/erp5_accounting/transaction_list.form b/product/ERP5/skins/erp5_accounting/transaction_list.form
index 4daddfef16..732bdb045d 100755
--- a/product/ERP5/skins/erp5_accounting/transaction_list.form
+++ b/product/ERP5/skins/erp5_accounting/transaction_list.form
@@ -1,31 +1,40 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml version="1.0"?>
 
 <form>
   <title></title>
-  <name>accounting_transaction_list</name>
-  <action></action>
-  <enctype></enctype>
-  <method>POST</method>
+  <row_length>4</row_length>
+  <name>transaction_list</name>
   <pt>form_list</pt>
-
+  <action>doSelect</action>
+  <update_action></update_action>
+  <method>POST</method>
+  <enctype></enctype>
+  <encoding>UTF-8</encoding>
+  <stored_encoding>ISO-8859-1</stored_encoding>
+  <unicode_mode>false</unicode_mode>
   <groups>
     <group>
-      <title>Default</title>
+      <title>left</title>
       <fields>
 
-      <field><id>accounting_transaction_list</id> <type>ListBox</type>
+      <field><id>listbox</id> <type>ListBox</type>
         <values>
           <all_columns type="list">[]</all_columns>
           <all_editable_columns type="list">[]</all_editable_columns>
           <alternate_name></alternate_name>
-          <columns type="list">[('id', 'id'), ('Type', 'Type'), ('getStopDate', 'Stop Date'), ('title', 'Title')]</columns>
+          <columns type="list">[('id', 'id'), ('Type', 'Type'), ('getStopDate', 'Stop Date'), ('Title', 'Title'), ('simulation_state', 'State'), ('default_destination_section_title', 'Destination'), ('source_reference', 'Source Reference'), ('destination_reference', 'Destination Reference'), ('reference', 'Invoice Reference')]</columns>
           <css_class></css_class>
           <default></default>
           <default_params type="list">[]</default_params>
           <description></description>
           <domain_root_list type="list">[]</domain_root_list>
           <domain_tree type="int">0</domain_tree>
+          <editable type="int">1</editable>
           <editable_columns type="list">[]</editable_columns>
+          <editable_expression></editable_expression>
+          <editable_permission type="list">[]</editable_permission>
+          <editable_role type="list">[]</editable_role>
+          <enabled type="int">1</enabled>
           <external_validator></external_validator>
           <global_attributes type="list">[]</global_attributes>
           <hidden type="int">0</hidden>
@@ -33,15 +42,22 @@
           <list_action>list</list_action>
           <list_method type="method">portal_catalog</list_method>
           <meta_types type="list">[]</meta_types>
-          <portal_types type="list">[('Accounting Transaction', 'Accounting Transaction'), ('Purchase Invoice Transaction', 'Purchase Invoice Transaction'), ('Sale Invoice Transaction', 'Sale Invoice Transaction')]</portal_types>
+          <not_viewable type="int">0</not_viewable>
+          <portal_types type="list">[('Accounting Transaction', 'Accounting Transaction'), ('Balance Transaction', 'Balance Transaction'), ('Purchase Invoice Transaction', 'Purchase Invoice Transaction'), ('Sale Invoice Transaction', 'Sale Invoice Transaction'), ('Pay Sheet Transaction', 'Pay Sheet Transaction'), ('Payment Transaction', 'Payment Transaction')]</portal_types>
+          <read_only type="int">0</read_only>
           <report_root_list type="list">[]</report_root_list>
           <report_tree type="int">0</report_tree>
           <search type="int">1</search>
+          <search_columns type="list">[]</search_columns>
           <select type="int">1</select>
           <selection_name>accounting_selection</selection_name>
           <sort type="list">[('id', 'id')]</sort>
+          <sort_columns type="list">[]</sort_columns>
           <stat_method></stat_method>
           <title>Accounting Transaction List</title>
+          <viewable_expression></viewable_expression>
+          <viewable_permission type="list">[]</viewable_permission>
+          <viewable_role type="list">[]</viewable_role>
         </values>
         <tales>
         </tales>
@@ -51,5 +67,23 @@
       </field>
       </fields>
     </group>
+    <group>
+      <title>right</title>
+      <fields>
+
+      </fields>
+    </group>
+    <group>
+      <title>center</title>
+      <fields>
+
+      </fields>
+    </group>
+    <group>
+      <title>bottom</title>
+      <fields>
+
+      </fields>
+    </group>
   </groups>
 </form>
\ No newline at end of file
-- 
2.30.9