diff --git a/addons/account/account.py b/addons/account/account.py
index 6e96ce73962..caf1d68c45d 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -24,11 +24,12 @@ from datetime import datetime
from dateutil.relativedelta import relativedelta
from operator import itemgetter
-import netsvc
+import logging
import pooler
from osv import fields, osv
import decimal_precision as dp
from tools.translate import _
+_logger = logging.getLogger(__name__)
def check_cycle(self, cr, uid, ids, context=None):
""" climbs the ``self._table.parent_id`` chains for 100 levels or
@@ -212,7 +213,6 @@ class account_account(osv.osv):
_name = "account.account"
_description = "Account"
_parent_store = True
- logger = netsvc.Logger()
def search(self, cr, uid, args, offset=0, limit=None, order=None,
context=None, count=False):
@@ -295,8 +295,7 @@ class account_account(osv.osv):
if aml_query.strip():
wheres.append(aml_query.strip())
filters = " AND ".join(wheres)
- self.logger.notifyChannel('addons.'+self._name, netsvc.LOG_DEBUG,
- 'Filters: %s'%filters)
+ _logger.debug('Filters: %s',(filters))
# IN might not work ideally in case there are too many
# children_and_consolidated, in that case join on a
# values() e.g.:
@@ -312,8 +311,7 @@ class account_account(osv.osv):
" GROUP BY l.account_id")
params = (tuple(children_and_consolidated),) + query_params
cr.execute(request, params)
- self.logger.notifyChannel('addons.'+self._name, netsvc.LOG_DEBUG,
- 'Status: %s'%cr.statusmessage)
+ _logger.debug('Status: %s',(cr.statusmessage))
for res in cr.dictfetchall():
accounts[res['id']] = res
@@ -2095,9 +2093,7 @@ class account_tax(osv.osv):
}
def compute(self, cr, uid, taxes, price_unit, quantity, product=None, partner=None):
- logger = netsvc.Logger()
- logger.notifyChannel("warning", netsvc.LOG_WARNING,
- "Deprecated, use compute_all(...)['taxes'] instead of compute(...) to manage prices with tax included")
+ _logger.warning("Deprecated, use compute_all(...)['taxes'] instead of compute(...) to manage prices with tax included")
return self._compute(cr, uid, taxes, price_unit, quantity, product, partner)
def _compute(self, cr, uid, taxes, price_unit, quantity, product=None, partner=None):
diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index 68a723aa4a0..a10cba705e4 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -39,7 +39,7 @@
-
+
@@ -61,8 +61,8 @@
on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
-
-
+
+
@@ -98,7 +98,7 @@
-
+
@@ -148,7 +148,8 @@
@@ -482,7 +484,12 @@
[('type','=','out_invoice')]{'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'}
- With Customer Invoices you can create and manage sales invoices issued to your customers. OpenERP can also generate draft invoices automatically from sales orders or deliveries. You should only confirm them before sending them to your customers.
+
+ Click here to create a new Invoice.
+ <p>
+ An invoice can be generated automatically from a sale order or a delivery order.
+ The invoice can be send by email.
+
@@ -510,7 +517,12 @@
[('type','=','in_invoice')]{'default_type': 'in_invoice', 'type': 'in_invoice', 'journal_type': 'purchase'}
- With Supplier Invoices you can enter and manage invoices issued by your suppliers. OpenERP can also generate draft invoices automatically from purchase orders or receipts. This way, you can control the invoice from your supplier according to what you purchased or received.
+
+ Click here to create Supplier invoice.
+ <p>
+ You can control the invoice from your supplier according to what you purchased or received.
+ OpenERP can also generate draft invoices automatically from purchase orders or receipts.
+
@@ -523,7 +535,12 @@
[('type','=','out_refund')]{'default_type':'out_refund', 'type':'out_refund', 'journal_type': 'sale_refund'}
- With Customer Refunds you can manage the credit notes for your customers. A refund is a document that credits an invoice completely or partially. You can easily generate refunds and reconcile them directly from the invoice form.
+
+ Click here to create a new customer refund.
+ <p>
+ A refund is a document that credits an invoice completely or partially.
+ You can also generate refunds and reconcile them directly from the invoice form.
+
@@ -549,7 +566,12 @@
[('type','=','in_refund')]{'default_type': 'in_refund', 'type': 'in_refund', 'journal_type': 'purchase_refund'}
- With Supplier Refunds you can manage the credit notes you receive from your suppliers. A refund is a document that credits an invoice completely or partially. You can easily generate refunds and reconcile them directly from the invoice form.
+
+ Click here to create a new supplier refund.
+ <p>
+ Track refunds you receive from your suppliers.
+ You can also generate refunds and reconcile them directly from the invoice form.
+
diff --git a/addons/account/data/account_data.xml b/addons/account/data/account_data.xml
index 12fd558a31f..e8899d0348a 100644
--- a/addons/account/data/account_data.xml
+++ b/addons/account/data/account_data.xml
@@ -555,19 +555,6 @@
-
-
- Analytic account
- account.analytic.account
-
-
- Analytic account sequence
- account.analytic.account
-
-
-
-
- account.analytic.account.invoice.stat.form.inherit
- account.analytic.account
- form
-
-
-
-
-
-
-
-
-
-
-
+
+ account.analytic.account.invoice.form.inheritaccount.analytic.accountform
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- account.analytic.account.tree
- account.analytic.account
-
- tree
-
-
-
-
-
-
-
+
+
+
+
+
+
100.00%
diff --git a/addons/account_bank_statement_extensions/account_bank_statement.py b/addons/account_bank_statement_extensions/account_bank_statement.py
index d42e188679a..29b4c4fdb84 100644
--- a/addons/account_bank_statement_extensions/account_bank_statement.py
+++ b/addons/account_bank_statement_extensions/account_bank_statement.py
@@ -23,7 +23,6 @@
import time
from osv import osv, fields
import decimal_precision as dp
-import netsvc
from tools.translate import _
class account_bank_statement(osv.osv):
diff --git a/addons/account_bank_statement_extensions/report/bank_statement_balance_report.py b/addons/account_bank_statement_extensions/report/bank_statement_balance_report.py
index 8e1e4b09e47..5dcaafe4845 100644
--- a/addons/account_bank_statement_extensions/report/bank_statement_balance_report.py
+++ b/addons/account_bank_statement_extensions/report/bank_statement_balance_report.py
@@ -23,13 +23,13 @@
import time
from report import report_sxw
import pooler
-import netsvc
-logger=netsvc.Logger()
+import logging
+_logger = logging.getLogger(__name__)
class bank_statement_balance_report(report_sxw.rml_parse):
def set_context(self, objects, data, ids, report_type=None):
- #logger.notifyChannel('addons.'+__name__, netsvc.LOG_WARNING, 'set_context, objects = %s, data = %s, ids = %s' % (objects, data, ids))
+ #_logger.warning('addons.'+__name__, 'set_context, objects = %s, data = %s, ids = %s' % (objects, data, ids))
cr = self.cr
uid = self.uid
context = self.context
diff --git a/addons/account_budget/account_budget_view.xml b/addons/account_budget/account_budget_view.xml
index 2e939ae7b58..b10469059fd 100644
--- a/addons/account_budget/account_budget_view.xml
+++ b/addons/account_budget/account_budget_view.xml
@@ -274,7 +274,7 @@
account.analytic.account.form.inherot.budgetformaccount.analytic.account
-
+
diff --git a/addons/account_cancel/account_cancel_view.xml b/addons/account_cancel/account_cancel_view.xml
index 6a214fa56dd..9bf37134920 100644
--- a/addons/account_cancel/account_cancel_view.xml
+++ b/addons/account_cancel/account_cancel_view.xml
@@ -20,7 +20,7 @@
-
+
@@ -32,7 +32,7 @@
-
+
diff --git a/addons/account_coda/account_coda.py b/addons/account_coda/account_coda.py
index e3cc6f40a0c..36700c97b84 100644
--- a/addons/account_coda/account_coda.py
+++ b/addons/account_coda/account_coda.py
@@ -22,9 +22,7 @@
from osv import osv, fields
import decimal_precision as dp
-import netsvc
from tools.translate import _
-logger=netsvc.Logger()
class coda_bank_account(osv.osv):
_name= 'coda.bank.account'
diff --git a/addons/account_coda/wizard/account_coda_import.py b/addons/account_coda/wizard/account_coda_import.py
index c49eb9f1dbd..daa8bbd1026 100644
--- a/addons/account_coda/wizard/account_coda_import.py
+++ b/addons/account_coda/wizard/account_coda_import.py
@@ -24,11 +24,11 @@ import time
import base64
from osv import fields,osv
from tools.translate import _
-import netsvc
+import logging
import re
from traceback import format_exception
from sys import exc_info
-logger=netsvc.Logger()
+_logger = logging.getLogger(__name__)
class account_coda_import(osv.osv_memory):
_name = 'account.coda.import'
@@ -816,7 +816,7 @@ class account_coda_import(osv.osv_memory):
ttype = line['type'] == 'supplier' and 'payment' or 'receipt',
date = line['val_date'],
context = context)
- #logger.notifyChannel('addons.'+self._name, netsvc.LOG_WARNING, 'voucher_dict = %s' % voucher_dict)
+ #_logger.warning('voucher_dict = %s' % voucher_dict)
voucher_line_vals = False
if voucher_dict['value']['line_ids']:
for line_dict in voucher_dict['value']['line_ids']:
@@ -889,22 +889,19 @@ class account_coda_import(osv.osv_memory):
nb_err += 1
err_string += _('\nError ! ') + str(e)
tb = ''.join(format_exception(*exc_info()))
- logger.notifyChannel('addons.'+self._name, netsvc.LOG_ERROR,
- 'Application Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
+ _logger.error('Application Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
except Exception, e:
cr.rollback()
nb_err += 1
err_string += _('\nSystem Error : ') + str(e)
tb = ''.join(format_exception(*exc_info()))
- logger.notifyChannel('addons.'+self._name, netsvc.LOG_ERROR,
- 'System Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
+ _logger.error('System Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
except :
cr.rollback()
nb_err += 1
err_string = _('\nUnknown Error : ') + str(e)
tb = ''.join(format_exception(*exc_info()))
- logger.notifyChannel('addons.'+self._name, netsvc.LOG_ERROR,
- 'Unknown Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
+ _logger.error('Unknown Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
# end 'for statement in coda_statements'
diff --git a/addons/account_invoice_layout/report/report_account_invoice_layout.rml b/addons/account_invoice_layout/report/report_account_invoice_layout.rml
index 79bce6248d3..f2539e6d444 100644
--- a/addons/account_invoice_layout/report/report_account_invoice_layout.rml
+++ b/addons/account_invoice_layout/report/report_account_invoice_layout.rml
@@ -193,7 +193,7 @@
[[ (o.partner_id and o.partner_id.title and o.partner_id.title.name) or '' ]] [[ (o.partner_id and o.partner_id.name) or '' ]]
- [[ display_address(o.partner_id, 'invoice') ]]
+ [[ display_address(o.partner_id) ]]
diff --git a/addons/account_invoice_layout/report/special_message_invoice.rml b/addons/account_invoice_layout/report/special_message_invoice.rml
index 84049b18f0a..8bfcfd17654 100644
--- a/addons/account_invoice_layout/report/special_message_invoice.rml
+++ b/addons/account_invoice_layout/report/special_message_invoice.rml
@@ -197,7 +197,7 @@
[[ (o.partner_id and o.partner_id.title and o.partner_id.title.name) or '' ]] [[ (o.partner_id and o.partner_id.name) or '' ]]
- [[ display_address(o.partner_id, 'invoice') ]]
+ [[ display_address(o.partner_id) ]]
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index 9ca30aed099..2cefaf15f0e 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -250,6 +250,7 @@ class account_voucher(osv.osv):
_name = 'account.voucher'
_description = 'Accounting Voucher'
+ _inherit = ['mail.thread']
_order = "date desc, id desc"
# _rec_name = 'number'
_columns = {
@@ -323,7 +324,7 @@ class account_voucher(osv.osv):
'amount': _get_amount,
'type':_get_type,
'state': 'draft',
- 'pay_now': 'pay_later',
+ 'pay_now': 'pay_now',
'name': '',
'date': lambda *a: time.strftime('%Y-%m-%d'),
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.voucher',context=c),
@@ -334,6 +335,11 @@ class account_voucher(osv.osv):
'payment_rate_currency_id': _get_payment_rate_currency,
}
+ def create(self, cr, uid, vals, context=None):
+ voucher = super(account_voucher, self).create(cr, uid, vals, context=context)
+ self.create_send_note(cr, uid, [voucher], context=context)
+ return voucher
+
def compute_tax(self, cr, uid, ids, context=None):
tax_pool = self.pool.get('account.tax')
partner_pool = self.pool.get('res.partner')
@@ -556,7 +562,7 @@ class account_voucher(osv.osv):
@return: Returns a dict which contains new values, and context
"""
def _remove_noise_in_o2m():
- """if the line is partially reconciled, then we must pay attention to display it only once and
+ """if the line is partially reconciled, then we must pay attention to display it only once and
in the good o2m.
This function returns True if the line is considered as noise and should not be displayed
"""
@@ -1249,12 +1255,16 @@ class account_voucher(osv.osv):
'state': 'posted',
'number': name,
})
+ self.post_send_note(cr, uid, [voucher.id], context=context)
if voucher.journal_id.entry_posted:
move_pool.post(cr, uid, [move_id], context={})
# We automatically reconcile the account move lines.
+ reconcile = False
for rec_ids in rec_list_ids:
if len(rec_ids) >= 2:
- move_line_pool.reconcile_partial(cr, uid, rec_ids, writeoff_acc_id=voucher.writeoff_acc_id.id, writeoff_period_id=voucher.period_id.id, writeoff_journal_id=voucher.journal_id.id)
+ reconcile = move_line_pool.reconcile_partial(cr, uid, rec_ids, writeoff_acc_id=voucher.writeoff_acc_id.id, writeoff_period_id=voucher.period_id.id, writeoff_journal_id=voucher.journal_id.id)
+ if reconcile:
+ self.reconcile_send_note(cr, uid, [voucher.id], context=context)
return True
def copy(self, cr, uid, id, default={}, context=None):
@@ -1270,6 +1280,32 @@ class account_voucher(osv.osv):
default['date'] = time.strftime('%Y-%m-%d')
return super(account_voucher, self).copy(cr, uid, id, default, context)
+ # -----------------------------------------
+ # OpenChatter notifications and need_action
+ # -----------------------------------------
+ _document_type = {
+ 'sale': 'Sales Receipt',
+ 'purchase': 'Purchase Receipt',
+ 'payment': 'Supplier Payment',
+ 'receipt': 'Customer Payment',
+ False: 'Payment',
+ }
+
+ def create_send_note(self, cr, uid, ids, context=None):
+ for obj in self.browse(cr, uid, ids, context=context):
+ message = "%s created." % self._document_type[obj.type or False]
+ self.message_append_note(cr, uid, [obj.id], body=message, context=context)
+
+ def post_send_note(self, cr, uid, ids, context=None):
+ for obj in self.browse(cr, uid, ids, context=context):
+ message = "%s '%s' is posted." % (self._document_type[obj.type or False], obj.move_id.name)
+ self.message_append_note(cr, uid, [obj.id], body=message, context=context)
+
+ def reconcile_send_note(self, cr, uid, ids, context=None):
+ for obj in self.browse(cr, uid, ids, context=context):
+ message = "%s reconciled." % self._document_type[obj.type or False]
+ self.message_append_note(cr, uid, [obj.id], body=message, context=context)
+
account_voucher()
class account_voucher_line(osv.osv):
diff --git a/addons/account_voucher/account_voucher_pay_invoice.xml b/addons/account_voucher/account_voucher_pay_invoice.xml
index da669ad04ee..c6128c4e619 100644
--- a/addons/account_voucher/account_voucher_pay_invoice.xml
+++ b/addons/account_voucher/account_voucher_pay_invoice.xml
@@ -2,15 +2,18 @@
- account.invoice.customer.pay
- account.invoice
- form
-
-
-
-
+ account.invoice.customer.pay
+ account.invoice
+ form
+
+
+
+
+
+
+ account.invoice.supplier.pay
@@ -18,9 +21,9 @@
form
-
-
-
+
+
+
diff --git a/addons/account_voucher/account_voucher_view.xml b/addons/account_voucher/account_voucher_view.xml
index 6177da71eed..3658ebba14a 100644
--- a/addons/account_voucher/account_voucher_view.xml
+++ b/addons/account_voucher/account_voucher_view.xml
@@ -11,7 +11,7 @@
-
+
@@ -110,7 +110,10 @@
-
+
+
diff --git a/addons/account_voucher/report/account_voucher.py b/addons/account_voucher/report/account_voucher.py
index e44adee974e..146fcbc258a 100644
--- a/addons/account_voucher/report/account_voucher.py
+++ b/addons/account_voucher/report/account_voucher.py
@@ -72,4 +72,4 @@ report_sxw.report_sxw(
parser=report_voucher,header="external"
)
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_voucher/report/account_voucher_print.py b/addons/account_voucher/report/account_voucher_print.py
index 8bd8644c03c..6a5762be493 100644
--- a/addons/account_voucher/report/account_voucher_print.py
+++ b/addons/account_voucher/report/account_voucher_print.py
@@ -93,4 +93,4 @@ report_sxw.report_sxw(
parser=report_voucher_print,header="external"
)
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml
index cfed906e431..5bda06622b1 100644
--- a/addons/account_voucher/voucher_payment_receipt_view.xml
+++ b/addons/account_voucher/voucher_payment_receipt_view.xml
@@ -143,7 +143,7 @@
-
+
@@ -183,8 +183,8 @@
-
-
+
+
@@ -199,8 +199,8 @@
-
-
+
+
@@ -257,6 +257,9 @@
+
@@ -270,7 +273,9 @@
current
- The supplier payment form allows you to track the payment you do to your suppliers. When you select a supplier, the payment method and an amount for the payment, OpenERP will propose to reconcile your payment with the open supplier invoices or bills.
+ Click on "Create" to register a supplier payment.
+ <p>
+ Track payments you do to your supplier and amounts you pay.
@@ -295,7 +300,7 @@
-
+
@@ -425,6 +430,9 @@
+
@@ -438,7 +446,11 @@
current
- Sales payment allows you to register the payments you receive from your customers. In order to record a payment, you must enter the customer, the payment method (=the journal) and the payment amount. OpenERP will propose to you automatically the reconciliation of this payment with the open invoices or sales receipts.
+
+ Click on create to register a payment.
+ <p>
+ Enter the customer and the payment method and then, either create manually a payment record or OpenERP will propose to you automatically the reconciliation of this payment with the open invoices or sales receipts.
+
diff --git a/addons/account_voucher/voucher_sales_purchase_view.xml b/addons/account_voucher/voucher_sales_purchase_view.xml
index 5de7636c0c1..e5919d9089e 100644
--- a/addons/account_voucher/voucher_sales_purchase_view.xml
+++ b/addons/account_voucher/voucher_sales_purchase_view.xml
@@ -80,8 +80,8 @@
@@ -181,7 +184,11 @@
current
- When you sell products to a customer, you can give him a sales receipt or an invoice. When the sales receipt is confirmed, it creates journal items automatically and you can record the customer payment related to this sales receipt.
+
+ Click here to create a sale receipt.
+ <p>
+ When the sales receipt is confirmed, you can record the customer payment related to this sales receipt.
+
@@ -217,8 +224,8 @@
@@ -325,6 +335,11 @@
current
+
+ Click here to create a purchase receipt.
+ <p>
+ When the purchase receipt is confirmed, you can record the supplier payment related to this purchase receipt.
+
diff --git a/addons/analytic/__openerp__.py b/addons/analytic/__openerp__.py
index 95983ecdc10..fe9a42fe4c4 100644
--- a/addons/analytic/__openerp__.py
+++ b/addons/analytic/__openerp__.py
@@ -25,7 +25,7 @@
"author" : "OpenERP SA",
"website" : "http://www.openerp.com",
"category": 'Hidden/Dependency',
- "depends" : ["base", "decimal_precision"],
+ "depends" : ["base", "decimal_precision", "mail"],
"description": """
Module for defining analytic accounting object.
===============================================
@@ -37,6 +37,8 @@ that have no counterpart in the general financial accounts.
"init_xml" : [],
"update_xml": ['security/analytic_security.xml',
"security/ir.model.access.csv",
+ "analytic_sequence.xml",
+ "analytic_view.xml"
],
'demo_xml': [
],
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py
index 7cb61ee22aa..af8b1615864 100644
--- a/addons/analytic/analytic.py
+++ b/addons/analytic/analytic.py
@@ -27,6 +27,7 @@ import decimal_precision as dp
class account_analytic_account(osv.osv):
_name = 'account.analytic.account'
+ _inherit = ['mail.thread']
_description = 'Analytic Account'
def _compute_level_tree(self, cr, uid, ids, child_ids, res, field_names, context=None):
@@ -155,7 +156,11 @@ class account_analytic_account(osv.osv):
'name': fields.char('Account Name', size=128, required=True),
'complete_name': fields.function(_complete_name_calc, type='char', string='Full Account Name'),
'code': fields.char('Code/Reference', size=24, select=True),
- 'type': fields.selection([('view','View'), ('normal','Normal')], 'Account Type', help='If you select the View Type, it means you won\'t allow to create journal entries using that account.'),
+ 'type': fields.selection([('view','Analytic View'), ('normal','Analytic Account'),('contract','Contract or Project'),('template','Template of Project')], 'Type of Account', required=True,
+ help="If you select the View Type, it means you won\'t allow to create journal entries using that account.\n"\
+ "The type 'Analytic account' stands for usual accounts that you only want to use in accounting.\n"\
+ "If you select Contract or Project, it offers you the possibility to manage the validity and the invoicing options for this account.\n"\
+ "The special type 'Template of Project' allows you to define a template with default data that you can reuse easily."),
'description': fields.text('Description'),
'parent_id': fields.many2one('account.analytic.account', 'Parent Analytic Account', select=2),
'child_ids': fields.one2many('account.analytic.account', 'parent_id', 'Child Accounts'),
@@ -166,23 +171,28 @@ class account_analytic_account(osv.osv):
'credit': fields.function(_debit_credit_bal_qtty, type='float', string='Credit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
'quantity': fields.function(_debit_credit_bal_qtty, type='float', string='Quantity', multi='debit_credit_bal_qtty'),
'quantity_max': fields.float('Maximum Time', help='Sets the higher limit of time to work on the contract.'),
- 'partner_id': fields.many2one('res.partner', 'Partner'),
- 'user_id': fields.many2one('res.users', 'Account Manager'),
+ 'partner_id': fields.many2one('res.partner', 'Customer'),
+ 'user_id': fields.many2one('res.users', 'Project Manager'),
+ 'manager_id': fields.many2one('res.users', 'Account Manager'),
'date_start': fields.date('Date Start'),
'date': fields.date('Date End', select=True),
'company_id': fields.many2one('res.company', 'Company', required=False), #not required because we want to allow different companies to use the same chart of account, except for leaf accounts.
- 'state': fields.selection([('template', 'Template'),('draft','New'),('open','Open'), ('cancelled', 'Cancelled'),('pending','Pending'),('close','Closed')], 'Status', required=True,
- help='* When an account is created its in \'Draft\' state.\
- \n* If any associated partner is there, it can be in \'Open\' state.\
- \n* If any pending balance is there it can be in \'Pending\'. \
- \n* And finally when all the transactions are over, it can be in \'Close\' state. \
- \n* The project can be in either if the states \'Template\' and \'Running\'.\n If it is template then we can make projects based on the template projects. If its in \'Running\' state it is a normal project.\
- \n If it is to be reviewed then the state is \'Pending\'.\n When the project is completed the state is set to \'Done\'.'),
+ 'state': fields.selection([('template', 'Template'),('draft','New'),('open','In Progress'), ('cancelled', 'Cancelled'),('pending','To Renew'),('close','Closed')], 'Status', required=True,),
'currency_id': fields.function(_currency, fnct_inv=_set_company_currency,
store = {
'res.company': (_get_analytic_account, ['currency_id'], 10),
}, string='Currency', type='many2one', relation='res.currency'),
}
+
+ def on_change_partner_id(self, cr, uid, ids,partner_id, name, context={}):
+ res={}
+ if partner_id:
+ partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
+ if partner.user_id:
+ res['manager_id'] = partner.user_id.id
+ if not name:
+ res['name'] = _('Contract: ') + partner.name
+ return {'value': res}
def _default_company(self, cr, uid, context=None):
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
@@ -197,6 +207,7 @@ class account_analytic_account(osv.osv):
_defaults = {
'type': 'normal',
'company_id': _default_company,
+ 'code' : lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'account.analytic.account'),
'state': 'open',
'user_id': lambda self, cr, uid, ctx: uid,
'partner_id': lambda self, cr, uid, ctx: ctx.get('partner_id', False),
@@ -266,6 +277,17 @@ class account_analytic_account(osv.osv):
account = self.search(cr, uid, args, limit=limit, context=context)
return self.name_get(cr, uid, account, context=context)
+ def create(self, cr, uid, vals, context=None):
+ contract = super(account_analytic_account, self).create(cr, uid, vals, context=context)
+ if contract:
+ self.create_send_note(cr, uid, [contract], context=context)
+ return contract
+
+ def create_send_note(self, cr, uid, ids, context=None):
+ for obj in self.browse(cr, uid, ids, context=context):
+ self.message_subscribe(cr, uid, [obj.id], [obj.user_id.id], context=context)
+ self.message_append_note(cr, uid, [obj.id], body=_("Contract for %s has been created.") % (obj.partner_id.name), context=context)
+
account_analytic_account()
@@ -290,17 +312,17 @@ class account_analytic_line(osv.osv):
}
_order = 'date desc'
-
+
def _check_no_view(self, cr, uid, ids, context=None):
analytic_lines = self.browse(cr, uid, ids, context=context)
for line in analytic_lines:
if line.account_id.type == 'view':
return False
return True
-
+
_constraints = [
(_check_no_view, 'You can not create analytic line on view account.', ['account_id']),
- ]
+ ]
account_analytic_line()
diff --git a/addons/analytic/analytic_sequence.xml b/addons/analytic/analytic_sequence.xml
new file mode 100644
index 00000000000..b4e8358bdf9
--- /dev/null
+++ b/addons/analytic/analytic_sequence.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ Analytic account
+ account.analytic.account
+
+
+ Analytic account sequence
+ account.analytic.account
+ AA
+ 3
+
+
+
+
diff --git a/addons/analytic/analytic_view.xml b/addons/analytic/analytic_view.xml
new file mode 100644
index 00000000000..85a1520e561
--- /dev/null
+++ b/addons/analytic/analytic_view.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+ analytic.analytic.account.form
+ account.analytic.account
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/analytic_contract_expense_project/__init__.py b/addons/analytic_contract_expense_project/__init__.py
new file mode 100644
index 00000000000..05c84916922
--- /dev/null
+++ b/addons/analytic_contract_expense_project/__init__.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import analytic_contract_expense_project
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/analytic_journal_billing_rate/__openerp__.py b/addons/analytic_contract_expense_project/__openerp__.py
similarity index 55%
rename from addons/analytic_journal_billing_rate/__openerp__.py
rename to addons/analytic_contract_expense_project/__openerp__.py
index b8e8ab7baf5..514f0bfbbf5 100644
--- a/addons/analytic_journal_billing_rate/__openerp__.py
+++ b/addons/analytic_contract_expense_project/__openerp__.py
@@ -19,28 +19,29 @@
#
##############################################################################
+
{
- 'name': 'Billing Rates on Contracts',
- 'version': '1.0',
+ 'name': 'Projects Management: hr_expense link',
+ 'version': '1.1',
'category': 'Sales Management',
'description': """
-This module allows you to define what is the default invoicing rate for a specific journal on a given account.
-==============================================================================================================
+This module is for modifying project view to show some data related to the hr_expense module.
+======================================================================================================
-This is mostly used when a user encodes his timesheet: the values are retrieved and the fields are auto-filled. But the possibility to change these values is still available.
-
-Obviously if no data has been recorded for the current account, the default value is given as usual by the account data so that this module is perfectly compatible with older configurations.
-
- """,
- 'author': 'OpenERP SA',
- 'website': 'http://www.openerp.com',
- 'images': ['images/analytic_journal_billing_rate.jpeg'],
- 'depends': ['analytic_user_function', 'account', 'hr_timesheet_invoice'],
- 'init_xml': [],
- 'update_xml': ['analytic_journal_billing_rate_view.xml', 'security/ir.model.access.csv'],
+""",
+ "author": "OpenERP S.A.",
+ "website": "http://www.openerp.com/",
+ "depends": ["analytic_contract_hr_expense","project"],
+ "init_xml": [],
+ "update_xml": [
+ "analytic_contract_expense_project_view.xml",
+ ],
'demo_xml': [],
+ "css" : [
+ ],
'installable': True,
- 'auto_install': False,
- 'certificate': '0030271787965',
+ 'auto_install': True,
+ 'certificate': '',
}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/analytic_contract_expense_project/analytic_contract_expense_project.py b/addons/analytic_contract_expense_project/analytic_contract_expense_project.py
new file mode 100644
index 00000000000..efbb8b75a9e
--- /dev/null
+++ b/addons/analytic_contract_expense_project/analytic_contract_expense_project.py
@@ -0,0 +1,37 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import osv
+
+class project_project(osv.osv):
+ _inherit = "project.project"
+
+ def open_hr_expense(self, cr, uid, ids, context=None):
+ account_ids = [x.analytic_account_id.id for x in self.browse(cr, uid, ids, context=context)]
+ return self.pool.get('account.analytic.account').open_hr_expense(cr, uid, account_ids, context=context)
+
+ def hr_to_invoice_expense(self, cr, uid, ids, context=None):
+ account_ids = [x.analytic_account_id.id for x in self.browse(cr, uid, ids, context=context)]
+ return self.pool.get('account.analytic.account').hr_to_invoice_expense(cr, uid, account_ids, context=context)
+
+project_project()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/analytic_contract_expense_project/analytic_contract_expense_project_view.xml b/addons/analytic_contract_expense_project/analytic_contract_expense_project_view.xml
new file mode 100644
index 00000000000..d4350c7325f
--- /dev/null
+++ b/addons/analytic_contract_expense_project/analytic_contract_expense_project_view.xml
@@ -0,0 +1,34 @@
+
+
+
+
+ project.project.form.expense.inherit
+ project.project
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/analytic_journal_billing_rate/__init__.py b/addons/analytic_contract_hr_expense/__init__.py
similarity index 96%
rename from addons/analytic_journal_billing_rate/__init__.py
rename to addons/analytic_contract_hr_expense/__init__.py
index d2b6ac90561..ca4044b0584 100644
--- a/addons/analytic_journal_billing_rate/__init__.py
+++ b/addons/analytic_contract_hr_expense/__init__.py
@@ -19,6 +19,6 @@
#
##############################################################################
-import analytic_journal_billing_rate
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+import analytic_contract_hr_expense
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/analytic_contract_hr_expense/__openerp__.py b/addons/analytic_contract_hr_expense/__openerp__.py
new file mode 100644
index 00000000000..981f7226d6a
--- /dev/null
+++ b/addons/analytic_contract_hr_expense/__openerp__.py
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+
+{
+ 'name': 'Contracts Management: hr_expense link',
+ 'version': '1.1',
+ 'category': 'Sales Management',
+ 'description': """
+This module is for modifying account analytic view to show some data related to the hr_expense module.
+======================================================================================================
+
+""",
+ "author": "OpenERP S.A.",
+ "website": "http://www.openerp.com/",
+ "depends": ["hr_expense","account_analytic_analysis"],
+ "init_xml": [],
+ "update_xml": [
+ "analytic_contract_hr_expense_view.xml",
+ ],
+ 'demo_xml': [],
+ "css" : [
+ ],
+ 'installable': True,
+ 'auto_install': True,
+ 'certificate': '',
+}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py b/addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py
new file mode 100644
index 00000000000..8f24f12808b
--- /dev/null
+++ b/addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py
@@ -0,0 +1,160 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import osv, fields
+from osv.orm import intersect, except_orm
+import tools.sql
+from tools.translate import _
+from decimal_precision import decimal_precision as dp
+
+
+class account_analytic_account(osv.osv):
+ _name = "account.analytic.account"
+ _inherit = "account.analytic.account"
+
+ def _get_total_estimation(self, account):
+ tot_est = super(account_analytic_account, self)._get_total_estimation(account)
+ if account.charge_expenses:
+ tot_est += account.est_expenses
+ return tot_est
+
+ def _get_total_invoiced(self, account):
+ total_invoiced = super(account_analytic_account, self)._get_total_invoiced(account)
+ if account.charge_expenses:
+ total_invoiced += account.expense_invoiced
+ return total_invoiced
+
+ def _get_total_remaining(self, account):
+ total_remaining = super(account_analytic_account, self)._get_total_remaining(account)
+ if account.charge_expenses:
+ total_remaining += account.remaining_expense
+ return total_remaining
+
+ def _get_total_toinvoice(self, account):
+ total_toinvoice = super(account_analytic_account, self)._get_total_toinvoice(account)
+ if account.charge_expenses:
+ total_toinvoice += account.expense_to_invoice
+ return total_toinvoice
+
+ def _remaining_expnse_calc(self, cr, uid, ids, name, arg, context=None):
+ res = {}
+ for account in self.browse(cr, uid, ids, context=context):
+ if account.est_expenses != 0:
+ res[account.id] = max(account.est_expenses - account.expense_invoiced, account.expense_to_invoice)
+ else:
+ res[account.id]=0.0
+ return res
+
+ def _expense_to_invoice_calc(self, cr, uid, ids, name, arg, context=None):
+ res = {}
+ res_final = {}
+ child_ids = tuple(ids) #We don't want consolidation for each of these fields because those complex computation is resource-greedy.
+ for i in child_ids:
+ res[i] = 0.0
+ if not child_ids:
+ return res
+
+ if child_ids:
+ cr.execute("""SELECT account_analytic_account.id, \
+ COALESCE(SUM (product_template.list_price * \
+ account_analytic_line.unit_amount * \
+ ((100-hr_timesheet_invoice_factor.factor)/100)), 0.0) \
+ AS ca_to_invoice \
+ FROM product_template \
+ JOIN product_product \
+ ON product_template.id = product_product.product_tmpl_id \
+ JOIN account_analytic_line \
+ ON account_analytic_line.product_id = product_product.id \
+ JOIN account_analytic_journal \
+ ON account_analytic_line.journal_id = account_analytic_journal.id \
+ JOIN account_analytic_account \
+ ON account_analytic_account.id = account_analytic_line.account_id \
+ JOIN hr_timesheet_invoice_factor \
+ ON hr_timesheet_invoice_factor.id = account_analytic_account.to_invoice \
+ WHERE account_analytic_account.id IN %s \
+ AND account_analytic_line.invoice_id IS NULL \
+ AND account_analytic_line.to_invoice IS NOT NULL \
+ AND account_analytic_journal.type = 'purchase' \
+ GROUP BY account_analytic_account.id;""",(child_ids,))
+ for account_id, sum in cr.fetchall():
+ res[account_id] = sum
+ res_final = res
+ return res_final
+
+ def _expense_invoiced_calc(self, cr, uid, ids, name, arg, context=None):
+ lines_obj = self.pool.get('account.analytic.line')
+ res = {}
+ for account in self.browse(cr, uid, ids, context=context):
+ res[account.id] = 0.0
+ line_ids = lines_obj.search(cr, uid, [('account_id','=', account.id), ('invoice_id','!=',False), ('to_invoice','!=', False), ('journal_id.type', '=', 'purchase')], context=context)
+ for line in lines_obj.browse(cr, uid, line_ids, context=context):
+ res[account.id] += line.invoice_id.amount_untaxed
+ return res
+
+
+ _columns = {
+ 'charge_expenses' : fields.boolean('Charge Expenses'),
+ 'expense_invoiced' : fields.function(_expense_invoiced_calc, type="float"),
+ 'expense_to_invoice' : fields.function(_expense_to_invoice_calc, type='float'),
+ 'remaining_expense' : fields.function(_remaining_expnse_calc, type="float"),
+ 'est_expenses': fields.float('Estimation of Expenses to Invoice'),
+ }
+
+ def on_change_template(self, cr, uid, id, template_id, context=None):
+ res = super(account_analytic_account, self).on_change_template(cr, uid, id, template_id, context=context)
+ if template_id and 'value' in res:
+ template = self.browse(cr, uid, template_id, context=context)
+ res['value']['charge_expenses'] = template.charge_expenses
+ res['value']['est_expenses'] = template.est_expenses
+ return res
+
+ def open_hr_expense(self, cr, uid, ids, context=None):
+ line_ids = self.pool.get('hr.expense.line').search(cr,uid,[('analytic_account', 'in', ids)])
+ domain = [('line_ids', 'in', line_ids)]
+ names = [record.name for record in self.browse(cr, uid, ids, context=context)]
+ name = _('Expenses of %s') % ','.join(names)
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': name,
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'domain' : domain,
+ 'res_model': 'hr.expense.expense',
+ 'nodestroy': True,
+ }
+
+ def hr_to_invoice_expense(self, cr, uid, ids, context=None):
+ domain = [('invoice_id','=',False),('to_invoice','!=',False), ('journal_id.type', '=', 'purchase'), ('account_id', 'in', ids)]
+ names = [record.name for record in self.browse(cr, uid, ids, context=context)]
+ name = _('Expenses to Invoice of %s') % ','.join(names)
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': name,
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'domain' : domain,
+ 'res_model': 'account.analytic.line',
+ 'nodestroy': True,
+ }
+
+account_analytic_account()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/analytic_contract_hr_expense/analytic_contract_hr_expense_view.xml b/addons/analytic_contract_hr_expense/analytic_contract_hr_expense_view.xml
new file mode 100644
index 00000000000..0148c05d0b4
--- /dev/null
+++ b/addons/analytic_contract_hr_expense/analytic_contract_hr_expense_view.xml
@@ -0,0 +1,58 @@
+
+
+
+
+ account.analytic.account.form.expense.inherit
+ account.analytic.account
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/analytic_contract_project/__init__.py b/addons/analytic_contract_project/__init__.py
new file mode 100644
index 00000000000..dd60ac32096
--- /dev/null
+++ b/addons/analytic_contract_project/__init__.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import analytic_contract_project
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/analytic_contract_project/__openerp__.py b/addons/analytic_contract_project/__openerp__.py
new file mode 100644
index 00000000000..ccf712dc987
--- /dev/null
+++ b/addons/analytic_contract_project/__openerp__.py
@@ -0,0 +1,37 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+{
+ "name" : "Contract On Project",
+ "version": "1.1",
+ "author" : "OpenERP SA",
+ "website" : "http://www.openerp.com",
+ "depends" : ["project", "account_analytic_analysis"],
+ "description": """
+ Add "Contract Data" in project view.
+ """,
+ "init_xml" : [],
+ "update_xml": ["analytic_contract_project_view.xml"],
+ 'demo_xml': [],
+ 'installable': True,
+ 'auto_install': True,
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/analytic_contract_project/analytic_contract_project.py b/addons/analytic_contract_project/analytic_contract_project.py
new file mode 100644
index 00000000000..6221617637e
--- /dev/null
+++ b/addons/analytic_contract_project/analytic_contract_project.py
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields, osv
+from tools.translate import _
+
+class project_project(osv.osv):
+ _inherit = 'project.project'
+
+ _defaults = {
+ 'use_timesheets': True,
+ }
+
+ def open_sale_order_lines(self,cr,uid,ids,context=None):
+ account_ids = [x.analytic_account_id.id for x in self.browse(cr, uid, ids, context=context)]
+ return self.pool.get('account.analytic.account').open_sale_order_lines(cr, uid, account_ids, context=context)
+
+ def open_timesheets_to_invoice(self,cr,uid,ids,context=None):
+ if context is None:
+ context = {}
+ analytic_account_id = self.browse(cr, uid, ids[0], context=context).analytic_account_id.id
+ context.update({'search_default_account_id': analytic_account_id, 'default_account_id': analytic_account_id, 'search_default_to_invoice': 1})
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': _('Timesheet Lines to Invoice'),
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'context': context,
+ 'domain' : [('invoice_id','=',False),('to_invoice','!=',False), ('journal_id.type', '=', 'general')],
+ 'res_model': 'account.analytic.line',
+ 'nodestroy': True,
+ }
+
+ def open_timesheets(self, cr, uid, ids, context=None):
+ """ open Timesheets view """
+ project = self.browse(cr, uid, ids[0], context)
+ try:
+ journal_id = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_timesheet', 'analytic_journal').id
+ except ValueError:
+ journal_id = False
+ view_context = {
+ 'search_default_account_id': [project.analytic_account_id.id],
+ 'default_account_id': project.analytic_account_id.id,
+ 'default_journal_id': journal_id,
+ }
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': _('Bill Tasks Works'),
+ 'res_model': 'account.analytic.line',
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'context': view_context,
+ 'nodestroy': True,
+ }
+project_project()
+
+class task(osv.osv):
+ _inherit = "project.task"
+
+ def create(self, cr, uid, vals, context=None):
+ task_id = super(task, self).create(cr, uid, vals, context=context)
+ task_browse = self.browse(cr, uid, task_id, context=context)
+ self.pool.get('account.analytic.account').message_append_note(cr, uid, [task_browse.project_id.analytic_account_id.id], body=_("Task %s has been created.") % (task_browse.name), context=context)
+ return task_id
+task()
diff --git a/addons/analytic_contract_project/analytic_contract_project_view.xml b/addons/analytic_contract_project/analytic_contract_project_view.xml
new file mode 100644
index 00000000000..0e61fe08d01
--- /dev/null
+++ b/addons/analytic_contract_project/analytic_contract_project_view.xml
@@ -0,0 +1,128 @@
+
+
+
+
+
+ project.project.form.inherit
+ project.project
+ form
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+ / Remaining:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Inherit project form : Invoicing Data
+ project.project
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+ Inherit contract form : adding UoM
+ account.analytic.account
+ form
+
+ 50
+
+
+
+
+
+
+
+
diff --git a/addons/analytic_journal_billing_rate/analytic_journal_billing_rate.py b/addons/analytic_journal_billing_rate/analytic_journal_billing_rate.py
deleted file mode 100644
index 0896e7d443c..00000000000
--- a/addons/analytic_journal_billing_rate/analytic_journal_billing_rate.py
+++ /dev/null
@@ -1,121 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from osv import fields,osv
-
-class analytic_journal_rate_grid(osv.osv):
-
- _name="analytic_journal_rate_grid"
- _description= "Relation table between journals and billing rates"
- _columns={
- 'journal_id': fields.many2one('account.analytic.journal', 'Analytic Journal', required=True,),
- 'account_id': fields.many2one("account.analytic.account", "Analytic Account", required=True,),
- 'rate_id': fields.many2one("hr_timesheet_invoice.factor", "Invoicing Rate",),
- }
-
-analytic_journal_rate_grid()
-
-class account_analytic_account(osv.osv):
-
- _inherit = "account.analytic.account"
- _columns = {
- 'journal_rate_ids': fields.one2many('analytic_journal_rate_grid', 'account_id', 'Invoicing Rate per Journal'),
- }
-
-account_analytic_account()
-
-class hr_analytic_timesheet(osv.osv):
-
- _inherit = "hr.analytic.timesheet"
-
-
- def on_change_account_id(self, cr, uid, ids, account_id, user_id=False, unit_amount=0, journal_id=0):
- res = {}
- if not (account_id):
- #avoid a useless call to super
- return res
-
- if not (journal_id):
- return super(hr_analytic_timesheet, self).on_change_account_id(cr, uid, ids,account_id, user_id, unit_amount)
-
- #get the browse record related to journal_id and account_id
- temp = self.pool.get('analytic_journal_rate_grid').search(cr, uid, [('journal_id', '=', journal_id),('account_id', '=', account_id) ])
-
- if not temp:
- #if there isn't any record for this journal_id and account_id
- return super(hr_analytic_timesheet, self).on_change_account_id(cr, uid, ids,account_id,user_id, unit_amount)
- else:
- #get the old values from super and add the value from the new relation analytic_journal_rate_grid
- r = self.pool.get('analytic_journal_rate_grid').browse(cr, uid, temp)[0]
- res.setdefault('value',{})
- res['value']= super(hr_analytic_timesheet, self).on_change_account_id(cr, uid, ids, account_id, user_id, unit_amount)['value']
- if r.rate_id.id:
- res['value']['to_invoice'] = r.rate_id.id
-
- return res
-
-
- def on_change_journal_id(self, cr, uid, ids, journal_id, account_id):
- res = {}
- if not (journal_id and account_id):
- return res
-
- #get the browse record related to journal_id and account_id
- temp = self.pool.get('analytic_journal_rate_grid').search(cr, uid, [('journal_id', '=', journal_id),('account_id', '=', account_id) ])
- if temp:
- #add the value from the new relation analytic_user_funct_grid
- r = self.pool.get('analytic_journal_rate_grid').browse(cr, uid, temp)[0]
- res.setdefault('value',{})
- if r.rate_id.id:
- res['value']['to_invoice'] = r.rate_id.id
- return res
- to_invoice = self.pool.get('account.analytic.account').read(cr, uid, [account_id], ['to_invoice'])[0]['to_invoice']
- if to_invoice:
- res.setdefault('value',{})
- res['value']['to_invoice'] = to_invoice[0]
-
- return res
-
-hr_analytic_timesheet()
-
-
-class account_invoice(osv.osv):
- _inherit = "account.invoice"
-
- def _get_analytic_lines(self, cr, uid, id, context=None):
- iml = super(account_invoice, self)._get_analytic_lines(cr, uid, id, context=context)
- for il in iml:
- if il['account_analytic_id'] and il.get('analytic_lines', False):
-
- #get the browse record related to journal_id and account_id
- journal_id = il['analytic_lines'][0][2]['journal_id']
- account_id = il['analytic_lines'][0][2]['account_id']
- if journal_id and account_id:
- temp = self.pool.get('analytic_journal_rate_grid').search(cr, uid, [('journal_id', '=', journal_id),('account_id', '=', account_id)], context=context)
-
- if temp:
- r = self.pool.get('analytic_journal_rate_grid').browse(cr, uid, temp, context=context)[0]
- il['analytic_lines'][0][2]['to_invoice'] = r.rate_id.id
- return iml
-
-account_invoice()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/analytic_journal_billing_rate/analytic_journal_billing_rate_view.xml b/addons/analytic_journal_billing_rate/analytic_journal_billing_rate_view.xml
deleted file mode 100644
index 13a159a9321..00000000000
--- a/addons/analytic_journal_billing_rate/analytic_journal_billing_rate_view.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
-
-
-
- analytic_journal_rate_grid.tree
- analytic_journal_rate_grid
- tree
-
-
-
-
-
-
-
-
-
- analytic_journal_rate_grid.form
- analytic_journal_rate_grid
- form
-
-
-
-
-
-
-
-
-
-
- account.analytic.account.form
- account.analytic.account
- form
-
-
-
-
-
-
-
-
-
-
- hr.timesheet.sheet.form
- hr_timesheet_sheet.sheet
- form
-
-
-
-
-
-
-
-
-
-
- hr.analytic.timesheet.form
- hr.analytic.timesheet
- form
-
-
-
-
-
-
-
-
-
- hr.analytic.timesheet.form
- hr.analytic.timesheet
- form
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/analytic_journal_billing_rate/i18n/analytic_journal_billing_rate.pot b/addons/analytic_journal_billing_rate/i18n/analytic_journal_billing_rate.pot
deleted file mode 100644
index c83f406c70b..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/analytic_journal_billing_rate.pot
+++ /dev/null
@@ -1,78 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.1rc1\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2012-02-08 00:35+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: \n"
-"Plural-Forms: \n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
-
diff --git a/addons/analytic_journal_billing_rate/i18n/ar.po b/addons/analytic_journal_billing_rate/i18n/ar.po
deleted file mode 100644
index 76941f061e5..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/ar.po
+++ /dev/null
@@ -1,89 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2012-01-05 20:55+0000\n"
-"Last-Translator: kifcaliph \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "يومية تحليلية"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "قيمة الفواتير لكل يومية للحساب التحليلي هذا"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "حساب تحليلي"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "جدول العلاقة بين اليوميات ومعدلات الفواتير"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "قيمة الفاتورة لكل يومية"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "فاتورة"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "قيمة الفاتورة"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "خطأ! لا يمكنك إنشاء حسابات تحليلية متكررة."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "خط سجل الدوام"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr "خطأ! العملة لابد و أن تكون مثل العملة للشركة المختارة"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "القيم التحليلية للفواتير اليومية, حدد قيمة الفاتورة الافتراضية ليومية محددة"
diff --git a/addons/analytic_journal_billing_rate/i18n/bg.po b/addons/analytic_journal_billing_rate/i18n/bg.po
deleted file mode 100644
index 8ba12019391..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/bg.po
+++ /dev/null
@@ -1,93 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-03-01 20:24+0000\n"
-"Last-Translator: Dimitar Markov \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Аналитичен дневник"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Аналитична сметка"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Фактура"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Грешка! Не можете да създавате рекурсивни аналитични сметки."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Ред в графика"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Невалиден XML за преглед на архитектурата"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Името на обекта трябва да започва с \"x_\" и да не съдържа никакви специални "
-#~ "символи!"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr ""
-#~ "Грешка! Валутата трябва да бъде същата като валутата на избраната компания"
diff --git a/addons/analytic_journal_billing_rate/i18n/bs.po b/addons/analytic_journal_billing_rate/i18n/bs.po
deleted file mode 100644
index da239c6ec7d..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/bs.po
+++ /dev/null
@@ -1,86 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2010-08-03 00:19+0000\n"
-"Last-Translator: Mantavya Gajjar (Open ERP) \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Analitička knjiženja"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Cijana naplate po knjiženju za ovo Analitičko konto"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Analitičko konto"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabela relacija između knjiženja i cijene naplate"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Cijena po knjiženju"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Neodgovarajući XML za arhitekturu prikaza!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Naziv objekta mora počinjati sa x_ i ne smije sadržavati specijalne znakove!"
diff --git a/addons/analytic_journal_billing_rate/i18n/ca.po b/addons/analytic_journal_billing_rate/i18n/ca.po
deleted file mode 100644
index 5b7cc0e6290..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/ca.po
+++ /dev/null
@@ -1,133 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2009-09-29 06:30+0000\n"
-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
-"\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Diari analític"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Taxa de facturació per diari per aquesta compte analítica"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Compte analític"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Taula de relació entre diaris i taxes de facturació"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Taxa de facturació per diari"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Factura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Taxa de facturació"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Error! No podeu crear comptes analítics recursius."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Línia del full de serveis"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "XML invàlid per a la definició de la vista!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "El nom de l'objecte ha de començar amb x_ i no contenir cap caràcter "
-#~ "especial!"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Rati facturació diari analític"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr ""
-#~ "Error! La moneda ha de ser la mateixa que la moneda de la companyia "
-#~ "seleccionada"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Taxa de facturació d'un diari analític. Defineix la taxa de facturació per "
-#~ "defecte per a un diari en concret."
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " Aquest mòdul us permet definir el percentatge de facturació per a un "
-#~ "cert diari en un compte donat. S'utilitza principalment quan un usuari "
-#~ "codifica el seu full de serveis: els valors són recuperats i els camps són "
-#~ "auto emplenats tot i que la possibilitat de canviar-los està encara "
-#~ "disponible.\n"
-#~ "\n"
-#~ "Òbviament si no s'ha guardat dades per al compte actual, es proporciona el "
-#~ "valor per defecte per a les dades del compte com sempre, pel que aquest "
-#~ "mòdul és perfectament compatible amb configuracions anteriors.\n"
-#~ "\n"
-#~ " "
diff --git a/addons/analytic_journal_billing_rate/i18n/cs.po b/addons/analytic_journal_billing_rate/i18n/cs.po
deleted file mode 100644
index a8a8e0a7357..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/cs.po
+++ /dev/null
@@ -1,78 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2009-02-03 06:24+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
diff --git a/addons/analytic_journal_billing_rate/i18n/da.po b/addons/analytic_journal_billing_rate/i18n/da.po
deleted file mode 100644
index 76a0270f929..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/da.po
+++ /dev/null
@@ -1,79 +0,0 @@
-# Danish translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-11-09 21:41+0000\n"
-"Last-Translator: OpenERP Danmark / Henning Dinsen \n"
-"Language-Team: Danish \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Faktura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
diff --git a/addons/analytic_journal_billing_rate/i18n/de.po b/addons/analytic_journal_billing_rate/i18n/de.po
deleted file mode 100644
index 61874c71a9a..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/de.po
+++ /dev/null
@@ -1,133 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2012-01-13 19:15+0000\n"
-"Last-Translator: Ferdinand @ Camptocamp \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr "Die Rechnungsnummer muss je Firma eindeutig sein"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Analytisches Journal"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr "ungültige BBA Kommunikations Stuktur"
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Abrechnungsquote nach Journal"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Analytisches Konto"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Relation zwischen Journal und Abrechnungsquote"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Abrechnungsquote nach Journal"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Rechnung"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-"Bestätigte und abgerechnete Zeitaufzeichungen können nicht geändert werden"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Abrechnungsquote"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Fehler ! Sie können keine rekursiven Analytische Konten definieren."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Zeiterfassung Positionen"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Fehlerhafter xml Code für diese Ansicht!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Der Objekt Name muss mit einem x_ starten und darf keine Sonderzeichen "
-#~ "beinhalten"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Analytisches Journal Verrechnungssatz"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Abrechnungsquote für analytische Buchungen. Definieren Sie einen "
-#~ "Standardwert je spezifiziertem Journal."
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr "Fehler! Die Währung muss der Währung der gewählten Firma entsprechen"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " Diese Anwendung ermöglicht Ihnen die Definition einer Standard "
-#~ "Abrechnungsquote für ein analytisches Konto bei Buchung im Kontext eines "
-#~ "bestimmten Journals. Angewendet wird die Abrechnungsquote meistens, wenn ein "
-#~ "Benutzer seine Zeiterfassung auf bestimmte Konten vornimmt. Dabei werden "
-#~ "dann die Konten und Beträge automatisch vorausgefüllt, mit der Möglichkeit "
-#~ "diese\n"
-#~ "individuell anzupassen.\n"
-#~ "\n"
-#~ " Wenn keine Konfiguration bei der Eingabe eines Kontos gefunden wird, "
-#~ "würde weiterhin der Standardwert des Kontos verwendet, so dass dieses Modul "
-#~ "gleichzeitig kompatibel mit älteren Konfigurationseinstellungen ist.\n"
-#~ "\n"
-#~ " "
diff --git a/addons/analytic_journal_billing_rate/i18n/el.po b/addons/analytic_journal_billing_rate/i18n/el.po
deleted file mode 100644
index e4447dc733b..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/el.po
+++ /dev/null
@@ -1,92 +0,0 @@
-# Greek translation for openobject-addons
-# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2010-12-29 10:33+0000\n"
-"Last-Translator: Dimitris Andavoglou \n"
-"Language-Team: Greek \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Ημερολόγιο Αναλυτικής"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-"Ποσοστό Τιμολόγησης ανα Ημερολόγιο για αυτόν τον Αναλυτικό Λογαριασμό"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Αναλυτικός Λογαριασμός"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Πίνακας σχέσεων μεταξύ ημερολογίων και ποσοστών χρέωσης"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Ποσό Τιμολόγησης ανα Ημερολόγιο"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Τιμολόγιο"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Ποσό Τιμολόγησης"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Γραμμή Φύλλου Xρόνου Eργασίας"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Ποσό Τιμολόγησης Ημερολόγιου Αναλυτικής"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Άκυρο XML για Αρχιτεκτονική Όψης!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Το όνομα του αντικειμένου θα πρέπει να ξεκινάει με x_ και να μην περιέχει "
-#~ "ειδικούς χαρακτήρες!"
diff --git a/addons/analytic_journal_billing_rate/i18n/en_GB.po b/addons/analytic_journal_billing_rate/i18n/en_GB.po
deleted file mode 100644
index be92d92aa3a..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/en_GB.po
+++ /dev/null
@@ -1,130 +0,0 @@
-# English (United Kingdom) translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2012-01-23 13:36+0000\n"
-"Last-Translator: mrx5682 \n"
-"Language-Team: English (United Kingdom) \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr "Invoice Number must be unique per Company!"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Analytic Journal"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr "Invalid BBA Structured Communication !"
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Billing Rate per Journal for this Analytic Account"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Analytic Account"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Relation table between journals and billing rates"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Invoicing Rate per Journal"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Invoice"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr "You cannot modify an entry in a Confirmed/Done timesheet !."
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Invoicing Rate"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Error! You can not create recursive analytic accounts."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Timesheet Line"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr ""
-#~ "Error! The currency has to be the same as that of the selected company"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define the default invoicing rate for a "
-#~ "specific journal on a given account. This is mostly used when a user encodes "
-#~ "their timesheet: the values are retrieved and the fields are auto-filled... "
-#~ "but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given by the account data so that this module is perfectly "
-#~ "compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Analytic Journal Billing Rate"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "The Object name must start with x_ and not contain any special characters!"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Invalid XML for View Architecture!"
diff --git a/addons/analytic_journal_billing_rate/i18n/es.po b/addons/analytic_journal_billing_rate/i18n/es.po
deleted file mode 100644
index 87fbe32c17d..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/es.po
+++ /dev/null
@@ -1,133 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-01-11 10:47+0000\n"
-"Last-Translator: Borja López Soilán (NeoPolus) \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Diario analítico"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Tasa de facturación por diario para esta cuenta analítica"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Cuenta analítica"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabla de relación entre diarios y tasas de facturación"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Tasa de facturación por diario"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Factura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Tasa de facturación"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "¡Error! No puede crear cuentas analíticas recursivas."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Línea hoja de servicios"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "¡XML inválido para la definición de la vista!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
-#~ "especial!"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Tasa facturación diario analítico"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " Este módulo le permite definir el porcentaje de facturación para un "
-#~ "cierto diario en una cuenta dada. Se utiliza principalmente cuando un "
-#~ "usuario codifica su hoja de servicios: los valores son recuperados y los "
-#~ "campos son auto rellenados aunque la posibilidad de cambiar estos valores "
-#~ "está todavía disponible.\n"
-#~ "\n"
-#~ " Obviamente si no se ha guardado datos para la cuenta actual, se "
-#~ "proporciona el valor por defecto para los datos de la cuenta como siempre "
-#~ "por lo que este módulo es perfectamente compatible con configuraciones "
-#~ "anteriores.\n"
-#~ "\n"
-#~ " "
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr ""
-#~ "¡Error! La divisa tiene que ser la misma que la establecida en la compañía "
-#~ "seleccionada"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Tasa de facturación de un diario analítico. Define la tasa de facturación "
-#~ "por defecto para un diario en concreto."
diff --git a/addons/analytic_journal_billing_rate/i18n/es_AR.po b/addons/analytic_journal_billing_rate/i18n/es_AR.po
deleted file mode 100644
index cb0058df1a3..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/es_AR.po
+++ /dev/null
@@ -1,90 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.0\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2009-09-14 18:33+0000\n"
-"Last-Translator: Silvana Herrera \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Libro Diario analítico"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Tasa de facturación por libro diario para esta cuenta analítica"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Cuenta Analítica"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabla de relación entre libros diarios y tasas de facturación"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Tasa de facturación por libro diario"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Tasa de facturación"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Tasa facturación del libro diario analítico"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "XML inválido para la definición de la vista!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún caracter "
-#~ "especial!"
diff --git a/addons/analytic_journal_billing_rate/i18n/es_CR.po b/addons/analytic_journal_billing_rate/i18n/es_CR.po
deleted file mode 100644
index 5f24420f6e8..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/es_CR.po
+++ /dev/null
@@ -1,136 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2012-02-15 15:53+0000\n"
-"Last-Translator: Freddy Gonzalez \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-16 05:06+0000\n"
-"X-Generator: Launchpad (build 14781)\n"
-"Language: \n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr "¡El número de factura debe ser único por compañía!"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Diario analítico"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr "¡Estructura de comunicación BBA no válida!"
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Tasa de facturación por diario para esta cuenta analítica"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Cuenta analítica"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabla de relación entre diarios y tasas de facturación"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Tasa de facturación por diario"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Factura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-"No se puede modificar una entrada en un parte de horas Confirmado / ¡Ya "
-"está!."
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Tasa de facturación"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "¡Error! No puede crear cuentas analíticas recursivas."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Línea hoja de servicios"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "¡XML inválido para la definición de la vista!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
-#~ "especial!"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Tasa facturación diario analítico"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " Este módulo le permite definir el porcentaje de facturación para un "
-#~ "cierto diario en una cuenta dada. Se utiliza principalmente cuando un "
-#~ "usuario codifica su hoja de servicios: los valores son recuperados y los "
-#~ "campos son auto rellenados aunque la posibilidad de cambiar estos valores "
-#~ "está todavía disponible.\n"
-#~ "\n"
-#~ " Obviamente si no se ha guardado datos para la cuenta actual, se "
-#~ "proporciona el valor por defecto para los datos de la cuenta como siempre "
-#~ "por lo que este módulo es perfectamente compatible con configuraciones "
-#~ "anteriores.\n"
-#~ "\n"
-#~ " "
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr ""
-#~ "¡Error! La divisa tiene que ser la misma que la establecida en la compañía "
-#~ "seleccionada"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Tasa de facturación de un diario analítico. Define la tasa de facturación "
-#~ "por defecto para un diario en concreto."
diff --git a/addons/analytic_journal_billing_rate/i18n/es_EC.po b/addons/analytic_journal_billing_rate/i18n/es_EC.po
deleted file mode 100644
index adebfb2920a..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/es_EC.po
+++ /dev/null
@@ -1,133 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-01-13 03:51+0000\n"
-"Last-Translator: Cristian Salamea (Gnuthink) \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Diario analítico"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Tasa de facturación por diario para esta cuenta analítica"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Cuenta analítica"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabla de relación entre diarios y tasas de facturación"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Tasa de facturación por diario"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Factura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Tasa de facturación"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "¡Error! No puede crear cuentas analíticas recursivas."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Línea hoja de servicios"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "¡XML inválido para la definición de la vista!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
-#~ "especial!"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Tasa facturación diario analítico"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Tasa de facturación diario analítico. Define la tasa de facturación por "
-#~ "defecto para un diario en concreto."
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr ""
-#~ "¡Error! La divisa tiene que ser la misma que la establecida en la compañía "
-#~ "seleccionada"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " Este módulo le permite definir el porcentaje de facturación para un "
-#~ "cierto diario en una cuenta dada. Se utiliza principalmente cuando un "
-#~ "usuario codifica su hoja de servicios: los valores son recuperados y los "
-#~ "campos son auto rellenados aunque la posibilidad de cambiar estos valores "
-#~ "está todavía disponible.\n"
-#~ "\n"
-#~ " Obviamente si no se ha guardado datos para la cuenta actual, se "
-#~ "proporciona el valor por defecto para los datos de la cuenta como siempre "
-#~ "por lo que este módulo es perfectamente compatible con configuraciones "
-#~ "anteriores.\n"
-#~ "\n"
-#~ " "
diff --git a/addons/analytic_journal_billing_rate/i18n/es_MX.po b/addons/analytic_journal_billing_rate/i18n/es_MX.po
deleted file mode 100644
index be708d5fbe7..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/es_MX.po
+++ /dev/null
@@ -1,124 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2011-01-03 16:56+0000\n"
-"PO-Revision-Date: 2011-01-11 10:47+0000\n"
-"Last-Translator: Borja López Soilán (NeoPolus) \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:37+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.module.module,description:analytic_journal_billing_rate.module_meta_information
-msgid ""
-"\n"
-"\n"
-" This module allows you to define what is the default invoicing rate for "
-"a specific journal on a given account. This is mostly used when a user "
-"encodes his timesheet: the values are retrieved and the fields are auto-"
-"filled... but the possibility to change these values is still available.\n"
-"\n"
-" Obviously if no data has been recorded for the current account, the "
-"default value is given as usual by the account data so that this module is "
-"perfectly compatible with older configurations.\n"
-"\n"
-" "
-msgstr ""
-"\n"
-"\n"
-" Este módulo le permite definir el porcentaje de facturación para un "
-"cierto diario en una cuenta dada. Se utiliza principalmente cuando un "
-"usuario codifica su hoja de servicios: los valores son recuperados y los "
-"campos son auto rellenados aunque la posibilidad de cambiar estos valores "
-"está todavía disponible.\n"
-"\n"
-" Obviamente si no se ha guardado datos para la cuenta actual, se "
-"proporciona el valor por defecto para los datos de la cuenta como siempre "
-"por lo que este módulo es perfectamente compatible con configuraciones "
-"anteriores.\n"
-"\n"
-" "
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Diario analítico"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Factura"
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Tasa de facturación por diario para esta cuenta analítica"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Cuenta analítica"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabla de relación entre diarios y tasas de facturación"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Tasa de facturación por diario"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.module.module,shortdesc:analytic_journal_billing_rate.module_meta_information
-msgid ""
-"Analytic Journal Billing Rate, Define the default invoicing rate for a "
-"specific journal"
-msgstr ""
-"Tasa de facturación de un diario analítico. Define la tasa de facturación "
-"por defecto para un diario en concreto."
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid ""
-"Error! The currency has to be the same as the currency of the selected "
-"company"
-msgstr ""
-"¡Error! La divisa tiene que ser la misma que la establecida en la compañía "
-"seleccionada"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Tasa de facturación"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "¡Error! No puede crear cuentas analíticas recursivas."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Línea hoja de servicios"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "¡XML inválido para la definición de la vista!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
-#~ "especial!"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Tasa facturación diario analítico"
diff --git a/addons/analytic_journal_billing_rate/i18n/es_PY.po b/addons/analytic_journal_billing_rate/i18n/es_PY.po
deleted file mode 100644
index 3cb80026dca..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/es_PY.po
+++ /dev/null
@@ -1,121 +0,0 @@
-# Spanish (Paraguay) translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-03-07 23:16+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Spanish (Paraguay) \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Diario analítico"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Tasa de facturación por diario para esta cuenta analítica"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Cuenta Analítica"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabla de relación entre diarios y tasas de facturación"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Tasa de facturación por diario"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Factura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Tasa de facturación"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "¡Error! No puede crear cuentas analíticas recursivas."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Línea hoja de servicios"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Tasa de facturación diario analítico. Define la tasa de facturación por "
-#~ "defecto para un diario en concreto."
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr ""
-#~ "¡Error! La moneda debe ser la misma que la moneda de la compañía seleccionada"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " Este módulo le permite definir el porcentaje de facturación para un "
-#~ "cierto diario en una cuenta dada. Se utiliza principalmente cuando un "
-#~ "usuario codifica su hoja de servicios: los valores son recuperados y los "
-#~ "campos son auto rellenados aunque la posibilidad de cambiar estos valores "
-#~ "está todavía disponible.\n"
-#~ "\n"
-#~ " Obviamente si no se ha guardado datos para la cuenta actual, se "
-#~ "proporciona el valor por defecto para los datos de la cuenta como siempre "
-#~ "por lo que este módulo es perfectamente compatible con configuraciones "
-#~ "anteriores.\n"
-#~ "\n"
-#~ " "
diff --git a/addons/analytic_journal_billing_rate/i18n/es_VE.po b/addons/analytic_journal_billing_rate/i18n/es_VE.po
deleted file mode 100644
index be708d5fbe7..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/es_VE.po
+++ /dev/null
@@ -1,124 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2011-01-03 16:56+0000\n"
-"PO-Revision-Date: 2011-01-11 10:47+0000\n"
-"Last-Translator: Borja López Soilán (NeoPolus) \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:37+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.module.module,description:analytic_journal_billing_rate.module_meta_information
-msgid ""
-"\n"
-"\n"
-" This module allows you to define what is the default invoicing rate for "
-"a specific journal on a given account. This is mostly used when a user "
-"encodes his timesheet: the values are retrieved and the fields are auto-"
-"filled... but the possibility to change these values is still available.\n"
-"\n"
-" Obviously if no data has been recorded for the current account, the "
-"default value is given as usual by the account data so that this module is "
-"perfectly compatible with older configurations.\n"
-"\n"
-" "
-msgstr ""
-"\n"
-"\n"
-" Este módulo le permite definir el porcentaje de facturación para un "
-"cierto diario en una cuenta dada. Se utiliza principalmente cuando un "
-"usuario codifica su hoja de servicios: los valores son recuperados y los "
-"campos son auto rellenados aunque la posibilidad de cambiar estos valores "
-"está todavía disponible.\n"
-"\n"
-" Obviamente si no se ha guardado datos para la cuenta actual, se "
-"proporciona el valor por defecto para los datos de la cuenta como siempre "
-"por lo que este módulo es perfectamente compatible con configuraciones "
-"anteriores.\n"
-"\n"
-" "
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Diario analítico"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Factura"
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Tasa de facturación por diario para esta cuenta analítica"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Cuenta analítica"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabla de relación entre diarios y tasas de facturación"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Tasa de facturación por diario"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.module.module,shortdesc:analytic_journal_billing_rate.module_meta_information
-msgid ""
-"Analytic Journal Billing Rate, Define the default invoicing rate for a "
-"specific journal"
-msgstr ""
-"Tasa de facturación de un diario analítico. Define la tasa de facturación "
-"por defecto para un diario en concreto."
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid ""
-"Error! The currency has to be the same as the currency of the selected "
-"company"
-msgstr ""
-"¡Error! La divisa tiene que ser la misma que la establecida en la compañía "
-"seleccionada"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Tasa de facturación"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "¡Error! No puede crear cuentas analíticas recursivas."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Línea hoja de servicios"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "¡XML inválido para la definición de la vista!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
-#~ "especial!"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Tasa facturación diario analítico"
diff --git a/addons/analytic_journal_billing_rate/i18n/et.po b/addons/analytic_journal_billing_rate/i18n/et.po
deleted file mode 100644
index 73bc7debeac..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/et.po
+++ /dev/null
@@ -1,86 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2009-11-09 16:30+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Analüütiline päevik"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Arve esitamise määr päeviku kohta sellel analüütilisel kontol"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Analüütiline konto"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Seoste tabel päevikute ja arve esitamise määrade vahel"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Arveldamise määr päeviku kohta"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Arveldamise määr"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Vigane XML vaate arhitektuurile!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !"
diff --git a/addons/analytic_journal_billing_rate/i18n/fa.po b/addons/analytic_journal_billing_rate/i18n/fa.po
deleted file mode 100644
index d3f1924359b..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/fa.po
+++ /dev/null
@@ -1,79 +0,0 @@
-# Persian translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-12-18 17:01+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Persian \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
diff --git a/addons/analytic_journal_billing_rate/i18n/fi.po b/addons/analytic_journal_billing_rate/i18n/fi.po
deleted file mode 100644
index fb9cce2592e..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/fi.po
+++ /dev/null
@@ -1,91 +0,0 @@
-# Finnish translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-08-08 07:40+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Finnish \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Analyyttinen päiväkirja"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Veloitushinta päiväkirjoittain tälle analyyttiselle tilille"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Analyyttinen tili"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Suhdetaulu päiväkirjojen ja veloituhintojen välillä"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Veloitushinta päiväkirjoittain"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Lasku"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Laskutushinta"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Virhe! Et voi luoda sisäkkäisiä analyyttisiä tilejä."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Tuntilistan rivi"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr "Virhe! Valuutan tulee olla sama kun valitun yrityksen valutta."
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Analyyttisen päiväkirjan veloitushinta, määrittele oletushinta tietylle "
-#~ "päiväkirjalle"
diff --git a/addons/analytic_journal_billing_rate/i18n/fr.po b/addons/analytic_journal_billing_rate/i18n/fr.po
deleted file mode 100644
index 60d66e52b74..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/fr.po
+++ /dev/null
@@ -1,133 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-01-18 16:44+0000\n"
-"Last-Translator: Maxime Chambreuil (http://www.savoirfairelinux.com) "
-"\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Journal Analytique"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Taux de Facturation par Journal pour ce Compte Analytique"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Compte Analytique"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tableau de Relations entre les journaux et les taux de Facturations"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Taux de Facturation par Journal"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Facture"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Taux de Facturation"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Erreur ! Vous ne pouvez pas créer de comptes analytiques récursifs."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Ligne de prestation"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "XML non valide pour l'architecture de la vue"
-
-#~ 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 !"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Taux de Facturation des Journaux Analytiques"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Taux de facturation par journal analytique. Définir le taux de facturation "
-#~ "par défaut pour un journal donné"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr ""
-#~ "Erreur ! La monnaie doit être la même que la monnaie de la société "
-#~ "sélectionnée"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " Ce module vous permet de définir quel est le taux de facturation par "
-#~ "défaut pour un journal spécifique et pour un compte donné. Ceci est surtout "
-#~ "utilisé quand un utilisateur saisit sa feuille de temps : les valeurs sont "
-#~ "récupérées et les champs sont automatiquement remplis... mais la possibilité "
-#~ "de changer ces valeurs est toujours disponible.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
diff --git a/addons/analytic_journal_billing_rate/i18n/gl.po b/addons/analytic_journal_billing_rate/i18n/gl.po
deleted file mode 100644
index 9a2ac1d8a96..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/gl.po
+++ /dev/null
@@ -1,132 +0,0 @@
-# translation of analytic-journal-billing-rate-es.po to Galego
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-# Frco. Javier Rial Rodríguez , 2009.
-msgid ""
-msgstr ""
-"Project-Id-Version: analytic-journal-billing-rate-es\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-02-07 10:37+0000\n"
-"Last-Translator: Alberto Luengo Cabanillas (Pexego) \n"
-"Language-Team: Galego \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Diario analítico"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Taxa de facturación por diario para esta conta analítica"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Conta analítica"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Táboa de relación entre diarios e taxas de facturación"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Taxa de facturación por diario"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Factura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Taxa de facturación"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "¡Erro! Non pode crear contas analíticas recorrentes."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Liña de parte de horas"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "¡XML non válido para a definición da vista!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "¡O nome do obxecto debe comezar con x_ y e non conter ningún carácter "
-#~ "especial!"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Taxa facturación diario analítico"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Taxa Analítico de Diario de Facturación, Define o taxa de facturación por "
-#~ "defecto para un diario específico"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr "¡Erro! A divisa ten que se-la mesma ca da compañía seleccionada"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " Este módulo permítelle establecer cal é a taxa de facturación por "
-#~ "defecto para un diario específico nunha determinada conta. Isto é usado "
-#~ "sobre todo cando un usuario cubre o seu parte de horas: os valores son "
-#~ "recuperados e os campos son cubertos automáticamente... pero a posibilidade "
-#~ "de modificar estes valores aínda está dispoñible.\n"
-#~ "\n"
-#~ " Por suposto, se ningún dato foi rexistrado para a conta actual, o valor "
-#~ "por defecto é dado como de costume polos datos da conta para que este módulo "
-#~ "sexa perfectamente compatible coas configuracións máis antigas.\n"
-#~ "\n"
-#~ " "
diff --git a/addons/analytic_journal_billing_rate/i18n/gu.po b/addons/analytic_journal_billing_rate/i18n/gu.po
deleted file mode 100644
index c8034ae4d0c..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/gu.po
+++ /dev/null
@@ -1,79 +0,0 @@
-# Gujarati translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2012-03-06 18:22+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Gujarati \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-03-07 05:13+0000\n"
-"X-Generator: Launchpad (build 14907)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "વિશ્લેષણાત્મક ખાતું"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "ત્રુટિ! તમે અંદરોઅંદર વિશ્લેષણાત્મક ખાતાઓ ન બનાવી શકો."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
diff --git a/addons/analytic_journal_billing_rate/i18n/hr.po b/addons/analytic_journal_billing_rate/i18n/hr.po
deleted file mode 100644
index 0962c52b6f7..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/hr.po
+++ /dev/null
@@ -1,83 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-12-08 15:46+0000\n"
-"Last-Translator: Goran Kliska \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Dnevnik analitike"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Stupanj naplate po temeljnici za ovaj analitički račun"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Analitički konto"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Relacijska tablica između temeljnica i stupnjeva naplate"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Račun"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Greška! Ne možete kreirati rekurzivna analitička konta."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr "Greška! Valuta ne odgovara valuti organizacije."
diff --git a/addons/analytic_journal_billing_rate/i18n/hu.po b/addons/analytic_journal_billing_rate/i18n/hu.po
deleted file mode 100644
index a2c566dbf22..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/hu.po
+++ /dev/null
@@ -1,119 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-01-30 18:59+0000\n"
-"Last-Translator: NOVOTRADE RENDSZERHÁZ ( novotrade.hu ) "
-"\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Gyűjtőnapló"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "A gyűjtőkód naplónkénti számlázási rátája"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Gyűjtőkód"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Naplók és számlázási ráták közötti kapcsolati tábla"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Naplónkénti számlázási ráta"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Számla"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Számlázási ráta"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Hiba! Nem hozhat létre rekurzív gyűjtőkódokat."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Munkaidő-kimutatás sora"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr ""
-#~ "Hiba! A pénznemnek meg kell egyeznie a kiválasztott vállalat pénznemével."
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " Ez a modul lehetővé teszi annak meghatározását, hogy mi a gyűjtőkód "
-#~ "naplójának alapértelmezett számlázási rátája. Leginkább akkor használják, "
-#~ "amikor a felhasználó berögzíti a munkaidő-kimutatását: az értékek feljönnek "
-#~ "és a mezők automatikusan kitöltődnek... De ezeket az értékeket meg lehet "
-#~ "változtatni.\n"
-#~ "\n"
-#~ " Nyilvánvalóan, ha az aktuális gyűjtőkódra nem vittek be adatot, az "
-#~ "alapértelmezett érték a könyvelési adatokból kerül meghatározásra.\n"
-#~ "\n"
-#~ " "
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Gyűjtőnapló számlázási ráta. Az adott naplóra meghatározza az "
-#~ "alapértelmezett számlázási rátát."
diff --git a/addons/analytic_journal_billing_rate/i18n/id.po b/addons/analytic_journal_billing_rate/i18n/id.po
deleted file mode 100644
index 3c4bc6239f9..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/id.po
+++ /dev/null
@@ -1,86 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2010-08-03 00:27+0000\n"
-"Last-Translator: Mantavya Gajjar (Open ERP) \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Jurnal Analisis"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Akun Analisis"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "XML tidak sah untuk Menampilkan Arsitektur!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Nama Objek harus berawalan dengan x_ dan tidak mengandung karakter khusus !"
diff --git a/addons/analytic_journal_billing_rate/i18n/it.po b/addons/analytic_journal_billing_rate/i18n/it.po
deleted file mode 100644
index adb466b3f0b..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/it.po
+++ /dev/null
@@ -1,97 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-01-17 20:25+0000\n"
-"Last-Translator: Nicola Riolini - Micronaet \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Giornale conti analitici"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Tasso di fatturazione per Giornale per questo Conto Analitico"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Conto analitico"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabella di relazione tra Giornali e tassi di fatturazione"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Tasso di fatturazione diviso per Giornale"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Fattura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Tasso di fatturazione"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Errore! Non è possibile creare conti analitici ricorsivi."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Linea del Timesheet"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Il nome dell'oggetto deve iniziare per x_ e non deve contenere caratteri "
-#~ "speciali!"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "XML non valido per Visualizzare l'architettura!"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Giornale Conti Analitici Tasso di fatturazione"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr ""
-#~ "Errore! La valuta deve essere la stessa di quella impostata nell'azienda "
-#~ "selezionata"
diff --git a/addons/analytic_journal_billing_rate/i18n/ja.po b/addons/analytic_journal_billing_rate/i18n/ja.po
deleted file mode 100644
index a61b0106483..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/ja.po
+++ /dev/null
@@ -1,79 +0,0 @@
-# Japanese translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2012-04-26 08:50+0000\n"
-"Last-Translator: Tomomi Mengelberg \n"
-"Language-Team: Japanese \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-04-27 04:38+0000\n"
-"X-Generator: Launchpad (build 15149)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr "請求書番号は会社ごとに固有である必要があります。"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "分析仕訳帳"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr "無効なBBA(ブロードバンドアクセス)構造の通信"
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "この分析アカウントの仕訳ごとの請求割合"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "分析アカウント"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "仕訳帳と請求割合の関連表"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "仕訳ごとの請求割合"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "請求書"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr "確認済み/完了した勤務表の記入項目を変更することはできません。"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "請求割合"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "エラー。反復した分析アカウントを作成することはできません。"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "勤務表の行"
diff --git a/addons/analytic_journal_billing_rate/i18n/ko.po b/addons/analytic_journal_billing_rate/i18n/ko.po
deleted file mode 100644
index d6bffd7b370..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/ko.po
+++ /dev/null
@@ -1,89 +0,0 @@
-# Korean translation for openobject-addons
-# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2009.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2009-09-08 14:10+0000\n"
-"Last-Translator: ekodaq \n"
-"Language-Team: Korean \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "분석 저널"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "이 분석 계정을 위한 저널 당 청구 비율"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "분석 계정"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "저널과 청구 비율 간의 관계"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "저널 당 인보이스 비율"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "청구 비율"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "분석 저널 청구 비율"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr "오브젝트 이름은 x_로 시작해야 하며, 특수 문자를 포함하면 안 됩니다 !"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "유효하지 않은 뷰 아키텍처를 위한 XML !"
diff --git a/addons/analytic_journal_billing_rate/i18n/lt.po b/addons/analytic_journal_billing_rate/i18n/lt.po
deleted file mode 100644
index 05afa024123..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/lt.po
+++ /dev/null
@@ -1,78 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2009-09-08 14:43+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
diff --git a/addons/analytic_journal_billing_rate/i18n/lv.po b/addons/analytic_journal_billing_rate/i18n/lv.po
deleted file mode 100644
index 01b645557dd..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/lv.po
+++ /dev/null
@@ -1,79 +0,0 @@
-# Latvian translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2012-05-28 13:45+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Latvian \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-05-29 04:46+0000\n"
-"X-Generator: Launchpad (build 15316)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
diff --git a/addons/analytic_journal_billing_rate/i18n/mn.po b/addons/analytic_journal_billing_rate/i18n/mn.po
deleted file mode 100644
index 3d59865b775..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/mn.po
+++ /dev/null
@@ -1,79 +0,0 @@
-# Mongolian translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2010-12-21 14:39+0000\n"
-"Last-Translator: OpenERP Administrators \n"
-"Language-Team: Mongolian \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Аналитик Данс"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Нэхэмжлэл"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Алдаа! Та цикл хэлбэрийн аналитик данс үүсгэх боломжгүй."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Цаг бүртгэлийн мөр"
diff --git a/addons/analytic_journal_billing_rate/i18n/nl.po b/addons/analytic_journal_billing_rate/i18n/nl.po
deleted file mode 100644
index dee199ddb49..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/nl.po
+++ /dev/null
@@ -1,132 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2012-02-13 15:06+0000\n"
-"Last-Translator: Erwin \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-14 05:45+0000\n"
-"X-Generator: Launchpad (build 14781)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr "Factuurnummer moet uniek zijn per bedrijf!"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Analytisch dagboek"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr "Ongeldige BBA gestructureerde communicatie!"
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Doorbelastingsfactor per dagboek voor deze kostenplaats"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Kostenplaats"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Koppelingstabel tussen dagboeken en doorbelastingsfactoren"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Facturerings factor per dagboek"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Factuur"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-"Het is niet mogelijk een bevestigde/Gereed zijnde boeking van een urenstaat "
-"te wijzigen!"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Facturerings factor"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Fout! U kunt geen recursieve kostenplaatsen maken."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Urenstaatregel"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Analytisch dagboek factureringstarief"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "De objectnaam moet beginnen met x_ en mag geen speciale tekens bevatten!"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Ongeldige XML, kan overzicht niet weergeven!"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Kostenplaats dagboek facturatie factor, definieert de standaard facturatie "
-#~ "tarief voor een specifiek dagboek"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr ""
-#~ "Fout! De munteenheid moet hetzelfde zijn als de munteenheid van het "
-#~ "geselecteerde bedrijf"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " Deze module laat u standaard factuurtarief voor een specifiek dagboek op "
-#~ "een gegeven rekening. Dit wordt meestal gebruikt bij het invullen van "
-#~ "urenstaten: de waardes worden opgehaald en automatisch ingevuld... met de "
-#~ "mogelijkheid hiervan af te wijken.\n"
-#~ "\n"
-#~ " Natuurlijk wordt bij het ontbreken ervan bij de huidige rekening, de "
-#~ "standaard waarde als gebruikelijk bepaald uit de rekening gegevens zodat de "
-#~ "module perfect compatibel blijft met oudere configuraties.\n"
-#~ "\n"
-#~ " "
diff --git a/addons/analytic_journal_billing_rate/i18n/nl_BE.po b/addons/analytic_journal_billing_rate/i18n/nl_BE.po
deleted file mode 100644
index cd33100480d..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/nl_BE.po
+++ /dev/null
@@ -1,83 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.0\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2009-04-24 15:45+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "De objectnaam moet beginnen met x_ en mag geen speciale karakters bevatten !"
diff --git a/addons/analytic_journal_billing_rate/i18n/oc.po b/addons/analytic_journal_billing_rate/i18n/oc.po
deleted file mode 100644
index 83be8512443..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/oc.po
+++ /dev/null
@@ -1,88 +0,0 @@
-# Occitan (post 1500) translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2010-08-03 00:30+0000\n"
-"Last-Translator: Cédric VALMARY (Tot en òc) \n"
-"Language-Team: Occitan (post 1500) \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Jornal analitic"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Compte Analitic"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "XML invalid per l'arquitectura de la vista"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Lo nom de l'objècte deu començar amb x_ e conténer pas de caractèrs "
-#~ "especials !"
diff --git a/addons/analytic_journal_billing_rate/i18n/pl.po b/addons/analytic_journal_billing_rate/i18n/pl.po
deleted file mode 100644
index a5475a40063..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/pl.po
+++ /dev/null
@@ -1,90 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2009-11-17 09:13+0000\n"
-"Last-Translator: Mariusz Bednarz \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Dziennik analityczny"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Stawki rozliczeniowe na Dziennik dla konta analitycznego"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Konto analityczne"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabela relacji między dziennikiem a stawkami rozliczeniowymi"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Faktura w dzienniku"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Faktura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "XML niewłaściwy dla tej architektury wyświetlania!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Nazwa obiektu musi zaczynać się od x_ oraz nie może zawierać znaków "
-#~ "specjalnych !"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Stawki rozliczeniowe dziennika analitycznego"
diff --git a/addons/analytic_journal_billing_rate/i18n/pt.po b/addons/analytic_journal_billing_rate/i18n/pt.po
deleted file mode 100644
index 5d6ee807e34..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/pt.po
+++ /dev/null
@@ -1,90 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2010-12-16 05:42+0000\n"
-"Last-Translator: OpenERP Administrators \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Diário Analítico"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Taxa de Facturação por Diário para esta Conta Analítica"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Conta Analítica"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabela de Relação entre diários e taxas de facturação"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Taxa de facturação por diário"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Fatura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Taxa de Facturação"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Erro! Não pode criar contas analíticas recursivamente"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "XML Inválido para a Arquitectura de Vista !"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "O nome do Objecto deve começar com x_ e não pode conter nenhum carácter "
-#~ "especial !"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Diário Analítico da Taxa de Faturação"
diff --git a/addons/analytic_journal_billing_rate/i18n/pt_BR.po b/addons/analytic_journal_billing_rate/i18n/pt_BR.po
deleted file mode 100644
index ca814e34f35..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/pt_BR.po
+++ /dev/null
@@ -1,92 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-01-19 20:12+0000\n"
-"Last-Translator: Emerson \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Diário Analítico"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Taxa de Cobrança por Diário para esta Conta Analítica"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Conta Analítica"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabela de relação entre diários e taxas de cobrança"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Taxa de Faturamento por Diário"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Fatura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Taxa de Faturamento"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Erro! Você não pode criar contas analíticas recursivas"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Linha de Apontamento de Horas"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Invalido XML para Arquitetura da View"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "O nome do objeto precisa iniciar com x_ e não conter nenhum caracter "
-#~ "especial!"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr "Erro! A moeda deve ser a mesma da empresa selecionada"
diff --git a/addons/analytic_journal_billing_rate/i18n/ro.po b/addons/analytic_journal_billing_rate/i18n/ro.po
deleted file mode 100644
index 18b684c8b7c..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/ro.po
+++ /dev/null
@@ -1,131 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2010-08-03 00:33+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Jurnal analitic"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Rată facturare per jurnal pentru acest cont analitic"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Cont analitic"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabel de relaţii între jurnale şi ratele de facturare"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Rată facturare per jurnal"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Factură"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Rată facturare"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Eroare! Nu puteti crea conturi analitice recursive."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Linie foaie de pontaj"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Numele obiectului trebuie să înceapă cu x_ şi să nu conţină nici un caracter "
-#~ "special !"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Jurnal analitic rată de facturare"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "XML invalid pentru arhitectura machetei de afișare !"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr ""
-#~ "Eroare! Moneda trebuie sa fie aceeasi ca si moneda companiei selectate"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Rata de facturare in Jurnalul analitic, Definiti rata predefinita de "
-#~ "facturare pentru un anumit jurnal"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " Acest modul va permite sa definiti rata implicita de facturare pentru un "
-#~ "anumit jurnal intr-un cont dat. Acesta este folosit mai ales atunci cand un "
-#~ "utilizator isi codeaza propria foaie de pontaj: valorile sunt recuperate, "
-#~ "iar campurile sunt completate automat... dar inca aveti posibilitatea de a "
-#~ "modifica aceste valori.\n"
-#~ "\n"
-#~ "Este evident faptul ca, daca nu au fost inregistrate date pentru contul "
-#~ "curent, valoarea default este data de obicei de datele contului, astfel ca "
-#~ "acest modul este perfect compatibil cu configurarile mai vechi.\n"
-#~ "\n"
-#~ " "
diff --git a/addons/analytic_journal_billing_rate/i18n/ru.po b/addons/analytic_journal_billing_rate/i18n/ru.po
deleted file mode 100644
index 01e13b33fcd..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/ru.po
+++ /dev/null
@@ -1,92 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2010-08-03 00:33+0000\n"
-"Last-Translator: Mantavya Gajjar (Open ERP) \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Книга аналитики"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Счет аналитического учета"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Счет"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Скорость выставления счета"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Ошибка! Вы не можете создавать рекурсивные аналитический счета."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Строка табеля"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Неправильный XML для просмотра архитектуры!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Название объекта должно начинаться с x_ и не должно содержать специальных "
-#~ "символов !"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr "Ошибка! Валюта должна совпадать с валютой выбранной компании"
diff --git a/addons/analytic_journal_billing_rate/i18n/sl.po b/addons/analytic_journal_billing_rate/i18n/sl.po
deleted file mode 100644
index da15537789b..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/sl.po
+++ /dev/null
@@ -1,94 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2010-12-16 18:05+0000\n"
-"Last-Translator: OpenERP Administrators \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Analitični dnevnik"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Tarifa zaračunavanja po dnevnikih za ta analitični konto"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Analitični konto"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabela odnosov med dnevniki in tarifami zaračunavanja"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Fakturna stopnja za dnevnik"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Račun"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Fakturna stopnja"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Napaka! Ne morete kreirati rekurzivnih analitičnih kontov."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Postavka časovnice"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Naziv objekta se mora začeti z 'x_' in ne sme vsebovati posebnih znakov."
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Tarifa zaračunavanja analitičnega dnevnika"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Neveljaven XML za arhitekturo pogleda!"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr "Napaka! Valuta mora biti enaka kot valuta izbranega podjetja"
diff --git a/addons/analytic_journal_billing_rate/i18n/sq.po b/addons/analytic_journal_billing_rate/i18n/sq.po
deleted file mode 100644
index f907979e379..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/sq.po
+++ /dev/null
@@ -1,79 +0,0 @@
-# Albanian translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2010-08-02 14:40+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Albanian \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
diff --git a/addons/analytic_journal_billing_rate/i18n/sr.po b/addons/analytic_journal_billing_rate/i18n/sr.po
deleted file mode 100644
index 7d6baf67750..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/sr.po
+++ /dev/null
@@ -1,97 +0,0 @@
-# Serbian translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2010-10-27 08:06+0000\n"
-"Last-Translator: OpenERP Administrators \n"
-"Language-Team: Serbian \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Analiticki Dnevnik"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Stepen naplate po Dnevniku za ovaj Analiticki Konto"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Analitički konto"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Relaciona tabela izmedju dnevnika i stepena naplate"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Stepen fakturiranja po Dnevniku"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Faktura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Fakturisanje cene"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Timesheet Linija"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Ime objekta mora da počinje sa x_ i ne sme da sadrži specijalne karaktere !"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Analiticki Dnevnik obracunate cene"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Nevažeći XML za pregled arhitekture"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Analiticki Dnevnik Obracunate rate, definise podrazumevanu fakturnu vrednost "
-#~ "za specificni dnevnik"
diff --git a/addons/analytic_journal_billing_rate/i18n/sr@latin.po b/addons/analytic_journal_billing_rate/i18n/sr@latin.po
deleted file mode 100644
index 91eda48bf01..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/sr@latin.po
+++ /dev/null
@@ -1,104 +0,0 @@
-# Serbian latin translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2011-12-27 15:53+0000\n"
-"Last-Translator: Milan Milosevic \n"
-"Language-Team: Serbian latin \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr "Broj fakture mora biti jedinstven po kompaniji"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Analitički dnevnik"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr "Nepravilno BBA struktuirana komunikacija !"
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Stepen naplate po Dnevniku za ovaj Analitički Konto"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Analitički konto"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Tabela odnosa između dnevnika i stepenova naplate"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Stepen fakturiranja po Dnevniku"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Faktura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-"Ne možete izmeniti unos u kontrolnoj kartici obeleženim kao "
-"Potvrđenim/Završenim"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Stepen fakturisanja"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Greška! Ne možete praviti rekurzivne analitičke naloge."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Niz kontrolne kartice"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Nevažeći XML za pregled arhitekture"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Ime objekta mora da počinje sa x_ i ne sme da sadrži specijalne karaktere !"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Analiticki Dnevnik Obracunate rate, definise podrazumevanu fakturnu vrednost "
-#~ "za specificni dnevnik"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Analiticki Dnevnik obracunate cene"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr "Greška! Valuta mora biti ista kao i valuta izabranog preduzeća"
diff --git a/addons/analytic_journal_billing_rate/i18n/sv.po b/addons/analytic_journal_billing_rate/i18n/sv.po
deleted file mode 100644
index 28c03b9dbfa..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/sv.po
+++ /dev/null
@@ -1,89 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.14\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2010-12-23 04:55+0000\n"
-"Last-Translator: OpenERP Administrators \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Analysjournal"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Analys konto"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Faktura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Fel! Du kan inte skapa rekursiva analyskonton."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Tidrapportrad"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Objektnamnet måste börja med x_ och får inte innehålla några specialtecken!"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Felaktig XML för Vyarkitektur!"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "Analytic Journal Billing Rate"
diff --git a/addons/analytic_journal_billing_rate/i18n/tlh.po b/addons/analytic_journal_billing_rate/i18n/tlh.po
deleted file mode 100644
index a0eaa131125..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/tlh.po
+++ /dev/null
@@ -1,78 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2009-02-03 06:24+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
diff --git a/addons/analytic_journal_billing_rate/i18n/tr.po b/addons/analytic_journal_billing_rate/i18n/tr.po
deleted file mode 100644
index 95977462f5a..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/tr.po
+++ /dev/null
@@ -1,121 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2012-01-25 00:10+0000\n"
-"Last-Translator: Ahmet Altınışık \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr "Fatura Numarası Her Şirkette Tekil Olmalı!"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "Yevmiye Analizi"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr "Geçersiz BBA Yapılı İletişim !"
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "Bu Analiz Hesabına ait her yevmiyenin Ödem Oranı"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "Analiz Hesabı"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "Ödeme oranı ve yevmiyeler arası ilişki tablosu"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "Her yevmiye için faturalama oranı"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "Fatura"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-"Onaylandı/Tamanlandı durumundaki zaman çizelgesini değiştiremezsiniz !."
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "Faturalama Oranı"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "Hata! Yinelenen analiz hesabı oluşturamazsınız."
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "Zaman Çizelgesi Satırı"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Görüntüleme mimarisi için Geçersiz XML"
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr "Hata! Para birimi seçilen firmanın para birimiyle aynı olmalı"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " Bu modül verilen bir hesapta belirli bir yevmiye için varsayılan "
-#~ "faturalama oranını tanımlar. Bu ençok bir kullanıcı zaman çizelgesi "
-#~ "kodlarken kullanılır: Değerler alınır ve alanlar otomatik doldurulur... ama "
-#~ "bu değerleri değiştirebilme olanağı henüz yoktur.\n"
-#~ "\n"
-#~ " Açıkçası geçerli hesap için bilgi kayıt edilmemişse, varsayılan değer "
-#~ "olağan şekilde hesap verisi tarafından verilir ki; bu da mbu modülün eski "
-#~ "yapılandırmayla uyumlu olduğunu gösterir.\n"
-#~ "\n"
-#~ " "
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr ""
-#~ "Analitik Yevmiye Ödeme Oranı, belirli bir yevmiye için varsayılan faturalama "
-#~ "oranı tanımlayın."
diff --git a/addons/analytic_journal_billing_rate/i18n/uk.po b/addons/analytic_journal_billing_rate/i18n/uk.po
deleted file mode 100644
index cc467dce71d..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/uk.po
+++ /dev/null
@@ -1,86 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2009-09-08 13:49+0000\n"
-"Last-Translator: Eugene Babiy \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "Неправильний XML для Архітектури Вигляду!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr ""
-#~ "Назва об'єкту має починатися з x_ і не містити ніяких спеціальних символів!"
diff --git a/addons/analytic_journal_billing_rate/i18n/vi.po b/addons/analytic_journal_billing_rate/i18n/vi.po
deleted file mode 100644
index 8c4d2e41175..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/vi.po
+++ /dev/null
@@ -1,79 +0,0 @@
-# Vietnamese translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR , 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME \n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2010-08-02 14:40+0000\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: Vietnamese \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
diff --git a/addons/analytic_journal_billing_rate/i18n/zh_CN.po b/addons/analytic_journal_billing_rate/i18n/zh_CN.po
deleted file mode 100644
index a06d9d0c4e5..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/zh_CN.po
+++ /dev/null
@@ -1,118 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0dev\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2012-02-09 15:22+0000\n"
-"Last-Translator: Jeff Wang \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-10 04:49+0000\n"
-"X-Generator: Launchpad (build 14771)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr "发票号必须在公司范围内唯一"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr "辅助核算账薄"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr "BBA传输结构有误!"
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr "这辅助核算项每个账簿的开单税率"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr "辅助核算项"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr "账簿和开票税率的关系表"
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr "每个账簿的开票税率"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr "发票"
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr "已经确认和完成的计工单行不能修改!"
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr "开票税率"
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr "错误! 你不能创建递归的辅助核算项"
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr "计工单明细"
-
-#~ msgid "Invalid XML for View Architecture!"
-#~ msgstr "无效XML视图结构!"
-
-#~ msgid ""
-#~ "The Object name must start with x_ and not contain any special character !"
-#~ msgstr "对象名称必须以“x_”开头且不能包含任何特殊字符!"
-
-#~ msgid "Analytic Journal Billing Rate"
-#~ msgstr "辅助核算集合的开票税率"
-
-#~ msgid ""
-#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
-#~ "specific journal"
-#~ msgstr "辅助核算账簿的开票税率,为特定辅助核算账簿定义默认开票税率。"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ " This module allows you to define what is the default invoicing rate for "
-#~ "a specific journal on a given account. This is mostly used when a user "
-#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
-#~ "filled... but the possibility to change these values is still available.\n"
-#~ "\n"
-#~ " Obviously if no data has been recorded for the current account, the "
-#~ "default value is given as usual by the account data so that this module is "
-#~ "perfectly compatible with older configurations.\n"
-#~ "\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ " 这模块允许您定义辅助核算项目的指定账簿的默认开票税率,这主要用在用户记工单:这值自动检索和填上。。但可以修改。\n"
-#~ "\n"
-#~ " "
-
-#~ msgid ""
-#~ "Error! The currency has to be the same as the currency of the selected "
-#~ "company"
-#~ msgstr "错误!此币别必须是选定公司的默认币别。"
diff --git a/addons/analytic_journal_billing_rate/i18n/zh_TW.po b/addons/analytic_journal_billing_rate/i18n/zh_TW.po
deleted file mode 100644
index a7aee6f1a57..00000000000
--- a/addons/analytic_journal_billing_rate/i18n/zh_TW.po
+++ /dev/null
@@ -1,78 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * analytic_journal_billing_rate
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-02-08 00:35+0000\n"
-"PO-Revision-Date: 2009-01-23 16:16+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
-"X-Generator: Launchpad (build 14763)\n"
-
-#. module: analytic_journal_billing_rate
-#: sql_constraint:account.invoice:0
-msgid "Invoice Number must be unique per Company!"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,journal_id:0
-msgid "Analytic Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.invoice:0
-msgid "Invalid BBA Structured Communication !"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: view:analytic_journal_rate_grid:0
-msgid "Billing Rate per Journal for this Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,account_id:0
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
-msgid "Analytic Account"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
-msgid "Relation table between journals and billing rates"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:account.analytic.account,journal_rate_ids:0
-msgid "Invoicing Rate per Journal"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
-msgid "Invoice"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:hr.analytic.timesheet:0
-msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: field:analytic_journal_rate_grid,rate_id:0
-msgid "Invoicing Rate"
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: constraint:account.analytic.account:0
-msgid "Error! You can not create recursive analytic accounts."
-msgstr ""
-
-#. module: analytic_journal_billing_rate
-#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
-msgid "Timesheet Line"
-msgstr ""
diff --git a/addons/analytic_journal_billing_rate/security/ir.model.access.csv b/addons/analytic_journal_billing_rate/security/ir.model.access.csv
deleted file mode 100644
index b4a604b2362..00000000000
--- a/addons/analytic_journal_billing_rate/security/ir.model.access.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_analytic_journal_rate_user,analytic journal rate user,model_analytic_journal_rate_grid,account.group_account_manager,1,0,0,0
-access_analytic_journal_rate_manager,analytic journal rate manager,model_analytic_journal_rate_grid,account.group_account_manager,1,1,1,1
-access_analytic_journal_rate_account_manager,analytic journal rateaccount manager,model_analytic_journal_rate_grid,account.group_account_manager,1,1,1,1
diff --git a/addons/analytic_user_function/analytic_user_function_view.xml b/addons/analytic_user_function/analytic_user_function_view.xml
index d14ed977776..524f0310401 100644
--- a/addons/analytic_user_function/analytic_user_function_view.xml
+++ b/addons/analytic_user_function/analytic_user_function_view.xml
@@ -32,7 +32,7 @@
account.analytic.account.formaccount.analytic.accountform
-
+
diff --git a/addons/auth_openid/controllers/main.py b/addons/auth_openid/controllers/main.py
index af30566a643..0ee7f98a020 100644
--- a/addons/auth_openid/controllers/main.py
+++ b/addons/auth_openid/controllers/main.py
@@ -44,8 +44,8 @@ from .. import utils
-_logger = logging.getLogger('web.auth_openid')
-oidutil.log = logging.getLogger('openid').debug
+_logger = logging.getLogger(__name__)
+oidutil.log = _logger.debug
class GoogleAppsAwareConsumer(consumer.GenericConsumer):
diff --git a/addons/base_crypt/crypt.py b/addons/base_crypt/crypt.py
index 9b91f7d3108..8a9d1ac1dc7 100644
--- a/addons/base_crypt/crypt.py
+++ b/addons/base_crypt/crypt.py
@@ -42,8 +42,10 @@ from osv import fields,osv
import pooler
from tools.translate import _
from service import security
+import logging
magic_md5 = '$1$'
+_logger = logging.getLogger(__name__)
def gen_salt( length=8, symbols=ascii_letters + digits ):
seed()
@@ -179,8 +181,7 @@ class users(osv.osv):
cr = pooler.get_db(db).cursor()
return self._login(cr, db, login, password)
except Exception:
- import logging
- logging.getLogger('netsvc').exception('Could not authenticate')
+ _logger.exception('Could not authenticate')
return Exception('Access Denied')
finally:
if cr is not None:
diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/lib/logreport.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/lib/logreport.py
index 2aab8596862..42198337450 100644
--- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/lib/logreport.py
+++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/lib/logreport.py
@@ -27,21 +27,20 @@ LOG_INFO='info'
LOG_WARNING='warn'
LOG_ERROR='error'
LOG_CRITICAL='critical'
+_logger = logging.getLogger(__name__)
def log_detail(self):
import os
- logger = logging.getLogger()
logfile_name = os.path.join(tempfile.gettempdir(), "openerp_report_designer.log")
hdlr = logging.FileHandler(logfile_name)
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
- logger.addHandler(hdlr)
- logger.setLevel(logging.INFO)
+ _logger.addHandler(hdlr)
+ _logger.setLevel(logging.INFO)
class Logger(object):
def log_write(self,name,level,msg):
- log = logging.getLogger(name)
- getattr(log,level)(msg)
+ getattr(_logger,level)(msg)
def shutdown(self):
logging.shutdown()
diff --git a/addons/base_setup/res_config_view.xml b/addons/base_setup/res_config_view.xml
index de991fe6725..93523f06746 100644
--- a/addons/base_setup/res_config_view.xml
+++ b/addons/base_setup/res_config_view.xml
@@ -9,7 +9,7 @@
-
+
@@ -56,7 +56,7 @@
-
+
diff --git a/addons/base_vat/base_vat.py b/addons/base_vat/base_vat.py
index 7b8363ffd6b..e76442b62fe 100644
--- a/addons/base_vat/base_vat.py
+++ b/addons/base_vat/base_vat.py
@@ -23,11 +23,12 @@ import logging
import string
import datetime
import re
+_logger = logging.getLogger(__name__)
try:
import vatnumber
except ImportError:
- logging.getLogger('base_vat').warning("VAT validation partially unavailable because the `vatnumber` Python library cannot be found. "
+ _logger.warning("VAT validation partially unavailable because the `vatnumber` Python library cannot be found. "
"Install it to support more countries, for example with `easy_install vatnumber`.")
vatnumber = None
diff --git a/addons/caldav/caldav_node.py b/addons/caldav/caldav_node.py
index 71e9bdc2468..da5c5f017a6 100644
--- a/addons/caldav/caldav_node.py
+++ b/addons/caldav/caldav_node.py
@@ -23,6 +23,7 @@ from document_webdav import nodes
from document.nodes import _str2time, nodefd_static
import logging
from orm_utils import get_last_modified
+_logger = logging.getLogger(__name__)
try:
from tools.dict_tools import dict_merge2
@@ -223,7 +224,6 @@ class node_calendar(nodes.node_class):
res = []
if not filters:
return res
- _log = logging.getLogger('caldav.query')
if filters.localName == 'calendar-query':
res = []
for filter_child in filters.childNodes:
diff --git a/addons/caldav/calendar.py b/addons/caldav/calendar.py
index 94d28e4ad37..fb98e00a86f 100644
--- a/addons/caldav/calendar.py
+++ b/addons/caldav/calendar.py
@@ -34,6 +34,7 @@ import logging
from caldav_node import res_node_calendar
from orm_utils import get_last_modified
from tools.safe_eval import safe_eval as eval
+_logger = logging.getLogger(__name__)
try:
import vobject
@@ -240,7 +241,6 @@ def map_data(cr, uid, obj, context=None):
class CalDAV(object):
__attribute__ = {}
- _logger = logging.getLogger('document.caldav')
def ical_set(self, name, value, type):
""" set calendar Attribute
@@ -725,13 +725,13 @@ class Calendar(CalDAV, osv.osv):
objs.append(cal_children[child.name.lower()])
elif child.name.upper() == 'CALSCALE':
if child.value.upper() != 'GREGORIAN':
- self._logger.warning('How do I handle %s calendars?',child.value)
+ _logger.warning('How do I handle %s calendars?',child.value)
elif child.name.upper() in ('PRODID', 'VERSION'):
pass
elif child.name.upper().startswith('X-'):
- self._logger.debug("skipping custom node %s", child.name)
+ _logger.debug("skipping custom node %s", child.name)
else:
- self._logger.debug("skipping node %s", child.name)
+ _logger.debug("skipping node %s", child.name)
res = []
for obj_name in list(set(objs)):
diff --git a/addons/caldav/calendar_collection.py b/addons/caldav/calendar_collection.py
index 1abbf573ef0..3a5604b2f67 100644
--- a/addons/caldav/calendar_collection.py
+++ b/addons/caldav/calendar_collection.py
@@ -23,6 +23,7 @@ from osv import osv, fields
from tools.translate import _
import caldav_node
import logging
+_logger = logging.getLogger(__name__)
class calendar_collection(osv.osv):
_inherit = 'document.directory'
@@ -44,8 +45,7 @@ class calendar_collection(osv.osv):
root_cal_dir = self.browse(cr,uid, root_id, context=context)
return root_cal_dir.name
except Exception:
- logger = logging.getLogger('document')
- logger.warning('Cannot set root directory for Calendars:', exc_info=True)
+ _logger.warning('Cannot set root directory for Calendars:', exc_info=True)
return False
return False
diff --git a/addons/crm/crm_meeting.py b/addons/crm/crm_meeting.py
index cadd813a959..1e21d535c55 100644
--- a/addons/crm/crm_meeting.py
+++ b/addons/crm/crm_meeting.py
@@ -26,6 +26,7 @@ import logging
from osv import fields, osv
import tools
from tools.translate import _
+_logger = logging.getLogger(__name__)
class crm_lead(base_stage, osv.osv):
""" CRM Leads """
@@ -180,7 +181,7 @@ class res_users(osv.osv):
'user_id': user_id}, context=context)
except:
# Tolerate a missing shortcut. See product/product.py for similar code.
- logging.getLogger('orm').debug('Skipped meetings shortcut for user "%s"', data.get('name','
-
+
diff --git a/addons/crm_claim/crm_claim_menu.xml b/addons/crm_claim/crm_claim_menu.xml
index 75bfd9ce211..d4bfd8f21bb 100644
--- a/addons/crm_claim/crm_claim_menu.xml
+++ b/addons/crm_claim/crm_claim_menu.xml
@@ -51,9 +51,13 @@
parent="base.menu_aftersale" action="crm_case_categ_claim0" sequence="1"/>
-
-
-
+
+
+
+
+
diff --git a/addons/document/content_index.py b/addons/document/content_index.py
index 64b480ee736..f24c033a7ec 100644
--- a/addons/document/content_index.py
+++ b/addons/document/content_index.py
@@ -22,7 +22,7 @@ import logging
import os
import tempfile
from subprocess import Popen, PIPE
-
+_logger = logging.getLogger(__name__)
class NhException(Exception):
pass
@@ -116,7 +116,7 @@ def mime_match(mime, mdict):
return (None, None)
class contentIndex(object):
- __logger = logging.getLogger('addons.document.content_index')
+
def __init__(self):
self.mimes = {}
self.exts = {}
@@ -132,7 +132,7 @@ class contentIndex(object):
f = True
if f:
- self.__logger.debug('Register content indexer: %r', obj)
+ _logger.debug('Register content indexer: %r', obj)
if not f:
raise Exception("Your indexer should at least suport a mimetype or extension")
@@ -169,22 +169,22 @@ class contentIndex(object):
(result, _) = pop.communicate()
mime2 = result.split(';')[0]
- self.__logger.debug('File gave us: %s', mime2)
+ _logger.debug('File gave us: %s', mime2)
# Note that the temporary file still exists now.
mime,fobj = mime_match(mime2, self.mimes)
if not mime:
mime = mime2
except Exception:
- self.__logger.exception('Cannot determine mime type')
+ _logger.exception('Cannot determine mime type')
try:
if fobj:
res = (mime, fobj.indexContent(content,filename,fname or realfname) )
else:
- self.__logger.debug("Have no object, return (%s, None)", mime)
+ _logger.debug("Have no object, return (%s, None)", mime)
res = (mime, None )
except Exception:
- self.__logger.exception("Could not index file %s (%s)",
+ _logger.exception("Could not index file %s (%s)",
filename, fname or realfname)
res = None
@@ -193,8 +193,7 @@ class contentIndex(object):
try:
os.unlink(fname)
except Exception:
- self.__logger.exception("Could not unlink %s", fname)
-
+ _logger.exception("Could not unlink %s", fname)
return res
cntIndex = contentIndex()
diff --git a/addons/document/document.py b/addons/document/document.py
index 92ece063a47..fa65f8d9966 100644
--- a/addons/document/document.py
+++ b/addons/document/document.py
@@ -30,12 +30,15 @@ from tools.translate import _
import nodes
import logging
+_logger = logging.getLogger(__name__)
+
DMS_ROOT_PATH = tools.config.get('document_path', os.path.join(tools.config['root_path'], 'filestore'))
class document_file(osv.osv):
_inherit = 'ir.attachment'
_rec_name = 'datas_fname'
-
+
+
def _attach_parent_id(self, cr, uid, ids=None, context=None):
"""Migrate ir.attachments to the document module.
@@ -54,7 +57,7 @@ class document_file(osv.osv):
parent_id = self.pool.get('document.directory')._get_root_directory(cr,uid)
if not parent_id:
- logging.getLogger('document').warning("at _attach_parent_id(), still not able to set the parent!")
+ _logger.warning("at _attach_parent_id(), still not able to set the parent!")
return False
if ids is not None:
@@ -140,8 +143,8 @@ class document_file(osv.osv):
_defaults = {
'user_id': lambda self, cr, uid, ctx:uid,
+ 'parent_id': __get_def_directory,
'file_size': lambda self, cr, uid, ctx:0,
- 'parent_id': __get_def_directory
}
_sql_constraints = [
# filename_uniq is not possible in pure SQL
@@ -336,7 +339,7 @@ class document_file(osv.osv):
if r:
unres.append(r)
else:
- logging.getLogger('document').warning("Unlinking attachment #%s %s that has no storage",
+ self.loggerdoc.warning("Unlinking attachment #%s %s that has no storage",
f.id, f.name)
res = super(document_file, self).unlink(cr, uid, ids, context)
stor.do_unlink(cr, uid, unres)
diff --git a/addons/document/document_data.xml b/addons/document/document_data.xml
index ac7a174b05f..a7bc98de6f3 100644
--- a/addons/document/document_data.xml
+++ b/addons/document/document_data.xml
@@ -104,6 +104,5 @@
-
diff --git a/addons/document/document_directory.py b/addons/document/document_directory.py
index d09d2cc86d5..03b2dcc47bf 100644
--- a/addons/document/document_directory.py
+++ b/addons/document/document_directory.py
@@ -22,10 +22,10 @@
from osv import osv, fields
from osv.orm import except_orm
-
+import logging
import nodes
from tools.translate import _
-
+_logger = logging.getLogger(__name__)
class document_directory(osv.osv):
_name = 'document.directory'
_description = 'Directory'
@@ -78,9 +78,8 @@ class document_directory(osv.osv):
root_id = objid.read(cr, uid, mid, ['res_id'])['res_id']
return root_id
except Exception, e:
- import netsvc
- logger = netsvc.Logger()
- logger.notifyChannel("document", netsvc.LOG_WARNING, 'Cannot set directory root:'+ str(e))
+
+ _logger.warning('Cannot set directory root:'+ str(e))
return False
return objid.browse(cr, uid, mid, context=context).res_id
diff --git a/addons/document/document_storage.py b/addons/document/document_storage.py
index fe757e7876d..339b320e9a7 100644
--- a/addons/document/document_storage.py
+++ b/addons/document/document_storage.py
@@ -29,18 +29,15 @@ import logging
import shutil
from StringIO import StringIO
import psycopg2
-
from tools.misc import ustr
from tools.translate import _
-
from osv.orm import except_orm
-
import random
import string
import pooler
import nodes
from content_index import cntIndex
-
+_logger = logging.getLogger(__name__)
DMS_ROOT_PATH = tools.config.get('document_path', os.path.join(tools.config.get('root_path'), 'filestore'))
@@ -130,7 +127,7 @@ class nodefd_file(nodes.node_descriptor):
mime, icont = cntIndex.doIndex(None, filename=filename,
content_type=None, realfname=fname)
except Exception:
- logging.getLogger('document.storage').debug('Cannot index file:', exc_info=True)
+ _logger.debug('Cannot index file:', exc_info=True)
pass
try:
@@ -150,7 +147,7 @@ class nodefd_file(nodes.node_descriptor):
cr.commit()
cr.close()
except Exception:
- logging.getLogger('document.storage').warning('Cannot save file indexed content:', exc_info=True)
+ _logger.warning('Cannot save file indexed content:', exc_info=True)
elif self.mode in ('a', 'a+' ):
try:
@@ -164,7 +161,7 @@ class nodefd_file(nodes.node_descriptor):
cr.commit()
cr.close()
except Exception:
- logging.getLogger('document.storage').warning('Cannot save file appended content:', exc_info=True)
+ _logger.warning('Cannot save file appended content:', exc_info=True)
@@ -191,7 +188,7 @@ class nodefd_db(StringIO, nodes.node_descriptor):
elif mode == 'a':
StringIO.__init__(self, None)
else:
- logging.getLogger('document.storage').error("Incorrect mode %s specified", mode)
+ _logger.error("Incorrect mode %s specified", mode)
raise IOError(errno.EINVAL, "Invalid file mode")
self.mode = mode
@@ -217,7 +214,7 @@ class nodefd_db(StringIO, nodes.node_descriptor):
mime, icont = cntIndex.doIndex(data, filename=filename,
content_type=None, realfname=None)
except Exception:
- logging.getLogger('document.storage').debug('Cannot index file:', exc_info=True)
+ _logger.debug('Cannot index file:', exc_info=True)
pass
try:
@@ -241,7 +238,7 @@ class nodefd_db(StringIO, nodes.node_descriptor):
(out, len(data), par.file_id))
cr.commit()
except Exception:
- logging.getLogger('document.storage').exception('Cannot update db file #%d for close:', par.file_id)
+ _logger.exception('Cannot update db file #%d for close:', par.file_id)
raise
finally:
cr.close()
@@ -271,7 +268,7 @@ class nodefd_db64(StringIO, nodes.node_descriptor):
elif mode == 'a':
StringIO.__init__(self, None)
else:
- logging.getLogger('document.storage').error("Incorrect mode %s specified", mode)
+ _logger.error("Incorrect mode %s specified", mode)
raise IOError(errno.EINVAL, "Invalid file mode")
self.mode = mode
@@ -297,7 +294,7 @@ class nodefd_db64(StringIO, nodes.node_descriptor):
mime, icont = cntIndex.doIndex(data, filename=filename,
content_type=None, realfname=None)
except Exception:
- logging.getLogger('document.storage').debug('Cannot index file:', exc_info=True)
+ self.logger.debug('Cannot index file:', exc_info=True)
pass
try:
@@ -320,7 +317,7 @@ class nodefd_db64(StringIO, nodes.node_descriptor):
(base64.encodestring(data), len(data), par.file_id))
cr.commit()
except Exception:
- logging.getLogger('document.storage').exception('Cannot update db file #%d for close:', par.file_id)
+ _logger.exception('Cannot update db file #%d for close:', par.file_id)
raise
finally:
cr.close()
@@ -339,7 +336,6 @@ class document_storage(osv.osv):
"""
_name = 'document.storage'
_description = 'Storage Media'
- _doclog = logging.getLogger('document')
_columns = {
'name': fields.char('Name', size=64, required=True, select=1),
@@ -402,7 +398,7 @@ class document_storage(osv.osv):
npath = filter(lambda x: x is not None, npath)
# if self._debug:
- # self._doclog.debug('Npath: %s', npath)
+ # self._logger.debug('Npath: %s', npath)
for n in npath:
if n == '..':
raise ValueError("Invalid '..' element in path")
@@ -413,7 +409,7 @@ class document_storage(osv.osv):
dpath += npath[:-1]
path = os.path.join(*dpath)
if not os.path.isdir(path):
- self._doclog.debug("Create dirs: %s", path)
+ _logger.debug("Create dirs: %s", path)
os.makedirs(path)
return path, npath
@@ -451,7 +447,7 @@ class document_storage(osv.osv):
# try to fix their directory.
if mode in ('r','r+'):
if ira.file_size:
- self._doclog.warning( "ir.attachment #%d does not have a filename, but is at filestore, fix it!" % ira.id)
+ _logger.warning( "ir.attachment #%d does not have a filename, but is at filestore, fix it!" % ira.id)
raise IOError(errno.ENOENT, 'No file can be located')
else:
store_fname = self.__get_random_fname(boo.path)
@@ -493,7 +489,7 @@ class document_storage(osv.osv):
# On a migrated db, some files may have the wrong storage type
# try to fix their directory.
if ira.file_size:
- self._doclog.warning( "ir.attachment #%d does not have a filename, but is at filestore, fix it!" % ira.id)
+ _logger.warning( "ir.attachment #%d does not have a filename, but is at filestore, fix it!" % ira.id)
return None
fpath = os.path.join(boo.path, ira.store_fname)
return file(fpath, 'rb').read()
@@ -517,7 +513,7 @@ class document_storage(osv.osv):
# On a migrated db, some files may have the wrong storage type
# try to fix their directory.
if ira.file_size:
- self._doclog.warning("ir.attachment #%d does not have a filename, trying the name." %ira.id)
+ _logger.warning("ir.attachment #%d does not have a filename, trying the name." %ira.id)
# sfname = ira.name
fpath = os.path.join(boo.path,ira.store_fname or ira.name)
if os.path.exists(fpath):
@@ -550,7 +546,7 @@ class document_storage(osv.osv):
if boo.readonly:
raise IOError(errno.EPERM, "Readonly medium")
- self._doclog.debug( "Store data for ir.attachment #%d" % ira.id)
+ _logger.debug( "Store data for ir.attachment #%d" % ira.id)
store_fname = None
fname = None
if boo.type == 'filestore':
@@ -563,13 +559,13 @@ class document_storage(osv.osv):
fp.write(data)
finally:
fp.close()
- self._doclog.debug( "Saved data to %s" % fname)
+ _logger.debug( "Saved data to %s" % fname)
filesize = len(data) # os.stat(fname).st_size
# TODO Here, an old file would be left hanging.
except Exception, e:
- self._doclog.warning( "Couldn't save data to %s", path, exc_info=True)
+ _logger.warning( "Couldn't save data to %s", path, exc_info=True)
raise except_orm(_('Error!'), str(e))
elif boo.type == 'db':
filesize = len(data)
@@ -592,12 +588,12 @@ class document_storage(osv.osv):
fp.write(data)
finally:
fp.close()
- self._doclog.debug("Saved data to %s", fname)
+ _logger.debug("Saved data to %s", fname)
filesize = len(data) # os.stat(fname).st_size
store_fname = os.path.join(*npath)
# TODO Here, an old file would be left hanging.
except Exception,e :
- self._doclog.warning("Couldn't save data:", exc_info=True)
+ _logger.warning("Couldn't save data:", exc_info=True)
raise except_orm(_('Error!'), str(e))
elif boo.type == 'virtual':
@@ -616,7 +612,7 @@ class document_storage(osv.osv):
mime, icont = cntIndex.doIndex(data, ira.datas_fname,
ira.file_type or None, fname)
except Exception:
- self._doclog.debug('Cannot index file:', exc_info=True)
+ _logger.debug('Cannot index file:', exc_info=True)
pass
try:
@@ -633,7 +629,7 @@ class document_storage(osv.osv):
file_node.content_type = mime
return True
except Exception, e :
- self._doclog.warning("Couldn't save data:", exc_info=True)
+ self._logger.warning("Couldn't save data:", exc_info=True)
# should we really rollback once we have written the actual data?
# at the db case (only), that rollback would be safe
raise except_orm(_('Error at doc write!'), str(e))
@@ -671,9 +667,9 @@ class document_storage(osv.osv):
try:
os.unlink(fname)
except Exception:
- self._doclog.warning("Could not remove file %s, please remove manually.", fname, exc_info=True)
+ _logger.warning("Could not remove file %s, please remove manually.", fname, exc_info=True)
else:
- self._doclog.warning("Unknown unlink key %s" % ktype)
+ _logger.warning("Unknown unlink key %s" % ktype)
return True
@@ -703,9 +699,9 @@ class document_storage(osv.osv):
fname = ira.store_fname
if not fname:
- self._doclog.warning("Trying to rename a non-stored file")
+ _logger.warning("Trying to rename a non-stored file")
if fname != os.path.join(*npath):
- self._doclog.warning("inconsistency in realstore: %s != %s" , fname, repr(npath))
+ _logger.warning("inconsistency in realstore: %s != %s" , fname, repr(npath))
oldpath = os.path.join(path, npath[-1])
newpath = os.path.join(path, new_name)
@@ -743,7 +739,7 @@ class document_storage(osv.osv):
break
par = par.parent_id
if file_node.storage_id != psto:
- self._doclog.debug('Cannot move file %r from %r to %r', file_node, file_node.parent, ndir_bro.name)
+ _logger.debug('Cannot move file %r from %r to %r', file_node, file_node.parent, ndir_bro.name)
raise NotImplementedError('Cannot move files between storage media')
if sbro.type in ('filestore', 'db', 'db64'):
@@ -756,9 +752,9 @@ class document_storage(osv.osv):
fname = ira.store_fname
if not fname:
- self._doclog.warning("Trying to rename a non-stored file")
+ _logger.warning("Trying to rename a non-stored file")
if fname != os.path.join(*opath):
- self._doclog.warning("inconsistency in realstore: %s != %s" , fname, repr(opath))
+ _logger.warning("inconsistency in realstore: %s != %s" , fname, repr(opath))
oldpath = os.path.join(path, opath[-1])
@@ -766,12 +762,12 @@ class document_storage(osv.osv):
npath = filter(lambda x: x is not None, npath)
newdir = os.path.join(*npath)
if not os.path.isdir(newdir):
- self._doclog.debug("Must create dir %s", newdir)
+ _logger.debug("Must create dir %s", newdir)
os.makedirs(newdir)
npath.append(opath[-1])
newpath = os.path.join(*npath)
- self._doclog.debug("Going to move %s from %s to %s", opath[-1], oldpath, newpath)
+ _logger.debug("Going to move %s from %s to %s", opath[-1], oldpath, newpath)
shutil.move(oldpath, newpath)
store_path = npath[1:] + [opath[-1],]
diff --git a/addons/document/nodes.py b/addons/document/nodes.py
index ee89f3d4c6c..273be7effa4 100644
--- a/addons/document/nodes.py
+++ b/addons/document/nodes.py
@@ -41,8 +41,7 @@ from StringIO import StringIO
# file: objct = ir.attachement
# root: if we are at the first directory of a ressource
#
-
-logger = logging.getLogger('doc2.nodes')
+_logger = logging.getLogger(__name__)
def _str2time(cre):
""" Convert a string with time representation (from db) into time (float)
@@ -328,7 +327,7 @@ class node_class(object):
if self.DAV_M_NS.has_key(ns):
prefix = self.DAV_M_NS[ns]
else:
- logger.debug('No namespace: %s ("%s")',ns, prop)
+ _logger.debug('No namespace: %s ("%s")',ns, prop)
return None
mname = prefix + "_" + prop.replace('-','_')
@@ -341,7 +340,7 @@ class node_class(object):
r = m(cr)
return r
except AttributeError:
- logger.debug('Property %s not supported' % prop, exc_info=True)
+ _logger.debug('Property %s not supported' % prop, exc_info=True)
return None
def get_dav_resourcetype(self, cr):
@@ -384,13 +383,13 @@ class node_class(object):
def create_child(self, cr, path, data=None):
""" Create a regular file under this node
"""
- logger.warning("Attempted to create a file under %r, not possible.", self)
+ _logger.warning("Attempted to create a file under %r, not possible.", self)
raise IOError(errno.EPERM, "Not allowed to create files here")
def create_child_collection(self, cr, objname):
""" Create a child collection (directory) under self
"""
- logger.warning("Attempted to create a collection under %r, not possible.", self)
+ _logger.warning("Attempted to create a collection under %r, not possible.", self)
raise IOError(errno.EPERM, "Not allowed to create folders here")
def rm(self, cr):
@@ -725,7 +724,7 @@ class node_dir(node_database):
assert self.parent
if self.parent != ndir_node:
- logger.debug('Cannot move dir %r from %r to %r', self, self.parent, ndir_node)
+ _logger.debug('Cannot move dir %r from %r to %r', self, self.parent, ndir_node)
raise NotImplementedError('Cannot move dir to another dir')
ret = {}
@@ -998,7 +997,7 @@ class node_res_obj(node_class):
def get_dav_eprop_DEPR(self, cr, ns, prop):
# Deprecated!
if ns != 'http://groupdav.org/' or prop != 'resourcetype':
- logger.warning("Who asked for %s:%s?" % (ns, prop))
+ _logger.warning("Who asked for %s:%s?" % (ns, prop))
return None
cntobj = self.context._dirobj.pool.get('document.directory.content')
uid = self.context.uid
@@ -1328,7 +1327,7 @@ class node_file(node_class):
ret = {}
if ndir_node and self.parent != ndir_node:
if not (isinstance(self.parent, node_dir) and isinstance(ndir_node, node_dir)):
- logger.debug('Cannot move file %r from %r to %r', self, self.parent, ndir_node)
+ _logger.debug('Cannot move file %r from %r to %r', self, self.parent, ndir_node)
raise NotImplementedError('Cannot move files between dynamic folders')
if not ndir_obj:
@@ -1452,6 +1451,7 @@ class node_content(node_class):
return ''
class nodefd_content(StringIO, node_descriptor):
+
""" A descriptor to content nodes
"""
def __init__(self, parent, cr, mode, ctx):
@@ -1473,7 +1473,7 @@ class nodefd_content(StringIO, node_descriptor):
elif mode == 'a':
StringIO.__init__(self, None)
else:
- logging.getLogger('document.content').error("Incorrect mode %s specified", mode)
+ _logger.error("Incorrect mode %s specified", mode)
raise IOError(errno.EINVAL, "Invalid file mode")
self.mode = mode
@@ -1499,13 +1499,14 @@ class nodefd_content(StringIO, node_descriptor):
raise NotImplementedError
cr.commit()
except Exception:
- logging.getLogger('document.content').exception('Cannot update db content #%d for close:', par.cnt_id)
+ _logger.exception('Cannot update db content #%d for close:', par.cnt_id)
raise
finally:
cr.close()
StringIO.close(self)
class nodefd_static(StringIO, node_descriptor):
+
""" A descriptor to nodes with static data.
"""
def __init__(self, parent, cr, mode, ctx=None):
@@ -1526,7 +1527,7 @@ class nodefd_static(StringIO, node_descriptor):
elif mode == 'a':
StringIO.__init__(self, None)
else:
- logging.getLogger('document.nodes').error("Incorrect mode %s specified", mode)
+ _logger.error("Incorrect mode %s specified", mode)
raise IOError(errno.EINVAL, "Invalid file mode")
self.mode = mode
@@ -1551,7 +1552,7 @@ class nodefd_static(StringIO, node_descriptor):
raise NotImplementedError
cr.commit()
except Exception:
- logging.getLogger('document.nodes').exception('Cannot update db content #%d for close:', par.cnt_id)
+ _logger.exception('Cannot update db content #%d for close:', par.cnt_id)
raise
finally:
cr.close()
diff --git a/addons/document/std_index.py b/addons/document/std_index.py
index e153d018bf0..49ac9a5c906 100644
--- a/addons/document/std_index.py
+++ b/addons/document/std_index.py
@@ -25,6 +25,7 @@ import StringIO
import odt2txt
import sys, zipfile, xml.dom.minidom
import logging
+_logger = logging.getLogger(__name__)
def _to_unicode(s):
try:
@@ -101,9 +102,9 @@ class DocIndex(indexer):
(data, _) = pop.communicate()
return _to_unicode(data)
except OSError:
- logger = logging.getLogger('document.DocIndex')
- logger.warn("Failed attempt to execute antiword (MS Word reader). Antiword is necessary to index the file %s of MIME type %s. Detailed error available at DEBUG level.", fname, self._getMimeTypes()[0])
- logger.debug("Trace of the failed file indexing attempt: ", exc_info=True)
+
+ _logger.warn("Failed attempt to execute antiword (MS Word reader). Antiword is necessary to index the file %s of MIME type %s. Detailed error available at DEBUG level.", fname, self._getMimeTypes()[0])
+ _logger.debug("Trace of the failed file indexing attempt: ", exc_info=True)
return False
cntIndex.register(DocIndex())
diff --git a/addons/document_ftp/ftpserver/__init__.py b/addons/document_ftp/ftpserver/__init__.py
index 2e09a938a05..59aff85c633 100644
--- a/addons/document_ftp/ftpserver/__init__.py
+++ b/addons/document_ftp/ftpserver/__init__.py
@@ -23,9 +23,9 @@ import threading
import ftpserver
import authorizer
import abstracted_fs
-import netsvc
+import logging
from tools import config
-
+_logger = logging.getLogger(__name__)
def start_server():
HOST = config.get('ftp_server_host', '127.0.0.1')
PORT = int(config.get('ftp_server_port', '8021'))
@@ -35,10 +35,7 @@ def start_server():
PASSIVE_PORTS = int(pps[0]), int(pps[1])
class ftp_server(threading.Thread):
- def log(self, level, message):
- logger = netsvc.Logger()
- logger.notifyChannel('FTP', level, message)
-
+
def run(self):
autho = authorizer.authorizer()
ftpserver.FTPHandler.authorizer = autho
@@ -48,17 +45,17 @@ def start_server():
if PASSIVE_PORTS:
ftpserver.FTPHandler.passive_ports = PASSIVE_PORTS
- ftpserver.log = lambda msg: self.log(netsvc.LOG_INFO, msg)
+ ftpserver.log = lambda msg: _logger.info(msg)
ftpserver.logline = lambda msg: None
- ftpserver.logerror = lambda msg: self.log(netsvc.LOG_ERROR, msg)
+ ftpserver.logerror = lambda msg: _logger.error(msg)
ftpd = ftpserver.FTPServer((HOST, PORT), ftpserver.FTPHandler)
ftpd.serve_forever()
if HOST.lower() == 'none':
- netsvc.Logger().notifyChannel("FTP", netsvc.LOG_INFO, "\n Server FTP Not Started\n")
+ _logger.info("\n Server FTP Not Started\n")
else:
- netsvc.Logger().notifyChannel("FTP", netsvc.LOG_INFO, "\n Serving FTP on %s:%s\n" % (HOST, PORT))
+ _logger.info("\n Serving FTP on %s:%s\n" % (HOST, PORT))
ds = ftp_server()
ds.daemon = True
ds.start()
diff --git a/addons/document_ftp/ftpserver/abstracted_fs.py b/addons/document_ftp/ftpserver/abstracted_fs.py
index 83cd1cde725..429016a2376 100644
--- a/addons/document_ftp/ftpserver/abstracted_fs.py
+++ b/addons/document_ftp/ftpserver/abstracted_fs.py
@@ -56,7 +56,7 @@ class abstracted_fs(object):
self.cwd = '/'
self.cwd_node = None
self.rnfr = None
- self._log = logging.getLogger('FTP.fs')
+ self._log = logging.getLogger(__name__)
# Ok
def db_list(self):
diff --git a/addons/document_webdav/redirect.py b/addons/document_webdav/redirect.py
index 7bc0883f9e8..31f462bcbbe 100644
--- a/addons/document_webdav/redirect.py
+++ b/addons/document_webdav/redirect.py
@@ -24,9 +24,9 @@ import logging
import urlparse
from service.websrv_lib import FixSendError, HTTPHandler, HttpOptions
from service.http_server import HttpLogHandler
-
+_logger = logging.getLogger(__name__)
class RedirectHTTPHandler(HttpLogHandler, FixSendError, HttpOptions, HTTPHandler):
- _logger = logging.getLogger('httpd.well-known')
+
_HTTP_OPTIONS = { 'Allow': ['OPTIONS', 'GET', 'HEAD', 'PROPFIND'] }
redirect_paths = {}
@@ -80,7 +80,7 @@ class RedirectHTTPHandler(HttpLogHandler, FixSendError, HttpOptions, HTTPHandler
self.send_header("Content-Length", 0)
self.end_headers()
# Do we need a Cache-content: header here?
- self._logger.debug("redirecting %s to %s", self.path, redir_path)
+ _logger.debug("redirecting %s to %s", self.path, redir_path)
return None
def do_PROPFIND(self):
diff --git a/addons/document_webdav/test_davclient.py b/addons/document_webdav/test_davclient.py
index 3c20cfed5b8..a4dda231bd8 100755
--- a/addons/document_webdav/test_davclient.py
+++ b/addons/document_webdav/test_davclient.py
@@ -43,7 +43,7 @@ from xmlrpclib import Transport, ProtocolError
import StringIO
import base64
-log = logging.getLogger('http-client')
+_logger = logging.getLogger(__name__)
class HTTP11(httplib.HTTP):
_http_vsn = 11
@@ -62,7 +62,7 @@ class PersistentTransport(Transport):
if not self._http.has_key(host):
host, extra_headers, x509 = self.get_host_info(host)
self._http[host] = HTTP11(host)
- log.debug("New connection to %s", host)
+ _logger.debug("New connection to %s", host)
return self._http[host]
def get_host_info(self, host):
@@ -170,7 +170,7 @@ class SafePersistentTransport(PersistentTransport):
if not self._http.has_key(host):
host, extra_headers, x509 = self.get_host_info(host)
self._http[host] = httplib.HTTPS(host, None, **(x509 or {}))
- log.debug("New connection to %s", host)
+ _logger.debug("New connection to %s", host)
return self._http[host]
class AuthClient(object):
@@ -191,8 +191,8 @@ class BasicAuthClient(AuthClient):
return super(BasicAuthClient,self).getAuth(atype, realm)
if not self._realm_dict.has_key(realm):
- log.debug("realm dict: %r", self._realm_dict)
- log.debug("missing key: \"%s\"" % realm)
+ _logger.debug("realm dict: %r", self._realm_dict)
+ _logger.debug("missing key: \"%s\"" % realm)
self.resolveFailedRealm(realm)
return 'Basic '+ self._realm_dict[realm]
@@ -239,7 +239,7 @@ class addAuthTransport:
# This line will bork if self.setAuthClient has not
# been issued. That is a programming error, fix your code!
auths = self._auth_client.getAuth(atype, realm)
- log.debug("sending authorization: %s", auths)
+ _logger.debug("sending authorization: %s", auths)
h.putheader('Authorization', auths)
self.send_content(h, request_body)
@@ -255,8 +255,8 @@ class addAuthTransport:
log.warning("Why have data on a 401 auth. message?")
if realm.startswith('realm="') and realm.endswith('"'):
realm = realm[7:-1]
- log.debug("Resp: %r %r", resp.version,resp.isclosed(), resp.will_close)
- log.debug("Want to do auth %s for realm %s", atype, realm)
+ _logger.debug("Resp: %r %r", resp.version,resp.isclosed(), resp.will_close)
+ _logger.debug("Want to do auth %s for realm %s", atype, realm)
if atype != 'Basic':
raise ProtocolError(host+handler, 403,
"Unknown authentication method: %s" % atype, resp.msg)
@@ -315,7 +315,7 @@ class HTTPSConnection(httplib.HTTPSConnection):
lf = (len(ssl.PEM_FOOTER)+1)
if cert[0-lf] != '\n':
cert = cert[:0-lf]+'\n'+cert[0-lf:]
- log.debug("len-footer: %s cert: %r", lf, cert[0-lf])
+ _logger.debug("len-footer: %s cert: %r", lf, cert[0-lf])
return cert
@@ -390,7 +390,7 @@ class DAVClient(object):
import base64
dbg = self.dbg
hdrs.update(self.hdrs)
- log.debug("Getting %s http://%s:%d/%s", method, self.host, self.port, path)
+ _logger.debug("Getting %s http://%s:%d/%s", method, self.host, self.port, path)
conn = httplib.HTTPConnection(self.host, port=self.port, timeout=self.timeout)
conn.set_debuglevel(dbg)
if not path:
@@ -409,8 +409,8 @@ class DAVClient(object):
data1 = r1.read()
if not self.user:
raise Exception('Must auth, have no user/pass!')
- log.debug("Ver: %s, closed: %s, will close: %s", r1.version,r1.isclosed(), r1.will_close)
- log.debug("Want to do auth %s for realm %s", atype, realm)
+ _logger.debug("Ver: %s, closed: %s, will close: %s", r1.version,r1.isclosed(), r1.will_close)
+ _logger.debug("Want to do auth %s for realm %s", atype, realm)
if atype == 'Basic' :
auths = base64.encodestring(self.user + ':' + self.passwd)
if auths[-1] == "\n":
@@ -422,22 +422,22 @@ class DAVClient(object):
else:
raise Exception("Unknown auth type %s" %atype)
else:
- log.warning("Got 401, cannot auth")
+ _logger.warning("Got 401, cannot auth")
raise Exception('No auth')
- log.debug("Reponse: %s %s",r1.status, r1.reason)
+ _logger.debug("Reponse: %s %s",r1.status, r1.reason)
data1 = r1.read()
if method != 'GET':
- log.debug("Body:\n%s\nEnd of body", data1)
+ _logger.debug("Body:\n%s\nEnd of body", data1)
try:
ctype = r1.msg.getheader('content-type')
if ctype and ';' in ctype:
ctype, encoding = ctype.split(';',1)
if ctype == 'text/xml':
doc = xml.dom.minidom.parseString(data1)
- log.debug("XML Body:\n %s", doc.toprettyxml(indent="\t"))
+ _logger.debug("XML Body:\n %s", doc.toprettyxml(indent="\t"))
except Exception:
- log.warning("could not print xml", exc_info=True)
+ _logger.warning("could not print xml", exc_info=True)
pass
conn.close()
return r1.status, r1.msg, data1
@@ -474,7 +474,7 @@ class DAVClient(object):
s, m, d = self._http_request(path, method='OPTIONS', hdrs=hdrs)
assert s == 200, "Status: %r" % s
assert 'OPTIONS' in m.getheader('Allow')
- log.debug('Options: %r', m.getheader('Allow'))
+ _logger.debug('Options: %r', m.getheader('Allow'))
if expect:
self._assert_headers(expect, m)
@@ -493,10 +493,10 @@ class DAVClient(object):
for cnod in node.childNodes:
if cnod.nodeType != node.ELEMENT_NODE:
if strict:
- log.debug("Found %r inside <%s>", cnod, node.tagName)
+ _logger.debug("Found %r inside <%s>", cnod, node.tagName)
continue
if namespaces and (cnod.namespaceURI not in namespaces):
- log.debug("Ignoring <%s> in <%s>", cnod.tagName, node.localName)
+ _logger.debug("Ignoring <%s> in <%s>", cnod.tagName, node.localName)
continue
yield cnod
@@ -533,10 +533,10 @@ class DAVClient(object):
assert htver == 'HTTP/1.1'
rstatus = int(sta)
else:
- log.debug("What is <%s> inside a ?", pno.tagName)
+ _logger.debug("What is <%s> inside a ?", pno.tagName)
else:
- log.debug("Unknown node: %s", cno.tagName)
+ _logger.debug("Unknown node: %s", cno.tagName)
res.setdefault(href,[]).append((status, res_nss))
@@ -637,7 +637,7 @@ class DAVClient(object):
if lsp[1] in davprops:
lsline[lsp[0]] = lsp[2]
else:
- log.debug("Strange status: %s", st)
+ _logger.debug("Strange status: %s", st)
res.append(lsline)
diff --git a/addons/document_webdav/webdav_server.py b/addons/document_webdav/webdav_server.py
index ae75d0b80fc..65ebb49ff5f 100644
--- a/addons/document_webdav/webdav_server.py
+++ b/addons/document_webdav/webdav_server.py
@@ -54,7 +54,7 @@ from DAV.propfind import PROPFIND
# from DAV.constants import DAV_VERSION_1, DAV_VERSION_2
from xml.dom import minidom
from redirect import RedirectHTTPHandler
-
+_logger = logging.getLogger(__name__)
khtml_re = re.compile(r' KHTML/([0-9\.]+) ')
def OpenDAVConfig(**kw):
@@ -73,7 +73,7 @@ def OpenDAVConfig(**kw):
class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
verbose = False
- _logger = logging.getLogger('webdav')
+
protocol_version = 'HTTP/1.1'
_HTTP_OPTIONS= { 'DAV' : ['1', '2'],
'Allow' : [ 'GET', 'HEAD', 'COPY', 'MOVE', 'POST', 'PUT',
@@ -127,10 +127,10 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler):
return self.davpath
def log_message(self, format, *args):
- self._logger.debug(format % args)
+ _logger.debug(format % args)
def log_error(self, format, *args):
- self._logger.warning(format % args)
+ _logger.warning(format % args)
def _prep_OPTIONS(self, opts):
ret = opts
@@ -477,7 +477,7 @@ class dummy_dav_interface(object):
uri2 = uri.split('/')
if len(uri2) < 3:
return True
- logging.getLogger('webdav').debug("Requested uri: %s", uri)
+ _logger.debug("Requested uri: %s", uri)
return None # no
def is_collection(self, uri):
@@ -487,6 +487,7 @@ class dummy_dav_interface(object):
class DAVStaticHandler(http_server.StaticHTTPHandler):
""" A variant of the Static handler, which will serve dummy DAV requests
"""
+
verbose = False
protocol_version = 'HTTP/1.1'
_HTTP_OPTIONS= { 'DAV' : ['1', '2'],
@@ -573,7 +574,7 @@ try:
conf = OpenDAVConfig(**_dc)
handler._config = conf
reg_http_service(directory, DAVHandler, DAVAuthProvider)
- logging.getLogger('webdav').info("WebDAV service registered at path: %s/ "% directory)
+ _logger.info("WebDAV service registered at path: %s/ "% directory)
if not (config.get_misc('webdav', 'no_root_hack', False)):
# Now, replace the static http handler with the dav-enabled one.
@@ -595,7 +596,7 @@ try:
reg_http_service('/', DAVStaticHandler)
except Exception, e:
- logging.getLogger('webdav').error('Cannot launch webdav: %s' % e)
+ _logger.error('Cannot launch webdav: %s' % e)
def init_well_known():
@@ -616,6 +617,8 @@ def init_well_known():
init_well_known()
class PrincipalsRedirect(RedirectHTTPHandler):
+
+
redirect_paths = {}
def _find_redirect(self):
@@ -639,7 +642,7 @@ def init_principals_redirect():
if dbname:
PrincipalsRedirect.redirect_paths[''] = '/webdav/%s/principals' % dbname
reg_http_service('/principals', PrincipalsRedirect)
- logging.getLogger("web-services").info(
+ _logger.info(
"Registered HTTP redirect handler for /principals to the %s db.",
dbname)
diff --git a/addons/document_webdav/webdav_view.xml b/addons/document_webdav/webdav_view.xml
index 404e60588e3..44af9f2af3a 100644
--- a/addons/document_webdav/webdav_view.xml
+++ b/addons/document_webdav/webdav_view.xml
@@ -78,7 +78,7 @@
form
-
+
@@ -98,7 +98,7 @@
-
+
diff --git a/addons/edi/__init__.py b/addons/edi/__init__.py
index b4a80c0f1dd..46fabbc2fd0 100644
--- a/addons/edi/__init__.py
+++ b/addons/edi/__init__.py
@@ -23,12 +23,13 @@ import logging
import models
import edi_service
from models.edi import EDIMixin, edi_document
+_logger = logging.getLogger(__name__)
# web
try:
import controllers
except ImportError:
- logging.getLogger('init.load').warn(
+ _logger.warn(
"""Could not load openerp-web section of EDI, EDI will not behave correctly
To fix, launch openerp-web in embedded mode""")
diff --git a/addons/edi/edi_service.py b/addons/edi/edi_service.py
index 074720a03e9..f48cc60950a 100644
--- a/addons/edi/edi_service.py
+++ b/addons/edi/edi_service.py
@@ -23,7 +23,7 @@ import logging
import netsvc
import openerp
-_logger = logging.getLogger('edi.service')
+_logger = logging.getLogger(__name__)
class edi(netsvc.ExportService):
diff --git a/addons/edi/models/edi.py b/addons/edi/models/edi.py
index 589922ff178..383d8c7aaba 100644
--- a/addons/edi/models/edi.py
+++ b/addons/edi/models/edi.py
@@ -35,6 +35,7 @@ import pooler
from osv import osv,fields,orm
from tools.translate import _
from tools.safe_eval import safe_eval as eval
+_logger = logging.getLogger(__name__)
EXTERNAL_ID_PATTERN = re.compile(r'^([^.:]+)(?::([^.]+))?\.(\S+)$')
EDI_VIEW_WEB_URL = '%s/edi/view?db=%s&token=%s'
@@ -72,7 +73,6 @@ def last_update_for(record):
return record_log.get('write_date') or record_log.get('create_date') or False
return False
-_logger = logging.getLogger('edi')
class edi_document(osv.osv):
_name = 'edi.document'
diff --git a/addons/edi/models/res_partner.py b/addons/edi/models/res_partner.py
index 357fdec061b..86d8c81b790 100644
--- a/addons/edi/models/res_partner.py
+++ b/addons/edi/models/res_partner.py
@@ -24,6 +24,7 @@ from osv import fields,osv
from edi import EDIMixin
from openerp import SUPERUSER_ID
from tools.translate import _
+_logger = logging.getLogger(__name__)
RES_PARTNER_EDI_STRUCT = {
'name': True,
@@ -63,7 +64,7 @@ class res_partner(osv.osv, EDIMixin):
code, label = 'edi_generic', 'Generic Bank Type (auto-created for EDI)'
bank_code_ids = res_partner_bank_type.search(cr, uid, [('code','=',code)], context=context)
if not bank_code_ids:
- logging.getLogger('edi.res_partner').info('Normal bank account type is missing, creating '
+ _logger.info('Normal bank account type is missing, creating '
'a generic bank account type for EDI.')
self.res_partner_bank_type.create(cr, SUPERUSER_ID, {'name': label,
'code': label})
@@ -84,7 +85,7 @@ class res_partner(osv.osv, EDIMixin):
bank_name, ext_bank_id, context=import_ctx)
except osv.except_osv:
# failed to import it, try again with unrestricted default type
- logging.getLogger('edi.res_partner').warning('Failed to import bank account using'
+ _logger.warning('Failed to import bank account using'
'bank type: %s, ignoring', import_ctx['default_state'],
exc_info=True)
return contact_id
diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py
index fff9bdc0f1a..c4ed2eedb85 100644
--- a/addons/email_template/email_template.py
+++ b/addons/email_template/email_template.py
@@ -29,11 +29,12 @@ from osv import fields
import tools
from tools.translate import _
from urllib import quote as quote
+_logger = logging.getLogger(__name__)
try:
from mako.template import Template as MakoTemplate
except ImportError:
- logging.getLogger('init').warning("email_template: mako templates not available, templating features will not work!")
+ _logger.warning("email_template: mako templates not available, templating features will not work!")
class email_template(osv.osv):
"Templates for sending email"
@@ -75,7 +76,7 @@ class email_template(osv.osv):
result = u''
return result
except Exception:
- logging.exception("failed to render mako template value %r", template)
+ _logger.exception("failed to render mako template value %r", template)
return u""
def get_email_template(self, cr, uid, template_id=False, record_id=None, context=None):
diff --git a/addons/event_sale/event_sale.py b/addons/event_sale/event_sale.py
index 0d6497c45f2..9e65a034544 100644
--- a/addons/event_sale/event_sale.py
+++ b/addons/event_sale/event_sale.py
@@ -78,7 +78,6 @@ class sale_order_line(osv.osv):
dic = {
'name': order_line.order_id.partner_invoice_id.name,
'partner_id': order_line.order_id.partner_id.id,
- 'contact_id': order_line.order_id.partner_invoice_id.id,
'nb_register': int(order_line.product_uom_qty),
'email': order_line.order_id.partner_id.email,
'phone': order_line.order_id.partner_id.phone,
@@ -89,5 +88,5 @@ class sale_order_line(osv.osv):
}
registration_id = registration_obj.create(cr, uid, dic, context=context)
message = _("The registration %s has been created from the Sale Order %s.") % (registration_id, order_line.order_id.name)
- registration_obj.log(cr, uid, registration_id, message)
+ registration_obj.message_append_note(cr, uid, [registration_id], body=message, context=context)
return super(sale_order_line, self).button_confirm(cr, uid, ids, context=context)
diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py
index 93ebd063051..cddcf642dc4 100644
--- a/addons/fetchmail/fetchmail.py
+++ b/addons/fetchmail/fetchmail.py
@@ -39,7 +39,7 @@ from osv import osv, fields
import tools
from tools.translate import _
-logger = logging.getLogger('fetchmail')
+_logger = logging.getLogger(__name__)
class fetchmail_server(osv.osv):
"""Incoming POP/IMAP mail server account"""
diff --git a/addons/google_docs/__openerp__.py b/addons/google_docs/__openerp__.py
index 1df94f34221..8cc5671e08a 100644
--- a/addons/google_docs/__openerp__.py
+++ b/addons/google_docs/__openerp__.py
@@ -30,6 +30,7 @@
'web': True,
'js': ['static/src/js/gdocs.js'],
'update_xml': [
+ 'security/ir.model.access.csv',
'res_config_user_view.xml'
],
'depends': ['google_base_account'],
diff --git a/addons/google_docs/security/ir.model.access.csv b/addons/google_docs/security/ir.model.access.csv
new file mode 100644
index 00000000000..9393d586fb8
--- /dev/null
+++ b/addons/google_docs/security/ir.model.access.csv
@@ -0,0 +1,3 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_google_docs,google.docs.config,model_google_docs_config,,1,0,0,0
+access_google_docs,google.docs.config,model_google_docs_config,base.group_system,1,1,1,1
\ No newline at end of file
diff --git a/addons/hr/hr.py b/addons/hr/hr.py
index e2bca73a72e..e4c08f60559 100644
--- a/addons/hr/hr.py
+++ b/addons/hr/hr.py
@@ -25,6 +25,7 @@ import logging
from osv import fields, osv
from PIL import Image
import StringIO
+_logger = logging.getLogger(__name__)
class hr_employee_category(osv.osv):
@@ -304,7 +305,7 @@ class res_users(osv.osv):
'user_id': user_id}, context=context)
except:
# Tolerate a missing shortcut. See product/product.py for similar code.
- logging.getLogger('orm').debug('Skipped meetings shortcut for user "%s"', data.get('name','Francois
fpifpi
- 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
+ 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Julienjthjth
- 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
+ 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
diff --git a/addons/hr/res_config_view.xml b/addons/hr/res_config_view.xml
index a1bf809a5c9..f96f4a80ab2 100644
--- a/addons/hr/res_config_view.xml
+++ b/addons/hr/res_config_view.xml
@@ -17,7 +17,7 @@
-
+
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index 1ec4cbb0e4b..881be3be05f 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -27,7 +27,7 @@ from tools.misc import email_re
from tools.translate import _
from base.res.res_users import _lang_get
-
+_logger = logging.getLogger(__name__)
# welcome email sent to new portal users (note that calling tools.translate._
@@ -174,7 +174,7 @@ class wizard(osv.osv_memory):
body = _(WELCOME_EMAIL_BODY) % data
res = mail_message_obj.schedule_with_attach(cr, uid, email_from , [email_to], subject, body, context=context)
if not res:
- logging.getLogger('res.portal.wizard').warning(
+ _logger.warning(
'Failed to send email from %s to %s', email_from, email_to)
return {'type': 'ir.actions.act_window_close'}
diff --git a/addons/portal/wizard/share_wizard.py b/addons/portal/wizard/share_wizard.py
index b5c9d165cc6..b2ed8703421 100644
--- a/addons/portal/wizard/share_wizard.py
+++ b/addons/portal/wizard/share_wizard.py
@@ -21,6 +21,8 @@
from osv import osv, fields
from tools.translate import _
+import logging
+_logger = logging.getLogger(__name__)
UID_ROOT = 1
SHARED_DOCS_MENU = "Documents"
@@ -164,19 +166,19 @@ class share_wizard_portal(osv.osv_memory):
# v6.1, the algorithm for combining them will OR the rules, hence
# extending the visible data.
Rules.write(cr, UID_ROOT, share_rule_ids, {'groups': [(4,target_group.id)]})
- self._logger.debug("Linked sharing rules from temporary sharing group to group %s", target_group)
+ _logger.debug("Linked sharing rules from temporary sharing group to group %s", target_group)
# Copy the access rights. This is appropriate too because
# groups have the UNION of all permissions granted by their
# access right lines.
for access_line in share_group.model_access:
Rights.copy(cr, UID_ROOT, access_line.id, default={'group_id': target_group.id})
- self._logger.debug("Copied access rights from temporary sharing group to group %s", target_group)
+ _logger.debug("Copied access rights from temporary sharing group to group %s", target_group)
# finally, delete it after removing its users
Groups.write(cr, UID_ROOT, [share_group_id], {'users': [(6,0,[])]})
Groups.unlink(cr, UID_ROOT, [share_group_id])
- self._logger.debug("Deleted temporary sharing group %s", share_group_id)
+ _logger.debug("Deleted temporary sharing group %s", share_group_id)
def _finish_result_lines(self, cr, uid, wizard_data, share_group_id, context=None):
super(share_wizard_portal,self)._finish_result_lines(cr, uid, wizard_data, share_group_id, context=context)
diff --git a/addons/product_visible_discount/i18n/sv.po b/addons/product_visible_discount/i18n/sv.po
new file mode 100644
index 00000000000..1b440cb2d4c
--- /dev/null
+++ b/addons/product_visible_discount/i18n/sv.po
@@ -0,0 +1,62 @@
+# Swedish translation for openobject-addons
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2012-02-08 00:37+0000\n"
+"PO-Revision-Date: 2012-06-26 22:45+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Swedish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-06-27 05:28+0000\n"
+"X-Generator: Launchpad (build 15482)\n"
+
+#. module: product_visible_discount
+#: code:addons/product_visible_discount/product_visible_discount.py:153
+#, python-format
+msgid "No Sale Pricelist Found!"
+msgstr "Ingen försäljningsprislista funnen!"
+
+#. module: product_visible_discount
+#: field:product.pricelist,visible_discount:0
+msgid "Visible Discount"
+msgstr "Synlig rabatt"
+
+#. module: product_visible_discount
+#: code:addons/product_visible_discount/product_visible_discount.py:145
+#, python-format
+msgid "No Purchase Pricelist Found!"
+msgstr ""
+
+#. module: product_visible_discount
+#: model:ir.model,name:product_visible_discount.model_account_invoice_line
+msgid "Invoice Line"
+msgstr "Fakturarad"
+
+#. module: product_visible_discount
+#: model:ir.model,name:product_visible_discount.model_product_pricelist
+msgid "Pricelist"
+msgstr "Prislista"
+
+#. module: product_visible_discount
+#: code:addons/product_visible_discount/product_visible_discount.py:145
+#, python-format
+msgid "You must first define a pricelist on the supplier form!"
+msgstr ""
+
+#. module: product_visible_discount
+#: model:ir.model,name:product_visible_discount.model_sale_order_line
+msgid "Sales Order Line"
+msgstr "Orderrad"
+
+#. module: product_visible_discount
+#: code:addons/product_visible_discount/product_visible_discount.py:153
+#, python-format
+msgid "You must first define a pricelist on the customer form!"
+msgstr ""
diff --git a/addons/project/project.py b/addons/project/project.py
index 429672d3269..ab02cc870bb 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -165,14 +165,29 @@ class project(osv.osv):
res[task.project_id.id] += 1
return res
+ def _get_followers(self, cr, uid, ids, name, arg, context=None):
+ '''
+ Functional field that computes the users that are 'following' a thread.
+ '''
+ res = {}
+ for project in self.browse(cr, uid, ids, context=context):
+ l = set()
+ for message in project.message_ids:
+ l.add(message.user_id and message.user_id.id or False)
+ res[project.id] = list(filter(None, l))
+ return res
+
+ def _search_followers(self, cr, uid, obj, name, args, context=None):
+ project_obj = self.pool.get('project.project')
+ project_ids = project_obj.search(cr, uid, [('message_ids.user_id.id', 'in', args[0][2])], context=context)
+ return [('id', 'in', project_ids)]
+
_columns = {
'complete_name': fields.function(_complete_name, string="Project Name", type='char', size=250),
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the project without removing it."),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of Projects."),
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', help="Link this project to an analytic account if you need financial management on projects. It enables you to connect projects with budgets, planning, cost and revenue analysis, timesheets on projects, etc.", ondelete="cascade", required=True),
'priority': fields.integer('Sequence', help="Gives the sequence order when displaying the list of projects"),
- 'warn_manager': fields.boolean('Notify Manager', help="If you check this field, the project manager will receive an email each time a task is completed by his team.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
-
'members': fields.many2many('res.users', 'project_user_rel', 'project_id', 'uid', 'Project Members',
help="Project's members are users who can have an access to the tasks related to this project.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
'tasks': fields.one2many('project.task', 'project_id', "Task Activities"),
@@ -197,19 +212,18 @@ class project(osv.osv):
'project.task': (_get_projects_from_tasks, ['planned_hours', 'remaining_hours', 'work_ids', 'state'], 20),
}),
'resource_calendar_id': fields.many2one('resource.calendar', 'Working Time', help="Timetable working hours to adjust the gantt diagram report", states={'close':[('readonly',True)]} ),
- 'warn_customer': fields.boolean('Warn Partner', help="If you check this, the user will have a popup when closing a task that propose a message to send by email to the customer.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
- 'warn_header': fields.text('Mail Header', help="Header added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
- 'warn_footer': fields.text('Mail Footer', help="Footer added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
'type_ids': fields.many2many('project.task.type', 'project_task_type_rel', 'project_id', 'type_id', 'Tasks Stages', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
- 'use_tasks': fields.boolean('Use Tasks', help="Check this field if this project is aimed at managing tasks"),
'task_count': fields.function(_task_count, type='integer', string="Open Tasks"),
'color': fields.integer('Color Index'),
- 'company_uom_id': fields.related('company_id', 'project_time_mode_id', type='many2one', relation='product.uom'),
+ 'privacy_visibility': fields.selection([('public','Public'), ('followers','Followers Only')], 'Privacy / Visibility'),
+ 'state': fields.selection([('template', 'Template'),('draft','New'),('open','In Progress'), ('cancelled', 'Cancelled'),('pending','Pending'),('close','Closed')], 'Status', required=True,),
+ 'followers': fields.function(_get_followers, method=True, fnct_search=_search_followers,
+ type='many2many', relation='res.users', string='Followers'),
}
def dummy(self, cr, uid, ids, context):
return True
-
+
def _get_type_common(self, cr, uid, context):
ids = self.pool.get('project.task.type').search(cr, uid, [('case_default','=',1)], context=context)
return ids
@@ -217,10 +231,11 @@ class project(osv.osv):
_order = "sequence"
_defaults = {
'active': True,
+ 'type': 'contract',
+ 'state': 'open',
'priority': 1,
'sequence': 10,
'type_ids': _get_type_common,
- 'use_tasks': True,
}
# TODO: Why not using a SQL contraints ?
@@ -894,28 +909,12 @@ class task(base_stage, osv.osv):
return True
def action_close(self, cr, uid, ids, context=None):
- """ This action closes the task, then opens the wizard to send an
- email to the partner or the project manager.
+ """ This action closes the task
"""
task_id = len(ids) and ids[0] or False
self._check_child_task(cr, uid, ids, context=context)
if not task_id: return False
- task = self.browse(cr, uid, task_id, context=context)
- project = task.project_id
- res = self.do_close(cr, uid, [task_id], context=context)
- if project.warn_manager or project.warn_customer:
- return {
- 'name': _('Send Email after close task'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'mail.compose.message',
- 'type': 'ir.actions.act_window',
- 'target': 'new',
- 'nodestroy': True,
- 'context': {'active_id': task.id,
- 'active_model': 'project.task'}
- }
- return res
+ return self.do_close(cr, uid, [task_id], context=context)
def do_close(self, cr, uid, ids, context=None):
""" Compatibility when changing to case_close. """
@@ -1217,16 +1216,49 @@ class project_work(osv.osv):
class account_analytic_account(osv.osv):
-
_inherit = 'account.analytic.account'
_description = 'Analytic Account'
+ _columns = {
+ 'use_tasks': fields.boolean('Tasks Management',help="If check,this contract will be available in the project menu and you will be able to manage tasks or track issues"),
+ 'company_uom_id': fields.related('company_id', 'project_time_mode_id', type='many2one', relation='product.uom'),
+ }
+
+ def _trigger_project_creation(self, cr, uid, vals, context=None):
+ '''
+ This function is used to decide if a project needs to be automatically created or not when an analytic account is created. It returns True if it needs to be so, False otherwise.
+ '''
+ return vals.get('use_tasks')
+
+ def project_create(self, cr, uid, analytic_account_id, vals, context=None):
+ '''
+ This function is called at the time of analytic account creation and is used to create a project automatically linked to it if the conditions are meet.
+ '''
+ project_pool = self.pool.get('project.project')
+ project_id = project_pool.search(cr, uid, [('analytic_account_id','=', analytic_account_id)])
+ if not project_id and self._trigger_project_creation(cr, uid, vals, context=context):
+ project_values = {
+ 'name': vals.get('name'),
+ 'analytic_account_id': analytic_account_id,
+ }
+ return project_pool.create(cr, uid, project_values, context=context)
+ return False
def create(self, cr, uid, vals, context=None):
if context is None:
context = {}
if vals.get('child_ids', False) and context.get('analytic_project_copy', False):
vals['child_ids'] = []
- return super(account_analytic_account, self).create(cr, uid, vals, context=context)
+ analytic_account_id = super(account_analytic_account, self).create(cr, uid, vals, context=context)
+ self.project_create(cr, uid, analytic_account_id, vals, context=context)
+ return analytic_account_id
+
+ def write(self, cr, uid, ids, vals, context=None):
+ name = vals.get('name')
+ for account in self.browse(cr, uid, ids, context=context):
+ if not name:
+ vals['name'] = account.name
+ self.project_create(cr, uid, account.id, vals, context=context)
+ return super(account_analytic_account, self).write(cr, uid, ids, vals, context=context)
def unlink(self, cr, uid, ids, *args, **kwargs):
project_obj = self.pool.get('project.project')
diff --git a/addons/project/project_demo.xml b/addons/project/project_demo.xml
index f685f14c85b..07951280dc7 100644
--- a/addons/project/project_demo.xml
+++ b/addons/project/project_demo.xml
@@ -286,14 +286,12 @@
- 1OpenERP Integration
- 110Study + Prototype
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index be4421f126b..7d3f595e2c5 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -10,7 +10,16 @@
web_icon_hover="images/project-hover.png"/>
-
+
+
+
@@ -33,7 +42,7 @@
+
+
+ account.analytic.account.form.inherit
+ account.analytic.account
+ form
+
+
+
+
+
+
+
+
+
+
+ Tasks
@@ -732,11 +738,11 @@
Define the steps that will be used in the project from the creation of the task, up to the closing of the task or issue. You will use these stages in order to track the progress in solving a task or an issue.
-
+
-
+
-
+
diff --git a/addons/project/res_config_view.xml b/addons/project/res_config_view.xml
index b1daeb66b22..28258c483ce 100644
--- a/addons/project/res_config_view.xml
+++ b/addons/project/res_config_view.xml
@@ -9,7 +9,7 @@
-
+
diff --git a/addons/project/security/project_security.xml b/addons/project/security/project_security.xml
index 199d3c0c422..829ec6c6971 100644
--- a/addons/project/security/project_security.xml
+++ b/addons/project/security/project_security.xml
@@ -14,7 +14,7 @@
-
+
@@ -41,6 +41,13 @@
['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
+
+ public Members
+
+
+ ['|','|',('privacy_visibility','in',[False,'public']),('members','in',[user.id]),('followers','in',[user.id])]
+
+
Task multi-company
diff --git a/addons/project/wizard/__init__.py b/addons/project/wizard/__init__.py
index f5324d2b6aa..7a9a734b2bd 100644
--- a/addons/project/wizard/__init__.py
+++ b/addons/project/wizard/__init__.py
@@ -19,7 +19,6 @@
#
##############################################################################
-import mail_compose_message
import project_task_delegate
import project_task_reevaluate
diff --git a/addons/project/wizard/mail_compose_message.py b/addons/project/wizard/mail_compose_message.py
deleted file mode 100644
index 1609cc04c1c..00000000000
--- a/addons/project/wizard/mail_compose_message.py
+++ /dev/null
@@ -1,72 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2010-Today OpenERP SA ()
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see
-#
-##############################################################################
-
-from osv import osv
-from osv import fields
-from tools.translate import _
-
-class mail_compose_message(osv.osv_memory):
- _inherit = 'mail.compose.message'
-
- def get_value(self, cr, uid, model, resource_id, context=None):
- '''
- To get values of the resource_id for the model
- @param model: Object
- @param resource_id: id of a record for which values to be read
-
- @return: Returns a dictionary
- '''
- result = super(mail_compose_message, self).get_value(cr, uid, model, resource_id, context=context)
- if model == 'project.task' and resource_id:
- task_pool = self.pool.get('project.task')
- task_data = task_pool.browse(cr, uid, resource_id, context=context)
- partner = task_data.partner_id or task_data.project_id.partner_id
- if task_data.project_id.warn_manager and (not task_data.project_id.user_id or task_data.project_id.user_id and not task_data.project_id.user_id.user_email) :
- raise osv.except_osv(_('Error'), _("Please specify the Project Manager or email address of Project Manager."))
- elif task_data.project_id.warn_customer and (not partner or (partner and not partner.email)):
- raise osv.except_osv(_('Error'), _("Please specify the Customer or email address of Customer."))
-
- result.update({'email_from': task_data.user_id and task_data.user_id.user_email or False})
- val = {
- 'name': task_data.name,
- 'user_id': task_data.user_id.name,
- 'task_id': "%d/%d" % (task_data.project_id.id, task_data.id),
- 'date_start': task_data.date_start,
- 'date': task_data.date_end,
- 'state': task_data.state
- }
- header = (task_data.project_id.warn_header or '') % val
- footer = (task_data.project_id.warn_footer or '') % val
- description = u'%s\n %s\n %s\n\n \n%s' % (header, task_data.description or '', footer, task_data.user_id and task_data.user_id.signature)
- if partner :
- result.update({'email_to': result.get('email_to',False) and result.get('email_to') + ',' + partner.email})
- result.update({
- 'body_text': description or False,
- 'email_to': task_data.project_id.user_id and task_data.project_id.user_id.user_email or False,
- 'subject': _("Task '%s' Closed") % task_data.name,
- 'model': model,
- 'res_id': resource_id,
- })
-
- return result
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index ad6e7afdbcc..976a706ac54 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -591,14 +591,9 @@ class project(osv.osv):
_columns = {
'project_escalation_id' : fields.many2one('project.project','Project Escalation', help='If any issue is escalated from the current Project, it will be listed under the project selected here.', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
'reply_to' : fields.char('Reply-To Email Address', size=256),
- 'use_issues' : fields.boolean('Use Issues', help="Check this field if this project manages issues"),
'issue_count': fields.function(_issue_count, type='integer'),
}
- _defaults = {
- 'use_issues': True,
- }
-
def _check_escalation(self, cr, uid, ids, context=None):
project_obj = self.browse(cr, uid, ids[0], context=context)
if project_obj.project_escalation_id:
@@ -611,4 +606,18 @@ class project(osv.osv):
]
project()
+class account_analytic_account(osv.osv):
+ _inherit = 'account.analytic.account'
+ _description = 'Analytic Account'
+
+ _columns = {
+ 'use_issues' : fields.boolean('Issues Tracking', help="Check this field if this project manages issues"),
+ }
+
+ def _trigger_project_creation(self, cr, uid, vals, context=None):
+ res = super(account_analytic_account, self)._trigger_project_creation(cr, uid, vals, context=context)
+ return res or vals.get('use_issues')
+
+account_analytic_account()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 1d8fe6b2509..0cbde2a2020 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -2,7 +2,7 @@
-
+
Issue Version
@@ -340,9 +340,12 @@
form
-
-
-
+
+