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><br /></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> </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> </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> </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: 30027 Guichet: 00039 Compte: 00000013323 RIB: 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> </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> </td> + </tr> + </table> + + <table width="100%"> + <tr> + <td><center><h6>RCS Roubaix Tourcoing 440 047 504<br> + Banque: 30027 Guichet: 00039 Compte: 00000013323 RIB: 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