diff --git a/addons/.project b/addons/.project new file mode 100644 index 00000000000..8fc3cc934ff --- /dev/null +++ b/addons/.project @@ -0,0 +1,17 @@ + + + pso-newaddons + + + + + + org.python.pydev.PyDevBuilder + + + + + + org.python.pydev.pythonNature + + diff --git a/addons/account/__terp__.py b/addons/account/__terp__.py index 01d9f9e499f..e8f25d84ad4 100644 --- a/addons/account/__terp__.py +++ b/addons/account/__terp__.py @@ -50,9 +50,9 @@ "account_unit_test.xml", ], "update_xml" : [ + "account_menuitem.xml", "security/account_security.xml", "security/ir.model.access.csv", - "account_menuitem.xml", "account_wizard.xml", "account_view.xml", "account_end_fy.xml", @@ -67,7 +67,7 @@ "product_view.xml", "account_assert_test.xml", "process/invoice_process.xml", - "process/statement_process.xml" + "process/statement_process.xml", ], "translations" : { "fr": "i18n/french_fr.csv" diff --git a/addons/account/account.py b/addons/account/account.py index 27075fbb648..00d2ec3dcba 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -844,7 +844,7 @@ class account_move(osv.osv): if line.account_id.currency_id: if line.account_id.currency_id.id != line.currency_id.id and (line.account_id.currency_id.id != line.account_id.company_id.currency_id.id or line.currency_id): - raise osv.except_osv(_('Error'), _('Couldn\'t create move with currency different than the secondary currency of the account')) + raise osv.except_osv(_('Error'), _('Couldn\'t create move with currency different than the secondary currency of the account "%s - %s". Clear the secondary currency field of the account definition if you want to accept all currencies.' % (line.account_id.code, line.account_id.name))) if abs(amount) < 0.0001: if not len(line_draft_ids): @@ -1032,6 +1032,7 @@ class account_tax_code(osv.osv): _name = 'account.tax.code' _description = 'Tax Code' + _rec_name = 'code' _columns = { 'name': fields.char('Tax Case Name', size=64, required=True), 'code': fields.char('Case Code', size=16), @@ -1681,16 +1682,20 @@ class account_tax_code_template(osv.osv): _name = 'account.tax.code.template' _description = 'Tax Code Template' _order = 'code' + _rec_name = 'code' _columns = { 'name': fields.char('Tax Case Name', size=64, required=True), 'code': fields.char('Case Code', size=16), 'info': fields.text('Description'), 'parent_id': fields.many2one('account.tax.code.template', 'Parent Code', select=True), 'child_ids': fields.one2many('account.tax.code.template', 'parent_id', 'Childs Codes'), - 'company_id': fields.many2one('res.company', 'Company', required=True), 'sign': fields.float('Sign for parent', required=True), } + _defaults = { + 'sign': lambda *args: 1.0, + } + def name_get(self, cr, uid, ids, context=None): if not len(ids): return [] @@ -1700,17 +1705,6 @@ class account_tax_code_template(osv.osv): return [(x['id'], (x['code'] and x['code'] + ' - ' or '') + x['name']) \ for x in reads] - def _default_company(self, cr, uid, context={}): - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - if user.company_id: - return user.company_id.id - return self.pool.get('res.company').search(cr, uid, [('parent_id', '=', False)])[0] - - _defaults = { - 'company_id': _default_company, - 'sign': lambda *args: 1.0, - } - def _check_recursion(self, cr, uid, ids): level = 100 while len(ids): @@ -1742,7 +1736,6 @@ class account_chart_template(osv.osv): 'property_account_payable': fields.many2one('account.account.template','Payable Account'), 'property_account_expense_categ': fields.many2one('account.account.template','Expense Category Account'), 'property_account_income_categ': fields.many2one('account.account.template','Income Category Account'), - 'property_account_tax': fields.many2one('account.account.template','Default Tax on Partner'), 'property_account_expense': fields.many2one('account.account.template','Expense Account on Product Template'), 'property_account_income': fields.many2one('account.account.template','Income Account on Product Template'), } @@ -1859,9 +1852,6 @@ class wizard_multi_charts_accounts(osv.osv_memory): obj_journal = self.pool.get('account.journal') obj_acc_template = self.pool.get('account.account.template') - if obj_multi.code_digits<=5: - raise osv.except_osv(_('User Error'), _('Account code should be of more than 5 digits.')) - # Creating Account obj_acc_root = obj_multi.chart_template_id.account_root_id tax_code_root_id = obj_multi.chart_template_id.tax_code_root_id.id @@ -1926,6 +1916,7 @@ class wizard_multi_charts_accounts(osv.osv_memory): #deactivate the parent_store functionnality on account_account for rapidity purpose self.pool._init = True + children_acc_template = obj_acc_template.search(cr, uid, [('parent_id','child_of',[obj_acc_root.id])]) for account_template in obj_acc_template.browse(cr, uid, children_acc_template): tax_ids = [] @@ -1943,7 +1934,7 @@ class wizard_multi_charts_accounts(osv.osv_memory): 'name': (obj_acc_root.id == account_template.id) and obj_multi.company_id.name or account_template.name, #'sign': account_template.sign, 'currency_id': account_template.currency_id and account_template.currency_id.id or False, - 'code': code_acc[:dig], + 'code': code_acc, 'type': account_template.type, 'user_type': account_template.user_type and account_template.user_type.id or False, 'reconcile': account_template.reconcile, @@ -1963,8 +1954,8 @@ class wizard_multi_charts_accounts(osv.osv_memory): for key,value in todo_dict.items(): if value['account_collected_id'] or value['account_paid_id']: obj_acc_tax.write(cr, uid, [key], vals={ - 'account_collected_id': value['account_collected_id'], - 'account_paid_id': value['account_paid_id'], + 'account_collected_id': acc_template_ref[value['account_collected_id']], + 'account_paid_id': acc_template_ref[value['account_paid_id']], }) # Creating Journals @@ -2045,7 +2036,6 @@ class wizard_multi_charts_accounts(osv.osv_memory): ('property_account_payable','res.partner','account.account'), ('property_account_expense_categ','product.category','account.account'), ('property_account_income_categ','product.category','account.account'), - ('property_account_tax','res.partner','account.tax'), ('property_account_expense','product.template','account.account'), ('property_account_income','product.template','account.account') ] diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index b2007a34fc5..f005cc7aac4 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -127,6 +127,7 @@ + @@ -152,7 +153,7 @@ - + @@ -201,7 +202,7 @@ - + @@ -211,17 +212,17 @@ - - - - - - - - - - - + + + + + + + + + + + @@ -283,7 +284,7 @@ - + @@ -293,17 +294,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/addons/account/account_menuitem.xml b/addons/account/account_menuitem.xml index 9b3726b5c40..a9500a37187 100644 --- a/addons/account/account_menuitem.xml +++ b/addons/account/account_menuitem.xml @@ -10,12 +10,13 @@ + - + diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index 89c19a436d0..8d652e06723 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -1568,7 +1568,6 @@
- diff --git a/addons/account/account_wizard.xml b/addons/account/account_wizard.xml index f2573a71f9b..96a2c417739 100644 --- a/addons/account/account_wizard.xml +++ b/addons/account/account_wizard.xml @@ -48,19 +48,19 @@ - + - + - + - - + + @@ -86,6 +86,9 @@ + + + diff --git a/addons/account/demo/account_minimal.xml b/addons/account/demo/account_minimal.xml index cee3a333e6a..606440020d0 100644 --- a/addons/account/demo/account_minimal.xml +++ b/addons/account/demo/account_minimal.xml @@ -149,15 +149,9 @@ your own chart of account. - - property_account_supplier_tax - - - - - - property_account_tax - + + property_account_position + @@ -199,15 +193,6 @@ your own chart of account. - - Stock Journal - STJ - general - - - - - diff --git a/addons/account/i18n/fr_FR.po b/addons/account/i18n/fr_FR.po index e275365f645..2a888155ce6 100644 --- a/addons/account/i18n/fr_FR.po +++ b/addons/account/i18n/fr_FR.po @@ -1,4 +1,4 @@ -# Translation of OpenERP Server. +# Translation of OpenERP Server. # This file containt the translation of the following modules: # * account # @@ -6,18 +6,14 @@ msgid "" msgstr "" "Project-Id-Version: OpenERP Server 4.3.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" -"Date: 2008-09-10 15:05:34+0000Last-Translator: <>Language-Team: MIME-" -"Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-" -"Encoding: Plural-Forms:\n" -"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-09-05 16:27+0000\n" -"PO-Revision-Date: 2008-10-10 06:55+0000\n" +"PO-Revision-Date: 2008-10-14 11:13+0000\n" "Last-Translator: Olivier Laurent \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2008-10-10 06:56+0000\n" +"X-Launchpad-Export-Date: 2008-10-14 11:16+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account @@ -28,7 +24,7 @@ msgstr "% réalisation" #. module: account #: view:account.move:0 msgid "Account entry" -msgstr "Pièce comptable" +msgstr "Entrée de compte" #. module: account #: field:account.tax,description:0 @@ -39,7 +35,7 @@ msgstr "Nom interne" #. module: account #: view:account.tax.code:0 msgid "Account Tax Code" -msgstr "Compte de Taxe" +msgstr "Code du compte taxe" #. module: account #: model:ir.model,name:account.model_account_budget_post @@ -59,7 +55,7 @@ msgstr "" #. module: account #: selection:account.subscription,period_type:0 msgid "month" -msgstr "mois" +msgstr "Mois" #. module: account #: view:account.payment.term:0 @@ -143,7 +139,7 @@ msgstr "Entrées non-réconciliées" #: model:ir.ui.menu,name:account.menu_action_move_line_form #: view:account.bank.statement.reconcile:0 msgid "Entries" -msgstr "Ecritures" +msgstr "Écritures" #. module: account #: selection:account.move.line,centralisation:0 @@ -171,12 +167,12 @@ msgstr "Quantité" #. module: account #: field:account.analytic.line,product_uom_id:0 msgid "UoM" -msgstr "Unité Principale" +msgstr "UdM" #. module: account #: view:account.tax:0 msgid "Keep empty to use the expense account" -msgstr "Ne pas remplir pour utiliser le compte de dépense" +msgstr "Laisser vide pour utiliser le compte de dépense" #. module: account #: rml:account.third_party_ledger:0 @@ -194,7 +190,7 @@ msgstr "Modèle d'écriture comptable" #. module: account #: field:account.tax.code,sum_period:0 msgid "Period Sum" -msgstr "Somme de la période" +msgstr "Montant total de la période" #. module: account #: view:account.tax:0 @@ -261,7 +257,7 @@ msgstr "Fixe" #: wizard_view:account.partner.balance.report,init:0 #: wizard_view:account.third_party_ledger.report,init:0 msgid "Select period" -msgstr "Sélectionner une période" +msgstr "Sélectionnez une période" #. module: account #: field:account.invoice,origin:0 @@ -623,7 +619,7 @@ msgstr "Note de Crédit Client" #: field:account.tax,ref_tax_sign:0 #: field:account.tax,tax_sign:0 msgid "Tax Code Sign" -msgstr "Facteur multiplicateur"l +msgstr "Facteur multiplicateur" #. module: account #: view:account.move.line:0 @@ -913,7 +909,7 @@ msgstr "Montant payé" #. module: account #: model:account.account.type,name:account.account_type_view msgid "Total Account" -msgstr "" +msgstr "Compte Total" #. module: account #: selection:account.account,sign:0 @@ -1130,7 +1126,7 @@ msgstr "Résultats budgétaires" #. module: account #: view:res.partner:0 msgid "Customer Credit" -msgstr "" +msgstr "Crédit Client" #. module: account #: field:account.invoice,tax_line:0 @@ -1160,7 +1156,7 @@ msgstr "Date de Facture :" #. module: account #: field:account.chart.template,property_receivable_id:0 msgid "Receivable Account" -msgstr "" +msgstr "Compte Recevable" #. module: account #: rml:account.central.journal:0 @@ -1187,12 +1183,12 @@ msgstr "Date de fin" #. module: account #: field:res.partner,debit:0 msgid "Total Payable" -msgstr "" +msgstr "Montant à payer" #. module: account #: wizard_view:account_use_models,create:0 msgid "Use Model" -msgstr "" +msgstr "Utiliser un Modèle" #. module: account #: model:account.account.type,name:account.account_type_income @@ -2383,7 +2379,7 @@ msgstr "Êtes-vous sûr de vouloir rembourser cette facture ?" #. module: account #: model:ir.actions.wizard,name:account.wizard_paid_open msgid "Open State" -msgstr "" +msgstr "État Ouvert" #. module: account #: field:account.journal,entry_posted:0 @@ -2739,7 +2735,7 @@ msgstr "Créer" #: model:ir.actions.act_window,name:account.action_bank_statement_tree2 #: model:ir.ui.menu,name:account.menu_bank_statement_tree2 msgid "New Statement" -msgstr "" +msgstr "Nouvelle Déclaration" #. module: account #: model:ir.model,name:account.model_account_invoice_line @@ -2953,7 +2949,7 @@ msgstr "Écriture d'abonnement" #. module: account #: rml:account.invoice:0 msgid "Tel. :" -msgstr "" +msgstr "Tél. :" #. module: account #: wizard_button:account.wizard_paid_open,init,yes:0 @@ -3126,7 +3122,7 @@ msgstr "Nom de la taxe" #. module: account #: rml:account.invoice:0 msgid "VAT :" -msgstr "" +msgstr "TVA :" #. module: account #: field:account.chart.template,property_payable_id:0 @@ -3142,7 +3138,7 @@ msgstr "Devise" #. module: account #: view:account.config.fiscalyear:0 msgid "Don't Create" -msgstr "" +msgstr "Ne pas créer" #. module: account #: rml:account.partner.balance:0 @@ -4122,7 +4118,7 @@ msgstr "Toutes les entrées de compte" #: wizard_button:account.wizard.account.duplicate,init,duplicate:0 #: model:ir.actions.wizard,name:account.wizard_account_duplicate msgid "Duplicate" -msgstr "" +msgstr "Dupliquer" #. module: account #: model:ir.actions.wizard,name:account.wizard_reconcile_unreconcile diff --git a/addons/account/invoice.py b/addons/account/invoice.py index a8eb3bd7623..d94ff838f45 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -171,7 +171,7 @@ class account_invoice(osv.osv): ('cancel','Canceled') ],'State', select=True, readonly=True), - 'date_invoice': fields.date('Date Invoiced', required=True, states={'open':[('readonly',True)],'close':[('readonly',True)]}), + 'date_invoice': fields.date('Date Invoiced', states={'open':[('readonly',True)],'close':[('readonly',True)]}), 'date_due': fields.date('Due Date', states={'open':[('readonly',True)],'close':[('readonly',True)]}), 'partner_id': fields.many2one('res.partner', 'Partner', change_default=True, readonly=True, required=True, states={'draft':[('readonly',False)]}), @@ -203,7 +203,7 @@ class account_invoice(osv.osv): } _defaults = { 'type': _get_type, - 'date_invoice': lambda *a: time.strftime('%Y-%m-%d'), + #'date_invoice': lambda *a: time.strftime('%Y-%m-%d'), 'state': lambda *a: 'draft', 'journal_id': _get_journal, 'currency_id': _get_currency, @@ -332,9 +332,9 @@ class account_invoice(osv.osv): if default is None: default = {} default = default.copy() - default.update({'state':'draft', 'number':False, 'move_id':False,}) + default.update({'state':'draft', 'number':False, 'move_id':False}) if 'date_invoice' not in default: - default['date_invoice'] = time.strftime('%Y-%m-%d') + default['date_invoice'] = False if 'date_due' not in default: default['date_due'] = False return super(account_invoice, self).copy(cr, uid, id, default, context) @@ -428,6 +428,8 @@ class account_invoice(osv.osv): continue if inv.type in ('in_invoice', 'in_refund') and abs(inv.check_total - inv.amount_total) >= (inv.currency_id.rounding/2.0): raise osv.except_osv(_('Bad total !'), _('Please verify the price of the invoice !\nThe real total does not match the computed total.')) + if not inv.date_invoice: + self.write(cr, uid, [inv.id], {'date_invoice':time.strftime('%Y-%m-%d')}) company_currency = inv.company_id.currency_id.id # create the analytical lines line_ids = self.read(cr, uid, [inv.id], ['invoice_line'])[0]['invoice_line'] @@ -473,7 +475,7 @@ class account_invoice(osv.osv): i['amount_currency'] = i['price'] i['price'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, i['price'], - context={'date': inv.date_invoice}) + context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}) else: i['amount_currency'] = False i['currency_id'] = False @@ -534,7 +536,7 @@ class account_invoice(osv.osv): 'ref': ref }) - date = inv.date_invoice + date = inv.date_invoice or time.strftime('%Y-%m-%d') part = inv.partner_id.id line = map(lambda x:(0,0,self.line_get_convert(cr, uid, x, part, date, context={})) ,iml) @@ -549,7 +551,7 @@ class account_invoice(osv.osv): move = {'name': name, 'line_id': line, 'journal_id': journal_id} period_id=inv.period_id and inv.period_id.id or False if not period_id: - period_ids= self.pool.get('account.period').search(cr,uid,[('date_start','<=',inv.date_invoice),('date_stop','>=',inv.date_invoice)]) + period_ids= self.pool.get('account.period').search(cr,uid,[('date_start','<=',inv.date_invoice or time.strftime('%Y-%m-%d')),('date_stop','>=',inv.date_invoice or time.strftime('%Y-%m-%d'))]) if len(period_ids): period_id=period_ids[0] if period_id: @@ -855,24 +857,11 @@ class account_invoice_line(osv.osv): taxep=None lang=self.pool.get('res.partner').read(cr, uid, [partner_id])[0]['lang'] tax_obj = self.pool.get('account.tax') + part = self.pool.get('res.partner').browse(cr, uid, partner_id) if type in ('out_invoice', 'out_refund'): - taxep = self.pool.get('res.partner').browse(cr, uid, partner_id).property_account_tax - if not taxep or not taxep.id: - tax_id = map(lambda x: x.id, res.taxes_id) - else: - tax_id = [taxep.id] - for t in res.taxes_id: - if not t.tax_group==taxep.tax_group: - tax_id.append(t.id) + tax_id = self.pool.get('account.fiscal.position').map_tax(cr, uid, part, res.taxes_id) else: - taxep = self.pool.get('res.partner').browse(cr, uid, partner_id).property_account_supplier_tax - if not taxep or not taxep.id: - tax_id = map(lambda x: x.id, res.supplier_taxes_id) - else: - tax_id = [taxep.id] - for t in res.supplier_taxes_id: - if not t.tax_group==taxep.tax_group: - tax_id.append(t.id) + tax_id = self.pool.get('account.fiscal.position').map_tax(cr, uid, part, res.supplier_taxes_id) if type in ('in_invoice', 'in_refund'): result = self.product_id_change_unit_price_inv(cr, uid, tax_id, price_unit, qty, address_invoice_id, product, partner_id, context=context) else: @@ -889,6 +878,8 @@ class account_invoice_line(osv.osv): a = res.product_tmpl_id.property_account_expense.id if not a: a = res.categ_id.property_account_expense_categ.id + + a = self.pool.get('account.fiscal.position').map_account(cr, uid, part, a) if a: result['account_id'] = a @@ -962,13 +953,9 @@ class account_invoice_line(osv.osv): if not (partner_id and account_id): return {} taxes = self.pool.get('account.account').browse(cr, uid, account_id).tax_ids - taxep = self.pool.get('res.partner').browse(cr, uid, partner_id).property_account_tax - if not taxep.id: - return {'value': {'invoice_line_tax_id': map(lambda x: x.id, taxes or []) }} - res = [taxep.id] - for t in taxes: - if not t.tax_group==taxep.tax_group: - res.append(t.id) + part = self.pool.get('res.partner').browse(cr, uid, partner_id) + + res = self.pool.get('account.fiscal.position').map_tax(cr, uid, part, taxes) r = {'value':{'invoice_line_tax_id': res}} return r account_invoice_line() @@ -1021,14 +1008,14 @@ class account_invoice_tax(osv.osv): if inv.type in ('out_invoice','in_invoice'): val['base_code_id'] = tax['base_code_id'] val['tax_code_id'] = tax['tax_code_id'] - val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['base_sign'], context={'date': inv.date_invoice}) - val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['tax_sign'], context={'date': inv.date_invoice}) + val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}) + val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}) val['account_id'] = tax['account_collected_id'] or line.account_id.id else: val['base_code_id'] = tax['ref_base_code_id'] val['tax_code_id'] = tax['ref_tax_code_id'] - val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['ref_base_sign'], context={'date': inv.date_invoice}) - val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['ref_tax_sign'], context={'date': inv.date_invoice}) + val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['ref_base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}) + val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['ref_tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}) val['account_id'] = tax['account_paid_id'] or line.account_id.id key = (val['tax_code_id'], val['base_code_id'], val['account_id']) diff --git a/addons/account/partner.py b/addons/account/partner.py index a47aae0d792..bbc79406780 100644 --- a/addons/account/partner.py +++ b/addons/account/partner.py @@ -31,6 +31,64 @@ from osv import fields, osv import ir +class account_fiscal_position(osv.osv): + _name = 'account.fiscal.position' + _description = 'Fiscal Position' + _columns = { + 'name': fields.char('Fiscal Position', size=64, translate=True, required=True), + 'company_id': fields.many2one('res.company', 'Company'), + 'account_ids': fields.one2many('account.fiscal.position.account', 'position_id', 'Accounts Mapping'), + 'tax_ids': fields.one2many('account.fiscal.position.tax', 'position_id', 'Taxes Mapping') + } + def map_tax(self, cr, uid, partner, taxes, context={}): + if (not partner) or (not partner.property_account_position) : + return map(lambda x: x.id, taxes) + result = [] + for t in taxes: + ok = False + for tax in partner.property_account_position.tax_ids: + if tax.tax_src_id.id==t.id: + if tax.tax_dest_id: + result.append(tax.tax_dest_id.id) + ok=True + if not ok: + result.append(t.id) + return result + + def map_account(self, cr, uid, partner, account_id, context={}): + if (not partner) or (not partner.property_account_position) : + return account_id + for pos in partner.property_account_position.account_ids: + if pos.account_src_id.id==account_id: + account_id = pos.account_dest_id.id + break + return account_id +account_fiscal_position() + + +class account_fiscal_position_tax(osv.osv): + _name = 'account.fiscal.position.tax' + _description = 'Fiscal Position Taxes Mapping' + _rec_name = 'position_id' + _columns = { + 'position_id': fields.many2one('account.fiscal.position', 'Fiscal Position', required=True, ondelete='cascade'), + 'tax_src_id': fields.many2one('account.tax', 'Tax Source', required=True), + 'tax_dest_id': fields.many2one('account.tax', 'Replacement Tax') + } +account_fiscal_position_tax() + + +class account_fiscal_position_account(osv.osv): + _name = 'account.fiscal.position.account' + _description = 'Fiscal Position Accounts Mapping' + _rec_name = 'position_id' + _columns = { + 'position_id': fields.many2one('account.fiscal.position', 'Fiscal Position', required=True, ondelete='cascade'), + 'account_src_id': fields.many2one('account.account', 'Account Source', required=True), + 'account_dest_id': fields.many2one('account.account', 'Account Destination', required=True) + } +account_fiscal_position_account() + class res_partner(osv.osv): _name = 'res.partner' _inherit = 'res.partner' @@ -109,24 +167,15 @@ class res_partner(osv.osv): domain="[('type', '=', 'receivable')]", help="This account will be used, instead of the default one, as the receivable account for the current partner", required=True), - 'property_account_supplier_tax': fields.property( - 'account.tax', + 'property_account_position': fields.property( + 'account.fiscal.position', type='many2one', - relation='account.tax', - string="Default Supplier Tax", + relation='account.fiscal.position', + string="Fiscal Position", method=True, view_load=True, - domain=[('parent_id','=',False)], - help="This tax will be used, instead of the default one for supplier invoices."), - 'property_account_tax': fields.property( - 'account.tax', - type='many2one', - relation='account.tax', - string="Default Tax", - method=True, - view_load=True, - domain=[('parent_id','=',False)], - help="This tax will be used, instead of the default one for customers."), + help="The fiscal position will determine taxes and the accounts used for the the partner.", + ), 'property_payment_term': fields.property( 'account.payment.term', type='many2one', diff --git a/addons/account/partner_view.xml b/addons/account/partner_view.xml index d580ff02285..94f5f7fec00 100644 --- a/addons/account/partner_view.xml +++ b/addons/account/partner_view.xml @@ -1,6 +1,63 @@ + + + account.fiscal.position.form + account.fiscal.position + form + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+
+ + account.fiscal.position.tree + account.fiscal.position + tree + + + + + + + + + + Fiscal Positions + account.fiscal.position + form + tree,form + + + + @@ -17,13 +74,12 @@ - + - diff --git a/addons/account/process/invoice_process.xml b/addons/account/process/invoice_process.xml index 5fb1c522be1..9d39c9e8be8 100644 --- a/addons/account/process/invoice_process.xml +++ b/addons/account/process/invoice_process.xml @@ -13,7 +13,7 @@ @@ -23,6 +23,7 @@ + @@ -62,10 +63,11 @@ - + + @@ -102,10 +104,18 @@ - + + + + + + + + + @@ -123,6 +133,7 @@ + @@ -169,6 +180,17 @@ + + + + + + + + +
diff --git a/addons/account/process/statement_process.xml b/addons/account/process/statement_process.xml index 57cfe332531..3ee13ace8d5 100644 --- a/addons/account/process/statement_process.xml +++ b/addons/account/process/statement_process.xml @@ -78,15 +78,16 @@ + - + - - + + @@ -130,6 +131,26 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml index 1def5a203ab..11975d9a6b8 100644 --- a/addons/account/project/project_view.xml +++ b/addons/account/project/project_view.xml @@ -92,10 +92,14 @@ diff --git a/addons/account/project/report/analytic_check.rml b/addons/account/project/report/analytic_check.rml index 991d8e38c55..0bbc727e9f6 100644 --- a/addons/account/project/report/analytic_check.rml +++ b/addons/account/project/report/analytic_check.rml @@ -17,7 +17,7 @@ [[ company.name ]] - Analytic Check + Analytic Check - [[ company.currency_id.name ]] diff --git a/addons/account/project/report/analytic_journal.py b/addons/account/project/report/analytic_journal.py index 80673bba85d..5fc8466c90c 100644 --- a/addons/account/project/report/analytic_journal.py +++ b/addons/account/project/report/analytic_journal.py @@ -65,7 +65,7 @@ class account_analytic_journal(report_sxw.rml_parse): res = self.cr.dictfetchone() return res['sum'] or 0 -report_sxw.report_sxw('report.account.analytic.journal', 'account.analytic.journal', 'addons/account/project/report/analytic_journal.rml',parser=account_analytic_journal) +report_sxw.report_sxw('report.account.analytic.journal', 'account.analytic.journal', 'addons/account/project/report/analytic_journal.rml',parser=account_analytic_journal,header=False) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/project/report/analytic_journal.rml b/addons/account/project/report/analytic_journal.rml index 105c137d4d2..d7e9f391114 100644 --- a/addons/account/project/report/analytic_journal.rml +++ b/addons/account/project/report/analytic_journal.rml @@ -3,229 +3,136 @@ - + + - + + - - - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - [[ repeatIn(objects,'o') ]] - - - - [[ company.name ]] - - - Analytic journal - - - Period from [[ data['form']['date1'] ]] - to [[ data['form']['date2'] ]] - + + [[ repeatIn(objects,'o') ]] + + + Date + Code + Move name + Account n° + General + Analytic - - - - [[ o.code ]] - - - [[ o.name ]] - - - Currency: [[ company.currency_id.name ]] - - - - - - - Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]] - - - - - - - Date - - - Code - - - Move name - - - Account n° - - - Accounting moves - General - Analytic - - - - - - -
- [[ repeatIn(lines(o.id,data['form']['date1'],data['form']['date2']), 'move') ]] - - - - - - - - - - - - - - [[ move.name ]] - - - [[ move.account_id.code ]] - [[ move.account_id.name ]] - - - [[ '%.2f' % (move.debit-move.credit) ]] - - - - - - - [[ repeatIn(lines_a(move.id,o.id,data['form']['date1'],data['form']['date2']),'move_a') ]] - [[ move_a.date ]] - - - [[ move_a.code ]] - - - [[ move_a.name ]] - - - [[ move_a.account_id.code ]] - [[ move_a.account_id.name ]] - - - [[ '%.2f' % move_a.amount ]] - - - - - - -
- - - - [[ repeatIn(lines_a(False,o.id,data['form']['date1'],data['form']['date2']),'move_a') ]] - [[ move_a.date ]] - - - [[ move_a.code ]] - - - [[ move_a.name ]] - - - [[move_a.account_id.code ]] - [[ move_a.account_id.name ]] - - - [[ '%.2f' % move_a.amount ]] - - - - - - - - - - Sums of the journal - - - [[ '%.2f' % sum_general(o.id,data['form']['date1'],data['form']['date2']) ]] - [[ '%.2f' % sum_analytic(o.id,data['form']['date1'],data['form']['date2']) ]] - - - - - - -
- + + + + [[ o.code ]] - [[ o.name ]] + [[ '%.2f' % sum_general(o.id,data['form']['date1'],data['form']['date2']) ]] + [[ '%.2f' % sum_analytic(o.id,data['form']['date1'],data['form']['date2']) ]] + + + +
+ + [[ repeatIn(lines(o.id,data['form']['date1'],data['form']['date2']), 'move') ]] + + + + + + [[ move.name ]] + [[ move.account_id.code ]] - [[ move.account_id.name ]] + + [[ '%.2f' % (move.debit-move.credit) ]] + + + + + + + + [[ repeatIn(lines_a(move.id,o.id,data['form']['date1'],data['form']['date2']),'move_a') ]] + [[ move_a.date ]] + + [[ move_a.code ]] + [[ move_a.name ]] + [[ move_a.account_id.code ]] - [[ move_a.account_id.name ]] + + [[ '%.2f' % move_a.amount ]] + + + +
+ + + + + [[ repeatIn(lines_a(False,o.id,data['form']['date1'],data['form']['date2']),'move_a') ]] + [[ move_a.date ]] + [[ move_a.code ]] + [[ move_a.name ]] + [[move_a.account_id.code ]] - [[ move_a.account_id.name ]] + + [[ '%.2f' % move_a.amount ]] + + + + + + \ No newline at end of file diff --git a/addons/account/project/report/cost_ledger.rml b/addons/account/project/report/cost_ledger.rml index 9b62c559a12..f3640e421d6 100644 --- a/addons/account/project/report/cost_ledger.rml +++ b/addons/account/project/report/cost_ledger.rml @@ -72,18 +72,20 @@ - - + + + + @@ -94,7 +96,6 @@ - @@ -125,15 +126,18 @@ - - - + + + + + - - + + - - + + + @@ -161,7 +165,7 @@ - + Period from @@ -174,7 +178,7 @@ - + [[ data['form']['date1'] ]] @@ -191,10 +195,10 @@
- + - Code / Date + Code / Date J.C. / Move name @@ -211,15 +215,13 @@ - + - - - + Total : - Total: + [[ '%.2f' % (sum_debit(objects,data['form']['date1'],data['form']['date2']) or 0.0) ]] @@ -237,7 +239,7 @@ [[ repeatIn(objects,'o') ]] - + [[ o.code ]] @@ -259,46 +261,43 @@ [[ repeatIn(lines_g(o.id,data['form']['date1'],data['form']['date2']),'move_g') ]] - + - [[ move_g['code'] ]] + [[ move_g['code'] ]] - [[ move_g['name'] ]] + [[ move_g['name'] ]] - [[ '%.2f' % move_g['debit'] ]] + [[ '%.2f' % move_g['debit'] ]] - [[ '%.2f' % move_g['credit'] ]] + [[ '%.2f' % move_g['credit'] ]] - [[ '%.2f' % move_g['balance'] ]] + [[ '%.2f' % move_g['balance'] ]] [[ repeatIn(lines_a(move_g['id'],o.id,data['form']['date1'],data['form']['date2']),'move_a') ]] - + - [[ move_a['date'] ]] + [[ move_a['date'] ]] - [[ move_a['cj'] ]] + [[ move_a['cj'] ]] / [[ move_a['name'] ]] - [[ move_a['name'] ]] + [[ '%.2f' % move_a['debit'] ]] - [[ '%.2f' % move_a['debit'] ]] + [[ '%.2f' % move_a['credit'] ]] - [[ '%.2f' % move_a['credit'] ]] - - - [[ '%.2f' % move_a['balance'] ]] + [[ '%.2f' % move_a['balance'] ]] @@ -319,4 +318,4 @@ - + \ No newline at end of file diff --git a/addons/account/project/report/inverted_analytic_balance.rml b/addons/account/project/report/inverted_analytic_balance.rml index 63100e50a9d..3453e8f009b 100644 --- a/addons/account/project/report/inverted_analytic_balance.rml +++ b/addons/account/project/report/inverted_analytic_balance.rml @@ -17,7 +17,7 @@ [[ company.name ]] - Inverted Analytic Balance + Inverted Analytic Balance - [[ company.currency_id.name ]] diff --git a/addons/account/project/report/quantity_cost_ledger.rml b/addons/account/project/report/quantity_cost_ledger.rml index 755ed501fd3..f87c74f4d69 100644 --- a/addons/account/project/report/quantity_cost_ledger.rml +++ b/addons/account/project/report/quantity_cost_ledger.rml @@ -132,8 +132,10 @@ - - + + + + @@ -217,12 +219,10 @@ - - - + Total: - Total: + [[ '%.2f' % (sum_quantity(objects,data['form']['date1'],data['form']['date2'], data['form']['journal']) or 0.0) ]] @@ -238,7 +238,7 @@ - [[ o.code ]] + [[ o.code ]] [[ o.complete_name ]] @@ -257,33 +257,30 @@ - [[ move_g['code'] ]] + [[ move_g['code'] ]] - [[ move_g['name'] ]] + [[ move_g['name'] ]] - + - [[ '%.2f' % (move_g['quantity'] or 0.0) ]] + [[ '%.2f' % (move_g['quantity'] or 0.0) ]] - + - [[ repeatIn(lines_a(move_g['id'],o.id,data['form']['date1'],data['form']['date2'],data['form']['journal']),'move_a') ]][[ move_a['date'] ]] + [[ repeatIn(lines_a(move_g['id'],o.id,data['form']['date1'],data['form']['date2'],data['form']['journal']),'move_a') ]][[ move_a['date'] ]] - [[ move_a['cj'] ]] - - - [[ move_a['name'] ]] + [[ move_a['cj'] ]] / [[ move_a['name'] ]] [[ '%.2f' % (move_a['quantity'] or 0.0 )]] diff --git a/addons/account/report/__init__.py b/addons/account/report/__init__.py index f14ab460225..a3206fbcdf8 100644 --- a/addons/account/report/__init__.py +++ b/addons/account/report/__init__.py @@ -40,6 +40,7 @@ import overdue import aged_trial_balance import tax_report import general_ledger_landscape +import account_tax_code # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/report/account_balance.rml b/addons/account/report/account_balance.rml index cfabf9d545f..8178d8fa399 100755 --- a/addons/account/report/account_balance.rml +++ b/addons/account/report/account_balance.rml @@ -42,7 +42,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -80,6 +80,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + [[ setTag('para','para',{'style':('Det_Level'+str(a['level']))}) ]][[ a['jname'] or removeParentNode('tr') ]] - [[ a['level']<4 and removeParentNode('font') or '...'*(2) ]][[ setTag('para','para',{'style':('Det_Level'+str(a['level']))}) ]][ref: [[ a['ref'] or removeParentNode('font') ]] ] [[ a['lname'] ]] + [[ setTag('para','para',{'style':('Det_Level'+str(a['level']))}) ]] [[ setTag('tr','tr',{'style':('TrLevel_Name'+str(a['level']))}) ]][ref: [[ a['ref'] or removeParentNode('font') ]] ] [[ a['lname'] ]] [[ setTag('para','para',{'style':('Det_Amt_Level'+str(a['level']))}) ]][[ formatLang(a['debit1']) and '%.2f'%a['debit1'] or '0.00']] [[ setTag('para','para',{'style':('Det_Amt_Level'+str(a['level']))}) ]][[ formatLang(a['credit1']) and '%.2f'%a['credit1'] or '0.00']] [[ setTag('para','para',{'style':('Det_Amt_Level'+str(a['level']))}) ]][[ formatLang(a['balance1']) and '%.2f'%a['balance1'] or '0.00' ]] @@ -277,4 +302,3 @@ - diff --git a/addons/account/report/account_journal.py b/addons/account/report/account_journal.py index 5110287b2b0..11252b0707a 100644 --- a/addons/account/report/account_journal.py +++ b/addons/account/report/account_journal.py @@ -45,12 +45,28 @@ class journal_print(report_sxw.rml_parse): 'sum_credit': self._sum_credit }) - def lines(self, period_id, journal_id, *args): + def lines(self, period_id, journal_id, sort_selection='date', *args): + if type(period_id)==type([]): + ids_final = [] + for journal in journal_id: + for period in period_id: + ids_journal_period = self.pool.get('account.journal.period').search(self.cr,self.uid, [('journal_id','=',journal),('period_id','=',period)]) + if ids_journal_period: + self.cr.execute('update account_journal_period set state=%s where journal_id=%d and period_id=%d and state=%s', ('printed',journal,period,'draft')) + self.cr.commit() + self.cr.execute('select id from account_move_line where period_id=%d and journal_id=%d and state<>\'draft\' order by ('+ sort_selection +'),id', (period, journal)) + ids = map(lambda x: x[0], self.cr.fetchall()) + ids_final.append(ids) + line_ids = [] + for line_id in ids_final: + a = self.pool.get('account.move.line').browse(self.cr, self.uid, line_id ) + line_ids.append(a) + return line_ids self.cr.execute('update account_journal_period set state=%s where journal_id=%d and period_id=%d and state=%s', ('printed',journal_id,period_id,'draft')) self.cr.commit() self.cr.execute('select id from account_move_line where period_id=%d and journal_id=%d and state<>\'draft\' order by date,id', (period_id, journal_id)) ids = map(lambda x: x[0], self.cr.fetchall()) - return self.pool.get('account.move.line').browse(self.cr, self.uid, ids) + return self.pool.get('account.move.line').browse(self.cr, self.uid, ids ) def _sum_debit(self, period_id, journal_id): self.cr.execute('select sum(debit) from account_move_line where period_id=%d and journal_id=%d and state<>\'draft\'', (period_id, journal_id)) @@ -59,8 +75,8 @@ class journal_print(report_sxw.rml_parse): def _sum_credit(self, period_id, journal_id): self.cr.execute('select sum(credit) from account_move_line where period_id=%d and journal_id=%d and state<>\'draft\'', (period_id, journal_id)) return self.cr.fetchone()[0] or 0.0 -report_sxw.report_sxw('report.account.journal.period.print', 'account.journal.period', 'addons/account/report/account_journal.rml', parser=journal_print) - +report_sxw.report_sxw('report.account.journal.period.print', 'account.journal.period', 'addons/account/report/account_journal.rml', parser=journal_print,header=False) +report_sxw.report_sxw('report.account.journal.period.print.wiz', 'account.journal.period', 'addons/account/report/wizard_account_journal.rml', parser=journal_print,header=False) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/report/account_journal.rml b/addons/account/report/account_journal.rml index 0deffbdee64..4831315864a 100644 --- a/addons/account/report/account_journal.rml +++ b/addons/account/report/account_journal.rml @@ -3,6 +3,37 @@ @@ -13,24 +44,25 @@ - - - + + + + + - + + + + + - - - - - @@ -38,14 +70,18 @@ - - + + - - - - - + + + + + + + + + @@ -53,111 +89,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + [[ repeatIn(objects, 'o') ]] - + - - - + Date - Journal + Voucher No - [[o.period_id.name ]] + A/c No. + + + Third party + + + Entry label + + + Debit + + + Credit - + - [[ company.name ]] + [[o.period_id.name ]] - [[ o.journal_id.code ]] [[ o.journal_id.name ]] + [[ o.journal_id.code ]] + + + + + [[ '%.2f' % sum_debit(o.period_id.id, o.journal_id.id) or '0.00' ]] - Currency: [[ company.currency_id.name ]] + [[ '%.2f' % sum_credit(o.period_id.id, o.journal_id.id) or '0.00' ]] - - + + + [[ repeatIn(lines(o.period_id.id, o.journal_id.id), 'line') ]] + [[ line.date ]] + + + [[ line.ref ]] + + + [[ line.account_id.code ]] + + + [[ line.partner_id and line.partner_id.name ]] + + + [[ line.name ]] + + + [[ line.debit and '%.2f' % line.debit or '0.00' ]] + + + [[ line.credit and '%.2f' % line.credit or '0.00' ]] + + - Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]] - - - - - - - Date - - - Voucher Nb - - - Account Number - - - Third party - - - Entry label - - - Debit - - - Credit - - - - - - [[ repeatIn(lines(o.period_id.id, o.journal_id.id), 'line') ]] - [[ line.date ]] - - - - [[ line.ref ]] - - - [[ line.account_id.code ]] - - - [[ line.partner_id and line.partner_id.name ]] - - - [[ line.name ]] - - - [[ line.debit and '%.2f' % line.debit or '' ]] - - - [[ line.credit and '%.2f' % line.credit or '' ]] - - - - - - - TOTAL: - - - [[ '%.2f' % sum_debit(o.period_id.id, o.journal_id.id) ]] - - - [[ '%.2f' % sum_credit(o.period_id.id, o.journal_id.id) ]] - - - - - - - - + \ No newline at end of file diff --git a/addons/account/report/account_tax_code.py b/addons/account/report/account_tax_code.py new file mode 100644 index 00000000000..b236c087949 --- /dev/null +++ b/addons/account/report/account_tax_code.py @@ -0,0 +1,19 @@ +import time +import pooler +import rml_parse +import copy +from report import report_sxw +import re + +class account_tax_code_report(rml_parse.rml_parse): + _name = 'report.account.tax.code.entries' + def __init__(self, cr, uid, name, context): + super(account_tax_code_report, self).__init__(cr, uid, name, context) + self.localcontext.update({ + 'time': time, + }) + + +report_sxw.report_sxw('report.account.tax.code.entries', 'account.tax.code', + 'addons/account/report/account_tax_code.rml', parser=account_tax_code_report, header=False) + diff --git a/addons/account/report/account_tax_code.rml b/addons/account/report/account_tax_code.rml index ade928c8a9d..c33827bf559 100644 --- a/addons/account/report/account_tax_code.rml +++ b/addons/account/report/account_tax_code.rml @@ -2,7 +2,31 @@ @@ -10,42 +34,29 @@ - - - - - - - - - - - - - + - + - + + + + + + + + + + + + - - - - - - - - - - - - @@ -53,113 +64,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + - [[ repeatIn(objects, 'o') ]] - + + - +
+ - Date + Date - Voucher Nb + Voucher Nb - Account Number + Account Number - Third party (Country) + Third party (Country) - Entry label + Entry label - Debit + Debit - Credit + Credit - - + - - - [[ repeatIn(o.line_ids, 'line') ]] - [[ line.date ]] - - - - [[ line.ref ]] - - - [[ line.account_id.code ]] - - - [[ line.partner_id and line.partner_id.name ]] ([[ line.partner_id and line.partner_id.address and line.partner_id.address[0].country_id.code or '' ]] ) - - - [[ line.name ]] - - - [[ '%.2f' % line.debit ]] - - - [[ '%.2f' % line.credit ]] - + + [[ repeatIn(objects, 'o') ]] + [[ repeatIn(o.line_ids, 'line') ]] + + + + [[ line.date ]] + + + [[ line.ref ]] + + + [[ line.account_id.code ]] + + + [[ line.partner_id and line.partner_id.name ]]([[ line.partner_id and line.partner_id.address and line.partner_id.address[0].country_id.code or removeParentNode('font') ]] ) + + + [[ line.name ]] + + + [[ formatLang(line.debit) or '%.2f' % line.debit ]] + + + [[ formatLang(line.credit) or '%.2f' % line.credit ]] + + + + - - - - TOTAL: - - - - - - - - - - - - - - +
+
diff --git a/addons/account/report/aged_trial_balance.py b/addons/account/report/aged_trial_balance.py index bd04138c8bf..ee7f5555ae9 100755 --- a/addons/account/report/aged_trial_balance.py +++ b/addons/account/report/aged_trial_balance.py @@ -31,13 +31,13 @@ import rml_parse from report import report_sxw class aged_trial_report(rml_parse.rml_parse): - + def __init__(self, cr, uid, name, context): super(aged_trial_report, self).__init__(cr, uid, name, context) self.line_query = '' self.total_account = [] - - + + self.localcontext.update({ 'time': time, 'get_lines': self._get_lines, @@ -46,19 +46,19 @@ class aged_trial_report(rml_parse.rml_parse): 'get_for_period': self._get_for_period, 'get_company': self._get_company, 'get_currency': self._get_currency, - + }) - - + + def _get_lines(self, form): - + if (form['result_selection'] == 'customer' ): self.ACCOUNT_TYPE = "('receivable')" elif (form['result_selection'] == 'supplier'): self.ACCOUNT_TYPE = "('payable')" else: self.ACCOUNT_TYPE = "('payable','receivable')" - + res = [] account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line') @@ -78,7 +78,7 @@ class aged_trial_report(rml_parse.rml_parse): for i in range(7): self.total_account.append(0) # - + for partner in partners: values = {} ## If choise selection is in the future @@ -94,7 +94,7 @@ class aged_trial_report(rml_parse.rml_parse): "AND account_account.active", (form['date1'], partner['id'],form['date1'], form['company_id'])) before = self.cr.fetchone() - + self.total_account[6] = self.total_account[6] + (before and before[0] or 0.0) values['direction'] = before and before[0] or 0.0 @@ -112,7 +112,6 @@ class aged_trial_report(rml_parse.rml_parse): after = self.cr.fetchone() self.total_account[6] = self.total_account[6] + (after and after[0] or 0.0) values['direction'] = after and after[0] or "" - #print str(values['direction']) for i in range(5): self.cr.execute("SELECT SUM(debit-credit) " \ "FROM account_move_line AS line, account_account " \ @@ -128,8 +127,6 @@ class aged_trial_report(rml_parse.rml_parse): during = self.cr.fetchone() # Ajout du compteur self.total_account[(i)] = self.total_account[(i)] + (during and during[0] or 0) - - #print str(during) values[str(i)] = during and during[0] or "" self.cr.execute("SELECT SUM(debit-credit) " \ "FROM account_move_line AS line, account_account " \ @@ -145,19 +142,16 @@ class aged_trial_report(rml_parse.rml_parse): values['total'] = total and total[0] or 0.0 ## Add for total self.total_account[(i+1)] = self.total_account[(i+1)] + (total and total[0] or 0.0) - print self.total_account,">>>>>>>>>>>>>Total>>>>>>>>>>>>>>>>" values['name'] = partner['name'] #t = 0.0 #for i in range(5)+['direction']: # t+= float(values.get(str(i), 0.0) or 0.0) #values['total'] = t - + if values['total']: - res.append(values) - + total = 0.0 - totals = {} for r in res: total += float(r['total'] or 0.0) @@ -166,24 +160,17 @@ class aged_trial_report(rml_parse.rml_parse): totals[str(i)] += float(r[str(i)] or 0.0) return res - - - def _get_total(self,pos): - print self.total_account,"========_get_total========" period = self.total_account[int(pos)] - return period + return period - def _get_direction(self,pos): - period = self.total_account[int(pos)] - return period + return period def _get_for_period(self,pos): - period = self.total_account[int(pos)] - return period + return period def _get_company(self, form): return pooler.get_pool(self.cr.dbname).get('res.company').browse(self.cr, self.uid, form['company_id']).name @@ -194,5 +181,5 @@ class aged_trial_report(rml_parse.rml_parse): report_sxw.report_sxw('report.account.aged_trial_balance', 'res.partner', 'addons/account/report/aged_trial_balance.rml',parser=aged_trial_report,header=False) - + diff --git a/addons/account/report/central_journal.py b/addons/account/report/central_journal.py index c4dab8fc600..7b595a311a7 100644 --- a/addons/account/report/central_journal.py +++ b/addons/account/report/central_journal.py @@ -55,7 +55,7 @@ class journal_print(report_sxw.rml_parse): def _sum_credit(self, period_id, journal_id): self.cr.execute('select sum(credit) from account_move_line where period_id=%d and journal_id=%d and state<>\'draft\'', (period_id, journal_id)) return self.cr.fetchone()[0] or 0.0 -report_sxw.report_sxw('report.account.central.journal', 'account.journal.period', 'addons/account/report/central_journal.rml',parser=journal_print) +report_sxw.report_sxw('report.account.central.journal', 'account.journal.period', 'addons/account/report/central_journal.rml',parser=journal_print, header=False) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/report/central_journal.rml b/addons/account/report/central_journal.rml index 359465379d2..ade1659de58 100644 --- a/addons/account/report/central_journal.rml +++ b/addons/account/report/central_journal.rml @@ -3,6 +3,30 @@ @@ -10,44 +34,62 @@ - - - - - - - - - - - - - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - @@ -55,104 +97,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + - [[ repeatIn(objects, 'o') ]] - + + - Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]] - + - + [[ repeatIn(objects, 'o') ]] + - Account number + Journal Code - Account name + Journal Name - Currency - - - Debit - - - Credit + Printing Date - + - [[ repeatIn(lines(o.period_id.id, o.journal_id.id), 'line') ]][[ line['code'] ]] + [[ o.journal_id.code or '' ]] - [[ line['name'] ]] + [[ o.journal_id.name ]] - - - - - - [[ line['debit'] and '%.2f' % line['debit'] or '' ]] - - - [[ line['credit'] and '%.2f' % line['credit'] or '' ]] + [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]] - - - - TOTAL: - - - [[ '%.2f' % sum_debit(o.period_id.id, o.journal_id.id) ]] - - - [[ '%.2f' % sum_credit(o.period_id.id, o.journal_id.id) ]] - - - - + - - + + + + + + + Account Num. + + + Account Name + + + Debit + + + Credit + + + + + + + + + Total: + + + + + + + + [[ '%.2f' % sum_debit(o.period_id.id, o.journal_id.id) ]] + + + [[ '%.2f' % sum_credit(o.period_id.id, o.journal_id.id) ]] + + + + + + + + + [[ repeatIn(lines(o.period_id.id,o.journal_id.id),'line') ]] + + + + [[ line['code'] ]] + + + [[ line['name'] ]] + + + [[ formatLang(line['debit']) and '%.2f' % line['debit'] or '0.00' ]] + + + [[ formatLang(line['credit']) and '%.2f' % line['credit'] or '0.00' ]] + + + + + + +
- diff --git a/addons/account/report/general_journal.py b/addons/account/report/general_journal.py index 9233a98b765..8899977e17a 100644 --- a/addons/account/report/general_journal.py +++ b/addons/account/report/general_journal.py @@ -96,7 +96,7 @@ class journal_print(report_sxw.rml_parse): return 0.0 self.cr.execute('select sum(credit) from account_move_line where period_id in (' + self.period_ids + ') and journal_id in (' + self.journal_ids + ') and state<>\'draft\'') return self.cr.fetchone()[0] or 0.0 -report_sxw.report_sxw('report.account.general.journal', 'account.journal.period', 'addons/account/report/general_journal.rml',parser=journal_print) +report_sxw.report_sxw('report.account.general.journal', 'account.journal.period', 'addons/account/report/general_journal.rml',parser=journal_print, header=False) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/report/general_journal.rml b/addons/account/report/general_journal.rml index 8de0f1a82ea..f89c7d201b6 100644 --- a/addons/account/report/general_journal.rml +++ b/addons/account/report/general_journal.rml @@ -1,8 +1,32 @@ - - + - + - + - + - - + + - - + + @@ -91,7 +91,7 @@ - [[ data['form']['amount_currency'] == False or removeParentNode('blockTable') ]] + [[ data['form']['amount_currency'] == False or removeParentNode('blockTable') ]] Date @@ -122,7 +122,7 @@ [[ repeatIn(objects, 'a') ]] [[ repeatIn(get_children_accounts(a,data['form']), 'o') ]] - + @@ -139,7 +139,7 @@ [[sum_solde_account(o, data['form']) or '0.0' ]] - + @@ -147,7 +147,7 @@ - + Balance Initial @@ -169,13 +169,13 @@ [[ (o.init_debit - o.init_credit) or '0.0' ]] - + [[ repeatIn(lines(o, data['form']), 'line') ]] [[ line['date'] ]] - + [[ line['partner'] ]] @@ -197,14 +197,14 @@ [[ line['progress'] and line['progress'] or '0.0' ]] - + - - [[ data['form']['amount_currency'] == True or removeParentNode('blockTable') ]] + + [[ data['form']['amount_currency'] == True or removeParentNode('blockTable') ]] Date @@ -229,17 +229,17 @@ Balance - + Currency - - + + [[ repeatIn(objects, 'a') ]] [[ repeatIn(get_children_accounts(a,data['form']), 'o') ]] - + @@ -256,18 +256,18 @@ [[sum_solde_account(o, data['form']) or '0.0' ]] - + [[ sum_currency_amount_account(a, data['form']) or '0.0' ]] - + [[ data['form']['soldeinit'] == True or removeParentNode('tr') ]] - + Balance Initial @@ -292,7 +292,7 @@ - + [[ repeatIn(lines(o, data['form']), 'line') ]] @@ -323,15 +323,15 @@ [[ line['amount_currency'] or '0.0' ]] [[ line['currency_code'] ]] - + - + - + - - - - + + + + \ No newline at end of file diff --git a/addons/account/report/general_ledger_landscape.py b/addons/account/report/general_ledger_landscape.py index f090b18c090..a091ec905dd 100755 --- a/addons/account/report/general_ledger_landscape.py +++ b/addons/account/report/general_ledger_landscape.py @@ -35,8 +35,8 @@ import pooler class general_ledger_landscape(rml_parse.rml_parse): _name = 'report.account.general.ledger_landscape' - - + + def preprocess(self, objects, data, ids): ## self.borne_date = self.get_min_date(data['form']) @@ -46,18 +46,18 @@ class general_ledger_landscape(rml_parse.rml_parse): new_ids = ids else: new_ids.append(data['form']['Account_list']) - + objects = self.pool.get('account.account').browse(self.cr, self.uid, new_ids) - - super(general_ledger_landscape, self).preprocess(objects, data, new_ids) - + + super(general_ledger_landscape, self).preprocess(objects, data, new_ids) + def __init__(self, cr, uid, name, context): super(general_ledger_landscape, self).__init__(cr, uid, name, context) self.query = "" self.child_ids = "" self.tot_currency = 0.0 self.period_sql = "" - self.sold_accounts = {} + self.sold_accounts = {} self.localcontext.update( { 'time': time, 'lines': self.lines, @@ -66,7 +66,7 @@ class general_ledger_landscape(rml_parse.rml_parse): 'sum_solde_account': self._sum_solde_account, 'sum_debit': self._sum_debit, 'sum_credit': self._sum_credit, - 'sum_solde': self._sum_solde, + 'sum_solde': self._sum_solde, 'get_children_accounts': self.get_children_accounts, 'sum_currency_amount_account': self._sum_currency_amount_account }) @@ -75,7 +75,7 @@ class general_ledger_landscape(rml_parse.rml_parse): result = {} #for id in ids: # result.setdefault(id, False) - + for account_line in self.pool.get('account.move.line').browse(cr, uid, ids, context): # For avoid long text in the field we will limit it to 5 lines # @@ -85,7 +85,7 @@ class general_ledger_landscape(rml_parse.rml_parse): num_id_move = str(account_line.move_id.id) num_id_line = str(account_line.id) account_id = str(account_line.account_id.id) - # search the basic account + # search the basic account # We have the account ID we will search all account move line from now until this time # We are in the case of we are on the top of the account move Line cr.execute('SELECT distinct(ac.code) as code_rest,ac.name as name_rest from account_account AS ac, account_move_line mv\ @@ -103,10 +103,8 @@ class general_ledger_landscape(rml_parse.rml_parse): result[account_line.id] = concat + '...' break rup_id+=1 - - #print str(result) return result - + def get_min_date(self,form): ## Get max born from account_fiscal year # @@ -123,9 +121,9 @@ class general_ledger_landscape(rml_parse.rml_parse): periods = form['periods'][0][2] if not periods: sql = """ - Select min(p.date_start) from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """ + Select min(p.date_start) from account_period as p where p.fiscalyear_id = """ + str(form['fiscalyear']) + """ """ - else: + else: periods_id = ','.join(map(str, periods)) sql = """ Select min(p.date_start) from account_period as p where p.id in ( """ + periods_id + """) @@ -141,30 +139,30 @@ class general_ledger_landscape(rml_parse.rml_parse): } return date_borne - - + + def get_children_accounts(self, account, form): - - + + self.child_ids = self.pool.get('account.account').search(self.cr, self.uid, [('parent_id', 'child_of', self.ids)]) -# +# res = [] ctx = self.context.copy() ## We will make the test for period or date ## We will now make the test # - if form.has_key('fiscalyear'): + if form.has_key('fiscalyear'): ctx['fiscalyear'] = form['fiscalyear'] ctx['periods'] = form['periods'][0][2] else: ctx['date_from'] = form['date_from'] ctx['date_to'] = form['date_to'] ## - + # self.query = self.pool.get('account.move.line')._query_get(self.cr, self.uid, context=ctx) - + for child_id in self.pool.get('account.account').search(self.cr, self.uid,[('parent_id', 'child_of', [account.id])]): child_account = self.pool.get('account.account').browse(self.cr, self.uid, child_id) sold_account = self._sum_solde_account(child_account,form) @@ -175,7 +173,6 @@ class general_ledger_landscape(rml_parse.rml_parse): [('account_id','=',child_account.id)], context=ctx)) <> 0 : res.append(child_account) - #print "Type de vue :" + form['display_account'] elif form['display_account'] == 'bal_solde': if child_account.type != 'view' \ and len(self.pool.get('account.move.line').search(self.cr, self.uid, @@ -183,7 +180,7 @@ class general_ledger_landscape(rml_parse.rml_parse): context=ctx)) <> 0 : if ( sold_account <> 0.0): res.append(child_account) - else: + else: if child_account.type != 'view' \ and len(self.pool.get('account.move.line').search(self.cr, self.uid, [('account_id','=',child_account.id)], @@ -205,17 +202,17 @@ class general_ledger_landscape(rml_parse.rml_parse): sum_credit = 0 else: sum_credit = resultat[0]['sum_credit'] - + move.init_credit = sum_credit move.init_debit = sum_debit - + else: move.init_credit = 0 move.init_debit = 0 - + ## return res - + def lines(self, account, form): inv_types = { 'out_invoice': 'CI: ', @@ -229,9 +226,9 @@ class general_ledger_landscape(rml_parse.rml_parse): else: sorttag = 'j.code' sql = """ - SELECT l.id, l.date, j.code,c.code AS currency_code,l.amount_currency,l.ref, l.name, l.debit, l.credit, l.period_id + SELECT l.id, l.date, j.code,c.code AS currency_code,l.amount_currency,l.ref, l.name, l.debit, l.credit, l.period_id FROM account_move_line l LEFT JOIN res_currency c on (l.currency_id=c.id) JOIN account_journal j on (l.journal_id=j.id) - AND account_id = %d AND %s + AND account_id = %d AND %s ORDER by %s"""%(account.id,self.query,sorttag) self.cr.execute(sql) res = self.cr.dictfetchall() @@ -258,11 +255,11 @@ class general_ledger_landscape(rml_parse.rml_parse): if (l['credit'] > 0): if l['amount_currency'] != None: l['amount_currency'] = abs(l['amount_currency']) * -1 - + # if l['amount_currency'] != None: - self.tot_currency = self.tot_currency + l['amount_currency'] - + self.tot_currency = self.tot_currency + l['amount_currency'] + return res def _sum_debit_account(self, account, form): @@ -291,7 +288,7 @@ class general_ledger_landscape(rml_parse.rml_parse): sum_credit += account.init_credit # ## - + return sum_credit def _sum_solde_account(self, account, form): @@ -301,7 +298,7 @@ class general_ledger_landscape(rml_parse.rml_parse): sum_solde = self.cr.fetchone()[0] or 0.0 if form['soldeinit']: sum_solde += account.init_debit - account.init_credit - + return sum_solde def _sum_debit(self, form): @@ -330,31 +327,24 @@ class general_ledger_landscape(rml_parse.rml_parse): self.cr.execute("SELECT (sum(debit) - sum(credit)) as tot_solde "\ "FROM account_move_line l "\ "WHERE l.account_id in ("+','.join(map(str, self.child_ids))+") AND "+self.query) -# print ("SELECT (sum(debit) - sum(credit)) as Test "\ -# "FROM account_move_line l "\ -# "WHERE l.account_id in ("+','.join(map(str, child_ids))+") AND "+query+period_sql) sum_solde = self.cr.fetchone()[0] or 0.0 return sum_solde - + def _set_get_account_currency_code(self, account_id): - print"====account_id=====",account_id self.cr.execute("SELECT c.code as code "\ "FROM res_currency c,account_account as ac "\ "WHERE ac.id = %s AND ac.currency_id = c.id"%(account_id)) result = self.cr.fetchone() - print"====result====",result if result: self.account_currency = result[0] else: self.account_currency = False - - + def _sum_currency_amount_account(self, account, form): - self._set_get_account_currency_code(account.id) self.cr.execute("SELECT sum(aml.amount_currency) FROM account_move_line as aml,res_currency as rc WHERE aml.currency_id = rc.id AND aml.account_id= %d "%account.id) total = self.cr.fetchone() - + if self.account_currency: return_field = str(total[0]) + self.account_currency return return_field diff --git a/addons/account/report/general_ledger_landscape.rml b/addons/account/report/general_ledger_landscape.rml index 439dff350bb..16ddfa9a594 100755 --- a/addons/account/report/general_ledger_landscape.rml +++ b/addons/account/report/general_ledger_landscape.rml @@ -16,7 +16,7 @@ [[ company.name ]] - General Ledger + General Ledger - [[ company.currency_id.name ]] @@ -24,39 +24,39 @@ Page - + 1.3cm 24.9cm 38.3cm 24.9cm - + - + - + - + - + - - + + - - + + @@ -92,10 +92,10 @@ - - - [[ data['form']['amount_currency'] == True or removeParentNode('blockTable') ]] - + + + [[ data['form']['amount_currency'] == True or removeParentNode('blockTable') ]] + @@ -145,10 +145,10 @@ [[ repeatIn(objects, 'a') ]] [[ repeatIn(get_children_accounts(a,data['form']), 'o') ]] - + - - + + @@ -165,18 +165,18 @@ [[ sum_solde_account(o, data['form']) or '0.0' ]] - + [[ sum_currency_amount_account(o, data['form']) or '0.0' ]] - + [[ data['form']['soldeinit'] == True or removeParentNode('tr') ]] Balance Initial - + @@ -207,13 +207,13 @@ - - - + + + [[ repeatIn(lines(o, data['form']), 'line') ]] - + [[ line['date'] ]] @@ -247,17 +247,17 @@ [[ line['amount_currency'] or '0.0' ]] [[ line['currency_code'] ]] - - + + - - - + + + - - - [[ data['form']['amount_currency'] == False or removeParentNode('blockTable') ]] + + + [[ data['form']['amount_currency'] == False or removeParentNode('blockTable') ]] @@ -320,7 +320,7 @@ Balance - + [[ repeatIn(objects, 'a') ]] @@ -342,14 +342,14 @@ [[sum_solde_account(o, data['form']) or '0.0' ]] - + [[ data['form']['soldeinit'] == True or removeParentNode('tr') ]] - + Solde Initial @@ -368,7 +368,7 @@ - + [[ o.init_debit or '0.0' ]] @@ -378,7 +378,7 @@ [[ o.init_debit - o.init_credit or '0.0' ]] - + [[ repeatIn(lines(o, data['form']), 'line') ]] @@ -412,15 +412,15 @@ [[ line['progress'] and line['progress'] or '0.0' ]] - -
+ +
-
+
- - + + - + \ No newline at end of file diff --git a/addons/account/report/overdue.rml b/addons/account/report/overdue.rml index f9f213f0d89..aa0d111b28f 100644 --- a/addons/account/report/overdue.rml +++ b/addons/account/report/overdue.rml @@ -14,195 +14,193 @@ + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - [[ repeatIn(objects,'o') ]] - [[ setLang(o.lang) ]] + [[ repeatIn(objects,'o') ]] + [[ setLang(o.lang) ]] - + - [[ o.name ]] - [[ adr_get(o, 'invoice')['name'] ]] - [[ adr_get(o, 'invoice')['street'] ]] - [[ adr_get(o, 'invoice')['zip'] ]] [[ adr_get(o, 'invoice')['city'] ]] - [[ adr_get(o, 'invoice')['country_id'] and adr_get(o, 'invoice')['country_id'][1] ]] - + [[ o.name ]] + [[ adr_get(o, 'invoice')['name'] ]] + [[ adr_get(o, 'invoice')['street'] ]] + [[ adr_get(o, 'invoice')['zip'] ]] [[ adr_get(o, 'invoice')['city'] ]] + [[ adr_get(o, 'invoice')['country_id'] and adr_get(o, 'invoice')['country_id'][1] ]] + - VAT: [[ o.vat or removeParentNode('para') ]] + VAT: [[ o.vat or removeParentNode('para') ]] + + + + + + + Document: Customer account statement - + Date: + [[ time.strftime('%d/%m/%Y') ]] - - - - Document: Customer account statement - - Date: - [[ time.strftime('%d/%m/%Y') ]] - - Customer Ref: [[ o.id ]] - - - - Dear Sir/Madam, - - - - Exception made of a mistake of our side, it seems that the following bills stay unpaid. Please, take appropriate measures in order to carry out this payment in the next 8 days. - - - - Would your payment have been carried out after this mail was sent, please consider the present one as void. Do not hesitate to contact our accounting departement at [[ tel_get(company.partner_id) ]]. - - - - Best regards. + Customer Ref: [[ o.id ]] - + Dear Sir/Madam, + + + + Exception made of a mistake of our side, it seems that the following bills stay unpaid. Please, take appropriate measures in order to carry out this payment in the next 8 days. + + + + Would your payment have been carried out after this mail was sent, please consider the present one as void. Do not hesitate to contact our accounting departement at +32 81 81 37 00. + + + + Best regards. + + + + - Date + Date - Description + Description - Ref + Ref - Maturity date + Maturity date - Due + Due - Paid + Paid - Maturity + Maturity - Li. + Li. - + - - [[repeatIn(getLines(o), 'line') ]] - [[ line['date'] ]] - + Sub-Total: + + + + + + [[ '%.2f' % (reduce(lambda x, y: x + (y['debit'] * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] - [[ line['name'] ]] + [[ '%.2f' % (reduce(lambda x ,y: x + (y['credit'] * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] - [[ line['ref'] ]] + [[ '%.2f' % (reduce(lambda x, y: x + ((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), filter(lambda x: x['date_maturity'] < time.strftime('%Y-%m-%d'), getLines(o)), 0)) ]] - [[ line['date_maturity'] ]] - - - [[ line['debit'] and '%.2f' % (line['debit'] * (line['account_id']['type'] == 'payable' and -1 or 1)) or '' ]] - - - [[ line['credit'] and '%.2f' % (line['credit'] * (line['account_id']['type'] == 'payable' and -1 or 1)) or '' ]] - - - [[ (line['date_maturity'] < time.strftime('%Y-%m-%d')) and '%.2f' % ((line['debit'] - line['credit']) * (line['account_id']['type'] == 'payable' and -1 or 1)) or '' ]] - - - [[ line['blocked'] and 'X' or '' ]] - - - - - - - Sub-Total: - - - [[ '%.2f' % (reduce(lambda x, y: x + (y['debit'] * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] - - - - [[ '%.2f' % (reduce(lambda x ,y: x + (y['credit'] * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] - - - - [[ '%.2f' % (reduce(lambda x, y: x + ((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), filter(lambda x: x['date_maturity'] < time.strftime('%Y-%m-%d'), getLines(o)), 0)) ]] - - - + - Balance: + Balance: + + + + + + [[ '%.2f' % (reduce(lambda x, y: x +((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] - [[ '%.2f' % (reduce(lambda x, y: x +((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] + + + @@ -210,27 +208,52 @@ - + + + + + + + [[repeatIn(getLines(o), 'line') ]] + [[ line['date'] ]] + + - - - + [[ line['name'] ]] + + + [[ line['ref'] ]] + + + [[ line['date_maturity'] ]] + + + [[ line['debit'] and '%.2f' % (line['debit'] * (line['account_id']['type'] == 'payable' and -1 or 1)) or '' ]] + + + [[ line['credit'] and '%.2f' % (line['credit'] * (line['account_id']['type'] == 'payable' and -1 or 1)) or '' ]] + + + [[ (line['date_maturity'] < time.strftime('%Y-%m-%d')) and '%.2f' % ((line['debit'] - line['credit']) * (line['account_id']['type'] == 'payable' and -1 or 1)) or '' ]] + + + [[ line['blocked'] and 'X' or '' ]] - + - - Total amount due: - [[ '%.2f' % (reduce(lambda x, y: x + ((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] [[ company.currency_id.name ]]. + + Total amount due: + [[ '%.2f' % (reduce(lambda x, y: x + ((y['debit'] - y['credit']) * (y['account_id']['type'] == 'payable' and -1 or 1)), getLines(o), 0)) ]] [[ company.currency_id.name ]] + . - + - diff --git a/addons/account/report/partner_balance.py b/addons/account/report/partner_balance.py index e7313354aea..519456527c8 100644 --- a/addons/account/report/partner_balance.py +++ b/addons/account/report/partner_balance.py @@ -67,10 +67,13 @@ class partner_balance(report_sxw.rml_parse): return full_str_date # + + def transform_period_into_date_array(self,data): ## Get All Period Date # # If we have no period we will take all perdio in the FiscalYear. + print"data['form']['periods'][0][2]",data['form']['periods'][0][2] if not data['form']['periods'][0][2] : periods_id = self.pool.get('account.period').search(self.cr, self.uid, [('fiscalyear_id','=',data['form']['fiscalyear'])]) else: @@ -79,7 +82,6 @@ class partner_balance(report_sxw.rml_parse): for period_id in periods_id: period_obj = self.pool.get('account.period').browse(self.cr, self.uid, period_id) date_array = date_array + self.date_range(period_obj.date_start,period_obj.date_stop) - self.date_lst = date_array self.date_lst.sort() @@ -89,7 +91,54 @@ class partner_balance(report_sxw.rml_parse): self.date_lst = return_array self.date_lst.sort() - + def transform_both_into_date_array(self,data): + if not data['form']['periods'][0][2] : + periods_id = self.pool.get('account.period').search(self.cr, self.uid, [('fiscalyear_id','=',data['form']['fiscalyear'])]) + else: + periods_id = data['form']['periods'][0][2] + date_array = [] + for period_id in periods_id: + period_obj = self.pool.get('account.period').browse(self.cr, self.uid, period_id) + date_array = date_array + self.date_range(period_obj.date_start,period_obj.date_stop) + + period_start_date = date_array[0] + date_start_date = data['form']['date1'] + period_stop_date = date_array[-1] + date_stop_date = data['form']['date2'] + + if period_start_date sum(credit) " \ @@ -178,6 +245,7 @@ class partner_balance(report_sxw.rml_parse): # # # + self.cr.execute( "SELECT p.ref,l.account_id,ac.name as account_name,ac.code as code ,p.name, sum(debit) as debit, sum(credit) as credit, " \ "CASE WHEN sum(debit) > sum(credit) " \ @@ -202,7 +270,7 @@ class partner_balance(report_sxw.rml_parse): "GROUP BY p.id, p.ref, p.name,l.account_id,ac.name,ac.code " \ "ORDER BY l.account_id,p.name") res = self.cr.dictfetchall() - print"=====res=====",res + for r in res: full_account.append(r) @@ -229,18 +297,19 @@ class partner_balance(report_sxw.rml_parse): new_header['ref'] = '' new_header['name'] = r['account_name'] new_header['code'] = r['code'] - new_header['debit'] = 0 - new_header['credit'] = 0 - new_header['scredit'] = 0 - new_header['sdebit'] = 0 - new_header['enlitige'] = 0 - new_header['balance'] = 0 + new_header['debit'] = tot_debit + new_header['credit'] = tot_credit + new_header['scredit'] = tot_scredit + new_header['sdebit'] = tot_sdebit + new_header['enlitige'] = tot_enlitige + new_header['balance'] = float(tot_sdebit) - float(tot_scredit) new_header['type'] = 3 ## completearray.append(new_header) # r['type'] = 1 r['balance'] = float(r['sdebit']) - float(r['scredit']) + completearray.append(r) # tot_debit = r['debit'] @@ -252,21 +321,27 @@ class partner_balance(report_sxw.rml_parse): else: if cleanarray[i]['account_id'] <> cleanarray[i-1]['account_id']: ## - new_tot = {} - new_tot['ref'] = 'Total' - new_tot['name'] = cleanarray[i-1]['account_name'] - new_tot['code'] = cleanarray[i-1]['code'] - - new_tot['debit'] = tot_debit - new_tot['credit'] = tot_credit - new_tot['scredit'] = tot_scredit - new_tot['sdebit'] = tot_sdebit - new_tot['enlitige'] = tot_enlitige - new_tot['balance'] = float(tot_sdebit) - float(tot_scredit) - new_tot['type'] = 3 - ## - completearray.append(new_tot) - +# new_tot = {} +# new_tot['ref'] = 'Total' +# new_tot['name'] = cleanarray[i-1]['account_name'] +# new_tot['code'] = cleanarray[i-1]['code'] +# +# new_tot['debit'] = tot_debit +# new_tot['credit'] = tot_credit +# new_tot['scredit'] = tot_scredit +# new_tot['sdebit'] = tot_sdebit +# new_tot['enlitige'] = tot_enlitige +# new_tot['balance'] = float(tot_sdebit) - float(tot_scredit) +# new_tot['type'] = 3 +# ## +# completearray.append(new_tot) + new_header['debit'] = tot_debit + new_header['credit'] = tot_credit + new_header['scredit'] = tot_scredit + new_header['sdebit'] = tot_sdebit + new_header['enlitige'] = tot_enlitige + new_header['balance'] = float(tot_sdebit) - float(tot_scredit) + new_header['type'] = 3 # we reset the counter tot_debit = r['debit'] tot_credit = r['credit'] @@ -279,12 +354,12 @@ class partner_balance(report_sxw.rml_parse): new_header['ref'] = '' new_header['name'] = r['account_name'] new_header['code'] = r['code'] - new_header['debit'] = 0 - new_header['credit'] = 0 - new_header['scredit'] = 0 - new_header['sdebit'] = 0 - new_header['enlitige'] = 0 - new_header['balance'] = 0 + new_header['debit'] = tot_debit + new_header['credit'] = tot_credit + new_header['scredit'] = tot_scredit + new_header['sdebit'] = tot_sdebit + new_header['enlitige'] = tot_enlitige + new_header['balance'] = float(tot_sdebit) - float(tot_scredit) new_header['type'] = 3 ## ## @@ -296,8 +371,10 @@ class partner_balance(report_sxw.rml_parse): r['balance'] = float(r['sdebit']) - float(r['scredit']) # completearray.append(r) + if cleanarray[i]['account_id'] == cleanarray[i-1]['account_id']: # we reset the counter + tot_debit = tot_debit + r['debit'] tot_credit = tot_credit + r['credit'] tot_scredit = tot_scredit + r['scredit'] @@ -308,8 +385,11 @@ class partner_balance(report_sxw.rml_parse): # r['balance'] = float(r['sdebit']) - float(r['scredit']) # + completearray.append(r) + i = i + 1 + return completearray @@ -320,6 +400,7 @@ class partner_balance(report_sxw.rml_parse): result_tmp = 0.0 # # + if data['form']['soldeinit'] : self.cr.execute( 'SELECT sum(debit) ' \ @@ -443,17 +524,21 @@ class partner_balance(report_sxw.rml_parse): # ' account_id IN (' + self.account_ids + ') ' \ 'l.date IN (' + self.date_lst_string + ') ' \ 'GROUP BY partner_id') - + a = self.cr.fetchone()[0] + print"====self.cr.fetchone()====",a if self.cr.fetchone() != None: - result_tmp = result_tmp + float(self.cr.fetchone()[0] or 0.0) + result_tmp = result_tmp + (a or 0.0) else: result_tmp = 0.0 + return result_tmp def _sum_scredit(self,data): + if not self.ids: return 0.0 account_move_line_obj = pooler.get_pool(self.cr.dbname).get('account.move.line') + result_tmp = 0.0 # # @@ -470,8 +555,9 @@ class partner_balance(report_sxw.rml_parse): 'AND l.reconcile_id IS NULL ' \ 'GROUP BY partner_id', (self.date_lst[0],)) + print"self.cr.fetchone()[0]",self.cr.fetchone() if self.cr.fetchone() != None: - result_tmp = float(self.cr.fetchone()[0]) + result_tmp = float(self.cr.fetchone()[0]) or 0.0 else: result_tmp = 0.0 # @@ -486,9 +572,10 @@ class partner_balance(report_sxw.rml_parse): # ' account_id IN (' + self.account_ids + ') ' \ 'l.date IN (' + self.date_lst_string + ') ' \ 'GROUP BY partner_id') - + a = self.cr.fetchone()[0] if self.cr.fetchone() != None: - result_tmp = result_tmp + float(self.cr.fetchone()[0] or 0.0) + result_tmp = result_tmp + (a or 0.0) + else: result_tmp = 0.0 diff --git a/addons/account/report/partner_balance.rml b/addons/account/report/partner_balance.rml index 5e99323bb09..561eb07f505 100644 --- a/addons/account/report/partner_balance.rml +++ b/addons/account/report/partner_balance.rml @@ -3,6 +3,7 @@ @@ -55,11 +57,13 @@ - - - - - + + + + + @@ -76,24 +80,29 @@ - + - - + - - + + + + + + + - - + + + @@ -103,106 +112,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - Grand total - - - [[ comma_me(sum_debit(data)) ]] - - - [[ comma_me(sum_credit(data)) ]] - - - [[ comma_me(sum_sdebit(data)) ]] - - - [[ comma_me(sum_scredit(data)) ]] - - - [[ comma_me(sum_litige(data)) ]] - - - - - Balance - - - - - - - - - - - - - [[ comma_me(solde_debit(data)) ]] - - - [[ comma_me(solde_credit(data)) ]] - - - - - - - - - - - - Code + [[ setTag('tr','tr',{'style':'Line1'}) ]] Code Partner name - Débit + Débit - Crédit + Crédit - Balance + Balance - In dispute + In dispute - [[ repeatIn(lines(data), 'a') ]][[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ a['ref'] ]] + [[ setTag('tr','tr',{'style':'Line2'}) ]] Grand total - [[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ a['type']==3 and a['code'] ]] [[ a['name'] ]] + - [[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ comma_me(a['debit']) ]] + [[ sum_debit(data) or '0.0' ]] - [[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ comma_me(a['credit']) ]] + [[ sum_credit(data) or '0.0' ]] - [[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ comma_me(a['balance']) ]] + [[ (sum_scredit(data)-sum_sdebit(data)) or '0.0' ]] - [[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ comma_me(a['enlitige']) ]] + [[ sum_litige(data) or '0.0' ]] + + + + + + [[ repeatIn(lines(data), 'a') ]][[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ a['ref'] ]] [[ a['type']==3 and a['code'] ]] + + + [[ a['type']==3 and ( setTag('tr','tr',{'style':'TrLevel0'})) ]] [[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]] [[ a['type']==1 and ( setTag('blockTable','blockTable',{'style':'LineLevel1'})) ]] [[ a['name'] ]] + + + + [[ (a['type']==3 or removeParentNode('font')) and setTag('para','para',{'fontName':'Helvetica-Bold'}) ]] [[ a['debit'] or '0.0' ]] + [[ (a['type']!=3 or removeParentNode('font')) and setTag('para','para',{'fontName':'Helvetica'}) ]] [[ a['debit'] or '0.0' ]] + + + + + [[ (a['type']==3 or removeParentNode('font')) and setTag('para','para',{'fontName':'Helvetica-Bold'}) ]] [[ a['credit'] or '0.0' ]] + [[ (a['type']!=3 or removeParentNode('font')) and setTag('para','para',{'fontName':'Helvetica'}) ]] [[ a['credit'] or '0.0' ]] + + + + + [[ (a['type']==3 or removeParentNode('font')) and setTag('para','para',{'fontName':'Helvetica-Bold'}) ]] [[ a['balance'] or '0.0' ]] + [[ (a['type']!=3 or removeParentNode('font')) and setTag('para','para',{'fontName':'Helvetica'}) ]] [[ a['balance'] or '0.0' ]] + + + + + [[ (a['type']==3 or removeParentNode('font')) and setTag('para','para',{'fontName':'Helvetica-Bold'}) ]] [[ a['enlitige'] or '0.0' ]] + [[ (a['type']!=3 or removeParentNode('font')) and setTag('para','para',{'fontName':'Helvetica'}) ]] [[ a['enlitige'] or '0.0' ]] + - - - - - - - - - + \ No newline at end of file diff --git a/addons/account/report/tax_report.py b/addons/account/report/tax_report.py index 445ca968878..6e8cc64f29c 100755 --- a/addons/account/report/tax_report.py +++ b/addons/account/report/tax_report.py @@ -87,7 +87,7 @@ class tax_report(rml_parse.rml_parse): while ind_general < len(res_general) : res_general[ind_general]['type'] = 2 res_general[ind_general]['pos'] = 0 - res_general[ind_general]['level'] = res_dict['level'] + ' ' + res_general[ind_general]['level'] = res_dict['level'] top_result.append(res_general[ind_general]) ind_general+=1 i+=1 @@ -143,6 +143,7 @@ class tax_report(rml_parse.rml_parse): GROUP BY account.id,account.name,account.code', ('draft',tax_code_id, company_id)) res = self.cr.dictfetchall() + #AND line.period_id IN ('+ period_sql_list +') \ i = 0 @@ -158,7 +159,7 @@ class tax_report(rml_parse.rml_parse): res = [] for code in tc.browse(self.cr, self.uid, ids, {'based_on': based_on}): res.append(('a'*2*level,code)) - print"=====res=====",res + res += self._get_codes(based_on, code.id, level+1) return res diff --git a/addons/account/report/tax_report.rml b/addons/account/report/tax_report.rml index 50dd5a89dda..3b34e3bb618 100755 --- a/addons/account/report/tax_report.rml +++ b/addons/account/report/tax_report.rml @@ -128,19 +128,11 @@ - - - - - + - - - - [[ repeatIn(get_lines(data['form']['based_on'],data['form']['periods'],data['form']['company_id']), 'o') ]] [[ o['level'] ]] - [[o['type']==1 and ( setTag('para','para',{'fontName':'Helvetica'}))]] + [[o['type']==1 and ( setTag('para','para',{'fontName':'Helvetica'}))]] [[ setTag('tr','tr',{'style':'TrLevel'+str(o['level']), 'paraStyle':('Level'+str(o['level']))}) ]] [[ o['code'] ]] [[ o['name'] ]] - [[o['type']==2 and (o['debit']) ]] + + + [[ len(o['level'])>3 and removeParentNode('font') ]][[ formatLang(o['debit']) and '%.2f'%o['debit'] or '0.00' ]] + [[ len(o['level'])<4 and removeParentNode('font') ]][[ formatLang(o['debit']) and '%.2f'%o['debit'] or '0.00' ]] + - [[o['type']==2 and (o['credit']) ]] + [[ len(o['level'])>3 and removeParentNode('font') ]][[ formatLang(o['credit']) and '%.2f'%o['credit'] or '0.00' ]] + [[ len(o['level'])<4 and removeParentNode('font') ]][[ formatLang(o['credit']) and '%.2f'%o['credit'] or '0.00' ]] + + - [[ o['tax_amount'] ]] + [[ len(o['level'])>3 and removeParentNode('font') ]][[ formatLang(o['tax_amount']) and '%.2f'%o['tax_amount'] or '0.00' ]] + [[ len(o['level'])<4 and removeParentNode('font') ]][[ formatLang(o['tax_amount']) and '%.2f'%o['tax_amount'] or '0.00' ]] + + diff --git a/addons/account/report/third_party_ledger.py b/addons/account/report/third_party_ledger.py index c8bda2a3045..194e18d1d53 100755 --- a/addons/account/report/third_party_ledger.py +++ b/addons/account/report/third_party_ledger.py @@ -59,7 +59,7 @@ class third_party_ledger(rml_parse.rml_parse): for date in date_array: full_str_date.append(str(date)) return full_str_date - + # def transform_period_into_date_array(self,data): ## Get All Period Date @@ -67,18 +67,61 @@ class third_party_ledger(rml_parse.rml_parse): periods_id = self.pool.get('account.period').search(self.cr, self.uid, [('fiscalyear_id','=',data['form']['fiscalyear'])]) else: periods_id = data['form']['periods'][0][2] - date_array = [] + date_array = [] for period_id in periods_id: period_obj = self.pool.get('account.period').browse(self.cr, self.uid, period_id) date_array = date_array + self.date_range(period_obj.date_start,period_obj.date_stop) self.date_lst = date_array self.date_lst.sort() - + def transform_date_into_date_array(self,data): return_array = self.date_range(data['form']['date1'],data['form']['date2']) self.date_lst = return_array self.date_lst.sort() + def transform_both_into_date_array(self,data): + + if not data['form']['periods'][0][2] : + periods_id = self.pool.get('account.period').search(self.cr, self.uid, [('fiscalyear_id','=',data['form']['fiscalyear'])]) + else: + periods_id = data['form']['periods'][0][2] + date_array = [] + for period_id in periods_id: + period_obj = self.pool.get('account.period').browse(self.cr, self.uid, period_id) + date_array = date_array + self.date_range(period_obj.date_start,period_obj.date_stop) + + period_start_date = date_array[0] + date_start_date = data['form']['date1'] + period_stop_date = date_array[-1] + date_stop_date = data['form']['date2'] + + if period_start_date @@ -53,43 +53,43 @@ - + - + - + - + - + - - + + - - + + - - + + - - + + @@ -124,16 +124,16 @@ - + [[ data['form']['page_split'] == True or removeParentNode('para') ]] [[ repeatIn(objects, 'p') ]] [[ setLang(p.partner_id.lang) ]] - + - + Date @@ -147,7 +147,7 @@ Debit - + Credit @@ -183,7 +183,7 @@ [[ data['form']['page_split'] == False or removeParentNode('para') ]] [[ repeatIn(objects, 'p') ]] - + [[ p.ref ]] - [[ p.name ]] @@ -202,7 +202,7 @@ - + [[ repeatIn(lines(p,data), 'line') ]][[ line['date'] ]] @@ -211,10 +211,10 @@ [[ line['code'] ]] - [[ line['ref'] ]] + [[ line['ref'] ]] / [[ line['name'] ]] - [[ line['name'] ]] + [[ (line['debit']) or '' ]] @@ -227,13 +227,13 @@ - + - - - - + + + + - + \ No newline at end of file diff --git a/addons/account/report/wizard_account_journal.rml b/addons/account/report/wizard_account_journal.rml new file mode 100644 index 00000000000..def6acbecb8 --- /dev/null +++ b/addons/account/report/wizard_account_journal.rml @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [[ repeatIn(objects, 'o') ]] + + [[repeatIn(lines(data['form']['period_id'][0][2],data['form']['journal_id'][0][2],data['form']['sort_selection']), 'line') ]] + + + Date + + + Voucher No + + + A/c No. + + + Third party + + + Entry label + + + Debit + + + Credit + + + + + [[line[0].period_id.name ]] + + + [[line[0].journal_id.code ]] + + + + + [[ '%.2f' % sum_debit(line[0].period_id.id, line[0].journal_id.id) or '0.00' ]] + + + [[ '%.2f' % sum_credit(line[0].period_id.id, line[0].journal_id.id) or '0.00' ]] + + + + [[repeatIn(line,'l')]] + + [[ l.date ]] + + + [[ l.ref ]] + + + [[ l.account_id.code ]] + + + [[ l.partner_id and l.partner_id.name ]] + + + [[ l.name ]] + + + [[ l.debit and '%.2f' % l.debit or '0.00' ]] + + + [[ l.credit and '%.2f' % l.credit or '0.00' ]] + + + + + + + + \ No newline at end of file diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml index 3860447ff9d..7f441b1b551 100644 --- a/addons/account/security/account_security.xml +++ b/addons/account/security/account_security.xml @@ -1,4 +1,4 @@ - + Finance / Invoice @@ -11,4 +11,29 @@ Finance / Manager + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addons/account/security/ir.model.access.csv b/addons/account/security/ir.model.access.csv index 67bbe0f197e..9dbdcb18b55 100644 --- a/addons/account/security/ir.model.access.csv +++ b/addons/account/security/ir.model.access.csv @@ -4,15 +4,18 @@ "access_account_account_type","account.account.type","model_account_account_type","account.group_account_user",1,0,0,0 "access_account_tax","account.tax","model_account_tax","account.group_account_user",1,0,0,0 "access_account_account","account.account","model_account_account","account.group_account_user",1,0,0,0 +"access_account_account_user","account.account user","model_account_account","base.group_user",1,0,0,0 +"access_account_account_partner_manager","account.account partner manager","model_account_account","base.group_partner_manager",1,0,0,0 "access_account_journal_view","account.journal.view","model_account_journal_view","account.group_account_user",1,0,0,0 "access_account_journal_column","account.journal.column","model_account_journal_column","account.group_account_user",1,0,0,0 "access_account_journal","account.journal","model_account_journal","account.group_account_user",1,0,0,0 "access_account_period","account.period","model_account_period","account.group_account_user",1,0,0,0 +"access_account_journal_period_manager","account.journal.period manager","model_account_journal_period","account.group_account_manager",1,1,1,1 "access_account_journal_period","account.journal.period","model_account_journal_period","account.group_account_user",1,1,1,1 "access_account_move","account.move","model_account_move","account.group_account_user",1,1,1,1 "access_account_move_reconcile","account.move.reconcile","model_account_move_reconcile","account.group_account_user",1,1,1,1 -"access_account_tax_code","account.tax.code","model_account_tax_code","account.group_account_user",1,0,0,0 -"access_account_tax","account.tax","model_account_tax","account.group_account_user",1,0,0,0 +"access_account_tax_code","account.tax.code","model_account_tax_code",,1,0,0,0 +"access_account_tax","account.tax","model_account_tax",,1,0,0,0 "access_account_model","account.model","model_account_model","account.group_account_user",1,1,1,1 "access_account_model_line","account.model.line","model_account_model_line","account.group_account_user",1,1,1,1 "access_account_subscription","account.subscription","model_account_subscription","account.group_account_user",1,1,1,1 @@ -24,25 +27,22 @@ "access_account_tax_template","account.tax.template","model_account_tax_template","account.group_account_manager",1,1,1,1 "access_wizard_multi_charts_accounts","wizard.multi.charts.accounts","model_wizard_multi_charts_accounts","account.group_account_manager",1,1,1,1 "access_account_bank_accounts_wizard","account.bank.accounts.wizard","model_account_bank_accounts_wizard","account.group_account_manager",1,1,1,1 -"access_account_move_line","account.move.line","model_account_move_line","account.group_account_user",1,1,1,1 +"access_account_move_line","account.move.line invoice","model_account_move_line","account.group_account_invoice",1,1,1,1 "access_account_bank_statement","account.bank.statement","model_account_bank_statement","account.group_account_user",1,1,1,1 "access_account_bank_statement_reconcile","account.bank.statement.reconcile","model_account_bank_statement_reconcile","account.group_account_user",1,1,1,1 "access_account_bank_statement_reconcile_line","account.bank.statement.reconcile.line","model_account_bank_statement_reconcile_line","account.group_account_user",1,1,1,1 "access_account_bank_statement_line","account.bank.statement.line","model_account_bank_statement_line","account.group_account_user",1,1,1,1 "access_account_analytic_line","account.analytic.line","model_account_analytic_line","account.group_account_user",1,1,1,1 "access_report_hr_timesheet_invoice_journal","report.hr.timesheet.invoice.journal","model_report_hr_timesheet_invoice_journal","account.group_account_manager",1,0,0,0 -"access_account_invoice","account.invoice","model_account_invoice","account.group_account_user",1,0,0,0 -"access_account_invoice_line","account.invoice.line","model_account_invoice_line","account.group_account_user",1,0,0,0 -"access_account_invoice_tax","account.invoice.tax","model_account_invoice_tax","account.group_account_user",1,0,0,0 -"access_account_analytic_account","account.analytic.account","model_account_analytic_account","account.group_account_user",1,0,0,0 +"access_account_analytic_account","account.analytic.account","model_account_analytic_account","base.group_user",1,0,0,0 "access_account_analytic_journal","account.analytic.journal","model_account_analytic_journal","account.group_account_user",1,0,0,0 -"access_account_invoice_uinvoice","account.invoice","model_account_invoice","account.group_account_user",1,1,1,1 -"access_account_invoice_line_uinvoice","account.invoice.line","model_account_invoice_line","account.group_account_user",1,1,1,1 -"access_account_invoice_tax_uinvoice","account.invoice.tax","model_account_invoice_tax","account.group_account_user",1,1,1,1 +"access_account_invoice_uinvoice","account.invoice","model_account_invoice","account.group_account_invoice",1,1,1,1 +"access_account_invoice_line_uinvoice","account.invoice.line","model_account_invoice_line","account.group_account_invoice",1,1,1,1 +"access_account_invoice_tax_uinvoice","account.invoice.tax","model_account_invoice_tax","account.group_account_invoice",1,1,1,1 "access_account_analytic_line_uinvoice","account.analytic.line","model_account_analytic_line","account.group_account_user",1,1,1,1 -"access_account_move_uinvoice","account.move","model_account_move","account.group_account_user",1,1,1,1 -"access_account_move_reconcile_uinvoice","account.move.reconcile","model_account_move_reconcile","account.group_account_user",1,1,1,1 -"access_account_journal_period_uinvoice","account.journal.period","model_account_journal_period","account.group_account_user",1,1,1,1 +"access_account_move_uinvoice","account.move","model_account_move","account.group_account_invoice",1,1,1,1 +"access_account_move_reconcile_uinvoice","account.move.reconcile","model_account_move_reconcile","account.group_account_invoice",1,1,1,1 +"access_account_journal_period_uinvoice","account.journal.period","model_account_journal_period","account.group_account_invoice",1,1,1,1 "access_account_payment_term_manager","account.payment.term","model_account_payment_term","account.group_account_manager",1,1,1,1 "access_account_payment_term_line_manager","account.payment.term.line","model_account_payment_term_line","account.group_account_manager",1,1,1,1 "access_account_account_type_manager","account.account.type","model_account_account_type","account.group_account_manager",1,1,1,1 @@ -51,14 +51,31 @@ "access_account_journal_view_manager","account.journal.view","model_account_journal_view","account.group_account_manager",1,1,1,1 "access_account_journal_column_manager","account.journal.column","model_account_journal_column","account.group_account_manager",1,1,1,1 "access_account_journal_manager","account.journal","model_account_journal","account.group_account_manager",1,1,1,1 +"access_account_journal_invoice","account.journal invoice","model_account_journal","account.group_account_invoice",1,0,0,0 "access_account_period_manager","account.period","model_account_period","account.group_account_manager",1,1,1,1 +"access_account_period_invoice","account.period invoice","model_account_period","account.group_account_invoice",1,0,0,0 "access_account_tax_code_manager","account.tax.code","model_account_tax_code","account.group_account_manager",1,1,1,1 "access_account_tax_manager","account.tax","model_account_tax","account.group_account_manager",1,1,1,1 -"access_account_invoice_manager","account.invoice","model_account_invoice","account.group_account_manager",1,1,1,1 -"access_account_invoice_line_manager","account.invoice.line","model_account_invoice_line","account.group_account_manager",1,1,1,1 -"access_account_invoice_tax_manager","account.invoice.tax","model_account_invoice_tax","account.group_account_manager",1,1,1,1 +"access_account_invoice_group_invoice","account.invoice group invoice","model_account_invoice","account.group_account_invoice",1,1,1,1 "access_account_analytic_account_manager","account.analytic.account","model_account_analytic_account","account.group_account_manager",1,1,1,1 "access_account_analytic_journal_manager","account.analytic.journal","model_account_analytic_journal","account.group_account_manager",1,1,1,1 "access_account_fiscalyear","account.fiscalyear","model_account_fiscalyear","account.group_account_manager",1,1,1,1 "access_account_fiscalyear_user","account.fiscalyear.user","model_account_fiscalyear","account.group_account_user",1,0,0,0 "access_account_fiscalyear_invoice","account.fiscalyear.invoice","model_account_fiscalyear","account.group_account_invoice",1,0,0,0 +"access_res_currency_account_manager","res.currency account manager","base.model_res_currency","group_account_manager",1,1,1,1 +"access_res_currency_rate_account_manager","res.currency.rate account manager","base.model_res_currency_rate","group_account_manager",1,1,1,1 +"access_account_config_wizard_account_manager","account.config.wizard account manager","model_account_config_wizard","group_account_manager",1,1,1,1 +"access_account_config_wizard_system_manager","account.config.wizard system manager","model_account_config_wizard","base.group_system",1,1,1,1 +"access_account_invoice_partner_manager","account.invoice partner manager","model_account_invoice","base.group_partner_manager",1,0,0,0 +"access_account_invoice_line_partner_manager","account.invoice.line partner manager","model_account_invoice_line","base.group_partner_manager",1,0,0,0 +"access_account_invoice_tax_partner_manager","account.invoice.tax partner manager","model_account_invoice_tax","base.group_partner_manager",1,0,0,0 +"access_account_payment_term_partner_manager","account.payment.term partner manager","model_account_payment_term","base.group_user",1,0,0,0 +"access_account_payment_term_line_partner_manager","account.payment.term.line partner manager","model_account_payment_term_line","base.group_user",1,0,0,0 +"access_account_account_product_manager","account.account product manager","model_account_account","product.group_product_manager",1,0,0,0 +"access_account_journal_product_manager","account.journal product manager","model_account_journal","product.group_product_manager",1,0,0,0 +"access_account_fiscal_position_product_manager","account.fiscal.position account.manager","model_account_fiscal_position","account.group_account_manager",1,1,1,1 +"access_account_fiscal_position","account.fiscal.position all","model_account_fiscal_position","base.group_user",1,0,0,0 +"access_account_fiscal_position_tax_product_manager","account.fiscal.position.tax account.manager","model_account_fiscal_position_tax","account.group_account_manager",1,1,1,1 +"access_account_fiscal_position_tax","account.fiscal.position.tax all","model_account_fiscal_position_tax","base.group_user",1,0,0,0 +"access_account_fiscal_position_account_product_manager","account.fiscal.position account.manager","model_account_fiscal_position_account","account.group_account_manager",1,1,1,1 +"access_account_fiscal_position_account","account.fiscal.position all","model_account_fiscal_position_account","base.group_user",1,0,0,0 diff --git a/addons/account/wizard/__init__.py b/addons/account/wizard/__init__.py index 6ecd2040756..3cae8e78a95 100644 --- a/addons/account/wizard/__init__.py +++ b/addons/account/wizard/__init__.py @@ -64,6 +64,7 @@ import wizard_use_model import wizard_state_open import wizard_statement_from_invoice +import wizard_print_journal # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/wizard/wizard_account_balance_report.py b/addons/account/wizard/wizard_account_balance_report.py index 431e183f156..3677f51f050 100644 --- a/addons/account/wizard/wizard_account_balance_report.py +++ b/addons/account/wizard/wizard_account_balance_report.py @@ -46,7 +46,7 @@ dates_form = ''' dates_fields = { 'date_from': {'string':"Start date",'type':'date','required':True ,'default': lambda *a: time.strftime('%Y-01-01')}, 'date_to': {'string':"End date",'type':'date','required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')}, - 'display_account':{'string':"Display accounts",'type':'selection','selection':[('bal_mouvement','With movements'),('bal_all','All'),('bal_solde','With balance is not equal to 0')]} + 'display_account':{'string':"Filter on Accounts",'type':'selection','selection':[('bal_mouvement','With Entries'),('bal_all','All Accounts'),('bal_solde','With Balance Different Than 0')]} } @@ -61,8 +61,12 @@ period_form = ''' period_fields = { - 'fiscalyear': {'string': 'Fiscal year', 'type': 'many2one', 'relation': 'account.fiscalyear', - 'help': 'Keep empty for all open fiscal year'}, + 'fiscalyear': { + 'string':'Fiscal year', + 'type':'many2one', + 'relation':'account.fiscalyear', + 'help':'Keep empty for all open fiscal year' + }, 'periods': {'string': 'Periods', 'type': 'many2many', 'relation': 'account.period', 'help': 'All periods if empty'}, 'display_account':{'string':"Display accounts ",'type':'selection','selection':[('bal_mouvement','With movements'),('bal_all','All'),('bal_solde','With balance is not equal to 0')]} } diff --git a/addons/account/wizard/wizard_aged_trial_balance.py b/addons/account/wizard/wizard_aged_trial_balance.py index ce95c2c8ab1..7e8bcc6048c 100755 --- a/addons/account/wizard/wizard_aged_trial_balance.py +++ b/addons/account/wizard/wizard_aged_trial_balance.py @@ -35,76 +35,84 @@ from mx.DateTime import * _aged_trial_form = """
- - - - - - - - + + + + + + + + """ _aged_trial_fields = { - 'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True}, - 'period_length': {'string': 'Period length (days)', 'type': 'integer', 'required': True, 'default': lambda *a:30}, - 'date1': {'string':'Start of period', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')}, - 'result_selection':{'string':"Display partner",'type':'selection','selection':[('customer','Debiteur'),('supplier','Creancier'),('all','Tous')]}, - 'direction_selection':{'string':"Display aged balance of",'type':'selection','selection':[('past','Due amount'),('future','Not due amount')]}, - } + 'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True}, + 'period_length': {'string': 'Period length (days)', 'type': 'integer', 'required': True, 'default': lambda *a:30}, + 'date1': {'string':'Start of period', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')}, + 'result_selection':{ + 'string':"Filter on Partners", + 'type':'selection', + 'selection':[('customer','Customer'),('supplier','Supplier'),('all','All')], + 'required':True, + 'default': lambda *a: 'customer', + }, + 'direction_selection':{ + 'string':"Analysis Direction", + 'type':'selection', + 'selection':[('past','Past'),('future','Future')], + 'required':True, + 'default': lambda *a: 'past', + }, +} def _calc_dates(self, cr, uid, data, context): - res = {} - period_length = data['form']['period_length'] - if period_length<=0: - raise wizard.except_wizard('UserError', 'You must enter a period length that cannot be 0 or below !') - start = datetime.date.fromtimestamp(time.mktime(time.strptime(data['form']['date1'],"%Y-%m-%d"))) - start = DateTime(int(start.year),int(start.month),int(start.day)) - if data['form']['direction_selection'] == 'past': - for i in range(5)[::-1]: - stop = start - RelativeDateTime(days=period_length) - res[str(i)] = { - 'name' : str((5-(i+1))*period_length) + '-' + str((5-i)*period_length), - - 'stop': start.strftime('%Y-%m-%d'), - 'start' : stop.strftime('%Y-%m-%d'), - } - start = stop - RelativeDateTime(days=1) - else: - for i in range(5): - stop = start + RelativeDateTime(days=period_length) - res[str(5-(i+1))] = { - 'name' : str((i)*period_length)+'-'+str((i+1)*period_length), - 'start': start.strftime('%Y-%m-%d'), - 'stop' : stop.strftime('%Y-%m-%d'), - } - start = stop + RelativeDateTime(days=1) - return res + res = {} + period_length = data['form']['period_length'] + if period_length<=0: + raise wizard.except_wizard('UserError', 'You must enter a period length that cannot be 0 or below !') + start = datetime.date.fromtimestamp(time.mktime(time.strptime(data['form']['date1'],"%Y-%m-%d"))) + start = DateTime(int(start.year),int(start.month),int(start.day)) + if data['form']['direction_selection'] == 'past': + for i in range(5)[::-1]: + stop = start - RelativeDateTime(days=period_length) + res[str(i)] = { + 'name' : str((5-(i+1))*period_length) + '-' + str((5-i)*period_length), + + 'stop': start.strftime('%Y-%m-%d'), + 'start' : stop.strftime('%Y-%m-%d'), + } + start = stop - RelativeDateTime(days=1) + else: + for i in range(5): + stop = start + RelativeDateTime(days=period_length) + res[str(5-(i+1))] = { + 'name' : str((i)*period_length)+'-'+str((i+1)*period_length), + 'start': start.strftime('%Y-%m-%d'), + 'stop' : stop.strftime('%Y-%m-%d'), + } + start = stop + RelativeDateTime(days=1) + return res 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) - - user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid, context=context) - if user.company_id: - company_id = user.company_id.id - else: - company_id = pooler.get_pool(cr.dbname).get('res.company').search(cr, uid, [('parent_id', '=', False)])[0] - data['form']['company_id'] = company_id - - return data['form'] - - - states = { - 'init': { - 'actions': [_get_defaults], - 'result': {'type':'form', 'arch':_aged_trial_form, 'fields':_aged_trial_fields, 'state':[('end','Cancel'),('print','Print Aged Trial Balance')]}, - }, - 'print': { - 'actions': [_calc_dates], - 'result': {'type':'print', 'report':'account.aged_trial_balance', 'state':'end'}, - }, - } + 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) + user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid, context=context) + if user.company_id: + company_id = user.company_id.id + else: + company_id = pooler.get_pool(cr.dbname).get('res.company').search(cr, uid, [('parent_id', '=', False)])[0] + data['form']['company_id'] = company_id + return data['form'] + states = { + 'init': { + 'actions': [_get_defaults], + 'result': {'type':'form', 'arch':_aged_trial_form, 'fields':_aged_trial_fields, 'state':[('end','Cancel'),('print','Print Aged Trial Balance')]}, + }, + 'print': { + 'actions': [_calc_dates], + 'result': {'type':'print', 'report':'account.aged_trial_balance', 'state':'end'}, + }, + } wizard_report('account.aged.trial.balance') diff --git a/addons/account/wizard/wizard_partner_balance_report.py b/addons/account/wizard/wizard_partner_balance_report.py index 08af6074215..5b28e10ceb9 100644 --- a/addons/account/wizard/wizard_partner_balance_report.py +++ b/addons/account/wizard/wizard_partner_balance_report.py @@ -29,78 +29,80 @@ import time import wizard import pooler -report_type = ''' -
-
''' - - -dates_form = ''' -
- - - - - - - -''' - -dates_fields = { - 'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company', 'required': True}, - 'result_selection':{'string':"Display partner ",'type':'selection','selection':[('customer','Debiteur'),('supplier','Creancier'),('all','Tous')]}, - 'soldeinit':{'string':"Inclure les soldes initiaux",'type':'boolean'}, - 'date1': {'string':'Start date', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-01-01')}, - 'date2': {'string':'End date', 'type':'date', 'required':True, 'default': lambda *a: time.strftime('%Y-%m-%d')}, -} - period_form = ''' -
- - - - - + + - + + +
diff --git a/addons/account_report/report/__init__.py b/addons/account_report/report/__init__.py index 3592ada3b0a..03cbac9c6d7 100644 --- a/addons/account_report/report/__init__.py +++ b/addons/account_report/report/__init__.py @@ -29,6 +29,7 @@ ############################################################################## import accounting_report +import print_indicator # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account_report/report/print_indicator.py b/addons/account_report/report/print_indicator.py new file mode 100644 index 00000000000..203f249178b --- /dev/null +++ b/addons/account_report/report/print_indicator.py @@ -0,0 +1,265 @@ + +# -*- encoding: utf-8 -*- +############################################################################## +# +# Copyright (c) 2004-2008 TINY SPRL. (http://tiny.be) All Rights Reserved. +# +# $Id$ +# +# 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 pooler +import time +from report import report_sxw + +#from report.interface import report_int +#from reportlab.graphics.shapes import Drawing +#from reportlab.graphics.charts.barcharts import VerticalBarChart +#import reportlab.lib.colors as colors +#from reportlab.graphics.widgetbase import Widget, TypedPropertyCollection +#from reportlab.graphics.charts.textlabels import BarChartLabel +#from reportlab.graphics import renderPM +#from report.render import render +#from report.interface import report_int +from pychart import * +import StringIO +theme.use_color = 1 +theme.default_font_family = "Helvetica-Bold" +theme.default_font_size = 18 +theme.default_line_width = 1.0 +import tools + + +parents = { + 'tr':1, + 'li':1, + 'story': 0, + 'section': 0 +} + +class accounting_report_indicator(report_sxw.rml_parse): + + def __init__(self, cr, uid, name, context): + super(accounting_report_indicator, self).__init__(cr, uid, name, context) + self.ret_list = [] + self.localcontext.update({ + 'time': time, + 'test': self.test1, + 'lines':self.lines, + 'getarray':self.getarray, + }) + self.count=0 + self.list=[] + self.header_name=self.header_val=[] + + def repeatIn(self, lst, name, nodes_parent=False,td=False,width=[],value=[],type=[]): + self._node.data = '' + node = self._find_parent(self._node, nodes_parent or parents) + ns = node.nextSibling +#start + if not name=='array': + return super(accounting_report_indicator,self).repeatIn(lst, name, nodes_parent=False) + + value=['Data'] + value.extend(self.header_name) + type=['string'].extend(['float']*len(self.header_name)) + width=[40]*(len(self.header_name)+1) + + if not lst: + lst.append(1) + for ns in node.childNodes : + if ns and ns.nodeName!='#text' and ns.tagName=='blockTable' and td : + width_str = ns._attrs['colWidths'].nodeValue + ns.removeAttribute('colWidths') + total_td = td * len(value) + + if not width: + for v in value: + width.append(30) + for v in range(len(value)): + width_str +=',%d'%width[v] + + ns.setAttribute('colWidths',width_str) + + child_list = ns.childNodes + check=0 + for child in child_list: + if child.nodeName=='tr': + lc = child.childNodes[1] +# for t in range(td): + i=0 + for v in value: + newnode = lc.cloneNode(1) + if check==1: + t1="[[ %s['%s'] ]]"%(name,v) + else: + t1="%s"%(v) + newnode.childNodes[1].lastChild.data = t1 + child.appendChild(newnode) + newnode=False + i+=1 + check=1 + + return super(accounting_report_indicator,self).repeatIn(lst, name, nodes_parent=False) + + def lines(self,data): + res={} + result=[] + ind_ids=self.pool.get('account.report.report').search(self.cr,self.uid,[]) + obj_inds=self.pool.get('account.report.report').browse(self.cr,self.uid,ind_ids) + +# def find_child(obj): +# self.list.append(obj) +# if obj.child_ids: +# for child in obj.child_ids: +# find_child(child) +# return True +# +# find_child(obj_inds) + + for obj_ind in obj_inds: + res = { + 'id':obj_ind.id, + 'name':obj_ind.name, + 'code':obj_ind.code, + 'expression':obj_ind.expression, + 'disp_graph':obj_ind.disp_graph, + 'note':obj_ind.note, + 'type':obj_ind.type, + } + result.append(res) + return result + + def getarray(self,data,object): + res={} + result=[] + self.test1(data,object,intercall=True) + self.header_val=[str(x) for x in self.header_val] + temp_dict=zip(self.header_name,self.header_val) + res=dict(temp_dict) + res['Data']='Value' + result.append(res) + return result + + + def test1(self,data,object,intercall=False): + obj_history=self.pool.get('account.report.history') + + if data['select_base']=='year': + tuple_search=('fiscalyear_id','in',data['base_selection'][0][2]) + base='year' + else: + tuple_search=('period_id','in',data['base_selection'][0][2]) + base='period' + + history_ids=obj_history.search(self.cr,self.uid,[('name','=',object['id']),tuple_search]) + history_ids.sort() + obj_his=obj_history.browse(self.cr,self.uid,history_ids) + + data_val=[] + data_period=[] + if base=='period': + for item in obj_his: + data_val.append(item.val) + data_period.append(item.period_id.name) + else: + for i in data['base_selection'][0][2]: + val_temp=[] + data_period.append(self.pool.get('account.fiscalyear').browse(self.cr,self.uid,i).name) + for item in obj_his: + if item.fiscalyear_id.id==i: + val_temp.append(item.val) + data_val.append(sum(val_temp)) + + self.header_name=data_period + self.header_val=data_val + + if intercall: + return True + self.count +=1 +# drawing = Drawing(400, 300) +# data = [ +# tuple(data_val), +# ] +# value_min=0.0 +# vmin=min(data_val) +# vmax=max(data_val) +# +# val_min=((vmin < 0.00 and vmin-2.00) or 0.00) +# # calculating maximum +# val_max=(vmax/(pow(10,len(str(int(vmax)))-2))+1)*pow(10,len(str(int(vmax)))-2) +# bc = VerticalBarChart() +# bc.x = 50 +# bc.y = 50 +# bc.height = 245 +# bc.width = 300 +# bc.data = data +# value_step=(abs(val_max)-abs(val_min))/5 +# +# bc.strokeColor = colors.black +# bc.valueAxis.valueMin = val_min +# bc.valueAxis.valueMax = val_max +# bc.valueAxis.valueStep = value_step +# +# bc.categoryAxis.labels.boxAnchor = 'ne' +# bc.categoryAxis.labels.dx = 8 +# +# bc.categoryAxis.labels.dy = -2 +# bc.categoryAxis.labels.angle = 30 +# bc.categoryAxis.categoryNames = data_period +# drawing.add(bc) +# drawing.save(formats=['png'],fnRoot=path+str(self.count),title="helo") +# renderPM.drawToFile(drawing1, 'example1.jpg','jpg') + import os + path=tools.config['addons_path']+"/account_report/tmp_images/image" + + dirname =tools.config['addons_path']+'/account_report/tmp_images/' + if not os.path.isdir(dirname): + os.mkdir(dirname) + + can = canvas.init('image'+str(self.count)+".png") +# can.clip(0,0,600,400) + + data=zip(self.header_name,self.header_val) + + ar = area.T(size = (650,450),x_coord = category_coord.T(data, 0), y_range = (None, None), + x_axis = axis.X(label="Period // Year",format="/a-30{}%s"), + y_axis = axis.Y(label="Value")) + + ar.add_plot(bar_plot.T(data = data,width=15, data_label_format="/o/15{}%s",label = "Value",fill_style=fill_style.red)) + ar.draw() + + can.close() + os.system('cp '+'image'+str(self.count)+'.png ' +path+str(self.count)+'.png') + os.system('rm '+'image'+str(self.count)+'.png') +# can.endclip() + return path+str(self.count)+'.png' + +report_sxw.report_sxw('report.print.indicators', 'account.report.history', + 'addons/account_report/report/print_indicator.rml', + parser=accounting_report_indicator, header=False) + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/account_report/report/print_indicator.rml b/addons/account_report/report/print_indicator.rml new file mode 100644 index 00000000000..7e66c37452c --- /dev/null +++ b/addons/account_report/report/print_indicator.rml @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Indicators + + + + + + + + + +[[ company.name ]] + + + + + + + +Currency: [[ company.currency_id.name]] + + + + + + + +Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]] + + + +Name + + +Code + + + + + + + +
+[[ repeatIn(lines(data['form']),'o')]] + + + +() [[ o['type']=='view' and setTag('para','para',{'fontName':'Helvetica-Bold'}) ]][[ o['name'] ]] + + +[[ o['type']=='view' and setTag('para','para',{'fontName':'Helvetica-Bold'}) ]][[ o['code'] ]] + + + + + + +[[ o['disp_graph'] and setTag('para','image',{'width':'450.00','height':'215.00','file':test(data['form'],o)}) or removeParentNode('para') ]] + + + +
+ [[ repeatIn(getarray(data['form'],o),'array',td=len(data['form']['base_selection'][0][2])) ]] + + + + + + + + + + + + +
+ + + + + + +Expression : [[ o['expression'] ]] + + + + + + + + + +Notes : [[ o['note'] ]] + + + + + + +
+
+
+ + diff --git a/addons/account_report/security/ir.model.access.csv b/addons/account_report/security/ir.model.access.csv index e74efd16f3b..ace4bc06db0 100644 --- a/addons/account_report/security/ir.model.access.csv +++ b/addons/account_report/security/ir.model.access.csv @@ -1,2 +1,3 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_account_report_report,account.report.report,model_account_report_report,base.group_user,1,0,0,0 +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_account_report_report","account.report.report","model_account_report_report","account.group_account_manager",1,0,0,0 +"access_account_report_history","account.report.history","model_account_report_history","account.group_account_manager",1,0,0,0 diff --git a/addons/account_report/wizard/wizard_print_indicators.py b/addons/account_report/wizard/wizard_print_indicators.py index 373b86fd914..b781073ddf4 100644 --- a/addons/account_report/wizard/wizard_print_indicators.py +++ b/addons/account_report/wizard/wizard_print_indicators.py @@ -33,12 +33,12 @@ import pooler form = '''
- +
@@ -248,4 +297,4 @@ This document must be dated and signed for reimbursment
- + \ No newline at end of file diff --git a/addons/hr_expense/security/ir.model.access.csv b/addons/hr_expense/security/ir.model.access.csv index ea8c924ddb6..aa00dab4fa1 100644 --- a/addons/hr_expense/security/ir.model.access.csv +++ b/addons/hr_expense/security/ir.model.access.csv @@ -1,3 +1,3 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_hr_expense_expense,hr.expense.expense,model_hr_expense_expense,base.group_user,1,1,1,1 -access_hr_expense_line,hr.expense.line,model_hr_expense_line,base.group_user,1,1,1,1 +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_hr_expense_expense","hr.expense.expense","model_hr_expense_expense","hr.group_hr_user",1,1,1,1 +"access_hr_expense_line","hr.expense.line","model_hr_expense_line","hr.group_hr_user",1,1,1,1 diff --git a/addons/hr_holidays/__terp__.py b/addons/hr_holidays/__terp__.py index 6f3188d6acf..982b5624c19 100644 --- a/addons/hr_holidays/__terp__.py +++ b/addons/hr_holidays/__terp__.py @@ -32,7 +32,7 @@ "hr_view.xml", "hr_holidays_report.xml", "hr_holidays_wizard.xml", -# "process/hr_holidays_process.xml" + "process/hr_holidays_process.xml" ], # "demo_xml" : ["hr_bel_holidays_2008.xml",], "demo_xml" : [], diff --git a/addons/hr_holidays/hr_holidays_report.xml b/addons/hr_holidays/hr_holidays_report.xml index 85c4f69649e..2d89b467c26 100644 --- a/addons/hr_holidays/hr_holidays_report.xml +++ b/addons/hr_holidays/hr_holidays_report.xml @@ -9,17 +9,6 @@ auto="False" menu="False"/> - - + diff --git a/addons/hr_holidays/hr_holidays_wizard.xml b/addons/hr_holidays/hr_holidays_wizard.xml index 325768afbef..475da254cdf 100644 --- a/addons/hr_holidays/hr_holidays_wizard.xml +++ b/addons/hr_holidays/hr_holidays_wizard.xml @@ -10,6 +10,11 @@ type="wizard" id="menu_holidays_summary"/> + + + + + diff --git a/addons/hr_holidays/i18n/fr_FR.po b/addons/hr_holidays/i18n/fr_FR.po index 9811de832e5..d0e47845b9e 100644 --- a/addons/hr_holidays/i18n/fr_FR.po +++ b/addons/hr_holidays/i18n/fr_FR.po @@ -4,16 +4,17 @@ # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 4.3.0" -"Report-Msgid-Bugs-To: support@openerp.com" -"POT-Creation-Date: 2008-09-11 15:41:43+0000" -"PO-Revision-Date: 2008-09-11 15:41:43+0000" -"Last-Translator: <>" -"Language-Team: " -"MIME-Version: 1.0" -"Content-Type: text/plain; charset=UTF-8" -"Content-Transfer-Encoding: " -"Plural-Forms: " +"Project-Id-Version: OpenERP Server 4.3.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2008-09-05 16:30+0000\n" +"PO-Revision-Date: 2008-10-13 11:55+0000\n" +"Last-Translator: Olivier Laurent \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2008-10-13 12:04+0000\n" +"X-Generator: Launchpad (build Unknown)\n" #. module: hr_holidays #: view:hr.holidays.status:0 @@ -23,18 +24,18 @@ msgstr "Définir les types de congés" #. module: hr_holidays #: wizard_view:hr.holidays.summary,notify:0 msgid "You have to select atleast 1 Department. Try again." -msgstr "" +msgstr "Vous devez sélectionner au moins 1 département. Essayez à nouveau." #. module: hr_holidays #: selection:hr.holidays,state:0 msgid "Confirmed" -msgstr "" +msgstr "Confirmé" #. module: hr_holidays #: wizard_field:hr.holidays.summary,init,date_from:0 #: wizard_field:hr.holidays.summary.employee,init,date_from:0 msgid "From" -msgstr "" +msgstr "De" #. module: hr_holidays #: view:hr.holidays:0 @@ -44,28 +45,28 @@ msgstr "Congés" #. module: hr_holidays #: view:hr.holidays:0 msgid "Confirm" -msgstr "" +msgstr "Confirmer" #. module: hr_holidays #: wizard_view:hr.holidays.summary,notify:0 #: wizard_view:hr.holidays.summary.employee,notify:0 msgid "Notification" -msgstr "" +msgstr "Notification" #. module: hr_holidays #: field:hr.holidays.status,section_id:0 msgid "Section" -msgstr "" +msgstr "Section" #. module: hr_holidays #: constraint:ir.ui.view:0 msgid "Invalid XML for View Architecture!" -msgstr "" +msgstr "XML non valide pour l'architecture de la vue!" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Light Coral" -msgstr "" +msgstr "Corail clair" #. module: hr_holidays #: field:hr.holidays,employee_id:0 @@ -77,124 +78,127 @@ msgstr "Employé" #: model:ir.actions.wizard,name:hr_holidays.holidays_summary #: model:ir.ui.menu,name:hr_holidays.menu_holidays_summary msgid "Print Summary of Holidays" -msgstr "" +msgstr "Imprimer le résumé des Vacances" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_available #: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_available msgid "My Available Holidays" -msgstr "" +msgstr "Mes Vacances Disponibles" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Black" -msgstr "" +msgstr "Noir" #. module: hr_holidays #: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_refuse msgid "My Refused Holidays Requests" -msgstr "" +msgstr "Mes Demandes de Vacances Refusées" #. module: hr_holidays #: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_waiting msgid "My Awaiting Confirmation Holidays Requests" -msgstr "" +msgstr "Mes Demandes de Vacances en attende de Confirmation" #. module: hr_holidays #: wizard_button:hr.holidays.summary,init,checkdept:0 #: wizard_button:hr.holidays.summary.employee,init,checkemp:0 msgid "Print" -msgstr "" +msgstr "Imprimer" #. module: hr_holidays #: constraint:ir.model:0 -msgid "The Object name must start with x_ and not contain any special character !" +msgid "" +"The Object name must start with x_ and not contain any special character !" msgstr "" +"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères " +"spéciaux !" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.action_holiday_waiting msgid "Requests Awaiting for Validation" -msgstr "" +msgstr "Demandes en attende de Validation" #. module: hr_holidays #: selection:hr.holidays,state:0 msgid "Refused" -msgstr "" +msgstr "Refusée" #. module: hr_holidays #: field:hr.holidays.per.user,max_leaves:0 msgid "Maximum Leaves Allowed" -msgstr "" +msgstr "Nombre Maximum de Congés Permis" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Light Blue" -msgstr "" +msgstr "Bleu clair" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Red" -msgstr "" +msgstr "Rouge" #. module: hr_holidays #: wizard_field:hr.holidays.summary,init,depts:0 msgid "Department(s)" -msgstr "" +msgstr "Département(s)" #. module: hr_holidays #: field:hr.holidays,state:0 msgid "Status" -msgstr "" +msgstr "État" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Brown" -msgstr "" +msgstr "Brun" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Light Salmon" -msgstr "" +msgstr "Saumon clair" #. module: hr_holidays #: view:hr.holidays.per.user:0 msgid "Holidays Allowed" -msgstr "" +msgstr "Vacances Permises" #. module: hr_holidays -#: xsl:holidays.summary:0 +#: xsl:hr.holidays.holidays_summary:0 msgid "of the" -msgstr "" +msgstr "du" #. module: hr_holidays -#: xsl:holidays.summary:0 +#: xsl:hr.holidays.holidays_summary:0 msgid "Off-Days' Summary" -msgstr "" +msgstr "Résumé des Congés" #. module: hr_holidays #: field:hr.holidays.per.user,leaves_taken:0 msgid "Leaves Already Taken" -msgstr "" +msgstr "Congés déjà pris" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.action_my_holiday msgid "My Holidays Request" -msgstr "" +msgstr "Mes Demandes de Congés" #. module: hr_holidays #: field:hr.holidays.status,color_name:0 msgid "Color of the status" -msgstr "" +msgstr "Couleur du Statut" #. module: hr_holidays #: view:hr.holidays:0 msgid "Number of Days" -msgstr "" +msgstr "Nombre de jour" #. module: hr_holidays #: view:hr.holidays:0 msgid "Set to Draft" -msgstr "" +msgstr "Mettre au brouillon" #. module: hr_holidays #: model:ir.model,name:hr_holidays.model_hr_holidays @@ -202,75 +206,75 @@ msgid "Holidays" msgstr "Vacances" #. module: hr_holidays -#: xsl:holidays.summary:0 +#: xsl:hr.holidays.holidays_summary:0 msgid "to" -msgstr "" +msgstr "à" #. module: hr_holidays -#: xsl:holidays.summary:0 +#: xsl:hr.holidays.holidays_summary:0 msgid "holidays." -msgstr "" +msgstr "Vacances" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Light Cyan" -msgstr "" +msgstr "Cyan clair" #. module: hr_holidays #: selection:hr.holidays,state:0 msgid "draft" -msgstr "" +msgstr "brouillon" #. module: hr_holidays #: field:hr.holidays.per.user,user_id:0 msgid "User" -msgstr "" +msgstr "Utilisateur" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Light Green" -msgstr "" +msgstr "Vert clair" #. module: hr_holidays #: wizard_field:hr.holidays.summary,init,holiday_type:0 #: wizard_field:hr.holidays.summary.employee,init,holiday_type:0 msgid "Select Holiday Type" -msgstr "" +msgstr "Sélectionnez le Type de Vacances" #. module: hr_holidays #: selection:hr.holidays,state:0 #: view:hr.holidays:0 msgid "Validate" -msgstr "" +msgstr "Valider" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.open_view_holiday_status #: field:hr.holidays.status,name:0 #: model:ir.ui.menu,name:hr_holidays.menu_open_view_holiday_status msgid "Holiday Status" -msgstr "" +msgstr "Statut des Vacances" #. module: hr_holidays #: field:hr.holidays,notes:0 #: field:hr.holidays.per.user,notes:0 msgid "Notes" -msgstr "" +msgstr "Notes" #. module: hr_holidays #: wizard_view:hr.holidays.summary,init:0 #: wizard_view:hr.holidays.summary.employee,init:0 msgid "Report Options" -msgstr "" +msgstr "Options du Rapport" #. module: hr_holidays #: field:hr.holidays,case_id:0 msgid "Case" -msgstr "" +msgstr "Cas" #. module: hr_holidays #: view:hr.holidays:0 msgid "Refuse" -msgstr "" +msgstr "Refuser" #. module: hr_holidays #: field:hr.holidays,user_id:0 @@ -281,27 +285,27 @@ msgstr "" #: wizard_button:hr.holidays.summary,notify,end:0 #: wizard_button:hr.holidays.summary.employee,notify,end:0 msgid "Ok" -msgstr "" +msgstr "Ok" #. module: hr_holidays #: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_draft msgid "My Draft Holidays Requests" -msgstr "" +msgstr "Mes Demandes de Vacances Brouillon" #. module: hr_holidays #: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday msgid "My Holidays Requests" -msgstr "" +msgstr "Mes Demandes de Vacances" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_waiting msgid "My Holidays Request Waiting confirmation" -msgstr "" +msgstr "Mes Demandes de Vacances en attente de Confirmation" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Violet" -msgstr "" +msgstr "Violet" #. module: hr_holidays #: field:hr.holidays,holiday_status:0 @@ -312,49 +316,49 @@ msgstr "Type de congés" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Ivory" -msgstr "" +msgstr "Ivoire" #. module: hr_holidays #: field:hr.holidays,manager_id:0 msgid "Holiday manager" -msgstr "" +msgstr "Gestionnaire de Vacances" #. module: hr_holidays -#: xsl:holidays.summary:0 +#: xsl:hr.holidays.holidays_summary:0 msgid "Analyze from" -msgstr "" +msgstr "Analyser de" #. module: hr_holidays #: model:ir.actions.report.xml,name:hr_holidays.report_holidays_summary msgid "Summary Of Holidays" -msgstr "" +msgstr "Résumé des Vacances" #. module: hr_holidays #: wizard_field:hr.holidays.summary.employee,init,emp:0 msgid "Employee(s)" -msgstr "" +msgstr "Employés" #. module: hr_holidays #: field:hr.holidays,number_of_days:0 msgid "Number of Days in this Holiday Request" -msgstr "" +msgstr "Nombre de Jours dans cette Demande de Congé" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.action_holidays_per_user #: model:ir.ui.menu,name:hr_holidays.menu_open_holidays_per_user #: view:hr.holidays.per.user:0 msgid "Holidays Per Employee" -msgstr "" +msgstr "Congés par Employé" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Wheat" -msgstr "" +msgstr "Blé" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_draft msgid "My Holidays Request Draft" -msgstr "" +msgstr "Mes Demandes de Vacances Brouillon" #. module: hr_holidays #: view:hr.holidays.status:0 @@ -364,7 +368,7 @@ msgstr "Types de congés" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_validate msgid "My Holidays Request Validated" -msgstr "" +msgstr "Mes Demandes de Vacances Validée" #. module: hr_holidays #: field:hr.holidays,name:0 @@ -374,27 +378,27 @@ msgstr "Description" #. module: hr_holidays #: model:ir.ui.menu,name:hr_holidays.menu_open_ask_holidays msgid "Holidays Request" -msgstr "" +msgstr "Demandes de Vacances" #. module: hr_holidays #: wizard_view:hr.holidays.summary.employee,notify:0 msgid "You have to select at least 1 Employee. Try again." -msgstr "" +msgstr "Vous devez sélectionner au moins 1 employé. Veuillez réessayez." #. module: hr_holidays #: model:ir.ui.menu,name:hr_holidays.menu_action_holiday_waiting msgid "Holidays Requests Awaiting for Validation" -msgstr "" +msgstr "Demandes de Vacances en attente de Validation" #. module: hr_holidays #: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_validate msgid "My Validated Holidays Requests" -msgstr "" +msgstr "Mes Demandes de Vacances Validée" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Light Yellow" -msgstr "" +msgstr "Jaune clair" #. module: hr_holidays #: model:ir.model,name:hr_holidays.model_hr_holidays_status @@ -404,7 +408,7 @@ msgstr "Statut des vacances" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Light Pink" -msgstr "" +msgstr "Rose clair" #. module: hr_holidays #: field:hr.holidays,date_to:0 @@ -414,7 +418,7 @@ msgstr "Fin du congé" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Lavender" -msgstr "" +msgstr "Lavande" #. module: hr_holidays #: field:hr.holidays,date_from:0 @@ -424,12 +428,12 @@ msgstr "Début du congé" #. module: hr_holidays #: model:ir.ui.menu,name:hr_holidays.menu_action_all_holiday msgid "All Holidays Requests" -msgstr "" +msgstr "Toutes les Demandes de Vacances" #. module: hr_holidays #: model:ir.actions.wizard,name:hr_holidays.wizard_holidays_summary msgid "Print Summary of Employee's Holidays" -msgstr "" +msgstr "Imprimer un Résumé des Vacances de l'employé" #. module: hr_holidays #: wizard_button:hr.holidays.summary,init,end:0 @@ -437,20 +441,19 @@ msgstr "" #: selection:hr.holidays,state:0 #: view:hr.holidays:0 msgid "Cancel" -msgstr "" +msgstr "Annuler" #. module: hr_holidays #: selection:hr.holidays.status,color_name:0 msgid "Magenta" -msgstr "" +msgstr "Magenta" #. module: hr_holidays #: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_refuse msgid "My Holidays Request Refused" -msgstr "" +msgstr "Mes Demandes de Vacances Refusée" #. module: hr_holidays #: model:ir.model,name:hr_holidays.model_hr_holidays_per_user msgid "Holidays Per User" -msgstr "" - +msgstr "Vacnaces par Utilisateur" diff --git a/addons/hr_holidays/process/hr_holidays_process.xml b/addons/hr_holidays/process/hr_holidays_process.xml new file mode 100644 index 00000000000..4cbddc9c423 --- /dev/null +++ b/addons/hr_holidays/process/hr_holidays_process.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/addons/hr_holidays/security/ir.model.access.csv b/addons/hr_holidays/security/ir.model.access.csv index 69619dde43d..b095b8bf50d 100644 --- a/addons/hr_holidays/security/ir.model.access.csv +++ b/addons/hr_holidays/security/ir.model.access.csv @@ -1,2 +1,4 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_hr_holidays_per_user,hr.holidays.per.user,model_hr_holidays_per_user,base.group_user,1,1,1,1 +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_hr_holidays_per_user","hr.holidays.per.user","model_hr_holidays_per_user","hr.group_hr_user",1,1,1,1 +"access_hr_holydays_status_user","hr.holidays.status user","model_hr_holidays_status","hr.group_hr_user",1,1,1,1 +"access_hr_holidays_user","hr holidays user","model_hr_holidays","hr.group_hr_user",1,1,1,1 diff --git a/addons/hr_timesheet/i18n/fr_FR.po b/addons/hr_timesheet/i18n/fr_FR.po index bf3a595b844..fda6d1ca2da 100644 --- a/addons/hr_timesheet/i18n/fr_FR.po +++ b/addons/hr_timesheet/i18n/fr_FR.po @@ -4,16 +4,17 @@ # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 4.3.0" -"Report-Msgid-Bugs-To: support@openerp.com" -"POT-Creation-Date: 2008-09-11 15:41:43+0000" -"PO-Revision-Date: 2008-09-11 15:41:43+0000" -"Last-Translator: <>" -"Language-Team: " -"MIME-Version: 1.0" -"Content-Type: text/plain; charset=UTF-8" -"Content-Transfer-Encoding: " -"Plural-Forms: " +"Project-Id-Version: OpenERP Server 4.3.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2008-09-05 16:28+0000\n" +"PO-Revision-Date: 2008-10-13 15:49+0000\n" +"Last-Translator: Olivier Laurent \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2008-10-14 11:51+0000\n" +"X-Generator: Launchpad (build Unknown)\n" #. module: hr_timesheet #: wizard_view:hr.analytical.timesheet,init:0 @@ -23,15 +24,18 @@ msgstr "Choisissez le mois" #. module: hr_timesheet #: constraint:ir.model:0 -msgid "The Object name must start with x_ and not contain any special character !" +msgid "" +"The Object name must start with x_ and not contain any special character !" msgstr "" +"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères " +"spéciaux !" #. module: hr_timesheet #: model:ir.actions.report.xml,name:hr_timesheet.report_user_timesheet #: model:ir.actions.wizard,name:hr_timesheet.wizard_hr_timesheet #: model:ir.ui.menu,name:hr_timesheet.menu_wizard_hr_timesheet msgid "Employee timesheet" -msgstr "Feuille de temps de l'employé" +msgstr "Feuille de présence de l'employé" #. module: hr_timesheet #: model:ir.actions.wizard,name:hr_timesheet.si_so @@ -49,12 +53,6 @@ msgstr "Somme" msgid "Sign in / Sign out" msgstr "Pointer l'entrée / Pointer la sortie" -#. module: hr_timesheet -#, python-format -#: code:addons/hr_timesheet/wizard/sign_in_out.py:0 -msgid "No employee defined for your user !" -msgstr "" - #. module: hr_timesheet #: wizard_button:hr.analytical.timesheet,init,report:0 #: wizard_button:hr.analytical.timesheet.my,init,report:0 @@ -87,18 +85,6 @@ msgstr "Ligne analytique" msgid "Current Server Date" msgstr "Date du serveur" -#. module: hr_timesheet -#, python-format -#: code:addons/hr_timesheet/wizard/sign_in_out.py:0 -msgid "No cost unit defined for this employee !" -msgstr "" - -#. module: hr_timesheet -#, python-format -#: code:addons/hr_timesheet/hr_timesheet.py:0 -msgid "No analytic journal available for this employee.\nDefine an employee for the selected user and assign an analytic journal." -msgstr "" - #. module: hr_timesheet #: field:hr.employee,product_id:0 msgid "Product" @@ -113,7 +99,7 @@ msgstr "Journal analytique" #: model:ir.actions.act_window,name:hr_timesheet.act_hr_timesheet_line_evry1_today_form_my #: model:ir.ui.menu,name:hr_timesheet.menu_act_hr_timesheet_line_evry1_today_form_my msgid "My Working Hours of The Day" -msgstr "" +msgstr "Mes Heures de Travail du Jour" #. module: hr_timesheet #: view:account.analytic.account:0 @@ -145,7 +131,7 @@ msgstr "Timesheet" #. module: hr_timesheet #: constraint:product.product:0 msgid "Error: Invalid ean code" -msgstr "" +msgstr "Erreur: code EAN invalide" #. module: hr_timesheet #: wizard_field:hr.analytical.timesheet,init,user_id:0 @@ -162,7 +148,7 @@ msgstr "Pointer l'entrée" #: model:ir.actions.act_window,name:hr_timesheet.act_hr_timesheet_line_evry1_today_form #: model:ir.ui.menu,name:hr_timesheet.menu_act_hr_timesheet_line_evry1_today_form msgid "Working Hours of The Day" -msgstr "" +msgstr "Heures de Travail du Jour" #. module: hr_timesheet #: wizard_view:hr_timesheet.si_so,sign_out:0 @@ -188,7 +174,7 @@ msgstr "Date de clôture" #. module: hr_timesheet #: constraint:ir.ui.view:0 msgid "Invalid XML for View Architecture!" -msgstr "" +msgstr "XML non valide pour l'architecture de la vue!" #. module: hr_timesheet #: wizard_field:hr_timesheet.si_so,sign_in,analytic_amount:0 @@ -204,6 +190,8 @@ msgstr "Résumé analyse" #: constraint:product.template:0 msgid "Error: UOS must be in a different category than the UOM" msgstr "" +"Erreur: l'unité de vente doit appartenir à une catégorie différente que " +"l'unité de mesure" #. module: hr_timesheet #: wizard_view:hr.analytical.timesheet_users,init:0 @@ -212,8 +200,11 @@ msgstr "Choisir les utilisateurs" #. module: hr_timesheet #: constraint:product.template:0 -msgid "Error: The default UOM and the purchase UOM must be in the same category." +msgid "" +"Error: The default UOM and the purchase UOM must be in the same category." msgstr "" +"Erreur: l'unité de mesure par défaut et l'unité de mesure d'achat doivent " +"faire partie de la même catégorie" #. module: hr_timesheet #: wizard_view:hr_timesheet.si_so,sign_in:0 @@ -254,7 +245,7 @@ msgstr "Nom de l'employé" #: model:ir.actions.act_window,name:hr_timesheet.act_hr_timesheet_line_me_all_form #: model:ir.ui.menu,name:hr_timesheet.menu_act_hr_timesheet_line_me_all_form msgid "My Working Hours" -msgstr "" +msgstr "Mes Heures de Travail" #. module: hr_timesheet #: model:ir.actions.report.xml,name:hr_timesheet.report_users_timesheet @@ -268,12 +259,6 @@ msgstr "Timesheet des employés" msgid "Stop Working" msgstr "Arrêter le travail" -#. module: hr_timesheet -#, python-format -#: code:addons/hr_timesheet/wizard/sign_in_out.py:0 -msgid "UserError" -msgstr "" - #. module: hr_timesheet #: wizard_view:hr_timesheet.si_so,sign_in:0 msgid "(Keep empty for current_time)" @@ -282,7 +267,7 @@ msgstr "(Garder vide pour la date actuelle)" #. module: hr_timesheet #: view:hr.employee:0 msgid "Timesheets" -msgstr "" +msgstr "Feuilles de présence" #. module: hr_timesheet #: wizard_button:hr_timesheet.si_so,sign_out,si_result:0 @@ -310,7 +295,7 @@ msgstr "Statistiques par mois" #: model:ir.ui.menu,name:hr_timesheet.menu_act_hr_timesheet_line_evry1_all_form #: model:ir.ui.menu,name:hr_timesheet.menu_act_hr_timesheet_line_today_form msgid "Working Hours" -msgstr "" +msgstr "Heures de travail" #. module: hr_timesheet #: wizard_field:hr_timesheet.si_so,sign_in,account_id:0 @@ -371,14 +356,7 @@ msgstr "Total" msgid "Change Work" msgstr "Changer de travail" -#. module: hr_timesheet -#, python-format -#: code:addons/hr_timesheet/hr_timesheet.py:0 -msgid "ValidateError" -msgstr "" - #. module: hr_timesheet #: view:account.analytic.account:0 msgid "To be invoiced" msgstr "A facturer" - diff --git a/addons/hr_timesheet/security/ir.model.access.csv b/addons/hr_timesheet/security/ir.model.access.csv index 6a9a08f28c0..a718d2bd4ae 100644 --- a/addons/hr_timesheet/security/ir.model.access.csv +++ b/addons/hr_timesheet/security/ir.model.access.csv @@ -1,2 +1,2 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_hr_analytic_timesheet,hr.analytic.timesheet,model_hr_analytic_timesheet,base.group_user,1,1,1,1 +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_hr_analytic_timesheet","hr.analytic.timesheet","model_hr_analytic_timesheet","hr.group_hr_user",1,1,1,1 diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_report.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_report.xml index 2ae672635a5..794c38abc06 100644 --- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_report.xml +++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_report.xml @@ -1,15 +1,29 @@ - + - + - - - - + + + + + - + diff --git a/addons/hr_timesheet_invoice/i18n/fr_FR.po b/addons/hr_timesheet_invoice/i18n/fr_FR.po index 44e5f0ada21..be09f6d127c 100644 --- a/addons/hr_timesheet_invoice/i18n/fr_FR.po +++ b/addons/hr_timesheet_invoice/i18n/fr_FR.po @@ -4,16 +4,17 @@ # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 4.3.0" -"Report-Msgid-Bugs-To: support@openerp.com" -"POT-Creation-Date: 2008-09-11 15:41:42+0000" -"PO-Revision-Date: 2008-09-11 15:41:42+0000" -"Last-Translator: <>" -"Language-Team: " -"MIME-Version: 1.0" -"Content-Type: text/plain; charset=UTF-8" -"Content-Transfer-Encoding: " -"Plural-Forms: " +"Project-Id-Version: OpenERP Server 4.3.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2008-09-05 16:22+0000\n" +"PO-Revision-Date: 2008-10-13 12:01+0000\n" +"Last-Translator: Olivier Laurent \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2008-10-13 12:20+0000\n" +"X-Generator: Launchpad (build Unknown)\n" #. module: hr_timesheet_invoice #: wizard_field:account.analytic.profit,init,date_from:0 @@ -43,12 +44,6 @@ msgstr "Entrées non-facturées" msgid "Invoicing" msgstr "Facturation" -#. module: hr_timesheet_invoice -#, python-format -#: code:addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py:0 -msgid "At least on line have no product !" -msgstr "" - #. module: hr_timesheet_invoice #: rml:account.analytic.profit:0 msgid "Income" @@ -111,8 +106,11 @@ msgstr "Devise" #. module: hr_timesheet_invoice #: constraint:ir.model:0 -msgid "The Object name must start with x_ and not contain any special character !" +msgid "" +"The Object name must start with x_ and not contain any special character !" msgstr "" +"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères " +"spéciaux !" #. module: hr_timesheet_invoice #: field:account.analytic.account,pricelist_id:0 @@ -133,7 +131,7 @@ msgstr "Choisissez les comptes que vous désirez facturer" #. module: hr_timesheet_invoice #: rml:hr.timesheet.invoice.account.analytic.account.cost_ledger:0 msgid "Total (" -msgstr "Total " +msgstr "Total" #. module: hr_timesheet_invoice #: wizard_field:hr.timesheet.invoice.create,init,product:0 @@ -158,7 +156,7 @@ msgstr "Période de début" #. module: hr_timesheet_invoice #: rml:hr.timesheet.invoice.account.analytic.account.cost_ledger:0 msgid ")" -msgstr "" +msgstr ")" #. module: hr_timesheet_invoice #: rml:hr.timesheet.invoice.account.analytic.account.cost_ledger:0 @@ -189,18 +187,6 @@ msgstr "Choisir" msgid "to" msgstr "à" -#. module: hr_timesheet_invoice -#, python-format -#: code:addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py:0 -msgid "Error" -msgstr "" - -#. module: hr_timesheet_invoice -#, python-format -#: code:addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py:0 -msgid "Balance product needed" -msgstr "" - #. module: hr_timesheet_invoice #: model:ir.actions.wizard,name:hr_timesheet_invoice.hr_timesheet_invoice_create msgid "Invoice analytic lines" @@ -216,7 +202,7 @@ msgstr "Date" #. module: hr_timesheet_invoice #: model:ir.ui.menu,name:hr_timesheet_invoice.menu_action_draft_analytic_accounts msgid "Draft Analytic Accounts" -msgstr "Comptes analytiques brouillon" +msgstr "Compte analytique brouiilon" #. module: hr_timesheet_invoice #: rml:account.analytic.profit:0 @@ -248,7 +234,7 @@ msgstr "Créer des factures" #: model:ir.actions.act_window,name:hr_timesheet_invoice.action_hr_timesheet_invoice_factor_form #: model:ir.ui.menu,name:hr_timesheet_invoice.hr_timesheet_invoice_factor_view msgid "Types of Invoicing" -msgstr "" +msgstr "Types de Facture" #. module: hr_timesheet_invoice #: wizard_field:hr.timesheet.final.invoice.create,init,time:0 @@ -269,30 +255,24 @@ msgstr "Types de facturation" #. module: hr_timesheet_invoice #: rml:account.analytic.profit:0 msgid "Theorical" -msgstr "" +msgstr "Théorique" #. module: hr_timesheet_invoice #: model:ir.actions.act_window,name:hr_timesheet_invoice.action_hr_analytic_timesheet_tree_invoiced_my #: model:ir.ui.menu,name:hr_timesheet_invoice.menu_hr_analytic_timesheet_tree_invoiced_my msgid "My Uninvoiced Entries" -msgstr "" +msgstr "Mes Entrées Non Facturées" #. module: hr_timesheet_invoice #: constraint:ir.ui.view:0 msgid "Invalid XML for View Architecture!" -msgstr "" +msgstr "XML non valide pour l'architecture de la vue!" #. module: hr_timesheet_invoice #: view:hr_timesheet_invoice.factor:0 msgid "Type of invoicing" msgstr "Type de facturation" -#. module: hr_timesheet_invoice -#, python-format -#: code:addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py:0 -msgid "Please fill a Balance product in the wizard" -msgstr "" - #. module: hr_timesheet_invoice #: model:ir.actions.act_window,name:hr_timesheet_invoice.action_pending_analytic_accounts #: model:ir.ui.menu,name:hr_timesheet_invoice.menu_action_pending_analytic_accounts @@ -319,13 +299,6 @@ msgstr "Code J." msgid "Invoice rate" msgstr "Taux de facture" -#. module: hr_timesheet_invoice -#, python-format -#: code:addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py:0 -#: code:addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py:0 -msgid "Analytic account incomplete" -msgstr "" - #. module: hr_timesheet_invoice #: wizard_field:hr.timesheet.invoice.account.analytic.account.cost_ledger.report,init,date2:0 msgid "End of period" @@ -339,13 +312,7 @@ msgstr "Nom interne" #. module: hr_timesheet_invoice #: rml:hr.timesheet.invoice.account.analytic.account.cost_ledger:0 msgid "Balance" -msgstr "Balance " - -#. module: hr_timesheet_invoice -#, python-format -#: code:addons/hr_timesheet_invoice/hr_timesheet_invoice.py:0 -msgid "Error !" -msgstr "" +msgstr "Balance" #. module: hr_timesheet_invoice #: wizard_view:hr.timesheet.invoice.account.analytic.account.cost_ledger.report,init:0 @@ -358,12 +325,6 @@ msgstr "Sélectionnez une période" msgid "Name of entry" msgstr "Nom de l'entrée" -#. module: hr_timesheet_invoice -#, python-format -#: code:addons/hr_timesheet_invoice/hr_timesheet_invoice.py:0 -msgid "You can not modify an invoiced analytic line!" -msgstr "" - #. module: hr_timesheet_invoice #: rml:hr.timesheet.invoice.account.analytic.account.cost_ledger:0 msgid "Code" @@ -378,7 +339,7 @@ msgstr "à" #: model:ir.actions.act_window,name:hr_timesheet_invoice.action_open_invoice_analytic_accounts #: model:ir.ui.menu,name:hr_timesheet_invoice.menu_action_open_invoice_analytic_accounts msgid "Unclosed Invoiceable Accounts" -msgstr "" +msgstr "Comptes Facturables Non Cloturés" #. module: hr_timesheet_invoice #: wizard_view:hr.timesheet.invoice.create,init:0 @@ -429,7 +390,7 @@ msgstr "Factures finales" #. module: hr_timesheet_invoice #: rml:hr.timesheet.invoice.account.analytic.account.cost_ledger:0 msgid "Total" -msgstr "Total " +msgstr "Total" #. module: hr_timesheet_invoice #: wizard_field:account.analytic.profit,init,journal_ids:0 @@ -444,5 +405,4 @@ msgstr "Montant de la balance" #. module: hr_timesheet_invoice #: rml:account.analytic.profit:0 msgid "Invoice rate by user" -msgstr "" - +msgstr "Taux Facturable par Utilisateur" diff --git a/addons/hr_timesheet_invoice/security/ir.model.access.csv b/addons/hr_timesheet_invoice/security/ir.model.access.csv index f849d88fbcb..c56f26ab3ee 100644 --- a/addons/hr_timesheet_invoice/security/ir.model.access.csv +++ b/addons/hr_timesheet_invoice/security/ir.model.access.csv @@ -1,3 +1,3 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_hr_timesheet_invoice_factor,hr_timesheet_invoice.factor,model_hr_timesheet_invoice_factor,base.group_user,1,0,0,0 -access_hr_timesheet_invoice_factor,hr_timesheet_invoice.factor,model_hr_timesheet_invoice_factor,account.group_account_invoice,1,1,1,1 +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_hr_timesheet_invoice_factor","hr_timesheet_invoice.factor","model_hr_timesheet_invoice_factor","hr.group_hr_user",1,0,0,0 +"access_hr_timesheet_invoice_factor","hr_timesheet_invoice.factor","model_hr_timesheet_invoice_factor","account.group_account_invoice",1,1,1,1 diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py b/addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py index fbf625be1be..7e8a9ff3887 100644 --- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py +++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_final_invoice_create.py @@ -108,15 +108,7 @@ class final_invoice_create(wizard.interface): price = 0.0 taxes = product.taxes_id - taxep = account.partner_id.property_account_tax - if not taxep.id: - tax = [x.id for x in taxes or []] - else: - tax = [taxep.id] - for t in taxes: - if not t.tax_group==taxep.tax_group: - tax.append(t.id) - + tax = self.pool.get('account.fiscal.position').map_tax(cr, uid, account.partner_id, taxes) account_id = product.product_tmpl_id.property_account_income.id or product.categ_id.property_account_income_categ.id curr_line = { @@ -165,15 +157,8 @@ class final_invoice_create(wizard.interface): taxes = product.taxes_id else: taxes = [] - taxep = account.partner_id.property_account_tax - if not taxep.id: - tax = [x.id for x in taxes or []] - else: - tax = [taxep.id] - for t in taxes: - if not t.tax_group==taxep.tax_group: - tax.append(t.id) + tax = self.pool.get('account.fiscal.position').map_tax(cr, uid, account.partner_id, taxes) curr_line = { 'price_unit': -amount, 'quantity': 1.0, @@ -194,15 +179,7 @@ class final_invoice_create(wizard.interface): product = pool.get('product.product').browse(cr, uid, data['form']['balance_product'], context2) taxes = product.taxes_id - taxep = account.partner_id.property_account_tax - if not taxep.id: - tax = [x.id for x in taxes or []] - else: - tax = [taxep.id] - for t in taxes: - if not t.tax_group==taxep.tax_group: - tax.append(t.id) - + tax = self.pool.get('account.fiscal.position').map_tax(cr, uid, account.partner_id, taxes) account_id = product.product_tmpl_id.property_account_income.id or product.categ_id.property_account_income_categ.id curr_line = { diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py index 52cb8387aa4..1e7c328f9dd 100644 --- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py +++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py @@ -113,15 +113,7 @@ class invoice_create(wizard.interface): price = 0.0 taxes = product.taxes_id - taxep = account.partner_id.property_account_tax - if not taxep.id: - tax = [x.id for x in taxes or []] - else: - tax = [taxep.id] - for t in taxes: - if not t.tax_group==taxep.tax_group: - tax.append(t.id) - + tax = self.pool.get('account.fiscal.position').map_tax(cr, uid, account.partner_id, taxes) account_id = product.product_tmpl_id.property_account_income.id or product.categ_id.property_account_income_categ.id curr_line = { diff --git a/addons/hr_timesheet_project/__terp__.py b/addons/hr_timesheet_project/__terp__.py index 06922784d56..e3c24de5ea0 100644 --- a/addons/hr_timesheet_project/__terp__.py +++ b/addons/hr_timesheet_project/__terp__.py @@ -34,7 +34,9 @@ "description": """Auto-complete timesheet based on tasks made on the project management module.""", "website" : "http://tinyerp.com/module_hr.html", "depends" : ["project", "hr_timesheet_sheet"], - "update_xml" : ["hr_timesheet_project_view.xml", "process/hr_timesheet_project_process.xml"], + "update_xml" : ["hr_timesheet_project_view.xml", + "process/hr_timesheet_project_process.xml", + ], "active": False, "installable": True } diff --git a/addons/hr_timesheet_project/i18n/fr_FR.po b/addons/hr_timesheet_project/i18n/fr_FR.po index 902bf0ae07c..f483483c7f5 100644 --- a/addons/hr_timesheet_project/i18n/fr_FR.po +++ b/addons/hr_timesheet_project/i18n/fr_FR.po @@ -4,24 +4,24 @@ # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 4.3.0" -"Report-Msgid-Bugs-To: support@openerp.com" -"POT-Creation-Date: 2008-09-11 15:41:42+0000" -"PO-Revision-Date: 2008-09-11 15:41:42+0000" -"Last-Translator: <>" -"Language-Team: " -"MIME-Version: 1.0" -"Content-Type: text/plain; charset=UTF-8" -"Content-Transfer-Encoding: " -"Plural-Forms: " +"Project-Id-Version: OpenERP Server 4.3.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2008-09-05 16:09+0000\n" +"PO-Revision-Date: 2008-10-13 12:02+0000\n" +"Last-Translator: Olivier Laurent \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2008-10-14 12:48+0000\n" +"X-Generator: Launchpad (build Unknown)\n" #. module: hr_timesheet_project #: model:ir.actions.wizard,name:hr_timesheet_project.encode_hour_tss msgid "Import Hours From Tasks" -msgstr "" +msgstr "Importer les Heures des Tâches" #. module: hr_timesheet_project #: model:ir.ui.menu,name:hr_timesheet_project.menu_act_hr_timesheet_line_me_today_project_form msgid "Hours From Tasks" -msgstr "" - +msgstr "Heures des Tâches" diff --git a/addons/hr_timesheet_project/process/hr_timesheet_project_process.xml b/addons/hr_timesheet_project/process/hr_timesheet_project_process.xml index d514b14bf17..0cc7032602d 100644 --- a/addons/hr_timesheet_project/process/hr_timesheet_project_process.xml +++ b/addons/hr_timesheet_project/process/hr_timesheet_project_process.xml @@ -58,7 +58,7 @@ - +
diff --git a/addons/hr_timesheet_sheet/i18n/fr_FR.po b/addons/hr_timesheet_sheet/i18n/fr_FR.po index d95a163341f..9b5c9328e75 100644 --- a/addons/hr_timesheet_sheet/i18n/fr_FR.po +++ b/addons/hr_timesheet_sheet/i18n/fr_FR.po @@ -4,21 +4,24 @@ # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 4.3.0" -"Report-Msgid-Bugs-To: support@openerp.com" -"POT-Creation-Date: 2008-09-11 15:41:43+0000" -"PO-Revision-Date: 2008-09-11 15:41:43+0000" -"Last-Translator: <>" -"Language-Team: " -"MIME-Version: 1.0" -"Content-Type: text/plain; charset=UTF-8" -"Content-Transfer-Encoding: " -"Plural-Forms: " +"Project-Id-Version: OpenERP Server 4.3.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2008-09-05 16:25+0000\n" +"PO-Revision-Date: 2008-10-13 12:10+0000\n" +"Last-Translator: Olivier Laurent \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2008-10-13 12:40+0000\n" +"X-Generator: Launchpad (build Unknown)\n" +#~ msgid "Configuration" +#~ msgstr "Configuration" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet.account:0 msgid "Timesheet by Accounts" -msgstr "" +msgstr "Feuille de Feuilles de Présence" #. module: hr_timesheet_sheet #: selection:hr_timesheet_sheet.sheet,state:0 @@ -32,8 +35,11 @@ msgstr "Présence" #. module: hr_timesheet_sheet #: constraint:ir.model:0 -msgid "The Object name must start with x_ and not contain any special character !" +msgid "" +"The Object name must start with x_ and not contain any special character !" msgstr "" +"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères " +"spéciaux !" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 @@ -66,13 +72,7 @@ msgstr "Feuilles de présence non-validées" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet.day:0 msgid "Timesheet by Days" -msgstr "" - -#. module: hr_timesheet_sheet -#, python-format -#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:0 -msgid "You can not sign out from an other date than today" -msgstr "" +msgstr "Feuille de Feuilles de Présence" #. module: hr_timesheet_sheet #: selection:hr_timesheet_sheet.sheet,state:0 @@ -80,10 +80,8 @@ msgid "Draft" msgstr "Brouillon" #. module: hr_timesheet_sheet -#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_form #: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form #: model:ir.ui.menu,name:hr_timesheet_sheet.next_id_60 -#: view:res.company:0 #: view:hr_timesheet_sheet.sheet:0 msgid "Timesheets" msgstr "Timesheets" @@ -92,7 +90,7 @@ msgstr "Timesheets" #: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_form_all_confirm #: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_all_confirm msgid "Timesheets To Confirm" -msgstr "" +msgstr "Feuille de Feuilles de Présence" #. module: hr_timesheet_sheet #: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_form_my_confirm @@ -106,7 +104,7 @@ msgstr "Mes feuilles de présence à confirmer" #: field:hr_timesheet_sheet.sheet.account,sheet_id:0 #: field:hr_timesheet_sheet.sheet.day,sheet_id:0 msgid "Sheet" -msgstr "Feuille " +msgstr "Feuille" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 @@ -126,13 +124,7 @@ msgstr "Aujourd'hui" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,state:0 msgid "Status" -msgstr "" - -#. module: hr_timesheet_sheet -#, python-format -#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:0 -msgid "Please verify that the total difference of the sheet is lower than %.2f !" -msgstr "" +msgstr "État" #. module: hr_timesheet_sheet #: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_2_hr_attendance @@ -142,11 +134,9 @@ msgid "Attendances" msgstr "Présences" #. module: hr_timesheet_sheet -#, python-format -#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:0 -#: code:addons/hr_timesheet_sheet/wizard/wizard_timesheet_current.py:0 -msgid "Error !" -msgstr "" +#: field:hr_timesheet_sheet.sheet.account,invoice_rate:0 +msgid "Invoice rate" +msgstr "Taux de facturation" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,name:0 @@ -166,18 +156,12 @@ msgstr "Accepter" #. module: hr_timesheet_sheet #: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_2_hr_analytic_timesheet msgid "Timesheet Lines" -msgstr "" - -#. module: hr_timesheet_sheet -#, python-format -#: code:addons/hr_timesheet_sheet/wizard/wizard_timesheet_current.py:0 -msgid "No employee defined for your user !" -msgstr "" +msgstr "Lignes des Feuilles de Présence" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,state_attendance:0 msgid "Current Status" -msgstr "" +msgstr "État actuel" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 @@ -192,17 +176,17 @@ msgstr "Semaine" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,date_to:0 msgid "Date to" -msgstr "Date de " +msgstr "Date de" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,user_id:0 msgid "User" -msgstr "Utilisateur " +msgstr "Utilisateur" #. module: hr_timesheet_sheet #: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_by_day msgid "Timesheet by Account" -msgstr "" +msgstr "Feuilles de Présence par Compte" #. module: hr_timesheet_sheet #: selection:hr_timesheet_sheet.sheet,state_attendance:0 @@ -218,7 +202,7 @@ msgstr "Date" #: model:ir.actions.wizard,name:hr_timesheet_sheet.act_hr_timesheet_sheet_form_my_current #: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current msgid "My Current Timesheet" -msgstr "" +msgstr "Ma Feuille de Présence actuelle" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet.day,total_difference:0 @@ -240,7 +224,7 @@ msgstr "Présent" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,date_from:0 msgid "Date from" -msgstr "Date de " +msgstr "Date de" #. module: hr_timesheet_sheet #: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_sheet_sheet @@ -255,39 +239,22 @@ msgstr "Absent" #. module: hr_timesheet_sheet #: constraint:ir.ui.view:0 msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: hr_timesheet_sheet -#, python-format -#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:0 -msgid "UserError" -msgstr "" +msgstr "XML non valide pour l'architecture de la vue!" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 msgid "Daily View" -msgstr "" - -#. module: hr_timesheet_sheet -#: constraint:hr_timesheet_sheet.sheet:0 -msgid "You must select a Current date wich is in the timesheet dates !" -msgstr "" +msgstr "Vue Journalière" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 msgid "By Day" -msgstr "" - -#. module: hr_timesheet_sheet -#, python-format -#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:0 -msgid "You can not sign in from an other date than today" -msgstr "" +msgstr "Par Jour" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet.day:0 msgid "Total Difference" -msgstr "" +msgstr "Différence Totale" #. module: hr_timesheet_sheet #: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_sheet_sheet_account @@ -296,26 +263,16 @@ msgid "Timesheets by period" msgstr "Feuilles de présence par période" #. module: hr_timesheet_sheet -#: view:hr_timesheet_sheet.sheet:0 -msgid "Go to:" -msgstr "Aller à :" - -#. module: hr_timesheet_sheet -#: field:hr_timesheet_sheet.sheet.account,invoice_rate:0 -msgid "Invoice rate" -msgstr "Taux de facturation" +#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_form_all_valid +#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_all_valid +msgid "Timesheets To Validate" +msgstr "Feuilles de Présence à Valider" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 msgid "Sign In" msgstr "Pointer l'entrée" -#. module: hr_timesheet_sheet -#, python-format -#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:0 -msgid "You can not modify an entry in a confirmed timesheet !" -msgstr "" - #. module: hr_timesheet_sheet #: model:ir.actions.wizard,name:hr_timesheet_sheet.act_hr_timesheet_sheet_form_department_confirm #: model:ir.actions.wizard,name:hr_timesheet_sheet.act_hr_timesheet_sheet_form_department_current @@ -326,12 +283,6 @@ msgstr "" msgid "My department's timesheet" msgstr "Les feuilles de présence de mon département" -#. module: hr_timesheet_sheet -#, python-format -#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:0 -msgid "Warning !" -msgstr "" - #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet.account:0 msgid "Timesheet by accounts" @@ -339,8 +290,12 @@ msgstr "Feuille de présence par compte" #. module: hr_timesheet_sheet #: help:res.company,timesheet_max_difference:0 -msgid "Allowed difference between the sign in/out and the timesheet computation for one sheet. Set this to 0 if you do not want any control." -msgstr "La différence permise entre le sign in/out and le calcul de la timesheet pour une feuille. Mettez cette valeur à 0 si vous ne voulez aucun contrôle." +msgid "" +"Allowed difference between the sign in/out and the timesheet computation for " +"one sheet. Set this to 0 if you do not want any control." +msgstr "" +"La différence permise entre le sign in/out and le calcul de la timesheet " +"pour une feuille. Mettez cette valeur à 0 si vous ne voulez aucun contrôle." #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,account_ids:0 @@ -348,9 +303,9 @@ msgid "Analytic accounts" msgstr "Compte analytique" #. module: hr_timesheet_sheet -#: view:res.company:0 -msgid "Configuration" -msgstr "Configuration" +#: view:hr_timesheet_sheet.sheet:0 +msgid "Go to:" +msgstr "Aller à :" #. module: hr_timesheet_sheet #: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_form_my @@ -384,7 +339,7 @@ msgstr "Période" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 msgid "Timesheet" -msgstr "Feuille de présence " +msgstr "Feuille de présence" #. module: hr_timesheet_sheet #: selection:res.company,timesheet_range:0 @@ -411,12 +366,6 @@ msgstr "Fait" msgid "Current date" msgstr "Date actuelle" -#. module: hr_timesheet_sheet -#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_form_all_valid -#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_all_valid -msgid "Timesheets To Validate" -msgstr "" - #. module: hr_timesheet_sheet #: selection:res.company,timesheet_range:0 msgid "Year" @@ -425,10 +374,9 @@ msgstr "Année" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet.account:0 msgid "Total" -msgstr "" +msgstr "Total" #. module: hr_timesheet_sheet #: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_by_account msgid "Timesheet by Day" -msgstr "" - +msgstr "Feuilles de Présence par Jour" diff --git a/addons/hr_timesheet_sheet/process/hr_timesheet_sheet_process.xml b/addons/hr_timesheet_sheet/process/hr_timesheet_sheet_process.xml index 24374c2a810..6917812bedb 100644 --- a/addons/hr_timesheet_sheet/process/hr_timesheet_sheet_process.xml +++ b/addons/hr_timesheet_sheet/process/hr_timesheet_sheet_process.xml @@ -89,6 +89,7 @@ + @@ -140,6 +141,14 @@ + + + + + + + + @@ -166,6 +175,7 @@ + @@ -222,5 +232,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/addons/hr_timesheet_sheet/security/ir.model.access.csv b/addons/hr_timesheet_sheet/security/ir.model.access.csv index be9d927f9a4..5b7cf40a379 100644 --- a/addons/hr_timesheet_sheet/security/ir.model.access.csv +++ b/addons/hr_timesheet_sheet/security/ir.model.access.csv @@ -1,4 +1,4 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_hr_timesheet_sheet_sheet,hr_timesheet_sheet.sheet,model_hr_timesheet_sheet_sheet,base.group_user,1,1,1,1 -access_hr_timesheet_sheet_sheet_day,hr_timesheet_sheet.sheet.day,model_hr_timesheet_sheet_sheet_day,base.group_user,1,1,1,1 -access_hr_timesheet_sheet_sheet_account,hr_timesheet_sheet.sheet.account,model_hr_timesheet_sheet_sheet_account,base.group_user,1,1,1,1 +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_hr_timesheet_sheet_sheet","hr_timesheet_sheet.sheet","model_hr_timesheet_sheet_sheet","hr.group_hr_user",1,1,1,1 +"access_hr_timesheet_sheet_sheet_day","hr_timesheet_sheet.sheet.day","model_hr_timesheet_sheet_sheet_day","hr.group_hr_user",1,1,1,1 +"access_hr_timesheet_sheet_sheet_account","hr_timesheet_sheet.sheet.account","model_hr_timesheet_sheet_sheet_account","hr.group_hr_user",1,1,1,1 diff --git a/addons/idea/i18n/fr_FR.po b/addons/idea/i18n/fr_FR.po index adca5caadee..78245fbe6c0 100644 --- a/addons/idea/i18n/fr_FR.po +++ b/addons/idea/i18n/fr_FR.po @@ -4,65 +4,69 @@ # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 4.3.0" -"Report-Msgid-Bugs-To: support@openerp.com" -"POT-Creation-Date: 2008-09-11 15:41:42+0000" -"PO-Revision-Date: 2008-09-11 15:41:42+0000" -"Last-Translator: <>" -"Language-Team: " -"MIME-Version: 1.0" -"Content-Type: text/plain; charset=UTF-8" -"Content-Transfer-Encoding: " -"Plural-Forms: " +"Project-Id-Version: OpenERP Server 4.3.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2008-09-05 16:29+0000\n" +"PO-Revision-Date: 2008-10-13 16:48+0000\n" +"Last-Translator: Olivier Laurent \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2008-10-13 17:12+0000\n" +"X-Generator: Launchpad (build Unknown)\n" #. module: idea #: field:idea.category,name:0 #: field:idea.idea,category_id:0 msgid "Category" -msgstr "" +msgstr "Catégorie" #. module: idea #: selection:idea.idea,my_vote:0 #: selection:idea.vote,score:0 #: selection:idea.vote.stat,score:0 msgid "Very Good" -msgstr "" +msgstr "Très bien" #. module: idea #: field:idea.idea,stat_vote_ids:0 #: view:idea.idea:0 msgid "Statistics" -msgstr "" +msgstr "Statistiques" #. module: idea #: constraint:ir.model:0 -msgid "The Object name must start with x_ and not contain any special character !" +msgid "" +"The Object name must start with x_ and not contain any special character !" msgstr "" +"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères " +"spéciaux !" #. module: idea #: selection:idea.idea,state:0 msgid "Opened" -msgstr "" +msgstr "Ouvert" #. module: idea #: selection:idea.idea,my_vote:0 #: selection:idea.vote,score:0 #: selection:idea.vote.stat,score:0 msgid "Not Voted" -msgstr "" +msgstr "Pas de vote" #. module: idea #: model:ir.actions.act_window,name:idea.action_idea_idea_open_my #: model:ir.ui.menu,name:idea.menu_idea_idea_open_my msgid "My Open Ideas" -msgstr "" +msgstr "Mes Idées Ouvertes" #. module: idea #: model:ir.actions.act_window,name:idea.action_idea_idea #: model:ir.ui.menu,name:idea.menu_ideas #: model:ir.ui.menu,name:idea.menu_ideas1 msgid "Ideas" -msgstr "" +msgstr "Idées" #. module: idea #: model:ir.model,name:idea.model_idea_comment @@ -70,82 +74,82 @@ msgstr "" #: view:idea.comment:0 #: view:idea.idea:0 msgid "Comments" -msgstr "" +msgstr "Commentaires" #. module: idea #: selection:idea.idea,my_vote:0 #: selection:idea.vote,score:0 #: selection:idea.vote.stat,score:0 msgid "Very Bad" -msgstr "" +msgstr "Très mauvais" #. module: idea #: selection:idea.idea,my_vote:0 #: selection:idea.vote,score:0 #: selection:idea.vote.stat,score:0 msgid "Bad" -msgstr "" +msgstr "Mauvais" #. module: idea #: model:ir.actions.act_window,name:idea.action_idea_category_tree #: model:ir.ui.menu,name:idea.menu_idea_category_tree msgid "Ideas by Categories" -msgstr "" +msgstr "Idées par Catégorie" #. module: idea #: field:idea.vote,score:0 #: field:idea.vote.stat,score:0 msgid "Score" -msgstr "" +msgstr "Score" #. module: idea #: selection:idea.idea,state:0 msgid "Draft" -msgstr "" +msgstr "Brouillon" #. module: idea #: model:ir.actions.act_window,name:idea.action_idea_vote msgid "Idea's vote" -msgstr "" +msgstr "Vote de l'Idée" #. module: idea #: model:ir.actions.act_window,name:idea.action_idea_vote_stat msgid "Statistics on Votes" -msgstr "" +msgstr "Statistiques sur les Votes" #. module: idea #: model:ir.model,name:idea.model_idea_category msgid "Category for an idea" -msgstr "" +msgstr "Catégorie d'une Idée" #. module: idea #: view:idea.category:0 msgid "Category of ideas" -msgstr "" +msgstr "Catégories d'Idée" #. module: idea #: field:idea.idea,state:0 msgid "Status" -msgstr "" +msgstr "État" #. module: idea #: selection:idea.idea,my_vote:0 #: selection:idea.vote,score:0 #: selection:idea.vote.stat,score:0 msgid "Good" -msgstr "" +msgstr "Bon" #. module: idea #: field:idea.idea,description:0 msgid "Description" -msgstr "" +msgstr "Description" #. module: idea #: selection:idea.idea,my_vote:0 #: selection:idea.vote,score:0 #: selection:idea.vote.stat,score:0 msgid "Normal" -msgstr "" +msgstr "Normal" #. module: idea #: model:ir.ui.menu,name:idea.menu_reporting @@ -155,12 +159,12 @@ msgstr "Reporting" #. module: idea #: view:idea.idea:0 msgid "Close" -msgstr "" +msgstr "Fermer" #. module: idea #: model:ir.model,name:idea.model_idea_vote_stat msgid "Idea Votes Statistics" -msgstr "" +msgstr "Statistiques des Votes d'Idée" #. module: idea #: model:ir.model,name:idea.model_idea_vote @@ -171,17 +175,17 @@ msgstr "" #: field:idea.comment,user_id:0 #: field:idea.vote,user_id:0 msgid "User" -msgstr "" +msgstr "Utilisateur" #. module: idea #: view:idea.idea:0 msgid "Your comment" -msgstr "" +msgstr "Votre commentaire" #. module: idea #: selection:idea.idea,state:0 msgid "Accepted" -msgstr "" +msgstr "Accepté" #. module: idea #: model:ir.ui.menu,name:idea.menu_idea_category @@ -196,23 +200,23 @@ msgstr "" #. module: idea #: field:idea.idea,my_vote:0 msgid "My Vote" -msgstr "" +msgstr "Mes Votes" #. module: idea #: constraint:ir.ui.view:0 msgid "Invalid XML for View Architecture!" -msgstr "" +msgstr "XML non valide pour l'architecture de la vue" #. module: idea #: view:idea.vote:0 msgid "Votes" -msgstr "" +msgstr "Votes" #. module: idea #: field:idea.comment,create_date:0 #: field:idea.idea,create_date:0 msgid "Creation date" -msgstr "" +msgstr "Date de création" #. module: idea #: field:idea.idea,count_votes:0 @@ -222,7 +226,7 @@ msgstr "" #. module: idea #: field:idea.vote.stat,nbr:0 msgid "Number of Votes" -msgstr "" +msgstr "Nombre de Votes" #. module: idea #: model:ir.model,name:idea.model_idea_idea @@ -232,29 +236,29 @@ msgstr "" #. module: idea #: field:idea.category,summary:0 msgid "Summary" -msgstr "" +msgstr "Résumé" #. module: idea #: view:idea.idea:0 msgid "Cancel" -msgstr "" +msgstr "Annuler" #. module: idea #: model:ir.actions.act_window,name:idea.action_idea_idea_my_idea #: model:ir.ui.menu,name:idea.menu_idea_idea_my_idea msgid "My Ideas" -msgstr "" +msgstr "Mes Idées" #. module: idea #: model:ir.ui.menu,name:idea.menu_idea_idea #: view:idea.idea:0 msgid "All Ideas" -msgstr "" +msgstr "Toutes les Idées" #. module: idea #: field:idea.category,child_ids:0 msgid "Child Categories" -msgstr "" +msgstr "Catégories filles" #. module: idea #: field:idea.idea,count_comments:0 @@ -264,22 +268,22 @@ msgstr "" #. module: idea #: field:idea.idea,title:0 msgid "Idea Summary" -msgstr "" +msgstr "Résumé de l'Idée" #. module: idea #: model:ir.ui.menu,name:idea.menu_idea_vote_stat msgid "Vote Statistics" -msgstr "" +msgstr "Statistiques des Votes" #. module: idea #: view:idea.idea:0 msgid "New Idea" -msgstr "" +msgstr "Nouvelle Idée" #. module: idea #: field:idea.idea,vote_avg:0 msgid "Average Score" -msgstr "" +msgstr "Moyenne des scores" #. module: idea #: view:idea.idea:0 @@ -292,7 +296,7 @@ msgstr "" #: view:idea.comment:0 #: view:idea.idea:0 msgid "Comment" -msgstr "" +msgstr "Commentaire" #. module: idea #: model:ir.ui.menu,name:idea.menu_config @@ -302,17 +306,17 @@ msgstr "Configuration" #. module: idea #: field:idea.category,parent_id:0 msgid "Parent Categories" -msgstr "" +msgstr "Catégorie Parente" #. module: idea #: field:idea.idea,user_id:0 msgid "Creator" -msgstr "" +msgstr "Créateur" #. module: idea #: view:idea.idea:0 msgid "Open" -msgstr "" +msgstr "Ouvert" #. module: idea #: field:idea.comment,idea_id:0 @@ -320,43 +324,42 @@ msgstr "" #: field:idea.vote.stat,idea_id:0 #: view:idea.idea:0 msgid "Idea" -msgstr "" +msgstr "Idée" #. module: idea #: selection:idea.idea,state:0 msgid "Canceled" -msgstr "" +msgstr "Annulée" #. module: idea #: model:ir.ui.menu,name:idea.menu_idea_vote msgid "All Votes" -msgstr "" +msgstr "Tous les Votes" #. module: idea #: field:idea.idea,vote_ids:0 msgid "Vote" -msgstr "" +msgstr "Vote" #. module: idea #: model:ir.actions.act_window,name:idea.action_idea_idea_draft_my #: model:ir.ui.menu,name:idea.menu_idea_idea_draft_my msgid "My Draft Ideas" -msgstr "" +msgstr "Mes Idées Brouillon" #. module: idea #: model:ir.actions.act_window,name:idea.action_idea_idea_categ_open #: model:ir.actions.act_window,name:idea.action_idea_idea_open #: model:ir.ui.menu,name:idea.menu_idea_idea_open msgid "Open Ideas" -msgstr "" +msgstr "Idées Ouvertes" #. module: idea #: model:ir.ui.menu,name:idea.menu_tools msgid "Tools" -msgstr "" +msgstr "Outils" #. module: idea #: help:idea.idea,description:0 msgid "Content of the idea" -msgstr "" - +msgstr "Contenu de l'Idée" diff --git a/addons/l10n_be/account.report.report.csv b/addons/l10n_be/account.report.report.csv index 0ae4993b5de..8bf965c741c 100644 --- a/addons/l10n_be/account.report.report.csv +++ b/addons/l10n_be/account.report.report.csv @@ -1,21 +1,21 @@ -expression,note,parent_id,sequence,expression_status,style,type,code,name -0,,,,0,1,indicator,BILAN,Bilan -"report('BIMMO','BSTOCK','BREAL','BDISPO')",,BILAN,,0,2,fiscal,Actif,Actif -balance('2'),,Actif,,0,3,indicator,BIMMO,Valeurs immobilisées -balance('3'),,Actif,2,0,3,indicator,BSTOCK,Stocks -balance('4'),,Actif,3,0,3,indicator,BREAL,Réalisable -balance('5'),,Actif,4,0,3,fiscal,BDISPO,Disponible -report('BCAP') + report('BRESNET'),,BILAN,1,0,2,fiscal,PASSIF,Passif -balance('1'),,PASSIF,1,0,5,indicator,BCAP,Capitaux propores --balance('7')+balance('6'),,PASSIF,,0,3,fiscal,BRESNET,Résultat net -0,,,,0,1,fiscal,CRES,Compte des résultats -"report('CCHAR','CBENEF')",,CRES,,0,2,fiscal,CRESACTIF,Résultat Actif -balance('6'),,CRESACTIF,,0,2,fiscal,CCHAR,Total des charges -report('CRESPROD'),,CRES,,0,2,fiscal,CRESPASSIF,Résultat Passif --balance('7'),,CRESPASSIF,,0,2,fiscal,CRESPROD,Total des produits --balance('7')+balance('6'),,CRESACTIF,,0,2,fiscal,CBENEF,Résultat (Bénéfice) -0,,,,0,3,indicator,IIMMO,Immobilisations -"balance('1')/balance(map(str(range(21,29))))","Dans une entreprise normalement équilibrée, les valeurs immobilisées sont couvertes en premier lieu par les capitaux propres et, en second lieu, par tout ou partie du passif à long terme. Idéalement, ce ratio (rapport entre capitaux permanents et les valeurs immobilisées) doit être suppérieur à l'unité.",IIMMO,,"balance('1')/balance(map(str(range(21,29)))) - 1",3,indicator,CIMMO,Couverture des immobilisations -0,,,,0,2,indicator,ITRE,Trésorerie -"balance('3','4','5') / balance('101','13','15','16','17','18')",Détermine si l'entreprise a la possibilité de s'acquitter de ses dettes à court terme dans des conditions normales. Calculé comme suit: (Stocks + Réalisable + Disponible ) / Passif exigible à court terme,ITRE,,"balance('3','4','5') / balance('101','13','15','16','17','18')",3,indicator,IFR,Indice du fond de roulement -"balance('4','5') / balance('101','13','15','16','17','18')",,ITRE,,"balance('4','5') / balance('101','13','15','16','17','18')",5,indicator,RTRE,Ratio de trésorerie +"expression","note","parent_id","sequence","badness_limit","goodness_limit","type","code","name" +0,,,,0,1,"indicator","BILAN","Bilan" +"report('BIMMO','BSTOCK','BREAL','BDISPO')",,"BILAN",,0,1,"fiscal","Actif","Actif" +"balance('2')",,"Actif",,0,1,"indicator","BIMMO","Valeurs immobilisées" +"balance('3')",,"Actif",2,0,1,"indicator","BSTOCK","Stocks" +"balance('4')",,"Actif",3,0,1,"indicator","BREAL","Réalisable" +"balance('5')",,"Actif",4,0,1,"fiscal","BDISPO","Disponible" +"report('BCAP') + report('BRESNET')",,"BILAN",1,0,1,"fiscal","PASSIF","Passif" +"balance('1')",,"PASSIF",1,0,1,"indicator","BCAP","Capitaux propores" +"-balance('7')+balance('6')",,"PASSIF",,0,1,"fiscal","BRESNET","Résultat net" +0,,,,0,1,"fiscal","CRES","Compte des résultats" +"report('CCHAR','CBENEF')",,"CRES",,0,1,"fiscal","CRESACTIF","Résultat Actif" +"balance('6')",,"CRESACTIF",,0,1,"fiscal","CCHAR","Total des charges" +"report('CRESPROD')",,"CRES",,0,1,"fiscal","CRESPASSIF","Résultat Passif" +"-balance('7')",,"CRESPASSIF",,0,1,"fiscal","CRESPROD","Total des produits" +"-balance('7')+balance('6')",,"CRESACTIF",,0,1,"fiscal","CBENEF","Résultat (Bénéfice)" +0,,,,0,1,"indicator","IIMMO","Immobilisations" +"balance('1')/balance(map(str(range(21,29))))","Dans une entreprise normalement équilibrée, les valeurs immobilisées sont couvertes en premier lieu par les capitaux propres et, en second lieu, par tout ou partie du passif à long terme. Idéalement, ce ratio (rapport entre capitaux permanents et les valeurs immobilisées) doit être suppérieur à l'unité.","IIMMO",,0,1,"indicator","CIMMO","Couverture des immobilisations" +0,,,,0,1,"indicator","ITRE","Trésorerie" +"balance('3','4','5') / balance('101','13','15','16','17','18')","Détermine si l'entreprise a la possibilité de s'acquitter de ses dettes à court terme dans des conditions normales. Calculé comme suit: (Stocks + Réalisable + Disponible ) / Passif exigible à court terme","ITRE",,0,1,"indicator","IFR","Indice du fond de roulement" +"balance('4','5') / balance('101','13','15','16','17','18')",,"ITRE",,0,1,"indicator","RTRE","Ratio de trésorerie" diff --git a/addons/l10n_be/account_pcmn_belgium.xml b/addons/l10n_be/account_pcmn_belgium.xml index d7252313333..1951975d618 100644 --- a/addons/l10n_be/account_pcmn_belgium.xml +++ b/addons/l10n_be/account_pcmn_belgium.xml @@ -59,7 +59,6 @@ none - @@ -6434,7 +6433,7 @@ - Plan de Taxe Belge + Plan de Taxes Belge I. Valeur des operations diff --git a/addons/l10n_be/i18n/fr_FR.po b/addons/l10n_be/i18n/fr_FR.po index e5438c16365..4968f890d53 100644 --- a/addons/l10n_be/i18n/fr_FR.po +++ b/addons/l10n_be/i18n/fr_FR.po @@ -4,79 +4,24 @@ # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 4.3.0" -"Report-Msgid-Bugs-To: support@openerp.com" -"POT-Creation-Date: 2008-09-11 15:41:43+0000" -"PO-Revision-Date: 2008-09-11 15:41:43+0000" -"Last-Translator: <>" -"Language-Team: " -"MIME-Version: 1.0" -"Content-Type: text/plain; charset=UTF-8" -"Content-Transfer-Encoding: " -"Plural-Forms: " +"Project-Id-Version: OpenERP Server 4.3.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2008-09-05 16:24+0000\n" +"PO-Revision-Date: 2008-10-13 12:11+0000\n" +"Last-Translator: Olivier Laurent \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2008-10-13 12:44+0000\n" +"X-Generator: Launchpad (build Unknown)\n" #. module: l10n_be -#: model:account.account.type,name:l10n_be.user_type_produit -msgid "Produit" -msgstr "" - -#. module: l10n_be -#: model:account.account.type,name:l10n_be.user_type_tiers -msgid "Tiers" -msgstr "" - -#. module: l10n_be -#: model:account.account.type,name:l10n_be.user_type_view -msgid "Vue" -msgstr "" - -#. module: l10n_be -#: model:account.account.type,name:l10n_be.user_type_stock -msgid "Stock et Encours" -msgstr "" - -#. module: l10n_be -#: model:account.account.type,name:l10n_be.user_type_immo -msgid "Immobilisation" -msgstr "" - -#. module: l10n_be -#: model:account.account.type,name:l10n_be.user_type_tax -msgid "Tax" -msgstr "Impôts et taxes" +#: constraint:account.tax.code:0 +msgid "Error ! You can not create recursive accounts." +msgstr "Erreur! Vous ne pouvez pas créer de comptes récursifs." #. module: l10n_be #: model:ir.ui.menu,name:l10n_be.account_wizard_vat_declaration msgid "VAT Declaration" -msgstr "" - -#. module: l10n_be -#: model:account.account.type,name:l10n_be.user_type_tiers_receiv -msgid "Tiers - Recevable" -msgstr "" - -#. module: l10n_be -#: model:account.account.type,name:l10n_be.user_type_charge -msgid "Charge" -msgstr "" - -#. module: l10n_be -#: model:account.account.type,name:l10n_be.user_type_financiers -msgid "Financier" -msgstr "" - -#. module: l10n_be -#: model:account.account.type,name:l10n_be.user_type_capitaux -msgid "Capital" -msgstr "" - -#. module: l10n_be -#: constraint:account.tax.code.template:0 -msgid "Error ! You can not create recursive Tax Codes." -msgstr "" - -#. module: l10n_be -#: model:account.account.type,name:l10n_be.user_type_tiers_payable -msgid "Tiers - Payable" -msgstr "" - +msgstr "Déclaration TVA" diff --git a/addons/l10n_chart_uk_minimal/i18n/fr_FR.po b/addons/l10n_chart_uk_minimal/i18n/fr_FR.po index 37b4a250448..e363fa287cd 100644 --- a/addons/l10n_chart_uk_minimal/i18n/fr_FR.po +++ b/addons/l10n_chart_uk_minimal/i18n/fr_FR.po @@ -4,19 +4,19 @@ # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 4.3.0" -"Report-Msgid-Bugs-To: support@tinyerp.com" -"POT-Creation-Date: 2008-09-04 08:35:53+0000" -"PO-Revision-Date: 2008-09-04 08:35:53+0000" -"Last-Translator: <>" -"Language-Team: " -"MIME-Version: 1.0" -"Content-Type: text/plain; charset=UTF-8" -"Content-Transfer-Encoding: " -"Plural-Forms: " +"Project-Id-Version: OpenERP Server 4.3.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2008-09-05 16:31+0000\n" +"PO-Revision-Date: 2008-10-14 13:30+0000\n" +"Last-Translator: Olivier Laurent \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2008-10-14 14:00+0000\n" +"X-Generator: Launchpad (build Unknown)\n" #. module: l10n_chart_uk_minimal #: constraint:account.tax.code:0 msgid "Error ! You can not create recursive accounts." -msgstr "" - +msgstr "Erreur! Vous ne pouvez pas créer de comptes récursifs." diff --git a/addons/l10n_fr/i18n/fr_FR.po b/addons/l10n_fr/i18n/fr_FR.po index cb1f7eaaa9c..9124295c3a5 100644 --- a/addons/l10n_fr/i18n/fr_FR.po +++ b/addons/l10n_fr/i18n/fr_FR.po @@ -4,32 +4,33 @@ # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 4.3.0" -"Report-Msgid-Bugs-To: support@tinyerp.com" -"POT-Creation-Date: 2008-09-04 08:35:53+0000" -"PO-Revision-Date: 2008-09-04 08:35:53+0000" -"Last-Translator: <>" -"Language-Team: " -"MIME-Version: 1.0" -"Content-Type: text/plain; charset=UTF-8" -"Content-Transfer-Encoding: " -"Plural-Forms: " +"Project-Id-Version: OpenERP Server 4.3.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2008-09-05 13:45+0000\n" +"PO-Revision-Date: 2008-10-14 13:30+0000\n" +"Last-Translator: Olivier Laurent \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2008-10-14 13:56+0000\n" +"X-Generator: Launchpad (build Unknown)\n" #. module: l10n_fr #: model:account.account.type,name:l10n_fr.account_type_dettes msgid "dettes long terme" -msgstr "" +msgstr "dettes long terme" #. module: l10n_fr #: model:ir.actions.wizard,name:l10n_fr.wizard_chart_report #: model:ir.ui.menu,name:l10n_fr.menu_fr_chart_report msgid "Account Report" -msgstr "" +msgstr "Rapport de compte" #. module: l10n_fr #: wizard_field:account.chart.report,init,company_id:0 msgid "Company" -msgstr "" +msgstr "Société" #. module: l10n_fr #: wizard_button:account.chart.report,init,pdf:0 @@ -39,45 +40,44 @@ msgstr "" #. module: l10n_fr #: wizard_field:account.chart.report,init,fiscalyear:0 msgid "Fiscal year" -msgstr "" +msgstr "Année fiscale" #. module: l10n_fr #: model:account.account.type,name:l10n_fr.account_type_immobilisations msgid "immobilisations" -msgstr "" +msgstr "immobilisations" #. module: l10n_fr #: wizard_view:account.chart.report,init:0 msgid "Aged Trial Balance" -msgstr "" +msgstr "Echéancier" #. module: l10n_fr #: model:account.journal,name:l10n_fr.operations_journal msgid "Journal des opérations diverses" -msgstr "" +msgstr "Journal des opérations diverses" #. module: l10n_fr #: model:account.journal,name:l10n_fr.bilan_journal msgid "Journal d'ouverture" -msgstr "" +msgstr "Journal d'ouverture" #. module: l10n_fr #: wizard_button:account.chart.report,init,end:0 msgid "Cancel" -msgstr "" +msgstr "Annuler" #. module: l10n_fr #: model:account.account.type,name:l10n_fr.account_type_cloture msgid "Cloture" -msgstr "" +msgstr "Cloture" #. module: l10n_fr #: model:account.account.type,name:l10n_fr.account_type_stocks msgid "stocks" -msgstr "" +msgstr "stocks" #. module: l10n_fr #: wizard_field:account.chart.report,init,target_move:0 msgid "Target Moves" -msgstr "" - +msgstr "Mouvements Cibles" diff --git a/addons/l10n_lu/__init__.py b/addons/l10n_lu/__init__.py new file mode 100644 index 00000000000..c185005c878 --- /dev/null +++ b/addons/l10n_lu/__init__.py @@ -0,0 +1,4 @@ +# +# Generated by the Tiny ERP module recorder ! +# +import wizard diff --git a/addons/l10n_lu/__terp__.py b/addons/l10n_lu/__terp__.py new file mode 100644 index 00000000000..49761b3fdb5 --- /dev/null +++ b/addons/l10n_lu/__terp__.py @@ -0,0 +1,24 @@ +{ + "name" : "Luxembourg - Plan Comptable Minimum Normalise", + "version" : "1.0", + "author" : "Tiny", + "website" : "http://openerp.com", + "category" : "Localisation/Account Charts", + "description": """ +This module install: + + *the KLUWER Chart of Accounts, + *the Tax Code Chart for Luxembourg + *the main taxes used in Luxembourg""", + "depends" : ["account","account_report","base_vat","base_iban"], + "init_xml" : [ ], + "demo_xml" : ["account.report.report.csv"], + "update_xml" : [ + "account.tax.code.template.csv", + "l10n_lu_data.xml", + "account.tax.template.csv", + "l10n_lu_wizard.xml", + "l10n_lu_report.xml", + ], + "installable": True +} diff --git a/addons/l10n_lu/account.report.report.csv b/addons/l10n_lu/account.report.report.csv new file mode 100644 index 00000000000..8bf965c741c --- /dev/null +++ b/addons/l10n_lu/account.report.report.csv @@ -0,0 +1,21 @@ +"expression","note","parent_id","sequence","badness_limit","goodness_limit","type","code","name" +0,,,,0,1,"indicator","BILAN","Bilan" +"report('BIMMO','BSTOCK','BREAL','BDISPO')",,"BILAN",,0,1,"fiscal","Actif","Actif" +"balance('2')",,"Actif",,0,1,"indicator","BIMMO","Valeurs immobilisées" +"balance('3')",,"Actif",2,0,1,"indicator","BSTOCK","Stocks" +"balance('4')",,"Actif",3,0,1,"indicator","BREAL","Réalisable" +"balance('5')",,"Actif",4,0,1,"fiscal","BDISPO","Disponible" +"report('BCAP') + report('BRESNET')",,"BILAN",1,0,1,"fiscal","PASSIF","Passif" +"balance('1')",,"PASSIF",1,0,1,"indicator","BCAP","Capitaux propores" +"-balance('7')+balance('6')",,"PASSIF",,0,1,"fiscal","BRESNET","Résultat net" +0,,,,0,1,"fiscal","CRES","Compte des résultats" +"report('CCHAR','CBENEF')",,"CRES",,0,1,"fiscal","CRESACTIF","Résultat Actif" +"balance('6')",,"CRESACTIF",,0,1,"fiscal","CCHAR","Total des charges" +"report('CRESPROD')",,"CRES",,0,1,"fiscal","CRESPASSIF","Résultat Passif" +"-balance('7')",,"CRESPASSIF",,0,1,"fiscal","CRESPROD","Total des produits" +"-balance('7')+balance('6')",,"CRESACTIF",,0,1,"fiscal","CBENEF","Résultat (Bénéfice)" +0,,,,0,1,"indicator","IIMMO","Immobilisations" +"balance('1')/balance(map(str(range(21,29))))","Dans une entreprise normalement équilibrée, les valeurs immobilisées sont couvertes en premier lieu par les capitaux propres et, en second lieu, par tout ou partie du passif à long terme. Idéalement, ce ratio (rapport entre capitaux permanents et les valeurs immobilisées) doit être suppérieur à l'unité.","IIMMO",,0,1,"indicator","CIMMO","Couverture des immobilisations" +0,,,,0,1,"indicator","ITRE","Trésorerie" +"balance('3','4','5') / balance('101','13','15','16','17','18')","Détermine si l'entreprise a la possibilité de s'acquitter de ses dettes à court terme dans des conditions normales. Calculé comme suit: (Stocks + Réalisable + Disponible ) / Passif exigible à court terme","ITRE",,0,1,"indicator","IFR","Indice du fond de roulement" +"balance('4','5') / balance('101','13','15','16','17','18')",,"ITRE",,0,1,"indicator","RTRE","Ratio de trésorerie" diff --git a/addons/l10n_lu/account.tax.code.template.csv b/addons/l10n_lu/account.tax.code.template.csv new file mode 100644 index 00000000000..eea68172e6c --- /dev/null +++ b/addons/l10n_lu/account.tax.code.template.csv @@ -0,0 +1,90 @@ +"parent_id:id","code","sign","id","name" +,,1,"account_tax_code_template_1","Plan de Taxes Luxembourgeois" +"account_tax_code_template_1",76,1,"account_tax_code_template_73","Solde à verser" +"account_tax_code_template_1",10,-1,"account_tax_code_template_8","Prestations de services (art 26)" +"account_tax_code_template_1",46,1,"account_tax_code_template_37","Total Base intracommunautaire" +"account_tax_code_template_1",52,1,"account_tax_code_template_50","Acquisition triangulaire" +"account_tax_code_template_1",61,1,"account_tax_code_template_63","Total Base Importation" +"account_tax_code_template_1",74,1,"account_tax_code_template_71","Excédent de taxe" +"account_tax_code_template_1",9,1,"account_tax_code_template_2","Total du chiffre d'affaires" +"account_tax_code_template_2",5,1,"account_tax_code_template_5","Prélèvements privés de services (art 16)" +"account_tax_code_template_2",4,1,"account_tax_code_template_4","Prélèvements privés de biens (art 13 a)" +"account_tax_code_template_2",8,1,"account_tax_code_template_7","Point 5" +"account_tax_code_template_2",3,1,"account_tax_code_template_3","1. Ventes ou recettes" +"account_tax_code_template_2",6,1,"account_tax_code_template_6","Affectation de biens (art 13 b)" +"account_tax_code_template_3","Exo",1,"account_tax_code_template_90","Total Exoneration" +"account_tax_code_template_3",22,1,"account_tax_code_template_17","Chiffre d'affaires imposable (sans TVA)" +"account_tax_code_template_8",422,1,"account_tax_code_template_87","Base des prestations de services (art.26/1/c et d)" +"account_tax_code_template_8",92,1,"account_tax_code_template_78","Livraisons de biens (art. 26) 6%" +"account_tax_code_template_17",33,1,"account_tax_code_template_28","Base CA 6%" +"account_tax_code_template_17",32,1,"account_tax_code_template_27","Base CA 15%" +"account_tax_code_template_17",82,1,"account_tax_code_template_31","Base CA au taux indéfini" +"account_tax_code_template_17",35,1,"account_tax_code_template_30","Base CA 12%" +"account_tax_code_template_17",34,1,"account_tax_code_template_29","Base CA 3%" +"account_tax_code_template_37",44,1,"account_tax_code_template_40","Base intracom. 3%" +"account_tax_code_template_37",85,1,"account_tax_code_template_42","Base intracom. exonérée" +"account_tax_code_template_37",43,1,"account_tax_code_template_39","Base intracom. 6%" +"account_tax_code_template_37",42,1,"account_tax_code_template_38","Base intracom. 15%" +"account_tax_code_template_37",45,1,"account_tax_code_template_41","Base intracom. 12%" +"account_tax_code_template_73",97,1,"account_tax_code_template_82","Taxe livraisons de biens (art. 26) 6%" +"account_tax_code_template_90",19,1,"account_tax_code_template_16","Point 7" +"account_tax_code_template_90",17,1,"account_tax_code_template_15","Autres opérations réalisées à l'étranger" +"account_tax_code_template_90",13,1,"account_tax_code_template_11","Autres exonérations (art 43)" +"account_tax_code_template_90",14,1,"account_tax_code_template_12","Autres exonérations (art 44)" +"account_tax_code_template_90",11,1,"account_tax_code_template_9","Livraisons intracommunautaires de biens" +"account_tax_code_template_90",12,1,"account_tax_code_template_10","Exportations (art 43)" +"account_tax_code_template_90",15,1,"account_tax_code_template_13","Tabacs fabriqués" +"account_tax_code_template_90",16,1,"account_tax_code_template_14","Livraisons / aquisitions intracom." +"account_tax_code_template_71",73,-1,"account_tax_code_template_70","Taxe en amont déductible" +"account_tax_code_template_71",98,1,"account_tax_code_template_83","Total de la taxe à payer" +"account_tax_code_template_83",72,1,"account_tax_code_template_69","Total de la taxe" +"account_tax_code_template_70",31,1,"account_tax_code_template_26","Taxe en amont déductible" +"account_tax_code_template_26",27,1,"account_tax_code_template_22","Taxe déclarée comme débiteur" +"account_tax_code_template_26",28,1,"account_tax_code_template_23","Taxe acquittée comme caution solidaire" +"account_tax_code_template_26",29,-1,"account_tax_code_template_24","Taxe non déductible / op. exonérée" +"account_tax_code_template_26",30,-1,"account_tax_code_template_25","Taxe non déductible (art 50)" +"account_tax_code_template_26",23,1,"account_tax_code_template_18","Achat de B. et S. à l'intérieur du pays" +"account_tax_code_template_26",24,1,"account_tax_code_template_19","Acquisitions intracom. de biens" +"account_tax_code_template_26",26,1,"account_tax_code_template_21","Affectations de biens" +"account_tax_code_template_26",25,1,"account_tax_code_template_20","Importations de biens" +"account_tax_code_template_69",70,1,"account_tax_code_template_59","Total Taxe Importation (entr.)" +"account_tax_code_template_69",219,1,"account_tax_code_template_88","Taxe des prestations de services (art.26/1/c et d)" +"account_tax_code_template_69",87,1,"account_tax_code_template_44","Report" +"account_tax_code_template_44",86,1,"account_tax_code_template_43","A reporter" +"account_tax_code_template_43",51,1,"account_tax_code_template_49","Total Taxe intracom." +"account_tax_code_template_49",47,1,"account_tax_code_template_45","Taxe intracom. 15%" +"account_tax_code_template_49",81,1,"account_tax_code_template_53","Base à un taux exonéré" +"account_tax_code_template_49",59,1,"account_tax_code_template_62","Base Importation (privées) 3%" +"account_tax_code_template_49",50,1,"account_tax_code_template_48","Taxe intracom. 12%" +"account_tax_code_template_49",48,1,"account_tax_code_template_46","taxe intracom. 6%" +"account_tax_code_template_49",49,1,"account_tax_code_template_47","Taxe intracom. 3%" +"account_tax_code_template_49",65,1,"account_tax_code_template_58","Taxe Importation (entr.) 12%" +"account_tax_code_template_69",71,1,"account_tax_code_template_68","Total Taxe Importation (privées)" +"account_tax_code_template_58",63,1,"account_tax_code_template_84","Taxe importation (entr.) 6%" +"account_tax_code_template_58",64,1,"account_tax_code_template_57","Taxe Importation (entr.) 3%" +"account_tax_code_template_58",62,1,"account_tax_code_template_56","Taxe Importation (entr.) 15%" +"account_tax_code_template_63",58,1,"account_tax_code_template_61","Base Importation (privées) 6%" +"account_tax_code_template_63",54,1,"account_tax_code_template_52","Base Importation (entr.) 6%" +"account_tax_code_template_63",57,1,"account_tax_code_template_60","Base Importation (privées) 15%" +"account_tax_code_template_63",56,1,"account_tax_code_template_55","Base Importation (entr.) 12%" +"account_tax_code_template_63",55,1,"account_tax_code_template_54","Base Importation (entr.) 3%" +"account_tax_code_template_63",53,1,"account_tax_code_template_51","Base importation (entr.) 15%" +"account_tax_code_template_63",60,1,"account_tax_code_template_85","Base importation (privées.) 12%" +"account_tax_code_template_68",68,1,"account_tax_code_template_66","Taxe Importation (privées) 3%" +"account_tax_code_template_68",69,1,"account_tax_code_template_67","Taxe Importation (privées) 12%" +"account_tax_code_template_68",67,1,"account_tax_code_template_65","Taxe Importation (privées) 6%" +"account_tax_code_template_68",66,1,"account_tax_code_template_64","Taxe Importation (privées) 15%" +"account_tax_code_template_87",89,1,"account_tax_code_template_75","Prestations de services (art. 26) 6%" +"account_tax_code_template_87",88,1,"account_tax_code_template_74","Prestations de services (art. 26) 15%" +"account_tax_code_template_87",91,1,"account_tax_code_template_77","Prestations de services (art. 26) 12%" +"account_tax_code_template_87",90,1,"account_tax_code_template_76","Prestations de services (art. 26) 3%" +"account_tax_code_template_88",94,1,"account_tax_code_template_79","Taxe prestations de services (art. 26) 6%" +"account_tax_code_template_88",93,1,"account_tax_code_template_86","Taxe prestation de services (Art.26) 15%" +"account_tax_code_template_88",96,1,"account_tax_code_template_81","Taxe prestations de services (art. 26) 12%" +"account_tax_code_template_88",95,1,"account_tax_code_template_80","Taxe prestations de services (art. 26) 3%" +"account_tax_code_template_43",41,1,"account_tax_code_template_89",41 +"account_tax_code_template_89",40,1,"account_tax_code_template_35","Taxes CA 12%" +"account_tax_code_template_89",83,1,"account_tax_code_template_36","Taxe au taux indéfini" +"account_tax_code_template_89",39,1,"account_tax_code_template_34","Taxe CA 3%" +"account_tax_code_template_89",37,1,"account_tax_code_template_32","Taxe CA 15%" +"account_tax_code_template_89",38,1,"account_tax_code_template_33","Taxe CA 6%" diff --git a/addons/l10n_lu/account.tax.template.csv b/addons/l10n_lu/account.tax.template.csv new file mode 100644 index 00000000000..93b4aaa28ea --- /dev/null +++ b/addons/l10n_lu/account.tax.template.csv @@ -0,0 +1,35 @@ +"ref_base_code_id:id","ref_base_sign","name","ref_tax_code_id:id","account_collected_id:id","amount","chart_template_id:id","tax_code_id:id","child_depend","include_base_amount","parent_id:id","tax_sign","account_paid_id:id","base_code_id:id","id","ref_tax_sign" +"account_tax_code_template_9",-1,"Intra Travail à façon 0%",,,"0.0000","l10nlu_chart_template",,0,0,,1,,"account_tax_code_template_9","account_tax_template_1",1 +"account_tax_code_template_9",-1,"Intra Livraison avec installation 0%",,,"0.0000","l10nlu_chart_template",,0,0,,1,,"account_tax_code_template_9","account_tax_template_2",1 +"account_tax_code_template_9",-1,"Intra transfert de biens 0%",,,"0.0000","l10nlu_chart_template",,0,0,,1,,"account_tax_code_template_9","account_tax_template_3",1 +"account_tax_code_template_13",-1,"Vente de tabacs 0%",,,"0.0000","l10nlu_chart_template",,0,0,,1,,"account_tax_code_template_13","account_tax_template_9",1 +"account_tax_code_template_10",-1,"Exportations 0%",,,"0.0000","l10nlu_chart_template",,0,0,,1,,"account_tax_code_template_10","account_tax_template_10",1 +,1,"Achats frais généraux 0%",,,"0.0000","l10nlu_chart_template",,0,0,,1,,,"account_tax_template_11",1 +"account_tax_code_template_29",-1,"Ventes 3%","account_tax_code_template_34","account_451000","0.0300","l10nlu_chart_template","account_tax_code_template_34",0,0,,1,"account_451000","account_tax_code_template_29","account_tax_template_5",-1 +"account_tax_code_template_28",-1,"Ventes 6%","account_tax_code_template_33","account_451000","0.0600","l10nlu_chart_template","account_tax_code_template_33",0,0,,1,"account_451000","account_tax_code_template_28","account_tax_template_6",-1 +"account_tax_code_template_30",-1,"Ventes 12%","account_tax_code_template_35","account_451000","0.1200","l10nlu_chart_template","account_tax_code_template_35",0,0,,1,"account_451000","account_tax_code_template_30","account_tax_template_7",-1 +"account_tax_code_template_27",-1,"Ventes 15%","account_tax_code_template_32","account_451000","0.1500","l10nlu_chart_template","account_tax_code_template_32",0,0,,1,"account_451000","account_tax_code_template_27","account_tax_template_8",-1 +,1,"Achats frais généraux 15%","account_tax_code_template_18","account_411000","0.1500","l10nlu_chart_template","account_tax_code_template_18",0,0,,1,"account_411000",,"account_tax_template_12",-1 +,1,"Achats Intra-Co",,,1,"l10nlu_chart_template",,1,0,,1,,"account_tax_code_template_38","account_tax_template_13",1 +,1,"Achats de Services Art.26",,,1,"l10nlu_chart_template",,1,0,,1,,"account_tax_code_template_38","account_tax_template_18",1 +,1,"Ventes de Services Art.26",,,1,"l10nlu_chart_template",,1,0,,1,,"account_tax_code_template_38","account_tax_template_21",1 +,1,"Livraison de Biens Triangulaire 1",,"account_411500","0.1500","l10nlu_chart_template","account_tax_code_template_45",0,0,,1,"account_411000","account_tax_code_template_38","account_tax_template_26",1 +,1,"Livraisons de biens triangulaire 2",,"account_411000","-0.1500","l10nlu_chart_template","account_tax_code_template_22",0,0,,-1,"account_451000",,"account_tax_template_25",1 +,1,"Importations a des fins de l'entreprise",,,1,"l10nlu_chart_template",,1,0,,1,,"account_tax_code_template_38","account_tax_template_30",1 +,1,"Importations a des fins privées",,,1,"l10nlu_chart_template",,1,0,,1,,"account_tax_code_template_38","account_tax_template_33",1 +,1,"Livraisons de Biens Art.26",,,1,"l10nlu_chart_template",,1,0,,1,,"account_tax_code_template_38","account_tax_template_36",1 +,1,"Livraison de Biens triangulaire",,,1,"l10nlu_chart_template",,1,0,,1,,"account_tax_code_template_38","account_tax_template_24",1 +,1,"Livraisons de biens triangulaire 2",,"account_411000","-0.1500","l10nlu_chart_template","account_tax_code_template_22",0,0,"account_tax_template_24",-1,"account_451000",,"account_tax_template_22",1 +,1,"Livraison de Biens Triangulaire 1",,"account_411500","0.1500","l10nlu_chart_template","account_tax_code_template_45",0,0,"account_tax_template_24",1,"account_411000","account_tax_code_template_38","account_tax_template_23",1 +,1,"Importations Intra-Co2",,"account_451000","-0.1500","l10nlu_chart_template","account_tax_code_template_56",0,0,"account_tax_template_30",-1,"account_411000","account_tax_code_template_51","account_tax_template_28",1 +,1,"Importations Intra-Co 1",,"account_411500","0.1500","l10nlu_chart_template","account_tax_code_template_20",0,0,"account_tax_template_30",1,"account_411000",,"account_tax_template_29",1 +,1,"Importations Fins Privées",,"account_451000","-0.1500","l10nlu_chart_template","account_tax_code_template_64",0,0,"account_tax_template_33",-1,"account_411000","account_tax_code_template_60","account_tax_template_31",1 +,1,"Importations Fins Privées",,"account_411500","0.1500","l10nlu_chart_template","account_tax_code_template_20",0,0,"account_tax_template_33",1,"account_411000",,"account_tax_template_32",1 +,1,"Livraison de Biens Art26",,"account_411000","-0.1500","l10nlu_chart_template","account_tax_code_template_22",0,0,"account_tax_template_36",-1,"account_451000",,"account_tax_template_34",1 +,1,"Livraisons de Biens Art26",,"account_411500","0.1500","l10nlu_chart_template","account_tax_code_template_82",0,0,"account_tax_template_36",1,"account_411000","account_tax_code_template_78","account_tax_template_35",1 +,1,"Achats Intra-Co 1",,"account_411500","0.1500","l10nlu_chart_template","account_tax_code_template_19",0,0,"account_tax_template_13",1,"account_411000","account_tax_code_template_38","account_tax_template_14",1 +,1,"Achats Intra-CO2",,"account_451000","-0.1500","l10nlu_chart_template","account_tax_code_template_45",0,0,"account_tax_template_13",-1,"account_411000",,"account_tax_template_15",1 +,1,"Services Intra-Co2",,"account_451000","-0.1500","l10nlu_chart_template","account_tax_code_template_45",0,0,"account_tax_template_18",-1,"account_411000",,"account_tax_template_17",1 +,1,"Services Intra-Co 1",,"account_411500","0.1500","l10nlu_chart_template","account_tax_code_template_22",0,0,"account_tax_template_18",1,"account_411000","account_tax_code_template_38","account_tax_template_16",1 +,1,"Services Intra-Co2",,"account_411000","-0.1500","l10nlu_chart_template","account_tax_code_template_22",0,0,"account_tax_template_21",-1,"account_451000",,"account_tax_template_19",1 +,1,"Services Intra-Co 1",,"account_411500","0.1500","l10nlu_chart_template","account_tax_code_template_86",0,0,"account_tax_template_21",1,"account_411000","account_tax_code_template_74","account_tax_template_20",1 diff --git a/addons/l10n_lu/l10n_lu_data.xml b/addons/l10n_lu/l10n_lu_data.xml new file mode 100644 index 00000000000..ce071ad4cc5 --- /dev/null +++ b/addons/l10n_lu/l10n_lu_data.xml @@ -0,0 +1,3784 @@ + + + + + + View + view + none + + + Asset + asset + balance + + + Liability + liability + balance + + + Créances + creances + balance + + + Equity + equity + balance + + + Income + income + unreconciled + + + Expense + expense + unreconciled + + + Cash + cash + balance + + + + + + 0 + Plan KLUWER + view + + + + + 1 + Fonds propres, prov. & dettes + d'1an + + + + view + + + 2 + Immobilis., dettes & créances à + d'1 an + + + + view + + + 3 + Stocks et commandes en cours d'exécution + + + + view + + + 4 + Créances et dettes à un an au plus + + + + view + + + 5 + Placements de trésorerie et disponible + + + + view + + + 6 + Charges + + + + view + + + 7 + Produits + + + + view + + + 10 + Capital + + + + view + + + 12 + Plus-values de réévaluation + + + + view + + + 13 + Réserves + + + + view + + + 14 + Résultat reporté + + + + view + + + 15 + Subsides en capital + + + + view + + + 16 + Provisions et impôts différés + + + + view + + + 17 + Dettes à plus d'un an + + + + view + + + 20 + Frais d'établissement + + + + view + + + 21 + Immobilisations incorporelles + + + + view + + + 22 + Terrains et constructions + + + + view + + + 23 + Installations, machines et outillages + + + + view + + + 24 + Mobilier et matériel roulant + + + + view + + + 25 + Immobilisation détenues en loc.-fin. + + + + view + + + 27 + Immobilis. corp. en cours & acptes versé + + + + view + + + 28 + Immobilisations financières + + + + view + + + 30 + Approvisionnements - matières premières + + + + view + + + 31 + Approvisionnements et fournitures + + + + view + + + 32 + En cours de fabrication + + + + view + + + 33 + Produits finis + + + + view + + + 34 + Marchandises + + + + view + + + 36 + Acomptes versés sur achats pour stocks + + + + view + + + 40 + Créances commerciales + + + + view + + + 41 + Autres créances à - d'un an + + + + view + + + 42 + Dettes à + d'1 an échéant dans l'année + + + + view + + + 43 + Dettes financières + + + + view + + + 44 + Dettes commerciales + + + + view + + + 45 + Dettes fiscales, salariales et sociales + + + + view + + + 47 + Dettes suite à l'affect. des résultats + + + + view + + + 48 + Dettes diverses + + + + view + + + 49 + Comptes de régularisation et cptes d'att + + + + view + + + 51 + Actions et parts + + + + view + + + 52 + Titres à revenu fixe + + + + view + + + 53 + Dépôts à terme + + + + view + + + 55 + Etablissements de crédit + + + + view + + + 56 + Ccp + + + + view + + + 57 + Caisses + + + + view + + + 60 + Approvisionnements et marchandises + + + + view + + + 61 + Services et biens divers + + + + view + + + 62 + Rémunérations, charges soc. et pensions + + + + view + + + 64 + Autres charges d'exploitation + + + + view + + + 65 + Charges financières + + + + view + + + 66 + Charges exceptionnelles + + + + view + + + 67 + Impôts sur le résultat + + + + view + + + 70 + Chiffre d'affaires + + + + view + + + 71 + Variation des stocks & comm. en cours + + + + view + + + 74 + Autres produits d'exploitation + + + + view + + + 75 + Produits financiers + + + + view + + + 77 + Régul. d'impôts & reprises prov. fisc. + + + + view + + + 140 + Bénéfice reporté + + + + view + + + 175 + Dettes commerciales + + + + view + + + 200 + Frais de constitution et d'augm. capital + + + + view + + + 201 + Frais d'augmentation de capital + + + + view + + + 202 + Fr.d'emission d'empr,prime remboursement + + + + view + + + 203 + Autres frais d'établissement + + + + view + + + 204 + Frais de restructuration + + + + view + + + 210 + Frais de recherche et de développement + + + + view + + + 211 + Concessions, brevets et licences + + + + view + + + 212 + Fonds de commerce + + + + view + + + 220 + Terrains + + + + view + + + 221 + Constructions + + + + view + + + 222 + Terrains bâtis + + + + view + + + 223 + Autres droits réels sur des immeubles + + + + view + + + 230 + Installations + + + + view + + + 231 + Machines + + + + view + + + 240 + Installation gen, agencements,.. + + + + view + + + 241 + Mobilier + + + + view + + + 242 + Matériel roulant + + + + view + + + 280 + Participation dans des entreprises liées + + + + view + + + 281 + Créances sur des entreprises liées + + + + view + + + 282 + Participations entr. avec lien particip. + + + + view + + + 283 + Créances / entrepr. avec lien particip. + + + + view + + + 290 + Créances commerciales + + + + view + + + 291 + Autres créances + + + + view + + + 411 + T.v.a en amont + + + + view + + + 425 + Dettes commerciales échéant ds l'année + + + + view + + + 451 + T.v.a. en aval + + + + view + + + 452 + Impôts et taxes à payer + + + + view + + + 512 + Actions & parts - options acquises + + + + view + + + 550 + Comptes courants bancaires + + + + view + + + 609 + Variation des stocks + + + + view + + + 610 + Loyers et charges locatives + + + + view + + + 612 + Fournitures faites à l'entreprise + + + + view + + + 613 + Rétributions de tiers + + + + view + + + 615 + publicités + + + + view + + + 620 + Rémunérations et avantages soc. directs + + + + view + + + 621 + Charges sociales + + + + view + + + 624 + Pensions + + + + + + 630 + Dotations aux corrections de val./immob. + + + + view + + + 631 + Dotations aux correct. de val./stocks + + + + view + + + 632 + Dot. cor. val s/en-cours,pr fini + + + + view + + + 633 + Dotations correct. val./cr. comm. +1an + + + + view + + + 634 + Dotations correct. val./cr. comm. -1an + + + + view + + + 635 + Provisions pour pensions et oblig. sim. + + + + view + + + 636 + Provisions pour grosses réparations + + + + view + + + 637 + Provisions pour autres risques & charges + + + + view + + + 640 + Taxes et impôts directs + + + + view + + + 651 + Réductions de valeur / actifs circulants + + + + view + + + 660 + Dotations aux corrections de val. except + + + + view + + + 661 + Dotations aux corrections de val./financ + + + + view + + + 662 + Provisions pour risques & charges except + + + + view + + + 750 + Produits des immob. financières + + + + view + + + 751 + Produits des actifs circulants + + + + view + + + 1750 + Fournisseurs - dettes en compte + + + + view + + + 1751 + Effets à payer + + + + view + + + 6120 + Eau, gaz, électricité, carburants + + + + view + + + 6123 + Téléphone, télégrammes, frais post. + + + + view + + + 100000 + Capital souscrit + + + + other + + + 101000 + Capital non appelé (-) + + + + other + + + 109000 + Compte de l'exploitant + + + + other + + + 110000 + Primes d'émission + + + + other + + + 120000 + Plus-values de rééval. sur immob. incorp + + + + other + + + 121000 + Plus-values de rééval. sur immob. corp. + + + + other + + + 122000 + Plus-values de rééval. sur immob. fin. + + + + other + + + 123000 + Plus-values de réévaluation sur stocks + + + + other + + + 124000 + Reprises de réd. de val./plac. de très. + + + + other + + + 130000 + Réserve légale + + + + other + + + 131000 + Réserves indisponibles + + + + other + + + 132000 + Réserves immunisées + + + + other + + + 133000 + Réserves disponibles + + + + other + + + 134000 + Autres reserves + + + + other + + + 140000 + Résultats reportés + + + + other + + + 140100 + Bénéfice de l'exercice + + + + other + + + 140200 + Perte de l'exercice + + + + other + + + 141000 + Perte reportée + + + + other + + + 150000 + Subsides en cap. - montants obtenus + + + + other + + + 151000 + Subsides-montants transf. aux résultats + + + + other + + + 160000 + Provisions pour pensions + + + + other + + + 161000 + Provisions pour charges fiscales + + + + other + + + 162000 + Provisions pr grosses rép. & gros entr. + + + + other + + + 163000 + Provisions pour rente viagère + + + + other + + + 164000 + Provisions pr sûretés pers. et réelles + + + + other + + + 165000 + Provisions diverses + + + + other + + + 165400 + Provisions pour autres risques & charges + + + + other + + + 166000 + Provisions pour charges de commandes + + + + other + + + 168000 + Impôts différés + + + + other + + + 169000 + Autres provisions + + + + other + + + 170000 + Emprunts convertibles + + + + other + + + 171000 + Emprunts obligataires non convertibles + + + + other + + + 172000 + Dettes de loc. - financ. et assimilées + + + + other + + + 173000 + Etablissements de crédit + + + + other + + + 174000 + Autres emprunts + + + + other + + + 175000 + Fournisseurs - entreprises apparentées + + + + other + + + 175010 + Dettes en cpte - fourniss. ordinaires + + + + other + + + 175100 + Effets à payer - entreprises apparentées + + + + other + + + 175110 + Effets à payer - fournisseurs ordinaires + + + + other + + + 176000 + Acomptes reçus sur commandes + + + + other + + + 177100 + Entreprises liées + + + + other + + + 177200 + Lien de participation + + + + other + + + 178000 + Cautionnements reçus en numéraire + + + + other + + + 179000 + Dettes diverses + + + + other + + + 180000 + Comptes de liaison établiss. & succurs. + + + + other + + + 200000 + Frais de constitution + + + + other + + + 200900 + Amort s/fr de constitution + + + + other + + + 201000 + Frais d'augmentation de capital + + + + other + + + 201900 + Amort s/fr d'augmentation du capital + + + + other + + + 202000 + Fr.d'emission d'empr,prime remboursement + + + + other + + + 202900 + Amort s/fr d'émission d'emprunts + + + + other + + + 203000 + Autres frais d'établissement + + + + other + + + 203900 + Amort s/autres fr d'établissement + + + + other + + + 204000 + Frais de restructuration + + + + other + + + 204900 + Amort s/fr de restructuration + + + + other + + + 210000 + Frais de recherche et développement + + + + other + + + 210900 + Amort. s/fr de recherche et développemen + + + + other + + + 211100 + Concessions, brevet à titre onéreux + + + + other + + + 211190 + Amort. s/concession, brevet acquis + + + + other + + + 211200 + Conc., brevets créés par l'entr. même + + + + other + + + 211290 + Amort. s/concession, brevets créés + + + + other + + + 212000 + Fonds de commerce + + + + other + + + 212900 + Amort s/fonds de commerce + + + + other + + + 213000 + Acomptes versés s/immob. incorp + + + + other + + + 214000 + Surprix afférent à l'acquisit. d'1 part. + + + + other + + + 220000 + Terrains + + + + other + + + 220800 + Plus-values actées sur terrains + + + + other + + + 220900 + Réduction de valeur sur terrains + + + + other + + + 221800 + Plus-values actées sur constructions + + + + other + + + 221900 + Amort. sur constructions + + + + other + + + 222800 + Plus-values actées s/terrains bâtis + + + + other + + + 222900 + Amort. sur terrains bâtis + + + + other + + + 223800 + +values actées s/autres droits + + + + other + + + 223900 + Amort s/autres droits réels + + + + other + + + 230000 + Installations techniques + + + + other + + + 230900 + Amort s/installations techniques + + + + other + + + 231000 + Machines + + + + other + + + 231900 + Amortissement s/machines + + + + other + + + 232000 + Outillage + + + + other + + + 233000 + Pièces de rechange + + + + other + + + 238000 + Plus-values actées sur i./m./o. + + + + other + + + 239000 + Amortissements sur i./m./o. + + + + other + + + 240000 + Installation gen, agencements,.. + + + + other + + + 240900 + Amort s/autres installations,outillage + + + + other + + + 241000 + Mobilier + + + + other + + + 241900 + Amort. sur mobilier + + + + other + + + 242000 + Matériel roulant + + + + other + + + 242900 + Amort. s/matériel roulant + + + + other + + + 243000 + Matériel de bureau + + + + other + + + 243900 + Amort. s/matériel de bureau + + + + other + + + 250000 + Terrains et constructions en loc.-fin. + + + + other + + + 251000 + Install., machines & out. en loc.-fin. + + + + other + + + 252000 + Mobilier et mat. roulant en loc.-fin. + + + + other + + + 260000 + Autres immobilisations corporelles + + + + other + + + 270000 + Immobilisations en cours + + + + other + + + 271000 + Avances & acptes versés / immob.en cours + + + + other + + + 280000 + Parts dans des entreprises liées + + + + other + + + 280100 + Montants non appelés + + + + other + + + 280800 + +values actées s/parts entreprises liées + + + + other + + + 280900 + Réduction de valeur s/parts + + + + other + + + 281000 + Créances s/des entreprises liées + + + + other + + + 281100 + Effets à recevoir + + + + other + + + 281700 + Créances douteuses (entreprises liées) + + + + other + + + 281900 + Réduction de valeur s/cré. entre. liées + + + + other + + + 282000 + Participations + + + + other + + + 282100 + Montants non appelés + + + + other + + + 282800 + +values actées s/participations + + + + other + + + 282900 + Réduction de valeur s/participations + + + + other + + + 283000 + Créances s/entrepr. lien de particip. + + + + other + + + 283100 + Effets à recevoir + + + + other + + + 283200 + Titres à revenu fixe + + + + other + + + 283700 + Créances douteuses (s/participations) + + + + other + + + 283900 + Réductions de valeur s/cr particip. + + + + other + + + 284000 + Titres à caractère d'immobilisation + + + + other + + + 285000 + Autres prêts + + + + other + + + 286000 + Actions ou parts propres + + + + other + + + 288000 + Cautionnements versés en numéraire + + + + other + + + 290000 + Créances commerciales + + + + other + + + 290100 + Effets à recevoir + + + + other + + + 290600 + Acomptes versés + + + + other + + + 290700 + Créances douteuses s/cr commerciales + + + + other + + + 290900 + Réduction de valeur s/cr commerciales + + + + other + + + 291000 + Autres créances + + + + other + + + 291100 + Effets à recevoir + + + + other + + + 291700 + Créances douteuses s/autres créances + + + + other + + + 291900 + Réduction de valeur s/autres créances + + + + other + + + 300000 + Stocks matières premières val. d'acquis. + + + + other + + + 309000 + Réduction de valeur s/mat. premières + + + + other + + + 310000 + Matières consommables + + + + other + + + 310600 + Emballages commerciaux + + + + other + + + 319000 + Réd. de val. - stocks fournitures (-) + + + + other + + + 320000 + En cours de fabrication - val. d'acquis. + + + + other + + + 329000 + Réductions de valeur / en cours (-) + + + + other + + + 330000 + Valeur d'acquisition des produits finis + + + + other + + + 339000 + Réduction de val. / produits finis (-) + + + + other + + + 340000 + Stocks marchandises - valeur d'acquis. + + + + other + + + 349000 + Réd. de val. / stocks marchandises (-) + + + + other + + + 360000 + Acomptes versés / achats pour stocks + + + + other + + + 369000 + Réd. de val. / acptes versés stocks (-) + + + + other + + + 400000 + Clients + + + + other + + + 401000 + Effets à recevoir - clients + + True + + + receivable + + + + 403000 + Créances s/entreprises apparentées + + + + receivable + + + 404000 + Produits à recevoir (factures à établir) + + + + other + + + 406000 + Acomptes versés aux fournisseurs + + + + payable + + + 407000 + Créances commerciales douteuses + + + + other + + + 408000 + Ecarts de conversion de devises/créances + + + + other + + + 409000 + Réductions de valeur / créances comm. + + + + other + + + 410000 + Capital appelé, non versé + + + + other + + + 411000 + T.v.a en amont + + True + + other + + + 411100 + T.v.a soumise à l'origine amont + + + + other + + + 411500 + Compte courant tva + + + + other + + + 412000 + Impots et vers. fiscaux à récupérer + + + + other + + + 413100 + Autres créances sur entrepr. liées + + + + other + + + 413200 + Autres créances / entrepr. apparentées + + + + other + + + 414000 + Produits à recevoir (non commerciaux) + + + + other + + + 416000 + Créances diverses + + + + other + + + 417000 + Créances douteuses + + + + other + + + 418000 + Cautionnements versés en numéraire + + + + other + + + 419000 + Réductions de val. / autres créances (-) + + + + other + + + 420000 + Emprunts obligataires convert. + + + + other + + + 421000 + Emprunts oblig. non convertibles + + + + other + + + 422000 + Dettes de location-financ. et assimilées + + + + other + + + 423000 + Etablissements de crédit + + + + other + + + 424000 + Autres emprunts + + + + other + + + 425000 + Fournisseurs + + + + other + + + 425100 + Effets à payer + + + + other + + + 426000 + Acomptes reçus / commandes éch. ds l'an + + + + other + + + 427100 + Entreprises liées + + + + other + + + 427200 + Lien de participation + + + + other + + + 428000 + Cautionnements reçus en numéraire + + + + other + + + 429000 + Dettes diverses échéant dans l'année + + + + other + + + 430000 + Banques-emprunts en compte à terme fixe + + + + other + + + 431000 + Banques-promesses + + + + other + + + 432000 + Banques-crédit d'acceptation + + + + other + + + 433000 + Banques-dettes en compte courant + + + + other + + + 438000 + Autres emprunts + + + + other + + + 440000 + Fournisseurs + + + + other + + + 441000 + Effets à payer + + True + + + other + + + 442000 + Factures à recevoir + + True + + + other + + + 443100 + Entreprises liées + + + + other + + + 443200 + Lien de participation + + + + other + + + 450000 + Dettes fiscales estimées + + + + other + + + 451000 + T.v.a en aval + + True + + + other + + + 451100 + T.v.a soumise à l'origine aval + + True + + + other + + + 451200 + T.v.a intracom + + True + + + other + + + 451500 + Compte courant tva + + + + other + + + 452000 + Impôts et taxes à payer à l'état + + + + other + + + 452100 + Impôts et taxes à payer aux adm commun + + + + other + + + 453000 + Retenues s/salaires + + + + other + + + 454000 + Cass (centre..de sécurite soc) + + + + other + + + 455000 + Personnel-rémuneration à payer + + + + other + + + 456000 + Personnel-avances et acomptes + + + + other + + + 458000 + Autres dettes sociales + + + + other + + + 460000 + Acomptes reçus sur commandes + + + + other + + + 470000 + Dividendes-tantièmes d'ex. ant. à payer + + + + other + + + 471000 + Dividendes de l'exercice à payer + + + + other + + + 472000 + Tantièmes de l'exercice à payer + + + + other + + + 473000 + Autres allocataires à payer + + + + other + + + 480000 + Obligations et coupons échus (dettes) + + + + other + + + 487000 + Cautionnements reçus en numeraire + + + + other + + + 488000 + Autres dettes diverses + + + + other + + + 490000 + Charges à reporter (payées d'avance) + + + + other + + + 491000 + Produits acquis + + + + other + + + 492000 + Charges à imputer + + + + other + + + 493000 + Produits à reporter + + + + other + + + 499000 + Comptes d'attente + + + + other + + + 499800 + Solde équilibre en devises (hors pc) + + + + other + + + 500000 + Actions propres + + + + other + + + 510000 + Actions et parts + + + + other + + + 510100 + Montant non appelé s/action.part + + + + other + + + 510900 + Réduction valeur s/action et parts + + + + other + + + 512000 + Parts dans entreprises liées + + + + other + + + 512100 + Montant non appelé s/parts + + + + other + + + 512900 + Réduction valeur s/part ent. liées + + + + other + + + 520000 + Titres à rev. fixes - valeur d'acquis. + + + + other + + + 529000 + Titres à rev. fixes - réd. de val. + + + + other + + + 530000 + Dépôts à terme + + + + other + + + 539000 + Réductions de valeur / dépôts à terme + + + + other + + + 540000 + Valeurs échues à l'encaissement + + + + other + + + 541000 + Coupons à encaisser + + + + other + + + 550000 + Ets de crédit-compte à vue + + + + other + + + 550100 + Chèques et virements émis + + + + other + + + 550900 + Réduction valeur s/cpte a vue + + + + other + + + 560000 + Ccp - compte courant + + + + other + + + 561000 + Ccp - chèques émis + + + + other + + + 570000 + Caisses + + + + other + + + 570900 + Réduction valeur s/caisse + + + + other + + + 580000 + Virements internes + + True + + + other + + + 600000 + Achats de matières premières + + + + other + + + 601000 + Achats de fournitures + + + + other + + + 602000 + Achats de services, travaux et études + + + + other + + + 603000 + Achats de sous-traitances générales + + + + other + + + 604000 + Achats de marchandises + + + + other + + + 607000 + Achats produits et demi-produits + + + + other + + + 608000 + Remises, ristournes et rabais sur achats + + + + other + + + 609000 + Variation de stock mat. premières + + + + other + + + 609100 + Variation stock mat. consommables + + + + other + + + 609400 + Variation stock marchandises + + + + other + + + 610000 + Loyers et charges locatives + + + + other + + + 610100 + Redevances de crédit bail + + + + other + + + 611000 + Entretiens et réparations des locaux + + + + other + + + 612000 + Consommation - eau + + + + other + + + 612010 + Consommation - gaz + + + + other + + + 612020 + Consommation - électricité + + + + other + + + 612030 + Consommation - carburants + + + + other + + + 612040 + Consommation - mazout + + + + other + + + 612100 + Documentation + + + + other + + + 612200 + Imprimés et fournitures de bureau + + + + other + + + 612300 + Téléphone + + + + other + + + 612310 + Frais postaux + + + + other + + + 612320 + Fax + + + + other + + + 613000 + Redevances et royalties + + + + other + + + 613100 + Honoraires + + + + other + + + 613200 + Organismes de services + + + + other + + + 613300 + Commissions + + + + other + + + 614000 + Assurance incendie + + + + other + + + 615000 + Annonces, publicité + + + + other + + + 615100 + Cotisations et abonnements + + + + other + + + 615200 + Dons et libéralités + + + + other + + + 615300 + Publications légales + + + + other + + + 616000 + Sous-traitants + + + + other + + + 616100 + Transports par tiers + + + + other + + + 620000 + Rémunératons administrat. ou gérants + + + + other + + + 620100 + Rémunérations personnel de direction + + + + other + + + 620200 + Rémunérations employés + + + + other + + + 620300 + Rémunérations ouvriers + + + + other + + + 621000 + Chg.soc.lég.administ.et gérant + + + + other + + + 621100 + Chg.soc.lég. personnel de direction + + + + other + + + 621200 + Chg.soc.lég. employés + + + + other + + + 621300 + Chg.soc.lég. ouvriers + + + + other + + + 621400 + Assurance accidents + + + + other + + + 622000 + Primes patr. pour ass. extra - légales + + + + other + + + 623000 + Autres frais de personnel + + + + other + + + 624000 + Pension administrat. ou gérant + + + + other + + + 624100 + Pension personnel + + + + other + + + 630000 + Dot. cor. val s/frais d'établissement + + + + other + + + 630100 + Dot. cor. val s/immob. incorporels + + + + other + + + 630200 + Dot. cor. val s/immob. corporels + + + + other + + + 631000 + Dot. cor. val s/stock mat.fourni + + + + other + + + 631100 + Reprises cor. val. s/stock mat. fourni + + + + other + + + 632000 + Dot. cor. val s/en-cours,pr fini + + + + other + + + 632100 + Reprises cor. val s/en-cours,pf + + + + other + + + 633000 + Dot. cor. val s/cr comm +1an + + + + other + + + 633100 + Reprises cor. val s/cr com +1an + + + + other + + + 634000 + Dot. cor. val. s/cr comm -1an + + + + other + + + 634100 + Reprises cor. val.s/cr com -1an + + + + other + + + 635000 + Dot. prov. pension et oblig. sim. + + + + other + + + 635100 + Reprises prov. s/pens.obli. sim. + + + + other + + + 636000 + Dot. prov-grosses réparation + + + + other + + + 636100 + Reprises prov. grosses réparation + + + + other + + + 637000 + Dot. prov-autres risques et chg + + + + other + + + 637100 + Reprises prov autres risq,chg + + + + other + + + 640000 + Taxe d'abonnement + + + + other + + + 640100 + Impôt foncier + + + + other + + + 640200 + Impôt commercial s/le capital + + + + other + + + 640300 + Impôt s/la fortune + + + + other + + + 641000 + Moins-val. sur réalis. d'immob. corp. + + + + other + + + 642000 + Moins-val. / réalis. de créances comm. + + + + other + + + 643000 + Charges d'exploitation diverses + + + + other + + + 650000 + Intérêts, commissions et frais / dettes + + + + other + + + 651000 + Dot. cor. val s/actif circ + + + + other + + + 651100 + Reprises cor. val s/actif circulants + + + + other + + + 652000 + Moins-values sur réalis. d'actifs circ. + + + + other + + + 653000 + Charges d'escompte de créances + + + + other + + + 654000 + Différences de change + + + + other + + + 655000 + Ecarts de conversion des devises + + + + other + + + 656000 + Frais de banque + + + + other + + + 660000 + Dot. cor. val exceptionnelles + + + + other + + + 660100 + Reprises cor. val. excep + + + + other + + + 661000 + Dot. cor. val s/immob. financières + + + + other + + + 661100 + Reprises cor val s/immob. fin. + + + + other + + + 662000 + Dot. prov-risques et chg except. + + + + other + + + 662100 + Reprises prov risq,chg except. + + + + other + + + 663000 + Moins-values sur réalis. d'actifs immob. + + + + other + + + 665000 + Différences de change exceptionnelles + + + + other + + + 668000 + Autres charges exceptionnelles + + + + other + + + 670000 + Impôts luxemb sur le résultat de l'ex. + + + + other + + + 671000 + Impôts luxemb /résultat d'ex. antérieurs + + + + other + + + 672000 + Impôts étrangers sur le résultat de l'ex + + + + other + + + 673000 + Impôts étrgs/résultat d'ex. antérieurs + + + + other + + + 674000 + Impôts sur résultats exceptionnels + + + + other + + + 680000 + Transfert aux réserves immunisées + + + + other + + + 700000 + Ventes et prestations de services + + + + payable + + + 708000 + R.r.r accordés sur ventes + + + + payable + + + 712000 + Variation de stocks des encours de fabr. + + + + payable + + + 713000 + Variation de stocks des produits finis + + + + payable + + + 720000 + Travaux effect. par entreprise elle-même + + + + payable + + + 740000 + Subsides d'exploitation + + + + payable + + + 741000 + Plus-values sur réal. d'immob. corp. + + + + payable + + + 742000 + Plus-values sur réalis. créances comm. + + + + payable + + + 743000 + Récupération de frais de personnel + + + + payable + + + 744000 + Commissions et courtages + + + + payable + + + 745000 + Redevances pour brevets et licences + + + + payable + + + 746000 + Loyers perçus + + + + payable + + + 748000 + Produits d'exploitation divers. + + + + payable + + + 750000 + Produits des participations + + + + payable + + + 750100 + Autres produits des immob. financières + + + + payable + + + 751000 + Produits des valeurs mobilières + + + + payable + + + 751100 + Autres produits des actifs circulants + + + + payable + + + 752000 + Plus-values sur réalis. d'actifs circula + + + + payable + + + 753000 + Subsides en capital et en intérêts + + + + payable + + + 754000 + Différences de change + + + + payable + + + 754100 + Amendes pour retards de paiement + + + + payable + + + 754200 + Intérêts retards de paiement + + + + payable + + + 755000 + Ecarts de conversion de devises + + + + payable + + + 756000 + Autres produits financiers + + + + payable + + + 757000 + Escomptes obtenus + + + + payable + + + 763000 + Plus-values sur réalis. d'actifs immob. + + + + payable + + + 771000 + Régularis. d'impôts luxemb sur résultat + + + + payable + + + 773000 + Régularis. d'impôts étrangers / résultat + + + + payable + + + + + + PCMN for Luxembourg + + + + + + + + + + + + diff --git a/addons/l10n_lu/l10n_lu_report.xml b/addons/l10n_lu/l10n_lu_report.xml new file mode 100644 index 00000000000..192b603e1af --- /dev/null +++ b/addons/l10n_lu/l10n_lu_report.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/addons/l10n_lu/l10n_lu_wizard.xml b/addons/l10n_lu/l10n_lu_wizard.xml new file mode 100644 index 00000000000..dd16b17d429 --- /dev/null +++ b/addons/l10n_lu/l10n_lu_wizard.xml @@ -0,0 +1,32 @@ + + + + + + Generate Chart of Accounts from a Chart Template + Generate Chart of Accounts from a Chart Template. You will be asked to select the company, the chart template, 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 Managament/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template. + + open + + + + + + + + + + + diff --git a/addons/l10n_lu/wizard/2008_DECL_F_M10.pdf b/addons/l10n_lu/wizard/2008_DECL_F_M10.pdf new file mode 100755 index 00000000000..8e56cbbd703 --- /dev/null +++ b/addons/l10n_lu/wizard/2008_DECL_F_M10.pdf @@ -0,0 +1,1254 @@ +%PDF-1.4 +%âãÏÓ +3 0 obj<>/T(info_name)/BS<>/V()/Ff 0/Rect[270 698 567.52 710.34]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +5 0 obj<>/T(info_address)/BS<>/V()/Ff 0/Rect[273.05 668.1 570.57 680.64]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +7 0 obj<>/T(info_address2)/BS<>/V()/Ff 0/Rect[274.83 642.68 572.35 655.03]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +9 0 obj<>/T(info_vatnum)/BS<>/V()/Ff 0/Rect[393.68 765.95 570.57 776.81]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +11 0 obj<>/T(case_03)/BS<>/V()/Ff 0/Q 2/Rect[354.7 567.83 446.09 578.69]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +13 0 obj<>/T(case_04)/BS<>/V()/Ff 0/Q 2/Rect[353.63 551.99 445.31 564.14]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +15 0 obj<>/T(case_05)/BS<>/V()/Ff 0/Q 2/Rect[352.78 538.71 443.89 549.58]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +17 0 obj<>/T(case_06)/BS<>/V()/Ff 0/Q 2/Rect[352.78 523.52 445.02 534.38]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +19 0 obj<>/T(case_08)/BS<>/V()/Ff 0/Q 2/Rect[352.99 509.6 443.6 519.9]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +21 0 obj<>/T(case_09)/BS<>/V()/Ff 0/Q 2/Rect[354.34 492.49 444.74 503.35]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +23 0 obj<>/T(case_11)/BS<>/V()/Ff 0/Q 2/Rect[355.55 461.32 445.87 472.18]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +25 0 obj<>/T(case_12)/BS<>/V()/Ff 0/Q 2/Rect[354.34 444.2 445.73 455.07]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +27 0 obj<>/T(case_13)/BS<>/V()/Ff 0/Q 2/Rect[354.34 429.64 446.23 440.51]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +29 0 obj<>/T(case_14)/BS<>/V()/Ff 0/Q 2/Rect[355.55 415.73 447.36 426.59]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +31 0 obj<>/T(case_15)/BS<>/V()/Ff 0/Q 2/Rect[354.34 401.17 445.3 412.04]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +33 0 obj<>/T(case_16)/BS<>/V()/Ff 0/Q 2/Rect[354.34 355.3 445.16 366.17]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +35 0 obj<>/T(case_17)/BS<>/V()/Ff 0/Q 2/Rect[353.63 338.19 445.01 350.97]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +37 0 obj<>/T(case_19)/BS<>/V()/Ff 0/Q 2/Rect[354.34 321.71 445.51 335.77]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +39 0 obj<>/T(case_22)/BS<>/V()/Ff 0/Q 2/Rect[354.7 303.96 446.01 317.38]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +41 0 obj<>/T(case_32)/BS<>/V()/Ff 0/Q 2/Rect[355.98 288.77 447.14 302]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +43 0 obj<>/T(case_33)/BS<>/V()/Ff 0/Q 2/Rect[355.98 274.21 447.64 288.77]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +45 0 obj<>/T(case_34)/BS<>/V()/Ff 0/Q 2/Rect[354.7 259.65 446.22 273.07]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +47 0 obj<>/T(case_35)/BS<>/V()/Ff 0/Q 2/Rect[354.7 245.1 446.07 257.88]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +49 0 obj<>/T(case_82)/BS<>/V()/Ff 0/Q 2/Rect[355.55 230.54 447.21 243.96]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +51 0 obj<>/T(case_37)/BS<>/V()/Ff 0/Q 2/Rect[482.13 289.48 565.8 299.63]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +53 0 obj<>/T(case_38)/BS<>/V()/Ff 0/Q 2/Rect[482.13 274.29 566.44 284]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +55 0 obj<>/T(case_39)/BS<>/V()/Ff 0/Q 2/Rect[482.13 259.09 565.01 269.88]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +57 0 obj<>/T(case_40)/BS<>/V()/Ff 0/Q 2/Rect[482.13 244.53 565.51 255.96]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +59 0 obj<>/T(case_83)/BS<>/V()/Ff 0/Q 2/Rect[482.13 229.34 566.01 241.41]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +61 0 obj<>/T(case_41)/BS<>/V()/Ff 0/Q 2/Rect[482.13 214.14 565.86 225.01]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +63 0 obj<>/T(case_47)/BS<>/V()/Ff 0/Q 2/Rect[482.13 179.77 565.72 193.96]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +65 0 obj<>/T(case_48)/BS<>/V()/Ff 0/Q 2/Rect[482.13 164.58 566.22 177.92]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +67 0 obj<>/T(case_49)/BS<>/V()/Ff 0/Q 2/Rect[482.13 150.66 566.07 163.57]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +69 0 obj<>/T(case_50)/BS<>/V()/Ff 0/Q 2/Rect[482.13 136.1 565.93 149.65]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +71 0 obj<>/T(case_51)/BS<>/V()/Ff 0/Q 2/Rect[482.13 104.93 565.79 118.48]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +73 0 obj<>/T(case_86)/BS<>/V()/Ff 0/Q 2/Rect[482.13 40.52 566.28 51.52]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +75 0 obj<>/T(case_42)/BS<>/V()/Ff 0/Q 2/Rect[353.63 180.2 445.15 190.77]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +77 0 obj<>/T(case_43)/BS<>/V()/Ff 0/Q 2/Rect[354.34 165 445.65 177.92]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +79 0 obj<>/T(case_44)/BS<>/V()/Ff 0/Q 2/Rect[354.7 149.8 446.14 163.57]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +81 0 obj<>/T(case_45)/BS<>/V()/Ff 0/Q 2/Rect[355.55 136.53 447.28 148.38]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +83 0 obj<>/T(case_85)/BS<>/V()/Ff 0/Q 2/Rect[354.7 120.69 446.5 132.83]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +85 0 obj<>/T(case_46)/BS<>/V()/Ff 0/Q 2/Rect[355.98 105.5 448.27 117.2]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +87 0 obj<>/T(case_52)/BS<>/V()/Ff 0/Q 2/Rect[354.7 64.1 446.21 74.96]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +91 0 obj<> +endobj +92 0 obj<>>>/Parent 91 0 R/BS<>/AS/Off/V/Off/Rect[102.89 569.1 108 574.22]/Subtype/Widget/DR<>>>/DA(/ZaDb 10 Tf 0 0 0 rg )/MK<>/FT/Btn>> +endobj +95 0 obj<> +endobj +96 0 obj<>>>/Parent 95 0 R/BS<>/AS/Off/V/Off/Rect[166.16 569.1 171.92 574.22]/Subtype/Widget/DR<>>>/DA(/ZaDb 10 Tf 0 0 0 rg )/MK<>/FT/Btn>> +endobj +98 0 obj<>/T(case_84)/BS<>/V()/Ff 0/Q 2/Rect[295.9 230.54 310.6 241.41]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +100 0 obj<>/T(case_07)/BS<>/V()/Ff 0/Rect[85 507.68 333.61 519.9]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +102 0 obj<>/T(case_18)/BS<>/V()/Ff 0/Rect[85 323.05 333.61 334.56]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +104 0 obj<>/T(case_53)/BS<>/V()/Ff 0/Q 2/Rect[331.69 760.83 421.02 773.62]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +106 0 obj<>/T(case_54)/BS<>/V()/Ff 0/Q 2/Rect[331.69 745.64 421.02 758.42]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +108 0 obj<>/T(case_55)/BS<>/V()/Ff 0/Q 2/Rect[331.69 731.72 422.16 743.86]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +110 0 obj<>/T(case_56)/BS<>/V()/Ff 0/Q 2/Rect[331.69 715.89 420.74 728.03]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +112 0 obj<>/T(case_81)/BS<>/V()/Ff 0/Q 2/Rect[331.69 699.41 420.59 712.2]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +114 0 obj<>/T(case_57)/BS<>/V()/Ff 0/Q 2/Rect[331.69 665.04 421.73 677.83]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +116 0 obj<>/T(case_58)/BS<>/V()/Ff 0/Q 2/Rect[331.69 650.49 420.95 663.27]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +118 0 obj<>/T(case_59)/BS<>/V()/Ff 0/Q 2/Rect[331.69 635.93 420.8 648.71]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +120 0 obj<>/T(case_60)/BS<>/V()/Ff 0/Q 2/Rect[331.69 621.38 421.94 634.8]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +122 0 obj<>/T(case_61)/BS<>/V()/Ff 0/Q 2/Rect[331.69 589.56 420.52 602.34]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +124 0 obj<>/T(case_88)/BS<>/V()/Ff 0/Q 2/Rect[331.69 550.72 421.01 563.5]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +126 0 obj<>/T(case_89)/BS<>/V()/Ff 0/Q 2/Rect[331.69 536.16 420.87 548.95]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +128 0 obj<>/T(case_90)/BS<>/V()/Ff 0/Q 2/Rect[331.69 520.97 420.73 533.75]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +130 0 obj<>/T(case_91)/BS<>/V()/Ff 0/Q 2/Rect[331.69 507.05 421.23 519.83]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +132 0 obj<>/T(case_422)/BS<>/V()/Ff 0/Q 2/Rect[331.69 490.58 421.08 503.36]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +134 0 obj<>/T(case_92)/BS<>/V()/Ff 0/Q 2/Rect[331.69 467.71 420.94 480.49]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +136 0 obj<>/T(case_10)/BS<>/V()/Ff 0/Q 2/Rect[331.69 449.96 420.8 462.74]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +138 0 obj<>/T(case_87)/BS<>/V()/Ff 0/Q 2/Rect[472.79 783.98 556.08 796.77]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +140 0 obj<>/T(case_62)/BS<>/V()/Ff 0/Q 2/Rect[472.79 760.48 555.94 773.62]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +142 0 obj<>/T(case_63)/BS<>/V()/Ff 0/Q 2/Rect[472.79 745.28 556.44 758.42]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +144 0 obj<>/T(case_64)/BS<>/V()/Ff 0/Q 2/Rect[472.79 730.73 556.29 743.86]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +146 0 obj<>/T(case_65)/BS<>/V()/Ff 0/Q 2/Rect[472.79 717.45 556.15 730.73]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +148 0 obj<>/T(case_70)/BS<>/V()/Ff 0/Q 2/Rect[472.79 685 556.65 698]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +150 0 obj<>/T(case_66)/BS<>/V()/Ff 0/Q 2/Rect[472.79 664.05 555.86 677.83]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +153 0 obj<> +endobj +154 0 obj<>/Parent 153 0 R/BS<>/Ff 0/Q 2/Rect[472.79 650.14 557.64 664.05]/Subtype/Widget/DR<>>>/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +155 0 obj<>/Parent 153 0 R/BS<>/Ff 0/Q 2/Rect[472.79 635.58 555.58 648.71]/Subtype/Widget/DR<>>>/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +156 0 obj<> +endobj +158 0 obj<>/T(case_69)/BS<>/V()/Ff 0/Q 2/Rect[472.79 621.66 556.08 634.8]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +160 0 obj<>/T(case_71)/BS<>/V()/Ff 0/Q 2/Rect[472.79 603.27 554.65 617.33]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +162 0 obj<>/T(case_93)/BS<>/V()/Ff 0/Q 2/Rect[472.79 550.37 555.15 564.43]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +164 0 obj<>/T(case_94)/BS<>/V()/Ff 0/Q 2/Rect[472.79 535.81 555.65 550.37]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +166 0 obj<>/T(case_95)/BS<>/V()/Ff 0/Q 2/Rect[472.79 521.89 555.5 535.81]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +168 0 obj<>/T(case_96)/BS<>/V()/Ff 0/Q 2/Rect[472.79 506.7 556 520.97]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +170 0 obj<>/T(case_219)/BS<>/V()/Ff 0/Q 2/Rect[472.79 490.23 555.22 505.42]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +172 0 obj<>/T(case_97)/BS<>/V()/Ff 0/Q 2/Rect[472.79 466.72 555.71 480.49]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +174 0 obj<>/T(case_72)/BS<>/V()/Ff 0/Q 2/Rect[472.79 428.52 555.57 442.58]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +176 0 obj<>/T(case_23)/BS<>/V()/Ff 0/Q 2/Rect[474.2 381.37 556.71 395.43]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +178 0 obj<>/T(case_24)/BS<>/V()/Ff 0/Q 2/Rect[474.2 365.53 557.2 379.59]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +180 0 obj<>/T(case_25)/BS<>/V()/Ff 0/Q 2/Rect[474.2 351.61 556.42 365.68]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +182 0 obj<>/T(case_26)/BS<>/V()/Ff 0/Q 2/Rect[474.2 337.06 556.92 351.61]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +184 0 obj<>/T(case_27)/BS<>/V()/Ff 0/Q 2/Rect[474.2 321.86 556.77 335.92]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +186 0 obj<>/T(case_28)/BS<>/V()/Ff 0/Q 2/Rect[474.2 307.95 557.27 321.86]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +188 0 obj<>/T(case_29)/BS<>/V()/Ff 0/Q 2/Rect[474.2 292.11 556.49 306.17]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +190 0 obj<>/T(case_30)/BS<>/V()/Ff 0/Q 2/Rect[474.2 277.56 556.34 292.11]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +192 0 obj<>/T(case_31)/BS<>/V()/Ff 0/Q 2/Rect[474.2 262.36 556.84 276.42]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +194 0 obj<>/T(case_98)/BS<>/V()/Ff 0/Q 2/Rect[474.2 224.16 556.06 238.22]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +196 0 obj<>/T(case_73)/BS<>/V()/Ff 0/Q 2/Rect[474.2 208.96 556.55 223.02]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +198 0 obj<>/T(case_74)/BS<>/V()/Ff 0/Q 2/Rect[474.2 191.85 555.86 205.91]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +200 0 obj<>/T(info_vatnum_p2)/BS<>/V()/Ff 0/Rect[120.15 799.82 254.36 813.88]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +202 0 obj<>/T(info_creator)/BS<>/V()/Ff 0/Rect[63.91 150.5 242.22 163.92]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +204 0 obj<>/T(info_date_creation)/BS<>/V()/Ff 0/Rect[261.39 150.5 373.23 163.92]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +206 0 obj<>/T(info_signature)/BS<>/V()/Ff 0/Rect[389.21 150.5 547.07 167.11]/Subtype/Widget/DR<>>>/DV()/DA(/TimesNewRomanPSMT 10 Tf 0 0 0 rg )/FT/Tx>> +endobj +207 0 obj<> +endobj +2 0 obj<> +endobj +89 0 obj<> +endobj +44 0 obj <>>>/Subtype/Form/BBox[0 0 91.52 13.42]>>stream +xœÓ©PpòuVpbª +endstream +endobj +139 0 obj <>>>/Subtype/Form/BBox[0 0 83.15 13.14]>>stream +xœÓ©PpòuVpbª +endstream +endobj +74 0 obj <>>>/Subtype/Form/BBox[0 0 91.52 10.57]>>stream +xœÓ©PpòuVpbª +endstream +endobj +82 0 obj <>>>/Subtype/Form/BBox[0 0 91.8 12.14]>>stream +xœÓ©PpòuVpbª +endstream +endobj +22 0 obj <>>>/Subtype/Form/BBox[0 0 90.32 10.86]>>stream +xœÓ©PpòuVpbª +endstream +endobj +66 0 obj <>>>/Subtype/Form/BBox[0 0 83.95 12.91]>>stream +xœÓ©PpòuVpbª +endstream +endobj +50 0 obj <>>>/Subtype/Form/BBox[0 0 83.67 10.15]>>stream +xœÓ©PpòuVpbª +endstream +endobj +201 0 obj <>>>/Subtype/Form/BBox[0 0 178.31 13.42]>>stream +xœÓ©PpòuVpbª +endstream +endobj +101 0 obj <>>>/Subtype/Form/BBox[0 0 248.61 11.5]>>stream +xœÓ©PpòuVpbª +endstream +endobj +193 0 obj <>>>/Subtype/Form/BBox[0 0 81.86 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +167 0 obj <>>>/Subtype/Form/BBox[0 0 83.21 14.27]>>stream +xœÓ©PpòuVpbª +endstream +endobj +88 0 obj <>>>/Subtype/Form/BBox[0 0 5.11 5.11]>>stream +xœ+T0Bc=C(Q”ª®�§`†Eé +N! +úQ‰.I +† +!i@¥ qC]= c#eifab¡’« a¡’¥à¢¨ùZ +endstream +endobj +76 0 obj <>>>/Subtype/Form/BBox[0 0 91.31 12.92]>>stream +xœÓ©PpòuVpbª +endstream +endobj +26 0 obj <>>>/Subtype/Form/BBox[0 0 91.89 10.87]>>stream +xœÓ©PpòuVpbª +endstream +endobj +191 0 obj <>>>/Subtype/Form/BBox[0 0 82.64 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +24 0 obj <>>>/Subtype/Form/BBox[0 0 91.39 10.86]>>stream +xœÓ©PpòuVpbª +endstream +endobj +6 0 obj <>>>/Subtype/Form/BBox[0 0 297.52 12.35]>>stream +xœÓ©PpòuVpbª +endstream +endobj +30 0 obj <>>>/Subtype/Form/BBox[0 0 90.96 10.86]>>stream +xœÓ©PpòuVpbª +endstream +endobj +203 0 obj <>>>/Subtype/Form/BBox[0 0 111.84 13.42]>>stream +xœÓ©PpòuVpbª +endstream +endobj +94 0 obj <>/Subtype/Form/BBox[0 0 5.75 5.11]>>stream +xœ +endstream +endobj +99 0 obj <>>>/Subtype/Form/BBox[0 0 248.61 12.21]>>stream +xœÓ©PpòuVpbª +endstream +endobj +20 0 obj <>>>/Subtype/Form/BBox[0 0 90.4 10.86]>>stream +xœÓ©PpòuVpbª +endstream +endobj +105 0 obj <>>>/Subtype/Form/BBox[0 0 89.33 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +90 0 obj <>/Subtype/Form/BBox[0 0 5.11 5.11]>>stream +xœ +endstream +endobj +80 0 obj <>>>/Subtype/Form/BBox[0 0 91.73 11.85]>>stream +xœÓ©PpòuVpbª +endstream +endobj +161 0 obj <>>>/Subtype/Form/BBox[0 0 82.36 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +38 0 obj <>>>/Subtype/Form/BBox[0 0 91.31 13.42]>>stream +xœÓ©PpòuVpbª +endstream +endobj +125 0 obj <>>>/Subtype/Form/BBox[0 0 89.18 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +113 0 obj <>>>/Subtype/Form/BBox[0 0 90.04 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +46 0 obj <>>>/Subtype/Form/BBox[0 0 91.38 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +40 0 obj <>>>/Subtype/Form/BBox[0 0 91.17 13.23]>>stream +xœÓ©PpòuVpbª +endstream +endobj +177 0 obj <>>>/Subtype/Form/BBox[0 0 83 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +78 0 obj <>>>/Subtype/Form/BBox[0 0 91.44 13.77]>>stream +xœÓ©PpòuVpbª +endstream +endobj +4 0 obj <>>>/Subtype/Form/BBox[0 0 297.52 12.53]>>stream +xœÓ©PpòuVpbª +endstream +endobj +159 0 obj <>>>/Subtype/Form/BBox[0 0 81.86 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +34 0 obj <>>>/Subtype/Form/BBox[0 0 91.38 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +60 0 obj <>>>/Subtype/Form/BBox[0 0 83.74 10.87]>>stream +xœÓ©PpòuVpbª +endstream +endobj +32 0 obj <>>>/Subtype/Form/BBox[0 0 90.82 10.87]>>stream +xœÓ©PpòuVpbª +endstream +endobj +165 0 obj <>>>/Subtype/Form/BBox[0 0 82.71 13.92]>>stream +xœÓ©PpòuVpbª +endstream +endobj +179 0 obj <>>>/Subtype/Form/BBox[0 0 82.22 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +10 0 obj <>>>/Subtype/Form/BBox[0 0 91.39 10.86]>>stream +xœÓ©PpòuVpbª +endstream +endobj +119 0 obj <>>>/Subtype/Form/BBox[0 0 90.25 13.42]>>stream +xœÓ©PpòuVpbª +endstream +endobj +163 0 obj <>>>/Subtype/Form/BBox[0 0 82.86 14.56]>>stream +xœÓ©PpòuVpbª +endstream +endobj +70 0 obj <>>>/Subtype/Form/BBox[0 0 83.66 13.54]>>stream +xœÓ©PpòuVpbª +endstream +endobj +141 0 obj <>>>/Subtype/Form/BBox[0 0 83.65 13.14]>>stream +xœÓ©PpòuVpbª +endstream +endobj +197 0 obj <>>>/Subtype/Form/BBox[0 0 81.66 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +117 0 obj <>>>/Subtype/Form/BBox[0 0 89.11 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +145 0 obj <>>>/Subtype/Form/BBox[0 0 83.36 13.28]>>stream +xœÓ©PpòuVpbª +endstream +endobj +157 0 obj <>>>/Subtype/Form/BBox[0 0 83.29 13.14]>>stream +xœÓ©PpòuVpbª +endstream +endobj +151 0 obj <>>>/Subtype/Form/BBox[0 0 84.85 13.92]>>stream +xœÓ©PpòuVpbª +endstream +endobj +199 0 obj <>>>/Subtype/Form/BBox[0 0 134.21 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +84 0 obj <>>>/Subtype/Form/BBox[0 0 92.29 11.7]>>stream +xœÓ©PpòuVpbª +endstream +endobj +42 0 obj <>>>/Subtype/Form/BBox[0 0 91.66 14.56]>>stream +xœÓ©PpòuVpbª +endstream +endobj +68 0 obj <>>>/Subtype/Form/BBox[0 0 83.8 13.55]>>stream +xœÓ©PpòuVpbª +endstream +endobj +115 0 obj <>>>/Subtype/Form/BBox[0 0 89.26 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +173 0 obj <>>>/Subtype/Form/BBox[0 0 82.78 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +62 0 obj <>>>/Subtype/Form/BBox[0 0 83.59 14.19]>>stream +xœÓ©PpòuVpbª +endstream +endobj +14 0 obj <>>>/Subtype/Form/BBox[0 0 91.1 10.86]>>stream +xœÓ©PpòuVpbª +endstream +endobj +195 0 obj <>>>/Subtype/Form/BBox[0 0 82.35 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +127 0 obj <>>>/Subtype/Form/BBox[0 0 89.04 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +72 0 obj <>>>/Subtype/Form/BBox[0 0 84.16 11]>>stream +xœÓ©PpòuVpbª +endstream +endobj +152 0 obj <>>>/Subtype/Form/BBox[0 0 82.79 13.14]>>stream +xœÓ©PpòuVpbª +endstream +endobj +107 0 obj <>>>/Subtype/Form/BBox[0 0 90.47 12.14]>>stream +xœÓ©PpòuVpbª +endstream +endobj +103 0 obj <>>>/Subtype/Form/BBox[0 0 89.33 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +97 0 obj <>>>/Subtype/Form/BBox[0 0 14.7 10.87]>>stream +xœÓ©PpòuVpbª +endstream +endobj +86 0 obj <>>>/Subtype/Form/BBox[0 0 91.51 10.86]>>stream +xœÓ©PpòuVpbª +endstream +endobj +181 0 obj <>>>/Subtype/Form/BBox[0 0 82.71 14.56]>>stream +xœÓ©PpòuVpbª +endstream +endobj +133 0 obj <>>>/Subtype/Form/BBox[0 0 89.25 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +1 0 obj <>>>/Subtype/Form/BBox[0 0 297.52 12.34]>>stream +xœÓ©PpòuVpbª +endstream +endobj +189 0 obj <>>>/Subtype/Form/BBox[0 0 82.14 14.56]>>stream +xœÓ©PpòuVpbª +endstream +endobj +54 0 obj <>>>/Subtype/Form/BBox[0 0 82.89 10.79]>>stream +xœÓ©PpòuVpbª +endstream +endobj +8 0 obj <>>>/Subtype/Form/BBox[0 0 176.89 10.86]>>stream +xœÓ©PpòuVpbª +endstream +endobj +183 0 obj <>>>/Subtype/Form/BBox[0 0 82.57 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +48 0 obj <>>>/Subtype/Form/BBox[0 0 91.66 13.42]>>stream +xœÓ©PpòuVpbª +endstream +endobj +109 0 obj <>>>/Subtype/Form/BBox[0 0 89.05 12.14]>>stream +xœÓ©PpòuVpbª +endstream +endobj +149 0 obj <>>>/Subtype/Form/BBox[0 0 83.08 13.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +169 0 obj <>>>/Subtype/Form/BBox[0 0 82.43 15.2]>>stream +xœÓ©PpòuVpbª +endstream +endobj +129 0 obj <>>>/Subtype/Form/BBox[0 0 89.53 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +36 0 obj <>>>/Subtype/Form/BBox[0 0 91.17 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +123 0 obj <>>>/Subtype/Form/BBox[0 0 89.32 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +185 0 obj <>>>/Subtype/Form/BBox[0 0 83.07 13.92]>>stream +xœÓ©PpòuVpbª +endstream +endobj +175 0 obj <>>>/Subtype/Form/BBox[0 0 82.5 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +205 0 obj <>>>/Subtype/Form/BBox[0 0 157.86 16.62]>>stream +xœÓ©PpòuVpbª +endstream +endobj +18 0 obj <>>>/Subtype/Form/BBox[0 0 90.61 10.29]>>stream +xœÓ©PpòuVpbª +endstream +endobj +52 0 obj <>>>/Subtype/Form/BBox[0 0 84.31 9.71]>>stream +xœÓ©PpòuVpbª +endstream +endobj +58 0 obj <>>>/Subtype/Form/BBox[0 0 83.88 12.07]>>stream +xœÓ©PpòuVpbª +endstream +endobj +171 0 obj <>>>/Subtype/Form/BBox[0 0 82.92 13.77]>>stream +xœÓ©PpòuVpbª +endstream +endobj +121 0 obj <>>>/Subtype/Form/BBox[0 0 88.83 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +93 0 obj <>>>/Subtype/Form/BBox[0 0 5.75 5.11]>>stream +xœ+T0Bc=sS ah¨P”ª®�§`†Eé +N! +úQ‰.I +† +!i@¥ qC]=S KKÃÒÌÂÄB!$WAÃB3$KÁ5D!P:qÖ +endstream +endobj +135 0 obj <>>>/Subtype/Form/BBox[0 0 89.1 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +64 0 obj <>>>/Subtype/Form/BBox[0 0 84.09 13.34]>>stream +xœÓ©PpòuVpbª +endstream +endobj +56 0 obj <>>>/Subtype/Form/BBox[0 0 83.38 11.43]>>stream +xœÓ©PpòuVpbª +endstream +endobj +28 0 obj <>>>/Subtype/Form/BBox[0 0 91.81 10.86]>>stream +xœÓ©PpòuVpbª +endstream +endobj +147 0 obj <>>>/Subtype/Form/BBox[0 0 83.86 13]>>stream +xœÓ©PpòuVpbª +endstream +endobj +12 0 obj <>>>/Subtype/Form/BBox[0 0 91.68 12.14]>>stream +xœÓ©PpòuVpbª +endstream +endobj +137 0 obj <>>>/Subtype/Form/BBox[0 0 83.29 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +187 0 obj <>>>/Subtype/Form/BBox[0 0 82.29 14.06]>>stream +xœÓ©PpòuVpbª +endstream +endobj +16 0 obj <>>>/Subtype/Form/BBox[0 0 92.24 10.86]>>stream +xœÓ©PpòuVpbª +endstream +endobj +131 0 obj <>>>/Subtype/Form/BBox[0 0 89.39 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +111 0 obj <>>>/Subtype/Form/BBox[0 0 88.9 12.78]>>stream +xœÓ©PpòuVpbª +endstream +endobj +143 0 obj <>>>/Subtype/Form/BBox[0 0 83.5 13.14]>>stream +xœÓ©PpòuVpbª +endstream +endobj +208 0 obj <>stream +xœ+ä +ä*ä,R +endstream +endobj +209 0 obj <>stream +xœSä*ä +ä�R +endstream +endobj +210 0 obj <>stream +xœ+ä +ä*ä,R +endstream +endobj +211 0 obj <>stream +xœSä*ä +ä�R +endstream +endobj +212 0 obj<>/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]/Font<>>>/CropBox[0 0 595.22 842]/Annots[104 0 R 106 0 R 108 0 R 110 0 R 112 0 R 114 0 R 116 0 R 118 0 R 120 0 R 122 0 R 124 0 R 126 0 R 128 0 R 130 0 R 132 0 R 134 0 R 136 0 R 138 0 R 140 0 R 142 0 R 144 0 R 146 0 R 148 0 R 150 0 R 154 0 R 155 0 R 158 0 R 160 0 R 162 0 R 164 0 R 166 0 R 168 0 R 170 0 R 172 0 R 174 0 R 176 0 R 178 0 R 180 0 R 182 0 R 184 0 R 186 0 R 188 0 R 190 0 R 192 0 R 194 0 R 196 0 R 198 0 R 200 0 R 202 0 R 204 0 R 206 0 R]/MediaBox[0 0 595.22 842]/Rotate 0>> +endobj +219 0 obj<>/ProcSet[/PDF/Text]/Font<>>> +endobj +213 0 obj <>stream +hÞÌ[Í’ã8r¾×Sàb7å± œfí Ç8&¼öNyö°åƒZŪцJª¦¤Ý^?Õ¾†ß¢�+¿‚/ÎL$H‚’XÓãpOŒŠ$þó_&ïÿéΞw¿º¿{¯g÷Ow&W¬€ÿð¯¨Êœkf¹Î•.JvÿrW°ç»¼ÀçõÝ +Ëîÿt—-Œ-ÙâþØ— }UÖw¥Î­d¶(s%]gÔ�À®ðAcO¿Ïþå/ìeul6ëÓ¶f‹%/E™—Ùý�ß.Ê"[üÇý?OÌ——L†àyaÝ*7VÓ…ëž-lÆXÛ‹Ÿ©�¹,ËKuÿ‘¦£ü¼¸¡þju¨Ùã»ÍËëþ°9nö»°V?›[-a®u©�¸tã>d?í›»_è\f?¯ξ¥ß‡Å~‡âVb]Ð ·6ZÃý�@•[èˆ#}ã_ß߉*7À.øÝ Aàÿ¦¾{êDQ™*óJL73U•Kí +Jd$Ù +E#]ƹɥ�(ôÃ¥ Ac†J™’«ríåiË[á«O—B—ºÈ~»P +õb™›ìž«lO¿Í>Ù#½¸b¶]±ãêSýÍbY �Ï‘`)žs.Žc‘ EË€ŒX¯i–šI]æBÓ$Ë¢›d…Õ3k¨noMƸùÊ„UYQL¬i*˜—Nr„ +&™jæT\ŽU¦4¹ +ÝNìth.�õb‰â–/–Uð;P‚Ÿmv„’låŠéyãêìw‡‘¢ÚN?„ˆ¨Ù#g),‘Ó«d°9D›¡m‰QªzŒW‘ Ô“‹\€µÜò°BŒÍÒŒƒ!„¼À¸iö|' XN`3Ø:¼†1A! +�åËÜðò®E^ŠÎÞö×ï$òÂDÒ‰"×eÎÛøÃ‚}f�õ�=mvx`ÛwõîØÔ¯Í¬šÁ%¶ÙêÊpú´à¨?X‘«¿!þulY©q�­�”;6ªòõV–XÕ569UKM"+Ÿä )|e^äÖȘcÝl— +4AÀÐu(èû Tïï„dŒÊÂ`•™NÓPÂÜŠ4 å 4„æVƒ˜\ !‡âކ_%‰˜šE¦Ë4qÌ"â[KIZñWíäÅ¿,y^‚>é7‰Jào¬^=\ñ|ý(a§*zúñ§ŸÉ©2Í)¨�iN©8Õ›çÛ9•šE¦ešSP¹”ó9%a+i{³í1ŠJŸºÒk|â6²á·ó‰ €=SžiÁʶ«E¾èøÒ›×Ûù ñE¥ù•­�ÏøD˜Ô W<Ö Ð�»±ÓÍ]ñ|, Ã70ÖàÂa‡í_ù…×´çÀ çæ\’L8olR -¿�۽ɾ…ÛD³˜À0P1¨¼tUà\¨\;â"®\ü�^0MÇ-ìÐÖä:"PÂÎqË�Î~XhÄ6;Ñï�°Í–G÷í¸ÚB¶„�m‹�ýGׄ½Ò×b³€Ÿ�k¼(2¦¿f9¾¿²ÃÙö0@_z¦/ó*S +�Ü)¬)’Ü¤ÑÆP%ÉR¬äl€½&ꊤhla�·IÓ¦ê™Í,‰-5ˆ 8«³uWkÝR±ë}®}\ hò�9‚¦ÔRé›1%ÎhÄoÍÍ bÑ[Л­yr™ÖiáÀ1Å—•°cÇó›PaQI#&A¥w5 Â!í DT€’ÅÏ'bj™N;Á8&׳·D­% +þVñųÁŠFOX_ÙÓæq* *q 9ÿ«8Õ›çÛ9•šE¦mšS8æ|ø¯U‘zšS®x>§0 XÌçÁJQÁHÅX©…ˆ"ô®‹8Ó›×Û9 q¦JsÆóᾆ_` •Žù‘¸œníŠç³µÐ­CšŽ2ÿß"qÉÀŒ{Èòf$-õmH&9B2<-#PYÊ‘ Ô-íɾ£ ÓJ�áUez|wŽvÅWø® ÃȽ¦eºê˜®t¥³ûª'qLµúúk÷gëz[õ:©{oìµ_ʶ¾|‚^ýÝ‚»“|9ÑKh²?±í»Uoä�§sjÐSh&úaã3ª¦±õ3_Ñ¿~r‡¡Ö”NË´p`†™�Δb鬉ÖWbÊŠ�xr°p€—‚N¯ÚžG@Ù*·©ÐÐ5s­Êµ?¿ù\‚ýë¶w2WŽ+Áß` 1$'‘UépL”Ui¿ð™‰‹ðr˜XáM»µª´q8Ivƒ�„­ÌÏGâñàÍÒ�w¬¬HÜî"WŠO†g± £<óôSHôäÛ‚î=–¤ýW…0¢s¯npŽúÓz;K¢Á#–¤cî8&·óYRj\ç”ã‹cnöoTQµÆü—9 Á¤èqæ†øx^oçL4xÄ™tüŒÆó9#0Â>ÍW<æLh^`H7V7ÞkîŠ#�ã71VB‡•í#4^„Ö91ðD‘ý°?0]‚gKD%â1ü³_pçfàËÊÕçÄ^÷›�ÿÌŒûþ5‚ðU¸{…½ŒŠ'}ð̸¥yêˆC]FQ&…¸.(ýuÎ?¼W€ÌG“pb"x:¼ACŠ6Ý‚ 1H·h9«"Ôc«Š€w(󂥑먖Ïá½-£S‚ÛR5²T¾ v$ô+^àE4ñx#ÚC «SÐ> ,%xvZË|ñ|-ƒykùóÏ-¾g„4H–,$GK6ÌŒfŸ™Ë¡^Ñç?/ʪM®nÆ;¥Ö½Iàdk‡Dd‡$Ù!™1kÈ Á“)Ú'žúÇÊ€•†,ÊÜl*Qó)¯Lµà3Lj7ôRc²2>k÷—­U/0n³ƒš`]Á¥ò†0Mda*`݀ʣPà„`B£Qð‚LFc¼)=6/:, Ø2,° L”ÜÞ x½h9•Rdf¯¡ª��ærøN£Ì±»½ùX�„I™ÝhžÆ’[Ž8>y•€jVÑIØsB“±-£ídp«¢*v¡"׬o�¨ÄEZ`Ñx ¥ÇÞiöó\s—«ï0£€=áJ¥¸È†>´GJ@¬òjô"¬ +¹ .Fù¶ë�Ä�ZýÝwhW@f³Xm×§-%š{RïØê…fÂÑñk/&\¯ñ(k¿;²Çóãi}Ü|pÀ=¡Õ€qÁ@¸.nüÇ«IôTjíÖ,DÑ­¹,H]�àÚmQ˜çèbm |Ud¾{§•Êà‰z×”JÚÖQ©]i×Üu_V.–ngЮ7n ©UT>�ØÒ‚Š.Ε¸p÷¥ØtGt²Û@ygáÝëqAgCóY€x·×ŒŠ8@�דÉ€cóÓêyI@ïõÂê?³í»Íîxn6õ©¡ÀÅêÏ®ø0¾lU„»RÓV( †}9Ò…pA +ï¸L* +ì¥òš¿‚¤å£k"ÇÊR_ŠDxÆÛ¼ò'ú�œ,U @„芔нE+,®C/hâ:†‚¹j ¾àΉ<¦ìD¢¿‚…\¾§Œ0ÛC- ùd­¢¡D½û°9â®×ΞÇkÏ8/1Ÿ÷Ò¾çïAwÝVÎÆB`ÈGŒ»79çò‚Tt¿ù Œ9ΕéH_<ÁBг²ó…:b¶å�}IVkØ�ÇV +Ö°¢%8ì·›GÜâ %Bœa„:áÆ‰ä’‡'ºà¯¦lB¥I¢îÁÛ¸(šÂù_@Š*‘õ-Ò¹Äñgˆƒ>«ûVq(%˜HfœÔ팹ó;üˆ0|  y…Œ^ z$;´ì‘W2φè|šq¼q4ôÕ¬^qóf+ÂË2«×tybÿznü†î®AÉp +…ºÊhŽ'j²jP$û[ÈPúãi…a�Á¶.Q®àë‹§Rž³H¿q–¸HÖ±‹þ9 1Wæ.'˜[XŸ>k[–c¾µì¹¥iø‚('Vø„ÖÍþ'o�µÛÍÚc€]ÍxºBîajÙfÆûp&çx·Yƒ©bÈ.PTyÕâ:WÁUK3 Àj%‡jX¦¯7!ñDTùff¡ã�Bľãdr¾žâ¥�ˆ•É}l:èW�¯k(~iÚø%å â^ÙÅè«wƒMæ^ñ$…g¾Å™Z¸çý®é ¨;½mØíHïÁN˜.–1ð ¦íTo=z™7vÀô.(×ÇëÔóeÕ|<�b>¾ƒÎ›ç]ÍvçgqO£SÀ¶ë1>P eÊ£Jsé3Žˆy…ë1Y/mJ`Ϋñ¦ó›Wb2”�ªÈ5å†÷“ž1þû>¾[÷�ùרˡw)(KîbÝ™ê?dXo]~ÚÔáÒ|û5íîí¹[zÍ#™‡º»¢.óQ$få2jÂHÄåÃÆ½¬ÿ +žx}'�^_\‡Û¿ë| yxH©&ü&J~@á˜Û!gJ]‰uYã"6ˆ©ßµCªFJ]©íJE¯c*¥c± ãš^˶[Fåk<;d¼ŸŸ#H[ñÞªâ¦Í=%@£ìk|UÌÐï‚Kð7Ö�, +nJÔ\a¥�@ƒ›-ØHë÷îîM¶-ÃÉvÅCt¦\Ok”ƒt‚ÂMór€7 Úý¼[OMí$k<™Ò�ªÄâï•´´ U¸1´aEµ„æÈ§P¦Û//m…`.”ø­úP‰¢•—ƒã^üZE˜(ˆF[B4Kæ8�Ó4`¶6N”—í)1àDöÛ…â­xêž…ÿ­éË6�s™pÝm +‰läñ¨Fb€&6¹a-aµ…âx¬®¬» ]hÓáBÛ÷ïV‡Ãéõñ¸a�ûÍýiw 3ðšØnt©ÿë¸rQºßæÝ�4kà¼ìN5 Ÿ�­”·b`WK ¢ó¸:Öô¨²Íîqóñt¯°c¸‡ŸV§c¨Mh⵩_6hT^WÏð¡f¸±¬Ü¾À† ¼@ÄØ�õýëîTÓN…/›g�«�;•P�Ëîx\†‡Ã‡Ã~ÇÖ?ÕOèO®÷§æà‡{=7›=<>z/u©0N R˜«2 ÷â…özþØÎk—{à¶~Á=–O O,9gß‚ýö´,X9žxe<©ë§§úøµ'àf(‰<}<¿î‘“Ž�‚ƒ½ü7†Ô‘1§]8ÓjçIƒ +3 Võ ´°ìì¸?€AÙÝ¡Æm×v„%¨Ô�P\„Ì}2þ»óº>Üùæ+�ù½Ž³È¡‡mÞ”ª��ðh”DAîÄ£ywn~¨ã~Ÿ)X79"Í%ÀÞäÓ4…«�|aºä Phþ0b›(¡Æë'¡6‹¥ üÕ�XÊQó­Òè3Eþn�{Æ´Îó’Ì9XÎòjRÔ¡jYØ¡æÛ@n露œFÍžöÍËiKaôÇÿ!‘|Ýn�ˆˆØÎÊá(°ë#ËNB�WºxLSƒ$4;Œù[üñ2Yбóeè} Pí\'(‚&þï‰=œ_霨›+Þä*’Ý oÒOõŒN…mýÓ +pj¬ãQç~z¡ÃKbüû¬¤é}G‹®ÿ“r PÒ…áì5§h%Ý@lcïN/çf(ùØl@Ò�QTc4ɸ3b.ÞÉ©�*;�…j6uC¹"Û½³Vƒ:¯«�ÓÇ|œ�,$º èmMV·Ã—Fp Ñ,à%>“ë1 ­z`¬ôÉ=ÁÛuWdGE¯m‡}FMSŃLÑ&ãxõrOàdaò\ѺŽíÚÿW€œDj + +endstream +endobj +220 0 obj<> +endobj +221 0 obj<> +endobj +214 0 obj<> +endobj +223 0 obj <>stream + + + + + PScript5.dll Version 5.2 + 2008-01-16T09:35:29+01:00 + 2008-01-16T09:35:29+01:00 + + + Acrobat Distiller 8.1.0 (Windows) + + + application/pdf + + + + + + + + + + + + + uuid:6ef5efc1-11ff-409a-a4ba-0fed66b53f00 + uuid:6660edfb-9141-4619-9c31-6f458bf0cd39 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream +endobj +224 0 obj<>>>/DA(/Helv 0 Tf 0 g )>>/Pages 214 0 R/Metadata 223 0 R>> +endobj +222 0 obj<>/ExtGState<>/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]/XObject<>/Font<>>>/CropBox[0 0 595.22 842]/Annots[3 0 R 5 0 R 7 0 R 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 25 0 R 27 0 R 29 0 R 31 0 R 33 0 R 35 0 R 37 0 R 39 0 R 41 0 R 43 0 R 45 0 R 47 0 R 49 0 R 51 0 R 53 0 R 55 0 R 57 0 R 59 0 R 61 0 R 63 0 R 65 0 R 67 0 R 69 0 R 71 0 R 73 0 R 75 0 R 77 0 R 79 0 R 81 0 R 83 0 R 85 0 R 87 0 R 92 0 R 96 0 R 98 0 R 100 0 R 102 0 R]/MediaBox[0 0 595.22 842]/Rotate 0>> +endobj +239 0 obj<>/ExtGState<>/ProcSet[/PDF/Text/ImageC]/XObject<>/Font<>>> +endobj +216 0 obj<> +endobj +217 0 obj<> +endobj +218 0 obj<> +endobj +236 0 obj<> +endobj +237 0 obj<> +endobj +233 0 obj[/ICCBased 245 0 R] +endobj +240 0 obj<> +endobj +241 0 obj<> +endobj +242 0 obj<> +endobj +215 0 obj<> +endobj +225 0 obj <>stream +H‰„VKnãFÝ뽕ûϦw¶löÄCØYÐÇ` ‰Ž>Éœ#'É5r‹lµÏRÕlRM92$SªOWW½zUg?~ìe3ºÌFgY&™`Ù·Q©cÿüƒ–`4s’ƒt\±l9âìßÙŒ>þE,Î~%kÝXs¬ñA*)š I0o lc`‚¾a*q �W7ºVNÿg£1>pG'>F÷±íã1¸hS¬�…‰öì¶ø�Ï—åªÜl×ù¶¬V,þ%ûÔ‰-õ¥MTIšB›K½¹Ð@|2‘à$:0¼�O’-…'½ýU¾-˜wÂÙX€ÐšeWþòpÈüC±Ú®÷…×Ãä¢ ŒuASjÒŒ&Õòu›?—‹r³÷Š×ÙHZGeqÜ�Ò ´Kð" [£o])ÞÙHð*ªk)@�4ÖR‚hm`8]c“(,bǘ$]ûŽBG~p‚Kœ/À:×G‘ Ê‚ßVF;âÖ­ãÂ¥D?#Aª¸s¬ÐzoÌë° +ØÇ-!¹$l'Ý…O¿RH�NÙ/¦<Æ$5Zl æÛ¿Ø2ß®ËÙn�h+…ë(ûzÑ€7àPÐÆY =õáŠýbUÊ€ Câ´À¯¨ó!Ljݨn†€ c1ü”î-Öôn“u)n1á­�¥Þ·³¬­E„¬…J¥ÔÔ'„.¥B ›…¿�þžhå CgH¦`†�i©b¶�Ý,»ªF?†ä(‘Z�ÁèM5Ê „X:°U’Rí+©’@KŬØbïOŠU<ÖÑ6ÆîwÑ:§ºRî¢J)Ï Î& Dã¥f�Kø LpÌ ?F¾á¨Û³i�¤òFS6FÁÙt÷½X>W»õ‹7G<üß��Q† C|1E»€söý@?%‘2ò)fÈ_)7tB} Œ ™�b#—²5qù¼¹¼ˆ¥ÝÆ8Å| ¿ü¢øb\¬Fš`zñU{Fwƒ¥‹&Á1%›OªyS¸ìòfrÎ&“ÏÓéÃtZÛw©Z…,d‘âÝ Š¼�AýÔ�»Fæ“-¹sÝLé§O”]ü|;<ܳéûz1½Æ§‹OwÙß×]¼h1˜¥ž3Ù™Œõ 8]7·/RsqjcÔ~ЦUÉæ;&ˆ{—biŽùf,\@Øf�øî½¥�”à]US]ÊýÕ~¶ÈÃdÅH–U¹aó?ï&ÙÝåý5›4W+œi³G²ˆJ¾¤¡Ýg«@Ø âE'˜gÀ®îk7¸{Ô÷²)o!ÐÖ“ëBbo«åGt¶y6߯*\ ê+nªY‰½ÒLá#û[ô— NÞVˆÕH8Ú�}W!Ow¤�ð` +/óÒ 2Ò±3¤§•v¼ƒ´–… ¬…z*NËÛÑC²9­ØÄhå¥îÐF!‘´íìyÉû—|q g�+VÆÝ¬žc¶_ÿÝzÜäø|ÀV±­¹Oƒ”ˆ bÃý�^ó²Xâæ¬¶ù÷‚å;öºØmðËzÎE¯)úhOül°ÆRîZP´+¦ \Žä´ªÅÄŒËçuÉÝÝp`/°8ÒR{r­|«&m÷ä£e¡æUëý®øÈV»å~]½&–VÉ>±åÞ~@ÚW­Ô€ë Ö""ñØFö¦–=:dPx0ä}t³ÿ‚+½_ +endstream +endobj +235 0 obj<> +endobj +226 0 obj <>stream +H‰¬VKo7¾ï¯˜[¸hEó½Ü (»=´§¶XäR÷°‘W± +Ùr$¹mþm�Í¿è7äj’œ @a€¦–3Ãoæ›W…©d(¸ •#])#ÉÊ(ei׫B×QjsÀÉìôº)®šŠÔ¬Ššþj²ZF˜4l +©”ŠÔ,y£5âúy×µÏt÷jýð´Ý¯ëíãë²ù�Íi•íUR™d2m´Ñ2˜™YÅ&U2G½n8ªÖ±WÅÆ(ÂuR‡¬:(ÄKw™ÊÈÈ +ž‘Ÿ¹`³ ·âf{×ÑSûqÿ5-Óv»?´ê´YwÏ·å”ÆõÊ\Ò|w†ýû¦`Ï""­¥G¤]D¬ò?—ƒ=;gª¼™�3UÆM ü‡Sàöû„Èë…¬rr.¦X&Ã0Fúx„©#gÑe>f”:@ªªav†cП*ŸNUs¶™K;Àƒ®¥uS†-¤W6rÈÎÝ%΃‘5[ðÒš©…!«m*ea/Ÿ/8'ª>'LÍ\þ*~�T. !nÚÍò¹\XiĦ\À¸ »ü³+�Ô‚6-Ú¿:ú›žò÷6}ÿXF{™•¿5?¨ïqz²ÎK´ fR]È*ÀH€\Æq]‚;Ñî;Ü + Áu–6Û´îË…Æ•\wé÷cZóucÆIp9_9í‡KtÉ­¸ßîöÔ”Êo±ñ&­HýÞRk€q1[‚S)�¹ºÊ–¨y D�ß”ÆP¸*rƒÒVV¡ï?«ådQ®¡‰|®‡s_A-N´™º©�‰@4£€>¹Á×ußúHsàgÊã!+OΑ¯3ꌬÈGƒ6Æ,%⬈ëHsÄ (±âk-Ö«Õ.3Y‹W%–vµj×»nOïÓ· Û¦í»´¶åBVbóú„Pw,š´Ñ@„jó1 1]n©h +�—˜43ÑIñy•üª\ö É\çd±TšPk€9aQ;'ã‰Ç¼ñnv8F{äi6‰f±† ô2‡ᦽ,Ð&jN¾”sú¶Ì œ¬x¸)�©n‡T×Y˜³ÛŠîñ€˜e‚ÃV+CŒ§}ý Œðíl`¸Æ¡œŒaQdBB1�ÉC쪫ۦjè³9ö£›<Mò´~¹º"¢_ºewÈèû1ÛƒGº˜ÿ |x&½€Þœ��6¥ß ú£e:1^ƒþsé8øŽ=©ä6²D�b»¼ïvé7-;úPÖ-Y‹uéñaûøGÉáN?Álß´æ5b|•}2h»—k䈓G"öŒÐÄ3÷íyÝX$9þMTv>•Þ ‡Žè5{ÃL#ê<2q–ø˵Ây’ªf–Ž~¸è“ËXçWÅ7y×Ì WØ"¸(~Bý` •X>mþAà=vݾ§§ÝºÿðiOxF½[w�{êËlL.ží§WòØ]“xà?7ÀZìÒþ Ñê®Úžß©FaìÍ�~‰]Ï“âŒ]wŸ#·ñ ··Fn8/¶TùµËÀìø5>™øêœøLé©-÷ìN,/Ðþ¨iMÅT=+i¤—]àÖ¼|HߊÚð»NѦß-ø­¶IÏ­´Y?_jɈ¡î‹—þ`]¤Ÿ€ +endstream +endobj +227 0 obj <>stream +H‰¬WÍ’Û6 ¾ë)p”ššËQ¹µÓ\:½tª6‡lZ[ÞQÆ–InûŠ}‹»oQ€¤dIÞu&“ìÎH ‚�Ìá1I!+ß'’9Æ­†ò§„q® Ü&8Á¹ƒòïä]ªî3È6V»ô÷¡94}54§>tÍ_™0éS »šºí¡púéðŸ_¨�u;ô½žôúºó£f[÷�ýYþœXàøoA:ÍŒ£ +f-Á8z¾qÉùO+DÃ\Ú ÙÆ0™²ðAÓEjÃê}æ�çÌxóôVÜ0ãp2ÎÉpðƈEiΤõªÊrMªÅ‘zÊ ©æ¬pÑ4 +J[zÍ7xÛÁì…É™Ó £ÒÜ ÖŽÙà §ƒ"�†ŒbÌòÜw¼B/J™;ò€¿ñ›2a–K ðGÞžÀ3ñ@#ñôíÑO“B2A·=DiôÃ…}òkòc™Ü•¥Få~y‡ŒD§O^|¼ò$n´aãÈ0âS`˜)&Âôİ2‹Ùïëíh6qkÉ¡5Ë]Á'ï\Q÷>Í,Ñ…Ø‚ÒÀ@¨»‡g¨!rN(çö>G ©Y1;:RþL�Ù†ÏPc†Bæ¤�Ô‡W‘/˜‚Á7~“r�墘Á÷½È åöK‰±¦ƒà,×:�Ktàª)\  +ô<޹ÆëùÍZ¯|°ó|í$'¡žm™ys¤ç §Ü]9>†èy£'�“�¿·r·ò›äªTT©¾(&X=-Þ˜# R{`¸JIÖÕ¨±:�Lȯ�º.+ôÍ"«‡tL cðÉ?Vve‚{~;�{ªå"ÝdÍT:„×)Ã��ƒ*h`w†§¦�ÓTýiþu¦XžÆjq©A+^nûáŠ%ðgh2ß=£ óc¢ ­¡{-SèÖ8ÔèT¬z‡$føzl8Þ‡ZKÏÃåpÒÖx¾¶WãpØ!yû´Èiá�XE`GH�·¸ÊÊ�+XøÄ$*êQ¨£Þœ33 kº\{Öiƒ¤Š´‰Òå3bG.3'ÞP#/<ŒÏŽwÊ�È]� €L�1žrgMéœñ›I“ËHi/¼pÏ<{Ë·Ñ�n*%ËA;Å_VÇP‹$[~,ÉÉœ2dF¬‹aV(–}¹˜@:äÏ›(lzjŸ‚ÐQnØ�26$�K|¡J&¡^,ÂñÔF1îj31.Ž[vÑüî¼½¶üpˆ£öëU& +GårÅYµXQÃð…ß�!¹RÁ+7?h‘Õ_[Ú¬¼îof-3QO-³˜�"„BLÍ/¾ýEÖv>ª¦G×–­®ÚžŽÇs[�‡ªéêþÒé|BûæºCÕ¥f‡�t³ož|Ëÿ¼W©7À¤›C‘Å%P>Á¡‚23XÿÀg�==aWáYç@Wÿ~rÈP«àXprÝ s¼¹]xÆ·X´“š¬ïè­0ÐêNÜí¾‡š~ì3¬Êwä𿵨– +endstream +endobj +228 0 obj <>stream +H‰¬VMOÜ0½çWø˜TÊà�±ã[• ·J‘8”´ *ºaQû—ù�±�¬“ew¬�ˆ?ÏŒçù½lwQ4`…¤?~j+Á;�NƒvÒˆnUHÑÝð¿¿E)ªîwáØ ƒ’0UÐ&(Hi<ÃK¥šG6è õxˆƒžwź0¡Ñdäjœ; ÅÍðøÆ¼­iލcŠù<á‘JPnwó=—_Ä#åQñܶ´¨Ó¬_—´ +žÆw³ÊZˆB!dÜmñcÀ­… + PbZëÍ*¼^Þ‚B=¤QíÁr)rq´oÝ´•C¬œ¤»ÔɆ«�H>;zp:@#´&–¨j½¢‚)1û³¬…¨j%‘ª 8¿º ¦„Ž9t‡� ��ç‹ï-H:»æòjX™õ'î�ýiÛ¶M¸Þiû O·g›c\ iÆU�U»Ïï²ÞOINû²õagª°‹'õ”\¥â3X^û(T—�BKÍ�õ�uÓò†¥Pݸ:'ºŒ×¸•W Nµ2ò&ôU%*ÕZ]žW-ÿUŠîmùç©ß,6÷O�Ï¢¢K"©ƒx•–`&ÁùZÈôª¤Pª\T54eÆhÎÔÙB,7âúª +ÑòZ•3$—<â1ã »ÖâŽqè}Æ‘Áw�Ã0ÙȺÐÁ8â‘/ÿÖ(æsË%o}b6Ð|&t»ó˜í}¶‘×EÒ¡ýŠ“s�PÙiLcBÐaÓàsêw›ÆÖ†�ÍÕ?®Þ’+;¾?ì-1öoLÜãðê"4Š|i&Bn‰J"¬ê 1ÃZ¬úòkÐâ È•›~ù,–I—O�¯}Ò¥˜I²„<g0œŠžVÒ$U:ðe¿©jñ!0¾6ñA$?i#Ùó$ÇTJPô;*5ûTšÁ3•2IÔh2òîûÁ+g¶¿Þså¢qçºU6ª&Þ&VMÕThM¼¥¢^5`ôV/‡èÇП¥K>¬ƒ»àÃ:ø0²[·®ZÀòe±YÆ%✻¬kIŒÙI“NP©wHÇ}¤gð��NÛ­<é&|�?K:5Ì»)évøðú&±nÇ/oG�7åâzq3|mo×ýýúåõyJòÐ_&dþ›9Ò¡ì¾&g{>Òdit¢&ÓUn>ÛcãÉ|ë⿌ꋾ +endstream +endobj +229 0 obj <>stream +H‰¬VÉnãF½ó+úfruzg3·l— @€Èâh‰ò0Ð2¦¨Iò‰ù‹\õyÕMR$-�g‚Ø€Ø[-]ïUu ö˜p!´då:Ya$ +Vþ‘üš²l¥œ©»Ï0tƧ?e†éûK[uÍñpbí¥Ú5§K}bÿ°ÝÝ¥k«ÃcÝ~E‚ÂkE¤“ßßÊ’œž ü‡�±‚iOC¡Y¹O$·ÂDoÒT/þ}™p'¼}b2è‘L[ÃŒ�\¶Þ‡µ}R(.F»~´âÆc"†Á6ù9ù¦„7¶wÆ2]0�“–芀 ÍMá¹CŽ”¿'Fq+ÊïÈCZ§å—‚&£–—z~Ÿ¥ÖqÙ‹=7εb +j ™'´Ô€–ŒÑªû±ù�I m†Ÿª9H§óÃéòt®]ÀiƒßjýtnNM±9·õq¿?ªsW5-l*lìêè(.¡Ø +á!ÛS‚¬«M[³ÍÝñʈ®mÀ�ó.¨ù‚íŽí ¦IìvÍ¡ +X³�;Ͷ¹q*Vf¼ú%CÒ¯Ão´\¾�•èËÝßa½Ëp°êؾÞ?�í«^˜w{hjœÿ‹â5Ø$ãm½©?Ä¥ê!8Cf»êϸVkøÔn9p1"íZŽi#¸r/-"^ˆpII1�Ö8b†¶90ø5Ò¤~JÀbž+¦�繃‡9>„%QožM�æ‚ølÀL2°œ÷Ç ìK÷lmí’·oØy#IÈ`[õ³¶NÞb—{Œç^à¸aÒpŽQNõǦÉ9utÌO�ˆ›�Ÿq´òÜö Ú�neèƒk’P–ÞÌAã¹S3|ˆ´*dŒäÚ@O ïŠ2R +cG¾ ª(}pè¶ô ÷Ö!Ë +í†�Ex¢lŒ¶(Š^ù;�>Γƒ£�É.ÌŒ»jâA>-MB?C¸—šlrBÅ™|t©¯§d1ï]Ÿ›z>* +¾ME3¨Q14(náÞ°ü·o”b]Œ©òÒäMáâeÒ*}±lœ³ÏÓŽJØñµg*B¾ÌjØJ˜YVÇ" ó—R{"3Im +#0¡dŒ¨·"Š.Q­ä¹é‰:£IXQ½¿îŒ@ B3zÝÀAîÝ5†üB�, 4â�Sg0�bŽÒ䬻C¿Œa^„LDf!bÂ%^·l¥²x ª—ì|"TÊâв¦(4ôPåÆpóJÓ¢uÎóÏëY¼áŽ.¬xî˜2Á/ìR\Pú¿tE_–%Ê:+·óèÁ&Ó"çR\k/ÝŸ®O‰Ùß^sj­K¿}×l·¡7¨¶ÛØR4û÷ÇSx|ïÓwh ðè+Á=^}‹7!Sé}š£ãyý/ľºè«EsÒ›Mžíë�¨"Š+ÂWñ%§„C‚,9¬çên=O³�ôºZºÑ-BD}B·H�Â`êÈ>‚/;âá…¾ÉDaÑWþ_D)˜*½»f É2ì_ ‚µå +endstream +endobj +230 0 obj <>stream +H‰œ–ËnÛ0E÷ú +nP̒ǨîZ´›îŠjW…ã8�‹ØibÍç÷ò¡Ø²¥D– X2Å™;œ3"G±æ® J2l&¤ô¬ùRઉ5‹"Œ(Öü+~òùžíæû—RYAœÝ.Ë™VÞÇ•½b坿[á˜Ä×1m¤ ÇÈ×¢6Ò°fúàPgÎËæOñ¡i S!€JØh®ÚVÂFµZ&sLykã’�"AÞ‚NÏÛ Œóýp]ʼnǒÆ[a)JRž¯”�ÖSŽ_›â ÊÁF!HôÔ>ë8¶.j*È?ä»™¨d{sW|/>7C«®U —zpÅZTÎw(Aó´BôÞ%NV+üån TŒO*§Xô,ïy†åúœK_—!.˜_åùJ +_™Ìå:sN»?Áƒ(„£·ðŸñÄ›€Çxl‚©2 êXC/Áó3ÞÄçÊ¡ÍÌýh„:#ôÒס@IýèÌt�'¢ë �cõCè‚&]Œ®2�Ð$t•ˆ³EWÕµ�Î8QÓÅèHetñŒNÑ;HX×ÏÎŽ`׉p"»¾¸‘ƒì0ß»¼ŽggkQMCK¢Kß:M¸ËÐuOЏO$?ò49Þœæ†j‹‚îNOià¿ñ ÓC a`±x„¦Ä]utÛ€'u.<æ„ì,}bMô«ëÁš8Z÷5alÈǤ¢0ðE‘*⼖8¦¹‡©¾´äй£’ ySm·$Û=¼œ‘ÖŠø�Ò ÅK+j¾�¿Û ŸíÒØnþÀnãÝ2޳‡9­—eL&ìo¼$‹U‰ŸM2.á›é�qÇ9€-1íŠCÀZJÚwFTØÑJ'´_G²Gû�¬­ ÖÖV_ûÕ2#�3¨…†Öêb„ýHáµu‡sKUÁsÀe.#ÌYÇ?•F#± àCjŸö«íj·zÜlÙj³{ž/×ëýf¾ßÍWÏË-º`v³Zâá˜Ï #„USÚ"Brìk»­ÏúmûílžWˆÎÙ�æ=H³ _»SDxŒê8{:p…ƒÝżR§BúÀJ<¹gdÿ�à†è +endstream +endobj +238 0 obj<> +endobj +231 0 obj <>stream +H‰œVË’Û6¼ó+pI-GX ^sK*¾¸rIoq\‰ë¢‹’vI*¶ÿ6WýE D‰\Ê–´[%�Ô`ºÑ= fIþ9"âd$[×V³ü�(¯ßç·B²O‘vÄ­d’7Ì.ãÚ A¬)£çè÷Þ¢"Ò¸+jöFE‹: £‡jý}HŠÐ7‘𸠟¾èÛþÅî,jÑ�ÒöÉ%ÜWõ¡ŸÂÎQªdÈÝa +ÅL³_C¹œœœ–ýæâ{¸@Ú£;¯8GÔaDŽgjŸ…ö·²:bÿ 0™î¦¾ +endstream +endobj +232 0 obj <>stream +H‰¬VÍŽä4¾ç)ê6ÎB¼¶c;\¸!Eì�á�îN�‚ÒÝ3IšŸGä-¸ö[Peç·{³°š�×ï窯œšŒ; Rhž[h¢tØË”þ5‘ÖŠçîq?Êkm¹¶�{éxNòÞÁ9à´$5“® vm}ÀSîpý‚žSn§HrÅ�ôäŽÑ�£ÜHø#aëþä?Ÿ"g¸Ô¸j†Uâ¸s¸ÓЬ}[D¡8F7^™þ�V…Åp„†â„š/øWì#qñ+éÙ 'Wh1áB8(¾έ·eA[çÍ('R2ƒR©ófŒô‚K·ƒ5ÊËÜJÉ…A¼c¯ð}±JŸrÏy¦æÜ6i}îa•ЩO=,6pô†>eEØÁŠ_ ø�y¦oNAŽW.B¦�€m�g@ðr‘ª� ›IžÚ¥W¶*º0j)ƒ8r+Ô# +¡ø>„*),í$eOªø b)p�åcánšâä)Wv KDúÁÁïÑÏÌpˆk,û&ÖšíãD±·kÝÕ}}9wP�Õ¾¿Þª%î›*þ¥ø!’–g)…ޏ‘Q3ÍÈ(ƒ}yh+8<]^om,õm]ž_®MY·hìî& Ïr5™K½9áM5—¶{»V^!IÏðDriÔ(œ’0õˆ”!£æ©ÜO)@ ·þ6篗k‹it°«ºK��ž®ç +šú·ÃHY[Öªu×]wCÇ羂¿ázŸ·ð¾µ}�®©?É59¾µz¨¨Zëj7%±áŽýÌ– X>ý…ë>ƃ²‡SuÚfôÛõõÙÃFkØÕÝD˜ü‰Q2@‰PñÎÇ¡& *¬ŽCåSR¬Ü5Þ0ÆÑ—„oUœp Äk^*$D°RìD)*›r4Áö3Ã\2VÆký¦ç ]_…Í{õ%” õ{óxÏ2},P‰–¹¥;1_û]�Ì\ ° Á¢õÀzj"1d{MŒ”9ê�Ó¸µØCóZï2ì7O »í Kãût½ N>oÍáä’c9IÍ•ú·IbúŸ‘µÈ([´úßæP`ÊÅ�l2%9»gJ"Æ!aBáa?;ÜH‡þ`�aÐ â8Ë'^¤dVDÑ¡ëÉÁâÐ͇jö¾,.gYƒÎâÔka ©,XzãÅ{™!è…Ô"æÉŒk!ã}(܇Æ�]G6ùЦÓí*È+tÙLrê÷<ô;Ž%s£X+,fvÁ&ÏY_6pð+b’Œ³Tð̾^1 +zuݹpsŸky_* + SX«ˆl0ÒzøbU‚*3ôÜvcÝ8Åí½›}Ž!Ao«Wdê þµ1× ‰î«‘Ùî *µ4§5µÄøº{ µín\„óù�Á…Ó™�ÝjF·ñ~ô)è+MÒõ…Æ\¹ÿL�h7Œ8ª¬jhzÍ §9U&†AoGh{!øG€×I¤ + +endstream +endobj +245 0 obj <>stream +hÞœ–wTTׇϽwz¡Í0Òz“.0€ô. QfÊà Mlˆ¨@DE� €£¡H¬ˆb!(¨`HPb0Ѝ¨dFÖJ|yyïåå÷ǽßÚgïs÷Ù{Ÿµ.$O./– ™'àz8ÓW…Gбýx€¦0Y驾AîÁ@$/7zºÈ ü‹Þ Hü¾eèéO§ƒÿOÒ¬T¾È_ÄælN:KÄù"NʤŠí3"¦Æ$ŠF‰™/JPÄrbŽ[䥟}ÙQÌìd[ÄâœSÙÉl1÷ˆx{†�#bÄGÄ\N¦ˆo‹X3I˜Ìñ[ql2‡™Š$¶ 8¬x›ˆ˜Ätñrp¤¸/8æ p²âC¹¤¤fó¹qñº.K�njmÍ {r2“8�¡?“•Èä³é.)É©L^6‹gþ,qmé¢"[šZ[Zš™~Q¨ÿºø7%îí"½ +øÜ3ˆÖ÷‡í¯üRê`ÌŠj³ë[Ì~:¶ wÿ›æ!$E}k¿ñÅyhây‰RmŒ�333�¸–‘¸ ¿ë:ü }ñ=#ñv¿—‡îʉe +“tqÝX)I)B>==•ÉâÐ ÿ<Äÿ8ð¯óXȉåð9€¢yPÜõßûæƒâ›¦:±8÷Ÿýû®p‰ø‘Î�ûçLg ù‹kâk Ѐ$È t�!0VÀ87°ø�`ֈɀ2A.Ø +@Øö‚JPêA#h'@8 .€Ëà:¸ î€`Œƒç`¼óa!2D�ä!UH 2€Ì d¹A>P ECqB¹Ð¨*…*¡Z¨ú:]€®BÐ=hš‚~…ÞÃL‚©°2¬ Ã Ø ö†ƒá5pœçÀùðN¸®ƒ�Áíðø:|�ŸÃ³@ˆ QC â‚ø!H,ÂG6 …H9R‡´ ]H/r A¦‘w( Š‚¢£ Q¶(OTŠ…JCm@£*QGQí¨Ô-Ô(jõ MF+¡ Ð6h/ô*t:]€.G7 ÛЗÐwÐãè7 ††ÑÁXa<1á˜Ì:L1æ¦s3€ÃÌb±Xy¬Öë‡ebØì~ì1ì9ì vûGÄ©âÌp‡+Ç5áÎâq¸y¼^ oƒ÷óñÙø|=¾ ?ŽŸ'Htv„`Ba3¡‚ÐB¸DxHxE$Õ‰ÖÄ"—¸‰XAàPð4Ð407°7ˆÔô&Ø9¸$øAˆnˆ0¤;T242´1t.Ì5¬4ld•ñªõ«®‡+„sÃ;#°¡ ³«ÝVï]=iY9´FgMÖš«kÖ&­=%ÅŒ:�Ž‹nŠþÀôcÖ1gc¼bªcfX.¬}¬çlGv{ŠcÇ)åLÄÚÅ–ÆNÆÙÅ퉛Šwˆ/�Ÿæºp+¹/<jæý�$.$…%µ&ã’£“Oñdx‰¼ž•”¬”�TƒÔ‚Ô‘4›´½i3|o~C:”¾&½S@ýLõ u…[…£öUo3C3OfIgñ²ú²õ³wdOä¸ç|½µŽµ®;W-wsîèz§õµ  1º7jlÌß8¾ÉcÓÑ͉̈́›È3É+Í{½%lKW¾rþ¦ü±­[› $ +øÃÛl·ÕlGmçnïßa¾cÿŽO…ìÂkE&EåEŠYÅ×¾2ýªâ«…�±;ûK,KîÂìâíÚí°ûh©tiNéØß=íeô²Â²×{£ö^-_V^³�°O¸o¤Â§¢s¿æþ]û?TÆWÞ©r®j­VªÞQ=w€}`ð ãÁ–嚢š÷‡¸‡îÖzÔ¶×iוÆÎ8ü´>´¾÷kÆ×� + E �ðŽŒ <ÚÓhÕØØ¤ÔTÒ 7 ›§ŽE»ù�ë7�-†-µ­´Ö¢ãà¸ðø³o£¿:á}¢û$ãdËwZßU·QÚ +Û¡öìö™ŽøŽ‘ÎðÎ�S+NuwÙvµ}oôý‘Ój§«ÎÈž)9K8›vá\ιÙó©ç§/Ä]ëŽê~pqÕÅÛ==ý—¼/]¹ì~ùb¯Sï¹+vWN_µ¹zêãZÇuËëí}}m?XüÐÖoÙß~ÃêFçMë›]ËÎ: ^¸åzëòm¯Û×לּ302tw8rxä.ûî佤{/ïgÜŸ°é!úaá#©Gå�•×ý¨÷cëˆåÈ™Q×Ѿ'AOŒ±Æžÿ”þÓ‡ñü§ä§åª�“f“§§Ü§n>[ýlüyêóù邟¥®~¡ûâ»_é›Y53þ’ÿrá×âWò¯Ž¼^öº{Ööñ›ä7ós…oåß}Çx×û>ìýÄ|æ쇊�z»>yz¸�¼°ð›÷„óû + +endstream +endobj +234 0 obj <>stream +ÿØÿîAdobed€ÿÛ„    +  $$''$$53335;;;;;;;;;;  %% ## ((%%((22022;;;;;;;;;;ÿÀSW"ÿÄ? +  +  3!1AQa"q�2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2�‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?õT’T¬ë6¼¶a:öý¥ïz`É-Þ£‰æ—F�ðÄʇ¡tVêHoºªÜç÷9¬îC~”)\WVúÙÓ³œÜž�{ñr(m”ú¶  ‹ƒ q&‘¢lòF_±±ÊrYy™T"xFóá°/å¿2)îR\ßÔÛó¯Â‡äUv5£§Ô°¿é9Îxˆv‚ ]"0—Aª¶>gÁ–xŒ„¸ XRI$œÂâQÿ‹¿ü!Oþ}µm¬J?ñc—ÿ„)ÿ϶­´”¤–_Ö<ÌŒ.˜oÆ~Ë}jºö¾Ö1Ã_P>´gdáÕ‚(ºÌq‘”Ú­²¦ °±î†´µýÚ;$§m%S¦¿v n¶ù“ê^ÏNéúLØÈû–6&N~N=w#©»§â;u•U[+,eMqhõ]c\\Hð’ž‘%‰‘‘ŸÔ:ͽ7$ácâS]·[[Zëë‹¶5¾ sZÐ®Š…Ýcªãtî¥�mÁù�7&Š›”úîuD3è‡mySÕ$³:ž^E=O¥QSöוm¬¸@2KÞ9ãP²ÿmõºFF#ÞÖªÊýŸSÈsí3M»b#Òvï’Jzt—1~vXë÷`Y�“UTUŽkPÛœýûÍŽ?lí=s¬çÓÖ²°±³,ªöãÔþŸ‰]M°]s½MÍt°˜ö�Î5IOZ’æ:ßWëXC õ4>š±_“ÔqZ.k][,5že›äxÂ;:ÆEß·mǸ>ŒlzîÁpüsnᦲuÕ%=KêþsìÂv]ùy9.2Û}"¦4–îw¦áU{¾ò³:Ö.¬þƒ}w¼;¬=õ3Û@f€ú´ögú©)ìR\µ½k9ßU:~w®êò.ºšr.­�ÏÖÏJÒÖmp��‹Ô³:�=¶tüË]—nMT×~UAŽ¥�fÓY­žÝy„”ô‰.s¯dgåôÊšN5–}¦ž¡�–_KíÔv&GˆRéŒê®ëy˜·u;­§Ðpae#ª×9Á嵃۲Jz’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”± N€/<èùõ�¯-ȵŒ­Ô‡zNÜËP,kÇÄj½y§^ÀÉè?Y?hÔ^Ê^ç]Cå ¹Àn{!¿›¬(9‹Þ1�%×ø(ŒÏ5ŠøseÃ(â7ö‡ºê½6Œ·Q’ì‡b_Œ]é^ÂÑ£Ä9ޤ:8^_õŒã×›öJ©¦·cËl²‚ ^L«ZÁ òKë\ÊêÙDÝa}u¹þ›лM£ú ,•[>Q2@ãÝßøOÃ2òÑŒòäâ<:c„oúÝw:SÙýFë�éØYæ›r­ºàqñénç8í÷�b-Œß­]W.qz ln뙓µ¶0L{+.¾2©ãtÊ:WÔ¶uJIûkXrk¹†uàU·ú¡¤Hñ K¬tŠð:6fÛ•ÑÚÛj³»š5¹®=ÃÁ$© 2UÕG‹Mèþ×+™—'“›–_lJY3K }Ëà÷ +ÕG§Xý§µ6¾«µeÝÖw¬ò6²Ö²¶¶&v5šüÊÜCǹ™W{>…¬kÛðp�ˆ¬DT@²|K‡Ìd92ÎfÇg䀨ƴ J?ñc—ÿ„)ÿ϶­µ‰Gþ,rÿð…?ùöÕ¶œÄÓêÝ5�OØo±Ô‡9�2 ƒ«{loÒrÕW#¡ädãÐ˺…®ÈƼdU“²°àCKv†m�qì¬už¤zf Êm^»·×[kݲ]kÛX÷cW ãu›ÿhWÓú†#°ï½®~3ƒÅµÙ³W´=¡¤80BJobÕu46»îvM‚f×´™> ,k¾ª5Ø÷àãç_�ÓrK�˜m¹£yÜñ[žÒæ{J¶Î¸ÇôzÏ¢CjeÏ4î}=±º;íW_—MxG6ãéÒÊý[5 n?rJiftO[1¹øyV`åŠÅ/²°Çµõƒ-e� í'B™¿W0fätû_e¿lw©“’ç~•öhE›€í%…Õ:¦cªµ½4Õ‡q¶ÙkE�„H{ªƒáºUlÿ¬Öaäg±qzi¨dÞ,hpµ®–ÖF±»÷’Sk¢ØÌÊs3³mη9¸ÁícÍãk�µ»œF’S¿ a¿®3­;Öc6úZzeÀ¶Â?x5Ū=wëª,}O¼Üã-f…•4n¶Ó=˜9M×~°SÑiƾÊ�}Yls«:±›KÝdw ke%2»£\z•½C6Ìgä6¶[[Y[šáVí¿M¤�¤Ts¾®âfädäYcÛnC)kÈ©ôº»+1£¥êÅ}R«:›0knöÙŒ2Ùx ´´¿`ï™Y•ýjÉû z¥ý9Ìé¤�÷²Ö½Ìk\k/u{Z`¬’�AÓZs©Î²ÇYu4;È8<±Îq¿±SÁú¯ƒ�OQÇÇ}‚ž¥ °�EM-sv×§v’¶ÀÈ:ƒä°GÖl±�v{ºk�Óñì¶»n®ÖºÀÚ^êßg¥µº ³¡˜IMª:-õôûº}¹ößM”}ž½Ì­¦¶í,––4I�ÃêÞêX]@9ûð)2½684±ÏËCŒ|UŠú­Võ6àVÝÍ~(ËeÀèZ_°üPõ‡šº•×±ÌgL´Pí¾çXç2·´1¾$ØJ`ï«•~ÍnYT+É9uZK˜ÿPÜ„@qG·¤¿'¼lÌ«2]õä KX×~‰í±­†4�£OQê^�׿ôÿ²ÕUNµ¿¦mŽ%¢v9­o´Ç™Mo\e}#©úD·,ã�Vá-ûC˜Ñ¯òw¤¥;êþë¬ëŒs™�Ö>¶ÆÇ’6‡¸~ðnŠÎ?O®Œü¼æ¹Åù‚°ö˜�é4´GÆVoRËËÉêçcQe£ µdÛ¶ñC_¼¸1®ö9Ä4²buî´º¦xéÝ7'=Ì6 jÝi¬'h˜””ÛIcÕ×rkÉÆ£©aFf»f=ì±¶Öl#pcà4´�4ÑO«fff_U8CìØ×»̃hX.íóñINªJŸQê-Àû6æ>Õ‘^0ƒM“îùBYE´u,NžX\skÅ“£} ÓÇžä”ÜIgYÕlûNv&>9ºü*«µ­Üê7Ã�±ë&6}Ø”àÖëŸ�Ãn@'oÙØßiõ•¼m ø¤§]%•ƒÕó3r01qò,Ç~A´L×Ë…{ŠXÝ~‹úîWFôˌƽ·6¿F—´ïjJuRXÝ'ë%S>ú©s‚÷4n#ôŒ ÞÛ€páG¦ýb».ü*²0þÎ:�#í´[íhkÈx inŽINÚKÿYr]�oPÅéÖdtÊK·d‹×½µ’eU.hƒÜJ½WX¦î¡�‡Sw³'å×p:mk@�=Ò’�–]ýq”³«8ÒO솇;Ü?I5 ´ÓNa ë }öQŸ�ö'3f‡ú‚Öf $�G„$§e%ˆÎ½žìoÚ³Þ�°Ûê:Æ‹½ Òýþ„G Ý)$§®õO­ý?¨íÆ´ä°K½:ñœ* ê÷:sY½WëåÝOb3°û×½ÿ¥¸mšÛ‚ô{+eµº»s \ÓÁB*é½>Ÿæ±ªdDmcGhíà –)’k![ƒ«¯‡â\¤c—“Œ²â®Àûv{ˆ¯ì|§YúLŒ–9¸´·qy5äÿ6ÆžûÏଃN8¨^ßUõ�c˜ Ç»sÎ�™_´y’½rÜl{©8öÔË)" nh-�:/3úÓÒú+rßû�êË›m@Vö {Xò~�¸ðPdÁí‹=þŽÇ#ñqÎå0œ'е¨?xÖ�sÒGGêWëÃÅ­‡èŠӣǶxìå——Ô-ÅúµÔznS½L¼SöÏ{E­ƒ£Ä±ÚüÒ:®_Jͯ+奤odÃ^ÙÕ®ò+Ð:7Õ¼ûº£úß[{]cÜ-§‡sà6±Ä� kt ðÈr#•pžÜ=Ú|ß#Jržl¼xL†|Q?ÎK,e¬~£säôXl|sÍ52³ñkCU„’VÆš<ì¤e##¼�Ÿ«‰Gþ,rÿð…?ùöÕ¶±(ÿÅŽ_þ§ÿ>Ú¶ÒC—õ�+7¦q,¹¶ÓkX\®ÖXFãÆ�A«©çõ\\üúY‡N°ÓC_ê½ÖXÝ…Ïp ðÙsšÆ—8†µ¢I:�V×um¶§ +xcÚdx „“F®´y¯Ù½z¾“‘Ð�Sê¸Û]yæÐ*¹îvçU·4;�§šÛÏé¬Íé7tÇ<µ·RhßÜKv‡+5dSq°TíÆ—šìòpÇÜQQ"žx3ë5ãüfSö[ê~F]Wû,®¿¤pîð*¾wÕ¼Û:ÖWYªºîµ¶Ðú(µÓ]µ²¶²Æ¸ p"XïÒÕuW4º§‡µ®,%¦aÍ;\>E;®©–²—< -“[ ÕÛ~”|%%p›ª6:ynáæôN¥Ôz¦FKï¸þ€Ä¥›iuv ×nú2a¿% n‘Õ>ËÑñòÃ,=6ç¶ç—¾‘]´Öèñs\Ù ~Ëk¨cƒœ 1.q†�™SIwyΉÐ3º_[¹ÅÍK¯Ó‚gÞÆ¾Áo¤Gƒ5Ú||~—×ßÐÿæûñëÆ©ûë»0Úú+ç;Ó­­úE®�%u[]Mßcƒ KŒ qÚ̔ͺ§ZúZðm¬=“¨�¤üa$Ñ«£]ÚÌèý=™MÌmgí 5ûß7`öîÛǒħëzvWGf5U3&܉Í}¡ÀW‘cß-©­’í¯àžWP’Hp®éÙý?¨bætêe5b Ò^+xkǵÎOBúPÊ陿Ó^>~nS3jd—×[©ôý&9Ð747âºäRË«¡Î‹n5·]C »î”D’Ac}G‹’ËzÎn.N>^q è{Zñsl±Ãhˆee»ê… é ÇÅ©�F‡âºëïSØëˆ=ôt-êޏPÛ&Â÷ÔéÖÝîv +ÊWj”eâ^¢û<ßQéuûsÏN¯¨Qe4×Yu­¬±ÕºÇ8Çò‚ÔëØwçt\Ü

­Gõvê¨ô«ù˜™X»¾ž1qÍ�e›Ý’KCGµ¢¤êº´’SÌcàýbÂéNè4cÓea¯¦Ž ëa­©äßVÝÛšB¬YÒ³znOOÊéµ Æaâœ+)sÅo,öØ×;Û2ÍA[é$§Ÿý“Ô¯éÝj˘Êó:³\+ÇÜÖP¦¶¹ð&$ ôÿ«6âãçt·1§?hÉ™º·¹»S‰ÕíË éÂé’IO+�‰õ³/¦SÒÛMT]K«Ïeߢ{kîj?ÝÝ©.©$”¥[¨áe[mÚv;‹-¨èö‘âÓ¬y«šF¢DHЮ¯}KêŒÍfWNÈ¿/#"Ã6<†šÚ/·püŠ<’”@1�vç#Ëòùå(fÍ÷s_«‘ëÅôñ{.±Ôèé]:ìÛœ¦Ó±§—?óZ>%yGJÃë=F÷ý‚—^wo°�3%΀ +ÙÆú�õ“«8;¨\öVÇ=�uîs�´hæµÚí%zL鸽/ +¼€#沫ʻ“Ólß�Mymt´bÞc!í$4o&t]<$ZӡΆS ,Ýø}X¹¨ÃÆq‰Fø®õãýîÚ—Æq{=¯Y}¶zŽÎfKKM”‹cÅ“ôÜô;‚Õ¸ѨN§â�kA$ äŽèn×eç#8J#X I‡•m°½Z}FbõlŠ+ʦü‡cÈ’é¶#â³Û~`é¹7QÔ[iuU@®ÇYc,sÀ6ÿFAÕ¼.©0cDÀu:r‰‡�ÅQç»Æ%ꄵ£¤kÓ¨ðyüÓ—ŒÞ£�FMÀ7ìf«â÷´Ýie›K¼@ã„<§f3¨ÛŠÜáŒ(ô~Êr-x. �[¹ÒÓ+¥�à‘kI€HàžÉ~?ËUGœ|`é¾›ÔEíýSö¼ÇÚìÉê�Æ96W“^nÓúq]f†�ïLU¸8’Ý>�=á>V^Exƒ&Ëæº²2÷ãú¦›- °† +œÝ\Z8ou¤z KÜ×^çbºï´K[»~ÿV=Xݾ}¥i–´�H�FœÑ kf™2sXbaÃ1ÆÝ+zÒï¦Ï8÷WFoXµ·YVK±[u¾ÇDó!„ë´�’K³*v63ó�UÙ‹êý¢û_^ëÜFï{tA ã^PZÒd€O“š×pxQöüVt …ÐSgÓZ<Îk³‹:�§2ÝøX”YI©Å¬6–½Î³häÞŠyÖg`ŒÚ¨Èµÿ Ç±ÖXKöÚæ]ct;}‚`pº8¥/oÅ��qÄÄpút£ÃÃáýSö¼ØvY¦ºëêʮ̩�Øö:Ç1…§{=WÉ÷Dù!å1»X2r-âu?I¶:× µš÷ ÏžÎtWNÖˆhs'-i<‚—·â‘ÏQ±²�íw[Ò›D¡æS¤’‘¤¤’I%)$’IJI$’R’I$”¤’I%"ÉÉ£‡ädÌ_Y†í¼¶�Á�ùí Õ[,icÚÓÈ:„Ÿ…ÓèøT¶Š†»Z9>$òTYq†6j#R<]CŸ‡' ÒŒ ³ä‘>˜Ãô¼m5lmlmlÖÖ� )$’•ÏÝÄ£ÿ9øBŸüûjÛX”âÇ/ÿSÿŸm[i)Îë™XãœF͹Vú{½²k¬;w–¶NÝ%g‘Õìê3íV {g m k·5£G®"\ÞDè·2qqòªôrkmµÈ;\'QÁhNé}=ÕUK¨ießPý×xƒÊd¢Iß·VÞ.c #À8ªbRà> EÙ>;RÜœ“�N=�ÇßSï²ç48íacv´?;R±zvwR8Xx]Ç2^ÇY$´‡Li}g+&ÑÔ1k¹¸ôââz¶¸´9Ïõ‚=ڀŦ:vÈnH¥¾³@ |jtðÓD²ºn[Å™42ç´mÂ}§±ñ˜Êˆ¾¨Ž|#$'Á\1ÔEq¸‰ßN¤¸ÿoιǶºÓ1ª¦öîõ ¨[î26·óDwK/©õ`3r(}u׈êt=’\mmns^éÒ7öZÖô®�uŒ¶ÜzÞú€kG¿Dy�Ùøx¯Ô× Èu²>‘lm'á´!Á.ë¾ó€} v»Œ{Ç‹ÎèëÒܳŸ—ŽìÌlœ�_Q§Ñ¹•K‰ºFÚÁÔËtAÅêäœQ�Ö½õu 1÷½ 8T÷ q wmÅøY§­K_êíõ �ŸC_äΉUÓð©k[U `cýFˆ‡‘³wÆá•ï§ö sx£ÖGHÄx8MWsÑÈÄê}Lý“&ûú²¬¾³CY*¹Ž™Ü}=RÂÎúÑ‹öªékÛ~;­¨;`kl0êÚݯ$‚ �ж[‡ŠÁXmM—Ôú.tî#㸠³¤ôÚ͆¼v3Ö¯ Ðã.8“à‡´õµ'™Àx¿UgK€"¸¤kC„kàǤåœwï±ï¶§–Z-`­ítm-nœÊò6.>-~–=m©’NÖŽI䟊ž.…µrÊ2œŒD�ƒð +I$‘X¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)%òªI)ú©%òªI)ú©%òªI)ú©%òªI)úBˆÿž^?`§ÿ>Ú¶—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ê¤—Ê©$§ÿÙ + +endstream +endobj +243 0 obj<> +endobj +244 0 obj<> +endobj +248 0 obj <>stream +hÞìX pT×u>÷¾ß] ôƒ$T䘷¬¥V?ˆŸ€‹EÒ +$ ¶„d³‹í²+íêÇ,¬²²e»Œ\ì‚W"UjÅ™8¶‘mp#ç aG¸LCIDÔq—;�‹k§©2Τ–'žš¸Mƨß}o¥";ÉL§ÓÎô¾wÎ=çÜsÏ9÷>½·#¢ê#‰VÞÞX²ªôÒTšóÀ�-=ÝÆK%'O±,"eCkgÛÞï}´Ñ$Rë‰äÝmÑÞÖoì_‡q@ϵGBá¿9ÔÚD´ø Œ¿ØEæ"ç—‰œÂ~KûÞîûk*�a »t8k åöåöeb»´7t§t§ºóÏÂߨÚyfzCQÖMðÿZg<Òyû÷?¿›háÝ7Ónfƒ¤ —È?€&g–SX2R…áS®í�†AÞ_¿˜Q=ì•j¥Ìì£ÿµ×åOµ”‚Z˜Ÿ?ÌwAú5ãþ$¾NC4ÄÇlZ ˜�jé=e’VQÜÒ¯¦‡p¯¢g'èÏ,Í&j†½Þàå°µ€3+ưøŸÐ#ˆý!ãùE˺qk…‡M|L™„^Ä;H/Ñ;ì|¤Ça;G—Å,D¢ú˜-õ³Ÿ²i^-ë#Îx!ß¿¢·èßX+g v>™üa+{µ>øL€.[QmgQcqöbNq‰¯EÔ?̇¹É/J¹\™T3ÕuZQqœú T(¢ÝF�X¹™¾4Õ¦¿gœ5°&ÖΞ`ÃÈa‚Mƒ>âE|3º.è«RPN•¦ìQžMªwhOë*b+¤Ò2(ŸÖ *Öh@Îaº—°èAÐCèåŸÒQ¦gé$�Ò«ô×bMºBïÐÇèNHÔµŽ•±� (ΰGÐ�þëè{Š�±W‘ßkìM¾UÛEõv–ù“ü,�ÿ-—OñŸó%’Òn©Yê’ŽK§¤×¥×åmò°ü¬ü¶ü¶ÂÓêT¦š¥Þ£öƒ4‡¶G{DûŠö´öг˜£®BÔUK;QU/*yˆSÂÚµQÐYz4I?u€f’•*cU¬šÝ +°],Èö².vÿ\EÇØ ì;‹ZÞýˆ]aÿÌþ•}`ÑÇ\å9Ü3W_=oä;ùþÿ:Š¿ˆ9ÆÏóñwP㿊S¤L)[ºYòIÕ &é.é~é 4"]”®HÓØ·TùV¹\¾C¾µ_’§äŸa'¹")ùÊZe¨]Ù§Pú•gp¢§•i5ÕêJ¦ºHݨR�ªcê[ê'Z¶–£-k¥Z£Õz´SÚ”öž~Ú±ÅÑáˆ; é­¤oßðô¾ŒÓý]~�ZBKØœ†/Iið2ijÇSµ¨£ƒ�‰ì´F¶;õOô±ä :ùí”Ò,¥hïÓ Ö%?Ì^”ªé4×zØy)(MKÇ•|u£ÝOþ¤tJëÕ‚Ú{Èô#éq¥]+f[”~v‚oÆg ôKv•þ+wót‰£Ã¬‡tÒO³xÖ&øRÖ¯<'�‘‡%Ÿr€};˜§LJ�ÒZʦTZNËpÖÊp½ëÖ¯[³zUéÊ’â¢BÏŠ/,ÿ|Aþ-îe.céÍŸ»)oÉå.ÎÉÎZ”™‘ž¶pAjŠÓ¡kª"KœQ¡Ï]4Ì‚ )¸·m+cwŠÐuŠ i@U=ßÇ4‚–›1ßÓ ÏÖ<½¶§wΓ¥›hSQ¡ásæßU¹�q¶«ÁùH•;`˜Ó–¼Ý’åk°— 3 _n{•a² á3«{Ú¾`â�¦8+Ý•gQ!�:S ¦@2«Ý�£¬ºœY¯ömå¤/@Vf­»ÊgÖ¸«D +¦”ï …Íú¿¯*Ïå +š¬²ÅÝl’»ÂLóX.Ti-cª•¦f-ctˆr¨ß-¼�O§æ '5ì‡îö›R( ÖÈð˜[ÝUæÖ¦r‹ +ÇÙ M~ÓQ9ΨÉŽjgúFkúªªbµÌJÿ!Ë}1Ü?0•'%|¹†&‡ s¸Á½Õ%î�‚Öíð»�µÛ7`ˆ2vø­ +”å– I¡eÚGÜ>¡ Þk˜w…»=qo›µ$aÒŽ^×™%µÞs3?¦ZŸ‘hò»]ææA#ÎïЈò5ÂWŽ—aÃŒöUªÕ‡óÈ.ÛnAÈ[¡ä1Qý˜±¡=fCÛþêwèÎYèÿ¿mн†5^�=H�n tƒgÓ�ZCC³k)ÿ‘Ä$€œÕ» ÏNæ±ÂÎÅáE,ä­!ž~õi÷_Áx5ø>»VýQÌ¿¼•Æœ:,£w³k¡Ÿµ7`ý<<ŸoèÅ3ð 8"�´k¶Ö¹Gmü.?YøM]ïÃÒ“¶Ë�Ó~kl ¬ùÝ¡O÷ýý 7ß|Ûëöù-ý,8UœOÕÞskßçÇý‡9ù‡I$ÇêÚùÐ6æì¿ž�9ýC4! öØ’·€_é +µHÙÔ¢o¥°7•ª«QCf†îÝfŒó/žÙ¶ +ì ÅØi›½h³“6;a³oÚìy›=k³£6«±Ù6›mµY…ͼ6+·Ù&›•ÙLµ™l3ÉfÌ{;øÛÀà�ß^^¾Œ§�À7�£À3ÀÓÀphv[1¿e‡±Ù)›½`³ã6;f³glVe³-6»Õfëm¦ÙL±·y½àoo“À÷�KÀðmà,0¼ ôám«²YŽuƒã¬Ç[£ >« >® ÑcÚ`TlÕ#ÚàÝÚà.m0  úµ[ôeº¡ß¬ß¤/Ñsõ=KÏÔÓõ…zªîÔu]Õe�ë8£æ"©Ž×5V°:óB Õ5æ/ÝãÌÙ°ËTÜÌ̬£º¦Š\s½Ç䇭/�q63ÊØ—Í爱™G�ä%y @9žß¼rç�êê{ÏÓR¶Ž4ÜW�iK¿§ m#´ƒ–vPh-m.;SO«êBýÁÏ‘ç³.æù}/æëåÖûGuªTÞmó1žâD=Á�çÅñ$Äeq¹ü×'”É ¹üWŸˆÀö;¸àÿiŽþ�’¸R鉹ï«N¢¤,Q.F¶,C>œ”UÈÃIY£2‡'ÉŒ~L&eF»œ”9-d³z‰V²™¤,ÓJ^’”UÈ»“²Fqþ畱ÎÞxG[{·qÒ(-+[U„ÛZc{GK<Ökí6*cñÎbcK4jì^]ÆŽHW$Þ ÛVŠ ¥FSogÄhŒE÷wwÄöu5ûZ~û,_euÅm·yvvìk ]E;"mû£¡øªoj�P†c÷uÑX[ÌèèÂ�Ùîx(ÙŠï1b­7‹‡DnÅTI1´»—âÔAmÔNÝdÐI -.£UT””ÖB·>-ðŒQÐjùŠùqD(†¼…¢ ƒvÌÅê²Fð¼zp[žÿµÂʹJ¡kB&�ð2¨q£´1: íC„Bhk µüAkù�a5UÐm í„÷>ø‡“¼ËšÑ†u¢¬ßå]ô?ìß„ÊD7lÏ0:qŸUgR`@/Æ! þ!øDh¯5wtb—>{ßbÖ¬Ù.ÛOáOX*•ÐZˆ§(RÔïË»­ÿ×vÞG퉧ŽìNÛtUÏÓ­GòøÈã×}M{ƒèZ½ó]­ÔzÆ“Oø +0žïsŽ + +endstream +endobj +249 0 obj<> +endobj +246 0 obj<>/FontDescriptor 249 0 R/CIDToGIDMap/Identity/BaseFont/ECFBNN+Wingdings-Regular/Subtype/CIDFontType2/W[134[891]]>> +endobj +247 0 obj<> +endobj +250 0 obj<> +endobj +xref +0 251 +0000000000 65535 f +0000041729 00000 n +0000023106 00000 n +0000000015 00000 n +0000032719 00000 n +0000000234 00000 n +0000028438 00000 n +0000000461 00000 n +0000042501 00000 n +0000000690 00000 n +0000034521 00000 n +0000000917 00000 n +0000048470 00000 n +0000001145 00000 n +0000038900 00000 n +0000001374 00000 n +0000049243 00000 n +0000001603 00000 n +0000045593 00000 n +0000001832 00000 n +0000029680 00000 n +0000002058 00000 n +0000025303 00000 n +0000002287 00000 n +0000028181 00000 n +0000002516 00000 n +0000027666 00000 n +0000002744 00000 n +0000047958 00000 n +0000002973 00000 n +0000028695 00000 n +0000003202 00000 n +0000033748 00000 n +0000003430 00000 n +0000033234 00000 n +0000003658 00000 n +0000044304 00000 n +0000003887 00000 n +0000030920 00000 n +0000004116 00000 n +0000031950 00000 n +0000004344 00000 n +0000037614 00000 n +0000004570 00000 n +0000024275 00000 n +0000004799 00000 n +0000031693 00000 n +0000005027 00000 n +0000043016 00000 n +0000005254 00000 n +0000025817 00000 n +0000005483 00000 n +0000045850 00000 n +0000005711 00000 n +0000042244 00000 n +0000005937 00000 n +0000047701 00000 n +0000006166 00000 n +0000046106 00000 n +0000006395 00000 n +0000033491 00000 n +0000006624 00000 n +0000038643 00000 n +0000006853 00000 n +0000047444 00000 n +0000007082 00000 n +0000025560 00000 n +0000007311 00000 n +0000037871 00000 n +0000007540 00000 n +0000035294 00000 n +0000007768 00000 n +0000039672 00000 n +0000007997 00000 n +0000024790 00000 n +0000008224 00000 n +0000027409 00000 n +0000008452 00000 n +0000032462 00000 n +0000008678 00000 n +0000030405 00000 n +0000008905 00000 n +0000025047 00000 n +0000009134 00000 n +0000037358 00000 n +0000009361 00000 n +0000040956 00000 n +0000009588 00000 n +0000027107 00000 n +0000024209 00000 n +0000030194 00000 n +0000009813 00000 n +0000009870 00000 n +0000046879 00000 n +0000029211 00000 n +0000010101 00000 n +0000010158 00000 n +0000040700 00000 n +0000010392 00000 n +0000029422 00000 n +0000010619 00000 n +0000026333 00000 n +0000010840 00000 n +0000040442 00000 n +0000011063 00000 n +0000029936 00000 n +0000011294 00000 n +0000040184 00000 n +0000011525 00000 n +0000043273 00000 n +0000011756 00000 n +0000049758 00000 n +0000011987 00000 n +0000031435 00000 n +0000012217 00000 n +0000038127 00000 n +0000012448 00000 n +0000036067 00000 n +0000012679 00000 n +0000034778 00000 n +0000012909 00000 n +0000046621 00000 n +0000013139 00000 n +0000044561 00000 n +0000013370 00000 n +0000031177 00000 n +0000013600 00000 n +0000039414 00000 n +0000013831 00000 n +0000044046 00000 n +0000014062 00000 n +0000049500 00000 n +0000014293 00000 n +0000041471 00000 n +0000014525 00000 n +0000047187 00000 n +0000014756 00000 n +0000048727 00000 n +0000014986 00000 n +0000024532 00000 n +0000015217 00000 n +0000035551 00000 n +0000015448 00000 n +0000050015 00000 n +0000015679 00000 n +0000036325 00000 n +0000015910 00000 n +0000048215 00000 n +0000016141 00000 n +0000043531 00000 n +0000016366 00000 n +0000036841 00000 n +0000039926 00000 n +0000016597 00000 n +0000016669 00000 n +0000016895 00000 n +0000017121 00000 n +0000036583 00000 n +0000017171 00000 n +0000032976 00000 n +0000017401 00000 n +0000030662 00000 n +0000017632 00000 n +0000035036 00000 n +0000017863 00000 n +0000034005 00000 n +0000018094 00000 n +0000026849 00000 n +0000018324 00000 n +0000043789 00000 n +0000018551 00000 n +0000046363 00000 n +0000018783 00000 n +0000038385 00000 n +0000019014 00000 n +0000045077 00000 n +0000019245 00000 n +0000032207 00000 n +0000019475 00000 n +0000034263 00000 n +0000019704 00000 n +0000041213 00000 n +0000019934 00000 n +0000042758 00000 n +0000020164 00000 n +0000044819 00000 n +0000020394 00000 n +0000048985 00000 n +0000020624 00000 n +0000041986 00000 n +0000020854 00000 n +0000027923 00000 n +0000021084 00000 n +0000026591 00000 n +0000021314 00000 n +0000039156 00000 n +0000021544 00000 n +0000035809 00000 n +0000021774 00000 n +0000037099 00000 n +0000022004 00000 n +0000026074 00000 n +0000022238 00000 n +0000028952 00000 n +0000022468 00000 n +0000045334 00000 n +0000022705 00000 n +0000022938 00000 n +0000050272 00000 n +0000050354 00000 n +0000050437 00000 n +0000050519 00000 n +0000050602 00000 n +0000051397 00000 n +0000057138 00000 n +0000065787 00000 n +0000062724 00000 n +0000062884 00000 n +0000063570 00000 n +0000051286 00000 n +0000057076 00000 n +0000057113 00000 n +0000061736 00000 n +0000057200 00000 n +0000060817 00000 n +0000065864 00000 n +0000067329 00000 n +0000068591 00000 n +0000069774 00000 n +0000070716 00000 n +0000071900 00000 n +0000072945 00000 n +0000073981 00000 n +0000065058 00000 n +0000077856 00000 n +0000067205 00000 n +0000064291 00000 n +0000064897 00000 n +0000072780 00000 n +0000062504 00000 n +0000065094 00000 n +0000065337 00000 n +0000065565 00000 n +0000085603 00000 n +0000085837 00000 n +0000075164 00000 n +0000089628 00000 n +0000089844 00000 n +0000086076 00000 n +0000089387 00000 n +0000090093 00000 n +trailer +<> +startxref +90282 +208 0 obj +<< +/Length 26598 +>> +stream +q Q q /GS1 gs BT /TT2 1 Tf 7.98 0 0 7.98 42.54 820.28 Tm 0 g 0 Tc 0 Tw ( ) Tj /TT4 1 Tf 7.02 0 0 7.02 233.94 812.78 Tm ( ) Tj /TT6 1 Tf 7.5 0 0 7.5 378.48 812.54 Tm 0.003 Tc -0.0008 Tw [ (R) 5.2 (é) -0.8 (serv) 15 (é à l'administration ) ] TJ /TT4 1 Tf 9 0 0 9 233.94 799.7 Tm 0 Tc 0 Tw ( ) Tj /TT6 1 Tf 7.5 0 0 7.5 272.82 798.5 Tm 0.002 Tc 0.0002 Tw (Date ) Tj 0 -1.144 TD 0.0032 Tc 0 Tw (d'entrée ) Tj 20.32 0.568 TD 0.0024 Tc (Comptabilisé ) Tj ET 268.98 808.34 0.72 0.77997 re f 268.98 808.4 152.4 0.72003 re f 421.38 808.34 0.72 0.77997 re f 422.1 808.4 151.68 0.72003 re f 573.78 808.34 0.72003 0.77997 re f 573.78 808.4 0.72003 0.72003 re f 268.98 785.3 0.72 23.04 re f 421.38 785.3 0.72 23.04 re f 573.78 785.3 0.72003 23.04 re f 268.98 784.58 0.72 0.71997 re f 268.98 784.58 305.52 0.71997 re f 573.78 784.58 0.72003 0.71997 re f BT 7.98 0 0 7.98 202.02 772.4 Tm 0 Tc ( ) Tj /TT4 1 Tf 9.9549 -0.3834 TD -0.0002 Tc 0.0006 Tw [ (N° matricule ) -3368.4 (TVA) ] TJ /TT6 1 Tf 11.4586 0 TD 0 Tc 0 Tw ( ) Tj 2.5639 0.015 TD 7.4139 Tc [ ( ) -7.5 ( ) ] TJ ET 268.56 779.78 1.5 1.5 re f 268.56 779.78 306.3 1.5 re f 573.36 779.78 1.5 1.5 re f 268.56 764.66 1.5 15.12 re f 339.48 764.66 1.5 15.12 re f 389.04 764.66 1.5 15.12 re f 573.36 764.66 1.5 15.12 re f q 164.743 0 0 39.42 31.86 780.08 cm /Im1 Do Q BT /TT4 1 Tf 7.02 0 0 7.02 196.2 780.08 Tm 0 Tc ( ) Tj 9 0 0 9 78 765.44 Tm -0.0015 Tc 0.0037 Tw [ (Recette Cen) -4 (t) -1.8 (rale ) ] TJ 1.7133 -1.1867 TD -0.001 Tc 0.0032 Tw (B.P. 1004 ) Tj -2.8067 -1.1867 TD -0.0001 Tc 0.0023 Tw (L - 1010 Luxembourg ) Tj 0.0133 -1.1867 TD -0.001 Tc 0.0032 Tw [ (T) -3.5 (e) 1.8 (l.: \(+) -3.7 (352\) 44 905 - 1 ) ] TJ -2.68 -1.52 TD -0.0022 Tc 0.0044 Tw [ (IBA) 26.6 (N) 0 ( L) -4.7 (U) 0 (31 1111 0114 1970 0000 ) ] TJ 2.5 -1.1867 TD 0.0007 Tc 0.0015 Tw [ (Code) 3.5 ( BIC: CCPLLULL ) ] TJ 7.5 0 0 7.5 113.4 699.8 Tm 0 Tc 0 Tw ( ) Tj 10.02 0 0 10.02 272.82 741.62 Tm 0.0004 Tc -0.0028 Tw (TAXE SUR LA VALEUR AJOUTÉE) Tj 9 0 0 9 433.68 741.62 Tm 0.0022 Tc 0 Tw ( ) Tj /TT6 1 Tf 0.84 0 TD -0.0017 Tc 0.0039 Tw (\(Loi du 12.02.1979\) ) Tj /TT4 1 Tf -18.7133 -0.6 TD 0.0022 Tc 0 Tw ( ) Tj 10.02 0 0 10.02 272.82 725.9 Tm -0.0002 Tc -0.0022 Tw ET 268.56 763.16 1.5 1.5 re f 268.56 763.16 306.3 1.5 re f 573.36 763.16 1.5 1.5 re f BT /TT8 1 Tf 7.02 0 0 7.02 272.82 690.8 Tm 0.0004 Tc 0.0038 Tw (\(Nom, resp. dénomination sociale\) ) Tj ET 27.96 697.34 0.72 0.77997 re f 27.96 697.4 170.16 0.72003 re f 198.12 697.34 0.72 0.77997 re f 198.12 697.4 0.72 0.72003 re f 0.602 g 268.98 697.64 304.8 0.48004 re f 0 g 27.96 666.8 0.72 30.54 re f 198.12 666.8 0.72 30.54 re f BT /TT4 1 Tf 7.98 0 0 7.98 46.62 683 Tm 0 Tc 0.0004 Tw (Délai légal) Tj /TT6 1 Tf 4.9474 0 TD 0.0006 Tc -0.0002 Tw (: dépôt de la déclaration et ) Tj -4.2256 -1.1504 TD (paiement de la taxe au plus tard le ) Tj /TT4 1 Tf 10.02 0 0 10.02 70.08 656.48 Tm 0.0003 Tc -0.0027 Tw /TT6 1 Tf 7.98 0 0 7.98 202.02 689.96 Tm 0 Tc 0 Tw ( ) Tj /TT8 1 Tf 7.02 0 0 7.02 272.82 659.78 Tm -0.0002 Tc 0.0044 Tw (\(Rue, numéro\) ) Tj ET 27.96 666.32 0.72 0.47998 re f 198.12 666.32 0.72 0.47998 re f 0.602 g 268.98 666.32 304.8 0.47998 re f 0 g 27.96 646.76 0.72 19.56 re f 198.12 646.76 0.72 19.56 re f 27.96 646.04 0.72 0.72003 re f 27.96 646.04 170.88 0.72003 re f 198.12 646.04 0.72 0.72003 re f BT /TT4 1 Tf 9 0 0 9 31.86 628.04 Tm 0.0008 Tc 0.0014 Tw (Bureau d'imposition:) Tj /TT10 1 Tf 7.02 0 0 7.02 121.62 628.04 Tm 0 Tc 0 Tw ( ) Tj /TT6 1 Tf 7.98 0 0 7.98 202.02 634.16 Tm ( ) Tj /TT8 1 Tf 7.02 0 0 7.02 272.82 635 Tm 0.0008 Tc 0.0034 Tw (\(Code pays, code postal et lieu\)) Tj /TT6 1 Tf 14.1026 0 TD 0 Tc 0 Tw ( ) Tj ET 28.08 641.54 0.48001 0.48004 re f 28.08 641.54 170.52 0.48004 re f 198.24 641.54 0.48 0.48004 re f 198.24 641.54 0.48 0.48004 re f 0.602 g 268.98 641.54 304.8 0.48004 re f 0 g 28.08 622.58 0.48001 18.96 re f 28.08 622.58 170.16 0.47998 re f 198.24 622.58 0.48 18.96 re f 198.24 622.58 0.48 0.47998 re f BT /TT2 1 Tf 7.98 0 0 7.98 42.54 619.34 Tm ( ) Tj 0 -0.5038 TD ( ) Tj /TT4 1 Tf 7.02 0 0 7.02 62.94 615.32 Tm ( ) Tj 9 0 0 9 33.96 603.5 Tm -0.0007 Tc 0.0029 Tw [ (I. ) -500 (Calcu) -3.2 (l) -2.9 ( d) -3.2 (e) 2.1 ( la taxe à p) -3.2 (a) 2.1 (y) 8.8 (e) 2.1 (r ) ] TJ 7.5 0 0 7.5 345.42 604.04 Tm 0.0026 Tc -0.0004 Tw [ (B) 4.8 (ase d) 5.4 ('imp) 5.4 (o) 5.4 (s) -1.2 (itio) 5.4 (n) 5.4 ( ) ] TJ /TT6 1 Tf 8.864 0 TD 0.0036 Tc -0.0014 Tw [ (\(hors T) 6.4 (V) 6.6 (A) 6.6 (\)) ] TJ /TT4 1 Tf 4.848 0 TD -0.0188 Tc 7.997 Tw [ ( TV) -15.8 (A) 23.4 ( ) ] TJ ET 27.96 613.76 0.72 0.77997 re f 27.96 613.82 545.82 0.71997 re f 573.78 613.76 0.72003 0.77997 re f 573.78 613.82 0.72003 0.71997 re f 27.96 599.72 0.72 14.04 re f 573.78 599.72 0.72003 14.04 re f BT 7.5 0 0 7.5 32.7 582.62 Tm 0.0031 Tc -0.0009 Tw [ (1. ) -656 (C) 5.3 (h) 5.9 (iffre d) 5.9 (') 0.9 (affaires g) 5.9 (l) 0.9 (o) 5.9 (b) 5.9 (a) -0.7 (l:) ] TJ /TT6 1 Tf 4.98 0 0 4.98 132.24 586.1 Tm 0 Tc 0 Tw ( ) Tj 41.0121 -0.012 TD ( ) Tj 7.98 0 0 7.98 450 582.74 Tm 3.2936 Tc [ ( ) 2691.7 ( ) ] TJ ET 27.96 599 0.72 0.72003 re f 27.96 599 546.54 0.72003 re f 573.78 599 0.72003 0.72003 re f BT 7.5 0 0 7.5 39 568.58 Tm 0.0034 Tc 2.5988 Tw [ ( 1\) ) ] TJ 4.704 0.048 TD 0.0033 Tc -0.0011 Tw [ (V) 6.3 (entes ) ] TJ /TT11 1 Tf 3.688 0 TD 0 Tc 0 Tw (†) Tj /TT6 1 Tf 0.888 0 TD 0.0022 Tc ( ) Tj 6 0 0 6 112.8 573.44 Tm 0.0038 Tc (01 ) Tj 7.5 0 0 7.5 121.2 568.94 Tm 0.0026 Tc -0.0004 Tw ( / Recettes ) Tj /TT11 1 Tf 5.928 0 TD 0 Tc 0 Tw (†) Tj /TT6 1 Tf 0.888 0 TD 0.0022 Tc ( ) Tj 6 0 0 6 176.52 573.44 Tm 0.0038 Tc (02) Tj 7.5 0 0 7.5 183.24 568.94 Tm 0.0022 Tc ( ) Tj 6 0 0 6 193.74 568.94 Tm 0.0028 Tc -0.0006 Tw [ (\() 5.8 (c) 2.8 (ocher) 5.8 ( ce q) 9 (u) -1 (i) 5 ( conv) 12.8 (i) 5 (ent\)) ] TJ 4.98 0 0 4.98 257.52 572.42 Tm 0 Tc 0 Tw ( ) Tj 6 0 0 6 340.26 568.28 Tm 0.0038 Tc (03) Tj 7.98 0 0 7.98 346.98 568.28 Tm 0 Tc ( ) Tj 4.98 0 0 4.98 357.84 572.06 Tm ( ) Tj 7.5 0 0 7.5 453.6 568.58 Tm ( ) Tj 7.98 0 0 7.98 478.5 568.76 Tm ( ) Tj 6 0 0 6 485.52 568.28 Tm ( ) Tj 7.5 0 0 7.5 60.6 554.12 Tm 0.0031 Tc -0.0009 Tw [ (2\) ) -648 (P) 6.1 (r) 0.1 (élèv) 15.1 (ements priv) 15.1 (és de biens ) ] TJ 6 0 0 6 179.34 554.12 Tm 0.0029 Tc -0.0007 Tw [ (\() 5.9 (a) -0.9 (r) 5.9 (t. 13/a\)) ] TJ 7.5 0 0 7.5 205.44 554.12 Tm 0 Tc 0 Tw ( ) Tj 6 0 0 6 340.26 553.82 Tm 0.0038 Tc (04) Tj 7.5 0 0 7.5 346.98 553.82 Tm 0 Tc ( ) Tj 1.448 0.04 TD ( ) Tj 7.98 0 0 7.98 448.62 554.3 Tm 0.0025 Tc (+ ) Tj 7.5 0 0 7.5 478.5 554.12 Tm 0 Tc ( ) Tj 7.98 0 0 7.98 485.52 554.3 Tm ( ) Tj ET 0.602 g 1 i q 1 0 0 1 354 566.96 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q BT 7.5 0 0 7.5 39 540.14 Tm 0 g ( ) Tj 2.88 -0.064 TD 0.003 Tc -0.0008 Tw [ (3\) ) -648 (Utilisation priv) 15 (ée de biens et prélèv) 15 (ements priv) 15 (és de serv) 15 (ices ) ] TJ 6 0 0 6 284.52 539.66 Tm -0.003 Tc 0.0052 Tw [ (\(a) -6.8 (rt) -5.2 (.) -5.2 ( 1) -6.9 (6) -6.8 (\)) ] TJ 7.5 0 0 7.5 305.58 539.66 Tm 0 Tc 0 Tw ( ) Tj 6 0 0 6 340.26 539.36 Tm 0.0038 Tc (05) Tj 7.98 0 0 7.98 346.98 539.36 Tm 0 Tc ( ) Tj 7.5 0 0 7.5 357.84 539.66 Tm ( ) Tj 7.98 0 0 7.98 448.62 539.84 Tm 0.0025 Tc 2.8776 Tw [ (+ ) 2278.2 ( ) ] TJ ET 0.602 g q 1 0 0 1 354 552.5 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q BT /TT4 1 Tf 7.5 0 0 7.5 39 525.26 Tm 0 g 0 Tc 0 Tw ( ) Tj /TT6 1 Tf 2.88 -0.008 TD 0.0032 Tc -0.001 Tw [ (4\) ) -648 (A) 6.2 (ffectation de biens ) ] TJ 6 0 0 6 144.78 525.2 Tm 0.003 Tc -0.0008 Tw [ (\() 6 (a) -0.8 (r) 6 (t. 13/b\)) ] TJ 7.5 0 0 7.5 170.88 525.2 Tm 0 Tc 0 Tw ( ) Tj 6 0 0 6 340.26 524.9 Tm 0.0038 Tc (06) Tj 7.98 0 0 7.98 346.98 524.9 Tm 0 Tc ( ) Tj 7.5 0 0 7.5 357.84 525.2 Tm 11.8262 Tw [ ( + ) ] TJ 7.98 0 0 7.98 478.5 525.38 Tm 0.6019 Tc 0 Tw ( ) Tj ET 0.602 g q 1 0 0 1 354 538.04 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q BT 7.5 0 0 7.5 39 510.74 Tm 0 g 0.0034 Tc 2.5988 Tw [ ( 5\) ) ] TJ 6 0 0 6 74.82 510.44 Tm 0.0038 Tc 0 Tw (07) Tj 7.5 0 0 7.5 81.54 510.44 Tm 0 Tc ( ) Tj 6 0 0 6 340.26 510.44 Tm 0.0038 Tc (08) Tj 7.5 0 0 7.5 346.98 510.44 Tm 0 Tc ( ) Tj 1.448 0.04 TD ( ) Tj 7.98 0 0 7.98 448.62 510.92 Tm 0.0025 Tc 2.8776 Tw [ (+ ) 2278.2 ( ) ] TJ ET 0.602 g q 1 0 0 1 354 523.58 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q 84.66 508.64 247.98 0.48001 re f q 1 0 0 1 354 509.12 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q BT 7.5 0 0 7.5 39 493.94 Tm 0 g 0 Tc 0 Tw ( ) Tj /TT4 1 Tf 28.456 0.008 TD -0.0013 Tc 0.0035 Tw [ (Sous) -5.1 (-) -4.3 (t) -4.3 (o) 1.5 (t) -4.3 (a) -5.1 (l du point) -4.3 ( 1) -5.1 (:) 3.7 ( ) ] TJ /TT6 1 Tf 6 0 0 6 340.26 493.64 Tm 0.0038 Tc 0 Tw (09) Tj /TT4 1 Tf 7.5 0 0 7.5 346.98 493.64 Tm 0 Tc ( ) Tj ET q 353.64 506.3 m 353.64 492.32 l 357.84 492.32 l 357.84 501.5 l 442.98 501.5 l 442.98 492.32 l 446.46 492.32 l 446.46 506.3 l W* n 0 841.98 595.2 -841.98 re W n 0.898 g 353.64 492.32 92.82 13.98 re f Q 0.898 g q 1 0 0 1 357.84 501.5 cm 0 0 m 85.14 0 l 85.14 -9.18 l 0 -9.18 l f Q BT /TT6 1 Tf 7.98 0 0 7.98 442.98 494.12 Tm 0 g 1.053 Tc [ ( ) -1789.5 ( ) 451.1 ( ) ] TJ ET q 1 0 0 1 354 507.08 cm 0 0 m 92.16 0 l 92.16 -0.72 l 0 -0.72 l f Q 0.898 g q 1 0 0 1 354 506.36 cm 0 0 m 92.16 0 l 92.16 -0.06 l 0 -0.06 l f Q BT /TT4 1 Tf 7.5 0 0 7.5 32.7 483.8 Tm 0 g 0.0038 Tc (2.) Tj /TT6 1 Tf 0.84 0 TD 0 Tc ( ) Tj /TT4 1 Tf 0.936 0 TD -0.0018 Tc 0.004 Tw [ (Ex) -5.6 (oné) -5.6 (r) -4.6 (a) -5.6 (t) -4.8 (i) -4 (ons) -5.6 ( e) -5.6 (t) -4.8 ( mont) -4.8 (a) -5.6 (n) 1 (t) -4.8 (s) -5.6 ( dé) -5.6 (duc) -5.6 (t) -4.8 (i) -4 (ble) -5.6 (s) -5.6 (:) ] TJ /TT6 1 Tf 18.48 0 TD 0 Tc 0 Tw ( ) Tj 7.98 0 0 7.98 450 483.8 Tm 4.1733 Tc ( ) Tj ET 0.602 g q 1 0 0 1 354 492.32 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q BT 7.5 0 0 7.5 39 462.26 Tm 0 g 0 Tc ( ) Tj 2.88 1.144 TD 0.0031 Tc -0.0009 Tw [ (1\) ) -648 (Liv) 15.1 (r) 0.1 (aisons intracommunautaires de biens à des personnes identifiées ) ] TJ 1.824 -1.144 TD 0.0029 Tc -0.0007 Tw [ (à la T) 5.7 (V) 5.9 (A) 5.9 ( dans un autre É) 5.9 (t) 0.7 (at membre ) ] TJ 6 0 0 6 202.86 462.26 Tm [ (\() 5.9 (a) -0.9 (r) 5.9 (t. 43/1/d, e et f) -9.3 (\)) ] TJ 7.5 0 0 7.5 250.86 462.26 Tm 0 Tc 0 Tw ( ) Tj 6 0 0 6 340.26 461.96 Tm 0.0038 Tc (11) Tj 7.5 0 0 7.5 346.98 461.96 Tm 0 Tc ( ) Tj ET q 354.72 474.98 m 354.72 460.64 l 357.84 460.64 l 357.84 469.22 l 442.98 469.22 l 442.98 460.64 l 446.16 460.64 l 446.16 474.98 l W* n 0 841.98 595.2 -841.98 re W n 0.898 g 354.72 460.64 91.44 14.34 re f Q 0.898 g q 1 0 0 1 357.84 469.22 cm 0 0 m 85.14 0 l 85.14 -8.58 l 0 -8.58 l f Q BT 7.5 0 0 7.5 357.84 462.26 Tm 0 g ( ) Tj 7.98 0 0 7.98 448.62 462.44 Tm -0.0022 Tc 1.3484 Tw [ (- ) -1045.1 ( ) ] TJ ET 354 474.98 0.72 0.78 re f 354 475.04 92.16 0.72 re f 0.898 g 354.72 474.98 91.44 0.059998 re f 0 g 446.16 474.98 0.72003 0.78 re f 446.16 475.04 0.72003 0.72 re f 354 460.64 0.72 14.34 re f 446.16 460.64 0.72003 14.34 re f 354 460.16 0.72 0.47998 re f 0.602 g 354.72 460.16 91.44 0.47998 re f 0 g 446.16 460.16 0.72003 0.47998 re f 354 458.6 0.72 1.56 re f 446.16 458.6 0.72003 1.56 re f BT 7.5 0 0 7.5 39 446.24 Tm 0.0032 Tc 2.599 Tw [ ( 2\) ) 1952 (E) 6.2 (x) 15.2 (portations ) 2600 ( ) ] TJ 6 0 0 6 120.3 446.24 Tm -0.0009 Tw [ (\() 6.1 (a) -0.7 (r) 6.1 (t. 43/1/a et b\)) ] TJ 7.5 0 0 7.5 163.2 446.24 Tm 0 Tc 0 Tw ( ) Tj 6 0 0 6 340.26 445.94 Tm 0.0038 Tc (12) Tj 7.5 0 0 7.5 346.98 445.94 Tm 0 Tc ( ) Tj ET q 353.64 457.82 m 353.64 444.62 l 357.84 444.62 l 357.84 453.2 l 442.98 453.2 l 442.98 444.62 l 446.46 444.62 l 446.46 457.82 l W* n 0 841.98 595.2 -841.98 re W n 0.898 g 353.64 444.62 92.82 13.2 re f Q 0.898 g q 1 0 0 1 357.84 453.2 cm 0 0 m 85.14 0 l 85.14 -8.58 l 0 -8.58 l f Q BT 7.5 0 0 7.5 357.84 446.24 Tm 0 g ( ) Tj 7.98 0 0 7.98 448.62 446.42 Tm -0.0022 Tc 1.3484 Tw [ (- ) -1045.1 ( ) ] TJ ET 0.898 g 354 457.82 0.72 0.059998 re f 0 g 354 457.88 0.72 0.72 re f 354 457.88 92.16 0.72 re f 0.898 g 354.72 457.82 91.44 0.059998 re f 0 g 446.16 457.88 0.72003 0.72 re f 446.16 457.88 0.72003 0.72 re f BT 7.5 0 0 7.5 39 431.78 Tm 0.0032 Tc -0.001 Tw [ ( ) -2600 (3\) ) -648 (A) 6.2 (u) -0.6 (tres ex) 15.2 (onérations ) ] TJ 6 0 0 6 147.6 431.78 Tm -0.003 Tc 0.0052 Tw [ (\(a) -6.8 (rt) -5.2 (.) -5.2 ( 4) -6.8 (3) -6.8 (\)) 0 ( ) ] TJ 7.5 0 0 7.5 170.34 431.78 Tm 0 Tc 0 Tw ( ) Tj 6 0 0 6 340.26 431.48 Tm 0.0038 Tc (13) Tj 7.5 0 0 7.5 346.98 431.48 Tm 0 Tc ( ) Tj 1.448 0.04 TD ( ) Tj 7.98 0 0 7.98 448.62 431.96 Tm -0.0022 Tc 1.3484 Tw [ (- ) -1045.1 ( ) ] TJ ET 0.602 g q 1 0 0 1 354 444.62 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q BT 7.5 0 0 7.5 39 417.32 Tm 0 g 0.0032 Tc -0.001 Tw [ ( ) -2600 (4\) ) -648 (A) 6.2 (u) -0.6 (tres ex) 15.2 (onérations ) ] TJ 6 0 0 6 147.6 417.32 Tm [ (\() 6.2 (a) -0.6 (r) 6.2 (t. 44 et 56q) 9.4 (uater) 6.2 (\)) 6.2 ( ) ] TJ 7.5 0 0 7.5 202.5 417.32 Tm 0 Tc 0 Tw ( ) Tj 6 0 0 6 340.26 417.02 Tm 0.0038 Tc (14) Tj 7.5 0 0 7.5 346.98 417.02 Tm 0 Tc ( ) Tj 1.448 0.04 TD ( ) Tj 7.98 0 0 7.98 448.62 417.5 Tm -0.0022 Tc 1.3484 Tw [ (- ) -1045.1 ( ) ] TJ ET 0.602 g q 1 0 0 1 354 430.16 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q BT 7.5 0 0 7.5 39 402.86 Tm 0 g 0.0035 Tc 2.5987 Tw [ ( 5\) ) 1952 (T) 6.3 (abacs ) 2600 (fabriqués ) ] TJ 6 0 0 6 340.26 402.56 Tm 0.0038 Tc 0 Tw (15) Tj 7.5 0 0 7.5 346.98 402.56 Tm 0 Tc ( ) Tj 1.448 0.04 TD ( ) Tj 7.98 0 0 7.98 448.62 403.04 Tm -0.0022 Tc 1.3484 Tw [ (- ) -1045.1 ( ) ] TJ ET 0.602 g q 1 0 0 1 354 415.7 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q BT 7.5 0 0 7.5 39 387.8 Tm 0 g 0.0031 Tc -0.0009 Tw [ ( ) -2600 (6\) ) -648 (O) 4.9 (pérations réalisées à l'étranger: ) -20832 ( ) -1616 ( ) ] TJ 7.98 0 0 7.98 450 387.98 Tm 1.5041 Tc 0 Tw [ ( ) -887.2 ( ) ] TJ ET 0.602 g q 1 0 0 1 354 401.24 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q BT 7.5 0 0 7.5 39 371.24 Tm 0 g 3.4982 Tc ( ) Tj 42.512 0 TD 0 Tc ( ) Tj 7.98 0 0 7.98 450 371.42 Tm 1.5041 Tc [ ( ) -887.2 ( ) ] TJ 7.5 0 0 7.5 39 356.12 Tm 3.4982 Tc ( ) Tj 4.32 2.424 TD 0.0032 Tc -0.001 Tw [ (a\) Liv) 15.2 (r) 0.2 (aisons subséquentes à des acquisitions intracommunautaires dans le ) ] TJ 1.52 -1.2 TD -0.0009 Tw [ (cadre d'opérations triangulaires, lorsque le destinataire identifié à la T) 5.9 (V) 6.1 (A) 6.1 ( ) ] TJ T* [ (dans l'É) 6.1 (t) 0.9 (at membre de destination des biens y) 15.1 ( est le redev) 15.1 (able de la tax) 15.1 (e) ] TJ 32.544 0.136 TD 0 Tc 0 Tw ( ) Tj 6 0 0 6 340.26 356.3 Tm 0.0038 Tc (16) Tj 7.5 0 0 7.5 346.98 357.32 Tm 0 Tc ( ) Tj ET q 354.72 368.78 m 354.72 354.5 l 357.84 354.5 l 357.84 363.08 l 442.98 363.08 l 442.98 354.5 l 446.16 354.5 l 446.16 368.78 l W* n 0 841.98 595.2 -841.98 re W n 0.898 g 354.72 354.5 91.44 14.28 re f Q 0.898 g q 1 0 0 1 357.84 363.08 cm 0 0 m 85.14 0 l 85.14 -8.58 l 0 -8.58 l f Q BT 7.5 0 0 7.5 357.84 356.12 Tm 0 g ( ) Tj 7.98 0 0 7.98 448.62 356.3 Tm -0.0022 Tc 1.3484 Tw [ (- ) -1045.1 ( ) ] TJ ET 354 368.78 0.72 0.78 re f 354 368.84 92.16 0.72 re f 0.898 g 354.72 368.78 91.44 0.059998 re f 0 g 446.16 368.78 0.72003 0.78 re f 446.16 368.84 0.72003 0.72 re f 354 354.5 0.72 14.28 re f 446.16 354.5 0.72003 14.28 re f 354 354.02 0.72 0.47998 re f 0.602 g 354.72 354.02 91.44 0.47998 re f 0 g 446.16 354.02 0.72003 0.47998 re f 354 352.46 0.72 1.56 re f 446.16 352.46 0.72003 1.56 re f BT 7.5 0 0 7.5 39 339.32 Tm 0.0031 Tc -0.0009 Tw [ ( ) -3496 ( ) -264 (b\) A) 6.1 (u) -0.7 (tres opérations réalisées à l'étranger ) ] TJ 6 0 0 6 340.26 339.02 Tm 0.0038 Tc 0 Tw (17) Tj 7.5 0 0 7.5 346.98 339.02 Tm 0 Tc ( ) Tj 1.448 0.04 TD ( ) Tj 7.98 0 0 7.98 448.62 339.5 Tm -0.0022 Tc 1.3484 Tw [ (- ) -1045.1 ( ) ] TJ ET 354 351.74 0.72 0.72 re f 354 351.74 92.88 0.72 re f 446.16 351.74 0.72003 0.72 re f BT 7.5 0 0 7.5 39 324.86 Tm 0.0034 Tc 2.5988 Tw [ ( 7\) ) ] TJ 6 0 0 6 72.9 324.56 Tm 0.0038 Tc 0 Tw (18) Tj 7.5 0 0 7.5 79.62 324.56 Tm 0 Tc ( ) Tj 1.008 0.04 TD ( ) Tj 6 0 0 6 340.26 324.56 Tm 0.0038 Tc (19) Tj 7.5 0 0 7.5 346.98 324.56 Tm 0 Tc ( ) Tj 1.448 0.04 TD ( ) Tj 7.98 0 0 7.98 448.62 325.04 Tm -0.0022 Tc 2.2432 Tw [ (- ) 744.4 ( ) ] TJ ET 0.602 g q 1 0 0 1 354 337.7 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q 84.66 322.76 247.98 0.48001 re f q 1 0 0 1 354 323.24 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q BT /TT4 1 Tf 7.5 0 0 7.5 32.7 307.1 Tm 0 g 0.002 Tc 0.0002 Tw [ (3. ) -656 (Chiffre d'affaires imposable \(hors T) 20.8 (V) 5 (A) 44.2 (\)) -1 ( ) ] TJ /TT6 1 Tf 30.368 0 TD 0 Tc 0 Tw ( ) Tj /TT4 1 Tf 0.28 0 TD ( ) Tj /TT6 1 Tf 6 0 0 6 340.26 306.74 Tm 0.0038 Tc (22 ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 307.1 Tm 0 Tc ( ) Tj /TT6 1 Tf 7.98 0 0 7.98 450 307.22 Tm 1.5041 Tc [ ( ) -887.2 ( ) ] TJ ET q 1 0 0 1 354 321.2 cm 0 0 m 92.16 0 l 92.16 -0.72 l 0 -0.72 l f Q 0.602 g q 1 0 0 1 354 305.42 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q BT /TT4 1 Tf 7.5 0 0 7.5 39 290.3 Tm 0 g 0 Tc ( ) Tj /TT6 1 Tf 27.424 -0.008 TD 0.0032 Tc -0.001 Tw [ (au taux) 15.2 ( de) -3184.6 (15% ) ] TJ 6 0 0 6 340.26 289.94 Tm 0.0038 Tc 0 Tw (32 ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 290.3 Tm 0 Tc ( ) Tj /TT6 1 Tf 12.288 -0.008 TD ( ) Tj 6 0 0 6 468 289.94 Tm 0.0038 Tc (37 ) Tj 7.5 0 0 7.5 485.52 290.24 Tm 11.0582 Tc ( ) Tj ET q 1 0 0 1 354 303.38 cm 0 0 m 92.16 0 l 92.16 -0.72 l 0 -0.72 l f Q BT /TT4 1 Tf 7.5 0 0 7.5 39 275.84 Tm 0 Tc ( ) Tj /TT6 1 Tf 3.768 -0.008 TD 0.0016 Tc 31.5286 Tw [ ( ) 31528 (6% ) ] TJ 6 0 0 6 340.26 275.48 Tm 0.0038 Tc 0 Tw (33 ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 275.84 Tm 0 Tc ( ) Tj /TT6 1 Tf 12.288 -0.008 TD (+ ) Tj 6 0 0 6 468 275.48 Tm 0.0038 Tc (38 ) Tj 7.5 0 0 7.5 485.52 275.78 Tm 10.8742 Tc ( +) Tj ET 0.602 g q 1 0 0 1 354 288.62 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q 481.62 288.14 85.08 0.48001 re f BT /TT4 1 Tf 7.5 0 0 7.5 39 261.38 Tm 0 g 0 Tc ( ) Tj /TT6 1 Tf 3.768 -0.008 TD 0.0013 Tc 31.8089 Tw [ ( 3% ) ] TJ 6 0 0 6 340.26 261.02 Tm 0.0038 Tc 0 Tw (34 ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 261.38 Tm 0 Tc ( ) Tj /TT6 1 Tf 12.288 -0.008 TD (+ ) Tj 6 0 0 6 468 261.02 Tm 0.0038 Tc (39 ) Tj 7.5 0 0 7.5 485.52 261.32 Tm 10.8742 Tc ( +) Tj ET 0.602 g q 1 0 0 1 354 274.16 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q 481.62 273.68 85.08 0.47998 re f BT /TT4 1 Tf 7.5 0 0 7.5 39 246.92 Tm 0 g 0 Tc ( ) Tj /TT6 1 Tf 3.768 -0.008 TD 0.0021 Tc 31.2481 Tw [ ( 12% ) ] TJ 6 0 0 6 340.26 246.56 Tm 0.0038 Tc 0 Tw (35 ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 246.92 Tm 0 Tc ( ) Tj /TT6 1 Tf 12.288 -0.008 TD (+ ) Tj 6 0 0 6 468 246.56 Tm 0.0038 Tc (40 ) Tj 7.5 0 0 7.5 485.52 246.86 Tm 10.8742 Tc ( +) Tj ET 0.602 g q 1 0 0 1 354 259.7 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q 481.62 259.22 85.08 0.48001 re f BT /TT4 1 Tf 7.5 0 0 7.5 39 232.46 Tm 0 g 0 Tc ( ) Tj /TT6 1 Tf 3.768 -0.008 TD ( ) Tj 6 0 0 6 288.6 232.4 Tm 0.0038 Tc (84) Tj 7.5 0 0 7.5 295.32 232.4 Tm 0.602 g (____) Tj 0 g 2.24 0 TD -0.0012 Tc (% ) Tj 6 0 0 6 340.26 232.1 Tm 0.0038 Tc (82 ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 232.46 Tm 0 Tc ( ) Tj /TT6 1 Tf 12.288 -0.008 TD (+ ) Tj 6 0 0 6 468 232.1 Tm 0.0038 Tc (83 ) Tj 7.5 0 0 7.5 485.52 232.4 Tm 10.8742 Tc ( +) Tj ET 0.602 g q 1 0 0 1 354 245.24 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q 481.62 244.76 85.08 0.48 re f q 1 0 0 1 354 230.78 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q 481.62 230.3 85.08 0.48001 re f BT /TT4 1 Tf 7.5 0 0 7.5 39 215.66 Tm 0 g 0.0031 Tc -0.0009 Tw [ ( ) -23312 (S) 6.1 (o) 5.9 (u) 5.9 (s) -0.7 (-to) 5.9 (tal d) 5.9 (e) -0.7 ( la taxe d) 5.9 (u) 5.9 ( p) 5.9 (o) 5.9 (i) 0.9 (n) 5.9 (t) 0.1 ( 3:) ] TJ /TT6 1 Tf 6 0 0 6 336.48 215.3 Tm 0 Tc 0 Tw ( ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 215.66 Tm ( ) Tj /TT6 1 Tf 12.288 -0.008 TD ( ) Tj 6 0 0 6 468 215.3 Tm 0.0038 Tc (41 ) Tj 7.5 0 0 7.5 485.52 215.6 Tm 11.0582 Tc ( ) Tj ET 481.62 228.02 85.08 0.72 re f BT /TT4 1 Tf 7.5 0 0 7.5 32.7 195.62 Tm 0.0017 Tc 0.0005 Tw [ (4. ) -656 (A) 43.9 (c) -2.1 (quisitions intracommunautaires de biens ) ] TJ /TT6 1 Tf 32.92 0 TD 0.0035 Tc -0.0013 Tw [ (au taux) 15.5 ( de) ] TJ /TT4 1 Tf 4.688 0 TD 0 Tc 0 Tw ( ) Tj /TT6 1 Tf 2.896 -0.008 TD ( ) Tj /TT4 1 Tf 2.848 0.008 TD ( ) Tj /TT6 1 Tf 12.288 -0.008 TD ( ) Tj 6 0 0 6 471.36 195.26 Tm ( ) Tj 7.5 0 0 7.5 485.52 206.54 Tm ( ) Tj 11.152 -1.464 TD ( ) Tj ET 0.602 g 481.62 213.5 85.08 0.48001 re f BT /TT4 1 Tf 7.5 0 0 7.5 39 181.64 Tm 0 g ( ) Tj /TT6 1 Tf 35.312 -0.008 TD 0.0021 Tc (15% ) Tj 6 0 0 6 340.26 181.28 Tm 0.0038 Tc (42 ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 181.64 Tm 0 Tc ( ) Tj /TT6 1 Tf 12.288 -0.008 TD ( ) Tj 6 0 0 6 468 181.28 Tm 0.0038 Tc (47 ) Tj 7.5 0 0 7.5 485.52 181.58 Tm 10.8742 Tc ( ) Tj /TT4 1 Tf -59.536 -1.92 TD 0 Tc ( ) Tj /TT6 1 Tf 35.592 -0.008 TD 0.0016 Tc 0.0006 Tw ( 6% ) Tj 6 0 0 6 340.26 166.82 Tm 0.0038 Tc 0 Tw (43 ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 167.18 Tm 0 Tc ( ) Tj /TT6 1 Tf 12.104 -0.008 TD (+ ) Tj 6 0 0 6 468 166.82 Tm 0.0038 Tc (48 ) Tj 7.5 0 0 7.5 485.52 167.12 Tm 10.8742 Tc ( +) Tj ET 0.602 g q 1 0 0 1 354 179.96 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q 481.62 179.48 85.08 0.48 re f BT /TT4 1 Tf 7.5 0 0 7.5 39 152.72 Tm 0 g 0 Tc ( ) Tj /TT6 1 Tf 35.872 -0.008 TD 0.0013 Tc (3% ) Tj 6 0 0 6 340.26 152.36 Tm 0.0038 Tc (44 ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 152.72 Tm 0 Tc ( ) Tj /TT6 1 Tf 12.104 -0.008 TD (+ ) Tj 6 0 0 6 468 152.36 Tm 0.0038 Tc (49 ) Tj 7.5 0 0 7.5 485.52 152.66 Tm 10.8742 Tc ( +) Tj ET 0.602 g q 1 0 0 1 354 165.5 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q 481.62 165.02 85.08 0.48 re f BT /TT4 1 Tf 7.5 0 0 7.5 39 138.26 Tm 0 g 0 Tc ( ) Tj /TT6 1 Tf 35.312 -0.008 TD 0.0021 Tc (12% ) Tj 6 0 0 6 340.26 137.9 Tm 0.0038 Tc (45 ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 138.26 Tm 0 Tc ( ) Tj /TT6 1 Tf 12.104 -0.008 TD (+ ) Tj 6 0 0 6 468 137.9 Tm 0.0038 Tc (50 ) Tj 7.5 0 0 7.5 485.52 138.2 Tm 10.8742 Tc ( +) Tj ET 0.602 g q 1 0 0 1 354 151.04 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q 481.62 150.56 85.08 0.48001 re f q 1 0 0 1 354 136.58 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q 481.62 136.1 85.08 0.48001 re f BT /TT4 1 Tf 7.5 0 0 7.5 39 123.44 Tm 0 g 0 Tc ( ) Tj /TT6 1 Tf 2.832 7.808 TD 0.0031 Tc -0.0009 Tw [ (1\) ) -336 (A) 6.1 (c) -0.9 (quisitions intracommunautaires de biens ) ] TJ 6 0 0 6 217.14 182 Tm 0.003 Tc -0.0008 Tw [ (\() 6 (a) -0.8 (r) 6 (t. 18/1\)) ] TJ 7.5 0 0 7.5 243.24 182 Tm 0 Tc 0 Tw ( ) Tj -24.4 -1.144 TD ( ) Tj T* 0.0033 Tc -0.0011 Tw [ (2\) ) -336 (Liv) 15.3 (r) 0.3 (aisons de biens à l'intérieur du pay) 15.3 (s dans le cadre ) ] TJ 1.512 -1.144 TD 0.0032 Tc (des opérations triangulaires et pour lesquelles ) Tj T* 0.0029 Tc -0.0007 Tw [ (l'assujetti est le débiteur de la tax) 14.9 (e) -0.9 ( ) ] TJ 6 0 0 6 188.82 147.68 Tm 0.0026 Tc -0.0004 Tw [ (\() 5.6 (a) -1.2 (r) 5.6 (t. 26/1/a, al. 2\)) ] TJ 7.5 0 0 7.5 234.72 147.68 Tm 0 Tc 0 Tw ( ) Tj 5.568 -3.24 TD 0.0031 Tc -0.0009 Tw [ ( ex) 15.1 (onérées ) ] TJ 6 0 0 6 340.26 123.08 Tm 0.0038 Tc 0 Tw (85 ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 123.44 Tm 0 Tc ( ) Tj /TT6 1 Tf 12.104 -0.008 TD (+ ) Tj 6 0 0 6 471.36 123.08 Tm ( ) Tj 7.5 0 0 7.5 485.52 123.38 Tm ( ) Tj ET 481.62 133.82 85.08 0.72 re f 0.602 g q 1 0 0 1 354 121.76 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q BT /TT4 1 Tf 7.5 0 0 7.5 39 106.64 Tm 0 g 0.0029 Tc -0.0007 Tw [ ( ) -10552 (T) 21.7 (o) 5.7 (tal b) 5.7 (ase d) 5.7 ('imp) 5.7 (o) 5.7 (s) -0.9 (itio) 5.7 (n) 5.7 ( et so) 5.7 (u) 5.7 (s) -0.9 (-to) 5.7 (tal d) 5.7 (e) -0.9 ( la taxe d) 5.7 (u) 5.7 ( p) 5.7 (o) 5.7 (i) 0.7 (n) 5.7 (t) -0.1 ( 4 :) ] TJ /TT6 1 Tf 6 0 0 6 340.26 106.28 Tm 0.0038 Tc 0 Tw (46 ) Tj ET q 353.64 118.94 m 353.64 104.96 l 357.84 104.96 l 357.84 113.84 l 442.98 113.84 l 442.98 104.96 l 446.46 104.96 l 446.46 118.94 l W* n 0 841.98 595.2 -841.98 re W n 0.898 g 353.64 104.96 92.82 13.98 re f Q 0.898 g q 1 0 0 1 357.84 113.84 cm 0 0 m 85.14 0 l 85.14 -8.88 l 0 -8.88 l f Q BT /TT4 1 Tf 7.5 0 0 7.5 357.84 106.64 Tm 0 g 0 Tc ( ) Tj /TT6 1 Tf 12.288 -0.008 TD ( ) Tj 6 0 0 6 468 106.28 Tm 0.0038 Tc (51 ) Tj 7.5 0 0 7.5 485.52 106.58 Tm 11.0582 Tc ( ) Tj ET q 1 0 0 1 354 119.72 cm 0 0 m 92.16 0 l 92.16 -0.72 l 0 -0.72 l f Q 0.898 g q 1 0 0 1 354 119 cm 0 0 m 92.16 0 l 92.16 -0.06 l 0 -0.06 l f Q BT 6 0 0 6 343.62 98.9003 Tm 0 g 0 Tc ( ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 97.2803 Tm ( ) Tj /TT6 1 Tf 12.288 0.032 TD ( ) Tj 6 0 0 6 471.36 98.9003 Tm ( ) Tj 7.5 0 0 7.5 485.52 97.5203 Tm ( ) Tj ET 0.602 g q 1 0 0 1 354 104.96 cm 0 0 m 92.16 0 l 92.16 -0.48 l 0 -0.48 l f Q 481.62 104.48 85.08 0.47998 re f BT /TT4 1 Tf 7.5 0 0 7.5 32.7 93.2603 Tm 0 g 0.0018 Tc 0.0004 Tw [ (5. ) -656 (A) 44 (c) -2 (quisitions effectuées dans le) ] TJ 16.736 0 TD 0.0015 Tc 0.0007 Tw ( cadre d'opérations triangulaires ) Tj /TT6 1 Tf 15.792 0 TD 0.0035 Tc 0 Tw (lorsque ) Tj -30.752 -1.152 TD 0.0033 Tc -0.0011 Tw [ (l'acquisition a été effectuée pour les besoins d'une liv) 15.3 (raison subséquente à un ) ] TJ 0 -1.144 TD 0.003 Tc -0.0008 Tw [ (acquéreur identifié à la T) 5.8 (V) 6 (A) 6 ( dans l'É) 6 (t) 0.8 (at membre de destination des biens et qui y) 15 ( est ) ] TJ T* 0.0032 Tc -0.001 Tw [ (le redev) 15.2 (able de la tax) 15.2 (e) -0.6 ( ) ] TJ 6 0 0 6 123.9 67.4603 Tm 0.0027 Tc -0.0005 Tw [ (\() 5.7 (a) -1.1 (r) 5.7 (t. 18ter) 5.7 (/2, al. 2\)) ] TJ /TT13 1 Tf 7.5 0 0 7.5 171.78 67.4603 Tm 0 Tc 0 Tw ( ) Tj /TT6 1 Tf 6 0 0 6 340.26 65.7203 Tm 0.0038 Tc (52 ) Tj ET q 354.72 78.62 m 354.72 64.4 l 357.84 64.4 l 357.84 73.28 l 442.98 73.28 l 442.98 64.4 l 446.16 64.4 l 446.16 78.62 l W* n 0 841.98 595.2 -841.98 re W n 0.898 g 354.72 64.4 91.44 14.22 re f Q 0.898 g q 1 0 0 1 357.84 73.28 cm 0 0 m 85.14 0 l 85.14 -8.88 l 0 -8.88 l f Q BT /TT4 1 Tf 7.5 0 0 7.5 357.84 66.0803 Tm 0 g 0 Tc ( ) Tj /TT6 1 Tf 12.288 -0.008 TD ( ) Tj 6 0 0 6 471.36 65.7203 Tm ( ) Tj 7.5 0 0 7.5 485.52 66.0203 Tm ( ) Tj ET 354 78.62 0.72 0.78 re f 354 78.68 92.16 0.72 re f 0.898 g 354.72 78.62 91.44 0.059998 re f 0 g 446.16 78.62 0.72003 0.78 re f 446.16 78.68 0.72003 0.72 re f 354 64.4 0.72 14.22 re f 446.16 64.4 0.72003 14.22 re f 354 63.92 0.72 0.47998 re f 0.602 g 354.72 63.92 91.44 0.47998 re f 0 g 446.16 63.92 0.72003 0.47998 re f 354 62.36 0.72 1.56 re f 446.16 62.36 0.72003 1.56 re f BT /TT4 1 Tf 7.5 0 0 7.5 39 41.7203 Tm 0.0031 Tc -0.0009 Tw [ ( ) -21952 (T) 21.9 (o) 5.9 (tal d) 5.9 (e) -0.7 ( taxe \(=) ] TJ 6 0 0 6 260.64 41.7203 Tm 0.0038 Tc 0 Tw (41) Tj 7.5 0 0 7.5 267.36 41.7203 Tm 0.0007 Tc 0.0015 Tw ( + ) Tj 6 0 0 6 275.94 41.7203 Tm 0.0038 Tc 0 Tw (51) Tj 7.5 0 0 7.5 282.66 41.7203 Tm 0.0032 Tc -0.001 Tw [ (\) - à rep) 6 (o) 6 (r) 0.4 (ter:) ] TJ /TT6 1 Tf 6 0 0 6 336.48 41.3604 Tm 0 Tc 0 Tw ( ) Tj /TT4 1 Tf 7.5 0 0 7.5 357.84 41.7203 Tm ( ) Tj /TT6 1 Tf 12.288 -0.008 TD ( ) Tj 6 0 0 6 468 41.3604 Tm 0.0038 Tc (86 ) Tj 7.5 0 0 7.5 485.52 41.6603 Tm 11.0582 Tc ( ) Tj ET 354 61.64 0.72 0.72 re f 354 61.64 92.88 0.72 re f 446.16 61.64 0.72003 0.72 re f 0.602 g 481.26 39.56 85.8 0.48001 re f Q q Q +endstream +endobj +209 0 obj +<< +/Length 0 +>> +stream + +endstream +endobj +225 0 obj +<< +/Length 0 +>> +stream + +endstream +endobj +226 0 obj +<< +/Length 0 +>> +stream + +endstream +endobj +227 0 obj +<< +/Length 0 +>> +stream + +endstream +endobj +228 0 obj +<< +/Length 0 +>> +stream + +endstream +endobj +229 0 obj +<< +/Length 0 +>> +stream + +endstream +endobj +230 0 obj +<< +/Length 0 +>> +stream + +endstream +endobj +231 0 obj +<< +/Length 0 +>> +stream + +endstream +endobj +232 0 obj +<< +/Length 0 +>> +stream + +endstream +endobj +xref +208 2 +0000095377 00000 n +0000122031 00000 n +225 8 +0000122083 00000 n +0000122135 00000 n +0000122187 00000 n +0000122239 00000 n +0000122291 00000 n +0000122343 00000 n +0000122395 00000 n +0000122447 00000 n +trailer +<< +/Root 224 0 R +/Size 250 +/Info 250 0 R +/Prev 90282 +>> +startxref +122499 +%%EOF diff --git a/addons/l10n_lu/wizard/__init__.py b/addons/l10n_lu/wizard/__init__.py new file mode 100644 index 00000000000..0ff0d08776c --- /dev/null +++ b/addons/l10n_lu/wizard/__init__.py @@ -0,0 +1 @@ +import print_vat diff --git a/addons/l10n_lu/wizard/pdf_ext.py b/addons/l10n_lu/wizard/pdf_ext.py new file mode 100644 index 00000000000..200fa813218 --- /dev/null +++ b/addons/l10n_lu/wizard/pdf_ext.py @@ -0,0 +1,103 @@ +# -*- encoding: utf-8 -*- +# 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. +""" Copyright (c) 2003-2007 LOGILAB S.A. (Paris, FRANCE). + http://www.logilab.fr/ -- mailto:contact@logilab.fr + +manipulate pdf and fdf files. pdftk recommended. + +Notes regarding pdftk, pdf forms and fdf files (form definition file) +fields names can be extracted with: + pdftk orig.pdf generate_fdf output truc.fdf +to merge fdf and pdf: + pdftk orig.pdf fill_form test.fdf output result.pdf [flatten] +without flatten, one could further edit the resulting form. +with flatten, everything is turned into text. +""" + +import os +import tools + +HEAD="""%FDF-1.2 +%\xE2\xE3\xCF\xD3 +1 0 obj +<< +/FDF +<< +/Fields [ +""" + +TAIL="""] +>> +>> +endobj +trailer + +<< +/Root 1 0 R +>> +%%EOF +""" + +def output_field( f ): + return "\xfe\xff" + "".join( [ "\x00"+c for c in f ] ) + +def extract_keys(lines): + keys = [] + for line in lines: + if line.startswith('/V'): + pass #print 'value',line + elif line.startswith('/T'): + key = line[7:-2] + key = ''.join(key.split('\x00')) + keys.append( key ) + return keys + +def write_field(out, key, value): + out.write("<<\n") + if value: + out.write("/V (%s)\n" %value) + else: + out.write("/V /\n") + out.write("/T (%s)\n" % output_field(key) ) + out.write(">> \n") + +def write_fields(out, fields): + out.write(HEAD) + for key in fields: + value = fields[key] + write_field(out, key, value) +# write_field(out, key+"a", value) # pour copie-carbone sur autres pages + out.write(TAIL) + +def extract_keys_from_pdf(filename): + # what about using 'pdftk filename dump_data_fields' and parsing the output ? + os.system('pdftk %s generate_fdf output /tmp/toto.fdf' % filename) + lines = file('/tmp/toto.fdf').readlines() + return extract_keys(lines) + + +def fill_pdf(infile, outfile, fields): + write_fields(file('/tmp/toto.fdf', 'w'), fields) + os.system('pdftk %s fill_form /tmp/toto.fdf output %s flatten' % (infile, outfile)) + +def testfill_pdf(infile, outfile): + keys = extract_keys_from_pdf(infile) + fields = [] + for key in keys: + fields.append( (key, key, '') ) + fill_pdf(infile, outfile, fields) + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/l10n_lu/wizard/print_vat.py b/addons/l10n_lu/wizard/print_vat.py new file mode 100644 index 00000000000..fbd9c29bb41 --- /dev/null +++ b/addons/l10n_lu/wizard/print_vat.py @@ -0,0 +1,93 @@ +# -*- encoding: utf-8 -*- +#Copyright (c) Vincent Cardon +# Denis Cardon and Emmanuel RICHARD. +#Ingenieur fondateur +#Tranquil IT Systems + + +import wizard +import time +import datetime +import pooler +import sys +from mx.DateTime import * +import tools +from report.render import render +from report.interface import report_int +import os +import pdf_ext + +_tax_form = """ +

+ + +""" + +_tax_fields = { + 'tax_code_id': { + 'string': 'Company', + 'type': 'many2one', + 'relation': 'account.tax.code', + 'required': True, + 'domain': [('parent_id','=',False)]}, + 'period_id': { + 'string':'Period', + 'type': 'many2one', + 'relation': 'account.period', + 'required':True + } +} + +class external_pdf(render): + def __init__(self, pdf): + render.__init__(self) + self.pdf = pdf + self.output_type='pdf' + def _render(self): + return self.pdf + + +class report_custom(report_int): + def create(self, cr, uid, ids, datas, context={}): + print datas, ids, uid + + pool = pooler.get_pool(cr.dbname) + + taxobj = pool.get('account.tax.code') + code_ids = taxobj.search(cr, uid, [('parent_id','child_of',[datas['form']['tax_code_id']])]) + result = {} + for t in taxobj.browse(cr, uid, code_ids, {'period_id': datas['form']['period_id']}): + if t.code: + result['case_'+str(t.code)] = '%.2f' % (t.sum_period or 0.0, ) + + user = pool.get('res.users').browse(cr, uid, uid, context) + + # Not Clean, to be changed + partner = user.company_id.partner_id + result['info_name'] = user.company_id.name + result['info_vatnum'] = partner.vat + if partner.address: + result['info_address'] = partner.address[0].street + result['info_address2'] = str(partner.address[0].zip) + ' ' + str(partner.address[0].city) + + pdf_ext.fill_pdf('addons/l10n_lu/wizard/2008_DECL_F_M10.pdf', '/tmp/output.pdf', result) + self.obj = external_pdf(file('/tmp/output.pdf').read()) + self.obj.render() + return (self.obj.pdf, 'pdf') + +report_custom('report.l10n_lu.tax.report.print') + + +class wizard_report(wizard.interface): + states = { + 'init': { + 'actions': [], + 'result': {'type':'form', 'arch':_tax_form, 'fields':_tax_fields, 'state':[('end','Cancel'),('pdf','Print VAT Declaration')]}, + }, + 'pdf': { + 'actions': [], + 'result': {'type':'print', 'report': 'l10n_lu.tax.report.print', 'state':'end'}, + }, + } +wizard_report('l10n_lu.tax.report.wizard') + diff --git a/addons/lunch/__init__.py b/addons/lunch/__init__.py new file mode 100644 index 00000000000..949e893c0f0 --- /dev/null +++ b/addons/lunch/__init__.py @@ -0,0 +1,6 @@ +# -*- encoding: utf-8 -*- +import lunch +import wizard +import report +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/lunch/__terp__.py b/addons/lunch/__terp__.py new file mode 100644 index 00000000000..46da1f5e13f --- /dev/null +++ b/addons/lunch/__terp__.py @@ -0,0 +1,15 @@ +# -*- encoding: utf-8 -*- +{ + "name": "Lunch Module", + "author": "Tiny", + "version": "0.1", + "depends": ["base", "process", "hr"], + "init_xml": [], + "update_xml": ['lunch_wizard.xml', 'lunch_view.xml', 'lunch_report.xml', + 'process/lunch_process.xml' + ], + "demo_xml": ['lunch_demo.xml'], + "installable": True, +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/lunch/lunch.py b/addons/lunch/lunch.py new file mode 100644 index 00000000000..167a075d95b --- /dev/null +++ b/addons/lunch/lunch.py @@ -0,0 +1,171 @@ +# -*- encoding: utf-8 -*- +from osv import osv, fields +import time + +class lunch_category(osv.osv): + _name = 'lunch.category' + _description = "Category" + + _columns = { + 'name': fields.char('Name', required=True, size=50), + } + + _order = 'name' + +lunch_category() + +class lunch_product(osv.osv): + _name = 'lunch.product' + + def _category_name_get(self, cr, uid, context={}): + obj = self.pool.get('lunch.category') + cat_ids= obj.search(cr,uid,[]) + res = obj.read(cr,uid,cat_ids,['name', 'category']) + return [(str(r['id']), r['name']) for r in res]+ [('0','')] + + _columns = { + 'name': fields.char('Name', size=50, required=True), + 'category_id': fields.selection(_category_name_get, 'Category', size=32), + 'description': fields.char('Description', size=128, required=False), + 'price': fields.float('Price', digits=(16,2)), + 'active': fields.boolean('Active'), + } + + _defaults = { + 'active': lambda *a : True, + } + +lunch_product() + +class lunch_cashbox(osv.osv): + _name='lunch.cashbox' + + def amount_available(self, cr, uid, ids, field_name, arg, context): + cr.execute("SELECT box,sum(amount) from lunch_cashmove where active = 't' group by box") + r = dict(cr.fetchall()) + for i in ids : + r.setdefault(i,0) + return r + + _columns={ + 'manager':fields.many2one('res.users','Manager'), + 'name':fields.char('Name',size=30,required=True, unique = True), + 'sum_remain': fields.function(amount_available, method=True, string='Remained Total'), + } + +lunch_cashbox() + + + + +class lunch_cashmove(osv.osv): + _name= 'lunch.cashmove' + + _columns={ + 'name': fields.char('Name',size=128), + 'user_cashmove': fields.many2one('res.users','User Name', required=True), + 'amount': fields.float('Amount', digits=(16,2)), + 'box':fields.many2one('lunch.cashbox','Box Name',size=30,required=True), + 'active':fields.boolean('Active'), + 'create_date': fields.datetime('Created date', readonly=True), + } + + _defaults={ + 'active': lambda *a: True, + } + +lunch_cashmove() + + + +class lunch_order(osv.osv): + _name='lunch.order' + _rec_name= "user_id" + + def _price_get(self, cr, uid, ids, name, args, context=None): + res = {} + for o in self.browse(cr, uid, ids): + res[o.id] = o.product.price + return res + + _columns={ + 'user_id': fields.many2one('res.users','User Name', required=True, + readonly=True, states={'draft':[('readonly',False)]}), + 'product':fields.many2one('lunch.product','Product', required=True, + readonly=True, states={'draft':[('readonly',False)]}, change_default=True), + 'date': fields.date('Date',readonly=True,states={'draft':[('readonly',False)]}), + 'cashmove':fields.many2one('lunch.cashmove', 'CashMove' , readonly=True ), + 'descript':fields.char('Description Order', readonly=True, size=50, + states={'draft':[('readonly',False)]}), + 'state': fields.selection([('draft','Draft'), ('confirmed','Confirmed'),], + 'State', readonly=True, select=True), + 'price': fields.function(_price_get, method=True, string="Price"), + } + + _defaults={ + 'user_id': lambda self,cr,uid,context: uid, + 'date': lambda self,cr,uid,context: time.strftime('%Y-%m-%d'), + 'state': lambda self,cr,uid,context: 'draft', + } + + def confirm(self,cr,uid,ids,box,context): + cashmove_ref= self.pool.get('lunch.cashmove') + for order in self.browse(cr,uid,ids): + if order.state == 'confirmed': + continue + new_id= cashmove_ref.create(cr,uid,{'name': order.product.name+' order', + 'amount':-order.product.price, + 'user_cashmove':order.user_id.id, + 'box':box, + 'active':True, + }) + self.write(cr,uid,[order.id],{'cashmove':new_id, 'state':'confirmed'}) + return {} + + def lunch_order_cancel(self,cr,uid,ids,context): + orders= self.browse(cr,uid,ids) + for order in orders: + if not order.cashmove: + continue + self.pool.get('lunch.cashmove').unlink(cr, uid, [order.cashmove.id]) + self.write(cr,uid,ids,{'state':'draft'}) + return {} + + def onchange_product(self, cr, uid, ids, product): + if not product: + return {'value': {'price': 0.0}} + price = self.pool.get('lunch.product').read(cr, uid, product, ['price'])['price'] + return {'value': {'price': price}} + +lunch_order() + +class report_lunch_amount(osv.osv): + _name='report.lunch.amount' + _description = "Amount available by user and box" + _auto = False + _rec_name= "user" + + _columns = { + 'user_id': fields.many2one('res.users','User Name',readonly=True), + 'amount': fields.float('Amount', readonly=True, digits=(16,2)), + 'box':fields.many2one('lunch.cashbox','Box Name',size=30,readonly=True), + } + + def init(self, cr): + cr.execute(""" + create or replace view report_lunch_amount as ( + select + min(lc.id) as id, + lc.user_cashmove as user_id, + sum(amount) as amount, + lc.box as box + from + lunch_cashmove lc + where + active = 't' + group by lc.user_cashmove, lc.box + )""") + +report_lunch_amount() +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/lunch/lunch_demo.xml b/addons/lunch/lunch_demo.xml new file mode 100644 index 00000000000..e26680f5253 --- /dev/null +++ b/addons/lunch/lunch_demo.xml @@ -0,0 +1,20 @@ + + + + + + Sandwich + + + + Club + + 2.75 + + + + Cashbox + + + + diff --git a/addons/lunch/lunch_report.xml b/addons/lunch/lunch_report.xml new file mode 100644 index 00000000000..3cdd8cb418c --- /dev/null +++ b/addons/lunch/lunch_report.xml @@ -0,0 +1,14 @@ + + + + + + + diff --git a/addons/lunch/lunch_view.xml b/addons/lunch/lunch_view.xml new file mode 100644 index 00000000000..5862089067a --- /dev/null +++ b/addons/lunch/lunch_view.xml @@ -0,0 +1,232 @@ + + + + + + + + + + Order + lunch.order + +
+ + + + + + + + + +
+
+
+ + + Order + lunch.order + tree + + + + + + + + + + + + + + + + + Make order + lunch.order + form,tree + + + + + Order of the day + lunch.order + [('date','=',time.strftime('%Y-%m-%d'))] + + + + + + CashBox + lunch.cashbox + +
+ + + + +
+ + + CashBox + lunch.cashbox + tree + + + + + + + + + + + CashBox + lunch.cashbox + + + + + CashMove + lunch.cashmove + +
+ + + + + + + +
+ + + CashMove + lunch.cashmove + tree + + + + + + + + + + + + + CashMove + lunch.cashmove + + + + + + Category of product + lunch.category + +
+ + + + +
+ + + Category + lunch.category + tree + + + + + + + + + + Category of product + lunch.category + + + + Products + form + lunch.product + +
+ + + + + + + +
+ + + + Products + lunch.product + tree + + + + + + + + + + + + Product + lunch.product + + + + + + + + + Lunch amount + report.lunch.amount + tree + + + + + + + + + + + Lunch amount + report.lunch.amount + form + +
+ + + + + +
+ + + + Lunch amount + report.lunch.amount + form + tree,form + + +
+
+ + diff --git a/addons/lunch/lunch_wizard.xml b/addons/lunch/lunch_wizard.xml new file mode 100644 index 00000000000..ec9f7fea855 --- /dev/null +++ b/addons/lunch/lunch_wizard.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/addons/lunch/process/lunch_process.xml b/addons/lunch/process/lunch_process.xml new file mode 100644 index 00000000000..4818d9d93f9 --- /dev/null +++ b/addons/lunch/process/lunch_process.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/addons/lunch/report/__init__.py b/addons/lunch/report/__init__.py new file mode 100644 index 00000000000..efaffa8d307 --- /dev/null +++ b/addons/lunch/report/__init__.py @@ -0,0 +1,4 @@ +# -*- encoding: utf-8 -*- +import order +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/lunch/report/order.py b/addons/lunch/report/order.py new file mode 100644 index 00000000000..7824bade083 --- /dev/null +++ b/addons/lunch/report/order.py @@ -0,0 +1,53 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Copyright (c) 2006 TINY SPRL. (http://tiny.be) All Rights Reserved. +# +# 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 +from osv import osv + + +class order(report_sxw.rml_parse): + + def sum_price(self, orders): + res = 0.0 + for o in orders: + res += o.price + return res + + def __init__(self, cr, uid, name, context): + super(order, self).__init__(cr, uid, name, context) + + self.localcontext.update({ + 'time': time, + 'sum_price': self.sum_price, + }) + +report_sxw.report_sxw('report.lunch.order', 'lunch.order', + 'addons/lunch/report/order.rml',parser=order, header=False) +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/lunch/report/order.rml b/addons/lunch/report/order.rml new file mode 100644 index 00000000000..a7bc1b32cdd --- /dev/null +++ b/addons/lunch/report/order.rml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Printed at : [[time.strftime("%Hh%M")]] + + + + + + + + + + + Name + + + Order + + + Description + + + Unit Price + + + +
+ + + +
+ + + + [[repeatIn(objects, 'o') ]] + [[ o.user_id.name ]] + + + [[o.product.name ]] + + + [[ o.descript ]] + + + + + + [['%.2f' % o.price ]] + + + + + + + + + + + + + + + + + + + + [[ '%.2f' % sum_price(objects) ]] + + + + + + +
+
+ diff --git a/addons/lunch/wizard/__init__.py b/addons/lunch/wizard/__init__.py new file mode 100644 index 00000000000..26328e41dc2 --- /dev/null +++ b/addons/lunch/wizard/__init__.py @@ -0,0 +1,6 @@ +# -*- encoding: utf-8 -*- +import confirm +import cancel +import reset_box +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/lunch/wizard/cancel.py b/addons/lunch/wizard/cancel.py new file mode 100644 index 00000000000..15ad6b96451 --- /dev/null +++ b/addons/lunch/wizard/cancel.py @@ -0,0 +1,34 @@ +# -*- encoding: utf-8 -*- + +import wizard +import netsvc +import ir +import pooler + +cancel_form = """ +
+
- + diff --git a/addons/membership/security/ir.model.access.csv b/addons/membership/security/ir.model.access.csv index a641bd47522..de35a7c8adc 100644 --- a/addons/membership/security/ir.model.access.csv +++ b/addons/membership/security/ir.model.access.csv @@ -1,4 +1,5 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_membership_membership_line,membership.membership_line,model_membership_membership_line,base.group_user,1,1,1,1 -access_report_partner_member_year,report.partner_member.year,model_report_partner_member_year,base.group_user,1,0,0,0 -access_report_partner_member_year_new,report.partner_member.year_new,model_report_partner_member_year_new,base.group_user,1,0,0,0 +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_membership_membership_line_partner_manager","membership.membership_line partner_manager","model_membership_membership_line","base.group_partner_manager",1,1,1,1 +"access_membership_membership_line","membership.membership_line","model_membership_membership_line",,1,0,0,0 +"access_report_partner_member_year","report.partner_member.year","model_report_partner_member_year","base.group_partner_manager",1,0,0,0 +"access_report_partner_member_year_new","report.partner_member.year_new","model_report_partner_member_year_new","base.group_partner_manager",1,0,0,0 diff --git a/addons/mrp/i18n/fr_FR.po b/addons/mrp/i18n/fr_FR.po index 3e96a958e75..98d6df953dd 100644 --- a/addons/mrp/i18n/fr_FR.po +++ b/addons/mrp/i18n/fr_FR.po @@ -1,24 +1,26 @@ -# Translation of OpenERP Server. -# This file containt the translation of the following modules: -# * mrp +# French translation for openobject-addons +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2008. # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 4.3.0" -"Report-Msgid-Bugs-To: support@openerp.com" -"POT-Creation-Date: 2008-09-11 15:41:43+0000" -"PO-Revision-Date: 2008-09-11 15:41:43+0000" -"Last-Translator: <>" -"Language-Team: " -"MIME-Version: 1.0" -"Content-Type: text/plain; charset=UTF-8" -"Content-Transfer-Encoding: " -"Plural-Forms: " +"Project-Id-Version: OpenERP Server 4.3.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2008-09-05 13:23+0000\n" +"PO-Revision-Date: 2008-10-14 13:19+0000\n" +"Last-Translator: Olivier Laurent \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2008-10-14 13:28+0000\n" +"X-Generator: Launchpad (build Unknown)\n" #. module: mrp #: field:mrp.workcenter,time_efficiency:0 msgid "Time Efficiency" -msgstr "Efficacité temporelle" +msgstr "Éfficacité dans le temps" #. module: mrp #: selection:mrp.procurement,state:0 @@ -33,7 +35,7 @@ msgstr "Mouvements créés" #. module: mrp #: model:ir.model,name:mrp.model_mrp_bom_revision msgid "Bill of material revisions" -msgstr "Révisions de la nomenclature" +msgstr "Révisions de la Nomenclature" #. module: mrp #: view:mrp.production:0 @@ -47,8 +49,13 @@ msgstr "Auteur" #. module: mrp #: help:mrp.bom,type:0 -msgid "Use a phantom bill of material in lines that have a sub-bom and that have to be automatically computed in one line, without habing two production orders." -msgstr "Utilise une note de matériel fantôme ayant un sub-born et devant être calculé automatiquement en une ligne, sans avoir deux ordres de fabrication." +msgid "" +"Use a phantom bill of material in lines that have a sub-bom and that have to " +"be automatically computed in one line, without habing two production orders." +msgstr "" +"Utilisez une nomenclature fantôme dans les lignes qui ont une sous-" +"nomenclature et qui doivent être automatiquement calculée en une ligne, sans " +"avoir deux ordres de production." #. module: mrp #: field:mrp.workcenter,costs_cycle:0 @@ -58,22 +65,28 @@ msgstr "Coût par cycle" #. module: mrp #: wizard_view:mrp.procurement.compute.all,init:0 msgid "Scheduler Parameters" -msgstr "Paramètres du calcul des besoins" +msgstr "Paramètres de la plannification" #. module: mrp #: view:mrp.procurement:0 msgid "Planification" -msgstr "" +msgstr "Planification" #. module: mrp #: rml:bom.structure:0 msgid "BOM" -msgstr "BOM" +msgstr "Nomenclature" + +#. module: mrp +#: wizard_field:mrp.procurement.compute.all,init,user_id:0 +#: wizard_field:mrp.procurement.compute,init,user_id:0 +msgid "Send Result To" +msgstr "Envoyer les résultats à" #. module: mrp #: field:mrp.bom.revision,indice:0 msgid "Revision" -msgstr "Index" +msgstr "Révision" #. module: mrp #: field:mrp.workcenter,costs_journal_id:0 @@ -81,101 +94,97 @@ msgid "Analytic Journal" msgstr "Journal analytique" #. module: mrp -#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc2 -#: model:ir.ui.menu,name:mrp.menu_wiz_mrp_proc2 -msgid "Compute Stock Minimum Rules Only" -msgstr "" - -#. module: mrp -#: help:res.company,po_lead:0 -msgid "This is the leads/security time for each purchase order." -msgstr "" +#: view:mrp.procurement:0 +msgid "Details" +msgstr "Détails" #. module: mrp #: field:mrp.production,location_dest_id:0 msgid "Finnished Products Location" -msgstr "" +msgstr "Localisation des Produits Finis" #. module: mrp -#: field:mrp.procurement,product_uos_qty:0 -msgid "UoS Quantity" -msgstr "" +#: wizard_field:mrp.procurement.compute.all,init,picking_lead:0 +#: wizard_field:mrp.procurement.compute,init,picking_lead:0 +msgid "Packing Lead Time" +msgstr "Délai de colisage" #. module: mrp #: selection:mrp.workcenter,type:0 msgid "Human Resource" -msgstr "Ressource humaine" +msgstr "Resources Humaines" #. module: mrp #: wizard_button:mrp.procurement.compute.all,init,compute:0 #: wizard_button:mrp.procurement.compute,init,compute:0 #: wizard_button:mrp.procurement.orderpoint.compute,init,compute:0 msgid "Compute Procurements" -msgstr "Calculer les besoins" +msgstr "Calculer les Approvisionnements" #. module: mrp -#: view:mrp.routing.workcenter:0 -msgid "Routing Workcenters" -msgstr "Centre de travail de routage" +#: wizard_field:mrp.procurement.compute.all,init,po_lead:0 +#: wizard_field:mrp.procurement.compute,init,po_lead:0 +msgid "PO Lead Time" +msgstr "" #. module: mrp #: field:mrp.procurement,date_close:0 msgid "Date Closed" -msgstr "Date fermée" +msgstr "Date de fin" #. module: mrp #: view:mrp.production:0 msgid "Finnished Products" -msgstr "" +msgstr "Produits Finis" #. module: mrp #: rml:bom.structure:0 msgid "UoM" -msgstr "UoM" +msgstr "UdM" #. module: mrp -#: field:mrp.production.product.line,production_id:0 -#: field:mrp.production.workcenter.line,production_id:0 -msgid "Production Order" -msgstr "Ordre de fabrication" +#: field:mrp.procurement,origin:0 +#: field:mrp.production,origin:0 +msgid "Origin" +msgstr "Origine" #. module: mrp #: field:mrp.production.workcenter.line,hour:0 msgid "Nbr of hour" -msgstr "Nb d'heure" +msgstr "Nbr d'heures" #. module: mrp #: field:mrp.workcenter,time_start:0 msgid "Time before prod." -msgstr "Temps avant prod." +msgstr "Délai avant production" #. module: mrp #: field:mrp.bom,date_stop:0 msgid "Valid until" -msgstr "Valide jusqu'à" +msgstr "Valide jusqu'au" #. module: mrp #: model:ir.model,name:mrp.model_mrp_routing_workcenter msgid "Routing workcenter usage" -msgstr "Utilisation de la gamme" +msgstr "Usage des Centre de Travail d'Acheminement" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_routing_action #: model:ir.ui.menu,name:mrp.menu_mrp_routing_action msgid "Routings" -msgstr "" +msgstr "Acheminements" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_property_group_action #: model:ir.ui.menu,name:mrp.menu_mrp_property_group_action msgid "Property Categories" -msgstr "" +msgstr "Catégories de la Propriété" #. module: mrp -#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc1 -#: model:ir.ui.menu,name:mrp.menu_wiz_mrp_proc1 -msgid "Compute Procurements Only" -msgstr "" +#: field:mrp.procurement,purchase_id:0 +#: field:stock.warehouse.orderpoint,procurement_id:0 +msgid "Purchase Order" +msgstr "Commande d'achat" #. module: mrp #: model:ir.actions.act_window,name:mrp.act_product_product_2_mrp_bom @@ -188,77 +197,76 @@ msgstr "Nomenclature" #. module: mrp #: wizard_view:mrp.workcenter.load,init:0 msgid "Select time unit" -msgstr "Sélectionner une unité de temps" +msgstr "Sélectionner l'unité de temps" #. module: mrp #: constraint:mrp.bom:0 msgid "Error ! You can not create recursive BoM." -msgstr "" +msgstr "Erreur! Vous ne pouvez pas créer de nomenclatures récursives" #. module: mrp #: wizard_field:product_price,init,number:0 msgid "Number of products to produce" -msgstr "Nombre de produits à produire" - -#. module: mrp -#: field:res.company,manufacturing_lead:0 -msgid "Manufacturity Lead Time" -msgstr "" +msgstr "Nombre de produits à manufacturer" #. module: mrp #: field:stock.warehouse.orderpoint,logic:0 msgid "Reordering Mode" -msgstr "Mode de cmde." +msgstr "Mode de réagencement" #. module: mrp -#: field:mrp.procurement,origin:0 -#: field:mrp.production,origin:0 -msgid "Origin" -msgstr "Origine" +#: wizard_view:mrp.procurement.compute.all,init:0 +#: wizard_view:mrp.procurement.compute,init:0 +msgid "Control" +msgstr "Contrôle" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_procurement_action4 #: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action4 msgid "Exceptions procurements to fix" -msgstr "Approvisionnements en exception à fixer" +msgstr "Approvisionnement en Exception à Corriger" #. module: mrp #: model:ir.ui.menu,name:mrp.menu_mrp_reordering msgid "Reordering Policy" -msgstr "Politique de réapprovisionnement" +msgstr "Politique de réagencement" #. module: mrp #: field:mrp.production,move_lines:0 msgid "Products Consummed" -msgstr "Mouvements" +msgstr "Produits consommés" #. module: mrp #: model:ir.ui.menu,name:mrp.menu_mrp_configuration -#: view:res.company:0 msgid "Configuration" msgstr "Configuration" #. module: mrp #: field:mrp.production,name:0 msgid "Reference" -msgstr "" +msgstr "Référence" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_procurement_action2 #: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action2 msgid "Draft procurements" -msgstr "Approvisionnements brouillons" +msgstr "Approvisionnements Brouillon" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_procurement_action11 #: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action11 msgid "Temporary Procurement Exceptions" -msgstr "" +msgstr "Approvisionnement en Exception Temporaire" #. module: mrp #: selection:mrp.bom,type:0 msgid "Normal BoM" -msgstr "Nomenclature normale" +msgstr "UdM Standard" + +#. module: mrp +#: field:mrp.workcenter,time_cycle:0 +msgid "Time for 1 cycle (hour)" +msgstr "Temps d'1 cycle (heures)" #. module: mrp #: field:mrp.bom,product_uos_qty:0 @@ -270,12 +278,12 @@ msgstr "" #: wizard_field:mrp.procurement.compute.all,init,automatic:0 #: wizard_field:mrp.procurement.orderpoint.compute,init,automatic:0 msgid "Automatic orderpoint" -msgstr "Point de commande automatique" +msgstr "" #. module: mrp #: view:mrp.routing:0 msgid "Workcenter Operations" -msgstr "Opérations" +msgstr "Opérations du Centre de Travail" #. module: mrp #: view:mrp.bom:0 @@ -285,17 +293,17 @@ msgstr "Révisions" #. module: mrp #: field:mrp.property,composition:0 msgid "Properties composition" -msgstr "Composition de propriétés" +msgstr "Composition des Propriétés" #. module: mrp #: field:mrp.bom,product_efficiency:0 msgid "Product Efficiency" -msgstr "Efficacité du produit" +msgstr "Efficacité Produit" #. module: mrp #: model:ir.model,name:mrp.model_stock_warehouse_orderpoint msgid "Orderpoint minimum rule" -msgstr "Règle de stock minimum" +msgstr "" #. module: mrp #: wizard_view:mrp.procurement.compute,init:0 @@ -312,7 +320,7 @@ msgstr "Confirmer" #: rml:bom.structure:0 #: model:ir.actions.report.xml,name:mrp.report_bom_structure msgid "BOM Structure" -msgstr "Structure BOM" +msgstr "Structure de la Nomenclature" #. module: mrp #: selection:mrp.production,state:0 @@ -322,12 +330,12 @@ msgstr "En production" #. module: mrp #: field:stock.warehouse.orderpoint,qty_multiple:0 msgid "Qty Multiple" -msgstr "Multiple qté." +msgstr "Multiple Qté" #. module: mrp #: model:ir.model,name:mrp.model_mrp_production_workcenter_line msgid "Production workcenters used" -msgstr "Utilisation des postes de charge" +msgstr "Centre de Travail de Production Utilisés" #. module: mrp #: field:mrp.procurement,priority:0 @@ -338,24 +346,24 @@ msgstr "Priorité" #. module: mrp #: selection:mrp.procurement,state:0 msgid "Waiting" -msgstr "" +msgstr "En attente" #. module: mrp #: field:mrp.production,workcenter_lines:0 msgid "Workcenters Utilisation" -msgstr "Utilisation centre de travail" +msgstr "Utilisation du Centre de Travail" #. module: mrp #: model:ir.model,name:mrp.model_mrp_routing #: field:mrp.bom,routing_id:0 #: view:mrp.routing:0 msgid "Routing" -msgstr "Gamme" +msgstr "Acheminement" #. module: mrp #: field:mrp.bom,product_rounding:0 msgid "Product Rounding" -msgstr "Arrondi produit" +msgstr "" #. module: mrp #: wizard_button:mrp.workcenter.load,init,report:0 @@ -365,7 +373,7 @@ msgstr "Imprimer" #. module: mrp #: selection:stock.warehouse.orderpoint,logic:0 msgid "Best price (not yet active!)" -msgstr "Meilleur prix (pas encore activé)" +msgstr "Meilleur Prix (pas encore actif!)" #. module: mrp #: field:mrp.workcenter,type:0 @@ -375,23 +383,18 @@ msgstr "Type" #. module: mrp #: view:mrp.procurement:0 msgid "Product & Location" -msgstr "" +msgstr "Produit & Localisation" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_procurement_new #: model:ir.ui.menu,name:mrp.menu_mrp_procurement_new msgid "New Procurement" -msgstr "" - -#. module: mrp -#: view:res.company:0 -msgid "MRP & Logistic Scheduler" -msgstr "" +msgstr "Nouvel Approvisionnement" #. module: mrp #: view:mrp.production:0 msgid "Recreate Picking" -msgstr "Recréer le colisage" +msgstr "Recréer le coli" #. module: mrp #: view:mrp.bom:0 @@ -401,25 +404,20 @@ msgstr "Recréer le colisage" #: view:mrp.routing.workcenter:0 #: view:mrp.workcenter:0 msgid "General Information" -msgstr "Information générale" +msgstr "Infos générales" #. module: mrp #: selection:mrp.workcenter,type:0 msgid "Tool" msgstr "Outil" -#. module: mrp -#: help:res.company,manufacturing_lead:0 -msgid "Security days for each manufacturing operation." -msgstr "" - #. module: mrp #: field:mrp.bom,product_qty:0 #: field:mrp.production.product.line,product_qty:0 #: field:mrp.production,product_qty:0 #: field:mrp.production,product_uos_qty:0 msgid "Product Qty" -msgstr "Qté produit" +msgstr "Qté de Produit" #. module: mrp #: field:mrp.routing.workcenter,cycle_nbr:0 @@ -429,47 +427,37 @@ msgstr "Nombre de cycle" #. module: mrp #: rml:bom.structure:0 msgid "Product Name" -msgstr "Nom du produit" +msgstr "Nom du Produit" #. module: mrp #: view:mrp.procurement:0 msgid "References" -msgstr "" +msgstr "Références" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_bom_form_action_new #: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action_new msgid "New Bill of Materials" -msgstr "" - -#. module: mrp -#: field:mrp.workcenter,costs_cycle_account_id:0 -msgid "Cycle Account" -msgstr "Compte cycle" +msgstr "Nouvelle Nomenclature" #. module: mrp #: constraint:ir.ui.view:0 msgid "Invalid XML for View Architecture!" -msgstr "" +msgstr "XML non valide pour l'architecture de la vue" #. module: mrp #: field:mrp.workcenter,time_stop:0 msgid "Time after prod." -msgstr "Temps après prod." +msgstr "" #. module: mrp #: wizard_field:mrp.workcenter.load,init,time_unit:0 msgid "Type of period" -msgstr "Type de période" +msgstr "Type de Période" #. module: mrp -#: field:mrp.production,picking_id:0 -msgid "Packing list" -msgstr "Liste de colisage" - -#. module: mrp -#: field:res.company,schedule_range:0 -msgid "Scheduler Range" +#: field:mrp.workcenter,costs_cycle_account_id:0 +msgid "Cycle Account" msgstr "" #. module: mrp @@ -480,12 +468,12 @@ msgstr "Valide depuis" #. module: mrp #: field:stock.warehouse.orderpoint,product_max_qty:0 msgid "Max Quantity" -msgstr "Quantité max" +msgstr "Quantité Max" #. module: mrp #: field:mrp.bom,revision_type:0 msgid "indice type" -msgstr "Type d'index" +msgstr "Type d'indice" #. module: mrp #: model:ir.model,name:mrp.model_mrp_procurement @@ -497,12 +485,12 @@ msgstr "Approvisionnement" #: model:ir.actions.act_window,name:mrp.mrp_procurement_action #: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action msgid "Procurement Orders" -msgstr "" +msgstr "Ordre d'Approvisionnement" #. module: mrp #: view:mrp.workcenter:0 msgid "Capacity Information" -msgstr "Information de capacité" +msgstr "Information sur la Capacité" #. module: mrp #: model:ir.model,name:mrp.model_mrp_property @@ -512,22 +500,28 @@ msgstr "Propriété" #. module: mrp #: field:mrp.routing.workcenter,routing_id:0 msgid "Parent Routing" -msgstr "Routage parent" +msgstr "Acheminement Parent" #. module: mrp #: model:ir.actions.wizard,name:mrp.wizard_price msgid "Product Cost Structure" -msgstr "Structure de coût du produit" +msgstr "Structure de Coût du Produit" #. module: mrp -#: view:mrp.workcenter:0 -msgid "Analytic Accounting" -msgstr "Comptabilité analytique" +#: field:mrp.procurement,product_uos_qty:0 +msgid "UoS Quantity" +msgstr "" + +#. module: mrp +#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc2 +#: model:ir.ui.menu,name:mrp.menu_wiz_mrp_proc2 +msgid "Compute stock minimum rules" +msgstr "Calculer les règles de stock minimum" #. module: mrp #: field:stock.warehouse.orderpoint,product_min_qty:0 msgid "Min Quantity" -msgstr "Quantité min" +msgstr "Quantité Min." #. module: mrp #: selection:mrp.procurement,priority:0 @@ -535,6 +529,11 @@ msgstr "Quantité min" msgid "Urgent" msgstr "Urgent" +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_root +msgid "Production Management" +msgstr "Gestion de la Production" + #. module: mrp #: selection:mrp.property,composition:0 msgid "plus" @@ -549,12 +548,12 @@ msgstr "Nomenclature" #. module: mrp #: view:mrp.bom:0 msgid "BoM Structure" -msgstr "Structure de nomenclature" +msgstr "Structure de la Nomenclature" #. module: mrp #: field:mrp.production,date_start:0 msgid "Start Date" -msgstr "Date début" +msgstr "Date de début" #. module: mrp #: field:mrp.workcenter,timesheet_id:0 @@ -564,54 +563,60 @@ msgstr "Feuille de présence" #. module: mrp #: selection:mrp.production,state:0 msgid "Waiting Goods" -msgstr "Attente marchandises" +msgstr "en attende de Marchandises" #. module: mrp #: field:mrp.workcenter,costs_hour_account_id:0 msgid "Hour Account" -msgstr "Compte heure" +msgstr "Compte Horaire" #. module: mrp #: selection:mrp.bom,revision_type:0 msgid "alphabetical indices" -msgstr "Indexes alphabétiques" +msgstr "Indices Alphabétiques" #. module: mrp #: field:mrp.production,product_lines:0 msgid "Scheduled goods" -msgstr "Matériel planifié" +msgstr "Biens Prévus" #. module: mrp #: view:mrp.procurement:0 msgid "Procurement Lines" -msgstr "Lignes d'approvisionnement" +msgstr "Lignes d'Approvisionnement" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_production_new #: model:ir.ui.menu,name:mrp.menu_production_orders_new msgid "New Production Order" -msgstr "" +msgstr "Nouvel Ordre de Production" #. module: mrp #: field:mrp.procurement,purchase_line_id:0 msgid "Purchase Order Line" -msgstr "Détail d'une commande d'achat" +msgstr "Ligne de commande" #. module: mrp #: field:mrp.bom.revision,last_indice:0 msgid "last indice" -msgstr "Dernier index" +msgstr "Dernier Indice" #. module: mrp #: field:mrp.bom,revision_ids:0 #: view:mrp.bom.revision:0 msgid "BoM Revisions" -msgstr "Révisions de nomenclature" +msgstr "Révisions des Nomenclatures" + +#. module: mrp +#: wizard_field:mrp.procurement.compute.all,init,schedule_cycle:0 +#: wizard_field:mrp.procurement.compute,init,schedule_cycle:0 +msgid "Scheduler Cycle" +msgstr "Cycle de Prévision" #. module: mrp #: view:mrp.procurement:0 msgid "Retry" -msgstr "Réessayer" +msgstr "Réessayez" #. module: mrp #: selection:mrp.procurement,state:0 @@ -625,9 +630,10 @@ msgid "Sets / Phantom" msgstr "" #. module: mrp -#: constraint:ir.model:0 -msgid "The Object name must start with x_ and not contain any special character !" -msgstr "" +#: selection:mrp.procurement,priority:0 +#: selection:mrp.production,priority:0 +msgid "Not urgent" +msgstr "Non urgent" #. module: mrp #: field:mrp.routing.workcenter,hour_nbr:0 @@ -635,21 +641,22 @@ msgid "Number of hours" msgstr "Nombre d'heures" #. module: mrp -#: field:res.company,security_lead:0 +#: wizard_field:mrp.procurement.compute.all,init,security_lead:0 +#: wizard_field:mrp.procurement.compute,init,security_lead:0 msgid "Security Days" -msgstr "" +msgstr "Jours de sécurité" #. module: mrp #: field:mrp.bom,position:0 msgid "Internal Ref." -msgstr "Position N°" +msgstr "Réf. Interne" #. module: mrp #: field:mrp.procurement,state:0 #: field:mrp.production,state:0 #: view:mrp.procurement:0 msgid "Status" -msgstr "" +msgstr "État" #. module: mrp #: wizard_view:product_price,init:0 @@ -666,27 +673,28 @@ msgstr "Normal" #: model:ir.actions.act_window,name:mrp.mrp_production_action2 #: model:ir.ui.menu,name:mrp.menu_production_orders_start msgid "Production Orders To Start" -msgstr "" +msgstr "Ordres de Production à Commencer" #. module: mrp #: view:mrp.procurement:0 msgid "Procurement Details" -msgstr "" +msgstr "Détail de l'Approvisionnement" #. module: mrp #: selection:mrp.production,state:0 msgid "Ready to Produce" -msgstr "Prêt à produire" +msgstr "Prêt à Produire" #. module: mrp #: selection:mrp.production,state:0 msgid "Packing Exception" -msgstr "Exception de colisage" +msgstr "Exception de Colisage" #. module: mrp -#: field:mrp.bom.revision,name:0 -msgid "Modification name" -msgstr "Modification" +#: wizard_view:mrp.procurement.compute.all,init:0 +#: wizard_view:mrp.procurement.compute,init:0 +msgid "Time (days)" +msgstr "Temps (jours)" #. module: mrp #: field:mrp.bom,active:0 @@ -694,17 +702,22 @@ msgstr "Modification" #: field:mrp.workcenter,active:0 #: field:stock.warehouse.orderpoint,active:0 msgid "Active" -msgstr "Active" +msgstr "Actif" + +#. module: mrp +#: field:mrp.bom.revision,name:0 +msgid "Modification name" +msgstr "Nom de la Modification" #. module: mrp #: field:mrp.bom,type:0 msgid "BoM Type" -msgstr "Type de nomenclature" +msgstr "Type de Nomenclature" #. module: mrp #: field:mrp.bom,bom_id:0 msgid "Parent BoM" -msgstr "Nomenclature parente" +msgstr "Nomenclature Parente" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_property_action @@ -721,7 +734,7 @@ msgstr "Propriétés" #. module: mrp #: field:mrp.workcenter,costs_hour:0 msgid "Cost per hour" -msgstr "Coût par heure" +msgstr "Coût horaire" #. module: mrp #: field:mrp.procurement,date_planned:0 @@ -730,53 +743,68 @@ msgid "Scheduled date" msgstr "Date prévue" #. module: mrp -#: selection:mrp.procurement,state:0 -msgid "Exception" -msgstr "Exception" +#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc0 +#: model:ir.ui.menu,name:mrp.mrp_Sched_all +msgid "Compute all schedulers" +msgstr "Calculer toutes les prévisions" #. module: mrp #: selection:mrp.procurement,priority:0 #: selection:mrp.production,priority:0 msgid "Very Urgent" -msgstr "Très urgent" +msgstr "très Urgent" #. module: mrp #: field:mrp.procurement,procure_method:0 msgid "Procurement Method" -msgstr "Méthode d'appro." +msgstr "Méthode d'Approvisionnement" #. module: mrp #: field:mrp.production.workcenter.line,cycle:0 msgid "Nbr of cycle" -msgstr "Nb de cycle" +msgstr "Nbre de cycles" #. module: mrp #: view:mrp.procurement:0 #: view:mrp.production:0 msgid "Extra Information" -msgstr "" +msgstr "Information supplémentaire" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_production_action #: model:ir.ui.menu,name:mrp.menu_mrp_production_action #: view:mrp.production:0 msgid "Production Orders" -msgstr "" +msgstr "Ordres de Production" #. module: mrp #: view:mrp.procurement:0 msgid "Run procurement" -msgstr "Lancer l'approvisionnement" +msgstr "Lancer l'Approvisionnement" #. module: mrp -#: help:res.company,schedule_range:0 -msgid "This is the time frame analysed by the scheduler when computing procurements. All procurement that are not between today and today+range are skipped for futur computation." +#: selection:stock.warehouse.orderpoint,logic:0 +msgid "Order to Max" msgstr "" #. module: mrp #: help:mrp.bom,routing_id:0 -msgid "The list of operations (list of workcenters) to produce the finnished product. The routing is mainly used to compute workcenter costs during operations and to plan futur loads on workcenters based on production plannification." -msgstr "La liste des opérations (liste des centres de travail) pour produire le produit fini. Le routage est principalement utilisé pour calculer les coûts de centre de travail pendant les opérations et pour planifier les charges futures sur les centres de travail sur base de la planification de production." +msgid "" +"The list of operations (list of workcenters) to produce the finnished " +"product. The routing is mainly used to compute workcenter costs during " +"operations and to plan futur loads on workcenters based on production " +"plannification." +msgstr "" +"La liste des opérations (liste des Centres de Travail) pour produire le " +"produit fini. L'acheminement est principalement utilisé pour calculer les " +"coûts des centres de travail pendant les opérations et pour plannifier les " +"charges futures sur les centres de travail basés sur la plannification de la " +"production." + +#. module: mrp +#: view:mrp.routing.workcenter:0 +msgid "Routing Workcenters" +msgstr "Centre de Travail d'Acheminement" #. module: mrp #: rml:bom.structure:0 @@ -787,13 +815,13 @@ msgstr "Quantité" #. module: mrp #: view:mrp.production:0 msgid "Production done" -msgstr "Production finie" +msgstr "Production Effectuée" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_bom_form_action #: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action msgid "Bill of Materials" -msgstr "" +msgstr "Nomenclature" #. module: mrp #: field:mrp.workcenter,costs_general_account_id:0 @@ -812,35 +840,24 @@ msgstr "Code" #: model:ir.actions.act_window,name:mrp.mrp_production_action4 #: model:ir.ui.menu,name:mrp.menu_production_orders_waiting4 msgid "Production Orders Waiting Products" -msgstr "" +msgstr "Ordres de Production en attente de Produits" #. module: mrp #: model:ir.model,name:mrp.model_mrp_property_group #: field:mrp.property,group_id:0 #: field:mrp.property.group,name:0 msgid "Property Group" -msgstr "Groupe de propriété" - -#. module: mrp -#: selection:mrp.procurement,priority:0 -#: selection:mrp.production,priority:0 -msgid "Not urgent" -msgstr "Non urgent" +msgstr "Groupe de Propriétés" #. module: mrp #: view:mrp.production:0 msgid "Confirm Production" -msgstr "Confirmer la production" - -#. module: mrp -#: help:res.company,security_lead:0 -msgid "This is the days added to what you promise to customers for security purpose" -msgstr "" +msgstr "Confirmer la Production" #. module: mrp #: selection:mrp.procurement,procure_method:0 msgid "from stock" -msgstr "Depuis le stock" +msgstr "du stock" #. module: mrp #: field:stock.move,procurements:0 @@ -851,12 +868,12 @@ msgstr "Approvisionnements" #: selection:mrp.procurement,state:0 #: selection:mrp.production,state:0 msgid "Done" -msgstr "Fait" +msgstr "Terminé" #. module: mrp #: view:mrp.production.workcenter.line:0 msgid "Production Workcenters" -msgstr "Centres de travail de production" +msgstr "Centre de Travail de Production" #. module: mrp #: wizard_button:product_price,init,end:0 @@ -872,34 +889,53 @@ msgstr "Annuler" #. module: mrp #: field:mrp.procurement,location_id:0 -#: field:stock.warehouse.orderpoint,location_id:0 msgid "Location" msgstr "Emplacement" #. module: mrp #: field:mrp.procurement,message:0 msgid "Latest error" -msgstr "Dernière erreur" +msgstr "Dernière Erreur" #. module: mrp -#: wizard_view:mrp.procurement.compute,init:0 -msgid "This wizard will schedule procurements." +#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc1 +#: model:ir.ui.menu,name:mrp.menu_wiz_mrp_proc1 +msgid "Compute procurement" +msgstr "Calculer l'Approvisionnement" + +#. module: mrp +#: view:mrp.workcenter:0 +msgid "Analytic Accounting" +msgstr "Comptabilité Analytique" + +#. module: mrp +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" msgstr "" +"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères " +"spéciaux !" #. module: mrp #: model:ir.model,name:mrp.model_mrp_production_product_line msgid "Production scheduled products" -msgstr "Production planifiée de produits" +msgstr "Produits plannifiés pour la production" #. module: mrp -#: field:mrp.workcenter,time_cycle:0 -msgid "Time for 1 cycle (hour)" -msgstr "Tps. pour un cycle (hr)" +#: field:mrp.production.product.line,production_id:0 +#: field:mrp.production.workcenter.line,production_id:0 +msgid "Production Order" +msgstr "Ordre de Production" + +#. module: mrp +#: selection:mrp.procurement,state:0 +msgid "Exception" +msgstr "Exception" #. module: mrp #: field:mrp.production,move_prod_id:0 msgid "Move product" -msgstr "Mouvement produit" +msgstr "Déplacer le produit" #. module: mrp #: selection:mrp.workcenter,type:0 @@ -918,15 +954,16 @@ msgid "Production" msgstr "Production" #. module: mrp -#: view:mrp.procurement:0 -msgid "Details" +#: wizard_field:mrp.procurement.compute.all,init,po_cycle:0 +#: wizard_field:mrp.procurement.compute,init,po_cycle:0 +msgid "PO Cycle" msgstr "" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_production_action3 #: model:ir.ui.menu,name:mrp.menu_mrp_production_action3 msgid "Production Orders in Progress" -msgstr "" +msgstr "Ordres de Production en Marche" #. module: mrp #: model:ir.actions.act_window,name:mrp.action_orderpoint_form @@ -935,22 +972,22 @@ msgstr "" #: model:ir.ui.menu,name:mrp.menu_action_orderpoint_form #: view:stock.warehouse.orderpoint:0 msgid "Minimum Stock Rules" -msgstr "Règles de stock minimum" +msgstr "Règles de Stock Minimum" #. module: mrp #: view:mrp.production:0 msgid "Production orders" -msgstr "" +msgstr "Ordres de Production" #. module: mrp #: field:mrp.procurement,close_move:0 msgid "Close Move at end" -msgstr "Clôturer le mouvement" +msgstr "" #. module: mrp #: field:mrp.workcenter,capacity_per_cycle:0 msgid "Capacity per Cycle" -msgstr "Capacité par cycle" +msgstr "Capacité par Cycle" #. module: mrp #: field:mrp.bom,product_id:0 @@ -977,7 +1014,7 @@ msgstr "Description" #. module: mrp #: selection:mrp.production,state:0 msgid "Canceled" -msgstr "Annulée" +msgstr "Annulé" #. module: mrp #: rml:bom.structure:0 @@ -988,7 +1025,7 @@ msgstr "-" #: field:mrp.bom,product_uos:0 #: field:mrp.production.product.line,product_uos:0 msgid "Product UOS" -msgstr "" +msgstr "UP Produit" #. module: mrp #: selection:mrp.procurement,state:0 @@ -1002,7 +1039,7 @@ msgstr "En cours" #: field:mrp.production,product_uos:0 #: field:stock.warehouse.orderpoint,product_uom:0 msgid "Product UOM" -msgstr "UDM de production" +msgstr "UDM produit" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_workcenter_action @@ -1010,17 +1047,17 @@ msgstr "UDM de production" #: model:ir.ui.menu,name:mrp.menu_mrp_workcenter_action #: view:mrp.production:0 msgid "Workcenters" -msgstr "" +msgstr "Centres de Travail" #. module: mrp #: view:mrp.procurement:0 msgid "UOM" -msgstr "UDM" +msgstr "UdM" #. module: mrp #: field:mrp.bom,bom_lines:0 msgid "BoM Lines" -msgstr "Lignes de nomenclature" +msgstr "Lignes de Nomenclature" #. module: mrp #: selection:mrp.procurement,procure_method:0 @@ -1032,38 +1069,27 @@ msgstr "Sur commande" msgid "Reservation" msgstr "Réservation" -#. module: mrp -#: model:ir.ui.menu,name:mrp.menu_mrp_root -msgid "Manufacturing" -msgstr "" - #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_procurement_action3 #: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action3 msgid "Unscheduled procurements" -msgstr "Approvisonnements imprévus" +msgstr "Approvisionnements non prévu" #. module: mrp #: view:mrp.production.lot.line:0 msgid "Production Products" -msgstr "Produits de production" +msgstr "" #. module: mrp #: field:mrp.production,date_finnished:0 msgid "End Date" -msgstr "Date fin" - -#. module: mrp -#: model:ir.actions.wizard,name:mrp.wiz_mrp_proc0 -#: model:ir.ui.menu,name:mrp.mrp_Sched_all -msgid "Compute All Schedulers" -msgstr "" +msgstr "Date de fin" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_bom_tree_action #: model:ir.ui.menu,name:mrp.menu_bom_tree msgid "Bill of Material Structure" -msgstr "" +msgstr "Structure de la Nomenclature" #. module: mrp #: field:mrp.bom,name:0 @@ -1081,7 +1107,7 @@ msgstr "Nom" #. module: mrp #: model:ir.actions.wizard,name:mrp.wizard_workcenter_load msgid "Workcenter load" -msgstr "Charge par poste" +msgstr "Charge du Centre de Travail" #. module: mrp #: view:mrp.procurement:0 @@ -1097,7 +1123,7 @@ msgstr "max" #: model:ir.actions.act_window,name:mrp.mrp_procurement_action5 #: model:ir.ui.menu,name:mrp.menu_mrp_procurement_action5 msgid "Exceptions procurements" -msgstr "Approvisionnements par exception" +msgstr "Approvisionnements en Exception" #. module: mrp #: field:mrp.procurement,product_uos:0 @@ -1107,22 +1133,17 @@ msgstr "" #. module: mrp #: field:mrp.production,location_src_id:0 msgid "Raw Products Location" -msgstr "" +msgstr "Emplacement des Produits Bruts" #. module: mrp #: view:mrp.production:0 msgid "Compute Data" -msgstr "Calculer données" - -#. module: mrp -#: view:mrp.production.lot.line:0 -msgid "Production Products Consommation" -msgstr "Consommation de produits de production" +msgstr "Calculer les Données" #. module: mrp #: field:mrp.procurement,product_uom:0 msgid "Product UoM" -msgstr "" +msgstr "UdM du Produit" #. module: mrp #: model:ir.model,name:mrp.model_mrp_workcenter @@ -1130,7 +1151,7 @@ msgstr "" #: field:mrp.routing.workcenter,workcenter_id:0 #: view:mrp.workcenter:0 msgid "Workcenter" -msgstr "Poste de charge" +msgstr "Centre de Travail" #. module: mrp #: wizard_button:product_price,init,price:0 @@ -1138,20 +1159,19 @@ msgid "Print product price" msgstr "Imprimer le prix du produit" #. module: mrp -#: field:mrp.procurement,purchase_id:0 -#: field:stock.warehouse.orderpoint,procurement_id:0 -msgid "Purchase Order" -msgstr "Commande d'achat" +#: field:mrp.production,picking_id:0 +msgid "Packing list" +msgstr "Liste des Colisages" #. module: mrp #: view:mrp.production:0 msgid "Start Production" -msgstr "Commencer la production" +msgstr "Démarrer la Production" #. module: mrp #: wizard_field:mrp.workcenter.load,init,measure_unit:0 msgid "Amount measuring unit" -msgstr "Unité de mesure" +msgstr "" #. module: mrp #: field:mrp.bom.revision,date:0 @@ -1161,7 +1181,7 @@ msgstr "Date de modification" #. module: mrp #: view:mrp.property.group:0 msgid "Properties categories" -msgstr "Catérogies de propriétés" +msgstr "Catégories des Propriétés" #. module: mrp #: field:mrp.bom,sequence:0 @@ -1179,36 +1199,30 @@ msgstr "min" #: model:ir.actions.act_window,name:mrp.mrp_bom_form_action2 #: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action2 msgid "Bill of Materials Components" -msgstr "" +msgstr "Composants de la Nomenclature" #. module: mrp #: view:mrp.production:0 #: view:mrp.production.product.line:0 msgid "Scheduled Products" -msgstr "" +msgstr "Produits Plannifiés" #. module: mrp -#: field:res.company,po_lead:0 -msgid "Purchase Lead Time" +#: view:mrp.production.lot.line:0 +msgid "Production Products Consommation" msgstr "" #. module: mrp #: view:mrp.production:0 msgid "Consumed Products" -msgstr "" +msgstr "Produits Concommés" #. module: mrp #: selection:mrp.bom,revision_type:0 msgid "numeric indices" -msgstr "Index numériques" +msgstr "Indices Numériques" #. module: mrp #: field:mrp.routing,location_id:0 msgid "Production Location" -msgstr "Emplacement de production" - -#. module: mrp -#: selection:stock.warehouse.orderpoint,logic:0 -msgid "Order to Max" -msgstr "Commander au max." - +msgstr "Emplacement de la Production" diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index e6139099b04..19965b42e67 100644 --- a/addons/mrp/mrp.py +++ b/addons/mrp/mrp.py @@ -902,7 +902,7 @@ class mrp_procurement(osv.osv): return True return False - def action_confirm(self, cr, uid, ids): + def action_confirm(self, cr, uid, ids, context={}): for procurement in self.browse(cr, uid, ids): if procurement.product_id.type in ('product', 'consu'): if not procurement.move_id: @@ -1012,27 +1012,11 @@ class mrp_procurement(osv.osv): 'notes':product.description_purchase, } - taxes = self.pool.get('account.tax').browse(cr, uid, - [x.id for x in procurement.product_id.product_tmpl_id.supplier_taxes_id]) - taxep = None - if partner_id: - taxep_id = self.pool.get('res.partner').property_get(cr, uid,partner_id,property_pref=['property_account_supplier_tax']).get('property_account_supplier_tax',False) - if taxep_id: - taxep=self.pool.get('account.tax').browse(cr, uid,taxep_id) - if not taxep or not taxep.id: - taxes_ids = [x.id for x in procurement.product_id.product_tmpl_id.supplier_taxes_id] - else: - res5 = [taxep.id] - for t in taxes: - if not t.tax_group==taxep.tax_group: - res5.append(t.id) - taxes_ids = res5 - + taxes_ids = procurement.product_id.product_tmpl_id.supplier_taxes_id + self.pool.get('account.fiscal.position').map_tax(cr, uid, partner, taxes) line.update({ 'taxes_id':[(6,0,taxes_ids)] }) - - purchase_id = self.pool.get('purchase.order').create(cr, uid, { 'origin': procurement.origin, 'partner_id': partner_id, diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml index bec2216b0c5..1d93353d4bd 100644 --- a/addons/mrp/mrp_view.xml +++ b/addons/mrp/mrp_view.xml @@ -27,9 +27,19 @@ form tree,form
- - - + + + mrp.property.tree @@ -65,7 +75,10 @@ form tree,form - + @@ -43,6 +42,7 @@ + @@ -54,6 +54,7 @@ + @@ -109,6 +110,7 @@ + @@ -128,7 +130,7 @@ - + @@ -139,7 +141,7 @@ - + @@ -153,6 +155,7 @@ + @@ -161,16 +164,25 @@ - + + + Process Transition + --> + + + + + + + + @@ -215,6 +227,7 @@ + @@ -251,6 +264,7 @@ + @@ -260,6 +274,7 @@ + @@ -298,5 +313,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/addons/mrp/report/order.py b/addons/mrp/report/order.py index 98f4bf1c0fb..6e2cf896660 100644 --- a/addons/mrp/report/order.py +++ b/addons/mrp/report/order.py @@ -39,4 +39,7 @@ class order(report_sxw.rml_parse): }) -report_sxw.report_sxw('report.mrp.production.order','mrp.production','addons/mrp/report/order.rml',parser=order, header=2) + +report_sxw.report_sxw('report.mrp.production.order','mrp.production','addons/mrp/report/order.rml',parser=order,header=1) + + diff --git a/addons/mrp/report/order.rml b/addons/mrp/report/order.rml index b9d62c5138f..341793ee79d 100644 --- a/addons/mrp/report/order.rml +++ b/addons/mrp/report/order.rml @@ -91,16 +91,19 @@ + - - + + + + @@ -118,6 +121,7 @@ + @@ -142,8 +146,10 @@ + + Printing date @@ -157,6 +163,7 @@ Product Name + @@ -164,6 +171,7 @@ + [[ time.strftime('%d/%m/%Y') ]] @@ -177,10 +185,12 @@ [[ '['+ o.product_id.code +']' ]] [[ o.product_id.name ]] + + @@ -200,10 +210,10 @@ [[ repeatIn(o.move_lines,'line') ]] - [[ '['+line.product_id.code +']' ]][[ line.product_id.name ]] + [[ '['+line.product_id.code +']' ]] [[ line.product_id.name ]] - [[ line.product_qty ]] [[line.product_uom.name]] + [[ '%.2f' % line.product_qty ]] [[line.product_uom.name]] diff --git a/addons/mrp/security/ir.model.access.csv b/addons/mrp/security/ir.model.access.csv index 7785ce8bcfa..c3bacf6e833 100644 --- a/addons/mrp/security/ir.model.access.csv +++ b/addons/mrp/security/ir.model.access.csv @@ -1,21 +1,32 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_mrp_workcenter,mrp.workcenter,model_mrp_workcenter,mrp.group_mrp_user,1,0,0,0 -access_mrp_property_group,mrp.property.group,model_mrp_property_group,mrp.group_mrp_user,1,0,0,0 -access_mrp_property,mrp.property,model_mrp_property,mrp.group_mrp_user,1,0,0,0 -access_mrp_routing,mrp.routing,model_mrp_routing,mrp.group_mrp_user,1,0,0,0 -access_mrp_routing_workcenter,mrp.routing.workcenter,model_mrp_routing_workcenter,mrp.group_mrp_user,1,0,0,0 -access_mrp_bom,mrp.bom,model_mrp_bom,mrp.group_mrp_user,1,0,0,0 -access_mrp_bom_revision,mrp.bom.revision,model_mrp_bom_revision,mrp.group_mrp_user,1,0,0,0 -access_mrp_production,mrp.production,model_mrp_production,mrp.group_mrp_user,1,1,1,1 -access_mrp_production_workcenter_line,mrp.production.workcenter.line,model_mrp_production_workcenter_line,mrp.group_mrp_user,1,1,1,1 -access_mrp_production_product_line,mrp.production.product.line,model_mrp_production_product_line,mrp.group_mrp_user,1,1,1,1 -access_mrp_procurement,mrp.procurement,model_mrp_procurement,mrp.group_mrp_user,1,1,1,1 -access_stock_warehouse_orderpoint,stock.warehouse.orderpoint,model_stock_warehouse_orderpoint,mrp.group_mrp_user,1,0,0,0 -access_stock_warehouse_orderpoint_manager,stock.warehouse.orderpoint.manager,model_stock_warehouse_orderpoint,mrp.group_mrp_user,1,1,1,1 -access_mrp_workcenter_manager,mrp.workcenter.manager,model_mrp_workcenter,mrp.group_mrp_user,1,1,1,1 -access_mrp_property_group_manager,mrp.property.group.manager,model_mrp_property_group,mrp.group_mrp_user,1,1,1,1 -access_mrp_property_manager,mrp.property.manager,model_mrp_property,mrp.group_mrp_user,1,1,1,1 -access_mrp_routing_manager,mrp.routing.manager,model_mrp_routing,mrp.group_mrp_user,1,1,1,1 -access_mrp_routing_workcenter_manager,mrp.routing.workcenter.manager,model_mrp_routing_workcenter,mrp.group_mrp_user,1,1,1,1 -access_mrp_bom_manager,mrp.bom.manager,model_mrp_bom,mrp.group_mrp_user,1,1,1,1 -access_mrp_bom_revision_manager,mrp.bom.revision.manager,model_mrp_bom_revision,mrp.group_mrp_user,1,1,1,1 +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_mrp_workcenter","mrp.workcenter","model_mrp_workcenter","mrp.group_mrp_user",1,0,0,0 +"access_mrp_property_group","mrp.property.group","model_mrp_property_group","mrp.group_mrp_user",1,0,0,0 +"access_mrp_property","mrp.property","model_mrp_property","mrp.group_mrp_user",1,0,0,0 +"access_mrp_routing","mrp.routing","model_mrp_routing","mrp.group_mrp_user",1,0,0,0 +"access_mrp_routing_workcenter","mrp.routing.workcenter","model_mrp_routing_workcenter","mrp.group_mrp_user",1,0,0,0 +"access_mrp_bom","mrp.bom","model_mrp_bom","mrp.group_mrp_user",1,0,0,0 +"access_mrp_bom_revision","mrp.bom.revision","model_mrp_bom_revision","mrp.group_mrp_user",1,0,0,0 +"access_mrp_production","mrp.production","model_mrp_production","mrp.group_mrp_user",1,1,1,1 +"access_mrp_production_workcenter_line","mrp.production.workcenter.line","model_mrp_production_workcenter_line","mrp.group_mrp_user",1,1,1,1 +"access_mrp_production_product_line","mrp.production.product.line","model_mrp_production_product_line","mrp.group_mrp_user",1,1,1,1 +"access_mrp_procurement","mrp.procurement","model_mrp_procurement","mrp.group_mrp_user",1,1,1,1 +"access_stock_warehouse_orderpoint","stock.warehouse.orderpoint","model_stock_warehouse_orderpoint","mrp.group_mrp_user",1,0,0,0 +"access_stock_warehouse_orderpoint_manager","stock.warehouse.orderpoint.manager","model_stock_warehouse_orderpoint","mrp.group_mrp_manager",1,1,1,1 +"access_mrp_workcenter_manager","mrp.workcenter.manager","model_mrp_workcenter","mrp.group_mrp_user",1,1,1,1 +"access_mrp_property_group_manager","mrp.property.group.manager","model_mrp_property_group","mrp.group_mrp_user",1,1,1,1 +"access_mrp_property_manager","mrp.property.manager","model_mrp_property","mrp.group_mrp_user",1,1,1,1 +"access_mrp_routing_manager","mrp.routing.manager","model_mrp_routing","mrp.group_mrp_user",1,1,1,1 +"access_mrp_routing_workcenter_manager","mrp.routing.workcenter.manager","model_mrp_routing_workcenter","mrp.group_mrp_manager",1,1,1,1 +"access_mrp_bom_manager","mrp.bom.manager","model_mrp_bom","mrp.group_mrp_user",1,1,1,1 +"access_mrp_bom_revision_manager","mrp.bom.revision.manager","model_mrp_bom_revision","mrp.group_mrp_manager",1,1,1,1 +"access_stock_location_mrp_worker","stock.location mrp_worker","stock.model_stock_location","mrp.group_mrp_user",1,0,0,0 +"access_stock_move_mrp_worker","stock.move mrp_worker","stock.model_stock_move","mrp.group_mrp_user",1,1,1,1 +"access_stock_picking_mrp_worker","stock.picking mrp_worker","stock.model_stock_picking","mrp.group_mrp_user",1,1,1,1 +"access_stock_warehouse","stock.warehouse mrp_worker","stock.model_stock_warehouse","mrp.group_mrp_user",1,0,0,0 +"access_account_analytic_journal_mrp_worker","account.analytic.journal mrp_worker","account.model_account_analytic_journal","mrp.group_mrp_user",1,0,0,0 +"access_account_account","account.account mrp_worker","account.model_account_account","mrp.group_mrp_user",1,0,0,0 +"access_purchase_order_mrp_worker","purchase.order mrp_worker","purchase.model_purchase_order","mrp.group_mrp_user",1,0,0,0 +"access_purchase_order_line_mrp_worker","purchase.order.line mrp_worker","purchase.model_purchase_order_line","mrp.group_mrp_user",1,0,0,0 +"access_hr_timesheet_group_mrp_worker","hr.timesheet.group mrp_worker","hr.model_hr_timesheet_group","mrp.group_mrp_user",1,0,0,0 +"access_mrp_procurement_stock_worker","mrp.procurement stock_worker","model_mrp_procurement","stock.group_stock_user",1,0,0,0 +"access_mrp_production_stock_worker","mrp.production stock_worker","model_mrp_production","stock.group_stock_user",1,0,0,0 diff --git a/addons/mrp/security/mrp_security.xml b/addons/mrp/security/mrp_security.xml index 9118fe051ae..8cd84d7df6b 100644 --- a/addons/mrp/security/mrp_security.xml +++ b/addons/mrp/security/mrp_security.xml @@ -1,6 +1,6 @@ - + Manufacturing / Manager @@ -9,5 +9,12 @@ Manufacturing / Worker + + + + + + + diff --git a/addons/mrp_operations/i18n/fr_FR.po b/addons/mrp_operations/i18n/fr_FR.po old mode 100755 new mode 100644 index 25a483c9e4e..cbba5fd91e4 --- a/addons/mrp_operations/i18n/fr_FR.po +++ b/addons/mrp_operations/i18n/fr_FR.po @@ -4,32 +4,36 @@ # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 4.3.0" -"Report-Msgid-Bugs-To: support@openerp.com" -"POT-Creation-Date: 2008-09-11 15:41:43+0000" -"PO-Revision-Date: 2008-09-11 15:41:43+0000" -"Last-Translator: <>" -"Language-Team: " -"MIME-Version: 1.0" -"Content-Type: text/plain; charset=UTF-8" -"Content-Transfer-Encoding: " -"Plural-Forms: " +"Project-Id-Version: OpenERP Server 4.3.0\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2008-09-05 16:29+0000\n" +"PO-Revision-Date: 2008-10-13 13:44+0000\n" +"Last-Translator: Olivier Laurent \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2008-10-13 13:52+0000\n" +"X-Generator: Launchpad (build Unknown)\n" #. module: mrp_operations #: constraint:ir.model:0 -msgid "The Object name must start with x_ and not contain any special character !" +msgid "" +"The Object name must start with x_ and not contain any special character !" msgstr "" +"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères " +"spéciaux !" #. module: mrp_operations #: selection:mrp.production.workcenter.line,state:0 #: view:mrp.production.workcenter.line:0 msgid "Confirm" -msgstr "" +msgstr "Confirmer" #. module: mrp_operations #: selection:mrp_operations.operation.code,start_stop:0 msgid "Stop" -msgstr "" +msgstr "Arrêter" #. module: mrp_operations #: model:ir.model,name:mrp_operations.model_mrp_operations_operation_code @@ -39,27 +43,27 @@ msgstr "" #. module: mrp_operations #: selection:mrp_operations.operation.code,start_stop:0 msgid "Start" -msgstr "" +msgstr "Démarrer" #. module: mrp_operations #: field:mrp_operations.operation,production_id:0 msgid "Production" -msgstr "" +msgstr "Production" #. module: mrp_operations #: selection:mrp.production.workcenter.line,state:0 msgid "Draft" -msgstr "" +msgstr "Brouillon" #. module: mrp_operations #: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_wc_confirm_action msgid "Production Orders to Do" -msgstr "" +msgstr "Ordres de Production à Faire" #. module: mrp_operations #: view:mrp.production.workcenter.line:0 msgid "Set Draft" -msgstr "" +msgstr "Mettre en brouillon" #. module: mrp_operations #: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_code_action @@ -70,89 +74,79 @@ msgstr "" #: field:mrp_operations.operation.code,start_stop:0 #: field:mrp.production.workcenter.line,state:0 msgid "Status" -msgstr "" +msgstr "État" #. module: mrp_operations #: rml:mrp.code.barcode:0 msgid ")" -msgstr "" +msgstr ")" #. module: mrp_operations #: rml:mrp.code.barcode:0 msgid "(" -msgstr "" +msgstr "(" #. module: mrp_operations #: model:ir.actions.report.xml,name:mrp_operations.report_wc_barcode msgid "Workcenters Barcode" -msgstr "" +msgstr "Code-barre des Centres de Travail" #. module: mrp_operations #: field:mrp.production.workcenter.line,delay:0 msgid "delay" -msgstr "" +msgstr "Délai" #. module: mrp_operations #: view:mrp_operations.operation:0 msgid "Production Operation" -msgstr "" +msgstr "Opération de Production" #. module: mrp_operations #: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_wc_draft_action msgid "Waiting Production Orders" -msgstr "" +msgstr "Ordres de Production en attente" #. module: mrp_operations #: field:mrp_operations.operation.code,name:0 msgid "Operation Name" -msgstr "" - -#. module: mrp_operations -#: field:mrp.production.workcenter.line,date_finnished:0 -msgid "End Date" -msgstr "" - -#. module: mrp_operations -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: mrp_operations -#: field:mrp_operations.operation,workcenter_id:0 -msgid "Workcenter" -msgstr "" +msgstr "Nom de l'Opération" #. module: mrp_operations #: view:mrp_operations.operation.code:0 msgid "Production Operation Code" -msgstr "" +msgstr "Code d'Opération de Production" + +#. module: mrp_operations +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "XML non valide pour l'architecture de la vue" + +#. module: mrp_operations +#: field:mrp_operations.operation,workcenter_id:0 +msgid "Workcenter" +msgstr "Centre de Travail" #. module: mrp_operations #: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_confirm_action msgid "Confirm Operations" -msgstr "" +msgstr "Confirmer les Opérations" #. module: mrp_operations #: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_draft_action msgid "Draft Operations" -msgstr "" - -#. module: mrp_operations -#: field:mrp.production.workcenter.line,date_start:0 -msgid "Start Date" -msgstr "" +msgstr "Opérations Brouillon" #. module: mrp_operations #: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_action_form #: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_operation_action msgid "Operations" -msgstr "" +msgstr "Opérations" #. module: mrp_operations #: field:mrp_operations.operation.code,code:0 #: field:mrp_operations.operation,code_id:0 msgid "Code" -msgstr "" +msgstr "Code" #. module: mrp_operations #: model:ir.actions.report.xml,name:mrp_operations.report_code_barcode @@ -162,14 +156,14 @@ msgstr "" #. module: mrp_operations #: selection:mrp.production.workcenter.line,state:0 msgid "Canceled" -msgstr "" +msgstr "Annulé" #. module: mrp_operations #: selection:mrp_operations.operation.code,start_stop:0 #: selection:mrp.production.workcenter.line,state:0 #: view:mrp.production.workcenter.line:0 msgid "Done" -msgstr "" +msgstr "Terminé" #. module: mrp_operations #: model:ir.model,name:mrp_operations.model_mrp_operations_operation @@ -180,15 +174,14 @@ msgstr "" #: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_action #: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_wc_action msgid "All Operations" -msgstr "" +msgstr "Toutes les Opérations" #. module: mrp_operations #: view:mrp.production.workcenter.line:0 msgid "Cancel" -msgstr "" +msgstr "Annuler" #. module: mrp_operations #: model:ir.actions.act_window,name:mrp_operations.mrp_production_operation_action msgid "Operation" -msgstr "" - +msgstr "Opération" diff --git a/addons/mrp_operations/mrp_operations_view.xml b/addons/mrp_operations/mrp_operations_view.xml index d9063f6c2d1..a16808be3ac 100755 --- a/addons/mrp_operations/mrp_operations_view.xml +++ b/addons/mrp_operations/mrp_operations_view.xml @@ -2,160 +2,160 @@ - - mrp.production.workcenter.line.inherit.tree - mrp.production.workcenter.line - - tree - - -