bzr revid: fp@tinyerp.com-20081229172857-rwpkla4hmala06vh
This commit is contained in:
Fabien Pinckaers 2008-12-29 18:28:57 +01:00
commit d47f1b6650
66 changed files with 2380 additions and 198 deletions

View File

@ -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",

View File

@ -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",

View File

@ -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.

View File

@ -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

View File

@ -19,7 +19,6 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
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}

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<report auto="True" id="payment_order1" model="payment.order" name="payement.order" rml="account_payment/report/order.rml" string="Payment Order"/>
<report auto="True" id="payment_order1" model="payment.order" name="payment.order" rml="account_payment/report/order.rml" string="Payment Order"/>
</data>
</openerp>

View File

@ -220,14 +220,14 @@
<notebook>
<page string="Payment">
<field name="order_id" select="1"/>
<field name="move_line_id" on_change="onchange_move_line(move_line_id,parent.mode, currency, company_currency)" select="1" domain="[('reconcile_id','=', False), ('credit', '>',0),('amount_to_pay','>',0)] "/>
<field name="move_line_id" on_change="onchange_move_line(move_line_id, False, currency, company_currency)" select="1" domain="[('reconcile_id','=', False), ('credit', '>',0),('amount_to_pay','>',0)] "/>
<separator colspan="4" string="Transaction Information"/>
<field name="date"/>
<group colspan="2">
<field name="amount_currency" select="2" on_change="onchange_amount(amount_currency,currency,comapny_currency)"/>
<field name="currency" nolabel="1"/>
</group>
<field name="partner_id" on_change="onchange_partner(partner_id)" select="1"/>
<field name="partner_id" on_change="onchange_partner(partner_id, False)" select="1"/>
<field domain="[('partner_id','=',partner_id)]" name="bank_id"/>
<separator colspan="2" string="Owner Account"/>
<separator colspan="2" string="Desitination Account"/>

View File

@ -31,4 +31,4 @@ class payment_order(report_sxw.rml_parse):
'time': time,
})
report_sxw.report_sxw('report.payment.order', 'payement.order', 'addons/account_payment/report/payment_order.rml', parser=payment_order,header=False)
report_sxw.report_sxw('report.payment.order', 'payment.order', 'addons/account_payment/report/payment_order.rml', parser=payment_order,header=False)

View File

@ -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 {}

View File

@ -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" : [ ],

View File

@ -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" : [ ],

View File

@ -57,7 +57,7 @@
<field name="view_type">form</field>
<field name="view_id" ref="view_account_report_bs_form"/>
</record>
<menuitem name="Balance Sheet Rrport Form" id="bs_report_action_form" action="acc_bs_report_action_form" parent="menu_finan_config_BSheet"/>
<menuitem name="Balance Sheet Report Form" id="bs_report_action_form" action="acc_bs_report_action_form" parent="menu_finan_config_BSheet"/>

View File

@ -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.

View File

@ -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.

View File

@ -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",

View File

@ -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"],

View File

@ -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",],

View File

@ -20,40 +20,70 @@
#
##############################################################################
import pooler
import os
from tools import config
class abstract_quality_check(object):
'''
This Class provide...
'''
#This float have to store the rating of the module.
#Used to compute the final score (average of all scores).
score = 0.0
#This char have to store the result.
#Used to display the result of the test.
result = ""
#This char have to store the result with more details.
#Used to provide more details if necessary.
result_details = ""
#This bool defines if the test can be run only if the module is installed.
#True => the module have to be installed.
#False => the module can be uninstalled.
bool_installed_only = True
# #This float have to store the rating of the module.
# #Used to compute the final score (average of all scores).
# score = 0.0
#
# #This char have to store the result.
# #Used to display the result of the test.
# result = ""
#
# #This char have to store the result with more details.
# #Used to provide more details if necessary.
# result_details = ""
#
# #This bool defines if the test can be run only if the module is installed.
# #True => the module have to be installed.
# #False => the module can be uninstalled.
# bool_installed_only = True
def __init__(self):
'''
this method should initialize the var
'''
raise 'Not Implemented'
#This float have to store the rating of the module.
#Used to compute the final score (average of all scores).
self.score = 0.0
def run_test(self, cr, uid, module_path=""):
#This char have to store the result.
#Used to display the result of the test.
self.result = ""
#This char have to store the result with more details.
#Used to provide more details if necessary.
self.result_details = ""
#This bool defines if the test can be run only if the module is installed.
#True => the module have to be installed.
#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="", module_state=""):
'''
this method should do the test and fill the score, result and result_details var
'''
raise 'Not Implemented'
# raise 'Not Implemented'
def get_objects(self, cr, uid, module):
# This function returns all object of the given module..
@ -77,5 +107,34 @@ class abstract_quality_check(object):
result_ids[obj] = ids
return result_ids
def format_table(self, test='', header=[], data_list=[]):
res_format = {}
if test=='method':
detail = ""
detail += "\n===Method Test===\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"
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]
return res_format
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -9,8 +9,20 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Result">
<separator string="Summary" colspan="4"/>
<field name="general_info" widget="text_wiki" nolabel="1" colspan="4" height="350" width="800"/>
<notebook>
<page string="Summary">
<!-- <separator string="Summary" colspan="4"/>-->
<field name="general_info" widget="text_wiki" nolabel="1" colspan="4" height="350" width="800"/>
</page>
<page string="Detail">
<!-- <separator string="Detail" colspan="4"/>-->
<field name="detail" widget="text_wiki" nolabel="1" colspan="4" height="350" width="800"/>
</page>
<page string="Verbose detail">
<!-- <separator string="Verbose detail" colspan="4"/>-->
<field name="verbose_detail" widget="text_wiki" nolabel="1" colspan="4" height="350" width="800"/>
</page>
</notebook>
</form>
</field>
</record>

View File

@ -30,23 +30,24 @@ import pooler
class quality_test(base_module_quality.abstract_quality_check):
def __init__(self):
self.result = """
===Method Test===:
This test checks if the module classes are raising exception when calling basic methods or no.
"""
super(quality_test, self).__init__()
# self.result = """
#===Method Test===:
#
#This test checks if the module classes are raising exception when calling basic methods or no.
#
#"""
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:
@ -71,13 +72,26 @@ This test checks if the module classes are raising exception when calling basic
temp.append('Exception')
ex_count += 1
result[obj] = temp
self.result += ('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-16s \n! %-20s \n! %-16s ') % ('Object Name'.ljust(40), 'search()'.ljust(16), 'fields_view_get()'.ljust(20), 'read()'.ljust(16))
for res in result:
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.result += ('{| border="1" cellspacing="0" cellpadding="5" align="left" \n! %-40s \n! %-16s \n! %-20s \n! %-16s ') % ('Object Name'.ljust(40), 'search()'.ljust(16), 'fields_view_get()'.ljust(20), 'read()'.ljust(16))
header_list = ['Object Name', 'search()', 'fields_view_get', 'read']
# for res in result:
# 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
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"
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

View File

