diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py index c538614fd0f..019af2cdef5 100644 --- a/addons/account/__openerp__.py +++ b/addons/account/__openerp__.py @@ -73,7 +73,6 @@ for a particular financial year and for preparation of vouchers there is a modul 'wizard/account_fiscalyear_close_state.xml', 'wizard/account_chart_view.xml', 'wizard/account_tax_chart_view.xml', - 'wizard/account_move_journal_view.xml', 'wizard/account_move_line_reconcile_select_view.xml', 'wizard/account_open_closed_fiscalyear_view.xml', 'wizard/account_move_line_unreconcile_select_view.xml', @@ -128,9 +127,11 @@ for a particular financial year and for preparation of vouchers there is a modul ], 'js': [ 'static/src/js/account_move_reconciliation.js', + 'static/src/js/account_move_line_quickadd.js', ], 'qweb' : [ "static/src/xml/account_move_reconciliation.xml", + "static/src/xml/account_move_line_quickadd.xml", ], 'css':['static/src/css/account_move_reconciliation.css' ], diff --git a/addons/account/account.py b/addons/account/account.py index cfba30856a9..438dff47aae 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -641,8 +641,7 @@ class account_account(osv.osv): return True def _check_allow_type_change(self, cr, uid, ids, new_type, context=None): - group1 = ['payable', 'receivable', 'other'] - group2 = ['consolidation','view'] + restricted_groups = ['consolidation','view'] line_obj = self.pool.get('account.move.line') for account in self.browse(cr, uid, ids, context=context): old_type = account.type @@ -650,14 +649,25 @@ class account_account(osv.osv): if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]): #Check for 'Closed' type if old_type == 'closed' and new_type !='closed': - raise osv.except_osv(_('Warning!'), _("You cannot change the type of account from 'Closed' to any other type which contains journal items!")) - #Check for change From group1 to group2 and vice versa - if (old_type in group1 and new_type in group2) or (old_type in group2 and new_type in group1): - raise osv.except_osv(_('Warning!'), _("You cannot change the type of account from '%s' to '%s' type as it contains journal items!") % (old_type,new_type,)) + raise osv.except_osv(_('Warning !'), _("You cannot change the type of account from 'Closed' to any other type as it contains journal items!")) + # Forbid to change an account type for restricted_groups as it contains journal items (or if one of its children does) + if (new_type in restricted_groups): + raise osv.except_osv(_('Warning !'), _("You cannot change the type of account to '%s' type as it contains journal items!") % (new_type,)) + + return True + + # For legal reason (forbiden to modify journal entries which belongs to a closed fy or period), Forbid to modify + # the code of an account if journal entries have been already posted on this account. This cannot be simply + # 'configurable' since it can lead to a lack of confidence in OpenERP and this is what we want to change. + def _check_allow_code_change(self, cr, uid, ids, context=None): + line_obj = self.pool.get('account.move.line') + for account in self.browse(cr, uid, ids, context=context): + account_ids = self.search(cr, uid, [('id', 'child_of', [account.id])], context=context) + if line_obj.search(cr, uid, [('account_id', 'in', account_ids)], context=context): + raise osv.except_osv(_('Warning !'), _("You cannot change the code of account which contains journal items!")) return True def write(self, cr, uid, ids, vals, context=None): - if context is None: context = {} if not ids: @@ -677,6 +687,8 @@ class account_account(osv.osv): self._check_moves(cr, uid, ids, "write", context=context) if 'type' in vals.keys(): self._check_allow_type_change(cr, uid, ids, vals['type'], context=context) + if 'code' in vals.keys(): + self._check_allow_code_change(cr, uid, ids, context=context) return super(account_account, self).write(cr, uid, ids, vals, context=context) def unlink(self, cr, uid, ids, context=None): @@ -685,44 +697,6 @@ class account_account(osv.osv): account_account() -class account_journal_view(osv.osv): - _name = "account.journal.view" - _description = "Journal View" - _columns = { - 'name': fields.char('Journal View', size=64, required=True, translate=True), - 'columns_id': fields.one2many('account.journal.column', 'view_id', 'Columns') - } - _order = "name" - -account_journal_view() - - -class account_journal_column(osv.osv): - - def _col_get(self, cr, user, context=None): - result = [] - cols = self.pool.get('account.move.line')._columns - for col in cols: - if col in ('period_id', 'journal_id'): - continue - result.append( (col, cols[col].string) ) - result.sort() - return result - - _name = "account.journal.column" - _description = "Journal Column" - _columns = { - 'name': fields.char('Column Name', size=64, required=True), - 'field': fields.selection(_col_get, 'Field Name', required=True, size=32), - 'view_id': fields.many2one('account.journal.view', 'Journal View', select=True), - 'sequence': fields.integer('Sequence', help="Gives the sequence order to journal column.", readonly=True), - 'required': fields.boolean('Required'), - 'readonly': fields.boolean('Readonly'), - } - _order = "view_id, sequence" - -account_journal_column() - class account_journal(osv.osv): _name = "account.journal" _description = "Journal" @@ -738,7 +712,6 @@ class account_journal(osv.osv): " Select 'Opening/Closing Situation' for entries generated for new fiscal years."), 'type_control_ids': fields.many2many('account.account.type', 'account_journal_type_rel', 'journal_id','type_id', 'Type Controls', domain=[('code','<>','view'), ('code', '<>', 'closed')]), 'account_control_ids': fields.many2many('account.account', 'account_account_type_rel', 'journal_id','account_id', 'Account', domain=[('type','<>','view'), ('type', '<>', 'closed')]), - 'view_id': fields.many2one('account.journal.view', 'Display Mode', required=True, help="Gives the view used when writing or browsing entries in this journal. The view tells OpenERP which fields should be visible, required or readonly and in which order. You can create your own view for a faster encoding in each journal."), 'default_credit_account_id': fields.many2one('account.account', 'Default Credit Account', domain="[('type','!=','view')]", help="It acts as a default account for credit amount"), 'default_debit_account_id': fields.many2one('account.account', 'Default Debit Account', domain="[('type','!=','view')]", help="It acts as a default account for debit amount"), 'centralisation': fields.boolean('Centralised Counterpart', help="Check this box to determine that each entry of this journal won't create a new counterpart but will share the same counterpart. This is used in fiscal year closing."), @@ -874,37 +847,6 @@ class account_journal(osv.osv): return self.name_get(cr, user, ids, context=context) - def onchange_type(self, cr, uid, ids, type, currency, context=None): - obj_data = self.pool.get('ir.model.data') - user_pool = self.pool.get('res.users') - - type_map = { - 'sale':'account_sp_journal_view', - 'sale_refund':'account_sp_refund_journal_view', - 'purchase':'account_sp_journal_view', - 'purchase_refund':'account_sp_refund_journal_view', - 'cash':'account_journal_bank_view', - 'bank':'account_journal_bank_view', - 'general':'account_journal_view', - 'situation':'account_journal_view' - } - - res = {} - view_id = type_map.get(type, 'account_journal_view') - user = user_pool.browse(cr, uid, uid) - if type in ('cash', 'bank') and currency and user.company_id.currency_id.id != currency: - view_id = 'account_journal_bank_view_multi' - data_id = obj_data.search(cr, uid, [('model','=','account.journal.view'), ('name','=',view_id)]) - data = obj_data.browse(cr, uid, data_id[0], context=context) - - res.update({ - 'centralisation':type == 'situation', - 'view_id':data.res_id, - }) - return { - 'value':res - } - account_journal() class account_fiscalyear(osv.osv): @@ -1384,13 +1326,6 @@ class account_move(osv.osv): 'WHERE id IN %s', ('draft', tuple(ids),)) return True - def onchange_line_id(self, cr, uid, ids, line_ids, context=None): - balance = 0.0 - for line in line_ids: - if line[2]: - balance += (line[2].get('debit',0.00)- (line[2].get('credit',0.00))) - return {'value': {'balance': balance}} - def write(self, cr, uid, ids, vals, context=None): if context is None: context = {} @@ -1470,6 +1405,11 @@ class account_move(osv.osv): raise osv.except_osv(_('User Error!'), _('You cannot delete a posted journal entry "%s".') % \ move['name']) + for line in move.line_id: + if line.invoice: + raise osv.except_osv(_('User Error!'), + _("Move cannot be deleted if linked to an invoice. (Invoice: %s - Move ID:%s)") % \ + (line.invoice.number,move.name)) line_ids = map(lambda x: x.id, move.line_id) context['journal_id'] = move.journal_id.id context['period_id'] = move.period_id.id @@ -1678,11 +1618,41 @@ class account_move_reconcile(osv.osv): 'line_id': fields.one2many('account.move.line', 'reconcile_id', 'Entry Lines'), 'line_partial_ids': fields.one2many('account.move.line', 'reconcile_partial_id', 'Partial Entry lines'), 'create_date': fields.date('Creation date', readonly=True), + 'opening_reconciliation': fields.boolean('Opening Entries Reconciliation', help="Is this reconciliation produced by the opening of a new fiscal year ?."), } _defaults = { 'name': lambda self,cr,uid,ctx=None: self.pool.get('ir.sequence').get(cr, uid, 'account.reconcile', context=ctx) or '/', } + + # You cannot unlink a reconciliation if it is a opening_reconciliation one, + # you should use the generate opening entries wizard for that + def unlink(self, cr, uid, ids, context=None): + for move_rec in self.browse(cr, uid, ids, context=context): + if move_rec.opening_reconciliation: + raise osv.except_osv(_('Error!'), _('You cannot unreconcile journal items if they has been generated by the \ + opening/closing fiscal year process.')) + return super(account_move_reconcile, self).unlink(cr, uid, ids, context=context) + + # Look in the line_id and line_partial_ids to ensure the partner is the same or empty + # on all lines. We allow that only for opening/closing period + def _check_same_partner(self, cr, uid, ids, context=None): + for reconcile in self.browse(cr, uid, ids, context=context): + move_lines = [] + if not reconcile.opening_reconciliation: + if reconcile.line_id: + first_partner = reconcile.line_id[0].partner_id.id + move_lines = reconcile.line_id + elif reconcile.line_partial_ids: + first_partner = reconcile.line_partial_ids[0].partner_id.id + move_lines = reconcile.line_partial_ids + if any([line.partner_id.id != first_partner for line in move_lines]): + return False + return True + _constraints = [ + (_check_same_partner, 'You can only reconcile journal items with the same partner.', ['line_id']), + ] + def reconcile_partial_check(self, cr, uid, ids, type='auto', context=None): total = 0.0 for rec in self.browse(cr, uid, ids, context=context): @@ -3161,16 +3131,6 @@ class wizard_multi_charts_accounts(osv.osv_memory): default_account = acc_template_ref.get(template.property_account_income_opening.id) return default_account - def _get_view_id(journal_type): - # Get the journal views - if journal_type in ('general', 'situation'): - data = obj_data.get_object_reference(cr, uid, 'account', 'account_journal_view') - elif journal_type in ('sale_refund', 'purchase_refund'): - data = obj_data.get_object_reference(cr, uid, 'account', 'account_sp_refund_journal_view') - else: - data = obj_data.get_object_reference(cr, uid, 'account', 'account_sp_journal_view') - return data and data[1] or False - journal_names = { 'sale': _('Sales Journal'), 'purchase': _('Purchase Journal'), @@ -3200,7 +3160,6 @@ class wizard_multi_charts_accounts(osv.osv_memory): 'code': journal_codes[journal_type], 'company_id': company_id, 'centralisation': journal_type == 'situation', - 'view_id': _get_view_id(journal_type), 'analytic_journal_id': _get_analytic_journal(journal_type), 'default_credit_account_id': _get_default_account(journal_type, 'credit'), 'default_debit_account_id': _get_default_account(journal_type, 'debit'), @@ -3417,11 +3376,7 @@ class wizard_multi_charts_accounts(osv.osv_memory): ''' obj_data = self.pool.get('ir.model.data') obj_journal = self.pool.get('account.journal') - # Get the id of journal views - tmp = obj_data.get_object_reference(cr, uid, 'account', 'account_journal_bank_view_multi') - view_id_cur = tmp and tmp[1] or False - tmp = obj_data.get_object_reference(cr, uid, 'account', 'account_journal_bank_view') - view_id_cash = tmp and tmp[1] or False + # we need to loop again to find next number for journal code # because we can't rely on the value current_num as, @@ -3447,10 +3402,8 @@ class wizard_multi_charts_accounts(osv.osv_memory): 'default_debit_account_id': default_account_id, } if line['currency_id']: - vals['view_id'] = view_id_cur vals['currency'] = line['currency_id'] - else: - vals['view_id'] = view_id_cash + return vals def _prepare_bank_account(self, cr, uid, line, new_code, acc_template_ref, ref_acc_bank, company_id, context=None): diff --git a/addons/account/account_bank.py b/addons/account/account_bank.py index c836600d866..f0da630ec1d 100644 --- a/addons/account/account_bank.py +++ b/addons/account/account_bank.py @@ -89,11 +89,6 @@ class bank(osv.osv): } acc_bank_id = obj_acc.create(cr,uid,acc,context=context) - # Get the journal view id - data_id = obj_data.search(cr, uid, [('model','=','account.journal.view'), ('name','=','account_journal_bank_view')]) - data = obj_data.browse(cr, uid, data_id[0], context=context) - view_id_cash = data.res_id - jour_obj = self.pool.get('account.journal') new_code = 1 while True: @@ -112,7 +107,6 @@ class bank(osv.osv): 'analytic_journal_id': False, 'default_credit_account_id': acc_bank_id, 'default_debit_account_id': acc_bank_id, - 'view_id': view_id_cash } journal_id = jour_obj.create(cr, uid, vals_journal, context=context) diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py index 4422537007f..e7e3f740067 100644 --- a/addons/account/account_bank_statement.py +++ b/addons/account/account_bank_statement.py @@ -311,7 +311,7 @@ class account_bank_statement(osv.osv): 'statement_id': st_line.statement_id.id, 'journal_id': st_line.statement_id.journal_id.id, 'period_id': st_line.statement_id.period_id.id, - 'currency_id': cur_id, + 'currency_id': amount_currency and cur_id, 'amount_currency': amount_currency, 'analytic_account_id': analytic_id, } diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 80a406bb0b7..8d13ec9dc8f 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -1073,8 +1073,9 @@ class account_invoice(osv.osv): self.message_post(cr, uid, [inv_id], body=message, context=context) return True - def action_cancel(self, cr, uid, ids, *args): - context = {} # TODO: Use context from arguments + def action_cancel(self, cr, uid, ids, context=None): + if context is None: + context = {} account_move_obj = self.pool.get('account.move') invoices = self.read(cr, uid, ids, ['move_id', 'payment_ids']) move_ids = [] # ones that we will need to remove @@ -1244,12 +1245,15 @@ class account_invoice(osv.osv): ref = invoice.reference else: ref = self._convert_ref(cr, uid, invoice.number) + partner = invoice.partner_id + if partner.parent_id and not partner.is_company: + partner = partner.parent_id # Pay attention to the sign for both debit/credit AND amount_currency l1 = { 'debit': direction * pay_amount>0 and direction * pay_amount, 'credit': direction * pay_amount<0 and - direction * pay_amount, 'account_id': src_account_id, - 'partner_id': invoice.partner_id.id, + 'partner_id': partner.id, 'ref':ref, 'date': date, 'currency_id':currency_id, @@ -1260,7 +1264,7 @@ class account_invoice(osv.osv): 'debit': direction * pay_amount<0 and - direction * pay_amount, 'credit': direction * pay_amount>0 and direction * pay_amount, 'account_id': pay_account_id, - 'partner_id': invoice.partner_id.id, + 'partner_id': partner.id, 'ref':ref, 'date': date, 'currency_id':currency_id, @@ -1377,8 +1381,8 @@ class account_invoice_line(osv.osv): 'origin': fields.char('Source Document', size=256, help="Reference of the document that produced this invoice."), 'sequence': fields.integer('Sequence', help="Gives the sequence of this line when displaying the invoice."), 'invoice_id': fields.many2one('account.invoice', 'Invoice Reference', ondelete='cascade', select=True), - 'uos_id': fields.many2one('product.uom', 'Unit of Measure', ondelete='set null'), - 'product_id': fields.many2one('product.product', 'Product', ondelete='set null'), + 'uos_id': fields.many2one('product.uom', 'Unit of Measure', ondelete='set null', select=True), + 'product_id': fields.many2one('product.product', 'Product', ondelete='set null', select=True), 'account_id': fields.many2one('account.account', 'Account', required=True, domain=[('type','<>','view'), ('type', '<>', 'closed')], help="The income or expense account related to the selected product."), 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price')), 'price_subtotal': fields.function(_amount_line, string='Subtotal', type="float", diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index 5c5a25880cb..48fec608195 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -435,7 +435,7 @@
- Click to specify lists of columns to display for a type of journal. -
- Journal views determine the way you can record entries in - your journal. Select the fields you want to appear in a journal - and determine the sequence in which they will appear. -
- On the journal definition form, you can select the view you - want to use to display journal items related to this journal. -
-- Click to register a new journal item. + Select the period and the journal you want to fill.
This view can be used by accountants in order to quickly record entries in OpenERP. If you want to record a supplier invoice, @@ -1271,7 +1168,6 @@
+ No journal items found. +
+- No journal items found. -
-\n" +" Klik om de zichtbare kolommen van een dagboek te " +"specificeren.\n" +"
\n" +" Dagboekweergaves bepalen de manier waarop boekingen \n" +" ingevoerd kunnen worden. Selecteer de velden welke zichtbaar " +"\n" +" moeten zijn en bepaald de volgorde daarvan.\n" +"
\n" +" In de dagboekinstellingen kan bepaald worden welke gegevens\n" +" zichtbaar zijn bij boekingen in het betreffende dagboek.\n" +"
\n" +" " #. module: account #: help:account.payment.term,active:0 @@ -205,6 +219,8 @@ msgid "" "which is set after generating opening entries from 'Generate Opening " "Entries'." msgstr "" +"U dient het 'Jaarafsluiting dagboek' te definiëren voor het fiscale jaar, " +"nadat u een openingsbalans heeft gemaakt" #. module: account #: field:account.fiscal.position.account,account_src_id:0 @@ -223,6 +239,15 @@ msgid "" " \n" " " msgstr "" +"\n" +" klik hier om een fiscale periode toe te voegen.\n" +"
\n" +" Een fiscale periode is vaak een maand of een kwartaal. " +"Normaal\n" +" zal dit gelijk zijn met de periode van uw Belasting " +"aangifte.\n" +"
\n" +" " #. module: account #: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard @@ -243,7 +268,7 @@ msgstr "Dagboek: %s" #. module: account #: help:account.config.settings,code_digits:0 msgid "No. of digits to use for account code" -msgstr "" +msgstr "Aantal cijfers voor de rekening code" #. module: account #: help:account.analytic.journal,type:0 @@ -263,6 +288,9 @@ msgid "" "lines for invoices. Leave empty if you don't want to use an analytic account " "on the invoice tax lines by default." msgstr "" +"Geef de kostenplaats welke standaard gebruikt moet worden bij BTW factuur " +"regels. Als u dit veld niet invuld, wordt er standaard geen kostenplaats " +"gebruikt." #. module: account #: model:ir.actions.act_window,name:account.action_account_tax_template_form @@ -298,7 +326,7 @@ msgstr "Belgische overzichten" #. module: account #: model:account.account.type,name:account.account_type_income_view1 msgid "Income View" -msgstr "" +msgstr "View opbrengsten" #. module: account #: help:account.account,user_type:0 @@ -314,7 +342,7 @@ msgstr "" #. module: account #: field:account.config.settings,sale_refund_sequence_next:0 msgid "Next credit note number" -msgstr "" +msgstr "Volgend nummer creditnota" #. module: account #: help:account.config.settings,module_account_voucher:0 @@ -323,6 +351,10 @@ msgid "" "sales, purchase, expense, contra, etc.\n" " This installs the module account_voucher." msgstr "" +"Deze module bevat alle voorzieningen voor registratie van " +"(bank)afschriften.\n" +" " +"hiermee installeert u de module 'account_voucher'" #. module: account #: model:ir.actions.act_window,name:account.action_account_use_model_create_entry @@ -361,6 +393,18 @@ msgid "" " \n" " " msgstr "" +"\n" +" Klik hier om een creditnota te maken. \n" +"
\n" +" Een creditnota is een factuur, waarbij u een bestaande " +"factuur volledig of gedeeltelijk \n" +" crediteert.\n" +"
\n" +" In plaats van handmatig kunt u hiermee een creditnota maken " +"\n" +" direct vanaf de originele factuur.\n" +"
\n" +" " #. module: account #: field:account.journal.column,field:0 @@ -426,12 +470,12 @@ msgstr "Juni" #: code:addons/account/wizard/account_automatic_reconcile.py:148 #, python-format msgid "You must select accounts to reconcile." -msgstr "" +msgstr "Selecteer de grootboekrekeningen die afgeletterd moeten worden." #. module: account #: help:account.config.settings,group_analytic_accounting:0 msgid "Allows you to use the analytic accounting." -msgstr "" +msgstr "stelt u in staat kostenplaatsen te gebruiken" #. module: account #: model:ir.actions.act_window,help:account.action_account_moves_bank @@ -531,6 +575,18 @@ msgid "" "should choose 'Round per line' because you certainly want the sum of your " "tax-included line subtotals to be equal to the total amount with taxes." msgstr "" +"Als u 'afronden per regel' selecteert: voor elke BTW rekening , wordt het " +"BTW bedrag eerst berekend en afgerond voor elke factuur regel en vervolgens " +"worden deze afgeronde bedragen opgeteld, wat leidt tot het totale bedrag " +"voor deze belasting. \r\n" +"\r\n" +"Als u 'afronden globaal' selecteert: voor elke BTW rekening wordt het BTW " +"bedrag berekend voor elke factuur regel. vervolgens zullen deze bedragen " +"worden opgeteld en uiteindelijk wordt dit totale BTW bedrag afgerond. \r\n" +"\r\n" +"Als u verkoopt met BTW inbegrepen, moet u kiezen voor 'afronden per regel', " +"omdat U zeker wil zijn dat de subtotalen van \r\n" +"uw (BTW inbegrepen) regels gelijk zijn aan het totale bedrag met BTW." #. module: account #: model:ir.model,name:account.model_wizard_multi_charts_accounts @@ -600,7 +656,7 @@ msgstr "Bovenliggend doel" #. module: account #: help:account.invoice.line,sequence:0 msgid "Gives the sequence of this line when displaying the invoice." -msgstr "" +msgstr "Geeft de volgorde van de factuur regel bij het tonen van de factuur" #. module: account #: field:account.bank.statement,account_id:0 @@ -679,7 +735,7 @@ msgstr "Niets af te letteren" #. module: account #: field:account.config.settings,decimal_precision:0 msgid "Decimal precision on journal entries" -msgstr "" +msgstr "Aantal decimalen van journaalposten" #. module: account #: selection:account.config.settings,period:0 @@ -713,7 +769,7 @@ msgstr "Rapport waarde" msgid "" "Specified journal does not have any account move entries in draft state for " "this period." -msgstr "" +msgstr "Geselecteerd dagboek heeft geen 'concept'boekingen" #. module: account #: view:account.fiscal.position:0 @@ -768,12 +824,16 @@ msgid "" " \n" " " msgstr "" +"\n" +" Geen journaalposten gevonden.\n" +"
\n" +" " #. module: account #: code:addons/account/account.py:1606 #, python-format msgid "Cannot create move with currency different from .." -msgstr "" +msgstr "U kunt geen boeking doen met een andere valuta dan ..." #. module: account #: model:email.template,report_name:account.email_template_edi_invoice @@ -807,7 +867,7 @@ msgstr "Dagboek periode" #: constraint:account.move:0 msgid "" "You cannot create more than one move per period on a centralized journal." -msgstr "" +msgstr "U kunt niet meerdere boekingen doen bij een centraal journaal" #. module: account #: help:account.tax,account_analytic_paid_id:0 diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po index 55d61f5c611..c95e3919012 100644 --- a/addons/account/i18n/zh_CN.po +++ b/addons/account/i18n/zh_CN.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-11-24 02:52+0000\n" -"PO-Revision-Date: 2012-11-01 08:44+0000\n" +"PO-Revision-Date: 2012-11-28 07:22+0000\n" "Last-Translator: ccdos\n" +" From this report, you can have an overview on all depreciation. " +"The\n" +" tool search can also be used to personalise your Assets reports " +"and\n" +" so, match this analysis to your needs;\n" +"
\n" +" " +msgstr "" + +#. module: account_asset +#: field:account.asset.asset,purchase_value:0 +msgid "Gross Value" +msgstr "" + +#. module: account_asset +#: field:account.asset.category,name:0 +msgid "Name" +msgstr "" + +#. module: account_asset +#: constraint:account.move.line:0 +msgid "You cannot create journal items on an account of type view." +msgstr "" + +#. module: account_asset +#: help:account.asset.category,open_asset:0 +msgid "" +"Check this if you want to automatically confirm the assets of this category " +"when created by invoices." +msgstr "" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Set to Draft" +msgstr "" + +#. module: account_asset +#: model:ir.model,name:account_asset.model_account_asset_depreciation_line +msgid "Asset depreciation line" +msgstr "" + +#. module: account_asset +#: view:account.asset.category:0 +#: field:asset.asset.report,asset_category_id:0 +#: model:ir.model,name:account_asset.model_account_asset_category +msgid "Asset category" +msgstr "" + +#. module: account_asset +#: view:asset.asset.report:0 +#: field:asset.asset.report,depreciation_value:0 +msgid "Amount of Depreciation Lines" +msgstr "" + +#. module: account_asset +#: code:addons/account_asset/wizard/wizard_asset_compute.py:49 +#, python-format +msgid "Created Asset Moves" +msgstr "" + +#. module: account_asset +#: field:account.asset.depreciation.line,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: account_asset +#: help:account.asset.category,method_period:0 +msgid "State here the time between 2 depreciations, in months" +msgstr "" + +#. module: account_asset +#: field:account.asset.asset,method_number:0 +#: selection:account.asset.asset,method_time:0 +#: field:account.asset.category,method_number:0 +#: selection:account.asset.category,method_time:0 +#: field:account.asset.history,method_number:0 +#: selection:account.asset.history,method_time:0 +#: field:asset.modify,method_number:0 +msgid "Number of Depreciations" +msgstr "" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Create Move" +msgstr "" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Confirm Asset" +msgstr "" + +#. module: account_asset +#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_tree +#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_tree +msgid "Asset Hierarchy" +msgstr "" diff --git a/addons/account_bank_statement_extensions/account_bank_statement_view.xml b/addons/account_bank_statement_extensions/account_bank_statement_view.xml index adc2963c803..d64eb68bc99 100644 --- a/addons/account_bank_statement_extensions/account_bank_statement_view.xml +++ b/addons/account_bank_statement_extensions/account_bank_statement_view.xml @@ -43,10 +43,10 @@\n" +" Click to create a new check. \n" +"
\n" +" The check payment form allows you to track the payment you " +"do\n" +" to your suppliers using checks. When you select a supplier, " +"the\n" +" payment method and an amount for the payment, OpenERP will\n" +" propose to reconcile your payment with the open supplier\n" +" invoices or bills.\n" +"
\n" +" " +msgstr "" +"\n" +" Click para crear un nuevo cheque.\n" +"
\n" +" El formulario de pago de cheques le permite dar seguimiento " +"al pago que \n" +" emite a sus proveedores usando cheques. Cuando selecciona un " +"proveedor, el\n" +" metodo de pago y un monto para el pago, OpenERP propondrá \n" +" conciliar su pago con las facturas abiertas o cuentas " +"abiertas del proveedor.\n" +"
\n" +" " + +#. module: account_check_writing +#: field:account.voucher,allow_check:0 +msgid "Allow Check Writing" +msgstr "Permitir escribir cheques" + +#. module: account_check_writing +#: report:account.print.check.bottom:0 +#: report:account.print.check.middle:0 +#: report:account.print.check.top:0 +msgid "Payment" +msgstr "Pago" + +#. module: account_check_writing +#: field:account.journal,use_preprint_check:0 +msgid "Use Preprinted Check" +msgstr "Usar cheque preimpreso" + +#. module: account_check_writing +#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_bottom +msgid "Print Check (Bottom)" +msgstr "Imprimir cheque (Abajo)" + +#. module: account_check_writing +#: sql_constraint:res.company:0 +msgid "The company name must be unique !" +msgstr "¡El nombre de la compañía debe ser único!" + +#. module: account_check_writing +#: report:account.print.check.bottom:0 +#: report:account.print.check.middle:0 +#: report:account.print.check.top:0 +msgid "Due Date" +msgstr "Fecha de vencimiento" + +#. module: account_check_writing +#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_middle +msgid "Print Check (Middle)" +msgstr "Imprimir Cheque (Al Centro)" + +#. module: account_check_writing +#: constraint:account.journal:0 +msgid "" +"Configuration error!\n" +"The currency chosen should be shared by the default accounts too." +msgstr "" +"¡Error de confuguración!\n" +"La moneda seleccionada también tiene que ser la que está en las cuentas por " +"defecto." + +#. module: account_check_writing +#: model:ir.model,name:account_check_writing.model_res_company +msgid "Companies" +msgstr "Compañías" + +#. module: account_check_writing +#: report:account.print.check.bottom:0 +#: report:account.print.check.middle:0 +msgid "Balance Due" +msgstr "Saldo pendiente" + +#. module: account_check_writing +#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_top +msgid "Print Check (Top)" +msgstr "Imprimir Cheque (Arriba)" + +#. module: account_check_writing +#: report:account.print.check.bottom:0 +#: report:account.print.check.middle:0 +#: report:account.print.check.top:0 +msgid "Check Amount" +msgstr "Importe del cheque" + +#. module: account_check_writing +#: model:ir.model,name:account_check_writing.model_account_voucher +msgid "Accounting Voucher" +msgstr "Comprobante contable" + +#. module: account_check_writing +#: sql_constraint:account.journal:0 +msgid "The name of the journal must be unique per company !" +msgstr "¡El nombre del diaro debe ser único por compañía!" + +#. module: account_check_writing +#: sql_constraint:account.journal:0 +msgid "The code of the journal must be unique per company !" +msgstr "¡El código del diario debe ser único por compañía!" + +#. module: account_check_writing +#: field:account.voucher,amount_in_word:0 +msgid "Amount in Word" +msgstr "Cantidad en letra" + +#. module: account_check_writing +#: report:account.print.check.top:0 +msgid "Open Balance" +msgstr "Saldo Inicial" + +#. module: account_check_writing +#: field:res.company,check_layout:0 +msgid "Choose Check layout" +msgstr "Elija el formato del cheque." diff --git a/addons/account_check_writing/i18n/zh_CN.po b/addons/account_check_writing/i18n/zh_CN.po index b91e5204fbc..9f0ab53eca6 100644 --- a/addons/account_check_writing/i18n/zh_CN.po +++ b/addons/account_check_writing/i18n/zh_CN.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME\n" +" 单击 创建一个新的支票。\n" +"
\n" +" 支票支付表单允许跟踪用支票支付给供应商的过程。\n" +" 当年选择了一个供应商,Openerp 将自动提供 支付\n" +" 方法和支付金额,用于核销待支付的供应商发票和\n" +" 单据。\n" +"
\n" +" " #. module: account_check_writing #: field:account.voucher,allow_check:0 @@ -131,7 +140,7 @@ msgstr "用预先打印的支票" #. module: account_check_writing #: model:ir.actions.report.xml,name:account_check_writing.account_print_check_bottom msgid "Print Check (Bottom)" -msgstr "" +msgstr "打印支票(底部)" #. module: account_check_writing #: sql_constraint:res.company:0 @@ -148,14 +157,14 @@ msgstr "到期日期" #. module: account_check_writing #: model:ir.actions.report.xml,name:account_check_writing.account_print_check_middle msgid "Print Check (Middle)" -msgstr "" +msgstr "打印支票(中间)" #. module: account_check_writing #: constraint:account.journal:0 msgid "" "Configuration error!\n" "The currency chosen should be shared by the default accounts too." -msgstr "" +msgstr "配置错误!" #. module: account_check_writing #: model:ir.model,name:account_check_writing.model_res_company @@ -171,7 +180,7 @@ msgstr "截止余额" #. module: account_check_writing #: model:ir.actions.report.xml,name:account_check_writing.account_print_check_top msgid "Print Check (Top)" -msgstr "" +msgstr "打印支票(顶部)" #. module: account_check_writing #: report:account.print.check.bottom:0 diff --git a/addons/account_followup/account_followup_view.xml b/addons/account_followup/account_followup_view.xml index b26458a73af..0617a95c2f0 100644 --- a/addons/account_followup/account_followup_view.xml +++ b/addons/account_followup/account_followup_view.xml @@ -127,7 +127,7 @@\n" +" Click to register a purchase receipt. \n" +"
\n" +" When the purchase receipt is confirmed, you can record the\n" +" supplier payment related to this purchase receipt.\n" +"
\n" +" " +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Search Vouchers" +msgstr "Søk kuponger." + +#. module: account_voucher +#: field:account.voucher,writeoff_acc_id:0 +msgid "Counterpart Account" +msgstr "" + +#. module: account_voucher +#: field:account.voucher,account_id:0 +#: field:account.voucher.line,account_id:0 +#: field:sale.receipt.report,account_id:0 +msgid "Account" +msgstr "Konto." + +#. module: account_voucher +#: field:account.voucher,line_dr_ids:0 +msgid "Debits" +msgstr "Debet." + +#. module: account_voucher +#: view:account.statement.from.invoice.lines:0 +msgid "Ok" +msgstr "Ok" + +#. module: account_voucher +#: field:account.voucher.line,reconcile:0 +msgid "Full Reconcile" +msgstr "" + +#. module: account_voucher +#: field:account.voucher,date_due:0 +#: field:account.voucher.line,date_due:0 +#: view:sale.receipt.report:0 +#: field:sale.receipt.report,date_due:0 +msgid "Due Date" +msgstr "Utløps Dato." + +#. module: account_voucher +#: field:account.voucher,narration:0 +msgid "Notes" +msgstr "Notater." + +#. module: account_voucher +#: field:account.voucher,message_ids:0 +msgid "Messages" +msgstr "Meldinger." + +#. module: account_voucher +#: selection:account.voucher,type:0 +#: selection:sale.receipt.report,type:0 +msgid "Sale" +msgstr "Salg." + +#. module: account_voucher +#: field:account.voucher.line,move_line_id:0 +msgid "Journal Item" +msgstr "Journal Elementer." + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:492 +#: code:addons/account_voucher/account_voucher.py:964 +#, python-format +msgid "Error!" +msgstr "Feil!" + +#. module: account_voucher +#: field:account.voucher.line,amount:0 +msgid "Amount" +msgstr "Beløp" + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Payment Options" +msgstr "Betalings alternativer." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Other Information" +msgstr "Annen informasjon." + +#. module: account_voucher +#: selection:account.voucher,state:0 +#: selection:sale.receipt.report,state:0 +msgid "Cancelled" +msgstr "Kansellert." + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:1134 +#, python-format +msgid "" +"You have to configure account base code and account tax code on the '%s' tax!" +msgstr "" + +#. module: account_voucher +#: model:ir.actions.act_window,help:account_voucher.action_sale_receipt +msgid "" +"\n" +" Click to create a sale receipt.\n" +"
\n" +" When the sale receipt is confirmed, you can record the " +"customer\n" +" payment related to this sales receipt.\n" +"
\n" +" " +msgstr "" + +#. module: account_voucher +#: help:account.voucher,message_unread:0 +msgid "If checked new messages require your attention." +msgstr "" + +#. module: account_voucher +#: model:ir.model,name:account_voucher.model_account_bank_statement_line +msgid "Bank Statement Line" +msgstr "Kontoutskrift linje." + +#. module: account_voucher +#: view:sale.receipt.report:0 +#: field:sale.receipt.report,day:0 +msgid "Day" +msgstr "Dag." + +#. module: account_voucher +#: constraint:account.invoice:0 +msgid "Invalid BBA Structured Communication !" +msgstr "Ugyldig BBA Strukturert Kommunikasjon!" + +#. module: account_voucher +#: field:account.voucher,tax_id:0 +msgid "Tax" +msgstr "Skatt." + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:864 +#, python-format +msgid "Invalid Action!" +msgstr "Ugyldig handling!" + +#. module: account_voucher +#: constraint:account.bank.statement:0 +msgid "The journal and period chosen have to belong to the same company." +msgstr "Tidsskriftet og perioden er valgt å tilhøre samme selskap." + +#. module: account_voucher +#: field:account.voucher,comment:0 +msgid "Counterpart Comment" +msgstr "" + +#. module: account_voucher +#: field:account.voucher.line,account_analytic_id:0 +msgid "Analytic Account" +msgstr "Analytisk konto." + +#. module: account_voucher +#: help:account.voucher,message_summary:0 +msgid "" +"Holds the Chatter summary (number of messages, ...). This summary is " +"directly in html format in order to be inserted in kanban views." +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Payment Information" +msgstr "Betalings informasjon." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "(update)" +msgstr "(Oppdatering)" + +#. module: account_voucher +#: view:account.voucher:0 +#: selection:account.voucher,state:0 +#: view:sale.receipt.report:0 +#: selection:sale.receipt.report,state:0 +msgid "Draft" +msgstr "Kladd." + +#. module: account_voucher +#: view:account.bank.statement:0 +msgid "Import Invoices" +msgstr "Importer fakturaer." + +#. module: account_voucher +#: selection:account.voucher,pay_now:0 +#: selection:sale.receipt.report,pay_now:0 +msgid "Pay Later or Group Funds" +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +#: selection:account.voucher,type:0 +#: selection:sale.receipt.report,type:0 +msgid "Receipt" +msgstr "Kvittering." + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:1001 +#, python-format +msgid "" +"You should configure the 'Gain Exchange Rate Account' in the accounting " +"settings, to manage automatically the booking of accounting entries related " +"to differences between exchange rates." +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Sales Lines" +msgstr "Salgs linjer." + +#. module: account_voucher +#: constraint:res.company:0 +msgid "Error! You can not create recursive companies." +msgstr "Feil ! Du kan ikke lage rekursive firmaer." + +#. module: account_voucher +#: view:account.voucher:0 +#: field:account.voucher,period_id:0 +msgid "Period" +msgstr "Periode." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Supplier" +msgstr "Leverandør" + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Supplier Voucher" +msgstr "" + +#. module: account_voucher +#: field:account.voucher,message_follower_ids:0 +msgid "Followers" +msgstr "Følgere." + +#. module: account_voucher +#: selection:account.voucher.line,type:0 +msgid "Debit" +msgstr "Debet." + +#. module: account_voucher +#: sql_constraint:res.company:0 +msgid "The company name must be unique !" +msgstr "Firmanavn må være unikt !" + +#. module: account_voucher +#: view:sale.receipt.report:0 +#: field:sale.receipt.report,nbr:0 +msgid "# of Voucher Lines" +msgstr "" + +#. module: account_voucher +#: view:sale.receipt.report:0 +#: field:sale.receipt.report,type:0 +msgid "Type" +msgstr "Type." + +#. module: account_voucher +#: view:sale.receipt.report:0 +msgid "Pro-forma Vouchers" +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +#: model:ir.actions.act_window,name:account_voucher.act_journal_voucher_open +msgid "Voucher Entries" +msgstr "Kupong oppføringer." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Open Supplier Journal Entries" +msgstr "" + +#. module: account_voucher +#: model:ir.actions.act_window,name:account_voucher.action_review_voucher_list +msgid "Vouchers Entries" +msgstr "Kuponger oppføringer." + +#. module: account_voucher +#: field:account.voucher,name:0 +msgid "Memo" +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Are you sure to unreconcile and cancel this record ?" +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt +#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt +msgid "Sales Receipt" +msgstr "Salgs kvittering." + +#. module: account_voucher +#: field:account.voucher,is_multi_currency:0 +msgid "Multi Currency Voucher" +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Bill Information" +msgstr "Regning informasjon." + +#. module: account_voucher +#: selection:sale.receipt.report,month:0 +msgid "July" +msgstr "juli." + +#. module: account_voucher +#: help:account.voucher,state:0 +msgid "" +" * The 'Draft' status is used when a user is encoding a new and unconfirmed " +"Voucher. \n" +"* The 'Pro-forma' when voucher is in Pro-forma status,voucher does not have " +"an voucher number. \n" +"* The 'Posted' status is used when user create voucher,a voucher number is " +"generated and voucher entries are created in account " +"\n" +"* The 'Cancelled' status is used when user cancel voucher." +msgstr "" + +#. module: account_voucher +#: field:account.voucher,writeoff_amount:0 +msgid "Difference Amount" +msgstr "" + +#. module: account_voucher +#: view:sale.receipt.report:0 +#: field:sale.receipt.report,due_delay:0 +msgid "Avg. Due Delay" +msgstr "" + +#. module: account_voucher +#: code:addons/account_voucher/invoice.py:33 +#, python-format +msgid "Pay Invoice" +msgstr "Betal faktura." + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:1134 +#, python-format +msgid "No Account Base Code and Account Tax Code!" +msgstr "Ingen konto base kode og konto skatt kode." + +#. module: account_voucher +#: field:account.voucher,tax_amount:0 +msgid "Tax Amount" +msgstr "Skatt beløp." + +#. module: account_voucher +#: view:sale.receipt.report:0 +msgid "Validated Vouchers" +msgstr "" + +#. module: account_voucher +#: model:ir.actions.act_window,help:account_voucher.action_vendor_receipt +msgid "" +"\n" +" Click to register a new payment. \n" +"
\n" +" Enter the customer and the payment method and then, either\n" +" create manually a payment record or OpenERP will propose to " +"you\n" +" automatically the reconciliation of this payment with the " +"open\n" +" invoices or sales receipts.\n" +"
\n" +" " +msgstr "" + +#. module: account_voucher +#: field:account.config.settings,expense_currency_exchange_account_id:0 +#: field:res.company,expense_currency_exchange_account_id:0 +msgid "Loss Exchange Rate Account" +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Paid Amount" +msgstr "Betalt beløp." + +#. module: account_voucher +#: field:account.voucher,payment_option:0 +msgid "Payment Difference" +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +#: field:account.voucher,audit:0 +msgid "To Review" +msgstr "" + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:1008 +#: code:addons/account_voucher/account_voucher.py:1022 +#: code:addons/account_voucher/account_voucher.py:1175 +#, python-format +msgid "change" +msgstr "Endre." + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:997 +#, python-format +msgid "" +"You should configure the 'Loss Exchange Rate Account' in the accounting " +"settings, to manage automatically the booking of accounting entries related " +"to differences between exchange rates." +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Expense Lines" +msgstr "Utgift linjer." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Sale voucher" +msgstr "Salg kuponger." + +#. module: account_voucher +#: help:account.voucher,is_multi_currency:0 +msgid "" +"Fields with internal purpose only that depicts if the voucher is a multi " +"currency one or not" +msgstr "" + +#. module: account_voucher +#: view:account.invoice:0 +msgid "Register Payment" +msgstr "Registrer Betaling." + +#. module: account_voucher +#: field:account.statement.from.invoice.lines,line_ids:0 +msgid "Invoices" +msgstr "Fakturaer." + +#. module: account_voucher +#: selection:sale.receipt.report,month:0 +msgid "December" +msgstr "Desember." + +#. module: account_voucher +#: view:sale.receipt.report:0 +msgid "Group by month of Invoice Date" +msgstr "" + +#. module: account_voucher +#: view:sale.receipt.report:0 +#: field:sale.receipt.report,month:0 +msgid "Month" +msgstr "Måned." + +#. module: account_voucher +#: field:account.voucher,currency_id:0 +#: field:account.voucher.line,currency_id:0 +#: field:sale.receipt.report,currency_id:0 +msgid "Currency" +msgstr "Valuta." + +#. module: account_voucher +#: view:account.statement.from.invoice.lines:0 +msgid "Payable and Receivables" +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Voucher Payment" +msgstr "Kupong betaling." + +#. module: account_voucher +#: field:sale.receipt.report,state:0 +msgid "Voucher Status" +msgstr "Kupong status." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Are you sure to unreconcile this record?" +msgstr "" + +#. module: account_voucher +#: field:account.voucher,company_id:0 +#: field:account.voucher.line,company_id:0 +#: view:sale.receipt.report:0 +#: field:sale.receipt.report,company_id:0 +msgid "Company" +msgstr "Firma." + +#. module: account_voucher +#: help:account.voucher,paid:0 +msgid "The Voucher has been totally paid." +msgstr "Kupongen har blitt fullstendig betalt." + +#. module: account_voucher +#: selection:account.voucher,payment_option:0 +msgid "Reconcile Payment Balance" +msgstr "" + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:960 +#, python-format +msgid "Configuration Error !" +msgstr "Konfigurasjons feil!" + +#. module: account_voucher +#: view:account.voucher:0 +#: view:sale.receipt.report:0 +msgid "Draft Vouchers" +msgstr "Kladd kuponger." + +#. module: account_voucher +#: view:sale.receipt.report:0 +#: field:sale.receipt.report,price_total_tax:0 +msgid "Total With Tax" +msgstr "Totalt med skatt." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Purchase Voucher" +msgstr "Betal kupong." + +#. module: account_voucher +#: view:account.voucher:0 +#: field:account.voucher,state:0 +#: view:sale.receipt.report:0 +msgid "Status" +msgstr "Status." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Allocation" +msgstr "" + +#. module: account_voucher +#: view:account.statement.from.invoice.lines:0 +#: view:account.voucher:0 +msgid "or" +msgstr "Eller." + +#. module: account_voucher +#: selection:sale.receipt.report,month:0 +msgid "August" +msgstr "August." + +#. module: account_voucher +#: help:account.voucher,audit:0 +msgid "" +"Check this box if you are unsure of that journal entry and if you want to " +"note it as 'to be reviewed' by an accounting expert." +msgstr "" + +#. module: account_voucher +#: selection:sale.receipt.report,month:0 +msgid "October" +msgstr "Oktober." + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:961 +#, python-format +msgid "Please activate the sequence of selected journal !" +msgstr "Vennligst aktiver sekvensen av den utvalgte journal!" + +#. module: account_voucher +#: selection:sale.receipt.report,month:0 +msgid "June" +msgstr "Juni." + +#. module: account_voucher +#: field:account.voucher,payment_rate_currency_id:0 +msgid "Payment Rate Currency" +msgstr "" + +#. module: account_voucher +#: field:account.voucher,paid:0 +msgid "Paid" +msgstr "Betalt." + +#. module: account_voucher +#: field:account.voucher,message_is_follower:0 +msgid "Is a Follower" +msgstr "Er en følger." + +#. module: account_voucher +#: field:account.voucher,analytic_id:0 +msgid "Write-Off Analytic Account" +msgstr "Skriv av analytisk konto." + +#. module: account_voucher +#: field:account.voucher,date:0 +#: field:account.voucher.line,date_original:0 +#: field:sale.receipt.report,date:0 +msgid "Date" +msgstr "Dato." + +#. module: account_voucher +#: selection:sale.receipt.report,month:0 +msgid "November" +msgstr "November." + +#. module: account_voucher +#: view:sale.receipt.report:0 +msgid "Extended Filters..." +msgstr "Utvidet Filtere ..." + +#. module: account_voucher +#: field:account.voucher,paid_amount_in_company_currency:0 +msgid "Paid Amount in Company Currency" +msgstr "Betalt beløp i firmas valuta." + +#. module: account_voucher +#: field:account.bank.statement.line,amount_reconciled:0 +msgid "Amount reconciled" +msgstr "" + +#. module: account_voucher +#: field:account.voucher,message_comment_ids:0 +#: help:account.voucher,message_comment_ids:0 +msgid "Comments and emails" +msgstr "Kommentarer og E-poster." + +#. module: account_voucher +#: model:ir.actions.act_window,help:account_voucher.action_vendor_payment +msgid "" +"\n" +" Click to create a new supplier payment.\n" +"
\n" +" OpenERP helps you easily track payments you do and remining\n" +" balance to pay to your supplier.\n" +"
\n" +" " +msgstr "" + +#. module: account_voucher +#: selection:account.voucher,pay_now:0 +#: selection:sale.receipt.report,pay_now:0 +msgid "Pay Directly" +msgstr "Betal direkte." + +#. module: account_voucher +#: field:account.voucher.line,type:0 +msgid "Dr/Cr" +msgstr "Dr/Cr." + +#. module: account_voucher +#: field:account.voucher,pre_line:0 +msgid "Previous Payments ?" +msgstr "Tidligere Betalinger ?" + +#. module: account_voucher +#: selection:sale.receipt.report,month:0 +msgid "January" +msgstr "Januar." + +#. module: account_voucher +#: model:ir.actions.act_window,name:account_voucher.action_voucher_list +#: model:ir.ui.menu,name:account_voucher.menu_encode_entries_by_voucher +msgid "Journal Vouchers" +msgstr "Journal kuponger." + +#. module: account_voucher +#: model:ir.model,name:account_voucher.model_res_company +msgid "Companies" +msgstr "Firmaer." + +#. module: account_voucher +#: field:account.voucher,message_summary:0 +msgid "Summary" +msgstr "Oppsummering." + +#. module: account_voucher +#: field:account.voucher,active:0 +msgid "Active" +msgstr "Aktiv." + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:965 +#, python-format +msgid "Please define a sequence on the journal." +msgstr "Vennligst definere en sekvens på tidsskriftet." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Total Allocation" +msgstr "" + +#. module: account_voucher +#: view:sale.receipt.report:0 +msgid "Group by Invoice Date" +msgstr "Grupper etter fakturadato." + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:1093 +#, python-format +msgid "Wrong bank statement line" +msgstr "Feil kontoutskrift linje." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Post" +msgstr "Publiser." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Invoices and outstanding transactions" +msgstr "Fakturaer og enestående transaksjoner." + +#. module: account_voucher +#: sql_constraint:account.invoice:0 +msgid "Invoice Number must be unique per Company!" +msgstr "Fakturanummer må være unik pr. firma!" + +#. module: account_voucher +#: view:sale.receipt.report:0 +#: field:sale.receipt.report,price_total:0 +msgid "Total Without Tax" +msgstr "Totalt uten avgift." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Bill Date" +msgstr "Regning dato." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Unreconcile" +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +#: model:ir.model,name:account_voucher.model_account_voucher +msgid "Accounting Voucher" +msgstr "Regnskapsmessig kupong." + +#. module: account_voucher +#: field:account.voucher,number:0 +msgid "Number" +msgstr "Nummer." + +#. module: account_voucher +#: selection:account.voucher.line,type:0 +msgid "Credit" +msgstr "Kredit" + +#. module: account_voucher +#: model:ir.model,name:account_voucher.model_account_bank_statement +msgid "Bank Statement" +msgstr "Kontoutskrift." + +#. module: account_voucher +#: view:account.bank.statement:0 +msgid "onchange_amount(amount)" +msgstr "" + +#. module: account_voucher +#: selection:sale.receipt.report,month:0 +msgid "September" +msgstr "September." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Sales Information" +msgstr "Salgs informasjon." + +#. module: account_voucher +#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt_report_all +#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt_report_all +#: view:sale.receipt.report:0 +msgid "Sales Receipt Analysis" +msgstr "Salgs kvittering analyse." + +#. module: account_voucher +#: view:account.voucher:0 +#: field:account.voucher.line,voucher_id:0 +#: model:res.request.link,name:account_voucher.req_link_voucher +msgid "Voucher" +msgstr "Kupong." + +#. module: account_voucher +#: model:ir.model,name:account_voucher.model_account_invoice +msgid "Invoice" +msgstr "Faktura." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Voucher Items" +msgstr "Kupong elementer." + +#. module: account_voucher +#: view:account.statement.from.invoice.lines:0 +#: view:account.voucher:0 +msgid "Cancel" +msgstr "Avbryt." + +#. module: account_voucher +#: model:ir.actions.client,name:account_voucher.action_client_invoice_menu +msgid "Open Invoicing Menu" +msgstr "Åpne fakturering meny." + +#. module: account_voucher +#: selection:account.voucher,state:0 +#: view:sale.receipt.report:0 +#: selection:sale.receipt.report,state:0 +msgid "Pro-forma" +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +#: field:account.voucher,move_ids:0 +msgid "Journal Items" +msgstr "Journal Elementer." + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:492 +#, python-format +msgid "Please define default credit/debit accounts on the journal \"%s\"." +msgstr "" + +#. module: account_voucher +#: model:ir.actions.act_window,name:account_voucher.act_pay_voucher +#: model:ir.actions.act_window,name:account_voucher.action_vendor_receipt +#: model:ir.ui.menu,name:account_voucher.menu_action_vendor_receipt +msgid "Customer Payment" +msgstr "Kunde betaling." + +#. module: account_voucher +#: selection:account.voucher,type:0 +#: selection:sale.receipt.report,type:0 +msgid "Purchase" +msgstr "Betaling." + +#. module: account_voucher +#: view:account.invoice:0 +#: view:account.voucher:0 +msgid "Pay" +msgstr "Betal" + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Currency Options" +msgstr "Valuta muligheter." + +#. module: account_voucher +#: help:account.voucher,payment_option:0 +msgid "" +"This field helps you to choose what you want to do with the eventual " +"difference between the paid amount and the sum of allocated amounts. You can " +"either choose to keep open this difference on the partner's account, or " +"reconcile it with the payment(s)" +msgstr "" + +#. module: account_voucher +#: model:ir.actions.act_window,help:account_voucher.action_sale_receipt_report_all +msgid "" +"\n" +" From this report, you can have an overview of the amount " +"invoiced\n" +" to your customer as well as payment delays. The tool search can\n" +" also be used to personalise your Invoices reports and so, match\n" +" this analysis to your needs.\n" +"
\n" +" " +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Posted Vouchers" +msgstr "Lagt ut kuponger." + +#. module: account_voucher +#: field:account.voucher,payment_rate:0 +msgid "Exchange Rate" +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Payment Method" +msgstr "Betalings metode." + +#. module: account_voucher +#: field:account.voucher.line,name:0 +msgid "Description" +msgstr "Beskrivelse." + +#. module: account_voucher +#: selection:sale.receipt.report,month:0 +msgid "May" +msgstr "Mai." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Sale Receipt" +msgstr "Salgs kvittering." + +#. module: account_voucher +#: view:account.voucher:0 +#: field:account.voucher,journal_id:0 +#: view:sale.receipt.report:0 +#: field:sale.receipt.report,journal_id:0 +msgid "Journal" +msgstr "Journal." + +#. module: account_voucher +#: model:ir.actions.act_window,name:account_voucher.action_vendor_payment +#: model:ir.ui.menu,name:account_voucher.menu_action_vendor_payment +msgid "Supplier Payment" +msgstr "Leverandør betaling." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Internal Notes" +msgstr "Interne notater." + +#. module: account_voucher +#: view:account.voucher:0 +#: field:account.voucher,line_cr_ids:0 +msgid "Credits" +msgstr "" + +#. module: account_voucher +#: field:account.voucher.line,amount_original:0 +msgid "Original Amount" +msgstr "Opprinnelig beløp." + +#. module: account_voucher +#: view:account.voucher:0 +#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt +#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt +msgid "Purchase Receipt" +msgstr "Kjøps kvitteringen." + +#. module: account_voucher +#: help:account.voucher,payment_rate:0 +msgid "" +"The specific rate that will be used, in this voucher, between the selected " +"currency (in 'Payment Rate Currency' field) and the voucher currency." +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +#: field:account.voucher,pay_now:0 +#: selection:account.voucher,type:0 +#: field:sale.receipt.report,pay_now:0 +#: selection:sale.receipt.report,type:0 +msgid "Payment" +msgstr "Betaling." + +#. module: account_voucher +#: view:account.voucher:0 +#: selection:account.voucher,state:0 +#: view:sale.receipt.report:0 +#: selection:sale.receipt.report,state:0 +msgid "Posted" +msgstr "Lagt inn." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Customer" +msgstr "Kunde." + +#. module: account_voucher +#: selection:sale.receipt.report,month:0 +msgid "February" +msgstr "Februar." + +#. module: account_voucher +#: view:account.voucher:0 +msgid "Supplier Invoices and Outstanding transactions" +msgstr "Leverandør fakturaer og utestående transaksjoner." + +#. module: account_voucher +#: field:account.voucher,reference:0 +msgid "Ref #" +msgstr "Referanse #" + +#. module: account_voucher +#: view:sale.receipt.report:0 +#: field:sale.receipt.report,year:0 +msgid "Year" +msgstr "År." + +#. module: account_voucher +#: field:account.config.settings,income_currency_exchange_account_id:0 +#: field:res.company,income_currency_exchange_account_id:0 +msgid "Gain Exchange Rate Account" +msgstr "" + +#. module: account_voucher +#: selection:sale.receipt.report,month:0 +msgid "April" +msgstr "April." + +#. module: account_voucher +#: help:account.voucher,tax_id:0 +msgid "Only for tax excluded from price" +msgstr "" + +#. module: account_voucher +#: field:account.voucher,type:0 +msgid "Default Type" +msgstr "Standard type." + +#. module: account_voucher +#: help:account.voucher,message_ids:0 +msgid "Messages and communication history" +msgstr "Meldinger og kommunikasjon historie." + +#. module: account_voucher +#: model:ir.model,name:account_voucher.model_account_statement_from_invoice_lines +msgid "Entries by Statement from Invoices" +msgstr "" + +#. module: account_voucher +#: view:account.voucher:0 +#: field:account.voucher,amount:0 +msgid "Total" +msgstr "Totalt." + +#. module: account_voucher +#: field:account.voucher,move_id:0 +msgid "Account Entry" +msgstr "Konto Inngang." + +#. module: account_voucher +#: constraint:account.bank.statement.line:0 +msgid "" +"The amount of the voucher must be the same amount as the one on the " +"statement line." +msgstr "" + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:864 +#, python-format +msgid "Cannot delete voucher(s) which are already opened or paid." +msgstr "Kan ikke slette kupong(er) som allerede er åpnet eller betalt." + +#. module: account_voucher +#: help:account.voucher,date:0 +msgid "Effective date for accounting entries" +msgstr "" + +#. module: account_voucher +#: model:mail.message.subtype,name:account_voucher.mt_voucher +msgid "Status Change" +msgstr "Statusendring." + +#. module: account_voucher +#: selection:account.voucher,payment_option:0 +msgid "Keep Open" +msgstr "Hold åpen." + +#. module: account_voucher +#: field:account.voucher,line_ids:0 +#: view:account.voucher.line:0 +#: model:ir.model,name:account_voucher.model_account_voucher_line +msgid "Voucher Lines" +msgstr "Kupong linjer." + +#. module: account_voucher +#: view:sale.receipt.report:0 +#: field:sale.receipt.report,delay_to_pay:0 +msgid "Avg. Delay To Pay" +msgstr "" + +#. module: account_voucher +#: field:account.voucher.line,untax_amount:0 +msgid "Untax Amount" +msgstr "" + +#. module: account_voucher +#: model:ir.model,name:account_voucher.model_sale_receipt_report +msgid "Sales Receipt Statistics" +msgstr "Salgs kvittering statistikker." + +#. module: account_voucher +#: view:account.voucher:0 +#: field:account.voucher,partner_id:0 +#: field:account.voucher.line,partner_id:0 +#: view:sale.receipt.report:0 +#: field:sale.receipt.report,partner_id:0 +msgid "Partner" +msgstr "Partner." + +#. module: account_voucher +#: field:account.voucher.line,amount_unreconciled:0 +msgid "Open Balance" +msgstr "" + +#. module: account_voucher +#: code:addons/account_voucher/account_voucher.py:997 +#: code:addons/account_voucher/account_voucher.py:1001 +#, python-format +msgid "Insufficient Configuration!" +msgstr "" + +#. module: account_voucher +#: help:account.voucher,active:0 +msgid "" +"By default, reconciliation vouchers made on draft bank statements are set as " +"inactive, which allow to hide the customer/supplier payment while the bank " +"statement isn't confirmed." +msgstr "" diff --git a/addons/account_voucher/i18n/zh_CN.po b/addons/account_voucher/i18n/zh_CN.po index 30278b0a5d7..f174f76940c 100644 --- a/addons/account_voucher/i18n/zh_CN.po +++ b/addons/account_voucher/i18n/zh_CN.po @@ -7,24 +7,24 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-11-24 02:51+0000\n" -"PO-Revision-Date: 2012-05-10 17:47+0000\n" -"Last-Translator: 开阖软件 Jeff WangA password reset was requested for the OpenERP account linked to this " +"email.
\n" +"\n" +"You may change your password following this link.
\n" +"\n" +"Note: If you did not ask for a password reset, you can safely ignore this " +"email.
" +msgstr "" + +#. module: auth_reset_password +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "Non è possibile avere due utenti con lo stesso login!" + +#. module: auth_reset_password +#: model:ir.model,name:auth_reset_password.model_res_users +msgid "Users" +msgstr "Utenti" + +#. module: auth_reset_password +#: sql_constraint:res.users:0 +msgid "OAuth UID must be unique per provider" +msgstr "il UID OAuth deve essere unico per provider" + +#. module: auth_reset_password +#: view:res.users:0 +msgid "Reset Password" +msgstr "Reimposta Password" + +#. module: auth_reset_password +#: model:email.template,subject:auth_reset_password.reset_password_email +msgid "Password reset" +msgstr "Ripristino password" + +#. module: auth_reset_password +#: constraint:res.users:0 +msgid "Error: Invalid ean code" +msgstr "Errore: codice EAN non valido" + +#. module: auth_reset_password +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "L'azienda scelta non è fra le aziende abilitate per questo utente" + +#. module: auth_reset_password +#. openerp-web +#: code:addons/auth_reset_password/static/src/xml/reset_password.xml:7 +#, python-format +msgid "Reset password" +msgstr "Reimposta password" diff --git a/addons/auth_reset_password/i18n/nl.po b/addons/auth_reset_password/i18n/nl.po new file mode 100644 index 00000000000..501b9abae97 --- /dev/null +++ b/addons/auth_reset_password/i18n/nl.po @@ -0,0 +1,74 @@ +# Dutch 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 AUTHORA password reset was requested for the OpenERP account linked to this " +"email.
\n" +"\n" +"You may change your password following this link.
\n" +"\n" +"Note: If you did not ask for a password reset, you can safely ignore this " +"email.
" +msgstr "" + +#. module: auth_reset_password +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "U kunt niet twee gebruikers hebben met dezelfde gebruikersnaam !" + +#. module: auth_reset_password +#: model:ir.model,name:auth_reset_password.model_res_users +msgid "Users" +msgstr "Gebruikers" + +#. module: auth_reset_password +#: sql_constraint:res.users:0 +msgid "OAuth UID must be unique per provider" +msgstr "OAuth UID moet uniek zijn per provider" + +#. module: auth_reset_password +#: view:res.users:0 +msgid "Reset Password" +msgstr "Stel wachtwoord opnieuw in" + +#. module: auth_reset_password +#: model:email.template,subject:auth_reset_password.reset_password_email +msgid "Password reset" +msgstr "Reset wachtwoord" + +#. module: auth_reset_password +#: constraint:res.users:0 +msgid "Error: Invalid ean code" +msgstr "Fout: Ongeldige EAN-code" + +#. module: auth_reset_password +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "Het gekozen bedrijf is geen toegestaan bedrijf voor deze gebruiker" + +#. module: auth_reset_password +#. openerp-web +#: code:addons/auth_reset_password/static/src/xml/reset_password.xml:7 +#, python-format +msgid "Reset password" +msgstr "Reset wachtwoord" diff --git a/addons/auth_reset_password/i18n/zh_CN.po b/addons/auth_reset_password/i18n/zh_CN.po new file mode 100644 index 00000000000..ee06973b4c6 --- /dev/null +++ b/addons/auth_reset_password/i18n/zh_CN.po @@ -0,0 +1,78 @@ +# Chinese (Simplified) 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 AUTHORA password reset was requested for the OpenERP account linked to this " +"email.
\n" +"\n" +"You may change your password following this link.
\n" +"\n" +"Note: If you did not ask for a password reset, you can safely ignore this " +"email.
" +msgstr "" +"\n" +"一个关联到这个Email地址的Openerp帐号请求复位密码。\n" +"你可以修改你的密码通过下面这个链接 。\n" +"提醒:如果你没请求复位密码,请忽略这封邮件。" + +#. module: auth_reset_password +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "两个用户不能使用相同的用户名!" + +#. module: auth_reset_password +#: model:ir.model,name:auth_reset_password.model_res_users +msgid "Users" +msgstr "用户" + +#. module: auth_reset_password +#: sql_constraint:res.users:0 +msgid "OAuth UID must be unique per provider" +msgstr "OAuth UID必须是每个提供者唯一的" + +#. module: auth_reset_password +#: view:res.users:0 +msgid "Reset Password" +msgstr "重置密码" + +#. module: auth_reset_password +#: model:email.template,subject:auth_reset_password.reset_password_email +msgid "Password reset" +msgstr "重置密码" + +#. module: auth_reset_password +#: constraint:res.users:0 +msgid "Error: Invalid ean code" +msgstr "错误:无效的(EAN)条码" + +#. module: auth_reset_password +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "选择的公司不属于此用户允许访问的公司。" + +#. module: auth_reset_password +#. openerp-web +#: code:addons/auth_reset_password/static/src/xml/reset_password.xml:7 +#, python-format +msgid "Reset password" +msgstr "重设密码" diff --git a/addons/auth_reset_password/res_users.py b/addons/auth_reset_password/res_users.py index b1039031812..cfac20c76f9 100644 --- a/addons/auth_reset_password/res_users.py +++ b/addons/auth_reset_password/res_users.py @@ -21,6 +21,7 @@ from openerp.osv import osv, fields from openerp.tools.misc import DEFAULT_SERVER_DATETIME_FORMAT +from openerp.tools.translate import _ from datetime import datetime, timedelta @@ -54,6 +55,8 @@ class res_users(osv.osv): template = self.pool.get('ir.model.data').get_object(cr, uid, 'auth_reset_password', 'reset_password_email') assert template._name == 'email.template' for user in self.browse(cr, uid, ids, context): + if not user.email: + raise osv.except_osv(_("Cannot send email: user has no email address."), user.name) self.pool.get('email.template').send_mail(cr, uid, template.id, user.id, context=context) return True diff --git a/addons/auth_signup/i18n/nl.po b/addons/auth_signup/i18n/nl.po new file mode 100644 index 00000000000..2a418b068a9 --- /dev/null +++ b/addons/auth_signup/i18n/nl.po @@ -0,0 +1,171 @@ +# Dutch 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\n" +" Click to add a contact in your address book.\n" +"
\n" +" OpenERP helps you easily track all activities related to\n" +" a customer; discussions, history of business opportunities,\n" +" documents, etc.\n" +"
\n" +" " +msgstr "" +"\n" +" Premere per creare un contatto in rubrica.\n" +"
\n" +" OpenERP ti aiuta a tenere traccia delle attività legate\n" +" a clienti, discussioni, storia delle opportunità,\n" +" document, etc.\n" +"\n" +"
\n" +" " + +#. module: contacts +#: model:ir.actions.act_window,name:contacts.action_contacts +#: model:ir.ui.menu,name:contacts.menu_contacts +msgid "Contacts" +msgstr "Contatti" diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml index d80183b80c9..19baa5a5709 100644 --- a/addons/crm/board_crm_view.xml +++ b/addons/crm/board_crm_view.xml @@ -43,7 +43,7 @@\n" +" Click to create a new contract. \n" +"
\n" +" Manage all your contracts (leasing, insurances, etc.) with\n" +" their related services, costs. OpenERP will automatically " +"warn\n" +" you when some contracts have to be renewed.\n" +"
\n" +" Each contract (e.g.: leasing) may include several services\n" +" (reparation, insurances, periodic maintenance).\n" +"
\n" +" " +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_service_type +msgid "Type of services available on a vehicle" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_service_types_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_service_types_menu +msgid "Service Types" +msgstr "" + +#. module: fleet +#: view:board.board:0 +msgid "Contracts Costs" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_log_services_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_log_services_menu +msgid "Vehicles Services Logs" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_log_fuel_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_log_fuel_menu +msgid "Vehicles Fuel Logs" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.model.brand:0 +msgid "" +"$('.oe_picture').load(function() { if($(this).width() > $(this).height()) { " +"$(this).addClass('oe_employee_picture_wide') } });" +msgstr "" + +#. module: fleet +#: view:board.board:0 +msgid "Vehicles With Alerts" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_costs_act +msgid "" +"\n" +" Click to create a new cost.\n" +"
\n" +" OpenERP helps you managing the costs for your different\n" +" vehicles. Costs are created automatically from services,\n" +" contracts (fixed or recurring) and fuel logs.\n" +"
\n" +" " +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "show the fuel logs for this vehicle" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,purchaser_id:0 +msgid "Contractor" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,license_plate:0 +msgid "License Plate" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,cost_frequency:0 +msgid "Recurring Cost Frequency" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.fuel,inv_ref:0 +#: field:fleet.vehicle.log.services,inv_ref:0 +msgid "Invoice Reference" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,message_follower_ids:0 +msgid "Followers" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,location:0 +msgid "Location" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +msgid "Costs Per Month" +msgstr "" + +#. module: fleet +#: field:fleet.contract.state,name:0 +msgid "Contract Status" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,contract_renewal_total:0 +msgid "Total of contracts due or overdue minus one" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,cost_subtype:0 +msgid "Type" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,contract_renewal_overdue:0 +msgid "Has Contracts Overdued" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,amount:0 +msgid "Total Price" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_27 +msgid "Heater Core Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_14 +msgid "Car Wash" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,driver:0 +msgid "Driver of the vehicle" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "other(s)" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_refueling +msgid "Refueling" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,message_summary:0 +msgid "" +"Holds the Chatter summary (number of messages, ...). This summary is " +"directly in html format in order to be inserted in kanban views." +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_5 +msgid "A/C Recharge" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_log_fuel +msgid "Fuel log for vehicles" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "Engine Options" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.fuel:0 +msgid "Fuel Costs Per Month" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_sedan +msgid "Sedan" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,seats:0 +msgid "Seats Number" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_convertible +msgid "Convertible" +msgstr "" + +#. module: fleet +#: model:ir.ui.menu,name:fleet.fleet_configuration +msgid "Configuration" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +#: field:fleet.vehicle.log.contract,sum_cost:0 +msgid "Indicative Costs Total" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_junior +msgid "Junior" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,model_id:0 +msgid "Model of the vehicle" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_state_act +msgid "" +"\n" +" Click to create a vehicule status.\n" +"
\n" +" You can customize available status to track the evolution " +"of\n" +" each vehicule. Example: Active, Being Repaired, Sold.\n" +"
\n" +" " +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +#: field:fleet.vehicle,log_fuel:0 +#: view:fleet.vehicle.log.fuel:0 +msgid "Fuel Logs" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:409 +#: code:addons/fleet/fleet.py:413 +#: code:addons/fleet/fleet.py:417 +#: code:addons/fleet/fleet.py:420 +#, python-format +msgid "None" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.action_fleet_reporting_costs_non_effective +#: model:ir.ui.menu,name:fleet.menu_fleet_reporting_indicative_costs +msgid "Indicative Costs Analysis" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_12 +msgid "Brake Inspection" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,state:0 +msgid "Current state of the vehicle" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle,transmission:0 +msgid "Manual" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_52 +msgid "Wheel Bearing Replacement" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.cost,cost_subtype:0 +msgid "Cost type purchased with this cost" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle,fuel_type:0 +msgid "Gasoline" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_model_brand_act +msgid "" +"\n" +" Click to create a new brand.\n" +"
\n" +" " +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,start_date:0 +msgid "Contract Start Date" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,odometer_unit:0 +msgid "Odometer Unit" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_30 +msgid "Intake Manifold Gasket Replacement" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,cost_frequency:0 +msgid "Daily" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_6 +msgid "Snow tires" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.cost,date:0 +msgid "Date when the cost has been executed" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.state,sequence:0 +msgid "Order" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +msgid "Vehicles costs" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_log_services +msgid "Services for vehicles" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Indicative Cost" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_26 +msgid "Heater Control Valve Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "" +"Create a new contract automatically with all the same informations except " +"for the date that will start at the end of current contract" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,state:0 +msgid "Terminated" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_cost +msgid "Cost related to a vehicle" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_33 +msgid "Other Maintenance" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.model,brand:0 +#: view:fleet.vehicle.model.brand:0 +msgid "Model Brand" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.model.brand,image_small:0 +msgid "Smal-sized photo" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,state:0 +#: view:fleet.vehicle.state:0 +msgid "State" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,cost_generated:0 +msgid "Recurring Cost Amount" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_49 +msgid "Transmission Replacement" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_log_fuel_act +msgid "" +"\n" +" Click to create a new fuel log. \n" +"
\n" +" Here you can add refuelling entries for all vehicles. You " +"can\n" +" also filter logs of a particular vehicle using the search\n" +" field.\n" +"
\n" +" " +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_11 +msgid "Brake Caliper Replacement" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,odometer:0 +msgid "Last Odometer" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_model_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_model_menu +msgid "Vehicle Model" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,doors:0 +msgid "Doors Number" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,acquisition_date:0 +msgid "Date when the vehicle has been bought" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.model:0 +msgid "Models" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "amount" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,fuel_type:0 +msgid "Fuel Used by the vehicle" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Set Contract In Progress" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,odometer_unit:0 +#: field:fleet.vehicle.odometer,unit:0 +msgid "Unit" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,message_is_follower:0 +msgid "Is a Follower" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,horsepower:0 +msgid "Horsepower" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,image:0 +#: field:fleet.vehicle,image_medium:0 +#: field:fleet.vehicle,image_small:0 +#: field:fleet.vehicle.model,image:0 +#: field:fleet.vehicle.model,image_medium:0 +#: field:fleet.vehicle.model,image_small:0 +#: field:fleet.vehicle.model.brand,image:0 +msgid "Logo" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,horsepower_tax:0 +msgid "Horsepower Taxation" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,log_services:0 +#: view:fleet.vehicle.log.services:0 +msgid "Services Logs" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:47 +#, python-format +msgid "Emptying the odometer value of a vehicle is not allowed." +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_43 +msgid "Thermostat Replacement" +msgstr "" + +#. module: fleet +#: field:fleet.service.type,category:0 +msgid "Category" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.action_fleet_vehicle_log_fuel_graph +msgid "Fuel Costs by Month" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.model.brand,image:0 +msgid "" +"This field holds the image used as logo for the brand, limited to " +"1024x1024px." +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_11 +msgid "Management Fee" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "All vehicles" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.fuel:0 +#: view:fleet.vehicle.log.services:0 +msgid "Additional Details" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.action_fleet_vehicle_log_services_graph +msgid "Services Costs by Month" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_9 +msgid "Assistance" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.fuel,price_per_liter:0 +msgid "Price Per Liter" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_17 +msgid "Door Window Motor/Regulator Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_46 +msgid "Tire Service" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_8 +msgid "Ball Joint Replacement" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,fuel_type:0 +msgid "Fuel Type" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_22 +msgid "Fuel Injector Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_50 +msgid "Water Pump Replacement" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,location:0 +msgid "Location of the vehicle (garage, ...)" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_28 +msgid "Heater Hose Replacement" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,state:0 +msgid "Status" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_40 +msgid "Rotor Replacement" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.model,brand:0 +msgid "Brand of the vehicle" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.log.contract,start_date:0 +msgid "Date when the coverage of the contract begins" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle,fuel_type:0 +msgid "Electric" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,tag_ids:0 +msgid "Tags" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +#: field:fleet.vehicle,log_contracts:0 +msgid "Contracts" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_13 +msgid "Brake Pad(s) Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.fuel:0 +#: view:fleet.vehicle.log.services:0 +msgid "Odometer Details" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,driver:0 +msgid "Driver" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.model.brand,image_small:0 +msgid "" +"Small-sized photo of the brand. It is automatically resized as a 64x64px " +"image, with aspect ratio preserved. Use this field anywhere a small image is " +"required." +msgstr "" + +#. module: fleet +#: view:board.board:0 +msgid "Fleet Dashboard" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_break +msgid "Break" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_contract_omnium +msgid "Omnium" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.services:0 +msgid "Services Details" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_15 +msgid "Residual value (Excluding VAT)" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_7 +msgid "Alternator Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_3 +msgid "A/C Diagnosis" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_23 +msgid "Fuel Pump Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Activation Cost" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +msgid "Cost Type" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_4 +msgid "A/C Evaporator Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "show all the costs for this vehicle" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.odometer:0 +msgid "Odometer Values Per Month" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,message_comment_ids:0 +#: help:fleet.vehicle,message_comment_ids:0 +msgid "Comments and emails" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_act +msgid "" +"\n" +" Click to create a new vehicle. \n" +"
\n" +" You will be able to manage your fleet by keeping track of " +"the\n" +" contracts, services, fixed and recurring costs, odometers " +"and\n" +" fuel logs associated to each vehicle.\n" +"
\n" +" OpenERP will warn you when services or contract have to be\n" +" renewed.\n" +"
\n" +" " +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_13 +msgid "Entry into service tax" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,expiration_date:0 +msgid "Contract Expiration Date" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +msgid "Cost Subtype" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.open_board_fleet +msgid "" +"\n" +" Fleet dashboard is empty.\n" +"
\n" +" To add your first report into this dashboard, go to any\n" +" menu, switch to list or graph view, and click 'Add " +"to\n" +" Dashboard' in the extended search options.\n" +"
\n" +" You can filter and group data before inserting into the\n" +" dashboard using the search options.\n" +"
\n" +"\n" +" OpenERP helps you managing the costs for your different vehicles\n" +" Costs are generally created from services and contract and appears " +"here.\n" +"
\n" +"\n" +" Thanks to the different filters, OpenERP can only print the " +"effective\n" +" costs, sort them by type and by vehicle.\n" +"
\n" +" " +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,car_value:0 +msgid "Car Value" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.open_board_fleet +#: model:ir.ui.menu,name:fleet.menu_fleet_dashboard +#: model:ir.ui.menu,name:fleet.menu_fleet_reporting +#: model:ir.ui.menu,name:fleet.menu_root +msgid "Fleet" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_14 +msgid "Total expenses (Excluding VAT)" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,odometer_id:0 +msgid "Odometer" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_45 +msgid "Tire Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.service.type:0 +msgid "Service types" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.fuel,purchaser_id:0 +#: field:fleet.vehicle.log.services,purchaser_id:0 +msgid "Purchaser" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_3 +msgid "Tax roll" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.model:0 +#: field:fleet.vehicle.model,vendors:0 +msgid "Vendors" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_contract_leasing +msgid "Leasing" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.model.brand,image_medium:0 +msgid "" +"Medium-sized logo of the brand. It is automatically resized as a 128x128px " +"image, with aspect ratio preserved. Use this field in form views or some " +"kanban views." +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,cost_frequency:0 +msgid "Weekly" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +#: view:fleet.vehicle.odometer:0 +msgid "Odometer Logs" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,acquisition_date:0 +msgid "Acquisition Date" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_odometer +msgid "Odometer log for a vehicle" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,cost_type:0 +msgid "Category of the cost" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_5 +#: model:fleet.service.type,name:fleet.type_service_service_7 +msgid "Summer tires" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,contract_renewal_due_soon:0 +msgid "Has Contracts to renew" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_31 +msgid "Oil Change" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,state:0 +msgid "To Close" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_model_brand +msgid "Brand model of the vehicle" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_51 +msgid "Wheel Alignment" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_purchased +msgid "Purchased" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_odometer_act +msgid "" +"\n" +" Here you can add various odometer entries for all vehicles.\n" +" You can also show odometer value for a particular vehicle " +"using\n" +" the search field.\n" +"
\n" +" " +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_model_act +msgid "" +"\n" +" Click to create a new model.\n" +"
\n" +" You can define several models (e.g. A3, A4) for each brand " +"(Audi).\n" +"
\n" +" " +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "General Properties" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_21 +msgid "Exhaust Manifold Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_47 +msgid "Transmission Filter Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_10 +msgid "Replacement Vehicle" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,state:0 +msgid "In Progress" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.log.contract,cost_frequency:0 +msgid "Yearly" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_state_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_state_menu +msgid "States of Vehicle" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.model,modelname:0 +msgid "Model name" +msgstr "" + +#. module: fleet +#: view:board.board:0 +#: model:ir.actions.act_window,name:fleet.action_fleet_vehicle_costs_graph +msgid "Costs by Month" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_18 +msgid "Touring Assistance" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,power:0 +msgid "Power (kW)" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:418 +#, python-format +msgid "State: from '%s' to '%s'" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_2 +msgid "A/C Condenser Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_19 +msgid "Engine Coolant Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +msgid "Cost Details" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:410 +#, python-format +msgid "Model: from '%s' to '%s'" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.cost,cost_type:0 +msgid "Other" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Contract details" +msgstr "" + +#. module: fleet +#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_leasing +msgid "Employee Car" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,auto_generated:0 +msgid "Automatically Generated" +msgstr "" + +#. module: fleet +#: selection:fleet.vehicle.cost,cost_type:0 +msgid "Fuel" +msgstr "" + +#. module: fleet +#: sql_constraint:fleet.vehicle.state:0 +msgid "State name already exists" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_37 +msgid "Radiator Repair" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_log_contract +msgid "Contract information on a vehicle" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,days_left:0 +msgid "Warning Date" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_19 +msgid "Residual value in %" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "Additional Properties" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_state +msgid "fleet.vehicle.state" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Contract Costs Per Month" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_log_contract_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_log_contract_menu +msgid "Vehicles Contracts" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_48 +msgid "Transmission Fluid Replacement" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.model.brand,name:0 +msgid "Brand Name" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_36 +msgid "Power Steering Pump Replacement" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.cost,contract_id:0 +msgid "Contract attached to this cost" +msgstr "" + +#. module: fleet +#: code:addons/fleet/fleet.py:397 +#, python-format +msgid "Vehicle %s has been added to the fleet!" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +#: view:fleet.vehicle.log.fuel:0 +#: view:fleet.vehicle.log.services:0 +msgid "Price" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +#: view:fleet.vehicle.cost:0 +#: field:fleet.vehicle.cost,vehicle_id:0 +#: field:fleet.vehicle.odometer,vehicle_id:0 +msgid "Vehicle" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,cost_ids:0 +#: view:fleet.vehicle.log.contract:0 +#: view:fleet.vehicle.log.services:0 +msgid "Included Services" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.action_fleet_vehicle_kanban +msgid "" +"\n" +" Here are displayed vehicles for which one or more contracts need " +"to be renewed. If you see this message, then there is no contracts to " +"renew.\n" +"
\n" +" " +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_15 +msgid "Catalytic Converter Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_25 +msgid "Heater Blower Motor Replacement" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.fleet_vehicle_odometer_act +#: model:ir.ui.menu,name:fleet.fleet_vehicle_odometer_menu +msgid "Vehicles Odometer" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.log.contract,notes:0 +msgid "Write here all supplementary informations relative to this contract" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_29 +msgid "Ignition Coil Replacement" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_service_16 +msgid "Options" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_contract_repairing +msgid "Repairing" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.action_fleet_reporting_costs +#: model:ir.ui.menu,name:fleet.menu_fleet_reporting_costs +msgid "Costs Analysis" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.log.contract,ins_ref:0 +msgid "Contract Reference" +msgstr "" + +#. module: fleet +#: field:fleet.service.type,name:0 +#: field:fleet.vehicle,name:0 +#: field:fleet.vehicle.cost,name:0 +#: field:fleet.vehicle.log.contract,name:0 +#: field:fleet.vehicle.model,name:0 +#: field:fleet.vehicle.odometer,name:0 +#: field:fleet.vehicle.state,name:0 +#: field:fleet.vehicle.tag,name:0 +msgid "Name" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,doors:0 +msgid "Number of doors of the vehicle" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,transmission:0 +msgid "Transmission" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,vin_sn:0 +msgid "Chassis Number" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,color:0 +msgid "Color of the vehicle" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_log_services_act +msgid "" +"\n" +" Click to create a new service entry. \n" +"
\n" +" OpenERP helps you keeping track of all the services done\n" +" on your vehicle. Services can be of many type: occasional\n" +" repair, fixed maintenance, etc.\n" +"
\n" +" " +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,co2:0 +msgid "CO2 Emissions" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +msgid "Contract logs" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "Costs" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,message_summary:0 +msgid "Summary" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,name:fleet.action_fleet_vehicle_log_contract_graph +msgid "Contracts Costs by Month" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,model_id:0 +#: view:fleet.vehicle.model:0 +msgid "Model" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_41 +msgid "Spark Plug Replacement" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,message_ids:0 +msgid "Messages and communication history" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle +msgid "Information on a vehicle" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,co2:0 +msgid "CO2 emissions of the vehicle" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_53 +msgid "Windshield Wiper(s) Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.contract:0 +#: field:fleet.vehicle.log.contract,generated_cost_ids:0 +msgid "Generated Costs" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle,color:0 +msgid "Color" +msgstr "" + +#. module: fleet +#: model:ir.actions.act_window,help:fleet.fleet_vehicle_service_types_act +msgid "" +"\n" +" Click to create a new type of service.\n" +"
\n" +" Each service can used in contracts, as a standalone service " +"or both.\n" +"
\n" +" " +msgstr "" + +#. module: fleet +#: view:board.board:0 +msgid "Services Costs" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_vehicle_model +msgid "Model of a vehicle" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,seats:0 +msgid "Number of seats of the vehicle" +msgstr "" + +#. module: fleet +#: field:fleet.vehicle.cost,odometer:0 +#: field:fleet.vehicle.odometer,value:0 +msgid "Odometer Value" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.services:0 +msgid "Cost" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_39 +msgid "Rotate Tires" +msgstr "" + +#. module: fleet +#: model:fleet.service.type,name:fleet.type_service_42 +msgid "Starter Replacement" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.cost:0 +#: field:fleet.vehicle.cost,year:0 +msgid "Year" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle,license_plate:0 +msgid "License plate number of the vehicle (ie: plate number for a car)" +msgstr "" + +#. module: fleet +#: model:ir.model,name:fleet.model_fleet_contract_state +msgid "Contains the different possible status of a leasing contract" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle:0 +msgid "show the contract for this vehicle" +msgstr "" + +#. module: fleet +#: view:fleet.vehicle.log.services:0 +msgid "Total" +msgstr "" + +#. module: fleet +#: help:fleet.service.type,category:0 +msgid "" +"Choose wheter the service refer to contracts, vehicle services or both" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.cost,cost_type:0 +msgid "For internal purpose only" +msgstr "" + +#. module: fleet +#: help:fleet.vehicle.state,sequence:0 +msgid "Used to order the note stages" +msgstr "" diff --git a/addons/google_base_account/i18n/zh_CN.po b/addons/google_base_account/i18n/zh_CN.po index 40b08fb64c9..391d9f10409 100644 --- a/addons/google_base_account/i18n/zh_CN.po +++ b/addons/google_base_account/i18n/zh_CN.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME\n" +" 单击定义一个评估计划 \n" +"
\n" +" 你能定义评估计划(例如:6个月后首次面谈,然后每年一次).\n" +" 然后每个员工能关联到一个评估计划,这样Openerp 能自动\n" +" 生成一个面谈要求给管理人员和下属.\n" +"
\n" +" " #. module: hr_evaluation #: view:hr_evaluation.plan.phase:0 @@ -405,7 +413,7 @@ msgstr "行动计划" #. module: hr_evaluation #: model:ir.ui.menu,name:hr_evaluation.menu_eval_hr_config msgid "Periodic Appraisal" -msgstr "定义复核" +msgstr "定期评估" #. module: hr_evaluation #: field:hr_evaluation.plan,month_next:0 @@ -438,7 +446,7 @@ msgstr "所有答案" #: view:hr.evaluation.interview:0 #: view:hr_evaluation.evaluation:0 msgid "Answer Survey" -msgstr "" +msgstr "填写问卷" #. module: hr_evaluation #: selection:hr.evaluation.report,month:0 @@ -549,7 +557,7 @@ msgstr " (employee_name)s: 业务伙伴名称" #: field:hr.evaluation.interview,message_is_follower:0 #: field:hr_evaluation.evaluation,message_is_follower:0 msgid "Is a Follower" -msgstr "" +msgstr "是一个关注者" #. module: hr_evaluation #: view:hr.evaluation.report:0 @@ -580,7 +588,7 @@ msgstr "增加筛选条件" #: field:hr_evaluation.evaluation,message_comment_ids:0 #: help:hr_evaluation.evaluation,message_comment_ids:0 msgid "Comments and emails" -msgstr "" +msgstr "评论和电子邮件" #. module: hr_evaluation #: help:hr_evaluation.plan.phase,send_anonymous_employee:0 @@ -733,7 +741,7 @@ msgstr "取消" #. module: hr_evaluation #: constraint:hr.employee:0 msgid "Error! You cannot create recursive hierarchy of Employee(s)." -msgstr "" +msgstr "错误!,你不能创建循环的员工层次" #. module: hr_evaluation #: view:hr.evaluation.report:0 @@ -836,7 +844,7 @@ msgstr "阶段" #. module: hr_evaluation #: selection:hr_evaluation.plan.phase,action:0 msgid "Bottom-Up Appraisal Requests" -msgstr "自下而上的考评申请" +msgstr "自下而上的评估申请" #. module: hr_evaluation #: selection:hr.evaluation.report,month:0 @@ -847,7 +855,7 @@ msgstr "2月" #: view:hr.evaluation.interview:0 #: view:hr_evaluation.evaluation:0 msgid "Interview Appraisal" -msgstr "面谈评估" +msgstr "面谈测评" #. module: hr_evaluation #: field:survey.request,is_evaluation:0 @@ -871,7 +879,7 @@ msgstr "面谈员工" msgid "" "You cannot change state, because some appraisal(s) are in waiting answer or " "draft state." -msgstr "" +msgstr "你不能改变状态,因为有些评估正在等待结果。" #. module: hr_evaluation #: selection:hr.evaluation.report,month:0 @@ -887,7 +895,7 @@ msgstr "评估计划阶段" #: help:hr.evaluation.interview,message_ids:0 #: help:hr_evaluation.evaluation,message_ids:0 msgid "Messages and communication history" -msgstr "" +msgstr "消息和通信历史" #. module: hr_evaluation #: view:hr.evaluation.interview:0 diff --git a/addons/hr_expense/security/ir.model.access.csv b/addons/hr_expense/security/ir.model.access.csv index 092424ef7e6..361a3d8c74f 100644 --- a/addons/hr_expense/security/ir.model.access.csv +++ b/addons/hr_expense/security/ir.model.access.csv @@ -20,5 +20,3 @@ access_account_move_user,account.move.user,account.model_account_move,base.group access_account_move_line_user,account.move.line.user,account.model_account_move_line,base.group_hr_user,1,1,1,1 access_account_analytic_line_user,account.ianalytic.line.user,account.model_account_analytic_line,base.group_hr_user,1,1,1,1 access_account_journal_period_manager,account.journal.period.manager,account.model_account_journal_period,base.group_hr_manager,1,1,1,1 -hr.access_account_journal_view_hruser,account.journal.view hruser,account.model_account_journal_view,base.group_hr_user,1,0,0,0 -hr.access_account_journal_column_hruser,account.journal.column hruser,account.model_account_journal_column,base.group_hr_user,1,0,0,0 diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml index 1914d30ec05..aba6dd36538 100644 --- a/addons/hr_holidays/hr_holidays_view.xml +++ b/addons/hr_holidays/hr_holidays_view.xml @@ -3,7 +3,7 @@\n" -" 幸运!你的收件箱是空的.\n" +" 你的收件箱是空的。\n" "
\n" -" 你的收件箱包含了你的私人消息或者发给你的邮件 ,包括你关注的文档或者个人的信息。\n" +" 你的收件箱包含了你的私人消息或者发给你的邮件 ,包括你关注的单据或者个人的信息。\n" "
\n" " " diff --git a/addons/mail/mail_group_view.xml b/addons/mail/mail_group_view.xml index ee0146aaeb1..fba192b18bc 100644 --- a/addons/mail/mail_group_view.xml +++ b/addons/mail/mail_group_view.xml @@ -105,7 +105,7 @@
No private message.
@@ -64,7 +65,8 @@
No todo.
@@ -84,7 +86,8 @@
}
No message found and no message sent yet.
diff --git a/addons/mail/static/src/css/mail.css b/addons/mail/static/src/css/mail.css
index 94a5c2d1f41..638d016921b 100644
--- a/addons/mail/static/src/css/mail.css
+++ b/addons/mail/static/src/css/mail.css
@@ -48,7 +48,7 @@
.openerp .oe_mail .oe_msg{
position: relative;
- background: #F4F5FA;
+ background: #EDEDF6;
border-radius: 2px;
margin-bottom: 2px;
min-height: 42px;
@@ -70,7 +70,7 @@
margin-left: 40px;
}
.openerp .oe_mail .oe_msg .oe_msg_footer{
- padding-left: 4px;
+ margin-left: 4px;
padding-top: 3px;
overflow: hidden;
margin-bottom: 4px;
@@ -94,6 +94,10 @@
.openerp .oe_mail .oe_msg .oe_msg_content .oe_msg_body p {
margin-bottom: 0px;
}
+.openerp .oe_mail .oe_msg .oe_msg_content .oe_msg_body * {
+ text-overflow:ellipsis;
+ word-wrap: break-word;
+}
/* a) Indented Messages */
@@ -380,6 +384,10 @@
line-height: 12px;
vertical-align: middle;
}
+.openerp .oe_mail .oe_msg_footer button.oe_post{
+ position: relative;
+ z-index: 2;
+}
.openerp .oe_mail .oe_msg_footer button.oe_attach{
width: 24px;
overflow: hidden;
@@ -387,8 +395,9 @@
}
.openerp .oe_mail .oe_msg_footer button.oe_attach .oe_e{
position: relative;
- top: -1px;
- left: -9px;
+ top: -4px;
+ margin-left: -9px;
+ vertical-align: middle;
filter:none;
}
.openerp .oe_mail .oe_hidden_input_file, .openerp .oe_mail .oe_hidden_input_file form{
@@ -402,8 +411,9 @@
}
.openerp .oe_mail .oe_msg_footer button.oe_full .oe_e{
position: relative;
- top: -1px;
- left: -9px;
+ top: -4px;
+ margin-left: -9px;
+ vertical-align: middle;
filter:none;
}
.openerp .oe_mail button.oe_attach, .openerp .oe_mail button.oe_full{
@@ -418,13 +428,17 @@
color: #7C7BAD;
margin-left: -3px;
}
+.openerp .oe_mail .oe_msg_footer .oe_attachment_file{
+ cursor: pointer;
+}
.openerp .oe_mail .oe_msg_footer .oe_attachment_file .oe_form_binary_file{
display: inline-block;
- margin-left: -47px;
- height: 28px;
- width: 52px;
- margin-top: -6px;
+ margin-left: -122px;
+ height: 22px;
+ width: 128px;
+ margin-top: -4px;
filter:none;
+ cursor: pointer;
}
.openerp .oe_mail .oe_mail_list_recipients{
font-size: 12px;
diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js
index 44bb4e9ae09..a5beaac229f 100644
--- a/addons/mail/static/src/js/mail.js
+++ b/addons/mail/static/src/js/mail.js
@@ -204,7 +204,7 @@ openerp.mail = function (session) {
this.subject = datasets.subject || false,
this.name = datasets.name || false,
this.record_name = datasets.record_name || false,
- this.body = datasets.body || false,
+ this.body = datasets.body || '',
this.vote_nb = datasets.vote_nb || 0,
this.has_voted = datasets.has_voted || false,
this.is_favorite = datasets.is_favorite || false,
@@ -508,7 +508,6 @@ openerp.mail = function (session) {
res_model: 'mail.compose.message',
view_mode: 'form',
view_type: 'form',
- action_from: 'mail.ThreadComposeMessage',
views: [[false, 'form']],
target: 'new',
context: context,
@@ -574,12 +573,7 @@ openerp.mail = function (session) {
var message = thread.create_message_object( data[0] );
// insert the message on dom
thread.insert_message( message, root ? undefined : self.$el, root );
- if (thread.parent_message) {
- self.$el.remove();
- self.parent_thread.compose_message = null;
- } else {
- self.on_cancel();
- }
+ self.on_cancel();
});
//session.web.unblockUI();
});
@@ -591,11 +585,11 @@ openerp.mail = function (session) {
*/
on_compose_expandable: function (event) {
- if (!this.stay_open && (!this.show_composer || !this.$('textarea:not(.oe_compact)').val().match(/\S+/))) {
+ if ((!this.stay_open || (event && event.type == 'click')) && (!this.show_composer || !this.$('textarea:not(.oe_compact)').val().match(/\S+/))) {
this.show_composer = !this.show_composer || this.stay_open;
this.reinit();
}
- if (!this.stay_open && this.show_composer) {
+ if (!this.stay_open && this.show_composer && (!event || event.type != 'blur')) {
this.$('textarea:not(.oe_compact):first').focus();
}
return true;
@@ -725,7 +719,7 @@ openerp.mail = function (session) {
on_message_reply:function (event) {
event.stopPropagation();
this.create_thread();
- this.thread.on_compose_message();
+ this.thread.on_compose_message(event);
return false;
},
@@ -833,9 +827,10 @@ openerp.mail = function (session) {
return false;
},
- /*The selected thread and all childs (messages/thread) became read
- * @param {object} mouse envent
- */
+ /* Set the selected thread and all childs as read or unread, based on
+ * read parameter.
+ * @param {boolean} read_value
+ */
on_message_read_unread: function (read_value) {
var self = this;
var messages = [this].concat(this.get_childs());
@@ -958,7 +953,7 @@ openerp.mail = function (session) {
this.options = options.options;
this.options.root_thread = (options.options.root_thread != undefined ? options.options.root_thread : this);
- this.options.show_compose_message = this.options.show_compose_message && (this.options.display_indented_thread >= this.thread_level || !this.thread_level);
+ this.options.show_compose_message = this.options.show_compose_message && !this.thread_level;
// record options and data
this.parent_message= parent.thread!= undefined ? parent : false ;
@@ -995,7 +990,7 @@ openerp.mail = function (session) {
// add message composition form view
if (!this.compose_message) {
this.compose_message = new mail.ThreadComposeMessage(this, this, {
- 'context': this.context,
+ 'context': this.options.compose_as_todo && !this.thread_level ? _.extend(this.context, { 'default_favorite_user_ids': [this.session.uid] }) : this.context,
'options': this.options,
});
if (!this.thread_level || this.thread_level > this.options.display_indented_thread) {
@@ -1136,9 +1131,9 @@ openerp.mail = function (session) {
* Call the on_compose_expandable method to allow the user to write his message.
* (Is call when a user click on "Reply" button)
*/
- on_compose_message: function () {
+ on_compose_message: function (event) {
this.instantiate_compose_message();
- this.compose_message.on_compose_expandable();
+ this.compose_message.on_compose_expandable(event);
return false;
},
@@ -1241,6 +1236,7 @@ openerp.mail = function (session) {
} else {
message.appendTo(self.$el);
}
+ message.$el.hide().fadeIn(500);
return message
},
@@ -1262,6 +1258,9 @@ openerp.mail = function (session) {
// insert the message on dom
thread.insert_message( message, typeof dom_insert_after == 'object' ? dom_insert_after : false);
});
+ if (!records.length && this.options.root_thread == this) {
+ this.no_message();
+ }
},
/**
@@ -1291,8 +1290,10 @@ openerp.mail = function (session) {
var messages = _.sortBy( this.messages, function (val) { return val.id; });
var it = _.indexOf( messages, message );
- var msg_up = messages[it-1];
- var msg_down = messages[it+1];
+ var msg_up = message.$el.prev('.oe_msg');
+ var msg_down = message.$el.next('.oe_msg');
+ var msg_up = msg_up.hasClass('oe_msg_expandable') ? _.find( this.messages, function (val) { return val.$el[0] == msg_up[0]; }) : false;
+ var msg_down = msg_down.hasClass('oe_msg_expandable') ? _.find( this.messages, function (val) { return val.$el[0] == msg_down[0]; }) : false;
var message_dom = [ ["id", "=", message.id] ];
@@ -1397,6 +1398,8 @@ openerp.mail = function (session) {
*... @param {Array} [message_ids] List of ids to fetch by the root thread.
* When you use this option, the domain is not used for the fetch root.
* @param {String} [no_message] Message to display when there are no message
+ * @param {Boolean} [show_link_partner] Display partner (authors, followers...) on link or not
+ * @param {Boolean} [compose_as_todo] The root composer mark automatically the message as todo
*/
init: function (parent, action) {
this._super(parent, action);
@@ -1414,8 +1417,10 @@ openerp.mail = function (session) {
'show_compose_message' : false,
'show_compact_message' : false,
'compose_placeholder': false,
+ 'show_link_partner': true,
'view_inbox': false,
'message_ids': undefined,
+ 'compose_as_todo' : false,
}, this.action.params);
this.action.params.help = this.action.help || false;
@@ -1441,7 +1446,6 @@ openerp.mail = function (session) {
});
this.thread.appendTo( this.$el );
- this.thread.no_message();
if (this.action.params.show_compose_message) {
this.thread.instantiate_compose_message();
@@ -1632,7 +1636,7 @@ openerp.mail = function (session) {
*/
do_searchview_search: function (domains, contexts, groupbys) {
var self = this;
- this.rpc('/web/session/eval_domain_and_context', {
+ session.web.pyeval.eval_domains_and_contexts({
domains: domains || [],
contexts: contexts || [],
group_by_seq: groupbys || []
diff --git a/addons/mail/static/src/xml/mail.xml b/addons/mail/static/src/xml/mail.xml
index bb787c9a21b..cca908a5d98 100644
--- a/addons/mail/static/src/xml/mail.xml
+++ b/addons/mail/static/src/xml/mail.xml
@@ -34,14 +34,14 @@
\n"
+" Нажмите для создания запроса на закупку.\n"
+" \n"
+" Запрос на закупку это шаг перед запросом цен.\n"
+" В запросе на закупку (или тендере) вы вводите необходимые\n"
+" товары и запускаете создание запросов цен у поставщиков.\n"
+" После переговоров и рассмотрения всех предложений\n"
+" вы можете утвердить одни и отменить другие.\n"
+" \n"
+" 单击开始请购单流程。 \n"
+" \n"
+" 请购单是询价单的前面一步,在请购单(采购招标)\n"
+" 中,你能记录你要购买的产品,并产生给供应商的\n"
+" 询价单。谈判后,一旦你复审了所有供应商的 出\n"
+" 价,你能很准一部分,并取消其他的。\n"
+" \n"
+" 单击定义一个新的销售商店。\n"
+" \n"
+" 每个报价单或者销售订单必须关联到一个\n"
+" 商店。为每次特地销售,商店也定义了产\n"
+" 品将被从哪个仓库发货。\n"
+" \n"
+" 单击 为这个客户创建报价单或者订单。\n"
+" \n"
+" OpenERP 将帮你有效地处理完整的销售流程:\n"
+" 报价,销售订单,发运,开票已经支付.\n"
+" \n"
+" 社交特性帮你组织每个订单的讨论,并允许你客户跟踪订单的进度。\n"
+" \n"
+" 单据创建报价单,销售的第一步。\n"
+" \n"
+" OpenERP 将帮你有效地处理完整的销售流程:\n"
+" 报价,销售订单,发运,开票已经支付.\n"
+" \n"
+" 社交特性帮你组织每个订单的讨论,并允许你客户跟踪订单的进度。.\n"
+"
+
+
+
+
+
+
-
+
-
-
-
-