diff --git a/addons/account/__terp__.py b/addons/account/__terp__.py index e5f77587fa7..13288c6262f 100644 --- a/addons/account/__terp__.py +++ b/addons/account/__terp__.py @@ -30,6 +30,8 @@ Third party accounting Taxes management Budgets + Customer and Supplier Invoices + Bank statements """, "website" : "http://www.openerp.com", "category" : "Generic Modules/Accounting", diff --git a/addons/account_analytic_analysis/__terp__.py b/addons/account_analytic_analysis/__terp__.py index 650dcd4fb50..ecd57bdc4c5 100644 --- a/addons/account_analytic_analysis/__terp__.py +++ b/addons/account_analytic_analysis/__terp__.py @@ -21,7 +21,7 @@ ############################################################################## { "name" : "report_account_analytic", - "description": """Modifiy the account analytic view to show + "description": """Modify account analytic view to show important data for project manager of services companies. Add menu to show relevant information for each manager.""", "version" : "1.0", diff --git a/addons/account_balance/__terp__.py b/addons/account_balance/__terp__.py index c9d39375feb..987d3c2905b 100644 --- a/addons/account_balance/__terp__.py +++ b/addons/account_balance/__terp__.py @@ -30,9 +30,9 @@ 1. You can compare the balance sheet for different years. - 2. You can set the cash or percentage comparision between two years. + 2. You can set the cash or percentage comparison between two years. - 3. You can set the referencial account for the percentage comparision for particular years. + 3. You can set the referential account for the percentage comparison for particular years. 4. You can select periods as an actual date or periods as creation date. diff --git a/addons/account_budget/__terp__.py b/addons/account_budget/__terp__.py index 88a66c88e79..46f624108de 100644 --- a/addons/account_budget/__terp__.py +++ b/addons/account_budget/__terp__.py @@ -25,7 +25,7 @@ "author" : "Tiny", "website" : "http://www.openerp.com", "category" : "Generic Modules/Accounting", - "description": """This module allow accountants to manage analytic and crossovered budgets. + "description": """This module allows accountants to manage analytic and crossovered budgets. Once the Master Budgets and the Budgets defined (in Financial Management/Budgets/), the Project Managers can set the planned amount on each diff --git a/addons/account_payment/payment.py b/addons/account_payment/payment.py index 9d5b3682f74..b0bc71568f9 100644 --- a/addons/account_payment/payment.py +++ b/addons/account_payment/payment.py @@ -19,7 +19,6 @@ # along with this program. If not, see . # ############################################################################## - from osv import fields from osv import osv import time @@ -110,7 +109,7 @@ class payment_order(osv.osv): ('now', 'Directly'), ('due', 'Due date'), ('fixed', 'Fixed date') - ], "Prefered date", change_default=True, required=True,help="Choose an option for the Payment Order:'Fixed' stands for a date specified by you.'Directly' stands for the direct execution.'Due date' stands for the scheduled date of execution."), + ], "Preferred date", change_default=True, required=True,help="Choose an option for the Payment Order:'Fixed' stands for a date specified by you.'Directly' stands for the direct execution.'Due date' stands for the scheduled date of execution."), 'date_created': fields.date('Creation date', readonly=True), 'date_done': fields.date('Execution date', readonly=True), } @@ -401,13 +400,13 @@ class payment_line(osv.osv): # 'reference': fields.function(select_by_name, string="Ref", method=True, # type='char'), 'ml_maturity_date': fields.function(_get_ml_maturity_date, method=True, type='date', string='Maturity Date'), - 'ml_inv_ref': fields.function(_get_ml_inv_ref, method=True, type='many2one', relation='account.invoice', string='Invoice Ref'), + 'ml_inv_ref': fields.function(_get_ml_inv_ref, method=True, type='many2one', relation='account.invoice', string='Invoice Ref.'), 'info_owner': fields.function(info_owner, string="Owner Account", method=True, type="text",help='Address of the Main Partner'), 'info_partner': fields.function(info_partner, string="Destination Account", method=True, type="text",help='Address of the Ordering Customer.'), # 'partner_payable': fields.function(partner_payable, string="Partner payable", method=True, type='float'), # 'value_date': fields.function(_value_date, string='Value Date', # method=True, type='date'), - 'date': fields.date('Payment Date',help="If no payment date is specified, the bank will treat this payment line direclty"), + 'date': fields.date('Payment Date',help="If no payment date is specified, the bank will treat this payment line directly"), 'create_date': fields.datetime('Created' ,readonly=True), 'state': fields.selection([('normal','Free'), ('structured','Structured')], 'Communication Type', required=True) } @@ -430,6 +429,7 @@ class payment_line(osv.osv): if move_line_id: line = self.pool.get('account.move.line').browse(cr,uid,move_line_id) data['amount_currency']=line.amount_to_pay + res = self.onchange_amount(cr, uid, ids, data['amount_currency'], currency, company_currency, context) if res: @@ -460,12 +460,12 @@ class payment_line(osv.osv): return {'value': data} - def onchange_amount(self,cr,uid,ids,amount,currency,cmpny_currency,context=None): - if not amount: - return {} + def onchange_amount(self, cr, uid, ids, amount, currency, cmpny_currency, context=None): + if (not amount) or (not cmpny_currency): + return {'value': {'amount':False}} res = {} currency_obj = self.pool.get('res.currency') - company_amount = currency_obj.compute(cr, uid, currency, cmpny_currency,amount) + company_amount = currency_obj.compute(cr, uid, currency, cmpny_currency, amount) res['amount'] = company_amount return {'value': res} diff --git a/addons/account_payment/payment_view.xml b/addons/account_payment/payment_view.xml index 5de9f36a074..4202ca94b6c 100644 --- a/addons/account_payment/payment_view.xml +++ b/addons/account_payment/payment_view.xml @@ -220,14 +220,14 @@ - + - + diff --git a/addons/account_payment/wizard/wizard_populate_statement.py b/addons/account_payment/wizard/wizard_populate_statement.py index 5646ae71ae6..c9c37c2094f 100644 --- a/addons/account_payment/wizard/wizard_populate_statement.py +++ b/addons/account_payment/wizard/wizard_populate_statement.py @@ -67,22 +67,24 @@ def _populate_statement(obj, cursor, user, data, context): for line in line_obj.browse(cursor, user, line_ids, context=context): ctx = context.copy() - ctx['date'] = line.value_date + ctx['date'] = line.ml_maturity_date # was value_date earlier,but this field exists no more now amount = currency_obj.compute(cursor, user, line.currency.id, statement.currency.id, line.amount_currency, context=ctx) - reconcile_id = statement_reconcile_obj.create(cursor, user, { - 'line_ids': [(6, 0, [line.move_line_id.id])] - }, context=context) - statement_line_obj.create(cursor, user, { - 'name': line.order_id.reference or '?', - 'amount': - amount, - 'type': 'supplier', - 'partner_id': line.partner_id.id, - 'account_id': line.move_line_id.account_id.id, - 'statement_id': statement.id, - 'ref': line.reference, - 'reconcile_id': reconcile_id, - }, context=context) + + if line.move_line_id: + reconcile_id = statement_reconcile_obj.create(cursor, user, { + 'line_ids': [(6, 0, [line.move_line_id.id])] + }, context=context) + statement_line_obj.create(cursor, user, { + 'name': line.order_id.reference or '?', + 'amount': - amount, + 'type': 'supplier', + 'partner_id': line.partner_id.id, + 'account_id': line.move_line_id.account_id.id, + 'statement_id': statement.id, + 'ref': line.communication, + 'reconcile_id': reconcile_id, + }, context=context) return {} diff --git a/addons/account_report/__terp__.py b/addons/account_report/__terp__.py index 5425d518b6f..4ff59156c48 100644 --- a/addons/account_report/__terp__.py +++ b/addons/account_report/__terp__.py @@ -24,7 +24,10 @@ "version" : "1.0", "depends" : ["account"], "author" : "Tiny", - "description": """Financial and accounting reporting""", + "description": """Financial and accounting reporting + Fiscal statements + Indicators + """, "website" : "http://www.openerp.com", "category" : "Generic Modules/Accounting", "init_xml" : [ ], diff --git a/addons/account_reporting/__terp__.py b/addons/account_reporting/__terp__.py index 46c07889cc3..c0e1e9ca7c5 100644 --- a/addons/account_reporting/__terp__.py +++ b/addons/account_reporting/__terp__.py @@ -24,7 +24,8 @@ "version" : "1.0", "depends" : ["account"], "author" : "Tiny", - "description": """Financial and accounting reporting""", + "description": """Financial and accounting reporting + Balance Sheet Report""", "category" : "Generic Modules/Accounting", "init_xml" : [ ], "demo_xml" : [ ], diff --git a/addons/account_reporting/account_view.xml b/addons/account_reporting/account_view.xml index 1eb4daf6dc9..f18736a1a76 100644 --- a/addons/account_reporting/account_view.xml +++ b/addons/account_reporting/account_view.xml @@ -57,7 +57,7 @@ form - + diff --git a/addons/analytic_journal_billing_rate/__terp__.py b/addons/analytic_journal_billing_rate/__terp__.py index 91d31892b7f..ffc890c7d94 100644 --- a/addons/analytic_journal_billing_rate/__terp__.py +++ b/addons/analytic_journal_billing_rate/__terp__.py @@ -26,7 +26,7 @@ "author" : "Tiny", "description": """ - This module allows you to define what is the defaut invoicing rate for a specific journal on a given account. This is mostly used when a user encode his timesheet: the values are retrieved and the fields are auto-filled... but the possibility to change these values is still available. + This module allows you to define what is the default invoicing rate for a specific journal on a given account. This is mostly used when a user encode his timesheet: the values are retrieved and the fields are auto-filled... but the possibility to change these values is still available. Obviously if no data has been recorded for the current account, the default value is given as usual by the account data so that this module is perfectly compatible with older configurations. diff --git a/addons/analytic_user_function/__terp__.py b/addons/analytic_user_function/__terp__.py index 9c57b7dc8d2..061ba4e2a3a 100644 --- a/addons/analytic_user_function/__terp__.py +++ b/addons/analytic_user_function/__terp__.py @@ -26,7 +26,7 @@ "author" : "Tiny", "description": """ - This module allows you to define what is the defaut function of a specific user on a given account. This is mostly used when a user encode his timesheet: the values are retrieved and the fields are auto-filled... but the possibility to change these values is still available. + This module allows you to define what is the default function of a specific user on a given account. This is mostly used when a user encode his timesheet: the values are retrieved and the fields are auto-filled... but the possibility to change these values is still available. Obviously if no data has been recorded for the current account, the default value is given as usual by the employee data so that this module is perfectly compatible with older configurations. diff --git a/addons/audittrail/__terp__.py b/addons/audittrail/__terp__.py index 5e7c3c4c861..c6932678bb7 100644 --- a/addons/audittrail/__terp__.py +++ b/addons/audittrail/__terp__.py @@ -26,7 +26,8 @@ "website" : "http://www.openerp.com", "author" : "Tiny", "init_xml" : [], - "description": "Allows the administrator to track every user operations on all objects of the system.", + "description": """Allows the administrator to track every user operations on all objects of the system. + Subscribe Rules for read, write, create and delete on objects and check logs""", "category" : "Generic Modules/Others", "update_xml" : ["audittrail_view.xml", "security/ir.model.access.csv", diff --git a/addons/base_contact/__terp__.py b/addons/base_contact/__terp__.py index 4a635db3cbc..0bef1e9c843 100644 --- a/addons/base_contact/__terp__.py +++ b/addons/base_contact/__terp__.py @@ -30,14 +30,13 @@ It lets you define *contacts unrelated to a partner, - *contacts working at several adresses (possibly for different partners), + *contacts working at several addresses (possibly for different partners), *contacts with possibly different functions for each of its job's addresses - It also add new menuitems located in + It also add new menu items located in Partners \ Contacts Partners \ Functions - Pay attention that this module converts the existing addresses into "addresses + contacts". It means that some fields of the addresses will be missing (like the contact name), since these are supposed to be defined in an other object. """, "depends" : ["base", "process"], diff --git a/addons/base_module_quality/__terp__.py b/addons/base_module_quality/__terp__.py index 5588ab05780..dc43d720c10 100644 --- a/addons/base_module_quality/__terp__.py +++ b/addons/base_module_quality/__terp__.py @@ -27,11 +27,9 @@ "description": """" This module's aim is to check the quality of other modules. - It defines a wizard on the list of modules in OpenERP, which allow you to evaluate them on different critera such as: the respect of OpenERP coding standards, the speed efficency... - - - This module also provide generic framework to define your own quality test. For further info, coders may take a look into base_module_quality\README.txt + It defines a wizard on the list of modules in OpenERP, which allow you to evaluate them on different criteria such as: the respect of OpenERP coding standards, the speed efficiency... + This module also provides generic framework to define your own quality test. For further info, coders may take a look into base_module_quality\README.txt """, "init_xml" : [], "update_xml" : ["base_module_quality_wizard.xml", "security/ir.model.access.csv",], diff --git a/addons/base_module_quality/base_module_quality.py b/addons/base_module_quality/base_module_quality.py index 101043b498c..1a84f35b67a 100644 --- a/addons/base_module_quality/base_module_quality.py +++ b/addons/base_module_quality/base_module_quality.py @@ -20,6 +20,8 @@ # ############################################################################## import pooler +import os +from tools import config class abstract_quality_check(object): ''' @@ -64,9 +66,20 @@ class abstract_quality_check(object): #False => the module can be uninstalled. self.bool_installed_only = True + self.tests = [] + self.list_folders = os.listdir(config['addons_path']+'/base_module_quality/') + for item in self.list_folders: + self.item = item + path = config['addons_path']+'/base_module_quality/'+item + if os.path.exists(path+'/'+item+'.py') and item not in ['report', 'wizard', 'security']: + item2 = 'base_module_quality.' + item +'.' + item + x = __import__(item2) + x2 = getattr(x, item) + x3 = getattr(x2, item) + self.tests.append(x3) # raise 'Not Implemented' - def run_test(self, cr, uid, module_path=""): + def run_test(self, cr, uid, module_path="", module_state=""): ''' this method should do the test and fill the score, result and result_details var ''' @@ -99,22 +112,26 @@ class abstract_quality_check(object): if test=='method': detail = "" detail += "\n===Method Test===\n" - detail += ('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-16s \n! %-20s \n! %-16s ') % (header[0].ljust(40), header[1].ljust(16), header[2].ljust(20), header[3].ljust(16)) - for res in data_list[1][0]: - detail += ('\n|-\n| %s \n| %s \n| %s \n| %s ') % (res, data_list[1][0][res][0], data_list[1][0][res][1], data_list[1][0][res][2]) - res_format['summary'] = [data_list[0][0]] - res_format['detail'] = [detail + '\n|}'] + res_format['detail'] = detail + if not data_list[2]: + detail += ('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-16s \n! %-20s \n! %-16s ') % (header[0].ljust(40), header[1].ljust(16), header[2].ljust(20), header[3].ljust(16)) + for res in data_list[1]: + detail += ('\n|-\n| %s \n| %s \n| %s \n| %s ') % (res, data_list[1][res][0], data_list[1][res][1], data_list[1][res][2]) + res_format['detail'] = detail + '\n|}' + res_format['summary'] = data_list[0] elif test=='pylint': res_format['summary'] = data_list[0] res_format['detail'] = data_list[1] elif test=='speed': detail = "" detail += "\n===Speed Test===\n" - detail += ('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-10s \n! %-10s \n! %-10s \n! %-10s \n! %-20s') % (header[0].ljust(40), header[1].ljust(10), header[2].ljust(10), header[3].ljust(10), header[4].ljust(10), header[5].ljust(20)) - for data in data_list[1]: - detail += ('\n|-\n| %s \n| %s \n| %s \n| %s \n| %s \n| %s ') % (data[0], data[1], data[2], data[3], data[4], data[5]) + res_format['detail'] = detail + if not data_list[2]: + detail += ('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-10s \n! %-10s \n! %-10s \n! %-10s \n! %-20s') % (header[0].ljust(40), header[1].ljust(10), header[2].ljust(10), header[3].ljust(10), header[4].ljust(10), header[5].ljust(20)) + for data in data_list[1]: + detail += ('\n|-\n| %s \n| %s \n| %s \n| %s \n| %s \n| %s ') % (data[0], data[1], data[2], data[3], data[4], data[5]) + res_format['detail'] = detail + '\n|}\n' res_format['summary'] = data_list[0] - res_format['detail'] = [detail + '\n|}\n'] return res_format diff --git a/addons/base_module_quality/method_test/method_test.py b/addons/base_module_quality/method_test/method_test.py index b2015723dcb..1da2e06ad97 100644 --- a/addons/base_module_quality/method_test/method_test.py +++ b/addons/base_module_quality/method_test/method_test.py @@ -40,13 +40,14 @@ class quality_test(base_module_quality.abstract_quality_check): self.bool_installed_only = True return None - def run_test(self, cr, uid, module_path): + def run_test(self, cr, uid, module_path, module_state): pool = pooler.get_pool(cr.dbname) module_name = module_path.split('/')[-1] obj_list = self.get_objects(cr, uid, module_name) result = {} ok_count = 0 ex_count = 0 + error = False for obj in obj_list: temp = [] try: @@ -77,12 +78,20 @@ class quality_test(base_module_quality.abstract_quality_check): # self.result += ('\n|-\n| %s \n| %s \n| %s \n| %s ') % (res, result[res][0],result[res][1], result[res][2]) # self.result += '\n|}' self.score = (ok_count + ex_count) and float(ok_count)/float(ok_count + ex_count) or 0.0 - summary = """\n ===Method Test===: + if not self.bool_installed_only or module_state=="installed": + summary = """ +===Method Test===: This test checks if the module classes are raising exception when calling basic methods or no. """ + "Score: " + str(self.score) + "/10\n" - self.result = self.format_table(test='method', header=header_list, data_list=[[summary],[result]]) + else: + summary =""" \n===Method Test===: + +The module has to be installed before running this test.\n\n """ + header_list = "" + error = True + self.result = self.format_table(test='method', header=header_list, data_list=[summary,result,error]) return None diff --git a/addons/base_module_quality/pylint_test/pylint_test.py b/addons/base_module_quality/pylint_test/pylint_test.py index 5bf240346d1..333f73f50dc 100644 --- a/addons/base_module_quality/pylint_test/pylint_test.py +++ b/addons/base_module_quality/pylint_test/pylint_test.py @@ -40,7 +40,7 @@ class quality_test(base_module_quality.abstract_quality_check): self.bool_installed_only = False return None - def run_test(self, cr, uid, module_path): + def run_test(self, cr, uid, module_path, module_state): config_file_path = config['addons_path']+'/base_module_quality/pylint_test/pylint_test_config.txt' list_files = os.listdir(module_path) for i in list_files: @@ -53,6 +53,7 @@ class quality_test(base_module_quality.abstract_quality_check): score = 0.0 detail = "" detail = "\n===Pylint Test===\n" + error = False for file in list_files: if file.split('.')[-1] == 'py' and not file.endswith('__init__.py') and not file.endswith('__terp__.py'): file_path = os.path.join(module_path, file) @@ -75,13 +76,20 @@ class quality_test(base_module_quality.abstract_quality_check): detail += file + ": Unable to parse the result. Check the details.\n" self.result_details += res self.score = n and score / n or score - summary =""" + if not self.bool_installed_only or module_state=="installed": + summary =""" ===Pylint Test===: - This test checks if the module satisfy the current coding standard used by OpenERP. +This test checks if the module satisfy the current coding standard used by OpenERP. """ + "Score: " + str(self.score) + "/10\n" - self.result = self.format_table(test='pylint', data_list=[[summary],[detail]]) + else: + summary =""" \n===Pylint Test===: + +The module has to be installed before running this test.\n\n """ + header_list = "" + error = True + self.result = self.format_table(test='pylint', data_list=[summary,detail,error]) return None diff --git a/addons/base_module_quality/pylint_test/pylint_test_config.txt b/addons/base_module_quality/pylint_test/pylint_test_config.txt index 1997cce14ad..2bb5bd12df0 100644 --- a/addons/base_module_quality/pylint_test/pylint_test_config.txt +++ b/addons/base_module_quality/pylint_test/pylint_test_config.txt @@ -1,6 +1,6 @@ # lint Python modules using external checkers. # -# This is the main checker controling the other ones and the reports +# This is the main checker controlling the other ones and the reports # generation. It is itself both a raw checker and an astng checker in order # to: # * handle message activation / deactivation at the module level diff --git a/addons/base_module_quality/speed_test/speed_test.py b/addons/base_module_quality/speed_test/speed_test.py index 5a9176e4946..248a500fa9c 100644 --- a/addons/base_module_quality/speed_test/speed_test.py +++ b/addons/base_module_quality/speed_test/speed_test.py @@ -43,7 +43,7 @@ class quality_test(base_module_quality.abstract_quality_check): #""" self.bool_installed_only = True return None - def run_test(self, cr, uid, module_path): + def run_test(self, cr, uid, module_path, module_state): pool = pooler.get_pool(cr.dbname) module_name = module_path.split('/')[-1] # self.result+=('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-10s \n! %-10s \n! %-10s \n! %-10s \n! %-20s') % ('Object Name'.ljust(40), 'Size-Number of Records (S)'.ljust(10), '1'.ljust(10), 'S/2'.ljust(10), 'S'.ljust(10), 'Complexity using query'.ljust(20)) @@ -54,6 +54,7 @@ class quality_test(base_module_quality.abstract_quality_check): obj_ids = self.get_ids(cr, uid, obj_list) detail = "" list1 = [] + error = False for obj in obj_ids: obj_counter += 1 ids = obj_ids[obj] @@ -96,13 +97,20 @@ class quality_test(base_module_quality.abstract_quality_check): list1.append(list) # self.result += '\n|}\n' self.score = obj_counter and score/obj_counter or 0.0 - summary = """ + if not self.bool_installed_only or module_state=="installed": + summary = """ ===Speed Test===: This test checks the speed of the module. """+ "Score: " + str(self.score) + "/10\n" - self.result = self.format_table(test='speed', header=header_list, data_list=[[summary],list1]) + else: + summary =""" \n===Speed Test===: + +The module has to be installed before running this test.\n\n """ + header_list = "" + error = True + self.result = self.format_table(test='speed', header=header_list, data_list=[summary,list1, error]) return None # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_module_quality/wizard/module_quality_check.py b/addons/base_module_quality/wizard/module_quality_check.py index 48a04f8f921..c0640d9a078 100644 --- a/addons/base_module_quality/wizard/module_quality_check.py +++ b/addons/base_module_quality/wizard/module_quality_check.py @@ -26,7 +26,7 @@ from osv import osv, fields import tools import os - +from base_module_quality import base_module_quality #TODO: (utiliser les nouveaux wizards pour heriter la vue et rajouter un onglet par test?) #TODO: implement the speed test #TODO: add cheks: do the class quality_check inherits the class abstract_quality_check? @@ -65,24 +65,16 @@ class wiz_quality_check(osv.osv_memory): module_data = pool.get('ir.module.module').browse(cr, uid, [data['ids']]) list_folders = os.listdir(config['addons_path']+'/base_module_quality/') module_name = module_data[0].name - for item in list_folders: - path = config['addons_path']+'/base_module_quality/'+item - if os.path.exists(path+'/'+item+'.py') and item not in ['report', 'wizard', 'security']: - ad = tools.config['addons_path'] - if module_data[0].name == 'base': - ad = tools.config['root_path']+'/addons' - module_path = os.path.join(ad, module_data[0].name) - item2 = 'base_module_quality.' + item +'.' + item - x = __import__(item2) - x2 = getattr(x, item) - x3 = getattr(x2, item) - val = x3.quality_test() - if (not val.bool_installed_only or module_data[0].state == "installed"): - val.run_test(cr, uid, str(module_path)) - else: - val.result += "The module has to be installed before running this test." - string_ret += val.result['summary'][0] - string_detail += val.result['detail'][0] + abstract_obj = base_module_quality.abstract_quality_check() + for test in abstract_obj.tests: + ad = tools.config['addons_path'] + if module_data[0].name == 'base': + ad = tools.config['root_path']+'/addons' + module_path = os.path.join(ad, module_data[0].name) + val = test.quality_test() + val.run_test(cr, uid, str(module_path), str(module_data[0].state)) + string_ret += val.result['summary'] + string_detail += val.result['detail'] self.string_detail = string_detail return string_ret diff --git a/addons/base_module_record/__terp__.py b/addons/base_module_record/__terp__.py index dfb8c1d7c77..43d54a77eda 100644 --- a/addons/base_module_record/__terp__.py +++ b/addons/base_module_record/__terp__.py @@ -35,7 +35,7 @@ This version works for creating and updating existing records. It recomputes dependencies and links for all types of widgets (many2one, many2many, ...). It also support workflows and demo/update data. -This should help you to easily create reuseable and publishable modules +This should help you to easily create reusable and publishable modules for custom configurations and demo/testing data. How to use it: diff --git a/addons/delivery/__terp__.py b/addons/delivery/__terp__.py index 63e134482af..f42b08d8102 100644 --- a/addons/delivery/__terp__.py +++ b/addons/delivery/__terp__.py @@ -24,7 +24,7 @@ "version" : "1.0", "author" : "Tiny", "category" : "Generic Modules/Sales & Purchases", - "description": "Allows to add delivery methods in sales order and packings. You can define your own carrier and delivery grids for prices. When creating invoices from pickings, Open ERP is able to add and compute the shipping line.", + "description": "Allows to add delivery methods in sales order and packing. You can define your own carrier and delivery grids for prices. When creating invoices from pickings, Open ERP is able to add and compute the shipping line.", "depends" : ["sale","purchase", "stock",], "init_xml" : ["delivery_data.xml"], "demo_xml" : ["delivery_demo.xml"], diff --git a/addons/document/__terp__.py b/addons/document/__terp__.py index 72cec7eb7da..2b5c72ef4e3 100644 --- a/addons/document/__terp__.py +++ b/addons/document/__terp__.py @@ -27,7 +27,7 @@ "website": "http://www.openerp.com", "description": """This is a complete document management system: * FTP Interface - * User Authentification + * User Authentication * Document Indexation """, "depends" : ["base","process"], diff --git a/addons/document_ics/__terp__.py b/addons/document_ics/__terp__.py index 3d30ea81e67..0388fba2f6c 100644 --- a/addons/document_ics/__terp__.py +++ b/addons/document_ics/__terp__.py @@ -25,7 +25,7 @@ "author" : "Tiny", "category" : "Generic Modules/Others", "website": "http://www.openerp.com", - "description": """Allows to synchronize calendars with others applications.""", + "description": """Allows to synchronise calendars with others applications.""", "depends" : ["document","crm_configuration"], "init_xml" : ["document_data.xml"], "update_xml" : [ diff --git a/addons/event/__terp__.py b/addons/event/__terp__.py index 13d04f7a398..3dadd57e081 100644 --- a/addons/event/__terp__.py +++ b/addons/event/__terp__.py @@ -28,13 +28,13 @@ This module allow you * to manage your events and their registrations - * to use emails to automaticly confirm and send acknowledgements for any registration to an event + * to use emails to automatically confirm and send acknowledgements for any registration to an event * ... Note that: - You can define new types of events in Events \ Configuration \ Types of Events - - You can access pre-defined reports about number of registration per event or per event category in : + - You can access predefined reports about number of registration per event or per event category in : Events \ Reporting """, "depends" : [ diff --git a/addons/hr_expense/__terp__.py b/addons/hr_expense/__terp__.py index b79f9b67685..e1d338d26d3 100644 --- a/addons/hr_expense/__terp__.py +++ b/addons/hr_expense/__terp__.py @@ -37,7 +37,7 @@ * Payment of the invoice to the employee This module also use the analytic accounting and is compatible with - the invoice on timesheet module so that you will be able to automatcally + the invoice on timesheet module so that you will be able to automatically re-invoice your customer's expenses if your work by project. """, "init_xml" : [], diff --git a/addons/hr_holidays/__terp__.py b/addons/hr_holidays/__terp__.py index 0018d20d984..3e5785c7abc 100644 --- a/addons/hr_holidays/__terp__.py +++ b/addons/hr_holidays/__terp__.py @@ -5,12 +5,12 @@ "author" : "Tiny & Axelor", "category" : "Generic Modules/Human Resources", "website" : "http://www.openerp.com", - "description": """Human Ressources: Holidays tracking and workflow + "description": """Human Resources: Holidays tracking and workflow This module allows you to manage holidays and holidays requests. For each employee, you can also define a number of available holidays per holiday status. Note that: - - A synchronisation with an internal agenda (use of the crm module) is possible: in order to automaticly create a case when an holiday request is accepted, you have to link the holidays status to a case section. You can set up this info and your color preferencies in + - A synchronisation with an internal agenda (use of the CRM module) is possible: in order to automatically create a case when an holiday request is accepted, you have to link the holidays status to a case section. You can set up this info and your colour preferences in HR \ Configuration \ Holidays Status - An employee can make a negative holiday request (holiday request of -2 days for example), this is considered by the system as an ask for more off-days. It will increase his total of that holiday status available (if the request is accepted). - There are two ways to print the employee's holidays: diff --git a/addons/hr_timesheet/__terp__.py b/addons/hr_timesheet/__terp__.py index f5a6bc6fb7a..bcc5699103d 100644 --- a/addons/hr_timesheet/__terp__.py +++ b/addons/hr_timesheet/__terp__.py @@ -33,7 +33,7 @@ the analytic account. Lots of reporting on time and employee tracking are provided. -It is completly integrated with the cost accounting module. It allows you +It is completely integrated with the cost accounting module. It allows you to set up a management by affair. """, "depends" : ["account", "hr", "base", "hr_attendance", "process"], diff --git a/addons/hr_timesheet_invoice/__terp__.py b/addons/hr_timesheet_invoice/__terp__.py index 6426f895dff..8aee0134005 100644 --- a/addons/hr_timesheet_invoice/__terp__.py +++ b/addons/hr_timesheet_invoice/__terp__.py @@ -27,8 +27,8 @@ "website" : "http://www.openerp.com", "depends" : ["account",'hr_timesheet'], "description": """ -Module to generate invoices based on costs (human ressources, expenses, ...). -You can define pricelists in analytic account, make some theorical revenue +Module to generate invoices based on costs (human resources, expenses, ...). +You can define price lists in analytic account, make some theoretical revenue reports, eso.""", "init_xml" : [], "demo_xml" : [ diff --git a/addons/l10n_fr/__init__.py b/addons/l10n_fr/__init__.py index b888eb373fc..db9b32b8027 100644 --- a/addons/l10n_fr/__init__.py +++ b/addons/l10n_fr/__init__.py @@ -20,7 +20,9 @@ # ############################################################################## +import l10n_fr import wizard +import report # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_fr/__terp__.py b/addons/l10n_fr/__terp__.py index cbd0d92e4da..4aed0b86471 100644 --- a/addons/l10n_fr/__terp__.py +++ b/addons/l10n_fr/__terp__.py @@ -41,13 +41,14 @@ * We have the account templates which can be helpful to generate Charts of Accounts. * On that particular wizard,You will be asked to pass the name of the company,the chart template to follow,the no. of digits to generate the code for your account and Bank account,currency to create Journals. Thus,the pure copy of Chart Template is generated. - * This is the same wizard that runs from Financial Managament/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template. + * This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template. * This module installs : The Tax Code chart and taxes for French Accounting. """, - "init_xml" : [], - "update_xml" : ["types.xml", "plan-99-03_societe.xml", "taxes.xml","fr_wizard.xml"], + "init_xml" : ["fr_data.xml"], + "update_xml" : ["l10n_fr_view.xml","types.xml", "plan-99-03_societe.xml", + "taxes.xml","fr_wizard.xml",], "demo_xml" : [], "installable": True } diff --git a/addons/l10n_fr/fr_data.xml b/addons/l10n_fr/fr_data.xml new file mode 100644 index 00000000000..9cef085c7ae --- /dev/null +++ b/addons/l10n_fr/fr_data.xml @@ -0,0 +1,930 @@ + + + + + + Bilan Comptable + bilan + + + + Compte de Résultat + cdr + + + + Actif : Capital souscrit - non appelé + {'load':['+:109:S'], 'except':[]} + bavar1 + + + + + Immobilisations incorporelles : Frais d'établissement + {'load':['+:201:S'], 'except':[]} + bavar2 + + + + + Immobilisations incorporelles : Frais d'établissement (Amortissements et dépréciations) + {'load':['+:2801:S'], 'except':[]} + bavar2b + + + + + Immobilisations incorporelles : Frais de recherche et de développement + {'load':['+:203:S'], 'except':[]} + bavar3 + + + + + Immobilisations incorporelles : Frais de recherche et de développement (Amortissements et dépréciations) + {'load':['+:2803:S'], 'except':[]} + bavar3b + + + + + Immobilisations incorporelles : Concessions, brevets, licences, marques, droits et valeurs similaires + {'load':['+:205:S'], 'except':[]} + bavar4 + + + + + Immobilisations incorporelles : Concessions, brevets, licences, marques, droits et valeurs similaires (Amortissements et dépréciations) + {'load':['+:2805:S','+:2905:S'], 'except':[]} + bavar4b + + + + + Immobilisations incorporelles : Fonds commercial + {'load':['+:206:S','+:207:S'], 'except':[]} + bavar5 + + + + + Immobilisations incorporelles : Fonds commercial (Amortissements et dépréciations) + {'load':['+:2807:S','+:2907:S'], 'except':[]} + bavar5b + + + + + Immobilisations incorporelles : Autres + {'load':['+:208:S'], 'except':[]} + bavar6 + + + + + Immobilisations incorporelles : Autres (Amortissements et dépréciations) + {'load':['+:2808:S','+:2908:S'], 'except':[]} + bavar6b + + + + + Immobilisations incorporelles : Immobilisations incorporelles en cours + {'load':['+:232:S'], 'except':[]} + bavar7 + + + + + Immobilisations incorporelles : Immobilisations incorporelles en cours (Amortissements et dépréciations) + {'load':['+:2932:S'], 'except':[]} + bavar7b + + + + + Immobilisations incorporelles : Avances et acomptes + {'load':['+:237:S'], 'except':[]} + bavar8 + + + + + Immobilisations corporelles : Terrains + {'load':['+:211:S','+:212:S'], 'except':[]} + bavar9 + + + + + Immobilisations corporelles : Terrains (Amortissements et dépréciations) + {'load':['+:2811:S','+:2812:S','+:2911:S'], 'except':[]} + bavar9b + + + + + Immobilisations corporelles : Constructions + {'load':['+:213:S','+:214:S'], 'except':[]} + bavar10 + + + + + Immobilisations corporelles : Constructions (Amortissements et dépréciations) + {'load':['+:2813:S','+:2814:S'], 'except':[]} + bavar10b + + + + + Immobilisations corporelles : Installations techniques,matériel et outillage + {'load':['+:215:S'], 'except':[]} + bavar11 + + + + + Immobilisations corporelles : Installations techniques,matériel et outillage (Amortissements et dépréciations) + {'load':['+:2815:S'], 'except':[]} + bavar11b + + + + + Immobilisations corporelles : Autres + {'load':['+:218:S'], 'except':[]} + bavar12 + + + + + Immobilisations corporelles : Autres (Amortissements et dépréciations) + {'load':['+:2818:S','+:282:S'], 'except':[]} + bavar12b + + + + + Immobilisations corporelles : Immobilisations corporelles en cours + {'load':['+:231:S'], 'except':[]} + bavar13 + + + + + Immobilisations corporelles : Immobilisations corporelles : Immobilisations corporelles en cours (Amortissements et dépréciations) + {'load':['+:2931:S'], 'except':[]} + bavar13b + + + + + Immobilisations corporelles : Avances et acomptes + {'load':['+:238:S'], 'except':[]} + bavar14 + + + + + Immobilisations financiéres : Participations + {'load':['+:261:S','+:262:S','+:266:S'], 'except':[]} + bavar15 + + + + + Immobilisations financiéres : Participations (Amortissements et dépréciations) + {'load':['+:2961:S','+:2966:S'], 'except':[]} + bavar15b + + + + + Immobilisations financiéres : Créances rattachées à des participations + {'load':['+:267:S','+:268:S'], 'except':[]} + bavar16 + + + + + Immobilisations financiéres : Créances rattachées à des participations (Amortissements et dépréciations) + {'load':['+:2967:S'], 'except':[]} + bavar16b + + + + + Immobilisations financiéres : Titres immobilisés de l'activité de portefeuille + {'load':['+:273:S'], 'except':[]} + bavar17 + + + + + Immobilisations financiéres : Titres immobilisés de l'activité de portefeuille (Amortissements et dépréciations) + {'load':['+:2973:S'], 'except':[]} + bavar17b + + + + + Immobilisations financiéres : Autres titres immobilisés + {'load':['+:271:S','+:272:S','+:27682:S'], 'except':[]} + bavar18 + + + + + Immobilisations financiéres : Autres titres immobilisés (Amortissements et dépréciations) + {'load':['+:2971:S','+:2972:S'], 'except':[]} + bavar18b + + + + + Immobilisations financiéres : Prêts + {'load':['+:274:S','+:27684:S'], 'except':[]} + bavar19 + + + + + Immobilisations financiéres : Prêts (Amortissements et dépréciations) + {'load':['+:2974:S'], 'except':[]} + bavar19b + + + + + Immobilisations financiéres : Autres + {'load':['+:275:S','+:276:S'], 'except':['27682','27684']} + bavar20 + + + + + Immobilisations financiéres : Autres (Amortissements et dépréciations) + {'load':['+:2975:S','+:2976:S'], 'except':[]} + bavar20b + + + + + Stock en cours : Matières premières et autres approvisionnements + {'load':['+:31:S','+:32:S'], 'except':[]} + bavar21 + + + + + Stock en cours : Matières premières et autres approvisionnements (Amortissements et dépréciations) + {'load':['+:391:S','+:392:S'], 'except':[]} + bavar21b + + + + + Stock en cours : En-cours de production [biens et services] + {'load':['+:33:S','+:34:S'], 'except':[]} + bavar22 + + + + + Stock en cours : En-cours de production [biens et services] (Amortissements et dépréciations) + {'load':['+:393:S','+:394:S'], 'except':[]} + bavar22b + + + + + Stock en cours : Produits intermédiaires et finis + {'load':['+:35:S'], 'except':[]} + bavar23 + + + + + Stock en cours : Produits intermédiaires et finis (Amortissements et dépréciations) + {'load':['+:395:S'], 'except':[]} + bavar23b + + + + + Stock en cours : Marchandises + {'load':['+:37:S'], 'except':[]} + bavar24 + + + + + Stock en cours : Marchandises (Amortissements et dépréciations) + {'load':['+:397:S'], 'except':[]} + bavar24b + + + + + Stock en cours : Avances et acomptes versés sur commandes + {'load':['+:4091:S'], 'except':[]} + bavar25 + + + + + Créances : Créances clients et comptes rattachés + {'load':['+:411:S','+:413:S','+:416:S','+:418:S'], 'except':[]} + bavar26 + + + + + Créances : Créances clients et comptes rattachés (Amortissements et dépréciations) + {'load':['+:491:S'], 'except':[]} + bavar26b + + + + + Créances : Autres + {'load':['+:4096:S','+:4097:S','+:4098:S','+:425:S','+:441:S','+:462:S','+:465:S','+:428:D','+:438:D','+:443:D','+:444:D','+:445:D','+:448:D','+:451:D','+:455:D','+:456:D','+:458:D','+:467:D','+:468:D','+:478:D'], 'except':['4562']} + bavar27 + + + + + Créances : Autres (Amortissements et dépréciations) + {'load':['+:495:S','+:496:S'], 'except':[]} + bavar27b + + + + + Créances : Capital souscrit - appelé , non versé + {'load':['+:4562:S'], 'except':[]} + bavar28 + + + + + Valeurs mobilières de placement : Actions propres + {'load':['+:502:S'], 'except':[]} + bavar29 + + + + + Valeurs mobilières de placement : Actions propres (Amortissements et dépréciations) + {'load':['+:5903:S'], 'except':[]} + bavar29b + + + + + Valeurs mobilières de placement : Autres titres + {'load':['+:50:S'], 'except':['502','509']} + bavar30 + + + + + Valeurs mobilières de placement : Autres titres (Amortissements et dépréciations) + {'load':['+:590:S'], 'except':['5903']} + bavar30b + + + + + Actif circulant : Instruments de trésorerie + {'load':['+:52:S'], 'except':[]} + bavar31 + + + + + Actif circulant : Disponibilités + {'load':['+:51:D','+:53:S','+:54:S'], 'except':['5181','519']} + bavar32 + + + + + Actif circulant : Charges constatés d'avance + {'load':['+:486:S'], 'except':[]} + bavar33 + + + + + Actif : Charges à répartir sur plusieurs exercices + {'load':['+:481:S'], 'except':[]} + bavar34 + + + + + Actif : Primes de remboursement des emprunts + {'load':['+:169:S'], 'except':[]} + bavar35 + + + + + Actif : Écarts de conversion actif + {'load':['+:476:S'], 'except':[]} + bavar36 + + + + + Capitaux propres : Capital [dont versé...] + {'load':['-:101:S','-:108:S'], 'except':[]} + bpvar1 + + + + + Capitaux propres : Primes d'émission, de fusion, d'apport + {'load':['-:104:S'], 'except':[]} + bpvar2 + + + + + Capitaux propres : Écarts de réévaluation + {'load':['-:105:S'], 'except':[]} + bpvar3 + + + + + Capitaux propres : Écart d'équivalence + {'load':['-:107:S'], 'except':[]} + bpvar4 + + + + + Réserves : Réserve légale + {'load':['-:1061:S'], 'except':[]} + bpvar5 + + + + + Réserves : Réserves statutaires ou contractuelles + {'load':['-:1063:S'], 'except':[]} + bpvar6 + + + + + Réserves : Réserves réglementées + {'load':['-:1062:S','-:1064:S'], 'except':[]} + bpvar7 + + + + + Réserves : Autres réserves + {'load':['-:1068:S'], 'except':[]} + bpvar8 + + + + + Capitaux propres : Report à nouveau + {'load':['-:110:S','-:119:S'], 'except':[]} + bpvar9 + + + + + Capitaux propres : Résultat de l'exercice + + {'load':['-:7:S','-:6:S'], 'except':[]} + bpvar10 + + + + + Capitaux propres : Résultat de l'exercice (Vérification) + {'load':['-:120:S','-:129:S'], 'except':[]} + bpcheck + + + + + Capitaux propres : Subventions d'investissement + {'load':['-:13:S'], 'except':[]} + bpvar11 + + + + + Capitaux propres : Provisions réglementées + {'load':['-:14:S'], 'except':[]} + bpvar12 + + + + + Provisions : Provisions pour risques + {'load':['-:151:S'], 'except':[]} + bpvar13 + + + + + Provisions : Provisions pour charges + {'load':['-:15:S'], 'except':['151']} + bpvar14 + + + + + Dettes : Emprunts obligataires convertibles + {'load':['-:161:S','-:16881:S'], 'except':[]} + bpvar15 + + + + + Dettes : Autres emprunts obligataires + {'load':['-:163:S','-:16883:S'], 'except':[]} + bpvar16 + + + + + Dettes : Emprunts et dettes auprès des établissements de crédit + {'load':['-:164:S','-:16884:S','-:519:S','-:5181:S','-:512:C','-:514:C','-:517:C'], 'except':[]} + bpvar17 + + + + + Dettes : Emprunts et dettes financières diverses + {'load':['-:165:S','-:166:S','-:1675:S','-:168:S','-:17:S','-:426:S','-:45:C'], 'except':['16881','16883','16884','457']} + bpvar18 + + + + + Dettes : Avances et acomptes reçus sur commandes en cours + {'load':['-:4191:S'], 'except':[]} + bpvar19 + + + + + Dettes : Dettes fournisseurs et comptes rattachés + {'load':['-:401:S','-:403:S','-:4081:S','-:4088:S'], 'except':[]} + bpvar20 + + + + + Dettes : Dettes fiscales et sociales + {'load':['-:421:S','-:422:S','-:424:S','-:427:S','-:4282:S','-:4284:S','-:4286:S','-:43:S','-:442:S','-:4455:S','-:4457:S','-:44584:S','-:44587:S','-:446:S','-:447:S','-:4482:S','-:4486:S','-:457:S','-:443:C','-:444:C'],'except':['4387']} + bpvar21 + + + + + Dettes : Dettes sur immobilisations et comptes rattachés + {'load':['-:269:S','-:279:S','-:404:S','-:405:S','-:4084:S'], 'except':[]} + bpvar22 + + + + + Dettes : Autres dettes + {'load':['-:4196:S','-:4197:S','-:4198:S','-:464:S','-:467:C','-:4686:S','-:478:C','-:509:S'], 'except':[]} + bpvar23 + + + + + Dettes : Instruments de trésorerie + {'load':['-:52:S'], 'except':[]} + bpvar24 + + + + + Dettes : Produits constatés d'avance + {'load':['-:487:S'], 'except':[]} + bpvar25 + + + + + Passif : Écarts de conversion passif + {'load':['-:477:S'], 'except':[]} + bpvar26 + + + + + Charges d'exploitation : Achats de Marchandises + {'load':['+:607:S','+:6097:S'], 'except':[]} + cdrc1 + + + + + Charges d'exploitation : Achats de Marchandises, variation des stocks + {'load':['+:6037:S'], 'except':[]} + cdrc2 + + + + + Charges d'exploitation : Achats de matières premières et autres approvisionnements + {'load':['+:601:S','+:6091:S','+:602:S','+:6092:S','+:6081:S','+:6082:S'], 'except':[]} + cdrc3 + + + + + Charges d'exploitation : Achats de matières premières et autres approvisionnements, variation des stocks + {'load':['+:6031:S','+:6032:S'], 'except':[]} + cdrc4 + + + + + Charges d'exploitation : Autres achats et charges externes + {'load':['+:604:S','+:605:S','+:606:S','+:6094:S','+:6095:S','+:6096:S','+:61:S','+:62:S'], 'except':[]} + cdrc5 + + + + + Charges d'exploitation : Autres achats et charges externes, redevances de crédit-bail mobilier + {'load':['+:6122:S'], 'except':[]} + cdrc6 + + + + + Charges d'exploitation : Autres achats et charges externes, redevances de crédit-bail mobilier + {'load':['+:6125:S'], 'except':[]} + cdrc7 + + + + + Charges d'exploitation : Impôts, taxes et versements assimilés + {'load':['+:63:S'], 'except':[]} + cdrc8 + + + + + Charges d'exploitation : Salaires et traitements + {'load':['+:641:S','+:644:S','+:648:S'], 'except':[]} + cdrc9 + + + + + Charges d'exploitation : Charges sociales + {'load':['+:645:S','+:646:S','+:647:S'], 'except':[]} + cdrc10 + + + + + Charges d'exploitation : Dotation aux amortissements et aux dépréciations, sur immobilisations : dotations aux amortissements + {'load':['+:6811:S','+:6812:S'], 'except':[]} + cdrc11 + + + + + Charges d'exploitation : Dotation aux amortissements et aux dépréciations, sur immobilisations : dotations aux dépréciations + {'load':['+:6816:S'], 'except':[]} + cdrc12 + + + + + Charges d'exploitation : Dotation aux amortissements et aux dépréciations, sur actif circulant : dotations aux dépréciations + {'load':['+:6817:S'], 'except':[]} + cdrc13 + + + + + Charges d'exploitation : Dotations aux provisions + {'load':['+:6815:S'], 'except':[]} + cdrc14 + + + + + Charges d'exploitation : Autres charges + {'load':['+:65:S'], 'except':['655']} + cdrc15 + + + + + Charges : Quotes-parts de résultat sur opérations faites en commun + {'load':['+:655:S'], 'except':[]} + cdrc16 + + + + + Charges financières : Dotations aux amortissements, aux dépréciations et aux provisions + {'load':['+:686:S'], 'except':[]} + cdrc17 + + + + + Charges financières : Intérêts et charges assimilées + {'load':['+:66:S'], 'except':['666','667']} + cdrc18 + + + + + Charges financières : Différences négatives de change + {'load':['+:666:S'], 'except':[]} + cdrc19 + + + + + Charges financières : Charges nettes sur cessions de valeurs mobilières de placement + {'load':['+:667:S'], 'except':[]} + cdrc20 + + + + + Charges exceptionnelles : Sur opérations de gestion + {'load':['+:671:S'], 'except':[]} + cdrc21 + + + + + Charges exceptionnelles : Sur opérations en capital + {'load':['+:675:S','+:678:S'], 'except':[]} + cdrc22 + + + + + Charges exceptionnelles : Dotations aux amortissements, aux dépréciations et aux provisions + {'load':['+:687:S'], 'except':[]} + cdrc23 + + + + + Charges : Participation des salariés aux résultats + {'load':['+:691:S'], 'except':[]} + cdrc24 + + + + + Charges : Impôts sur les bénéfices + {'load':['+:69:S'], 'except':['691']} + cdrc25 + + + + + Produits d'exploitation : Vente de marchandises + {'load':['-:707:S','-:7097:S'], 'except':[]} + cdrp1 + + + + + Produits d'exploitation : Production vendue [biens et services] + {'load':['-:701:S','-:702:S','-:703:S','-:704:S','-:705:S','-:706:S','-:7091:S','-:7092:S','-:7093:S','-:7094:S','-:7095:S','-:7096:S','-:708:S'], 'except':[]} + cdrp2 + + + + + Produits d'exploitation : Production stockée + {'load':['-:713:S'], 'except':[]} + cdrp3 + + + + + Produits d'exploitation : Production immobilisée + {'load':['-:72:S'], 'except':[]} + cdrp4 + + + + + Produits d'exploitation : Subventions d'exploitation + {'load':['-:74:S'], 'except':[]} + cdrp5 + + + + + Produits d'exploitation : Reprises sur provisions, dépréciations (et amortissements) et transferts de charges + {'load':['-:781:S','-:791:S'], 'except':[]} + cdrp6 + + + + + Produits d'exploitation : Autres produits + {'load':['-:75:S'], 'except':['755']} + cdrp7 + + + + + Produits : Quotes-parts de résultat sur opérations faites en commun + {'load':['-:755:S'], 'except':[]} + cdrp8 + + + + + Produits financiers : De participation + {'load':['-:761:S'], 'except':[]} + cdrp9 + + + + + Produits financiers : D'autres valeurs mobilières et créances de l'actif immobilisé + {'load':['-:762:S'], 'except':[]} + cdrp10 + + + + + Produits financiers : Autres intérêts et produits assimilés + {'load':['-:763:S','-:764:S','-:765:S','-:768:S'], 'except':[]} + cdrp11 + + + + + Produits financiers : Reprises sur provisions, dépréciations et transferts de charges + {'load':['-:786:S','-:796:S'], 'except':[]} + cdrp12 + + + + + Produits financiers : Différences positives de change + {'load':['-:766:S'], 'except':[]} + cdrp13 + + + + + Produits financiers : Produits nets sur cessions de valeurs mobilières de placement + {'load':['-:767:S'], 'except':[]} + cdrp14 + + + + + Produits exceptionnels : Sur opérations de gestion + {'load':['-:771:S'], 'except':[]} + cdrp15 + + + + + Produits exceptionnels : Sur opérations en capital + {'load':['-:775:S','-:777:S','-:778:S'], 'except':[]} + cdrp16 + + + + + Produits exceptionnels : Reprises sur provisions, dépréciations et transferts de charges + {'load':['-:787:S','-:797:S'], 'except':[]} + cdrp17 + + + + + + diff --git a/addons/l10n_fr/fr_wizard.xml b/addons/l10n_fr/fr_wizard.xml index b6468872879..e84269fd279 100755 --- a/addons/l10n_fr/fr_wizard.xml +++ b/addons/l10n_fr/fr_wizard.xml @@ -7,11 +7,29 @@ - Generate Chart of Accounts from a Chart Template - Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated. -This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template. - - + Generate Chart of Accounts from a Chart Template + Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated. + This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template. + + + + + + + + + + diff --git a/addons/l10n_fr/l10n_fr.py b/addons/l10n_fr/l10n_fr.py new file mode 100644 index 00000000000..2654847aaee --- /dev/null +++ b/addons/l10n_fr/l10n_fr.py @@ -0,0 +1,57 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2008 Tiny SPRL (). All Rights Reserved +# $Id$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## + +from mx import DateTime +import time + +from osv import fields, osv +import pooler + + +class l10n_fr_report(osv.osv): + _name = 'l10n.fr.report' + _description = 'Report for l10n_fr' + _columns = { + 'code': fields.char('Code', size=64), + 'name': fields.char('Name', size=128), + 'line_ids': fields.one2many('l10n.fr.line', 'report_id', 'Lines'), + } + _sql_constraints = [ + ('code_uniq', 'unique (code)','The code report must be unique !') + ] +l10n_fr_report() + +class l10n_fr_line(osv.osv): + _name = 'l10n.fr.line' + _description = 'Report Lines for l10n_fr' + _columns = { + 'code': fields.char('Variable Name', size=64), + 'definition': fields.char('Definition', size=512), + 'name': fields.char('Name', size=256), + 'report_id': fields.many2one('l10n.fr.report', 'Report'), + } + _sql_constraints = [ + ('code_uniq', 'unique (code)', 'The variable name must be unique !') + ] +l10n_fr_line() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_fr/l10n_fr_view.xml b/addons/l10n_fr/l10n_fr_view.xml new file mode 100644 index 00000000000..095b1714286 --- /dev/null +++ b/addons/l10n_fr/l10n_fr_view.xml @@ -0,0 +1,47 @@ + + + + + + + + Rapports + l10n.fr.report + + + + + + Entrées + l10n.fr.line + tree + + + + + l10n.fr.line + l10n.fr.line + tree + + + + + + + + + + + l10n.fr.report + l10n.fr.report + tree + + + + + + + + + + \ No newline at end of file diff --git a/addons/l10n_fr/report/__init__.py b/addons/l10n_fr/report/__init__.py new file mode 100755 index 00000000000..c9ddc4485e7 --- /dev/null +++ b/addons/l10n_fr/report/__init__.py @@ -0,0 +1,30 @@ +############################################################################## +# +# Copyright (c) 2008 JAILLET Simon - CrysaLEAD - www.crysalead.fr +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +import base_report +import report_bilan +import report_cdr diff --git a/addons/l10n_fr/report/base_report.py b/addons/l10n_fr/report/base_report.py new file mode 100755 index 00000000000..755dcfadaf4 --- /dev/null +++ b/addons/l10n_fr/report/base_report.py @@ -0,0 +1,125 @@ +############################################################################## +# +# Copyright (c) 2008 JAILLET Simon - CrysaLEAD - www.crysalead.fr +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +import time +from report import report_sxw + +class base_report(report_sxw.rml_parse): + def __init__(self, cr, uid, name, context): + super(base_report, self).__init__(cr, uid, name, context) + self.localcontext.update( { + 'time': time, + '_load': self._load, + '_get_variable': self._get_variable, + '_set_variable': self._set_variable, + }) + self.context = context + + def _load(self,name,form): + fiscalyear=self.pool.get('account.fiscalyear').browse(self.cr, self.uid, form['fiscalyear']) + + periods=self.pool.get('account.period').search(self.cr, self.uid,[('fiscalyear_id','=',form['fiscalyear'])]) + period_query_cond=str(tuple(periods)) + + query = "SELECT MIN(date_start) AS date_start, MAX(date_stop) AS date_stop FROM account_period WHERE id IN "+str(period_query_cond) + self.cr.execute(query) + dates =self.cr.dictfetchall() + self._set_variable('date_start', dates[0]['date_start']) + self._set_variable('date_stop', dates[0]['date_stop']) + + query = "SELECT l10n_fr_line.code,definition FROM l10n_fr_line LEFT JOIN l10n_fr_report ON l10n_fr_report.id=report_id WHERE l10n_fr_report.code='"+name+"'" + self.cr.execute(query) + datas =self.cr.dictfetchall() + + for line in datas: + self._load_accounts(form,line['code'],eval(line['definition']),fiscalyear,period_query_cond) + + def _set_variable(self,variable,valeur): + self.localcontext.update({variable:valeur}) + + def _get_variable(self,variable): + return self.localcontext[variable] + + def _load_accounts(self,form,code,definition,fiscalyear,period_query_cond): + + #self.context.copy() + accounts={} + for x in definition['load']: + p=x.split(":") + accounts[p[1]]=[p[0],p[2]] + + sum=0.0 + + if fiscalyear.state!='done' or not code.startswith('bpcheck'): + + query_cond="(" + for account in accounts: + query_cond += "aa.code LIKE '"+account+"%' OR " + query_cond = query_cond[:-4]+")" + + if len(definition['except'])>0: + query_cond = query_cond+" and (" + for account in definition['except']: + query_cond += "aa.code NOT LIKE '"+account+"%' AND " + query_cond = query_cond[:-5]+")" + + closed_cond="" + + if fiscalyear.state=='done': + closed_cond=" AND (aml.move_id NOT IN (SELECT account_move.id as move_id FROM account_move WHERE period_id IN "+str(period_query_cond)+" AND journal_id=(SELECT res_id FROM ir_model_data WHERE name='closing_journal' AND module='l10n_fr')) OR (aa.type != 'income' AND aa.type !='expense'))" + + query = "SELECT aa.code AS code, SUM(debit) as debit, SUM(credit) as credit FROM account_move_line aml LEFT JOIN account_account aa ON aa.id=aml.account_id WHERE "+query_cond+closed_cond+" AND aml.state='valid' AND aml.period_id IN "+str(period_query_cond)+" GROUP BY code" + + self.cr.execute(query) + + lines =self.cr.dictfetchall() + + for line in lines: + for account in accounts: + if(line["code"].startswith(account)): + operator=accounts[account][0] + type=accounts[account][1] + + value=0.0 + + if(type=="S"): + value=line["debit"]-line["credit"] + elif(type=="D"): + value=line["debit"]-line["credit"] + if(value<0.001): value=0.0 + elif(type=="C"): + value=line["credit"]-line["debit"] + if(value<0.001): value=0.0 + + if(operator=='+'): + sum+=value + else: + sum-=value + + break + + self._set_variable(code, sum) diff --git a/addons/l10n_fr/report/report_bilan.py b/addons/l10n_fr/report/report_bilan.py new file mode 100755 index 00000000000..290735e8ee7 --- /dev/null +++ b/addons/l10n_fr/report/report_bilan.py @@ -0,0 +1,36 @@ +############################################################################## +# +# Copyright (c) 2008 JAILLET Simon - CrysaLEAD - www.crysalead.fr +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +import base_report +from report import report_sxw + +class bilan(base_report.base_report): + def __init__(self, cr, uid, name, context): + super(bilan, self).__init__(cr, uid, name, context) + +report_sxw.report_sxw('report.l10n.fr.bilan', 'account.move.line','addons/l10n_fr/report/report_bilan.rml', parser=bilan, header=False) + diff --git a/addons/l10n_fr/report/report_bilan.rml b/addons/l10n_fr/report/report_bilan.rml new file mode 100755 index 00000000000..a462f61404e --- /dev/null +++ b/addons/l10n_fr/report/report_bilan.rml @@ -0,0 +1,3 @@ + +[[ _load('bilan',data['form'])]][[ _set_variable('at1a',bavar1+bavar2+bavar3+bavar4+bavar5+bavar6+bavar7+bavar8+bavar9+bavar10+bavar11+bavar12+bavar13+bavar14+bavar15+bavar16+bavar17+bavar18+bavar19+bavar20)]][[ _set_variable('at1b', bavar2b+bavar3b+bavar4b+bavar5b+bavar6b+bavar7b+bavar9b+bavar10b+bavar11b+bavar12b+bavar13b+bavar15b+ bavar16b+bavar17b+bavar18b+bavar19b+bavar20b)]][[ _set_variable('at1', at1a+at1b)]][[ _set_variable('at2a', bavar21+bavar22+bavar23+bavar24+bavar25+bavar26+bavar27+bavar28+bavar29+bavar30+bavar31+bavar32+bavar33)]][[ _set_variable('at2b', bavar21b+bavar22b+bavar23b+bavar24b+bavar26b+bavar27b+bavar29b+bavar30b)]][[ _set_variable('at2', at2a+at2b)]][[ _set_variable('actif', at1+at2+bavar34+bavar35+bavar36)]][[ _set_variable('pt1', bpvar1+bpvar2+bpvar3+bpvar4+bpvar5+bpvar6+bpvar7+bpvar8+bpvar9+bpvar10+bpvar11+bpvar12)]][[ _set_variable('pt2', bpvar13+bpvar14)]][[ _set_variable('pt3', bpvar15+bpvar16+bpvar17+bpvar18+bpvar19+bpvar20+bpvar21+bpvar22+bpvar23+bpvar24+bpvar25)]][[ _set_variable('passif', pt1+pt2+pt3+bpvar26)]][[ company.name ]]au [[ time.strftime('%d-%m-%Y',time.strptime(date_stop,'%Y-%m-%d'))]]BilanImprimé le : [[ time.strftime('%d-%m-%Y') ]] Tenue de Compte : [[ company.currency_id.name ]]ACTIF BrutAmortissements et dépréciationsNetCapital souscrit - non appelé[[bavar1]] [[bavar1]]ACTIF IMMOBILISÉ IMMOBILISATIONS INCORPORELLES Frais d'établissement[[bavar2]][[-bavar2b]][[bavar2+bavar2b]]Frais de recherche et de développement[[bavar3]][[-bavar3b]][[bavar3+bavar3b]]Concessions, brevets, licences,..., droits et valeurs similaires[[bavar4]][[-bavar4b]][[bavar4+bavar4b]]Fonds commercial[[bavar5]][[-bavar5b]][[bavar5+bavar5b]]Autres[[bavar6]][[-bavar6b]][[bavar6+bavar6b]]Immobilisations incorporelles en cours[[bavar7]][[-bavar7b]][[bavar7+bavar7b]]Avances et acomptes[[bavar8]] [[bavar8]]IMMOBILISATIONS CORPORELLES Terrains[[bavar9]][[-bavar9b]][[bavar9+bavar9b]]Constructions[[bavar10]][[-bavar10b]][[bavar10+bavar10b]]Installations techniques,matériel et outillage[[bavar11]][[-bavar11b]][[bavar11+bavar11b]]Autres [[bavar12]][[-bavar12b]][[bavar12+bavar12b]]Immobilisations corporelles en cours[[bavar13]][[-bavar13b]][[bavar13+bavar13b]]Avances et acomptes[[bavar14]] [[bavar14]]IMMOBILISATIONS FINANCIÉRES Participations[[bavar15]][[-bavar15b]][[bavar15+bavar15b]]Créances rattachées à des participations[[bavar16]][[-bavar16b]][[bavar16+bavar16b]]Titres immobilisés de l'activité de portefeuille[[bavar17]][[-bavar17b]][[bavar17+bavar17b]]Autres titres immobilisés[[bavar18]][[-bavar18b]][[bavar18+bavar18b]]Prêts[[bavar19]][[-bavar19b]][[bavar19+bavar19b]]Autres[[bavar20]][[-bavar20b]][[bavar20+bavar20b]]TOTAL I[[at1a]][[-at1b]][[at1]]ACTIF CIRCULANT STOCK EN COURS Matières premières et autres approvisionnements[[bavar21]][[-bavar21b]][[bavar21+bavar21b]]En-cours de production [biens et services][[bavar22]][[-bavar22b]][[bavar22+bavar22b]]Produits intermédiaires et finis[[bavar23]][[-bavar23b]][[bavar23+bavar23b]]Marchandises[[bavar24]][[-bavar24b]][[bavar24+bavar24b]]Avances et acomptes versés sur commandes[[bavar25]] [[bavar25]]CRÉANCES Créances clients et comptes rattachés[[bavar26]][[-bavar26b]][[bavar26+bavar26b]]Autres[[bavar27]][[-bavar27b]][[bavar27+bavar27b]]Capital souscrit - appelé , non versé[[bavar28]] [[bavar28]]VALEURS MOBILIÈRES DE PLACEMENT Actions propres[[bavar29]][[-bavar29b]][[bavar29+bavar29b]]Autres titres[[bavar30]][[-bavar30b]][[bavar30+bavar30b]]Instruments de trésorerie[[bavar31]] [[bavar31]]Disponibilités[[bavar32]] [[bavar32]]Charges constatés d'avance[[bavar33]] [[bavar33]]TOTAL II[[at2a]][[-at2b]][[at2]]Charges à répartir sur plusieurs exercices ( III )[[bavar34]] [[bavar34]]Primes de remboursement des emprunts ( IV )[[bavar35]] [[bavar35]]Écarts de conversion actif ( V )[[bavar36]] [[bavar36]]TOTAL ACTIF ( I + II + III + IV + V )[[at1a+at2a]][[-at1b-at2b]][[actif]]PASSIFCAPITAUX PROPRES Capital [dont versé...][[bpvar1]]Primes d'émission, de fusion, d'apport[[bpvar2]]Écarts de réévaluation[[bpvar3]]Écart d'équivalence[[bpvar4]]RÉSERVES Réserve légale[[bpvar5]]Réserves statutaires ou contractuelles[[bpvar6]]Réserves réglementées[[bpvar7]]Autres réserves[[bpvar8]]Report à nouveau[[bpvar9]]RÉSULTAT DE L'EXERCICE [bénéfice ou perte][[bpvar10]]Subventions d'investissement[[bpvar11]]Provisions réglementées[[bpvar12]]TOTAL I[[pt1]]PROVISIONS Provisions pour risques[[bpvar13]]Provisions pour charges[[bpvar14]]TOTAL II[[pt2]]DETTES Emprunts obligataires convertibles[[bpvar15]]Autres emprunts obligataires[[bpvar16]]Emprunts et dettes auprès des établissements de crédit[[bpvar17]]Emprunts et dettes financières diverses[[bpvar18]]Avances et acomptes reçus sur commandes en cours[[bpvar19]]Dettes fournisseurs et comptes rattachés [[bpvar20]]Dettes fiscales et sociales[[bpvar21]]Dettes sur immobilisations et comptes rattachés[[bpvar22]]Autres dettes[[bpvar23]]Instruments de trésorerie[[bpvar24]]Produits constatés d'avance[[bpvar25]]TOTAL III[[pt3]]Écarts de conversion passif ( IV )[[bpvar26]]TOTAL GÉNÉRAL (I + II + III + IV)[[passif]]ACTIF - PASSIF[[round(actif-passif,2)]] [[ abs(bpcheck)<0.0001 and removeParentNode('para') ]] Attention, pour que votre bilan soit correct, vous devez solder les comptes 120 ou 129 (Résultat de l'exercice précédant) dans un compte de report à nouveau (compte 110 ou 119) ou dans le compte 108. Renseignez vous sur votre structure juridique et son fonctionnement comptable. + diff --git a/addons/l10n_fr/report/report_cdr.py b/addons/l10n_fr/report/report_cdr.py new file mode 100755 index 00000000000..ac884c1fabb --- /dev/null +++ b/addons/l10n_fr/report/report_cdr.py @@ -0,0 +1,36 @@ +############################################################################## +# +# Copyright (c) 2008 JAILLET Simon - CrysaLEAD - www.crysalead.fr +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +import base_report +from report import report_sxw + +class cdr(base_report.base_report): + def __init__(self, cr, uid, name, context): + super(cdr, self).__init__(cr, uid, name, context) + +report_sxw.report_sxw('report.l10n.fr.cdr', 'account.move.line','addons/l10n_fr/report/report_cdr.rml', parser=cdr, header=False) + diff --git a/addons/l10n_fr/report/report_cdr.rml b/addons/l10n_fr/report/report_cdr.rml new file mode 100755 index 00000000000..a311556c7d5 --- /dev/null +++ b/addons/l10n_fr/report/report_cdr.rml @@ -0,0 +1,655 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[[ _load('cdr',data['form'])]] +[[ _set_variable('ct1', cdrc1+cdrc2+cdrc3+cdrc4+cdrc5+cdrc6+cdrc7+cdrc8+cdrc9+cdrc10+cdrc11+cdrc12+cdrc13+cdrc14+cdrc15)]] +[[ _set_variable('ct3', cdrc17+cdrc18+cdrc19+cdrc20)]] +[[ _set_variable('ct4', cdrc21+cdrc22+cdrc23)]] +[[ _set_variable('charges', ct1+cdrc16+ct3+ct4+cdrc24+cdrc25)]] +[[ _set_variable('pta', cdrp1+cdrp2)]] +[[ _set_variable('ptb', cdrp3+cdrp4+cdrp5+cdrp6+cdrp7)]] +[[ _set_variable('pt1', pta+ptb)]] +[[ _set_variable('pt3', cdrp9+cdrp10+cdrp11+cdrp12+cdrp13+cdrp14)]] +[[ _set_variable('pt4', cdrp15+cdrp16+cdrp17)]] +[[ _set_variable('produits', pt1+cdrp8+pt3+pt4)]] + + + +[[ company.name ]] +période du [[ time.strftime('%d-%m-%Y',time.strptime(date_start,'%Y-%m-%d'))]] au [[ time.strftime('%d-%m-%Y',time.strptime(date_stop,'%Y-%m-%d'))]] + + +Compte de résultat + + +Imprimé le : [[ time.strftime('%d-%m-%Y') ]] + + + + + + + + + + + + + + +Tenue de Compte : [[ company.currency_id.name ]] + + + + + + + + + +CHARGES ( hors taxes ) + + + + + + + + + +CHARGES D'EXPLOITATION + + + + + + + + + +Achat de marchandises + + +[[ '%.2f' % cdrc1 ]] + + + + +Variation des stocks + + +[[cdrc2]] + + + + +Achats de matières premières et autres approvisionnements + + +[[cdrc3]] + + + + +Variation des stocks + + +[[cdrc4]] + + + + +Autres achats et charges externes + + +[[cdrc5]] + + + + +Redevances de crédit-bail mobilier + + +[[cdrc6]] + + + + +Redevances de crédit-bail immobilier + + +[[cdrc7]] + + + + +Impôts, taxes et versements assimilés + + +[[cdrc8]] + + + + +Salaires et traitements + + +[[cdrc9]] + + + + +Charges sociales + + +[[cdrc10]] + + + + +Dotation aux amortissements et aux dépréciations + + + + + + + + + +Sur immobilisations : dotations aux amortissements + + +[[cdrc11]] + + + + +Sur immobilisations : dotations aux dépréciations + + +[[cdrc12]] + + + + +Sur actif circulant : dotations aux dépréciations + + +[[cdrc13]] + + + + +Dotations aux provisions + + +[[cdrc14]] + + + + +Autres charges + + +[[cdrc15]] + + + + +TOTAL I + + +[[ct1]] + + + + +Quotes-parts de résultat sur opérations faites en commun ( II ) + + +[[cdrc16]] + + + + +CHARGES FINANCIÈRES + + + + + + + + + +Dotations aux amortissements, aux dépréciations et aux provisions + + +[[cdrc17]] + + + + +Intérêts et charges assimilées + + +[[cdrc18]] + + + + +Différences négatives de change + + +[[cdrc19]] + + + + +Charges nettes sur cessions de valeurs mobilières de placement + + +[[cdrc20]] + + + + +TOTAL III + + +[[ct3]] + + + + +CHARGES EXCEPTIONNELLES + + + + + + + + + +Sur opérations de gestion + + +[[cdrc21]] + + + + +Sur opérations en capital + + +[[cdrc22]] + + + + +Dotations aux amortissements, aux dépréciations et aux provisions + + +[[cdrc23]] + + + + +TOTAL IV + + +[[ct4]] + + + + +Participation des salariés aux résultats ( V ) + + + +[[cdrc24]] + + + + +Impôts sur les bénéfices ( VI ) + + + +[[cdrc25]] + + + + +TOTAL CHARGES ( I + II + III + IV+ V+ VI ) + + +[[charges]] + + + + + + + + + + + + + + + + +PRODUITS (hors taxes) + + + + + + + + + +PRODUITS D'EXPLOITATION + + + + + + + + + +Vente de marchandises + + +[[cdrp1]] + + + + +Production vendue [biens et services] + + +[[cdrp2]] + + + + +Sous-total A - Montant net du chiffre d'affaires + + +[[pta]] + + + + +Production stockée + + +[[cdrp3]] + + + + +Production immobilisée + + +[[cdrp4]] + + + + +Subventions d'exploitation + + +[[cdrp5]] + + + + +Reprises sur provisions, dépréciations (et amortissements) et transferts de charges + + +[[cdrp6]] + + + + +Autres produits + + +[[cdrp7]] + + + + +Sous-total B + + +[[ptb]] + + + + +TOTAL I ( A + B ) + + +[[pt1]] + + + + +Quotes-parts de résultat sur opérations faites en commun (II) + + +[[cdrp8]] + + + + +PRODUITS FINANCIERS + + + + + + + + + +De participation + + +[[cdrp9]] + + + + +D'autres valeurs mobilières et créances de l'actif immobilisé + + +[[cdrp10]] + + + + +Autres intérêts et produits assimilés + + +[[cdrp11]] + + + + +Reprises sur provisions, dépréciations et transferts de charges + + +[[cdrp12]] + + + + +Différences positives de change + + +[[cdrp13]] + + + + +Produits nets sur cessions de valeurs mobilières de placement + + +[[cdrp14]] + + + + +TOTAL III + + +[[pt3]] + + + + +PRODUITS EXCEPTIONNELS + + + + + + + + + +Sur opérations de gestion + + +[[cdrp15]] + + + + +Sur opérations en capital + + +[[cdrp16]] + + + + +Reprises sur provisions, dépréciations et transferts de charges + + +[[cdrp17]] + + + + +TOTAL IV + + +[[pt4]] + + + + +TOTAL DES PRODUITS ( I + II + III + IV ) + + +[[produits]] + + + + +PRODUITS - CHARGES + + +[[produits-charges]] + + + + + + + + + diff --git a/addons/l10n_fr/wizard/__init__.py b/addons/l10n_fr/wizard/__init__.py index 6d5ce39192d..baef99be2ee 100644 --- a/addons/l10n_fr/wizard/__init__.py +++ b/addons/l10n_fr/wizard/__init__.py @@ -21,6 +21,8 @@ ############################################################################## import wizard_chart_report +import wizard_bilan +import wizard_cdr # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_fr/wizard/wizard_bilan.py b/addons/l10n_fr/wizard/wizard_bilan.py new file mode 100755 index 00000000000..cec3bd9add4 --- /dev/null +++ b/addons/l10n_fr/wizard/wizard_bilan.py @@ -0,0 +1,57 @@ +############################################################################## +# +# Copyright (c) 2008 JAILLET Simon - CrysaLEAD - www.crysalead.fr +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +import wizard +import pooler + +dates_form = ''' +
+ +''' + +dates_fields = { + 'fiscalyear': {'string': 'Fiscal year', 'type': 'many2one', 'relation': 'account.fiscalyear', 'required': True} +} + +class wizard_report(wizard.interface): + def _get_defaults(self, cr, uid, data, context): + fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear') + data['form']['fiscalyear'] =fiscalyear_obj.find(cr, uid) + return data['form'] + + states = { + 'init': { + 'actions': [_get_defaults], + 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel'),('report','Print')]} + }, + 'report': { + 'actions': [], + 'result': {'type':'print', 'report':'l10n.fr.bilan', 'state':'end'} + } + } +wizard_report('l10n.fr.bilan.report') + diff --git a/addons/l10n_fr/wizard/wizard_cdr.py b/addons/l10n_fr/wizard/wizard_cdr.py new file mode 100755 index 00000000000..4ccfa908414 --- /dev/null +++ b/addons/l10n_fr/wizard/wizard_cdr.py @@ -0,0 +1,57 @@ +############################################################################## +# +# Copyright (c) 2008 JAILLET Simon - CrysaLEAD - www.crysalead.fr +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# This program is Free Software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +import wizard +import pooler + +dates_form = ''' +
+ +''' + +dates_fields = { + 'fiscalyear': {'string': 'Fiscal year', 'type': 'many2one', 'relation': 'account.fiscalyear', 'required': True} +} + +class wizard_report(wizard.interface): + def _get_defaults(self, cr, uid, data, context): + fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear') + data['form']['fiscalyear'] = fiscalyear_obj.find(cr, uid) + return data['form'] + + states = { + 'init': { + 'actions': [_get_defaults], + 'result': {'type':'form', 'arch':dates_form, 'fields':dates_fields, 'state':[('end','Cancel'),('report','Print')]} + }, + 'report': { + 'actions': [], + 'result': {'type':'print', 'report':'l10n.fr.cdr', 'state':'end'} + } + } +wizard_report('l10n.fr.cdr.report') + diff --git a/addons/mrp/__terp__.py b/addons/mrp/__terp__.py index b8cb6a2d3da..b5a8485b729 100644 --- a/addons/mrp/__terp__.py +++ b/addons/mrp/__terp__.py @@ -43,7 +43,7 @@ * Allows to browse Bill of Materials in complete structure that include child and phantom BoMs It supports complete integration and planification of stockable goods, - consumable of services. Services are completly integrated with the rest + consumable of services. Services are completely integrated with the rest of the software. For instance, you can set up a sub-contracting service in a BoM to automatically purchase on order the assembly of your production. diff --git a/addons/mrp_operations/__terp__.py b/addons/mrp_operations/__terp__.py index 8044ecc2e26..f523fc11487 100755 --- a/addons/mrp_operations/__terp__.py +++ b/addons/mrp_operations/__terp__.py @@ -30,7 +30,7 @@ This module adds state, date_start,date_stop in production order operation lines (in the "Workcenters" tab) State: draft, confirm, done, cancel - When finnishing/confirming,cancelling production orders set all state lines to the according state + When finishing/confirming,cancelling production orders set all state lines to the according state Create menus: Production Management > All Operations Production Management > All Operations > Operations To Do (state="confirm") @@ -48,7 +48,7 @@ must become done. The field delay is the delay(stop date - start date). - So that we can compare the theoric delay and real delay. + So that we can compare the theoretic delay and real delay. """, "init_xml" : [], diff --git a/addons/mrp_repair/__terp__.py b/addons/mrp_repair/__terp__.py index 4a8a5d556fd..5b5922edccb 100644 --- a/addons/mrp_repair/__terp__.py +++ b/addons/mrp_repair/__terp__.py @@ -28,7 +28,7 @@ * Add/remove products in the reparation * Impact for stocks * Invoicing (products and/or services) - * Warrenty concept + * Warranty concept * Repair quotation report * Notes for the technician and for the final customer """, diff --git a/addons/product/__terp__.py b/addons/product/__terp__.py index 1742af513ba..22ce2a766f2 100644 --- a/addons/product/__terp__.py +++ b/addons/product/__terp__.py @@ -32,18 +32,18 @@ Products support variants, different pricing methods, suppliers information, make to stock/order, different unit of measures, - packagins and properties. + packagings and properties. Pricelists supports: * Multiple-level of discount (by product, category, quantities) - * Compute price based on different criterions: + * Compute price based on different criteria: * Other pricelist, * Cost price, * List price, * Supplier price, ... Pricelists preferences by product and/or partners. - Print product labels with barcodes. + Print product labels with barcode. """, "update_xml" : [ "security/product_security.xml", diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py index 01749be89cb..9744f219df0 100644 --- a/addons/product/pricelist.py +++ b/addons/product/pricelist.py @@ -26,6 +26,7 @@ from osv import fields, osv from _common import rounding import time from tools import config +from tools.misc import ustr from tools.translate import _ class price_type(osv.osv): @@ -94,15 +95,14 @@ class product_pricelist(osv.osv): def name_get(self, cr, uid, ids, context={}): result= [] - for pl in self.browse(cr, uid, ids, context): - name = str(pl.name) + ' ('+ str(pl.currency_id.name) + ')' + name = pl.name + ' ('+ pl.currency_id.name + ')' result.append((pl.id,name)) return result def _get_currency(self, cr, uid, ctx): - comp = self.pool.get('res.users').browse(cr,uid,uid).company_id + comp = self.pool.get('res.users').browse(cr, uid, uid).company_id if not comp: comp_id = self.pool.get('res.company').search(cr, uid, [])[0] comp = self.pool.get('res.company').browse(cr, uid, comp_id) diff --git a/addons/product_margin/__terp__.py b/addons/product_margin/__terp__.py index 89021c66c10..38e2a23583b 100644 --- a/addons/product_margin/__terp__.py +++ b/addons/product_margin/__terp__.py @@ -26,7 +26,7 @@ "category":"Custom", "description": """ Adds a reporting menu in products that computes sales, purchases, margins -and others interresting indicators based on invoices. The wizard to launch +and others interesting indicators based on invoices. The wizard to launch the report has several options to help you get the data you need. """, "depends":["base","product","account"], diff --git a/addons/project/__terp__.py b/addons/project/__terp__.py index 3668c7d7470..d9dc457bce6 100644 --- a/addons/project/__terp__.py +++ b/addons/project/__terp__.py @@ -26,7 +26,8 @@ "website" : "http://www.openerp.com", "category" : "Generic Modules/Projects & Services", "depends" : ["product", "account", "hr", "process"], - "description": "Project management module that track multi-level projects, tasks, works done on tasks, eso. It is able to render planning, order tasks, eso.", + "description": """Project management module that track multi-level projects, tasks, works done on tasks, eso. It is able to render planning, + order tasks, delegate task, print gantt chart eso.""", "init_xml" : [], "demo_xml" : ["project_demo.xml"], "update_xml": [ diff --git a/addons/project_gtd/__terp__.py b/addons/project_gtd/__terp__.py index 19c3190e924..186545d11b5 100644 --- a/addons/project_gtd/__terp__.py +++ b/addons/project_gtd/__terp__.py @@ -27,7 +27,7 @@ "depends" : ["project"], "description": """ This module implements all concepts defined by the Getting Things Done -methodology. This world-wide used methodology is used for personnal +methodology. This world-wide used methodology is used for personal time management improvement. Getting Things Done (commonly abbreviated as GTD) is an action management diff --git a/addons/purchase/__terp__.py b/addons/purchase/__terp__.py index 780a37c3af0..fccccb21cd4 100644 --- a/addons/purchase/__terp__.py +++ b/addons/purchase/__terp__.py @@ -26,7 +26,8 @@ "website" : "http://www.openerp.com", "depends" : ["base", "account", "stock", "process"], "category" : "Generic Modules/Sales & Purchases", - "description": "Module for purchase management", + "description": """Module for purchase management + Request for quotation, Create Supplier Invoice, Print Order...""", "init_xml" : [], "demo_xml" : ["purchase_demo.xml", #"purchase_unit_test.xml" diff --git a/addons/report_crm/__terp__.py b/addons/report_crm/__terp__.py index c26590cbc30..d362231c368 100644 --- a/addons/report_crm/__terp__.py +++ b/addons/report_crm/__terp__.py @@ -26,7 +26,8 @@ "website" : "http://www.openerp.com", "depends" : ["crm"], "category" : "Generic Modules/CRM & SRM", - "description": "A module that adds new reports based on CRM cases.", + "description": """A module that adds new reports based on CRM cases. + Case By section, Case By category""", "init_xml" : [], "demo_xml" : [], "update_xml" : [ diff --git a/addons/report_document/__terp__.py b/addons/report_document/__terp__.py index 95413f05ac9..5e9c23da3b8 100644 --- a/addons/report_document/__terp__.py +++ b/addons/report_document/__terp__.py @@ -27,8 +27,8 @@ "category" : "Generic Modules/Document Management", "description": """ Reporting for the Document Management module: - * Files by my - * Files by all users + * My Files + * All users Files """, "init_xml" : [], "demo_xml" : [], diff --git a/addons/report_mrp/__terp__.py b/addons/report_mrp/__terp__.py index 11edbfad670..8e7638e2a41 100644 --- a/addons/report_mrp/__terp__.py +++ b/addons/report_mrp/__terp__.py @@ -26,7 +26,8 @@ "website": "http://www.openerp.com", "depends": ["mrp"], "category": "Generic Modules/Production", - "description": "A module that adds new reports based on MRP cases.", + "description": """A module that adds new reports based on MRP cases. + Workcenter loads, Weekly Stock value variation""", "init_xml": [], "demo_xml": [], "update_xml": [ diff --git a/addons/report_project/__terp__.py b/addons/report_project/__terp__.py index ad3cf74399f..7bd2e550fc5 100644 --- a/addons/report_project/__terp__.py +++ b/addons/report_project/__terp__.py @@ -26,7 +26,8 @@ "website" : "http://www.openerp.com", "depends" : ["project", "report_task"], "category" : "Generic Modules/Sales & Purchases", - "description": "A module that adds some reports on the sales", + "description": """A module that adds some reports on projects. + Closed Tasks (By User and By Project), Finished Task (By User and By Project)""", "init_xml" : [], "demo_xml" : [], "update_xml" : [ diff --git a/addons/sale_crm/__terp__.py b/addons/sale_crm/__terp__.py index 72fbe254e11..07ece4b18b2 100644 --- a/addons/sale_crm/__terp__.py +++ b/addons/sale_crm/__terp__.py @@ -34,9 +34,9 @@ case. The case is then closed and linked to the generated sale order. It also add a shortcut on one or several partners. -This shorcut allows you to generate a CRM case for the partners. +This shortcut allows you to generate a CRM case for the partners. -We sugest you to install this module if you installed both the sale and the +We suggest you to install this module if you installed both the sale and the crm_configuration modules. """, "init_xml" : [], diff --git a/addons/sale_journal/__terp__.py b/addons/sale_journal/__terp__.py index a258f5dac1a..fbc188239d5 100644 --- a/addons/sale_journal/__terp__.py +++ b/addons/sale_journal/__terp__.py @@ -35,9 +35,9 @@ "picking_journal_view_report.xml" ], "description" : """ - The sale journal modules allows you to categorize your + The sale journal modules allows you to categorise your sales and deliveries (packing lists) between different journals. - This module is very helpfull for bigger companies that + This module is very helpful for bigger companies that works by departments. You can use journal for different purposes, some examples: @@ -48,7 +48,7 @@ * draft, open, cancel, done. Batch operations can be processed on the different journals to - confirm all sales at once, to validate or invoice packings, ... + confirm all sales at once, to validate or invoice packing, ... It also supports batch invoicing methods that can be configured by partners and sales orders, examples: diff --git a/addons/scrum/__terp__.py b/addons/scrum/__terp__.py index 2dad532683d..0bb28321532 100644 --- a/addons/scrum/__terp__.py +++ b/addons/scrum/__terp__.py @@ -35,11 +35,11 @@ * Sprint backlog It adds some concepts to the project management module: - * Mid-term, long-term roadmaps - * Customers/functionnal requests, vs technical ones + * Mid-term, long-term road-map + * Customers/functional requests VS technical ones It also create a new reporting: - * Burndown chart + * Burn-down chart The scrum projects and tasks inherits from the real projects and tasks, so you can continue working on normal tasks that will also diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index f8f3837e06b..1a55d855865 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -834,6 +834,7 @@ domain="[('product_id','=',product_id)]" on_change="onchange_lot_id(prodlot_id,product_qty, location_id)"/> +