@ -30,16 +30,17 @@ from base_module_quality import base_module_quality
class quality_test(base_module_quality.abstract_quality_check):
def __init__(self):
self.result = """
===Pylint Test===:
This test checks if the module satisfy the current coding standard used by OpenERP.
"""
super(quality_test, self).__init__()
# self.result = """
#===Pylint Test===:
#
# This test checks if the module satisfy the current coding standard used by OpenERP.
#
#"""
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:
@ -50,6 +51,9 @@ class quality_test(base_module_quality.abstract_quality_check):
n = 0
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)
@ -64,13 +68,28 @@ class quality_test(base_module_quality.abstract_quality_check):
try:
score += float(res[leftchar+1:rightchar])
self.result += file + ": " + res[leftchar+1:rightchar] + "/10\n"
# self.result += file + ": " + res[leftchar+1:rightchar] + "/10\n"
detail += file + ": " + res[leftchar+1:rightchar] + "/10\n"
except:
score += 0
self.result += file + ": Unable to parse the result. Check the details.\n"
# self.result += file + ": Unable to parse the result. Check the details.\n"
detail += file + ": Unable to parse the result. Check the details.\n"
self.result_details += res
self.score = n and score / n or score
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.
""" + "Score: " + str(self.score) + "/10\n"
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

View File

@ -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

View File

@ -34,74 +34,83 @@ from base_module_quality import base_module_quality
class quality_test(base_module_quality.abstract_quality_check):
def __init__(self):
self.result = """
===Speed Test===:
This test checks the speed of the module.
"""
super(quality_test, self).__init__()
# self.result = """
#===Speed Test===:
#
#This test checks the speed of the module.
#
#"""
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 (S)'.ljust(10), '1'.ljust(10), 'S/2'.ljust(10), 'S'.ljust(10), 'Complexity'.ljust(20))
# 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))
header_list = ['Object Name', 'Size-Number of Records (S)', '1', 'S/2', 'S', 'Complexity using query']
obj_list = self.get_objects(cr, uid, module_name)
obj_counter = 0
score = 0
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]
ids = ids[:100]
size = len(ids)
if size:
c1 = time.time()
c1 = cr.count
pool.get(obj).read(cr, uid, ids[0])
c2 = time.time()
base_time = c2 - c1
c1 = time.time()
pool.get(obj).read(cr, uid, ids[0])
code_base_complexity = cr.count - c1
pool.get(obj).read(cr, uid, ids[:size/2])
c2 = time.time()
halfsize_time = c2 - c1
c1 = time.time()
pool.get(obj).read(cr, uid, ids[:size/2])
code_half_complexity = cr.count - c1
pool.get(obj).read(cr, uid, ids)
c2 = time.time()
size_time = c2 - c1
pool.get(obj).read(cr, uid, ids)
code_size_complexity = cr.count - c1
if size < 5:
self.score += -2
self.result += ('\n|-\n| %s \n| %s \n| %s \n| %s \n| %s \n| %s ') % (obj, size, base_time, halfsize_time, size_time, "Warning! Not enough demo data")
# self.result += ('\n|-\n| %s \n| %s \n| %s \n| %s \n| %s \n| %s ') % (obj, size, code_base_complexity, code_half_complexity, code_size_complexity, "Warning! Not enough demo data")
list = [obj, size, code_base_complexity, code_half_complexity, code_size_complexity, "Warning! Not enough demo data"]
list1.append(list)
else:
tolerated_margin = 5/100
complexity = "not recognized"
if min(size_time,base_time,halfsize_time) != base_time:
if code_size_complexity <= (code_base_complexity + size):
complexity = "O(1)"
score += 10
score = 10
else:
k1 = (halfsize_time - base_time)*1000 / ((size/2) - 1)
k2 = (size_time - base_time)*1000 / ((size) - 1)
tmp = k1 * tolerated_margin
if (k1 - tmp) < k2 and k2 < (k1 + tmp):
complexity = "O(n)"
if round(tmp) == 0:
complexity = "O(1)"
score += 10
else:
score += 5
else:
complexity = "O(n²) or worst"
score += 0
self.result += ('\n|-\n| %s \n| %s \n| %s \n| %s \n| %s \n| %s ') % (obj, size, base_time, halfsize_time, size_time, complexity)
complexity = "O(n) or worst"
score = 0
# self.result += ('\n|-\n| %s \n| %s \n| %s \n| %s \n| %s \n| %s ') % (obj, size, code_base_complexity, code_half_complexity, code_size_complexity, complexity)
list = [obj, size, code_base_complexity, code_half_complexity, code_size_complexity, complexity]
list1.append(list)
else:
score += -5
self.result += ('\n|-\n| %s \n| %s \n| %s \n| %s \n| %s \n| %s ') % (obj, size, "", "", "", "Warning! Object has no demo data")
self.result += '\n|}\n'
# self.result += ('\n|-\n| %s \n| %s \n| %s \n| %s \n| %s \n| %s ') % (obj, size, "", "", "", "Warning! Object has no demo data")
list = [obj, size, "", "", "", "Warning! Object has no demo data"]
list1.append(list)
# self.result += '\n|}\n'
self.score = obj_counter and score/obj_counter or 0.0
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"
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:

View File

@ -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?
@ -56,34 +56,31 @@ class wiz_quality_check(osv.osv_memory):
# general_info = ""
_name = 'wizard.quality.check'
def _check(self, cr, uid, data, context={}):
string_ret = ""
string_detail = ""
from tools import config
data['ids'] = data.get('module_id', False)
pool = pooler.get_pool(cr.dbname)
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
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
def _check_detail(self, cr, uid, data, context={}):
return self.string_detail
# def _general_info(self, cr, uid, data, context={}):
# return self.general_info
@ -102,9 +99,12 @@ class wiz_quality_check(osv.osv_memory):
#~ },
_columns = {
'general_info': fields.text('General Info', readonly="1",),
'detail' : fields.text('Detail', readonly="1",),
'verbose_detail' : fields.text('Verbose Detail', readonly="1",)
}
_defaults = {
'general_info': _check
'general_info': _check,
'detail': _check_detail
}
wiz_quality_check()

View File

@ -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:

View File

@ -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"],

View File

@ -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"],

View File

@ -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" : [

View File

@ -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" : [

View File

@ -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" : [],

View File

@ -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:

View File

@ -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"],

View File

@ -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" : [

View File

@ -20,7 +20,9 @@
#
##############################################################################
import l10n_fr
import wizard
import report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -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
}

930
addons/l10n_fr/fr_data.xml Normal file
View File

@ -0,0 +1,930 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="1">
<record id="pcg_bilan" model="l10n.fr.report">
<field name="name">Bilan Comptable</field>
<field name="code">bilan</field>
</record>
<record id="pcg_cdr" model="l10n.fr.report">
<field name="name">Compte de Résultat</field>
<field name="code">cdr</field>
</record>
<record id="pcg_bavar1" model="l10n.fr.line">
<field name="name">Actif : Capital souscrit - non appelé</field>
<field name="definition">{'load':['+:109:S'], 'except':[]}</field>
<field name="code">bavar1</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar2" model="l10n.fr.line">
<field name="name">Immobilisations incorporelles : Frais d'établissement</field>
<field name="definition">{'load':['+:201:S'], 'except':[]}</field>
<field name="code">bavar2</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar2b" model="l10n.fr.line">
<field name="name">Immobilisations incorporelles : Frais d'établissement (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2801:S'], 'except':[]}</field>
<field name="code">bavar2b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar3" model="l10n.fr.line">
<field name="name">Immobilisations incorporelles : Frais de recherche et de développement</field>
<field name="definition">{'load':['+:203:S'], 'except':[]}</field>
<field name="code">bavar3</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar3b" model="l10n.fr.line">
<field name="name">Immobilisations incorporelles : Frais de recherche et de développement (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2803:S'], 'except':[]}</field>
<field name="code">bavar3b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar4" model="l10n.fr.line">
<field name="name">Immobilisations incorporelles : Concessions, brevets, licences, marques, droits et valeurs similaires</field>
<field name="definition">{'load':['+:205:S'], 'except':[]}</field>
<field name="code">bavar4</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar4b" model="l10n.fr.line">
<field name="name">Immobilisations incorporelles : Concessions, brevets, licences, marques, droits et valeurs similaires (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2805:S','+:2905:S'], 'except':[]}</field>
<field name="code">bavar4b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar5" model="l10n.fr.line">
<field name="name">Immobilisations incorporelles : Fonds commercial</field>
<field name="definition">{'load':['+:206:S','+:207:S'], 'except':[]}</field>
<field name="code">bavar5</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar5b" model="l10n.fr.line">
<field name="name">Immobilisations incorporelles : Fonds commercial (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2807:S','+:2907:S'], 'except':[]}</field>
<field name="code">bavar5b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar6" model="l10n.fr.line">
<field name="name">Immobilisations incorporelles : Autres</field>
<field name="definition">{'load':['+:208:S'], 'except':[]}</field>
<field name="code">bavar6</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar6b" model="l10n.fr.line">
<field name="name">Immobilisations incorporelles : Autres (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2808:S','+:2908:S'], 'except':[]}</field>
<field name="code">bavar6b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar7" model="l10n.fr.line">
<field name="name">Immobilisations incorporelles : Immobilisations incorporelles en cours</field>
<field name="definition">{'load':['+:232:S'], 'except':[]}</field>
<field name="code">bavar7</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar7b" model="l10n.fr.line">
<field name="name">Immobilisations incorporelles : Immobilisations incorporelles en cours (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2932:S'], 'except':[]}</field>
<field name="code">bavar7b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar8" model="l10n.fr.line">
<field name="name">Immobilisations incorporelles : Avances et acomptes</field>
<field name="definition">{'load':['+:237:S'], 'except':[]}</field>
<field name="code">bavar8</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar9" model="l10n.fr.line">
<field name="name">Immobilisations corporelles : Terrains</field>
<field name="definition">{'load':['+:211:S','+:212:S'], 'except':[]}</field>
<field name="code">bavar9</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar9b" model="l10n.fr.line">
<field name="name">Immobilisations corporelles : Terrains (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2811:S','+:2812:S','+:2911:S'], 'except':[]}</field>
<field name="code">bavar9b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar10" model="l10n.fr.line">
<field name="name">Immobilisations corporelles : Constructions</field>
<field name="definition">{'load':['+:213:S','+:214:S'], 'except':[]}</field>
<field name="code">bavar10</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar10b" model="l10n.fr.line">
<field name="name">Immobilisations corporelles : Constructions (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2813:S','+:2814:S'], 'except':[]}</field>
<field name="code">bavar10b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar11" model="l10n.fr.line">
<field name="name">Immobilisations corporelles : Installations techniques,matériel et outillage</field>
<field name="definition">{'load':['+:215:S'], 'except':[]}</field>
<field name="code">bavar11</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar11b" model="l10n.fr.line">
<field name="name">Immobilisations corporelles : Installations techniques,matériel et outillage (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2815:S'], 'except':[]}</field>
<field name="code">bavar11b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar12" model="l10n.fr.line">
<field name="name">Immobilisations corporelles : Autres</field>
<field name="definition">{'load':['+:218:S'], 'except':[]}</field>
<field name="code">bavar12</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar12b" model="l10n.fr.line">
<field name="name">Immobilisations corporelles : Autres (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2818:S','+:282:S'], 'except':[]}</field>
<field name="code">bavar12b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar13" model="l10n.fr.line">
<field name="name">Immobilisations corporelles : Immobilisations corporelles en cours</field>
<field name="definition">{'load':['+:231:S'], 'except':[]}</field>
<field name="code">bavar13</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar13b" model="l10n.fr.line">
<field name="name">Immobilisations corporelles : Immobilisations corporelles : Immobilisations corporelles en cours (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2931:S'], 'except':[]}</field>
<field name="code">bavar13b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar14" model="l10n.fr.line">
<field name="name">Immobilisations corporelles : Avances et acomptes</field>
<field name="definition">{'load':['+:238:S'], 'except':[]}</field>
<field name="code">bavar14</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar15" model="l10n.fr.line">
<field name="name">Immobilisations financiéres : Participations</field>
<field name="definition">{'load':['+:261:S','+:262:S','+:266:S'], 'except':[]}</field>
<field name="code">bavar15</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar15b" model="l10n.fr.line">
<field name="name">Immobilisations financiéres : Participations (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2961:S','+:2966:S'], 'except':[]}</field>
<field name="code">bavar15b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar16" model="l10n.fr.line">
<field name="name">Immobilisations financiéres : Créances rattachées à des participations</field>
<field name="definition">{'load':['+:267:S','+:268:S'], 'except':[]}</field>
<field name="code">bavar16</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar16b" model="l10n.fr.line">
<field name="name">Immobilisations financiéres : Créances rattachées à des participations (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2967:S'], 'except':[]}</field>
<field name="code">bavar16b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar17" model="l10n.fr.line">
<field name="name">Immobilisations financiéres : Titres immobilisés de l'activité de portefeuille</field>
<field name="definition">{'load':['+:273:S'], 'except':[]}</field>
<field name="code">bavar17</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar17b" model="l10n.fr.line">
<field name="name">Immobilisations financiéres : Titres immobilisés de l'activité de portefeuille (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2973:S'], 'except':[]}</field>
<field name="code">bavar17b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar18" model="l10n.fr.line">
<field name="name">Immobilisations financiéres : Autres titres immobilisés</field>
<field name="definition">{'load':['+:271:S','+:272:S','+:27682:S'], 'except':[]}</field>
<field name="code">bavar18</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar18b" model="l10n.fr.line">
<field name="name">Immobilisations financiéres : Autres titres immobilisés (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2971:S','+:2972:S'], 'except':[]}</field>
<field name="code">bavar18b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar19" model="l10n.fr.line">
<field name="name">Immobilisations financiéres : Prêts</field>
<field name="definition">{'load':['+:274:S','+:27684:S'], 'except':[]}</field>
<field name="code">bavar19</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar19b" model="l10n.fr.line">
<field name="name">Immobilisations financiéres : Prêts (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2974:S'], 'except':[]}</field>
<field name="code">bavar19b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar20" model="l10n.fr.line">
<field name="name">Immobilisations financiéres : Autres</field>
<field name="definition">{'load':['+:275:S','+:276:S'], 'except':['27682','27684']}</field>
<field name="code">bavar20</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar20b" model="l10n.fr.line">
<field name="name">Immobilisations financiéres : Autres (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:2975:S','+:2976:S'], 'except':[]}</field>
<field name="code">bavar20b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar21" model="l10n.fr.line">
<field name="name">Stock en cours : Matières premières et autres approvisionnements</field>
<field name="definition">{'load':['+:31:S','+:32:S'], 'except':[]}</field>
<field name="code">bavar21</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar21b" model="l10n.fr.line">
<field name="name">Stock en cours : Matières premières et autres approvisionnements (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:391:S','+:392:S'], 'except':[]}</field>
<field name="code">bavar21b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar22" model="l10n.fr.line">
<field name="name">Stock en cours : En-cours de production [biens et services]</field>
<field name="definition">{'load':['+:33:S','+:34:S'], 'except':[]}</field>
<field name="code">bavar22</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar22b" model="l10n.fr.line">
<field name="name">Stock en cours : En-cours de production [biens et services] (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:393:S','+:394:S'], 'except':[]}</field>
<field name="code">bavar22b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar23" model="l10n.fr.line">
<field name="name">Stock en cours : Produits intermédiaires et finis</field>
<field name="definition">{'load':['+:35:S'], 'except':[]}</field>
<field name="code">bavar23</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar23b" model="l10n.fr.line">
<field name="name">Stock en cours : Produits intermédiaires et finis (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:395:S'], 'except':[]}</field>
<field name="code">bavar23b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar24" model="l10n.fr.line">
<field name="name">Stock en cours : Marchandises</field>
<field name="definition">{'load':['+:37:S'], 'except':[]}</field>
<field name="code">bavar24</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar24b" model="l10n.fr.line">
<field name="name">Stock en cours : Marchandises (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:397:S'], 'except':[]}</field>
<field name="code">bavar24b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar25" model="l10n.fr.line">
<field name="name">Stock en cours : Avances et acomptes versés sur commandes</field>
<field name="definition">{'load':['+:4091:S'], 'except':[]}</field>
<field name="code">bavar25</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar26" model="l10n.fr.line">
<field name="name">Créances : Créances clients et comptes rattachés</field>
<field name="definition">{'load':['+:411:S','+:413:S','+:416:S','+:418:S'], 'except':[]}</field>
<field name="code">bavar26</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar26b" model="l10n.fr.line">
<field name="name">Créances : Créances clients et comptes rattachés (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:491:S'], 'except':[]}</field>
<field name="code">bavar26b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar27" model="l10n.fr.line">
<field name="name">Créances : Autres</field>
<field name="definition">{'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']}</field>
<field name="code">bavar27</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar27b" model="l10n.fr.line">
<field name="name">Créances : Autres (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:495:S','+:496:S'], 'except':[]}</field>
<field name="code">bavar27b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar28" model="l10n.fr.line">
<field name="name">Créances : Capital souscrit - appelé , non versé</field>
<field name="definition">{'load':['+:4562:S'], 'except':[]}</field>
<field name="code">bavar28</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar29" model="l10n.fr.line">
<field name="name">Valeurs mobilières de placement : Actions propres</field>
<field name="definition">{'load':['+:502:S'], 'except':[]}</field>
<field name="code">bavar29</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar29b" model="l10n.fr.line">
<field name="name">Valeurs mobilières de placement : Actions propres (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:5903:S'], 'except':[]}</field>
<field name="code">bavar29b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar30" model="l10n.fr.line">
<field name="name">Valeurs mobilières de placement : Autres titres</field>
<field name="definition">{'load':['+:50:S'], 'except':['502','509']}</field>
<field name="code">bavar30</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar30b" model="l10n.fr.line">
<field name="name">Valeurs mobilières de placement : Autres titres (Amortissements et dépréciations)</field>
<field name="definition">{'load':['+:590:S'], 'except':['5903']}</field>
<field name="code">bavar30b</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar31" model="l10n.fr.line">
<field name="name">Actif circulant : Instruments de trésorerie</field>
<field name="definition">{'load':['+:52:S'], 'except':[]}</field>
<field name="code">bavar31</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar32" model="l10n.fr.line">
<field name="name">Actif circulant : Disponibilités</field>
<field name="definition">{'load':['+:51:D','+:53:S','+:54:S'], 'except':['5181','519']}</field>
<field name="code">bavar32</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar33" model="l10n.fr.line">
<field name="name">Actif circulant : Charges constatés d'avance</field>
<field name="definition">{'load':['+:486:S'], 'except':[]}</field>
<field name="code">bavar33</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar34" model="l10n.fr.line">
<field name="name">Actif : Charges à répartir sur plusieurs exercices</field>
<field name="definition">{'load':['+:481:S'], 'except':[]}</field>
<field name="code">bavar34</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar35" model="l10n.fr.line">
<field name="name">Actif : Primes de remboursement des emprunts</field>
<field name="definition">{'load':['+:169:S'], 'except':[]}</field>
<field name="code">bavar35</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bavar36" model="l10n.fr.line">
<field name="name">Actif : Écarts de conversion actif</field>
<field name="definition">{'load':['+:476:S'], 'except':[]}</field>
<field name="code">bavar36</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar1" model="l10n.fr.line">
<field name="name">Capitaux propres : Capital [dont versé...]</field>
<field name="definition">{'load':['-:101:S','-:108:S'], 'except':[]}</field>
<field name="code">bpvar1</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar2" model="l10n.fr.line">
<field name="name">Capitaux propres : Primes d'émission, de fusion, d'apport</field>
<field name="definition">{'load':['-:104:S'], 'except':[]}</field>
<field name="code">bpvar2</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar3" model="l10n.fr.line">
<field name="name">Capitaux propres : Écarts de réévaluation</field>
<field name="definition">{'load':['-:105:S'], 'except':[]}</field>
<field name="code">bpvar3</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar4" model="l10n.fr.line">
<field name="name">Capitaux propres : Écart d'équivalence</field>
<field name="definition">{'load':['-:107:S'], 'except':[]}</field>
<field name="code">bpvar4</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar5" model="l10n.fr.line">
<field name="name">Réserves : Réserve légale</field>
<field name="definition">{'load':['-:1061:S'], 'except':[]}</field>
<field name="code">bpvar5</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar6" model="l10n.fr.line">
<field name="name">Réserves : Réserves statutaires ou contractuelles</field>
<field name="definition">{'load':['-:1063:S'], 'except':[]}</field>
<field name="code">bpvar6</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar7" model="l10n.fr.line">
<field name="name">Réserves : Réserves réglementées</field>
<field name="definition">{'load':['-:1062:S','-:1064:S'], 'except':[]}</field>
<field name="code">bpvar7</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar8" model="l10n.fr.line">
<field name="name">Réserves : Autres réserves</field>
<field name="definition">{'load':['-:1068:S'], 'except':[]}</field>
<field name="code">bpvar8</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar9" model="l10n.fr.line">
<field name="name">Capitaux propres : Report à nouveau</field>
<field name="definition">{'load':['-:110:S','-:119:S'], 'except':[]}</field>
<field name="code">bpvar9</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar10" model="l10n.fr.line">
<field name="name">Capitaux propres : Résultat de l'exercice</field>
<!--
<field name="definition">{'load':['-:120:S','-:129:S'], 'except':[]}</field>
-->
<field name="definition">{'load':['-:7:S','-:6:S'], 'except':[]}</field>
<field name="code">bpvar10</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpcheck" model="l10n.fr.line">
<field name="name">Capitaux propres : Résultat de l'exercice (Vérification)</field>
<field name="definition">{'load':['-:120:S','-:129:S'], 'except':[]}</field>
<field name="code">bpcheck</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar11" model="l10n.fr.line">
<field name="name">Capitaux propres : Subventions d'investissement</field>
<field name="definition">{'load':['-:13:S'], 'except':[]}</field>
<field name="code">bpvar11</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar12" model="l10n.fr.line">
<field name="name">Capitaux propres : Provisions réglementées</field>
<field name="definition">{'load':['-:14:S'], 'except':[]}</field>
<field name="code">bpvar12</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar13" model="l10n.fr.line">
<field name="name">Provisions : Provisions pour risques</field>
<field name="definition">{'load':['-:151:S'], 'except':[]}</field>
<field name="code">bpvar13</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar14" model="l10n.fr.line">
<field name="name">Provisions : Provisions pour charges</field>
<field name="definition">{'load':['-:15:S'], 'except':['151']}</field>
<field name="code">bpvar14</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar15" model="l10n.fr.line">
<field name="name">Dettes : Emprunts obligataires convertibles</field>
<field name="definition">{'load':['-:161:S','-:16881:S'], 'except':[]}</field>
<field name="code">bpvar15</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar16" model="l10n.fr.line">
<field name="name">Dettes : Autres emprunts obligataires</field>
<field name="definition">{'load':['-:163:S','-:16883:S'], 'except':[]}</field>
<field name="code">bpvar16</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar17" model="l10n.fr.line">
<field name="name">Dettes : Emprunts et dettes auprès des établissements de crédit</field>
<field name="definition">{'load':['-:164:S','-:16884:S','-:519:S','-:5181:S','-:512:C','-:514:C','-:517:C'], 'except':[]}</field>
<field name="code">bpvar17</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar18" model="l10n.fr.line">
<field name="name">Dettes : Emprunts et dettes financières diverses</field>
<field name="definition">{'load':['-:165:S','-:166:S','-:1675:S','-:168:S','-:17:S','-:426:S','-:45:C'], 'except':['16881','16883','16884','457']}</field>
<field name="code">bpvar18</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar19" model="l10n.fr.line">
<field name="name">Dettes : Avances et acomptes reçus sur commandes en cours</field>
<field name="definition">{'load':['-:4191:S'], 'except':[]}</field>
<field name="code">bpvar19</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar20" model="l10n.fr.line">
<field name="name">Dettes : Dettes fournisseurs et comptes rattachés</field>
<field name="definition">{'load':['-:401:S','-:403:S','-:4081:S','-:4088:S'], 'except':[]}</field>
<field name="code">bpvar20</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar21" model="l10n.fr.line">
<field name="name">Dettes : Dettes fiscales et sociales</field>
<field name="definition">{'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']}</field>
<field name="code">bpvar21</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar22" model="l10n.fr.line">
<field name="name">Dettes : Dettes sur immobilisations et comptes rattachés </field>
<field name="definition">{'load':['-:269:S','-:279:S','-:404:S','-:405:S','-:4084:S'], 'except':[]}</field>
<field name="code">bpvar22</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar23" model="l10n.fr.line">
<field name="name">Dettes : Autres dettes</field>
<field name="definition">{'load':['-:4196:S','-:4197:S','-:4198:S','-:464:S','-:467:C','-:4686:S','-:478:C','-:509:S'], 'except':[]}</field>
<field name="code">bpvar23</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar24" model="l10n.fr.line">
<field name="name">Dettes : Instruments de trésorerie</field>
<field name="definition">{'load':['-:52:S'], 'except':[]}</field>
<field name="code">bpvar24</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar25" model="l10n.fr.line">
<field name="name">Dettes : Produits constatés d'avance</field>
<field name="definition">{'load':['-:487:S'], 'except':[]}</field>
<field name="code">bpvar25</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_bpvar26" model="l10n.fr.line">
<field name="name">Passif : Écarts de conversion passif</field>
<field name="definition">{'load':['-:477:S'], 'except':[]}</field>
<field name="code">bpvar26</field>
<field name="report_id" ref="pcg_bilan"/>
</record>
<record id="pcg_cdrc1" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Achats de Marchandises</field>
<field name="definition">{'load':['+:607:S','+:6097:S'], 'except':[]}</field>
<field name="code">cdrc1</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc2" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Achats de Marchandises, variation des stocks</field>
<field name="definition">{'load':['+:6037:S'], 'except':[]}</field>
<field name="code">cdrc2</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc3" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Achats de matières premières et autres approvisionnements</field>
<field name="definition">{'load':['+:601:S','+:6091:S','+:602:S','+:6092:S','+:6081:S','+:6082:S'], 'except':[]}</field>
<field name="code">cdrc3</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc4" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Achats de matières premières et autres approvisionnements, variation des stocks</field>
<field name="definition">{'load':['+:6031:S','+:6032:S'], 'except':[]}</field>
<field name="code">cdrc4</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc5" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Autres achats et charges externes</field>
<field name="definition">{'load':['+:604:S','+:605:S','+:606:S','+:6094:S','+:6095:S','+:6096:S','+:61:S','+:62:S'], 'except':[]}</field>
<field name="code">cdrc5</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc6" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Autres achats et charges externes, redevances de crédit-bail mobilier</field>
<field name="definition">{'load':['+:6122:S'], 'except':[]}</field>
<field name="code">cdrc6</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc7" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Autres achats et charges externes, redevances de crédit-bail mobilier</field>
<field name="definition">{'load':['+:6125:S'], 'except':[]}</field>
<field name="code">cdrc7</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc8" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Impôts, taxes et versements assimilés</field>
<field name="definition">{'load':['+:63:S'], 'except':[]}</field>
<field name="code">cdrc8</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc9" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Salaires et traitements</field>
<field name="definition">{'load':['+:641:S','+:644:S','+:648:S'], 'except':[]}</field>
<field name="code">cdrc9</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc10" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Charges sociales</field>
<field name="definition">{'load':['+:645:S','+:646:S','+:647:S'], 'except':[]}</field>
<field name="code">cdrc10</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc11" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Dotation aux amortissements et aux dépréciations, sur immobilisations : dotations aux amortissements</field>
<field name="definition">{'load':['+:6811:S','+:6812:S'], 'except':[]}</field>
<field name="code">cdrc11</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc12" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Dotation aux amortissements et aux dépréciations, sur immobilisations : dotations aux dépréciations</field>
<field name="definition">{'load':['+:6816:S'], 'except':[]}</field>
<field name="code">cdrc12</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc13" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Dotation aux amortissements et aux dépréciations, sur actif circulant : dotations aux dépréciations</field>
<field name="definition">{'load':['+:6817:S'], 'except':[]}</field>
<field name="code">cdrc13</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc14" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Dotations aux provisions</field>
<field name="definition">{'load':['+:6815:S'], 'except':[]}</field>
<field name="code">cdrc14</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc15" model="l10n.fr.line">
<field name="name">Charges d'exploitation : Autres charges</field>
<field name="definition">{'load':['+:65:S'], 'except':['655']}</field>
<field name="code">cdrc15</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc16" model="l10n.fr.line">
<field name="name">Charges : Quotes-parts de résultat sur opérations faites en commun</field>
<field name="definition">{'load':['+:655:S'], 'except':[]}</field>
<field name="code">cdrc16</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc17" model="l10n.fr.line">
<field name="name">Charges financières : Dotations aux amortissements, aux dépréciations et aux provisions</field>
<field name="definition">{'load':['+:686:S'], 'except':[]}</field>
<field name="code">cdrc17</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc18" model="l10n.fr.line">
<field name="name">Charges financières : Intérêts et charges assimilées</field>
<field name="definition">{'load':['+:66:S'], 'except':['666','667']}</field>
<field name="code">cdrc18</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc19" model="l10n.fr.line">
<field name="name">Charges financières : Différences négatives de change</field>
<field name="definition">{'load':['+:666:S'], 'except':[]}</field>
<field name="code">cdrc19</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc20" model="l10n.fr.line">
<field name="name">Charges financières : Charges nettes sur cessions de valeurs mobilières de placement</field>
<field name="definition">{'load':['+:667:S'], 'except':[]}</field>
<field name="code">cdrc20</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc21" model="l10n.fr.line">
<field name="name">Charges exceptionnelles : Sur opérations de gestion</field>
<field name="definition">{'load':['+:671:S'], 'except':[]}</field>
<field name="code">cdrc21</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc22" model="l10n.fr.line">
<field name="name">Charges exceptionnelles : Sur opérations en capital</field>
<field name="definition">{'load':['+:675:S','+:678:S'], 'except':[]}</field>
<field name="code">cdrc22</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc23" model="l10n.fr.line">
<field name="name">Charges exceptionnelles : Dotations aux amortissements, aux dépréciations et aux provisions</field>
<field name="definition">{'load':['+:687:S'], 'except':[]}</field>
<field name="code">cdrc23</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc24" model="l10n.fr.line">
<field name="name">Charges : Participation des salariés aux résultats</field>
<field name="definition">{'load':['+:691:S'], 'except':[]}</field>
<field name="code">cdrc24</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrc25" model="l10n.fr.line">
<field name="name">Charges : Impôts sur les bénéfices</field>
<field name="definition">{'load':['+:69:S'], 'except':['691']}</field>
<field name="code">cdrc25</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp1" model="l10n.fr.line">
<field name="name">Produits d'exploitation : Vente de marchandises</field>
<field name="definition">{'load':['-:707:S','-:7097:S'], 'except':[]}</field>
<field name="code">cdrp1</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp2" model="l10n.fr.line">
<field name="name">Produits d'exploitation : Production vendue [biens et services]</field>
<field name="definition">{'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':[]}</field>
<field name="code">cdrp2</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp3" model="l10n.fr.line">
<field name="name">Produits d'exploitation : Production stockée</field>
<field name="definition">{'load':['-:713:S'], 'except':[]}</field>
<field name="code">cdrp3</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp4" model="l10n.fr.line">
<field name="name">Produits d'exploitation : Production immobilisée</field>
<field name="definition">{'load':['-:72:S'], 'except':[]}</field>
<field name="code">cdrp4</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp5" model="l10n.fr.line">
<field name="name">Produits d'exploitation : Subventions d'exploitation</field>
<field name="definition">{'load':['-:74:S'], 'except':[]}</field>
<field name="code">cdrp5</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp6" model="l10n.fr.line">
<field name="name">Produits d'exploitation : Reprises sur provisions, dépréciations (et amortissements) et transferts de charges</field>
<field name="definition">{'load':['-:781:S','-:791:S'], 'except':[]}</field>
<field name="code">cdrp6</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp7" model="l10n.fr.line">
<field name="name">Produits d'exploitation : Autres produits</field>
<field name="definition">{'load':['-:75:S'], 'except':['755']}</field>
<field name="code">cdrp7</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp8" model="l10n.fr.line">
<field name="name">Produits : Quotes-parts de résultat sur opérations faites en commun</field>
<field name="definition">{'load':['-:755:S'], 'except':[]}</field>
<field name="code">cdrp8</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp9" model="l10n.fr.line">
<field name="name">Produits financiers : De participation</field>
<field name="definition">{'load':['-:761:S'], 'except':[]}</field>
<field name="code">cdrp9</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp10" model="l10n.fr.line">
<field name="name">Produits financiers : D'autres valeurs mobilières et créances de l'actif immobilisé</field>
<field name="definition">{'load':['-:762:S'], 'except':[]}</field>
<field name="code">cdrp10</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp11" model="l10n.fr.line">
<field name="name">Produits financiers : Autres intérêts et produits assimilés</field>
<field name="definition">{'load':['-:763:S','-:764:S','-:765:S','-:768:S'], 'except':[]}</field>
<field name="code">cdrp11</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp12" model="l10n.fr.line">
<field name="name">Produits financiers : Reprises sur provisions, dépréciations et transferts de charges</field>
<field name="definition">{'load':['-:786:S','-:796:S'], 'except':[]}</field>
<field name="code">cdrp12</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp13" model="l10n.fr.line">
<field name="name">Produits financiers : Différences positives de change</field>
<field name="definition">{'load':['-:766:S'], 'except':[]}</field>
<field name="code">cdrp13</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp14" model="l10n.fr.line">
<field name="name">Produits financiers : Produits nets sur cessions de valeurs mobilières de placement</field>
<field name="definition">{'load':['-:767:S'], 'except':[]}</field>
<field name="code">cdrp14</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp15" model="l10n.fr.line">
<field name="name">Produits exceptionnels : Sur opérations de gestion</field>
<field name="definition">{'load':['-:771:S'], 'except':[]}</field>
<field name="code">cdrp15</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp16" model="l10n.fr.line">
<field name="name">Produits exceptionnels : Sur opérations en capital</field>
<field name="definition">{'load':['-:775:S','-:777:S','-:778:S'], 'except':[]}</field>
<field name="code">cdrp16</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
<record id="pcg_cdrp17" model="l10n.fr.line">
<field name="name">Produits exceptionnels : Reprises sur provisions, dépréciations et transferts de charges</field>
<field name="definition">{'load':['-:787:S','-:797:S'], 'except':[]}</field>
<field name="code">cdrp17</field>
<field name="report_id" ref="pcg_cdr"/>
</record>
</data>
</openerp>

View File

@ -7,11 +7,29 @@
<menuitem action="wizard_chart_report" id="menu_fr_chart_report" parent="account.menu_finance_reporting" type="wizard"/>
<record id="config_call_account_template" model="ir.actions.todo">
<field name="name">Generate Chart of Accounts from a Chart Template</field>
<field name="note">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.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
</record>
<field name="name">Generate Chart of Accounts from a Chart Template</field>
<field name="note">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.</field>
<field name="action_id" ref="account.action_wizard_multi_chart"/>
</record>
<wizard id="wizard_l10n_fr_cdr_report"
string="Compte de resultat"
model="account.move.line"
name="l10n.fr.cdr.report"
keyword="client_print_multi"
/>
<menuitem id="menu_action_cdr" action="wizard_l10n_fr_cdr_report" type="wizard" parent="l10n_fr.menu_synthesis" />
<wizard id="wizard_l10n_fr_bilan_report"
string="Bilan"
model="account.move.line"
name="l10n.fr.bilan.report"
keyword="client_print_multi"
/>
<menuitem id="menu_action_bilan" action="wizard_l10n_fr_bilan_report" type="wizard" parent="l10n_fr.menu_synthesis" />
</data>
</openerp>

57
addons/l10n_fr/l10n_fr.py Normal file
View File

@ -0,0 +1,57 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
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:

View File

@ -0,0 +1,47 @@
<?xml version="1.0"?>
<openerp>
<data>
<menuitem name="Documents de synthèse" id="menu_synthesis" parent="account.menu_finance_reporting" />
<menuitem name="Configuration" id="menu_synthesis_config" parent="l10n_fr.menu_synthesis" />
<record model="ir.actions.act_window" id="action_l10n_fr_report_tree">
<field name="name">Rapports</field>
<field name="res_model">l10n.fr.report</field>
</record>
<menuitem parent="l10n_fr.menu_synthesis_config" id="menu_l10n_fr_report_tree" action="action_l10n_fr_report_tree"/>
<record model="ir.actions.act_window" id="action_l10n_fr_line_tree">
<field name="name">Entrées</field>
<field name="res_model">l10n.fr.line</field>
<field name="view_mode">tree</field>
</record>
<menuitem parent="l10n_fr.menu_synthesis_config" id="menu_l10n_fr_line_tree" action="action_l10n_fr_line_tree"/>
<record model="ir.ui.view" id="view_l10n_fr_line_tree">
<field name="name">l10n.fr.line</field>
<field name="model">l10n.fr.line</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Entrées">
<field name="name"/>
<field name="code"/>
<field name="report_id"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_l10n_fr_report_tree">
<field name="name">l10n.fr.report</field>
<field name="model">l10n.fr.report</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Rapport">
<field name="name"/>
<field name="code"/>
</tree>
</field>
</record>
</data>
</openerp>

View File

@ -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

View File

@ -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)

View File

@ -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)

File diff suppressed because one or more lines are too long

View File

@ -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)

View File

@ -0,0 +1,655 @@
<?xml version="1.0"?>
<document filename="test.pdf">
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="57.0" y1="20.0" width="481" height="802"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Tableau">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#e6e6e6" start="0,0" stop="0,0"/>
<blockBackground colorName="#e6e6e6" start="1,0" stop="1,0"/>
<blockBackground colorName="#e6e6e6" start="2,0" stop="2,0"/>
<blockBackground colorName="#e6e6e6" start="0,1" stop="0,1"/>
<blockBackground colorName="#e6e6e6" start="1,1" stop="1,1"/>
<blockBackground colorName="#e6e6e6" start="2,1" stop="2,1"/>
</blockTableStyle>
<blockTableStyle id="Tableau3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
</blockTableStyle>
<blockTableStyle id="Tableau1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="6.0" leading="8" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P2" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="7.0" leading="9" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P3" rightIndent="0.0" leftIndent="0.0" fontName="Times-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P4" rightIndent="0.0" leftIndent="0.0" fontName="Times-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P5" rightIndent="0.0" leftIndent="0.0" fontName="Times-Bold" fontSize="7.0" leading="9" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P6" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="7.0" leading="9" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P7" rightIndent="0.0" leftIndent="0.0" fontName="Times-Bold" fontSize="7.0" leading="9" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P8" rightIndent="0.0" leftIndent="0.0" fontName="Times-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P9" rightIndent="0.0" leftIndent="0.0" fontName="Times-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P10" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="8.0" leading="9" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P11" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="7.0" leading="9" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P12" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="7.0" leading="9" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P13" rightIndent="0.0" leftIndent="0.0" fontName="Times-Bold" fontSize="7.0" leading="9" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P14" rightIndent="0.0" leftIndent="0.0" fontName="Times-Bold" fontSize="7.0" leading="9" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P15" rightIndent="0.0" leftIndent="0.0" fontName="Times-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P16" rightIndent="0.0" leftIndent="0.0" fontName="Times-Bold" fontSize="7.0" leading="9" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P17" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="7.0" leading="9" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P18" rightIndent="0.0" leftIndent="0.0" fontName="Times-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P19" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P20" fontName="Times-Roman" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P21" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P22" fontName="Times-Bold" fontSize="16.0" leading="20" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P23" fontName="Times-Roman" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P24" fontName="Times-Roman"/>
<paraStyle name="P25" fontName="Times-Roman"/>
<paraStyle name="P26" fontName="Times-Roman" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P27" fontName="Times-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="1.0" spaceAfter="1.0"/>
<paraStyle name="P28" fontName="Times-Bold" fontSize="12.0" leading="15" spaceBefore="0.0" spaceAfter="3.0"/>
<paraStyle name="P29" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Contents" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Times-Italic" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Times-Roman"/>
<paraStyle name="Preformatted Text" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<para style="P19">[[ _load('cdr',data['form'])]]</para>
<para style="P19">[[ _set_variable('ct1', cdrc1+cdrc2+cdrc3+cdrc4+cdrc5+cdrc6+cdrc7+cdrc8+cdrc9+cdrc10+cdrc11+cdrc12+cdrc13+cdrc14+cdrc15)]]</para>
<para style="P19">[[ _set_variable('ct3', cdrc17+cdrc18+cdrc19+cdrc20)]]</para>
<para style="P19">[[ _set_variable('ct4', cdrc21+cdrc22+cdrc23)]]</para>
<para style="P19">[[ _set_variable('charges', ct1+cdrc16+ct3+ct4+cdrc24+cdrc25)]]</para>
<para style="P19">[[ _set_variable('pta', cdrp1+cdrp2)]]</para>
<para style="P19">[[ _set_variable('ptb', cdrp3+cdrp4+cdrp5+cdrp6+cdrp7)]]</para>
<para style="P19">[[ _set_variable('pt1', pta+ptb)]]</para>
<para style="P19">[[ _set_variable('pt3', cdrp9+cdrp10+cdrp11+cdrp12+cdrp13+cdrp14)]]</para>
<para style="P19">[[ _set_variable('pt4', cdrp15+cdrp16+cdrp17)]]</para>
<para style="P19">[[ _set_variable('produits', pt1+cdrp8+pt3+pt4)]]</para>
<blockTable colWidths="165.0,160.0,156.0" style="Tableau">
<tr>
<td>
<para style="P28">[[ company.name ]]</para>
<para style="P26">p&#xE9;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'))]]</para>
</td>
<td>
<para style="P22">Compte de r&#xE9;sultat</para>
</td>
<td>
<para style="P23">Imprim&#xE9; le : [[ time.strftime('%d-%m-%Y') ]]</para>
</td>
</tr>
<tr>
<td>
<para style="P20">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P19">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P21">Tenue de Compte : [[ company.currency_id.name ]]</para>
</td>
</tr>
</blockTable>
<para style="P27">
<font color="white"> </font>
</para>
<blockTable colWidths="309.0,173.0" style="Tableau3">
<tr>
<td>
<para style="P3">CHARGES ( hors taxes )</para>
</td>
<td>
<para style="P1">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P4">CHARGES D'EXPLOITATION</para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P17">Achat de marchandises</para>
</td>
<td>
<para style="P2">[[ '%.2f' % cdrc1 ]] </para>
</td>
</tr>
<tr>
<td>
<para style="P10">Variation des stocks</para>
</td>
<td>
<para style="P2">[[cdrc2]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Achats de mati&#xE8;res premi&#xE8;res et autres approvisionnements</para>
</td>
<td>
<para style="P2">[[cdrc3]]</para>
</td>
</tr>
<tr>
<td>
<para style="P17">Variation des stocks</para>
</td>
<td>
<para style="P2">[[cdrc4]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Autres achats et charges externes</para>
</td>
<td>
<para style="P2">[[cdrc5]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Redevances de cr&#xE9;dit-bail mobilier</para>
</td>
<td>
<para style="P2">[[cdrc6]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Redevances de cr&#xE9;dit-bail immobilier</para>
</td>
<td>
<para style="P2">[[cdrc7]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Imp&#xF4;ts, taxes et versements assimil&#xE9;s</para>
</td>
<td>
<para style="P2">[[cdrc8]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Salaires et traitements</para>
</td>
<td>
<para style="P2">[[cdrc9]]</para>
</td>
</tr>
<tr>
<td>
<para style="P17">Charges sociales</para>
</td>
<td>
<para style="P2">[[cdrc10]]</para>
</td>
</tr>
<tr>
<td>
<para style="P17">Dotation aux amortissements et aux d&#xE9;pr&#xE9;ciations</para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P12">Sur immobilisations : dotations aux amortissements</para>
</td>
<td>
<para style="P2">[[cdrc11]]</para>
</td>
</tr>
<tr>
<td>
<para style="P12">Sur immobilisations : dotations aux d&#xE9;pr&#xE9;ciations</para>
</td>
<td>
<para style="P2">[[cdrc12]]</para>
</td>
</tr>
<tr>
<td>
<para style="P12">Sur actif circulant : dotations aux d&#xE9;pr&#xE9;ciations</para>
</td>
<td>
<para style="P2">[[cdrc13]]</para>
</td>
</tr>
<tr>
<td>
<para style="P12">Dotations aux provisions</para>
</td>
<td>
<para style="P2">[[cdrc14]]</para>
</td>
</tr>
<tr>
<td>
<para style="P12">Autres charges</para>
</td>
<td>
<para style="P2">[[cdrc15]]</para>
</td>
</tr>
<tr>
<td>
<para style="P16">TOTAL I</para>
</td>
<td>
<para style="P2">[[ct1]]</para>
</td>
</tr>
<tr>
<td>
<para style="P5">Quotes-parts de r&#xE9;sultat sur op&#xE9;rations faites en commun ( II )</para>
</td>
<td>
<para style="P2">[[cdrc16]]</para>
</td>
</tr>
<tr>
<td>
<para style="P15">CHARGES FINANCI&#xC8;RES</para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Dotations aux amortissements, aux d&#xE9;pr&#xE9;ciations et aux provisions</para>
</td>
<td>
<para style="P2">[[cdrc17]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Int&#xE9;r&#xEA;ts et charges assimil&#xE9;es</para>
</td>
<td>
<para style="P2">[[cdrc18]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Diff&#xE9;rences n&#xE9;gatives de change</para>
</td>
<td>
<para style="P2">[[cdrc19]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Charges nettes sur cessions de valeurs mobili&#xE8;res de placement</para>
</td>
<td>
<para style="P2">[[cdrc20]]</para>
</td>
</tr>
<tr>
<td>
<para style="P16">TOTAL III</para>
</td>
<td>
<para style="P2">[[ct3]]</para>
</td>
</tr>
<tr>
<td>
<para style="P18">CHARGES EXCEPTIONNELLES</para>
</td>
<td>
<para style="P1">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P6">Sur op&#xE9;rations de gestion</para>
</td>
<td>
<para style="P2">[[cdrc21]]</para>
</td>
</tr>
<tr>
<td>
<para style="P6">Sur op&#xE9;rations en capital</para>
</td>
<td>
<para style="P2">[[cdrc22]]</para>
</td>
</tr>
<tr>
<td>
<para style="P6">Dotations aux amortissements, aux d&#xE9;pr&#xE9;ciations et aux provisions</para>
</td>
<td>
<para style="P2">[[cdrc23]]</para>
</td>
</tr>
<tr>
<td>
<para style="P7">TOTAL IV</para>
</td>
<td>
<para style="P2">[[ct4]]</para>
</td>
</tr>
<tr>
<td>
<para style="P8">Participation des salari&#xE9;s aux r&#xE9;sultats <font face="Times-Roman" size="7.0">( V )</font>
</para>
</td>
<td>
<para style="P2">[[cdrc24]]</para>
</td>
</tr>
<tr>
<td>
<para style="P9">Imp&#xF4;ts sur les b&#xE9;n&#xE9;fices <font face="Times-Roman" size="7.0">( VI )</font>
</para>
</td>
<td>
<para style="P2">[[cdrc25]]</para>
</td>
</tr>
<tr>
<td>
<para style="P16">TOTAL CHARGES ( I + II + III <font face="Times-Bold" size="7.0">+ IV+ V+ VI</font> )</para>
</td>
<td>
<para style="P2">[[charges]]</para>
</td>
</tr>
</blockTable>
<para style="P24">
<font color="white"> </font>
</para>
<pageBreak/>
<para style="P25">
<font color="white"> </font>
</para>
<para style="P24">
<font color="white"> </font>
</para>
<blockTable colWidths="309.0,173.0" style="Tableau1">
<tr>
<td>
<para style="P3">PRODUITS (hors taxes)</para>
</td>
<td>
<para style="P1">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P4">PRODUITS D'EXPLOITATION</para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P17">Vente de marchandises</para>
</td>
<td>
<para style="P2">[[cdrp1]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Production vendue [biens et services]</para>
</td>
<td>
<para style="P2">[[cdrp2]]</para>
</td>
</tr>
<tr>
<td>
<para style="P13">Sous-total A - Montant net du chiffre d'affaires</para>
</td>
<td>
<para style="P2">[[pta]]</para>
</td>
</tr>
<tr>
<td>
<para style="P17">Production stock&#xE9;e</para>
</td>
<td>
<para style="P2">[[cdrp3]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Production immobilis&#xE9;e</para>
</td>
<td>
<para style="P2">[[cdrp4]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Subventions d'exploitation</para>
</td>
<td>
<para style="P2">[[cdrp5]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Reprises sur provisions, d&#xE9;pr&#xE9;ciations (et amortissements) et transferts de charges</para>
</td>
<td>
<para style="P2">[[cdrp6]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Autres produits</para>
</td>
<td>
<para style="P2">[[cdrp7]]</para>
</td>
</tr>
<tr>
<td>
<para style="P13">Sous-total B</para>
</td>
<td>
<para style="P2">[[ptb]]</para>
</td>
</tr>
<tr>
<td>
<para style="P14">TOTAL I ( A + B )</para>
</td>
<td>
<para style="P2">[[pt1]]</para>
</td>
</tr>
<tr>
<td>
<para style="P5">Quotes-parts de r&#xE9;sultat sur op&#xE9;rations faites en commun (II)</para>
</td>
<td>
<para style="P2">[[cdrp8]]</para>
</td>
</tr>
<tr>
<td>
<para style="P15">PRODUITS FINANCIERS</para>
</td>
<td>
<para style="P2">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P11">De participation</para>
</td>
<td>
<para style="P2">[[cdrp9]]</para>
</td>
</tr>
<tr>
<td>
<para style="P11">D'autres valeurs mobili&#xE8;res et cr&#xE9;ances de l'actif immobilis&#xE9;</para>
</td>
<td>
<para style="P2">[[cdrp10]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Autres int&#xE9;r&#xEA;ts et produits assimil&#xE9;s</para>
</td>
<td>
<para style="P2">[[cdrp11]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Reprises sur provisions, d&#xE9;pr&#xE9;ciations et transferts de charges</para>
</td>
<td>
<para style="P2">[[cdrp12]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Diff&#xE9;rences positives de change</para>
</td>
<td>
<para style="P2">[[cdrp13]]</para>
</td>
</tr>
<tr>
<td>
<para style="P10">Produits nets sur cessions de valeurs mobili&#xE8;res de placement</para>
</td>
<td>
<para style="P2">[[cdrp14]]</para>
</td>
</tr>
<tr>
<td>
<para style="P16">TOTAL III</para>
</td>
<td>
<para style="P2">[[pt3]]</para>
</td>
</tr>
<tr>
<td>
<para style="P18">PRODUITS EXCEPTIONNELS</para>
</td>
<td>
<para style="P1">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="P6">Sur op&#xE9;rations de gestion</para>
</td>
<td>
<para style="P2">[[cdrp15]]</para>
</td>
</tr>
<tr>
<td>
<para style="P6">Sur op&#xE9;rations en capital</para>
</td>
<td>
<para style="P2">[[cdrp16]]</para>
</td>
</tr>
<tr>
<td>
<para style="P6">Reprises sur provisions, d&#xE9;pr&#xE9;ciations et transferts de charges</para>
</td>
<td>
<para style="P2">[[cdrp17]]</para>
</td>
</tr>
<tr>
<td>
<para style="P7">TOTAL IV</para>
</td>
<td>
<para style="P2">[[pt4]]</para>
</td>
</tr>
<tr>
<td>
<para style="P16">TOTAL DES PRODUITS ( I + II + III + IV )</para>
</td>
<td>
<para style="P2">[[produits]]</para>
</td>
</tr>
<tr>
<td>
<para style="P16">PRODUITS - CHARGES</para>
</td>
<td>
<para style="P2">[[produits-charges]]</para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
</story>
</document>

View File

@ -21,6 +21,8 @@
##############################################################################
import wizard_chart_report
import wizard_bilan
import wizard_cdr
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -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 = '''<?xml version="1.0"?>
<form string="Select year">
<field name="fiscalyear" colspan="4"/>
</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')

View File

@ -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 = '''<?xml version="1.0"?>
<form string="Select period">
<field name="fiscalyear" colspan="4"/>
</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')

View File

@ -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.

View File

@ -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" : [],

View File

@ -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
""",

View File

@ -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",

View File

@ -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):
@ -101,7 +102,7 @@ class product_pricelist(osv.osv):
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)

View File

@ -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"],

View File

@ -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": [

View File

@ -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

View File

@ -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"

View File

@ -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" : [

View File

@ -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" : [],

View File

@ -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": [

View File

@ -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" : [

View File

@ -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" : [],

View File

@ -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:

View File

@ -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

View File

@ -834,6 +834,7 @@
domain="[('product_id','=',product_id)]"
on_change="onchange_lot_id(prodlot_id,product_qty, location_id)"/>
<field groups="base.group_extended" name="tracking_id" select="1"/>
<label/>
<button name="%(track_line)d" string="Split in production lots" type="action"/>
<separator colspan="4" string="Move State"/>
<field name="state" select="1"/>

View File

@ -28,7 +28,7 @@
"description":"""
Manages product's path in locations.
This module may be usefull for different purposes:
This module may be useful for different purposes:
* Manages the product in his whole manufacturing chain
* Manages different default locations by products
* Define paths within the warehouse to route products based on operations: