[MERGE]with parent
bzr revid: dusan@ubuntu-20121201233429-rbar3myou3kladd8
This commit is contained in:
commit
23297c411f
|
@ -524,11 +524,11 @@ class account_invoice(osv.osv):
|
|||
return result
|
||||
|
||||
def onchange_payment_term_date_invoice(self, cr, uid, ids, payment_term_id, date_invoice):
|
||||
res = {}
|
||||
if not payment_term_id:
|
||||
return res
|
||||
res = {}
|
||||
if not date_invoice:
|
||||
date_invoice = time.strftime('%Y-%m-%d')
|
||||
if not payment_term_id:
|
||||
return {'value':{'date_due': date_invoice}} #To make sure the invoice has a due date when no payment term
|
||||
pterm_list = self.pool.get('account.payment.term').compute(cr, uid, payment_term_id, value=1, date_ref=date_invoice)
|
||||
if pterm_list:
|
||||
pterm_list = [line[0] for line in pterm_list]
|
||||
|
|
|
@ -475,7 +475,8 @@ class account_move_line(osv.osv):
|
|||
type='many2one', relation='account.invoice', fnct_search=_invoice_search),
|
||||
'account_tax_id':fields.many2one('account.tax', 'Tax'),
|
||||
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account'),
|
||||
'company_id': fields.related('account_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
|
||||
'company_id': fields.related('account_id', 'company_id', type='many2one', relation='res.company',
|
||||
string='Company', store=True, readonly=True)
|
||||
}
|
||||
|
||||
def _get_date(self, cr, uid, context=None):
|
||||
|
|
|
@ -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-10-12 23:18+0000\n"
|
||||
"Last-Translator: Ferdinand @ Camptocamp <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-11-30 10:05+0000\n"
|
||||
"Last-Translator: Felix Schubert <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-25 05:54+0000\n"
|
||||
"X-Generator: Launchpad (build 16293)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
||||
|
@ -2755,7 +2755,7 @@ msgid ""
|
|||
"In order to delete a bank statement, you must first cancel it to delete "
|
||||
"related journal items."
|
||||
msgstr ""
|
||||
"Um einen Bankauszug zu löschen müssen Sie diesen zuerst Stornieren um die "
|
||||
"Um einen Bankauszug zu löschen müssen Sie diesen zuerst Stornieren, um die "
|
||||
"dazugehörigen Buchungen zu löschen."
|
||||
|
||||
#. module: account
|
||||
|
@ -3834,7 +3834,7 @@ msgstr "Zeige Details"
|
|||
#. module: account
|
||||
#: report:account.overdue:0
|
||||
msgid "VAT:"
|
||||
msgstr "UID:"
|
||||
msgstr "USt-IdNr."
|
||||
|
||||
#. module: account
|
||||
#: constraint:account.invoice:0
|
||||
|
@ -8437,7 +8437,7 @@ msgstr "Errechneter Saldo"
|
|||
#: code:addons/account/static/src/js/account_move_reconciliation.js:88
|
||||
#, python-format
|
||||
msgid "You must choose at least one record."
|
||||
msgstr ""
|
||||
msgstr "Sie müssen mindestens einen Datensatz auswählen"
|
||||
|
||||
#. module: account
|
||||
#: field:account.account,parent_id:0
|
||||
|
|
|
@ -7,13 +7,13 @@ 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-29 15:44+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 08:25+0000\n"
|
||||
"Last-Translator: Numérigraphe <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:07+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: account
|
||||
|
@ -108,7 +108,7 @@ msgstr ""
|
|||
#. module: account
|
||||
#: view:account.move.reconcile:0
|
||||
msgid "Journal Entry Reconcile"
|
||||
msgstr "Lettrage des écritures comptables"
|
||||
msgstr "Lettrage d'écritures comptables"
|
||||
|
||||
#. module: account
|
||||
#: view:account.account:0
|
||||
|
@ -1914,7 +1914,7 @@ msgstr "Facture"
|
|||
#. module: account
|
||||
#: field:account.move,balance:0
|
||||
msgid "balance"
|
||||
msgstr ""
|
||||
msgstr "solde"
|
||||
|
||||
#. module: account
|
||||
#: model:process.node,note:account.process_node_analytic0
|
||||
|
@ -2411,7 +2411,7 @@ msgstr "Merci de vérifier le compte défini dans le journal"
|
|||
#. module: account
|
||||
#: selection:account.entries.report,move_line_state:0
|
||||
msgid "Valid"
|
||||
msgstr "Valide"
|
||||
msgstr "Equilibrée"
|
||||
|
||||
#. module: account
|
||||
#: field:account.bank.statement,message_follower_ids:0
|
||||
|
@ -2702,7 +2702,7 @@ msgstr "Le numéro du RIB et/ou IBAN n'est pas correct."
|
|||
#. module: account
|
||||
#: help:account.config.settings,default_sale_tax:0
|
||||
msgid "This sale tax will be assigned by default on new products."
|
||||
msgstr ""
|
||||
msgstr "Cette taxe de vente sera attribuée par défaut aux nouveaux articles"
|
||||
|
||||
#. module: account
|
||||
#: report:account.general.ledger_landscape:0
|
||||
|
@ -3381,7 +3381,7 @@ msgstr "Août"
|
|||
#. module: account
|
||||
#: field:accounting.report,debit_credit:0
|
||||
msgid "Display Debit/Credit Columns"
|
||||
msgstr ""
|
||||
msgstr "Afficher les colonnes de débit/crédit"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.entries.report,month:0
|
||||
|
@ -4419,7 +4419,7 @@ msgstr "Nom"
|
|||
#: code:addons/account/installer.py:94
|
||||
#, python-format
|
||||
msgid "No unconfigured company !"
|
||||
msgstr ""
|
||||
msgstr "Pas de société non configurée !"
|
||||
|
||||
#. module: account
|
||||
#: field:res.company,expects_chart_of_accounts:0
|
||||
|
@ -5255,7 +5255,7 @@ msgstr "Facture "
|
|||
#. module: account
|
||||
#: field:account.chart.template,property_account_income:0
|
||||
msgid "Income Account on Product Template"
|
||||
msgstr "Modèle d'imputation des charges"
|
||||
msgstr "Compte de revenu sur les modèles d'articles"
|
||||
|
||||
#. module: account
|
||||
#: help:account.journal.period,state:0
|
||||
|
@ -6853,7 +6853,7 @@ msgstr "Exercice comptable"
|
|||
#. module: account
|
||||
#: view:account.move.reconcile:0
|
||||
msgid "Partial Reconcile Entries"
|
||||
msgstr "Lettrage partiel d'écritures"
|
||||
msgstr "Lettrage partiel d'écriture"
|
||||
|
||||
#. module: account
|
||||
#: view:account.aged.trial.balance:0
|
||||
|
@ -7275,7 +7275,7 @@ msgstr "Catégorie de compte de dépenses"
|
|||
#. module: account
|
||||
#: sql_constraint:account.tax:0
|
||||
msgid "Tax Name must be unique per company!"
|
||||
msgstr ""
|
||||
msgstr "Le nom d'une taxe doit être unique par société !"
|
||||
|
||||
#. module: account
|
||||
#: view:account.bank.statement:0
|
||||
|
@ -7761,6 +7761,7 @@ msgstr "Document d'origine"
|
|||
#, python-format
|
||||
msgid "There is no expense account defined for this product: \"%s\" (id:%d)."
|
||||
msgstr ""
|
||||
"Aucun compte de dépense n'a été défini pour cet article : \"%s\" ( id. : %d)."
|
||||
|
||||
#. module: account
|
||||
#: constraint:account.account:0
|
||||
|
@ -11120,6 +11121,8 @@ msgstr "Manuellement"
|
|||
msgid ""
|
||||
"This is a field only used for internal purpose and shouldn't be displayed"
|
||||
msgstr ""
|
||||
"Ceci est un champ uniquement utilisé pour un usage interne et ne devrait pas "
|
||||
"être affiché"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.entries.report,month:0
|
||||
|
@ -11140,6 +11143,7 @@ msgstr "Grouper les factures par mois"
|
|||
#, python-format
|
||||
msgid "There is no income account defined for this product: \"%s\" (id:%d)."
|
||||
msgstr ""
|
||||
"Aucun compte de revenu n'a été défini pour cet article : \"%s\" ( id. : %d)."
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_aged_receivable_graph
|
||||
|
@ -11202,6 +11206,8 @@ msgid ""
|
|||
"The selected unit of measure is not compatible with the unit of measure of "
|
||||
"the product."
|
||||
msgstr ""
|
||||
"L'unité de mesure choisie n'est pas compatible avec l'unité de mesure de "
|
||||
"l'article."
|
||||
|
||||
#. module: account
|
||||
#: view:account.fiscal.position:0
|
||||
|
|
|
@ -7,13 +7,13 @@ 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-29 23:20+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 23:45+0000\n"
|
||||
"Last-Translator: Sergio Corato <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:07+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: account
|
||||
|
@ -152,6 +152,22 @@ msgid ""
|
|||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Premere per selezionare la lista di colonne da visualizzare "
|
||||
"per questo tipo di sezionale.\n"
|
||||
" </p><p>\n"
|
||||
" La Vista Sezionale determina il modo con cui puoi registrare "
|
||||
"voci\n"
|
||||
" nel sezionale. Selezionare i campi che devono apparire nel "
|
||||
"sezionale\n"
|
||||
" e determinale la sequenza con la quale devono apparire.\n"
|
||||
" </p><p>\n"
|
||||
" Nel form di definizione del sezionale, è possibile "
|
||||
"selezionalre la vista\n"
|
||||
" da usare per visualizzare le voci correlate con questo "
|
||||
"sezionale.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: account
|
||||
#: help:account.payment.term,active:0
|
||||
|
@ -560,7 +576,7 @@ msgstr "L'importo espresso in un'altra valuta opzionale"
|
|||
#. module: account
|
||||
#: view:account.journal:0
|
||||
msgid "Available Coins"
|
||||
msgstr ""
|
||||
msgstr "Monete Disponibili"
|
||||
|
||||
#. module: account
|
||||
#: field:accounting.report,enable_filter:0
|
||||
|
@ -615,7 +631,7 @@ msgstr "Riferimento gerarchico superiore"
|
|||
#. module: account
|
||||
#: help:account.invoice.line,sequence:0
|
||||
msgid "Gives the sequence of this line when displaying the invoice."
|
||||
msgstr ""
|
||||
msgstr "Assegna la sequenza di questa linea quando visualizza la fattura."
|
||||
|
||||
#. module: account
|
||||
#: field:account.bank.statement,account_id:0
|
||||
|
@ -753,12 +769,12 @@ msgstr "La sequenza principale deve essere diversa dalla attuale!"
|
|||
#: code:addons/account/wizard/account_change_currency.py:70
|
||||
#, python-format
|
||||
msgid "Current currency is not configured properly."
|
||||
msgstr ""
|
||||
msgstr "La valuta corrente non è configurata correttamente."
|
||||
|
||||
#. module: account
|
||||
#: field:account.journal,profit_account_id:0
|
||||
msgid "Profit Account"
|
||||
msgstr ""
|
||||
msgstr "Conto Profitti"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account_move_line.py:1249
|
||||
|
@ -770,7 +786,7 @@ msgstr ""
|
|||
#. module: account
|
||||
#: model:account.journal.view,name:account.account_journal_bank_view_multi
|
||||
msgid "Bank/Cash Journal (Multi-Currency) View"
|
||||
msgstr ""
|
||||
msgstr "Vista Sezionale Banca/Cassa (Multi-Valuta)"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_report_account_type_sales
|
||||
|
@ -785,12 +801,16 @@ msgid ""
|
|||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p>\n"
|
||||
" Nessuna voce sezionale trovata.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account.py:1606
|
||||
#, python-format
|
||||
msgid "Cannot create move with currency different from .."
|
||||
msgstr ""
|
||||
msgstr "Non è possibile creare movimenti con valute differenti da .."
|
||||
|
||||
#. module: account
|
||||
#: model:email.template,report_name:account.email_template_edi_invoice
|
||||
|
@ -798,6 +818,8 @@ msgid ""
|
|||
"Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' "
|
||||
"and 'draft' or ''}"
|
||||
msgstr ""
|
||||
"Fattura_${(object.number or '').replace('/','_')}_${object.state == 'draft' "
|
||||
"and 'draft' or ''}"
|
||||
|
||||
#. module: account
|
||||
#: view:account.period:0
|
||||
|
@ -825,6 +847,8 @@ msgstr "Periodo del Sezionale"
|
|||
msgid ""
|
||||
"You cannot create more than one move per period on a centralized journal."
|
||||
msgstr ""
|
||||
"Non è possibile creare più di una riga per periodo in un sezionale "
|
||||
"centralizzato."
|
||||
|
||||
#. module: account
|
||||
#: help:account.tax,account_analytic_paid_id:0
|
||||
|
@ -833,6 +857,9 @@ msgid ""
|
|||
"lines for refunds. Leave empty if you don't want to use an analytic account "
|
||||
"on the invoice tax lines by default."
|
||||
msgstr ""
|
||||
"Imposta il conto analitico che sarà usato di default sulle righe imposta "
|
||||
"della fattura per note di credito. Lasciare vuoto per non usare un conto "
|
||||
"analitico di default sulle righe imposta della fattura."
|
||||
|
||||
#. module: account
|
||||
#: view:account.account:0
|
||||
|
@ -848,7 +875,7 @@ msgstr "Conti di Credito"
|
|||
#. module: account
|
||||
#: view:account.config.settings:0
|
||||
msgid "Configure your company bank accounts"
|
||||
msgstr ""
|
||||
msgstr "Configura i conti bancari per la tua azienda"
|
||||
|
||||
#. module: account
|
||||
#: constraint:account.move.line:0
|
||||
|
@ -886,6 +913,9 @@ msgid ""
|
|||
"Cannot %s invoice which is already reconciled, invoice should be "
|
||||
"unreconciled first. You can only refund this invoice."
|
||||
msgstr ""
|
||||
"Non è possibile %s fattura che è già riconciliata, la fattura dovrebbe "
|
||||
"essere prima riconciliata. E' possibile solo emettere nota di credito per "
|
||||
"questa fattura."
|
||||
|
||||
#. module: account
|
||||
#: selection:account.financial.report,display_detail:0
|
||||
|
@ -963,7 +993,7 @@ msgstr "Fatture e Note di Credito Fornitori"
|
|||
#: code:addons/account/account_move_line.py:833
|
||||
#, python-format
|
||||
msgid "Entry is already reconciled."
|
||||
msgstr ""
|
||||
msgstr "La registrazione è già riconciliata"
|
||||
|
||||
#. module: account
|
||||
#: view:account.move.line.unreconcile.select:0
|
||||
|
@ -986,7 +1016,7 @@ msgstr "Giornale conti analitici"
|
|||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
msgid "Send by Email"
|
||||
msgstr ""
|
||||
msgstr "Invia per Email"
|
||||
|
||||
#. module: account
|
||||
#: help:account.central.journal,amount_currency:0
|
||||
|
@ -997,6 +1027,8 @@ msgid ""
|
|||
"Print Report with the currency column if the currency differs from the "
|
||||
"company currency."
|
||||
msgstr ""
|
||||
"Stampa il Report con la colonna della valuta se la valuta è diversa da "
|
||||
"quella aziendale."
|
||||
|
||||
#. module: account
|
||||
#: report:account.analytic.account.quantity_cost_ledger:0
|
||||
|
@ -1006,12 +1038,12 @@ msgstr "Nome G.C/Movimento"
|
|||
#. module: account
|
||||
#: view:account.account:0
|
||||
msgid "Account Code and Name"
|
||||
msgstr ""
|
||||
msgstr "Codice e Nome Conto"
|
||||
|
||||
#. module: account
|
||||
#: model:mail.message.subtype,name:account.mt_invoice_new
|
||||
msgid "created"
|
||||
msgstr ""
|
||||
msgstr "creato"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.entries.report,month:0
|
||||
|
@ -1075,7 +1107,7 @@ msgstr "Dovuto"
|
|||
#. module: account
|
||||
#: field:account.config.settings,purchase_journal_id:0
|
||||
msgid "Purchase journal"
|
||||
msgstr ""
|
||||
msgstr "Sezionale Acquisti"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account.py:1374
|
||||
|
@ -1084,6 +1116,8 @@ msgid ""
|
|||
"You cannot validate this journal entry because account \"%s\" does not "
|
||||
"belong to chart of accounts \"%s\"."
|
||||
msgstr ""
|
||||
"Non è possibile validate questa registrazione perchè il conto \"%s\" non "
|
||||
"appartiene al piano dei conti \"%s\"."
|
||||
|
||||
#. module: account
|
||||
#: view:validate.account.move:0
|
||||
|
@ -1101,7 +1135,7 @@ msgstr "Importo Totale"
|
|||
#. module: account
|
||||
#: help:account.invoice,supplier_invoice_number:0
|
||||
msgid "The reference of this invoice as provided by the supplier."
|
||||
msgstr ""
|
||||
msgstr "Il numero della fattura come assegnato dal fornitore."
|
||||
|
||||
#. module: account
|
||||
#: selection:account.account,type:0
|
||||
|
@ -1190,7 +1224,7 @@ msgstr "Codice"
|
|||
#. module: account
|
||||
#: view:account.config.settings:0
|
||||
msgid "Features"
|
||||
msgstr ""
|
||||
msgstr "Caratteristiche"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account.py:2323
|
||||
|
@ -1235,7 +1269,7 @@ msgstr "Nome del conto"
|
|||
#. module: account
|
||||
#: field:account.journal,with_last_closing_balance:0
|
||||
msgid "Opening With Last Closing Balance"
|
||||
msgstr ""
|
||||
msgstr "Apertura Con Ultimo Bilancio di Chiusura"
|
||||
|
||||
#. module: account
|
||||
#: view:account.state.open:0
|
||||
|
@ -1279,12 +1313,12 @@ msgstr ""
|
|||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
msgid "Refund "
|
||||
msgstr ""
|
||||
msgstr "Rimborso "
|
||||
|
||||
#. module: account
|
||||
#: help:account.config.settings,company_footer:0
|
||||
msgid "Bank accounts as printed in the footer of each printed document"
|
||||
msgstr ""
|
||||
msgstr "Conti bancari come stampati nel piede di ogni documento stampato"
|
||||
|
||||
#. module: account
|
||||
#: view:account.tax:0
|
||||
|
@ -1306,7 +1340,7 @@ msgstr "Movimenti Registratore di Cassa"
|
|||
#. module: account
|
||||
#: field:account.config.settings,sale_refund_journal_id:0
|
||||
msgid "Sale refund journal"
|
||||
msgstr ""
|
||||
msgstr "Sezionale Note di Credito"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,help:account.action_view_bank_statement_tree
|
||||
|
@ -1342,7 +1376,7 @@ msgstr "Inizio del periodo"
|
|||
#. module: account
|
||||
#: view:account.tax:0
|
||||
msgid "Refunds"
|
||||
msgstr ""
|
||||
msgstr "Note di Credito"
|
||||
|
||||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
|
||||
|
@ -1412,7 +1446,7 @@ msgstr "Tasso di cambio in uscita"
|
|||
#. module: account
|
||||
#: field:account.config.settings,chart_template_id:0
|
||||
msgid "Template"
|
||||
msgstr ""
|
||||
msgstr "Modello"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.analytic.journal,type:0
|
||||
|
@ -1425,6 +1459,8 @@ msgid ""
|
|||
"Set the account that will be set by default on invoice tax lines for "
|
||||
"refunds. Leave empty to use the expense account."
|
||||
msgstr ""
|
||||
"Imposta il conto che sarà usato di default sulle righe imposta della fattura "
|
||||
"per note di credito. Lasciare vuoto per usare il conto di costo."
|
||||
|
||||
#. module: account
|
||||
#: field:account.move.line.reconcile,trans_nbr:0
|
||||
|
@ -1511,7 +1547,7 @@ msgstr "Livello"
|
|||
#: code:addons/account/wizard/account_change_currency.py:38
|
||||
#, python-format
|
||||
msgid "You can only change currency for Draft Invoice."
|
||||
msgstr ""
|
||||
msgstr "E' possibile cambiare solo la vauta per le Fatture in stato Bozza"
|
||||
|
||||
#. module: account
|
||||
#: report:account.invoice:0
|
||||
|
@ -1537,7 +1573,7 @@ msgstr "Seleziona un periodo di inizio e fine"
|
|||
#: model:account.financial.report,name:account.account_financial_report_profitandloss0
|
||||
#: model:ir.actions.act_window,name:account.action_account_report_pl
|
||||
msgid "Profit and Loss"
|
||||
msgstr "Utili e Perdite"
|
||||
msgstr "Conto Economico"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_account_template
|
||||
|
@ -1582,12 +1618,12 @@ msgstr "Opzioni Report"
|
|||
#. module: account
|
||||
#: field:account.fiscalyear.close.state,fy_id:0
|
||||
msgid "Fiscal Year to Close"
|
||||
msgstr ""
|
||||
msgstr "Anno Fiscale da Chiudere"
|
||||
|
||||
#. module: account
|
||||
#: field:account.config.settings,sale_sequence_prefix:0
|
||||
msgid "Invoice sequence"
|
||||
msgstr ""
|
||||
msgstr "Sequenza fattura"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_entries_report
|
||||
|
@ -1606,11 +1642,13 @@ msgid ""
|
|||
"And after getting confirmation from the bank it will be in 'Confirmed' "
|
||||
"status."
|
||||
msgstr ""
|
||||
"Quando sono create le nuove registrazioni sono in stato 'Bozza'.\n"
|
||||
"Dopo la conferma sono nello stato 'Confermato'."
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice.report,state:0
|
||||
msgid "Invoice Status"
|
||||
msgstr ""
|
||||
msgstr "Stato Fattura"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.report:0
|
||||
|
@ -1643,6 +1681,8 @@ msgid ""
|
|||
"There is no default debit account defined \n"
|
||||
"on journal \"%s\"."
|
||||
msgstr ""
|
||||
"Non c'è un conto di debito di default definito \n"
|
||||
"nel sezionale \"%s\"."
|
||||
|
||||
#. module: account
|
||||
#: view:account.tax:0
|
||||
|
@ -1698,7 +1738,7 @@ msgstr "Salta lo stato 'Bozza' per le registrazioni manuali"
|
|||
#: code:addons/account/wizard/account_report_common.py:159
|
||||
#, python-format
|
||||
msgid "Not implemented."
|
||||
msgstr ""
|
||||
msgstr "Non implementato."
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.refund:0
|
||||
|
@ -1708,7 +1748,7 @@ msgstr "Nota di credito"
|
|||
#. module: account
|
||||
#: view:account.config.settings:0
|
||||
msgid "eInvoicing & Payments"
|
||||
msgstr ""
|
||||
msgstr "e-fatturazione & Pagamenti"
|
||||
|
||||
#. module: account
|
||||
#: view:account.analytic.cost.ledger.journal.report:0
|
||||
|
@ -1743,7 +1783,7 @@ msgstr "Note di Credito"
|
|||
#. module: account
|
||||
#: field:account.config.settings,company_footer:0
|
||||
msgid "Bank accounts footer preview"
|
||||
msgstr ""
|
||||
msgstr "Anteprima pie' di pagina conti bancari"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.account,type:0
|
||||
|
@ -1790,7 +1830,7 @@ msgstr "Imponibile"
|
|||
#. module: account
|
||||
#: view:account.journal:0
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
msgstr "Impostazioni avanzate"
|
||||
|
||||
#. module: account
|
||||
#: view:account.bank.statement:0
|
||||
|
@ -1889,7 +1929,7 @@ msgstr "Sequenza per anni fiscali"
|
|||
#. module: account
|
||||
#: field:account.config.settings,group_analytic_accounting:0
|
||||
msgid "Analytic accounting"
|
||||
msgstr ""
|
||||
msgstr "Contabilità analitica"
|
||||
|
||||
#. module: account
|
||||
#: report:account.overdue:0
|
||||
|
@ -1933,12 +1973,14 @@ msgid ""
|
|||
"The journal must have centralized counterpart without the Skipping draft "
|
||||
"state option checked."
|
||||
msgstr ""
|
||||
"Il sezionale deve avere contropartite centralizzate senza l'opzione Salta lo "
|
||||
"stato bozza attivata."
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account_move_line.py:836
|
||||
#, python-format
|
||||
msgid "Some entries are already reconciled."
|
||||
msgstr ""
|
||||
msgstr "Alcune registrazioni sono già riconciliate."
|
||||
|
||||
#. module: account
|
||||
#: model:email.template,body_html:account.email_template_edi_invoice
|
||||
|
@ -2069,12 +2111,12 @@ msgstr "Conti in sospeso"
|
|||
#. module: account
|
||||
#: view:account.open.closed.fiscalyear:0
|
||||
msgid "Cancel Fiscal Year Opening Entries"
|
||||
msgstr ""
|
||||
msgstr "Annulla Registrazioni Apertura Anno Fiscale"
|
||||
|
||||
#. module: account
|
||||
#: model:account.journal.view,name:account.account_journal_bank_view
|
||||
msgid "Bank/Cash Journal View"
|
||||
msgstr ""
|
||||
msgstr "Vista Sezionale Banca/Cassa"
|
||||
|
||||
#. module: account
|
||||
#: report:account.journal.period.print.sale.purchase:0
|
||||
|
@ -2104,12 +2146,12 @@ msgstr "Incassi & Pagamenti"
|
|||
#. module: account
|
||||
#: field:account.config.settings,module_account_payment:0
|
||||
msgid "Manage payment orders"
|
||||
msgstr ""
|
||||
msgstr "Gestione ordini di pagamento"
|
||||
|
||||
#. module: account
|
||||
#: view:account.period:0
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
msgstr "Durata"
|
||||
|
||||
#. module: account
|
||||
#: view:account.bank.statement:0
|
||||
|
@ -2153,7 +2195,7 @@ msgstr "Rif. cliente:"
|
|||
#: help:account.tax.template,ref_tax_code_id:0
|
||||
#: help:account.tax.template,tax_code_id:0
|
||||
msgid "Use this code for the tax declaration."
|
||||
msgstr ""
|
||||
msgstr "Usa questo codice per la dichiarazione imposte"
|
||||
|
||||
#. module: account
|
||||
#: help:account.period,special:0
|
||||
|
@ -2179,7 +2221,7 @@ msgstr "Importo credito"
|
|||
#: field:account.bank.statement,message_ids:0
|
||||
#: field:account.invoice,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
msgstr "Messaggi"
|
||||
|
||||
#. module: account
|
||||
#: view:account.vat.declaration:0
|
||||
|
@ -3434,7 +3476,7 @@ msgstr "Contabilità Generale"
|
|||
#. module: account
|
||||
#: model:ir.ui.menu,name:account.menu_account_report_pl
|
||||
msgid "Profit And Loss"
|
||||
msgstr "Profitto e perdita"
|
||||
msgstr "Conto Economico"
|
||||
|
||||
#. module: account
|
||||
#: view:account.fiscal.position:0
|
||||
|
@ -5198,7 +5240,7 @@ msgstr "Fattura "
|
|||
#. module: account
|
||||
#: field:account.chart.template,property_account_income:0
|
||||
msgid "Income Account on Product Template"
|
||||
msgstr "Conto entrate per il prodotto"
|
||||
msgstr "Conto ricavi per il prodotto"
|
||||
|
||||
#. module: account
|
||||
#: help:account.journal.period,state:0
|
||||
|
@ -6509,7 +6551,7 @@ msgstr ""
|
|||
#. module: account
|
||||
#: field:account.journal,loss_account_id:0
|
||||
msgid "Loss Account"
|
||||
msgstr ""
|
||||
msgstr "Conto Perdite"
|
||||
|
||||
#. module: account
|
||||
#: field:account.tax,account_collected_id:0
|
||||
|
@ -7347,7 +7389,7 @@ msgstr "Crea registrazione"
|
|||
#: code:addons/account/account.py:188
|
||||
#, python-format
|
||||
msgid "Profit & Loss (Expense account)"
|
||||
msgstr "Utili & Perdite (Conti Attivi)"
|
||||
msgstr "Conto Economico"
|
||||
|
||||
#. module: account
|
||||
#: field:account.bank.statement,total_entry_encoding:0
|
||||
|
@ -8281,8 +8323,8 @@ msgstr "Cancella lefatture scelte"
|
|||
msgid ""
|
||||
"This field is used to generate legal reports: profit and loss, balance sheet."
|
||||
msgstr ""
|
||||
"Questo campo è utilizzato per la generazione di scritture legali: Utili e "
|
||||
"Perdite, Bilancio."
|
||||
"Questo campo è utilizzato per la generazione di scritture legali: Conto "
|
||||
"economico, Stato patrimoniale."
|
||||
|
||||
#. module: account
|
||||
#: selection:account.entries.report,month:0
|
||||
|
@ -8466,7 +8508,7 @@ msgstr "Mastro"
|
|||
#: code:addons/account/account_cash_statement.py:292
|
||||
#, python-format
|
||||
msgid "Profit"
|
||||
msgstr ""
|
||||
msgstr "Utile"
|
||||
|
||||
#. module: account
|
||||
#: help:account.payment.term.line,days2:0
|
||||
|
@ -10335,7 +10377,7 @@ msgstr "Dalla contabilità analitica"
|
|||
#. module: account
|
||||
#: view:account.installer:0
|
||||
msgid "Configure your Fiscal Year"
|
||||
msgstr ""
|
||||
msgstr "Configura l'Anno Fiscale"
|
||||
|
||||
#. module: account
|
||||
#: field:account.period,name:0
|
||||
|
@ -10349,6 +10391,8 @@ msgid ""
|
|||
"Selected invoice(s) cannot be cancelled as they are already in 'Cancelled' "
|
||||
"or 'Done' state."
|
||||
msgstr ""
|
||||
"La/e fattura/e selezionate non possono essere eliminate perché sono già in "
|
||||
"stato 'Annullato' o 'Completato'."
|
||||
|
||||
#. module: account
|
||||
#: report:account.analytic.account.quantity_cost_ledger:0
|
||||
|
@ -10457,7 +10501,7 @@ msgstr "Avere"
|
|||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
msgid "Draft Invoice "
|
||||
msgstr ""
|
||||
msgstr "Bozza Fattura "
|
||||
|
||||
#. module: account
|
||||
#: selection:account.invoice.refund,filter_refund:0
|
||||
|
@ -10747,6 +10791,8 @@ msgstr "Stato"
|
|||
#: help:product.template,property_account_income:0
|
||||
msgid "This account will be used to value outgoing stock using sale price."
|
||||
msgstr ""
|
||||
"Questo conto sarà utilizzato per valutare gli stock in uscita usando il "
|
||||
"prezzo di vendita."
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice,check_total:0
|
||||
|
@ -11043,7 +11089,7 @@ msgstr "Conti di credito"
|
|||
#: code:addons/account/account_move_line.py:762
|
||||
#, python-format
|
||||
msgid "Already reconciled."
|
||||
msgstr ""
|
||||
msgstr "Già riconciliato."
|
||||
|
||||
#. module: account
|
||||
#: selection:account.model.line,date_maturity:0
|
||||
|
@ -11184,6 +11230,8 @@ msgid ""
|
|||
"The selected unit of measure is not compatible with the unit of measure of "
|
||||
"the product."
|
||||
msgstr ""
|
||||
"L'unità di misura selezionata non è compatibile con l'unita di misura del "
|
||||
"prodotto."
|
||||
|
||||
#. module: account
|
||||
#: view:account.fiscal.position:0
|
||||
|
@ -11225,7 +11273,7 @@ msgstr "Il conto di ricavo o di costo riguardante il prodotto selezionato."
|
|||
#. module: account
|
||||
#: view:account.config.settings:0
|
||||
msgid "Install more chart templates"
|
||||
msgstr ""
|
||||
msgstr "Installa altri piani dei conti"
|
||||
|
||||
#. module: account
|
||||
#: report:account.general.journal:0
|
||||
|
@ -11274,6 +11322,8 @@ msgid ""
|
|||
"You cannot remove/deactivate an account which is set on a customer or "
|
||||
"supplier."
|
||||
msgstr ""
|
||||
"Non è possibile eliminare/disattivare un conto che è impostato in un cliente "
|
||||
"o un fornitore."
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_validate_account_move_lines
|
||||
|
@ -11285,6 +11335,7 @@ msgstr "Conferma Movimenti Contabili"
|
|||
msgid ""
|
||||
"The fiscal position will determine taxes and accounts used for the partner."
|
||||
msgstr ""
|
||||
"La posizione fiscale determina le imposte e i conti usati per il partner."
|
||||
|
||||
#. module: account
|
||||
#: model:process.node,note:account.process_node_supplierpaidinvoice0
|
||||
|
@ -11300,7 +11351,7 @@ msgstr ""
|
|||
#. module: account
|
||||
#: model:account.journal.view,name:account.account_sp_journal_view
|
||||
msgid "Sale/Purchase Journal View"
|
||||
msgstr ""
|
||||
msgstr "Vista Sezionale Vendite/Acquisti"
|
||||
|
||||
#. module: account
|
||||
#: view:account.account.template:0
|
||||
|
@ -11317,6 +11368,8 @@ msgstr "Imposte fattura manuali"
|
|||
#, python-format
|
||||
msgid "The payment term of supplier does not have a payment term line."
|
||||
msgstr ""
|
||||
"La condizione di pagamento del fornitore è senza righe con termini di "
|
||||
"pagamento."
|
||||
|
||||
#. module: account
|
||||
#: field:account.account,parent_right:0
|
||||
|
@ -11329,7 +11382,7 @@ msgstr "Conto Padre a destra"
|
|||
#: code:addons/account/static/src/js/account_move_reconciliation.js:79
|
||||
#, python-format
|
||||
msgid "Never"
|
||||
msgstr ""
|
||||
msgstr "Mai"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_addtmpl_wizard
|
||||
|
@ -11350,7 +11403,7 @@ msgstr "Del partner"
|
|||
#. module: account
|
||||
#: field:account.account,note:0
|
||||
msgid "Internal Notes"
|
||||
msgstr ""
|
||||
msgstr "Note Interne"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_account_fiscalyear_form
|
||||
|
@ -11383,7 +11436,7 @@ msgstr "Modello di conto"
|
|||
#: code:addons/account/account_cash_statement.py:292
|
||||
#, python-format
|
||||
msgid "Loss"
|
||||
msgstr ""
|
||||
msgstr "Perdita"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.entries.report,month:0
|
||||
|
@ -11477,7 +11530,7 @@ msgstr ""
|
|||
#. module: account
|
||||
#: selection:account.config.settings,tax_calculation_rounding_method:0
|
||||
msgid "Round per line"
|
||||
msgstr ""
|
||||
msgstr "Arrotonda per riga"
|
||||
|
||||
#. module: account
|
||||
#: help:account.move.line,amount_residual_currency:0
|
||||
|
|
|
@ -7,13 +7,13 @@ 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-28 07:22+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 17:32+0000\n"
|
||||
"Last-Translator: ccdos <ccdos@163.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-29 05:14+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: account
|
||||
|
@ -83,7 +83,7 @@ msgstr "从发票或付款单导入"
|
|||
#: code:addons/account/account_move_line.py:1303
|
||||
#, python-format
|
||||
msgid "Bad Account!"
|
||||
msgstr ""
|
||||
msgstr "坏账"
|
||||
|
||||
#. module: account
|
||||
#: view:account.move:0
|
||||
|
@ -246,7 +246,7 @@ msgid ""
|
|||
"Set the analytic account that will be used by default on the invoice tax "
|
||||
"lines for invoices. Leave empty if you don't want to use an analytic account "
|
||||
"on the invoice tax lines by default."
|
||||
msgstr ""
|
||||
msgstr "设置辅助核算项,用于退款时发票上默认项目。如果默认不要在发票的税上 使用辅助核算项,留空。"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_account_tax_template_form
|
||||
|
@ -282,7 +282,7 @@ msgstr "比利时报表"
|
|||
#. module: account
|
||||
#: model:account.account.type,name:account.account_type_income_view1
|
||||
msgid "Income View"
|
||||
msgstr ""
|
||||
msgstr "收入视图"
|
||||
|
||||
#. module: account
|
||||
#: help:account.account,user_type:0
|
||||
|
@ -363,7 +363,7 @@ msgstr "科目反核销"
|
|||
#. module: account
|
||||
#: field:account.config.settings,module_account_budget:0
|
||||
msgid "Budget management"
|
||||
msgstr ""
|
||||
msgstr "预算管理"
|
||||
|
||||
#. module: account
|
||||
#: view:product.template:0
|
||||
|
@ -381,7 +381,7 @@ msgstr "这里可以设置你想要记录显示格式.如果保留自动,它将
|
|||
#. module: account
|
||||
#: field:account.config.settings,group_multi_currency:0
|
||||
msgid "Allow multi currencies"
|
||||
msgstr ""
|
||||
msgstr "允许多种货币"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account_invoice.py:73
|
||||
|
@ -402,12 +402,12 @@ msgstr "6"
|
|||
#: code:addons/account/wizard/account_automatic_reconcile.py:148
|
||||
#, python-format
|
||||
msgid "You must select accounts to reconcile."
|
||||
msgstr ""
|
||||
msgstr "你必须选择要核销的账簿 。"
|
||||
|
||||
#. module: account
|
||||
#: help:account.config.settings,group_analytic_accounting:0
|
||||
msgid "Allows you to use the analytic accounting."
|
||||
msgstr ""
|
||||
msgstr "允许使用辅助核算"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,help:account.action_account_moves_bank
|
||||
|
@ -423,7 +423,7 @@ msgstr "本视图供财务人员在系统中录入单据。如果您在系统里
|
|||
#: view:account.invoice.report:0
|
||||
#: field:account.invoice.report,user_id:0
|
||||
msgid "Salesperson"
|
||||
msgstr ""
|
||||
msgstr "销售员"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_tax_template
|
||||
|
@ -517,7 +517,7 @@ msgstr "备选币种所示金额"
|
|||
#. module: account
|
||||
#: view:account.journal:0
|
||||
msgid "Available Coins"
|
||||
msgstr ""
|
||||
msgstr "有效的硬币"
|
||||
|
||||
#. module: account
|
||||
#: field:accounting.report,enable_filter:0
|
||||
|
@ -646,7 +646,7 @@ msgstr "财务人员确认的报表"
|
|||
#: code:addons/account/static/src/xml/account_move_reconciliation.xml:31
|
||||
#, python-format
|
||||
msgid "Nothing to reconcile"
|
||||
msgstr ""
|
||||
msgstr "没有什么被核销"
|
||||
|
||||
#. module: account
|
||||
#: field:account.config.settings,decimal_precision:0
|
||||
|
@ -683,7 +683,7 @@ msgstr "报表数值"
|
|||
msgid ""
|
||||
"Specified journal does not have any account move entries in draft state for "
|
||||
"this period."
|
||||
msgstr ""
|
||||
msgstr "这个期间内,指定的分类账没有任何会计凭证分录在草稿状态。"
|
||||
|
||||
#. module: account
|
||||
#: view:account.fiscal.position:0
|
||||
|
@ -706,12 +706,12 @@ msgstr "序列号必须唯一"
|
|||
#: code:addons/account/wizard/account_change_currency.py:70
|
||||
#, python-format
|
||||
msgid "Current currency is not configured properly."
|
||||
msgstr ""
|
||||
msgstr "当前的币种配置不正确。"
|
||||
|
||||
#. module: account
|
||||
#: field:account.journal,profit_account_id:0
|
||||
msgid "Profit Account"
|
||||
msgstr ""
|
||||
msgstr "利润科目"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account_move_line.py:1249
|
||||
|
@ -722,7 +722,7 @@ msgstr "根据输入的凭证日期没有找到期间或找到了多个期间"
|
|||
#. module: account
|
||||
#: model:account.journal.view,name:account.account_journal_bank_view_multi
|
||||
msgid "Bank/Cash Journal (Multi-Currency) View"
|
||||
msgstr ""
|
||||
msgstr "银行/现金分类账(多币种)视图"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_report_account_type_sales
|
||||
|
@ -742,7 +742,7 @@ msgstr ""
|
|||
#: code:addons/account/account.py:1606
|
||||
#, python-format
|
||||
msgid "Cannot create move with currency different from .."
|
||||
msgstr ""
|
||||
msgstr "不能不同币种的凭证"
|
||||
|
||||
#. module: account
|
||||
#: model:email.template,report_name:account.email_template_edi_invoice
|
||||
|
@ -750,6 +750,8 @@ msgid ""
|
|||
"Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' "
|
||||
"and 'draft' or ''}"
|
||||
msgstr ""
|
||||
"Invoice_${(object.number or '').replace('/','_')}_${object.state == 'draft' "
|
||||
"and '草稿' or ''}"
|
||||
|
||||
#. module: account
|
||||
#: view:account.period:0
|
||||
|
@ -776,7 +778,7 @@ msgstr "账簿的会计期间"
|
|||
#: constraint:account.move:0
|
||||
msgid ""
|
||||
"You cannot create more than one move per period on a centralized journal."
|
||||
msgstr "在每个会计期间,你不可以创建1个以上的总分类凭证"
|
||||
msgstr ""
|
||||
|
||||
#. module: account
|
||||
#: help:account.tax,account_analytic_paid_id:0
|
||||
|
@ -800,7 +802,7 @@ msgstr "应收款科目"
|
|||
#. module: account
|
||||
#: view:account.config.settings:0
|
||||
msgid "Configure your company bank accounts"
|
||||
msgstr ""
|
||||
msgstr "配置你公司银行账户"
|
||||
|
||||
#. module: account
|
||||
#: constraint:account.move.line:0
|
||||
|
@ -835,7 +837,7 @@ msgstr "打印发票"
|
|||
msgid ""
|
||||
"Cannot %s invoice which is already reconciled, invoice should be "
|
||||
"unreconciled first. You can only refund this invoice."
|
||||
msgstr ""
|
||||
msgstr "不能 %s 已经核销的发票, 发票必须被首先反核销.。只能退还这张发票。"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.financial.report,display_detail:0
|
||||
|
@ -911,7 +913,7 @@ msgstr "供应商发票和退款"
|
|||
#: code:addons/account/account_move_line.py:833
|
||||
#, python-format
|
||||
msgid "Entry is already reconciled."
|
||||
msgstr ""
|
||||
msgstr "分录已经核销。"
|
||||
|
||||
#. module: account
|
||||
#: view:account.move.line.unreconcile.select:0
|
||||
|
@ -934,7 +936,7 @@ msgstr "辅助核算账簿"
|
|||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
msgid "Send by Email"
|
||||
msgstr ""
|
||||
msgstr "以邮件发送"
|
||||
|
||||
#. module: account
|
||||
#: help:account.central.journal,amount_currency:0
|
||||
|
@ -944,7 +946,7 @@ msgstr ""
|
|||
msgid ""
|
||||
"Print Report with the currency column if the currency differs from the "
|
||||
"company currency."
|
||||
msgstr ""
|
||||
msgstr "如果币种跟公司本位币不同,带币种打印报表。"
|
||||
|
||||
#. module: account
|
||||
#: report:account.analytic.account.quantity_cost_ledger:0
|
||||
|
@ -954,12 +956,12 @@ msgstr "J.C.(成本)凭证名称"
|
|||
#. module: account
|
||||
#: view:account.account:0
|
||||
msgid "Account Code and Name"
|
||||
msgstr ""
|
||||
msgstr "科目代码和名称"
|
||||
|
||||
#. module: account
|
||||
#: model:mail.message.subtype,name:account.mt_invoice_new
|
||||
msgid "created"
|
||||
msgstr ""
|
||||
msgstr "已创建"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.entries.report,month:0
|
||||
|
@ -1022,7 +1024,7 @@ msgstr "到期"
|
|||
#. module: account
|
||||
#: field:account.config.settings,purchase_journal_id:0
|
||||
msgid "Purchase journal"
|
||||
msgstr ""
|
||||
msgstr "采购分类账"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account.py:1374
|
||||
|
@ -1030,7 +1032,7 @@ msgstr ""
|
|||
msgid ""
|
||||
"You cannot validate this journal entry because account \"%s\" does not "
|
||||
"belong to chart of accounts \"%s\"."
|
||||
msgstr ""
|
||||
msgstr "你不能核准这个分类账分录,因为科目 \"%s\" 不属于科目表 \"%s\"."
|
||||
|
||||
#. module: account
|
||||
#: view:validate.account.move:0
|
||||
|
@ -1048,7 +1050,7 @@ msgstr "总金额"
|
|||
#. module: account
|
||||
#: help:account.invoice,supplier_invoice_number:0
|
||||
msgid "The reference of this invoice as provided by the supplier."
|
||||
msgstr ""
|
||||
msgstr "这个发票的编号由供应商提供。"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.account,type:0
|
||||
|
@ -1133,7 +1135,7 @@ msgstr "编码"
|
|||
#. module: account
|
||||
#: view:account.config.settings:0
|
||||
msgid "Features"
|
||||
msgstr ""
|
||||
msgstr "特性"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account.py:2323
|
||||
|
@ -1178,7 +1180,7 @@ msgstr "科目名称"
|
|||
#. module: account
|
||||
#: field:account.journal,with_last_closing_balance:0
|
||||
msgid "Opening With Last Closing Balance"
|
||||
msgstr ""
|
||||
msgstr "用末期的期终余额打开"
|
||||
|
||||
#. module: account
|
||||
#: view:account.state.open:0
|
||||
|
@ -1218,12 +1220,12 @@ msgstr "根据您国家定义这些类型,该类型包含有关科目及其具
|
|||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
msgid "Refund "
|
||||
msgstr ""
|
||||
msgstr "退款 "
|
||||
|
||||
#. module: account
|
||||
#: help:account.config.settings,company_footer:0
|
||||
msgid "Bank accounts as printed in the footer of each printed document"
|
||||
msgstr ""
|
||||
msgstr "银行帐号被打印在每个输出单据的页脚。"
|
||||
|
||||
#. module: account
|
||||
#: view:account.tax:0
|
||||
|
@ -1245,7 +1247,7 @@ msgstr "现金记录"
|
|||
#. module: account
|
||||
#: field:account.config.settings,sale_refund_journal_id:0
|
||||
msgid "Sale refund journal"
|
||||
msgstr ""
|
||||
msgstr "销售退货分类账"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,help:account.action_view_bank_statement_tree
|
||||
|
@ -1281,7 +1283,7 @@ msgstr "会计期间开始于"
|
|||
#. module: account
|
||||
#: view:account.tax:0
|
||||
msgid "Refunds"
|
||||
msgstr ""
|
||||
msgstr "退款"
|
||||
|
||||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
|
||||
|
@ -1349,7 +1351,7 @@ msgstr "兑出汇率"
|
|||
#. module: account
|
||||
#: field:account.config.settings,chart_template_id:0
|
||||
msgid "Template"
|
||||
msgstr ""
|
||||
msgstr "模版"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.analytic.journal,type:0
|
||||
|
@ -1361,7 +1363,7 @@ msgstr "状况"
|
|||
msgid ""
|
||||
"Set the account that will be set by default on invoice tax lines for "
|
||||
"refunds. Leave empty to use the expense account."
|
||||
msgstr ""
|
||||
msgstr "设置科目,用于退款时发票上默认税科目。留空使用费用科目。"
|
||||
|
||||
#. module: account
|
||||
#: field:account.move.line.reconcile,trans_nbr:0
|
||||
|
@ -1519,12 +1521,12 @@ msgstr "报表选项"
|
|||
#. module: account
|
||||
#: field:account.fiscalyear.close.state,fy_id:0
|
||||
msgid "Fiscal Year to Close"
|
||||
msgstr ""
|
||||
msgstr "财政年度结束"
|
||||
|
||||
#. module: account
|
||||
#: field:account.config.settings,sale_sequence_prefix:0
|
||||
msgid "Invoice sequence"
|
||||
msgstr ""
|
||||
msgstr "发票序列"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_entries_report
|
||||
|
@ -1543,11 +1545,13 @@ msgid ""
|
|||
"And after getting confirmation from the bank it will be in 'Confirmed' "
|
||||
"status."
|
||||
msgstr ""
|
||||
"当新的对账单被创建,状态是“草稿”。\n"
|
||||
"从银行确认后,是“已经确认状态”。"
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice.report,state:0
|
||||
msgid "Invoice Status"
|
||||
msgstr ""
|
||||
msgstr "发票状态"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.report:0
|
||||
|
@ -1579,7 +1583,7 @@ msgstr "余额不为0"
|
|||
msgid ""
|
||||
"There is no default debit account defined \n"
|
||||
"on journal \"%s\"."
|
||||
msgstr ""
|
||||
msgstr "在分类账 \"%s\" 没有默认借方科目定义。"
|
||||
|
||||
#. module: account
|
||||
#: view:account.tax:0
|
||||
|
@ -1614,6 +1618,8 @@ msgid ""
|
|||
"There is nothing to reconcile. All invoices and payments\n"
|
||||
" have been reconciled, your partner balance is clean."
|
||||
msgstr ""
|
||||
"没有需要核销的。\n"
|
||||
"所有发票和付款已经被核销,合作伙伴余额已经结清。"
|
||||
|
||||
#. module: account
|
||||
#: field:account.chart.template,code_digits:0
|
||||
|
@ -1632,7 +1638,7 @@ msgstr "如果是手工分录的话就跳过“草稿”状态"
|
|||
#: code:addons/account/wizard/account_report_common.py:159
|
||||
#, python-format
|
||||
msgid "Not implemented."
|
||||
msgstr ""
|
||||
msgstr "未执行。"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.refund:0
|
||||
|
@ -1642,7 +1648,7 @@ msgstr "冲销发票"
|
|||
#. module: account
|
||||
#: view:account.config.settings:0
|
||||
msgid "eInvoicing & Payments"
|
||||
msgstr ""
|
||||
msgstr "电子发票和支付"
|
||||
|
||||
#. module: account
|
||||
#: view:account.analytic.cost.ledger.journal.report:0
|
||||
|
@ -1675,7 +1681,7 @@ msgstr "供应商红字发票"
|
|||
#. module: account
|
||||
#: field:account.config.settings,company_footer:0
|
||||
msgid "Bank accounts footer preview"
|
||||
msgstr ""
|
||||
msgstr "银行帐号页脚预览"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.account,type:0
|
||||
|
@ -1722,7 +1728,7 @@ msgstr "未完税"
|
|||
#. module: account
|
||||
#: view:account.journal:0
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
msgstr "高级选项"
|
||||
|
||||
#. module: account
|
||||
#: view:account.bank.statement:0
|
||||
|
@ -1821,7 +1827,7 @@ msgstr "会计年度序列"
|
|||
#. module: account
|
||||
#: field:account.config.settings,group_analytic_accounting:0
|
||||
msgid "Analytic accounting"
|
||||
msgstr ""
|
||||
msgstr "辅助核算"
|
||||
|
||||
#. module: account
|
||||
#: report:account.overdue:0
|
||||
|
@ -1864,13 +1870,13 @@ msgstr "未确定业务伙伴"
|
|||
msgid ""
|
||||
"The journal must have centralized counterpart without the Skipping draft "
|
||||
"state option checked."
|
||||
msgstr ""
|
||||
msgstr "这个分类账簿的“合并对方科目”必须被选中,“跳过草稿状态”不能选中。"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account_move_line.py:836
|
||||
#, python-format
|
||||
msgid "Some entries are already reconciled."
|
||||
msgstr ""
|
||||
msgstr "有些分录已经被核销。"
|
||||
|
||||
#. module: account
|
||||
#: model:email.template,body_html:account.email_template_edi_invoice
|
||||
|
@ -1991,7 +1997,7 @@ msgstr "该向导将改变发票的币种"
|
|||
msgid ""
|
||||
"Select a configuration package to setup automatically your\n"
|
||||
" taxes and chart of accounts."
|
||||
msgstr ""
|
||||
msgstr "选择一个配置包来自动化安装你的税和科目表"
|
||||
|
||||
#. module: account
|
||||
#: view:account.analytic.account:0
|
||||
|
@ -2006,7 +2012,7 @@ msgstr ""
|
|||
#. module: account
|
||||
#: model:account.journal.view,name:account.account_journal_bank_view
|
||||
msgid "Bank/Cash Journal View"
|
||||
msgstr ""
|
||||
msgstr "银行/现金 分类账视图"
|
||||
|
||||
#. module: account
|
||||
#: report:account.journal.period.print.sale.purchase:0
|
||||
|
@ -2034,18 +2040,18 @@ msgstr "应收&应付"
|
|||
#. module: account
|
||||
#: field:account.config.settings,module_account_payment:0
|
||||
msgid "Manage payment orders"
|
||||
msgstr ""
|
||||
msgstr "管理付款单"
|
||||
|
||||
#. module: account
|
||||
#: view:account.period:0
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
msgstr "持续时间"
|
||||
|
||||
#. module: account
|
||||
#: view:account.bank.statement:0
|
||||
#: field:account.bank.statement,last_closing_balance:0
|
||||
msgid "Last Closing Balance"
|
||||
msgstr ""
|
||||
msgstr "期终余额"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_common_journal_report
|
||||
|
@ -2083,7 +2089,7 @@ msgstr "客户关联:"
|
|||
#: help:account.tax.template,ref_tax_code_id:0
|
||||
#: help:account.tax.template,tax_code_id:0
|
||||
msgid "Use this code for the tax declaration."
|
||||
msgstr ""
|
||||
msgstr "用这个代码做纳税申报"
|
||||
|
||||
#. module: account
|
||||
#: help:account.period,special:0
|
||||
|
@ -2098,7 +2104,7 @@ msgstr "银行单据草稿"
|
|||
#. module: account
|
||||
#: field:account.config.settings,module_account_check_writing:0
|
||||
msgid "Pay your suppliers by check"
|
||||
msgstr ""
|
||||
msgstr "用支票支付你的供应商"
|
||||
|
||||
#. module: account
|
||||
#: field:account.move.line.reconcile,credit:0
|
||||
|
@ -2109,7 +2115,7 @@ msgstr "贷方金额"
|
|||
#: field:account.bank.statement,message_ids:0
|
||||
#: field:account.invoice,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
msgstr "消息"
|
||||
|
||||
#. module: account
|
||||
#: view:account.vat.declaration:0
|
||||
|
@ -2121,6 +2127,9 @@ msgid ""
|
|||
"useful because it enables you to preview at any time the tax that you owe at "
|
||||
"the start and end of the month or quarter."
|
||||
msgstr ""
|
||||
"这个菜单基于发票或者支付打印一个纳税申报。选择财务年度的一个或几个会计期间。\r\n"
|
||||
"纳税申报需要的信息由Openerp自动从发票(或者在有些国家是付款单)生成。数据是实时更新的。\r\n"
|
||||
"这非常有用,他使你任何时间可预览 在月份(或季度)的开始和结束欠了多少税。"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account.py:408
|
||||
|
@ -2207,7 +2216,7 @@ msgstr "发票分析"
|
|||
#. module: account
|
||||
#: model:ir.model,name:account.model_mail_compose_message
|
||||
msgid "Email composition wizard"
|
||||
msgstr ""
|
||||
msgstr "Email撰写向导"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_period_close
|
||||
|
@ -2253,7 +2262,7 @@ msgstr ""
|
|||
#. module: account
|
||||
#: field:account.config.settings,currency_id:0
|
||||
msgid "Default company currency"
|
||||
msgstr ""
|
||||
msgstr "公司本位币"
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice,move_id:0
|
||||
|
@ -2306,7 +2315,7 @@ msgstr "生效"
|
|||
#: field:account.bank.statement,message_follower_ids:0
|
||||
#: field:account.invoice,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
msgstr "关注者"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_account_print_journal
|
||||
|
@ -2327,7 +2336,7 @@ msgstr "过期的试算表"
|
|||
#. module: account
|
||||
#: view:account.fiscalyear.close.state:0
|
||||
msgid "Close Fiscal Year"
|
||||
msgstr ""
|
||||
msgstr "关闭财政年度"
|
||||
|
||||
#. module: account
|
||||
#: model:process.node,note:account.process_node_reconciliation0
|
||||
|
@ -2338,7 +2347,7 @@ msgstr "比较会计和支付项"
|
|||
#. module: account
|
||||
#: sql_constraint:account.fiscal.position.tax:0
|
||||
msgid "A tax fiscal position could be defined only once time on same taxes."
|
||||
msgstr ""
|
||||
msgstr "同样的税 上面一次只能定义一个财务结构。"
|
||||
|
||||
#. module: account
|
||||
#: view:account.tax:0
|
||||
|
@ -2350,12 +2359,12 @@ msgstr "税定义"
|
|||
#: view:account.config.settings:0
|
||||
#: model:ir.actions.act_window,name:account.action_account_config
|
||||
msgid "Configure Accounting"
|
||||
msgstr ""
|
||||
msgstr "设置会计模块"
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice.report,uom_name:0
|
||||
msgid "Reference Unit of Measure"
|
||||
msgstr ""
|
||||
msgstr "参考计量单位"
|
||||
|
||||
#. module: account
|
||||
#: help:account.journal,allow_date:0
|
||||
|
@ -2369,12 +2378,12 @@ msgstr "如果设为True当分录的日期不在会计周期内,将不接受
|
|||
#: code:addons/account/static/src/xml/account_move_reconciliation.xml:8
|
||||
#, python-format
|
||||
msgid "Good job!"
|
||||
msgstr ""
|
||||
msgstr "做得好!"
|
||||
|
||||
#. module: account
|
||||
#: field:account.config.settings,module_account_asset:0
|
||||
msgid "Assets management"
|
||||
msgstr ""
|
||||
msgstr "固定资产管理"
|
||||
|
||||
#. module: account
|
||||
#: view:account.account:0
|
||||
|
@ -2424,7 +2433,7 @@ msgstr "斜体(小一些)"
|
|||
msgid ""
|
||||
"If you want the journal should be control at opening/closing, check this "
|
||||
"option"
|
||||
msgstr ""
|
||||
msgstr "如果你要这个分类账在开启和结账时被控制,选中此项。"
|
||||
|
||||
#. module: account
|
||||
#: view:account.bank.statement:0
|
||||
|
@ -2459,7 +2468,7 @@ msgstr "打开分录"
|
|||
#. module: account
|
||||
#: field:account.config.settings,purchase_refund_sequence_next:0
|
||||
msgid "Next supplier credit note number"
|
||||
msgstr ""
|
||||
msgstr "下个供应商信用记录编号"
|
||||
|
||||
#. module: account
|
||||
#: field:account.automatic.reconcile,account_ids:0
|
||||
|
@ -2499,12 +2508,12 @@ msgstr "纳税明细表"
|
|||
#: code:addons/account/account_cash_statement.py:256
|
||||
#, python-format
|
||||
msgid "You do not have rights to open this %s journal !"
|
||||
msgstr ""
|
||||
msgstr "你没有权限打开 %s 分类账。"
|
||||
|
||||
#. module: account
|
||||
#: model:res.groups,name:account.group_supplier_inv_check_total
|
||||
msgid "Check Total on supplier invoices"
|
||||
msgstr ""
|
||||
msgstr "检查供应商发票合计"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.invoice,state:0
|
||||
|
@ -2579,7 +2588,7 @@ msgstr "RIB/IBAN 无效"
|
|||
#. module: account
|
||||
#: help:account.config.settings,default_sale_tax:0
|
||||
msgid "This sale tax will be assigned by default on new products."
|
||||
msgstr ""
|
||||
msgstr "在新产品上,销项税将被指定为默认值"
|
||||
|
||||
#. module: account
|
||||
#: report:account.general.ledger_landscape:0
|
||||
|
@ -2718,7 +2727,7 @@ msgstr "财务结构"
|
|||
#: code:addons/account/account_move_line.py:592
|
||||
#, python-format
|
||||
msgid "You cannot create journal items on a closed account %s %s."
|
||||
msgstr ""
|
||||
msgstr "你不能在关闭的科目%s %s 上面创建分类账分录。"
|
||||
|
||||
#. module: account
|
||||
#: field:account.period.close,sure:0
|
||||
|
@ -2753,7 +2762,7 @@ msgstr "草稿状态的发票"
|
|||
#. module: account
|
||||
#: view:product.category:0
|
||||
msgid "Account Properties"
|
||||
msgstr ""
|
||||
msgstr "科目属性"
|
||||
|
||||
#. module: account
|
||||
#: view:account.partner.reconcile.process:0
|
||||
|
@ -2840,7 +2849,7 @@ msgstr "EXJ"
|
|||
#. module: account
|
||||
#: view:account.invoice.refund:0
|
||||
msgid "Create Credit Note"
|
||||
msgstr ""
|
||||
msgstr "产生一张红字发票"
|
||||
|
||||
#. module: account
|
||||
#: field:product.template,supplier_taxes_id:0
|
||||
|
@ -2888,7 +2897,7 @@ msgstr ""
|
|||
#: code:addons/account/wizard/account_state_open.py:37
|
||||
#, python-format
|
||||
msgid "Invoice is already reconciled."
|
||||
msgstr ""
|
||||
msgstr "发票已经被核销"
|
||||
|
||||
#. module: account
|
||||
#: view:account.analytic.cost.ledger.journal.report:0
|
||||
|
@ -2936,7 +2945,7 @@ msgstr "辅助核算项"
|
|||
#: field:account.config.settings,default_purchase_tax:0
|
||||
#: field:account.config.settings,purchase_tax:0
|
||||
msgid "Default purchase tax"
|
||||
msgstr ""
|
||||
msgstr "默认进项税"
|
||||
|
||||
#. module: account
|
||||
#: view:account.account:0
|
||||
|
@ -3153,13 +3162,13 @@ msgstr ""
|
|||
msgid ""
|
||||
"Selected invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-"
|
||||
"Forma' state."
|
||||
msgstr ""
|
||||
msgstr "选择的发票不能被确认,因为它们不是“草稿”或者“形式发票”状态"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account.py:1114
|
||||
#, python-format
|
||||
msgid "You should choose the periods that belong to the same company."
|
||||
msgstr ""
|
||||
msgstr "你要选择属于同一个公司的会计区间"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_report_account_sales_tree_all
|
||||
|
@ -3172,17 +3181,17 @@ msgstr "销售科目"
|
|||
#: code:addons/account/account.py:1471
|
||||
#, python-format
|
||||
msgid "You cannot delete a posted journal entry \"%s\"."
|
||||
msgstr ""
|
||||
msgstr "你不能删除已经登帐的分类账分录\"%s\"."
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
msgid "Accounting Period"
|
||||
msgstr ""
|
||||
msgstr "会计期间"
|
||||
|
||||
#. module: account
|
||||
#: field:account.config.settings,sale_journal_id:0
|
||||
msgid "Sale journal"
|
||||
msgstr ""
|
||||
msgstr "销售分类帐"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account.py:2323
|
||||
|
@ -3198,7 +3207,7 @@ msgstr "您必须定义这 '%s' 的辅助核算账簿!"
|
|||
msgid ""
|
||||
"This journal already contains items, therefore you cannot modify its company "
|
||||
"field."
|
||||
msgstr ""
|
||||
msgstr "这个分类账已经包含了分录,因此不能修改他的公司字段"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account.py:408
|
||||
|
@ -3206,7 +3215,7 @@ msgstr ""
|
|||
msgid ""
|
||||
"You need an Opening journal with centralisation checked to set the initial "
|
||||
"balance."
|
||||
msgstr ""
|
||||
msgstr "你需要一个打开的分类账,集中设置初始余额。"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_tax_code_list
|
||||
|
@ -3275,7 +3284,7 @@ msgstr "必需的"
|
|||
#. module: account
|
||||
#: field:wizard.multi.charts.accounts,only_one_chart_template:0
|
||||
msgid "Only One Chart Template Available"
|
||||
msgstr ""
|
||||
msgstr "只有一个图表模版可用。"
|
||||
|
||||
#. module: account
|
||||
#: view:account.chart.template:0
|
||||
|
@ -3288,7 +3297,7 @@ msgstr "费用科目"
|
|||
#: field:account.bank.statement,message_summary:0
|
||||
#: field:account.invoice,message_summary:0
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
msgstr "摘要"
|
||||
|
||||
#. module: account
|
||||
#: help:account.invoice,period_id:0
|
||||
|
@ -3387,7 +3396,7 @@ msgstr "试算平衡"
|
|||
#: code:addons/account/account.py:430
|
||||
#, python-format
|
||||
msgid "Unable to adapt the initial balance (negative value)."
|
||||
msgstr ""
|
||||
msgstr "不能适应初始余额(负数)"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.invoice,type:0
|
||||
|
@ -3406,7 +3415,7 @@ msgstr "选择会计年度"
|
|||
#: view:account.config.settings:0
|
||||
#: view:account.installer:0
|
||||
msgid "Date Range"
|
||||
msgstr ""
|
||||
msgstr "日期范围"
|
||||
|
||||
#. module: account
|
||||
#: view:account.period:0
|
||||
|
@ -3454,7 +3463,7 @@ msgstr ""
|
|||
#: code:addons/account/account.py:2650
|
||||
#, python-format
|
||||
msgid "There is no parent code for the template account."
|
||||
msgstr ""
|
||||
msgstr "模版科目没有上级代码"
|
||||
|
||||
#. module: account
|
||||
#: help:account.chart.template,code_digits:0
|
||||
|
@ -3481,7 +3490,7 @@ msgstr "总是"
|
|||
#: field:account.config.settings,module_account_accountant:0
|
||||
msgid ""
|
||||
"Full accounting features: journals, legal statements, chart of accounts, etc."
|
||||
msgstr ""
|
||||
msgstr "全部会计特性:分类账,税务报表,会计科目表 等等"
|
||||
|
||||
#. module: account
|
||||
#: view:account.analytic.line:0
|
||||
|
@ -3538,12 +3547,12 @@ msgstr "电子文件"
|
|||
#. module: account
|
||||
#: constraint:res.partner:0
|
||||
msgid "Error: Invalid ean code"
|
||||
msgstr ""
|
||||
msgstr "错误:无效的(EAN)条码"
|
||||
|
||||
#. module: account
|
||||
#: field:account.config.settings,has_chart_of_accounts:0
|
||||
msgid "Company has a chart of accounts"
|
||||
msgstr ""
|
||||
msgstr "公司有一个会计科目表"
|
||||
|
||||
#. module: account
|
||||
#: view:account.payment.term.line:0
|
||||
|
@ -3559,7 +3568,7 @@ msgstr "业务伙伴会计帐本(往来帐)"
|
|||
#: code:addons/account/account_invoice.py:1321
|
||||
#, python-format
|
||||
msgid "%s <b>created</b>."
|
||||
msgstr ""
|
||||
msgstr "%s <b>被创建</b>."
|
||||
|
||||
#. module: account
|
||||
#: help:account.journal.column,sequence:0
|
||||
|
@ -3569,7 +3578,7 @@ msgstr "指定账簿栏目的序列"
|
|||
#. module: account
|
||||
#: view:account.period:0
|
||||
msgid "Account Period"
|
||||
msgstr ""
|
||||
msgstr "会计期间"
|
||||
|
||||
#. module: account
|
||||
#: help:account.account,currency_id:0
|
||||
|
@ -3594,7 +3603,7 @@ msgstr "科目一览表模板"
|
|||
#. module: account
|
||||
#: view:account.bank.statement:0
|
||||
msgid "Transactions"
|
||||
msgstr ""
|
||||
msgstr "交易"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_unreconcile_reconcile
|
||||
|
@ -3691,7 +3700,7 @@ msgstr "会计应用程序设置"
|
|||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_account_vat_declaration
|
||||
msgid "Account Tax Declaration"
|
||||
msgstr ""
|
||||
msgstr "会计税务申报"
|
||||
|
||||
#. module: account
|
||||
#: view:account.payment.term.line:0
|
||||
|
@ -3705,7 +3714,7 @@ msgid ""
|
|||
"You cannot create an invoice on a centralized journal. Uncheck the "
|
||||
"centralized counterpart box in the related journal from the configuration "
|
||||
"menu."
|
||||
msgstr ""
|
||||
msgstr "你不能在汇总账簿上面创建发票。在配置菜单中 相关的 分类账簿表单里不要选中“合并对方科目”。"
|
||||
|
||||
#. module: account
|
||||
#: field:account.bank.statement,balance_start:0
|
||||
|
@ -3730,7 +3739,7 @@ msgstr "关闭一个会计期间"
|
|||
#: view:account.bank.statement:0
|
||||
#: field:account.cashbox.line,subtotal_opening:0
|
||||
msgid "Opening Subtotal"
|
||||
msgstr ""
|
||||
msgstr "期初小计"
|
||||
|
||||
#. module: account
|
||||
#: field:account.financial.report,display_detail:0
|
||||
|
@ -4381,7 +4390,9 @@ msgid ""
|
|||
"entries of all fiscal years. Note that you should define it with default "
|
||||
"debit/credit accounts, of type 'situation' and with a centralized "
|
||||
"counterpart."
|
||||
msgstr "最好使用一个专用的账簿去控制所有会计年度的开账分录。注意您应该设定默认的借方/贷方科目,“状态”的类型和能汇总账簿对应。"
|
||||
msgstr ""
|
||||
"最好使用一个专用的账簿去控制所有会计年度的开账分录。\r\n"
|
||||
"注意您应该设定默认的借方/贷方科目,类型是 “期初/期末状态”,并且选中“合并对方科目”。"
|
||||
|
||||
#. module: account
|
||||
#: view:account.installer:0
|
||||
|
@ -5229,7 +5240,7 @@ msgstr "发票草稿已生效。 "
|
|||
msgid ""
|
||||
"Set the account that will be set by default on invoice tax lines for "
|
||||
"invoices. Leave empty to use the expense account."
|
||||
msgstr ""
|
||||
msgstr "设置科目,用于退款时发票上默认税科目。留空使用费用科目。"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account.py:947
|
||||
|
@ -5577,6 +5588,14 @@ msgid ""
|
|||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" 单击以注册一个新的账簿\n"
|
||||
" </p><p>\n"
|
||||
" 这个视图给会计人员使用,为了在Openerp中快速登记分录。\n"
|
||||
" 如果要登记供应商发票,从记录费用科目行开始。Openerp将\n"
|
||||
" 建议你自动处理科目相关的税,以及对方科目 \"应付帐款\"。\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: account
|
||||
#: view:account.move.line:0
|
||||
|
@ -7686,7 +7705,7 @@ msgid ""
|
|||
"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."
|
||||
msgstr "勾选此项,在会计年度关闭时, 确定每个账簿的分录不会产生新副本, 而是共享同一副本。"
|
||||
msgstr "选中此项,在年终结转时,确定每个分类账簿的分录不会产生新的对方科目, 而是共享同一对方科目。"
|
||||
|
||||
#. module: account
|
||||
#: field:account.bank.statement,closing_date:0
|
||||
|
|
|
@ -211,7 +211,7 @@
|
|||
<para style="terp_default_Right_9">[[ (line['account_id']['type'] == 'receivable' and formatLang(line['credit']) or 0) or (line['account_id']['type'] == 'payable' and formatLang(line['debit'] * -1) or 0) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ time.strftime('%Y-%m-%d') > formatLang((line['date_maturity'])) and formatLang(line['debit'] - line['credit'], currency_obj = company.currency_id) ]]</para>
|
||||
<para style="terp_default_Right_9">[[ (time.strftime('%Y-%m-%d') > line['date_maturity']) and formatLang(line['debit'] - line['credit'], currency_obj = company.currency_id) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Centre_9">[[ line['blocked'] and 'X' or '' ]]</para>
|
||||
|
|
|
@ -14,7 +14,7 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:08+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: account_asset
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
##############################################################################
|
||||
|
||||
{
|
||||
'name': 'Follow-up Management',
|
||||
'name': 'Payment Follow-up Management',
|
||||
'version': '1.0',
|
||||
'category': 'Accounting & Finance',
|
||||
'description': """
|
||||
|
@ -29,19 +29,18 @@ Module to automate letters for unpaid invoices, with multi-level recalls.
|
|||
|
||||
You can define your multiple levels of recall through the menu:
|
||||
---------------------------------------------------------------
|
||||
**Invoicing** / **Configuration** / **Miscellaneous** / **Follow-ups**
|
||||
|
||||
Configuration / Follow-Up Levels
|
||||
|
||||
Once it is defined, you can automatically print recalls every day through simply clicking on the menu:
|
||||
------------------------------------------------------------------------------------------------------
|
||||
**Invoicing** / **Periodical Processing** / **Billing** / **Send follow-ups**
|
||||
Payment Follow-Up / Send Email and letters
|
||||
|
||||
It will generate a PDF with all the letters according to the the different levels
|
||||
of recall defined. You can define different policies for different companies. You
|
||||
can also send mail to the customer.
|
||||
It will generate a PDF / send emails / set manual actions according to the the different levels
|
||||
of recall defined. You can define different policies for different companies.
|
||||
|
||||
Note that if you want to check the follow-up level for a given partner/account entry, you can do from in the menu:
|
||||
------------------------------------------------------------------------------------------------------------------
|
||||
**Invoicing** / **Reporting** / **Generic Reporting** / **Partners** / **Follow-ups Sent**
|
||||
Reporting / Accounting / **Follow-ups Analysis
|
||||
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
|
@ -51,16 +50,16 @@ Note that if you want to check the follow-up level for a given partner/account e
|
|||
'data': [
|
||||
'security/account_followup_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'wizard/account_followup_print_view.xml',
|
||||
'report/account_followup_report.xml',
|
||||
'account_followup_demo.xml', # Defined by default
|
||||
'account_followup_view.xml',
|
||||
'account_followup_data.xml',
|
||||
'account_followup_view.xml',
|
||||
'account_followup_customers.xml',
|
||||
'wizard/account_followup_print_view.xml',
|
||||
],
|
||||
'demo': [],
|
||||
'demo': ['account_followup_demo.xml'],
|
||||
'test': [
|
||||
'test/account_followup.yml',
|
||||
'test/account_followup_report.yml',
|
||||
#TODO 'test/account_followup_report.yml', --> Need to wait for second step in order to check report (expects after first)
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
|
|
|
@ -20,37 +20,66 @@
|
|||
##############################################################################
|
||||
|
||||
from osv import fields, osv
|
||||
from lxml import etree
|
||||
|
||||
from tools.translate import _
|
||||
|
||||
|
||||
class followup(osv.osv):
|
||||
_name = 'account_followup.followup'
|
||||
_description = 'Account Follow-up'
|
||||
_rec_name = 'name'
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, required=True),
|
||||
'description': fields.text('Description'),
|
||||
'followup_line': fields.one2many('account_followup.followup.line', 'followup_id', 'Follow-up'),
|
||||
'company_id': fields.many2one('res.company', 'Company', required=True),
|
||||
'name': fields.related('company_id', 'name', string = "Name"),
|
||||
}
|
||||
_defaults = {
|
||||
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'account_followup.followup', context=c),
|
||||
}
|
||||
|
||||
followup()
|
||||
_sql_constraints = [('company_uniq', 'unique(company_id)', 'Only one follow-up per company is allowed')]
|
||||
|
||||
|
||||
class followup_line(osv.osv):
|
||||
|
||||
def _get_default_template(self, cr, uid, ids, context=None):
|
||||
dummy, templ = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'account_followup', 'email_template_account_followup_default')
|
||||
return templ
|
||||
|
||||
_name = 'account_followup.followup.line'
|
||||
_description = 'Follow-up Criteria'
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, required=True),
|
||||
'name': fields.char('Follow-Up Action', size=64, required=True),
|
||||
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of follow-up lines."),
|
||||
'delay': fields.integer('Days of delay'),
|
||||
'start': fields.selection([('days','Net Days'),('end_of_month','End of Month')], 'Type of Term', size=64, required=True),
|
||||
'delay': fields.integer('Due Days', help="The number of days after the due date of the invoice to wait before sending the reminder. Could be negative if you want to send a polite alert beforehand.", required=True),
|
||||
'followup_id': fields.many2one('account_followup.followup', 'Follow Ups', required=True, ondelete="cascade"),
|
||||
'description': fields.text('Printed Message', translate=True),
|
||||
'send_email':fields.boolean('Send an Email', help="When processing, it will send an email"),
|
||||
'send_letter':fields.boolean('Send a Letter', help="When processing, it will print a letter"),
|
||||
'manual_action':fields.boolean('Manual Action', help="When processing, it will set the manual action to be taken for that customer. "),
|
||||
'manual_action_note':fields.text('Action To Do', placeholder="e.g. Give a phone call, check with others , ..."),
|
||||
'manual_action_responsible_id':fields.many2one('res.users', 'Assign a Responsible', ondelete='set null'),
|
||||
'email_template_id':fields.many2one('email.template', 'Email Template', ondelete='set null'),
|
||||
}
|
||||
_order = 'delay'
|
||||
_sql_constraints = [('days_uniq', 'unique(followup_id, delay)', 'Days of the follow-up levels must be different')]
|
||||
_defaults = {
|
||||
'start': 'days',
|
||||
'send_email': True,
|
||||
'send_letter': True,
|
||||
'manual_action':False,
|
||||
'description': """
|
||||
Dear %(partner_name)s,
|
||||
|
||||
Exception made if there was a mistake of ours, it seems that the following amount stays unpaid. Please, take appropriate measures in order to carry out this payment in the next 8 days.
|
||||
|
||||
Would your payment have been carried out after this mail was sent, please ignore this message. Do not hesitate to contact our accounting department at (+32).10.68.94.39.
|
||||
|
||||
Best Regards,
|
||||
""",
|
||||
'email_template_id': _get_default_template,
|
||||
}
|
||||
|
||||
|
||||
def _check_description(self, cr, uid, ids, context=None):
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
if line.description:
|
||||
|
@ -64,40 +93,193 @@ class followup_line(osv.osv):
|
|||
(_check_description, 'Your description is invalid, use the right legend or %% if you want to use the percent character.', ['description']),
|
||||
]
|
||||
|
||||
followup_line()
|
||||
|
||||
class account_move_line(osv.osv):
|
||||
|
||||
def _get_result(self, cr, uid, ids, name, arg, context=None):
|
||||
res = {}
|
||||
for aml in self.browse(cr, uid, ids, context=context):
|
||||
res[aml.id] = aml.debit - aml.credit
|
||||
return res
|
||||
|
||||
_inherit = 'account.move.line'
|
||||
_columns = {
|
||||
'followup_line_id': fields.many2one('account_followup.followup.line', 'Follow-up Level'),
|
||||
'followup_line_id': fields.many2one('account_followup.followup.line', 'Follow-up Level',
|
||||
ondelete='restrict'), #restrict deletion of the followup line
|
||||
'followup_date': fields.date('Latest Follow-up', select=True),
|
||||
'result':fields.function(_get_result, type='float', method=True,
|
||||
string="Balance") #'balance' field is not the same
|
||||
}
|
||||
|
||||
account_move_line()
|
||||
|
||||
class res_company(osv.osv):
|
||||
_inherit = "res.company"
|
||||
|
||||
class email_template(osv.osv):
|
||||
_inherit = 'email.template'
|
||||
|
||||
# Adds current_date to the context. That way it can be used to put
|
||||
# the account move lines in bold that are overdue in the email
|
||||
def render_template(self, cr, uid, template, model, res_id, context=None):
|
||||
context['current_date'] = fields.date.context_today(cr, uid, context)
|
||||
return super(email_template, self).render_template(cr, uid, template, model, res_id, context=context)
|
||||
|
||||
|
||||
class res_partner(osv.osv):
|
||||
|
||||
def fields_view_get(self, cr, uid, view_id=None, view_type=None, context=None, toolbar=False, submenu=False):
|
||||
res = super(res_partner, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context,
|
||||
toolbar=toolbar, submenu=submenu)
|
||||
context = context or {}
|
||||
if view_type == 'form' and context.get('Followupfirst'):
|
||||
doc = etree.XML(res['arch'], parser=None, base_url=None)
|
||||
first_node = doc.xpath("//page[@name='followup_tab']")
|
||||
root = first_node[0].getparent()
|
||||
root.insert(0, first_node[0])
|
||||
res['arch'] = etree.tostring(doc, encoding="utf-8")
|
||||
return res
|
||||
|
||||
def _get_latest(self, cr, uid, ids, names, arg, context=None, company_id=None):
|
||||
res={}
|
||||
if company_id == None:
|
||||
company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id
|
||||
else:
|
||||
company = self.pool.get('res.company').browse(cr, uid, company_id, context=context)
|
||||
for partner in self.browse(cr, uid, ids, context=context):
|
||||
amls = partner.unreconciled_aml_ids
|
||||
latest_date = False
|
||||
latest_level = False
|
||||
latest_days = False
|
||||
latest_level_without_lit = False
|
||||
latest_days_without_lit = False
|
||||
for aml in amls:
|
||||
if (aml.company_id == company) and (aml.followup_line_id != False) and (not latest_days or latest_days < aml.followup_line_id.delay):
|
||||
latest_days = aml.followup_line_id.delay
|
||||
latest_level = aml.followup_line_id.id
|
||||
if (aml.company_id == company) and (not latest_date or latest_date < aml.followup_date):
|
||||
latest_date = aml.followup_date
|
||||
if (aml.company_id == company) and (aml.blocked == False) and (aml.followup_line_id != False and
|
||||
(not latest_days_without_lit or latest_days_without_lit < aml.followup_line_id.delay)):
|
||||
latest_days_without_lit = aml.followup_line_id.delay
|
||||
latest_level_without_lit = aml.followup_line_id.id
|
||||
res[partner.id] = {'latest_followup_date': latest_date,
|
||||
'latest_followup_level_id': latest_level,
|
||||
'latest_followup_level_id_without_lit': latest_level_without_lit}
|
||||
return res
|
||||
|
||||
def do_partner_manual_action(self, cr, uid, partner_ids, context=None):
|
||||
#partner_ids -> res.partner
|
||||
for partner in self.browse(cr, uid, partner_ids, context=context):
|
||||
#Check action: check if the action was not empty, if not add
|
||||
action_text= ""
|
||||
if partner.payment_next_action:
|
||||
action_text = (partner.payment_next_action or '') + "\n" + (partner.latest_followup_level_id_without_lit.manual_action_note or '')
|
||||
else:
|
||||
action_text = partner.latest_followup_level_id_without_lit.manual_action_note or ''
|
||||
|
||||
#Check date: put the minimum date if it existed already
|
||||
action_date = (partner.payment_next_action_date and min(partner.payment_next_action_date, fields.date.context_today(cr, uid, context))
|
||||
) or fields.date.context_today(cr, uid, context)
|
||||
|
||||
# Check responsible: if partner has not got a responsible already, take from follow-up
|
||||
responsible_id = False
|
||||
if partner.payment_responsible_id:
|
||||
responsible_id = partner.payment_responsible_id.id
|
||||
else:
|
||||
p = partner.latest_followup_level_id_without_lit.manual_action_responsible_id
|
||||
responsible_id = p and p.id or False
|
||||
self.write(cr, uid, [partner.id], {'payment_next_action_date': action_date,
|
||||
'payment_next_action': action_text,
|
||||
'payment_responsible_id': responsible_id})
|
||||
|
||||
def do_partner_print(self, cr, uid, wizard_partner_ids, data, context=None):
|
||||
#wizard_partner_ids are ids from special view, not from res.partner
|
||||
if not wizard_partner_ids:
|
||||
return {}
|
||||
data['partner_ids'] = wizard_partner_ids
|
||||
datas = {
|
||||
'ids': [],
|
||||
'model': 'account_followup.followup',
|
||||
'form': data
|
||||
}
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account_followup.followup.print',
|
||||
'datas': datas,
|
||||
}
|
||||
|
||||
def do_partner_mail(self, cr, uid, partner_ids, context=None):
|
||||
#partner_ids are res.partner ids
|
||||
# If not defined by latest follow-up level, it will be the default template if it can find it
|
||||
mtp = self.pool.get('email.template')
|
||||
unknown_mails = 0
|
||||
for partner in self.browse(cr, uid, partner_ids, context=context):
|
||||
if partner.email and partner.email.strip():
|
||||
level = partner.latest_followup_level_id_without_lit
|
||||
if level and level.send_email and level.email_template_id and level.email_template_id.id:
|
||||
mtp.send_mail(cr, uid, level.email_template_id.id, partner.id, context=context)
|
||||
else:
|
||||
mail_template_id = self.pool.get('ir.model.data').get_object_reference(cr, uid,
|
||||
'account_followup', 'email_template_account_followup_default')
|
||||
mtp.send_mail(cr, uid, mail_template_id[1], partner.id, context=context)
|
||||
else:
|
||||
unknown_mails = unknown_mails + 1
|
||||
action_text = _("Email not sent because of email address of partner not filled in")
|
||||
if partner.payment_next_action_date:
|
||||
payment_action_date = min(fields.date.context_today(cr, uid, context), partner.payment_next_action_date)
|
||||
else:
|
||||
payment_action_date = fields.date.context_today(cr, uid, context)
|
||||
if partner.payment_next_action:
|
||||
payment_next_action = partner.payment_next_action + " + " + action_text
|
||||
else:
|
||||
payment_next_action = action_text
|
||||
self.write(cr, uid, [partner.id], {'payment_next_action_date': payment_action_date,
|
||||
'payment_next_action': payment_next_action}, context=context)
|
||||
return unknown_mails
|
||||
|
||||
def action_done(self, cr, uid, ids, context=None):
|
||||
return self.write(cr, uid, ids, {'payment_next_action_date': False, 'payment_next_action':'', 'payment_responsible_id': False}, context=context)
|
||||
|
||||
def do_button_print(self, cr, uid, ids, context=None):
|
||||
assert(len(ids) == 1)
|
||||
self.message_post(cr, uid, [ids[0]], body=_('Printed overdue payments report'), context=context)
|
||||
datas = {
|
||||
'ids': ids,
|
||||
'model': 'res.partner',
|
||||
'form': self.read(cr, uid, ids[0], context=context)
|
||||
}
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account.overdue',
|
||||
'datas': datas,
|
||||
'nodestroy' : True
|
||||
}
|
||||
|
||||
|
||||
_inherit = "res.partner"
|
||||
_columns = {
|
||||
'follow_up_msg': fields.text('Follow-up Message', translate=True),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'follow_up_msg': '''
|
||||
Date: %(date)s
|
||||
|
||||
Dear %(partner_name)s,
|
||||
|
||||
Please find in attachment a reminder of all your unpaid invoices, for a total amount due of:
|
||||
|
||||
%(followup_amount).2f %(company_currency)s
|
||||
|
||||
Thanks,
|
||||
--
|
||||
%(user_signature)s
|
||||
%(company_name)s
|
||||
'''
|
||||
}
|
||||
|
||||
res_company()
|
||||
'payment_responsible_id':fields.many2one('res.users', ondelete='set null', string='Follow-up Responsible',
|
||||
help="Responsible for making sure the action happens."),
|
||||
'payment_note':fields.text('Customer Payment Promise', help="Payment Note"),
|
||||
'payment_next_action':fields.text('Next Action',
|
||||
help="This is the next action to be taken by the user. It will automatically be set when the action fields are empty and the partner gets a follow-up level that requires a manual action. "),
|
||||
'payment_next_action_date':fields.date('Next Action Date',
|
||||
help="This is when further follow-up is needed. The date will have been set to the current date if the action fields are empty and the partner gets a follow-up level that requires a manual action. "),
|
||||
'unreconciled_aml_ids':fields.one2many('account.move.line', 'partner_id', domain=['&', ('reconcile_id', '=', False), '&',
|
||||
('account_id.active','=', True), '&', ('account_id.type', '=', 'receivable'), ('state', '!=', 'draft')]),
|
||||
'latest_followup_date':fields.function(_get_latest, method=True, type='date', string="Latest Follow-up Date",
|
||||
help="Latest date that the follow-up level of the partner was changed",
|
||||
store=False,
|
||||
multi="latest"),
|
||||
'latest_followup_level_id':fields.function(_get_latest, method=True,
|
||||
type='many2one', relation='account_followup.followup.line', string="Latest Follow-up Level",
|
||||
help="The maximum follow-up level",
|
||||
store=False,
|
||||
multi="latest"),
|
||||
'latest_followup_level_id_without_lit':fields.function(_get_latest, method=True,
|
||||
type='many2one', relation='account_followup.followup.line', string="Latest Follow-up Level without litigation",
|
||||
help="The maximum follow-up level without taking into account the account move lines with litigation",
|
||||
store=False,
|
||||
multi="latest"),
|
||||
'payment_amount_due':fields.related('credit', type='float', string="Total amount due", readonly=True),
|
||||
}
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -0,0 +1,157 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- followup of customers views -->
|
||||
|
||||
<record id="customer_followup_tree" model="ir.ui.view">
|
||||
<field name="name">res.partner.followup.inherit.tree</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="priority" eval="20"/>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Customer Followup">
|
||||
<field name="name"/>
|
||||
<field name="payment_next_action_date"/>
|
||||
<field name="payment_next_action"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
<field name="parent_id" invisible="1"/>
|
||||
<field name="payment_responsible_id"/>
|
||||
<field name="credit"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="customer_followup_search_view" model="ir.ui.view">
|
||||
<field name="name">Search</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_res_partner_filter"/>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Partner" position="inside">
|
||||
<group string="Follow-up">
|
||||
<filter string="Partners with Credits" domain="[('credit', '>', 0.0)]" name="credits"/>
|
||||
<separator/>
|
||||
<filter string="Follow-ups To Do" domain="[('payment_next_action_date', '<=', time.strftime('%%Y-%%m-%%d')), ('credit', '>', 0.0)]" name="todo"/>
|
||||
<filter string="Future Follow-ups" domain="[('payment_next_action_date', '>', time.strftime('%%Y-%%m-%%d')), ('credit', '>', 0.0)]"/>
|
||||
<separator/>
|
||||
<filter string="No Responsible" domain="[('payment_responsible_id', '=', False)]"/>
|
||||
<filter string="My Follow-ups" domain="[('payment_responsible_id','=', uid)]"/>
|
||||
</group>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="Responsible" context="{'group_by':'payment_responsible_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="customer_followup_search_view2" model="ir.ui.view">
|
||||
<field name="name">Search</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search view">
|
||||
<field name="name"/>
|
||||
<field name="payment_next_action"/>
|
||||
<!--<filter string="Actions to be taken with overdue amount" domain="['&', ('payment_amount_outstanding', '>', 0.0), ('payment_next_action_date', '<=', time.strftime('%%Y-%%m-%%d'))]"/>
|
||||
<separator/>-->
|
||||
<filter string="Overdue amount" domain="[('credit', '>', 0.0)]"/>
|
||||
<separator/>
|
||||
<filter string="Follow-ups to do" domain="[('payment_next_action_date', '<=', time.strftime('%%Y-%%m-%%d'))]"/>
|
||||
<separator/>
|
||||
<!--filter string="Future follow-ups" domain="['&', ('payment_next_action', '!=', ''), ('payment_next_action_date', '>', time.strftime('%%Y-%%m-%%d'))]"/>-->
|
||||
<separator/>
|
||||
<filter string="Without responsible" domain="[('payment_responsible_id', '=', False)]"/>
|
||||
<filter string="I am responsible" domain="[('payment_responsible_id','=', uid)]"/>
|
||||
<group expand="1" string="Group by">
|
||||
<filter string="Responsible" context="{'group_by':'payment_responsible_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_customer_followup" model="ir.actions.act_window">
|
||||
<field name="name">Manual Follow-Ups</field>
|
||||
<field name="view_id" ref="customer_followup_tree"/>
|
||||
<field name="res_model">res.partner</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{} </field>
|
||||
<field name="context">{'Followupfirst':True, 'search_default_todo': True} </field>
|
||||
<field name="search_view_id" ref="customer_followup_search_view"/>
|
||||
</record>
|
||||
|
||||
<!--Inherited view -->
|
||||
<record id="view_partner_inherit_followup_form" model="ir.ui.view">
|
||||
<field name="name">res.partner.followup.form.inherit</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="arch" type="xml" >
|
||||
<page string="Accounting" position="before" version="7.0">
|
||||
<page string="Payment Follow-up" groups="account.group_account_invoice" name="followup_tab">
|
||||
<div class="oe_right oe_button_box" name="followup_button">
|
||||
<button name="do_button_print" type="object" string="Print Overdue Payments" groups="account.group_account_user"
|
||||
help="Print overdue payments report independent of follow-up line" attrs="{'invisible':[('credit', '<=', 0.0)]}" />
|
||||
<button name="do_partner_mail" type="object" string="Send Overdue Email" groups="account.group_account_user"
|
||||
help="If not specified by the latest follow-up level, it will send from the default follow-up of overdue invoices template" attrs="{'invisible':[('credit', '<=', 0.0)]}"/>
|
||||
</div>
|
||||
<p attrs="{'invisible':[('latest_followup_date','=', False)]}">
|
||||
The <field name="latest_followup_date" class = "oe_inline"/>, the latest payment follow-up
|
||||
was: <field name="latest_followup_level_id" class="oe_inline"/>
|
||||
</p>
|
||||
<group>
|
||||
<field name="payment_responsible_id" placeholder="Responsible of credit collection" class="oe_inline"/>
|
||||
<label for="payment_next_action"/>
|
||||
<div>
|
||||
<field name="payment_next_action_date" class="oe_inline"/>
|
||||
<button name="action_done" type="object" string="⇾ Mark as Done"
|
||||
help="Click to mark the action as done." class="oe_link"
|
||||
attrs="{'invisible':[('payment_next_action_date','=', False)]}"
|
||||
groups="base.group_partner_manager"/>
|
||||
<field name="payment_next_action" placeholder="e.g. Give a phonecall, Check if it's paid, ..."/>
|
||||
</div>
|
||||
</group>
|
||||
<label for="payment_note" class="oe_edit_only"/>
|
||||
<field name="payment_note" placeholder="e.g. 50%% before 15th of May, balance before 1st of July."/>
|
||||
<p class="oe_grey">
|
||||
Below is the history of the transactions of this
|
||||
customer. You can set an invoice in litigation in
|
||||
order to not include it in the next payment
|
||||
follow-ups.
|
||||
</p>
|
||||
<field name="unreconciled_aml_ids">
|
||||
<tree string="Account Move line" editable="bottom" create="false" delete="false" colors="red:(not date_maturity or date_maturity<=current_date) and result>0">
|
||||
<field name="date" readonly="True"/>
|
||||
<field name="move_id" readonly="True"/>
|
||||
<field name="blocked" string="Litigation"/>
|
||||
<field name="date_maturity" readonly="True"/>
|
||||
<field name="reconcile_partial_id" readonly="True"/>
|
||||
<field name="result" readonly="True"/>
|
||||
<field name="followup_line_id" invisible='1'/>
|
||||
</tree>
|
||||
</field>
|
||||
<group class="oe_subtotal_footer oe_right">
|
||||
<field name="payment_amount_due"/>
|
||||
</group>
|
||||
<div class="oe_clear"/>
|
||||
</page>
|
||||
</page>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_view_customer_followup_form" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_partner_inherit_followup_form"/>
|
||||
<field name="act_window_id" ref="action_customer_followup"/>
|
||||
</record>
|
||||
<record id="action_view_customer_followup_tree" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="customer_followup_tree"/>
|
||||
<field name="act_window_id" ref="action_customer_followup"/>
|
||||
</record>
|
||||
|
||||
<!-- Menus about followup of customers -->
|
||||
<menuitem id="account_followup_s" action="action_customer_followup"
|
||||
parent="menu_finance_followup" name="Do Manual Follow-Ups" sequence="3"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -1,19 +1,378 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record model="res.company" id="base.main_company">
|
||||
<field name="follow_up_msg">Date : %(date)s
|
||||
<!-- Mail template is done in a NOUPDATE block
|
||||
so users can freely customize/delete them -->
|
||||
<data noupdate="1">
|
||||
<!--Mail template level 0-->
|
||||
<record id="email_template_account_followup_level0" model="email.template">
|
||||
<field name="name">Follow-up of overdue invoices level 0</field>
|
||||
<field name="email_from">${user.email or ''}</field>
|
||||
<field name="subject">${user.company_id.name} Payment Follow-up</field>
|
||||
<field name="email_to">${object.email}</field>
|
||||
<field name="lang">${object.lang}</field>
|
||||
<field name="model_id" ref="base.model_res_partner"/>
|
||||
<field name="auto_delete" eval="True"/>
|
||||
<field name="body_html"><![CDATA[
|
||||
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: rgb(255, 255, 255); ">
|
||||
|
||||
<p>Dear ${object.name},</p>
|
||||
<p>
|
||||
Exception made if there was a mistake of ours, it seems that the following amount stays unpaid. Please, take
|
||||
appropriate measures in order to carry out this payment in the next 8 days.
|
||||
|
||||
Would your payment have been carried out after this mail was sent, please ignore this message. Do not hesitate to
|
||||
contact our accounting department at (+32).10.68.94.39.
|
||||
|
||||
</p>
|
||||
<br/>
|
||||
Best Regards,
|
||||
|
||||
<br/>
|
||||
${user.name}
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
<%
|
||||
from openerp.addons.account_followup.report import account_followup_print
|
||||
rml_parse = account_followup_print.report_rappel(object._cr, user.id, "followup_rml_parser")
|
||||
final_res = rml_parse._lines_get_with_partner(object, user.company_id.id)
|
||||
followup_table = ''
|
||||
for currency_dict in final_res:
|
||||
currency_symbol = currency_dict.get('line', [{'currency_id': user.company_id.currency_id}])[0]['currency_id'].symbol
|
||||
followup_table += '''
|
||||
<table border="2" width=100%%>
|
||||
<tr>
|
||||
<td>Invoice date</td>
|
||||
<td>Reference</td>
|
||||
<td>Due date</td>
|
||||
<td>Amount (%s)</td>
|
||||
<td>Lit.</td>
|
||||
</tr>
|
||||
''' % (currency_symbol)
|
||||
total = 0
|
||||
for aml in currency_dict['line']:
|
||||
block = aml['blocked'] and 'X' or ' '
|
||||
total += aml['balance']
|
||||
strbegin = "<TD> "
|
||||
strend = "</TD> "
|
||||
date = aml['date_maturity'] or aml['date']
|
||||
if date <= ctx['current_date'] and aml['balance'] > 0:
|
||||
strbegin = "<TD><B>"
|
||||
strend = "</B></TD>"
|
||||
followup_table +="<TR>" + strbegin + str(aml['date']) + strend + strbegin + aml['ref'] + strend + strbegin + str(date) + strend + strbegin + str(aml['balance']) + strend + strbegin + block + strend + "</TR>"
|
||||
total = rml_parse.formatLang(total, dp='Account', currency_obj=object.company_id.currency_id)
|
||||
followup_table += '''<tr> </tr>
|
||||
</table>
|
||||
<center>Amount due: %s </center>''' % (total)
|
||||
|
||||
%>
|
||||
|
||||
${followup_table}
|
||||
|
||||
<br/>
|
||||
|
||||
</div>
|
||||
]]></field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<!--Mail template level 1 -->
|
||||
<record id="email_template_account_followup_level1" model="email.template">
|
||||
<field name="name">Follow-up of overdue invoices level 1</field>
|
||||
<field name="email_from">${user.email or ''}</field>
|
||||
<field name="subject">${user.company_id.name} Payment Follow-up</field>
|
||||
<field name="email_to">${object.email}</field>
|
||||
<field name="lang">${object.lang}</field>
|
||||
<field name="model_id" ref="base.model_res_partner"/>
|
||||
<field name="auto_delete" eval="True"/>
|
||||
<field name="body_html"><![CDATA[
|
||||
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: rgb(255, 255, 255); ">
|
||||
|
||||
<p>Dear ${object.name},</p>
|
||||
<p>
|
||||
We are disappointed to see that despite sending a reminder, that your account is now seriously overdue.
|
||||
It is essential that immediate payment is made, otherwise we will have to consider placing a stop on your account
|
||||
which means that we will no longer be able to supply your company with (goods/services).
|
||||
Please, take appropriate measures in order to carry out this payment in the next 8 days.
|
||||
If there is a problem with paying invoice that we are not aware of, do not hesitate to contact our accounting
|
||||
department at (+32).10.68.94.39. so that we can resolve the matter quickly.
|
||||
Details of due payments is printed below.
|
||||
</p>
|
||||
<br/>
|
||||
Best Regards,
|
||||
|
||||
<br/>
|
||||
${user.name}
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<%
|
||||
from openerp.addons.account_followup.report import account_followup_print
|
||||
rml_parse = account_followup_print.report_rappel(object._cr, user.id, "followup_rml_parser")
|
||||
final_res = rml_parse._lines_get_with_partner(object, user.company_id.id)
|
||||
followup_table = ''
|
||||
for currency_dict in final_res:
|
||||
currency_symbol = currency_dict.get('line', [{'currency_id': user.company_id.currency_id}])[0]['currency_id'].symbol
|
||||
followup_table += '''
|
||||
<table border="2" width=100%%>
|
||||
<tr>
|
||||
<td>Invoice date</td>
|
||||
<td>Reference</td>
|
||||
<td>Due date</td>
|
||||
<td>Amount (%s)</td>
|
||||
<td>Lit.</td>
|
||||
</tr>
|
||||
''' % (currency_symbol)
|
||||
total = 0
|
||||
for aml in currency_dict['line']:
|
||||
block = aml['blocked'] and 'X' or ' '
|
||||
total += aml['balance']
|
||||
strbegin = "<TD> "
|
||||
strend = "</TD> "
|
||||
date = aml['date_maturity'] or aml['date']
|
||||
if date <= ctx['current_date'] and aml['balance'] > 0:
|
||||
strbegin = "<TD><B>"
|
||||
strend = "</B></TD>"
|
||||
followup_table +="<TR>" + strbegin + str(aml['date']) + strend + strbegin + aml['ref'] + strend + strbegin + str(date) + strend + strbegin + str(aml['balance']) + strend + strbegin + block + strend + "</TR>"
|
||||
total = rml_parse.formatLang(total, dp='Account', currency_obj=object.company_id.currency_id)
|
||||
followup_table += '''<tr> </tr>
|
||||
</table>
|
||||
<center>Amount due: %s </center>''' % (total)
|
||||
|
||||
%>
|
||||
|
||||
${followup_table}
|
||||
|
||||
<br/>
|
||||
|
||||
</div>
|
||||
]]></field>
|
||||
</record>
|
||||
<!--Email template -->
|
||||
<record id="email_template_account_followup_level2" model="email.template">
|
||||
<field name="name">Follow-up of overdue invoices level 2</field>
|
||||
<field name="email_from">${user.email or ''}</field>
|
||||
<field name="subject">${user.company_id.name} Payment Follow-up</field>
|
||||
<field name="email_to">${object.email}</field>
|
||||
<field name="lang">${object.lang}</field>
|
||||
<field name="model_id" ref="base.model_res_partner"/>
|
||||
<field name="auto_delete" eval="True"/>
|
||||
<field name="body_html"><![CDATA[
|
||||
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: rgb(255, 255, 255); ">
|
||||
|
||||
<p>Dear ${object.name},</p>
|
||||
<p>
|
||||
Despite several reminders, your account is still not settled.
|
||||
Unless full payment is made in next 8 days, legal action for the recovery of the debt will be taken without
|
||||
further notice.
|
||||
I trust that this action will prove unnecessary and details of due payments is printed below.
|
||||
In case of any queries concerning this matter, do not hesitate to contact our accounting department at (+32).10.68.94.39.
|
||||
</p>
|
||||
<br/>
|
||||
Best Regards,
|
||||
|
||||
<br/>
|
||||
${user.name}
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
<%
|
||||
from openerp.addons.account_followup.report import account_followup_print
|
||||
rml_parse = account_followup_print.report_rappel(object._cr, user.id, "followup_rml_parser")
|
||||
final_res = rml_parse._lines_get_with_partner(object, user.company_id.id)
|
||||
followup_table = ''
|
||||
for currency_dict in final_res:
|
||||
currency_symbol = currency_dict.get('line', [{'currency_id': user.company_id.currency_id}])[0]['currency_id'].symbol
|
||||
followup_table += '''
|
||||
<table border="2" width=100%%>
|
||||
<tr>
|
||||
<td>Invoice date</td>
|
||||
<td>Reference</td>
|
||||
<td>Due date</td>
|
||||
<td>Amount (%s)</td>
|
||||
<td>Lit.</td>
|
||||
</tr>
|
||||
''' % (currency_symbol)
|
||||
total = 0
|
||||
for aml in currency_dict['line']:
|
||||
block = aml['blocked'] and 'X' or ' '
|
||||
total += aml['balance']
|
||||
strbegin = "<TD> "
|
||||
strend = "</TD> "
|
||||
date = aml['date_maturity'] or aml['date']
|
||||
if date <= ctx['current_date'] and aml['balance'] > 0:
|
||||
strbegin = "<TD><B>"
|
||||
strend = "</B></TD>"
|
||||
followup_table +="<TR>" + strbegin + str(aml['date']) + strend + strbegin + aml['ref'] + strend + strbegin + str(date) + strend + strbegin + str(aml['balance']) + strend + strbegin + block + strend + "</TR>"
|
||||
total = rml_parse.formatLang(total, dp='Account', currency_obj=object.company_id.currency_id)
|
||||
followup_table += '''<tr> </tr>
|
||||
</table>
|
||||
<center>Amount due: %s </center>''' % (total)
|
||||
|
||||
%>
|
||||
|
||||
${followup_table}
|
||||
|
||||
<br/>
|
||||
|
||||
</div>
|
||||
]]></field>
|
||||
</record>
|
||||
|
||||
<!-- Default follow up message -->
|
||||
|
||||
<record id="email_template_account_followup_default" model="email.template">
|
||||
<field name="name">Default follow-up of overdue invoices</field>
|
||||
<field name="email_from">${user.email or ''}</field>
|
||||
<field name="subject">${user.company_id.name} Payment Follow-up</field>
|
||||
<field name="email_to">${object.email}</field>
|
||||
<field name="lang">${object.lang}</field>
|
||||
<field name="model_id" ref="base.model_res_partner"/>
|
||||
<field name="auto_delete" eval="True"/>
|
||||
<field name="body_html"><![CDATA[
|
||||
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: rgb(255, 255, 255); ">
|
||||
|
||||
<p>Dear ${object.name},</p>
|
||||
<p>
|
||||
Exception made if there was a mistake of ours, it seems that the following amount stays unpaid. Please, take
|
||||
appropriate measures in order to carry out this payment in the next 8 days.
|
||||
Would your payment have been carried out after this mail was sent, please ignore this message. Do not hesitate to
|
||||
contact our accounting department at (+32).10.68.94.39.
|
||||
</p>
|
||||
<br/>
|
||||
Best Regards,
|
||||
</br>
|
||||
</br>
|
||||
<br/>
|
||||
${user.name}
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
<%
|
||||
from openerp.addons.account_followup.report import account_followup_print
|
||||
rml_parse = account_followup_print.report_rappel(object._cr, user.id, "followup_rml_parser")
|
||||
final_res = rml_parse._lines_get_with_partner(object, user.company_id.id)
|
||||
followup_table = ''
|
||||
for currency_dict in final_res:
|
||||
currency_symbol = currency_dict.get('line', [{'currency_id': user.company_id.currency_id}])[0]['currency_id'].symbol
|
||||
followup_table += '''
|
||||
<table border="2" width=100%%>
|
||||
<tr>
|
||||
<td>Invoice date</td>
|
||||
<td>Reference</td>
|
||||
<td>Due date</td>
|
||||
<td>Amount (%s)</td>
|
||||
<td>Lit.</td>
|
||||
</tr>
|
||||
''' % (currency_symbol)
|
||||
total = 0
|
||||
for aml in currency_dict['line']:
|
||||
block = aml['blocked'] and 'X' or ' '
|
||||
total += aml['balance']
|
||||
strbegin = "<TD> "
|
||||
strend = "</TD> "
|
||||
date = aml['date_maturity'] or aml['date']
|
||||
if date <= ctx['current_date'] and aml['balance'] > 0:
|
||||
strbegin = "<TD><B>"
|
||||
strend = "</B></TD>"
|
||||
followup_table +="<TR>" + strbegin + str(aml['date']) + strend + strbegin + aml['ref'] + strend + strbegin + str(date) + strend + strbegin + str(aml['balance']) + strend + strbegin + block + strend + "</TR>"
|
||||
total = rml_parse.formatLang(total, dp='Account', currency_obj=object.company_id.currency_id)
|
||||
followup_table += '''<tr> </tr>
|
||||
</table>
|
||||
<center>Amount due: %s </center>''' % (total)
|
||||
|
||||
%>
|
||||
|
||||
${followup_table}
|
||||
|
||||
<br/>
|
||||
|
||||
</div>
|
||||
]]></field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<record id="demo_followup1" model="account_followup.followup">
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_followup_line1" model="account_followup.followup.line">
|
||||
<field name="name">Send first reminder email</field>
|
||||
<field name="sequence">0</field>
|
||||
<field name="delay">15</field>
|
||||
<field name="followup_id" ref="demo_followup1"/>
|
||||
<field name="send-email">True</field>
|
||||
<field name="description">
|
||||
Dear %(partner_name)s,
|
||||
|
||||
Please find in attachment a reminder of all your unpaid invoices, for a total amount due of:
|
||||
Exception made if there was a mistake of ours, it seems that the following amount stays unpaid. Please, take appropriate measures in order to carry out this payment in the next 8 days.
|
||||
|
||||
%(followup_amount).2f %(company_currency)s
|
||||
Would your payment have been carried out after this mail was sent, please ignore this message. Do not hesitate to contact our accounting department at (+32).10.68.94.39.
|
||||
|
||||
Thanks,
|
||||
--
|
||||
%(user_signature)s
|
||||
%(company_name)s</field>
|
||||
Best Regards,
|
||||
</field>
|
||||
<field name="email_template_id" ref="email_template_account_followup_level0"/>
|
||||
</record>
|
||||
|
||||
<record id="demo_followup_line2" model="account_followup.followup.line">
|
||||
<field name="name">Send reminder letter and email</field>
|
||||
<field name="sequence">1</field>
|
||||
<field name="delay">30</field>
|
||||
<field name="followup_id" ref="demo_followup1"/>
|
||||
<field name="email_template_id" ref="email_template_account_followup_level1"/>
|
||||
<field name="send_email">True</field>
|
||||
<field name="send_letter">True</field>
|
||||
<field name="description">
|
||||
Dear %(partner_name)s,
|
||||
|
||||
We are disappointed to see that despite sending a reminder, that your account is now seriously overdue.
|
||||
|
||||
It is essential that immediate payment is made, otherwise we will have to consider placing a stop on your account which means that we will no longer be able to supply your company with (goods/services).
|
||||
Please, take appropriate measures in order to carry out this payment in the next 8 days.
|
||||
|
||||
If there is a problem with paying invoice that we are not aware of, do not hesitate to contact our accounting department at (+32).10.68.94.39. so that we can resolve the matter quickly.
|
||||
|
||||
Details of due payments is printed below.
|
||||
|
||||
Best Regards,
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="demo_followup_line3" model="account_followup.followup.line">
|
||||
<field name="name">Call the customer on the phone</field>
|
||||
<field name="sequence">3</field>
|
||||
<field name="delay">40</field>
|
||||
<field name="followup_id" ref="demo_followup1"/>
|
||||
<field name="email_template_id" ref="email_template_account_followup_level2"/>
|
||||
<field eval="False" name="send_email"/>
|
||||
<field name="manual_action">True</field>
|
||||
<field name="manual_action_note">Call the customer on the phone! </field>
|
||||
<field name="description">
|
||||
Dear %(partner_name)s,
|
||||
|
||||
Despite several reminders, your account is still not settled.
|
||||
|
||||
Unless full payment is made in next 8 days, then legal action for the recovery of the debt will be taken without further notice.
|
||||
|
||||
I trust that this action will prove unnecessary and details of due payments is printed below.
|
||||
|
||||
In case of any queries concerning this matter, do not hesitate to contact our accounting department at (+32).10.68.94.39.
|
||||
|
||||
Best Regards,
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -1,58 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="demo_followup1" model="account_followup.followup">
|
||||
<field name="name">Default Follow-up</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="description">First letter after 15 net days, 30 net days and 45 days end of month levels.</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_followup_line1" model="account_followup.followup.line">
|
||||
<field name="name">Level 0 : 15 net days</field>
|
||||
<field name="sequence">0</field>
|
||||
<field name="start">days</field>
|
||||
<field name="delay">15</field>
|
||||
<field name="followup_id" ref="demo_followup1"/>
|
||||
<field name="description">
|
||||
Dear %(partner_name)s,
|
||||
|
||||
Exception made if there was a mistake of ours, it seems that the following amount stays unpaid. Please, take appropriate measures in order to carry out this payment in the next 8 days.
|
||||
|
||||
Would your payment have been carried out after this mail was sent, please ignore this message. Do not hesitate to contact our accounting department at (+32).10.68.94.39.
|
||||
|
||||
Best Regards,
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_followup_line2" model="account_followup.followup.line">
|
||||
<field name="name">Level 1 : 30 net days</field>
|
||||
<field name="sequence">1</field>
|
||||
<field name="start">days</field>
|
||||
<field name="delay">30</field>
|
||||
<field name="followup_id" ref="demo_followup1"/>
|
||||
<field name="description">
|
||||
Dear %(partner_name)s,
|
||||
|
||||
We are disappointed to see that despite sending a reminder, that your account is now seriously overdue.
|
||||
|
||||
It is essential that immediate payment is made, otherwise we will have to consider placing a stop on your account which means that we will no longer be able to supply your company with (goods/services).
|
||||
Please, take appropriate measures in order to carry out this payment in the next 8 days.
|
||||
|
||||
If there is a problem with paying invoice that we are not aware of, do not hesitate to contact our accounting department at (+32).10.68.94.39. so that we can resolve the matter quickly.
|
||||
|
||||
Details of due payments is printed below.
|
||||
|
||||
Best Regards,
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="demo_followup_line3" model="account_followup.followup.line">
|
||||
<field name="name">Level 2 : 45 days end of month</field>
|
||||
<field name="sequence">2</field>
|
||||
<field name="start">end_of_month</field>
|
||||
<field name="delay">45</field>
|
||||
<data noupdate="1">
|
||||
<record id="demo_followup_line4" model="account_followup.followup.line">
|
||||
<field name="name">Urging reminder email</field>
|
||||
<field name="sequence">4</field>
|
||||
<field name="delay">50</field>
|
||||
<field name="followup_id" ref="demo_followup1"/>
|
||||
<field name="send_email">True</field>
|
||||
<field name="email_template_id" ref="email_template_account_followup_level2"/>
|
||||
<field name="description">
|
||||
Dear %(partner_name)s,
|
||||
|
||||
|
@ -65,8 +20,29 @@ I trust that this action will prove unnecessary and details of due payments is p
|
|||
In case of any queries concerning this matter, do not hesitate to contact our accounting department at (+32).10.68.94.39.
|
||||
|
||||
Best Regards,
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
<record id="demo_followup_line5" model="account_followup.followup.line">
|
||||
<field name="name">Urging reminder letter</field>
|
||||
<field name="sequence">5</field>
|
||||
<field name="delay">60</field>
|
||||
<field name="followup_id" ref="demo_followup1"/>
|
||||
<field eval="False" name="send_email"/>
|
||||
<field name="send_letter">True</field>
|
||||
<field name="email_template_id" ref="email_template_account_followup_level2"/>
|
||||
<field name="description">
|
||||
Dear %(partner_name)s,
|
||||
|
||||
Despite several reminders, your account is still not settled.
|
||||
|
||||
Unless full payment is made in next 8 days, then legal action for the recovery of the debt will be taken without further notice.
|
||||
|
||||
I trust that this action will prove unnecessary and details of due payments is printed below.
|
||||
|
||||
In case of any queries concerning this matter, do not hesitate to contact our accounting department at (+32).10.68.94.39.
|
||||
|
||||
Best Regards,
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<record id="view_account_followup_followup_line_tree" model="ir.ui.view">
|
||||
<field name="name">account_followup.followup.line.tree</field>
|
||||
<field name="model">account_followup.followup.line</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Follow-up Steps">
|
||||
<tree string="Follow-up Steps" >
|
||||
<field name="name"/>
|
||||
<field name="delay"/>
|
||||
<field name="start"/>
|
||||
<field name="send_email"/>
|
||||
<field name="send_letter"/>
|
||||
<field name="manual_action"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -18,19 +20,47 @@
|
|||
<field name="model">account_followup.followup.line</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Follow-up Steps" version="7.0">
|
||||
<group col="4">
|
||||
<field name="name"/>
|
||||
<field name="delay"/>
|
||||
<field name="start"/>
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
<h1><field name="name"/></h1>
|
||||
<div class="oe_inline">
|
||||
After <field name="delay" class="oe_inline"/> days overdue, do the following actions:
|
||||
</div>
|
||||
<div>
|
||||
<field name="manual_action" class="oe_inline"/>
|
||||
<label for="manual_action"/>
|
||||
</div><div>
|
||||
<field name="send_email" class="oe_inline"/>
|
||||
<label for="send_email"/>
|
||||
</div><div>
|
||||
<field name="send_letter" class="oe_inline"/>
|
||||
<label for="send_letter"/>
|
||||
</div>
|
||||
|
||||
<group string="Manual Action" attrs="{'invisible': [('manual_action', '=', False)]}">
|
||||
<field name="manual_action_responsible_id"/>
|
||||
<field name="manual_action_note" attrs="{'required': [('manual_action', '<>', False)]}"
|
||||
placeholder="e.g. Call the customer, check if it's paid, ..."/>
|
||||
</group>
|
||||
<separator string="Message"/>
|
||||
<field name="description"/>
|
||||
<separator string="Legend"/>
|
||||
<group>
|
||||
<label string="%%(partner_name)s: Partner Name"/>
|
||||
<label string="%%(date)s: Current Date"/>
|
||||
<label string="%%(user_signature)s: User Name"/>
|
||||
<label string="%%(company_name)s: User's Company Name"/>
|
||||
|
||||
<group string="Send an Email" attrs="{'invisible': [('send_email', '=', False)]}">
|
||||
<field name="email_template_id" attrs="{'required': [('send_email', '<>', False)]}"/>
|
||||
</group>
|
||||
|
||||
<group string="Send a Letter" attrs="{'invisible': [('send_letter', '=', False)]}">
|
||||
<p colspan="2" class="oe_grey">
|
||||
Write here the introduction in the letter,
|
||||
according to the level of the follow-up. You can
|
||||
use the following keywords in the text. Don't
|
||||
forget to translate in all languages you installed
|
||||
using to top right icon.
|
||||
<group class="oe_grey">
|
||||
<b>%%(partner_name)s</b>: Partner Name
|
||||
<b>%%(date)s</b>: Current Date
|
||||
<b>%%(user_signature)s</b>: User Name
|
||||
<b>%%(company_name)s</b>: User's Company Name
|
||||
</group>
|
||||
</p>
|
||||
<field name="description" nolabel="1" colspan="2"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
|
@ -39,12 +69,18 @@
|
|||
<record id="view_account_followup_followup_form" model="ir.ui.view">
|
||||
<field name="name">account_followup.followup.form</field>
|
||||
<field name="model">account_followup.followup</field>
|
||||
<!-- <field name="group_ids" groups="base.group_multi_company"/>-->
|
||||
<field name="arch" type="xml">
|
||||
<form string="Follow-up" version="7.0">
|
||||
<group col="4">
|
||||
<field name="name"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<h1><field name="company_id" widget="selection" class="oe_inline"/></h1>
|
||||
<p class="oe_grey">
|
||||
To remind customers of paying their invoices, you can
|
||||
define different actions depending on how severely
|
||||
overdue the customer is. These actions are bundled
|
||||
into folow-up levels that are triggered when the due
|
||||
date of the most overdue invoice has passed a certain
|
||||
amount of days.
|
||||
</p>
|
||||
<field name="followup_line"/>
|
||||
</form>
|
||||
</field>
|
||||
|
@ -55,8 +91,7 @@
|
|||
<field name="model">account_followup.followup</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Follow-up">
|
||||
<field name="name"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="company_id" /> <!--groups="base.group_multi_company"-->
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -66,31 +101,50 @@
|
|||
<field name="model">account_followup.followup</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Follow-up">
|
||||
<field name="name" string="Follow-up"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_account_followup_definition_form" model="ir.actions.act_window">
|
||||
<field name="name">Follow-ups</field>
|
||||
<field name="name">Payment Follow-ups</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">account_followup.followup</field>
|
||||
<field name="search_view_id" ref="view_account_followup_filter"/>
|
||||
<field name="view_type">form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to define follow-up levels and their related messages.
|
||||
Click to define follow-up levels and their related actions.
|
||||
</p><p>
|
||||
For each step, specify the message and the day of delay. Use
|
||||
the legend to know the using code to adapt the email content to
|
||||
the good context (good name, good date) and you can manage the
|
||||
multi language of messages.
|
||||
For each step, specify the actions to be taken and delay in days. It is
|
||||
possible to use print and e-mail templates to send specific messages to
|
||||
the customer.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_account_manual_reconcile_receivable" model="ir.actions.act_window">
|
||||
<field name="name">Reconcile Invoices & Payments</field>
|
||||
<field name="search_view_id" ref="view_account_followup_filter"/>
|
||||
<field name="context">{'search_default_unreconciled': 1,'view_mode':True}</field>
|
||||
<field name="domain">[('account_id.type', '=', 'receivable')]</field>
|
||||
<field name="res_model">account.move.line</field>
|
||||
<field name="view_id" ref="account.view_move_line_tree_reconcile"/>
|
||||
<field name="view_mode">tree_account_reconciliation</field>
|
||||
<field name="help" type="html">
|
||||
<p>
|
||||
No journal items found.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<menuitem action="action_account_followup_definition_form" id="account_followup_menu" parent="account.menu_configuration_misc"/>
|
||||
|
||||
<menuitem
|
||||
name="Reconcile Invoices & Payments"
|
||||
action="action_account_manual_reconcile_receivable"
|
||||
parent="menu_finance_followup"
|
||||
sequence="0"
|
||||
id="menu_manual_reconcile_followup"/>
|
||||
|
||||
<menuitem action="action_account_followup_definition_form" id="account_followup_menu" parent="account.menu_finance_configuration" name="Follow-up Levels"/>
|
||||
<report auto="False" id="account_followup_followup_report" menu="False" model="account_followup.followup" name="account_followup.followup.print" rml="account_followup/report/account_followup_print.rml" string="Follow-up Report"/>
|
||||
|
||||
<record id="account_move_line_partner_tree" model="ir.ui.view">
|
||||
|
@ -139,25 +193,5 @@
|
|||
</field>
|
||||
</record> -->
|
||||
|
||||
<act_window domain="[('reconcile_id', '=', False),('account_id.type','=','receivable')]" id="act_account_partner_account_move_all" name="Receivable Items" res_model="account.move.line" src_model="" view_id="account_move_line_partner_tree"/>
|
||||
|
||||
<!--<menuitem action="act_account_partner_account_move_all" id="menu_account_move_open_unreconcile" parent="account_followup.menu_action_followup_stat"/> -->
|
||||
|
||||
<act_window domain="[('reconcile_id', '=', False), ('account_id.type','=','payable')]" id="act_account_partner_account_move_payable_all" name="Payable Items" res_model="account.move.line" src_model="" view_id="account_move_line_partner_tree"/>
|
||||
|
||||
<!-- <menuitem action="act_account_partner_account_move_payable_all" id="menu_account_move_open_unreconcile_payable" parent="account_followup.menu_action_followup_stat"/> -->
|
||||
|
||||
<record model="ir.ui.view" id="view_company_inherit_followup_form">
|
||||
<field name="name">res.company.followup.form.inherit</field>
|
||||
<field name="inherit_id" ref="account.view_company_inherit_form"/>
|
||||
<field name="model">res.company</field>
|
||||
<field name="arch" type="xml">
|
||||
<field name="overdue_msg" nolabel="1" colspan="4" position="after">
|
||||
<separator string="Follow-up Message" colspan="4"/>
|
||||
<field name="follow_up_msg" nolabel="1" colspan="4"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -7,13 +7,13 @@ 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-29 14:16+0000\n"
|
||||
"Last-Translator: dquo <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-11-30 12:07+0000\n"
|
||||
"Last-Translator: ccdos <ccdos@163.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:06+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:07+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: account_followup
|
||||
|
@ -540,6 +540,13 @@ msgid ""
|
|||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" 单击定义催款级别和他们相关的信息\n"
|
||||
" </p><p>\n"
|
||||
" 每个步骤可指定消息和延时天数。\n"
|
||||
" 能管理多种语言的消息。\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: account_followup
|
||||
#: field:account_followup.stat,date_move_last:0
|
||||
|
|
|
@ -25,7 +25,7 @@ import pooler
|
|||
from report import report_sxw
|
||||
|
||||
class report_rappel(report_sxw.rml_parse):
|
||||
def __init__(self, cr, uid, name, context):
|
||||
def __init__(self, cr, uid, name, context=None):
|
||||
super(report_rappel, self).__init__(cr, uid, name, context=context)
|
||||
self.localcontext.update({
|
||||
'time': time,
|
||||
|
@ -43,14 +43,17 @@ class report_rappel(report_sxw.rml_parse):
|
|||
return all_lines
|
||||
|
||||
def _lines_get(self, stat_by_partner_line):
|
||||
return self._lines_get_with_partner(stat_by_partner_line.partner_id, stat_by_partner_line.company_id.id)
|
||||
|
||||
def _lines_get_with_partner(self, partner, company_id):
|
||||
pool = pooler.get_pool(self.cr.dbname)
|
||||
moveline_obj = pool.get('account.move.line')
|
||||
company_obj = pool.get('res.company')
|
||||
obj_currency = pool.get('res.currency')
|
||||
movelines = moveline_obj.search(self.cr, self.uid,
|
||||
[('partner_id', '=', stat_by_partner_line.partner_id.id),
|
||||
[('partner_id', '=', partner.id),
|
||||
('account_id.type', '=', 'receivable'),
|
||||
('reconcile_id', '=', False), ('state', '<>', 'draft'),('company_id','=', stat_by_partner_line.company_id.id)])
|
||||
('reconcile_id', '=', False), ('state', '<>', 'draft'),('company_id','=', company_id)])
|
||||
movelines = moveline_obj.browse(self.cr, self.uid, movelines)
|
||||
base_currency = movelines[0].company_id.currency_id
|
||||
final_res = []
|
||||
|
@ -67,7 +70,7 @@ class report_rappel(report_sxw.rml_parse):
|
|||
'date_maturity': line.date_maturity,
|
||||
'balance': currency.id <> line.company_id.currency_id.id and line.amount_currency or (line.debit - line.credit),
|
||||
'blocked': line.blocked,
|
||||
'currency_id': currency.symbol or currency.name,
|
||||
'currency_id': currency,
|
||||
}
|
||||
line_cur[currency.id]['line'].append(line_data)
|
||||
|
||||
|
@ -88,7 +91,7 @@ class report_rappel(report_sxw.rml_parse):
|
|||
li_delay.sort(reverse=True)
|
||||
text = ""
|
||||
a = {}
|
||||
partner_line_ids = pooler.get_pool(self.cr.dbname).get('account.move.line').search(self.cr, self.uid, [('partner_id','=',stat_line.partner_id.id),('reconcile_id','=',False),('company_id','=',stat_line.company_id.id)])
|
||||
partner_line_ids = pooler.get_pool(self.cr.dbname).get('account.move.line').search(self.cr, self.uid, [('partner_id','=',stat_line.partner_id.id),('reconcile_id','=',False),('company_id','=',stat_line.company_id.id),('blocked','=',False)])
|
||||
partner_delay = []
|
||||
context.update({'lang': stat_line.partner_id.lang})
|
||||
for i in pooler.get_pool(self.cr.dbname).get('account.move.line').browse(self.cr, self.uid, partner_line_ids, context):
|
||||
|
|
|
@ -194,7 +194,7 @@
|
|||
<para style="terp_default_Centre_9">[[ line['date_maturity'] and formatLang(line['date_maturity'], date=True) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(line['balance']) ]] [[ line['currency_id'] ]]</para>
|
||||
<para style="terp_default_Right_9">[[ formatLang(line['balance'], currency_obj=line['currency_id']) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Centre_9">[[ line['blocked'] and 'X' or '' ]]</para>
|
||||
|
@ -212,7 +212,7 @@
|
|||
<para style="terp_tblheader_Details_Centre">Total: </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[formatLang(reduce(lambda x,y: x+y['balance'], cur_lines['line'], 0.00)) ]] [[ line['currency_id'] ]] </para>
|
||||
<para style="terp_default_Right_9">[[formatLang(reduce(lambda x,y: x+y['balance'], cur_lines['line'], 0.00), currency_obj=line['currency_id']) ]] </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">
|
||||
|
|
|
@ -64,8 +64,8 @@
|
|||
<field name="context">{'search_default_followup_level':1}</field>
|
||||
<field name="search_view_id" ref="view_account_followup_stat_search"/>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_followup_stat" id="menu_action_followup_stat_follow" parent="account.next_id_22" groups="account.group_account_user"/>
|
||||
<menuitem id="menu_finance_followup" parent="account.menu_finance" name="Payment Follow-up" groups="account.group_account_invoice"/>
|
||||
<menuitem action="action_followup_stat" id="menu_action_followup_stat_follow" parent="account.menu_finance_reporting" groups="account.group_account_invoice" name="Follow-Ups Analysis" sequence="10"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_account_followup_followup_line,account_followup.followup.line,model_account_followup_followup_line,account.group_account_user,1,0,0,0
|
||||
access_account_followup_followup_line_manager,account_followup.followup.line.manager,model_account_followup_followup_line,account.group_account_manager,1,1,1,1
|
||||
access_account_followup_followup_accountant,account_followup.followup user,model_account_followup_followup,account.group_account_user,1,0,0,0
|
||||
access_account_followup_followup_manager,account_followup.followup.manager,model_account_followup_followup,account.group_account_manager,1,1,1,1
|
||||
access_account_followup_stat_invoice,account_followup.stat.invoice,model_account_followup_stat,account.group_account_invoice,1,1,1,1
|
||||
access_account_followup_stat_by_partner_manager,account_followup.stat.by.partner,model_account_followup_stat_by_partner,account.group_account_manager,1,1,1,1
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_account_followup_followup_line,account_followup.followup.line,model_account_followup_followup_line,account.group_account_invoice,1,0,0,0
|
||||
access_account_followup_followup_line_manager,account_followup.followup.line.manager,model_account_followup_followup_line,account.group_account_manager,1,1,1,1
|
||||
access_account_followup_followup_accountant,account_followup.followup user,model_account_followup_followup,account.group_account_invoice,1,0,0,0
|
||||
access_account_followup_followup_manager,account_followup.followup.manager,model_account_followup_followup,account.group_account_manager,1,1,1,1
|
||||
access_account_followup_stat_invoice,account_followup.stat.invoice,model_account_followup_stat,account.group_account_invoice,1,1,1,1
|
||||
access_account_followup_stat_by_partner_manager,account_followup.stat.by.partner,model_account_followup_stat_by_partner,account.group_account_user,1,1,1,1
|
||||
|
|
|
|
@ -3,34 +3,23 @@
|
|||
-
|
||||
!record {model: account.invoice, id: account.demo_invoice_0}:
|
||||
check_total: 14.0
|
||||
-
|
||||
date_invoice: 2012-06-2
|
||||
invoice_line:
|
||||
- account_id : account.a_sale
|
||||
name: 'Test PC'
|
||||
quantity: 1.0
|
||||
journal_id: account.bank_journal
|
||||
partner_id: base.res_partner_12
|
||||
reference_type: none
|
||||
-
|
||||
!workflow {model: account.invoice, action: invoice_open, ref: account.demo_invoice_0}
|
||||
-
|
||||
I create a follow-up.
|
||||
-
|
||||
!record {model: account.followup.print, id: account_followup_print_0}:
|
||||
!record {model: account_followup.print, id: account_followup_print_0}:
|
||||
{}
|
||||
-
|
||||
I select the follow-up to send it to the partner.
|
||||
-
|
||||
!python {model: account.followup.print}: |
|
||||
self.do_continue(cr, uid, [ref("account_followup_print_0")], {"active_ids": [ref("account_followup.account_followup_print_menu")], "active_id": ref("account_followup.account_followup_print_menu"),
|
||||
})
|
||||
-
|
||||
I select partners whom I want to send follow-ups.
|
||||
-
|
||||
!record {model: account.followup.print.all, id: account_followup_print_all_0}:
|
||||
email_body: 'Date : %(date)s\n\nDear %(partner_name)s,\n\nPlease find in attachment
|
||||
a reminder of all your unpaid invoices, for a total amount due of:\n\n%(followup_amount).2f
|
||||
%(company_currency)s\n\nThanks,\n--\n%(user_signature)s\n%(company_name)s'
|
||||
email_subject: Invoices Reminder
|
||||
partner_ids:
|
||||
- base.res_partner_12
|
||||
partner_lang: 1
|
||||
-
|
||||
I send a follow-up mail to partner.
|
||||
-
|
||||
!python {model: account.followup.print.all}: |
|
||||
import time
|
||||
self.do_mail(cr, uid, [ref("account_followup_print_all_0")], {"active_ids": [ref("account_followup.account_followup_print_menu")], "date": time.strftime('%Y-%m-%d'), "followup_id": ref("account_followup.demo_followup1"), "active_id": ref("account_followup.account_followup_print_menu"),
|
||||
})
|
||||
-
|
||||
I will process follow-ups
|
||||
-
|
||||
!python {model: account_followup.print}: |
|
||||
self.do_process(cr, uid, [ref("account_followup_print_0")], {"active_ids": [ref("account_followup.account_followup_print_menu")], "active_id": ref("account_followup.account_followup_print_menu"),})
|
|
@ -1,10 +0,0 @@
|
|||
-
|
||||
In order to test the report I print follow-up report.
|
||||
-
|
||||
!python {model: account.followup.print.all}: |
|
||||
import time
|
||||
ctx = {'form_view_ref':'account_followup.view_account_followup_print_all', 'followup_id': ref('account_followup.demo_followup1'),'date': time.strftime('%Y-%m-%d'),'model': 'account_followup.followup','active_ids':[ref('account_followup_print_all_0')], 'company_id':ref('base.main_company')}
|
||||
data_dict = {'email_conf': 1}
|
||||
from tools import test_reports
|
||||
test_reports.try_report_action(cr, uid, 'action_account_followup_print_all', context=ctx, wiz_data=data_dict,wiz_buttons=["Print Follow-ups"], our_module='account_followup')
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Business Applications
|
||||
# Copyright (c) 2012-TODAY OpenERP S.A. <http://openerp.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
from . import test_account_followup
|
||||
|
||||
checks = [
|
||||
test_account_followup,
|
||||
]
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,159 @@
|
|||
|
||||
|
||||
import datetime
|
||||
|
||||
import tools
|
||||
from openerp.tests.common import TransactionCase
|
||||
|
||||
import netsvc
|
||||
|
||||
class TestAccountFollowup(TransactionCase):
|
||||
def setUp(self):
|
||||
""" setUp ***"""
|
||||
super(TestAccountFollowup, self).setUp()
|
||||
cr, uid = self.cr, self.uid
|
||||
|
||||
self.user = self.registry('res.users')
|
||||
self.user_id = self.user.browse(cr, uid, uid)
|
||||
self.partner = self.registry('res.partner')
|
||||
self.invoice = self.registry('account.invoice')
|
||||
self.invoice_line = self.registry('account.invoice.line')
|
||||
self.wizard = self.registry('account_followup.print')
|
||||
self.followup_id = self.registry('account_followup.followup')
|
||||
|
||||
self.partner_id = self.partner.create(cr, uid, {'name':'Test Company',
|
||||
'email':'test@localhost',
|
||||
'is_company': True,
|
||||
},
|
||||
context=None)
|
||||
self.followup_id = self.registry("ir.model.data").get_object_reference(cr, uid, "account_followup", "demo_followup1")[1]
|
||||
self.account_id = self.registry("ir.model.data").get_object_reference(cr, uid, "account", "a_recv")[1]
|
||||
self.journal_id = self.registry("ir.model.data").get_object_reference(cr, uid, "account", "bank_journal")[1]
|
||||
self.pay_account_id = self.registry("ir.model.data").get_object_reference(cr, uid, "account", "cash")[1]
|
||||
self.period_id = self.registry("ir.model.data").get_object_reference(cr, uid, "account", "period_10")[1]
|
||||
|
||||
self.first_followup_line_id = self.registry("ir.model.data").get_object_reference(cr, uid, "account_followup", "demo_followup_line1")[1]
|
||||
self.last_followup_line_id = self.registry("ir.model.data").get_object_reference(cr, uid, "account_followup", "demo_followup_line3")[1]
|
||||
self.product_id = self.registry("ir.model.data").get_object_reference(cr, uid, "product", "product_product_6")[1]
|
||||
self.invoice_id = self.invoice.create(cr, uid, {'partner_id': self.partner_id,
|
||||
'account_id': self.account_id,
|
||||
'journal_id': self.journal_id,
|
||||
'invoice_line': [(0, 0, {
|
||||
'name': "LCD Screen",
|
||||
'product_id': self.product_id,
|
||||
'quantity': 5,
|
||||
'price_unit':200
|
||||
})]})
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'account.invoice', self.invoice_id, 'invoice_open', cr)
|
||||
|
||||
self.voucher = self.registry("account.voucher")
|
||||
|
||||
|
||||
def test_00_send_followup_after_3_days(self):
|
||||
""" Send follow up after 3 days and check nothing is done (as first follow-up level is only after 15 days)"""
|
||||
cr, uid = self.cr, self.uid
|
||||
current_date = datetime.datetime.now()
|
||||
delta = datetime.timedelta(days=3)
|
||||
result = current_date + delta
|
||||
self.wizard_id = self.wizard.create(cr, uid, {'date':result.strftime("%Y-%m-%d"),
|
||||
'followup_id': self.followup_id
|
||||
}, context={"followup_id": self.followup_id})
|
||||
self.wizard.do_process(cr, uid, [self.wizard_id], context={"followup_id": self.followup_id})
|
||||
self.assertFalse(self.partner.browse(cr, uid, self.partner_id).latest_followup_level_id)
|
||||
|
||||
|
||||
def run_wizard_three_times(self):
|
||||
cr, uid = self.cr, self.uid
|
||||
current_date = datetime.datetime.now()
|
||||
delta = datetime.timedelta(days=40)
|
||||
result = current_date + delta
|
||||
self.wizard_id = self.wizard.create(cr, uid, {'date':result.strftime("%Y-%m-%d"),
|
||||
'followup_id': self.followup_id
|
||||
}, context={"followup_id": self.followup_id})
|
||||
self.wizard.do_process(cr, uid, [self.wizard_id], context={"followup_id": self.followup_id})
|
||||
self.wizard_id = self.wizard.create(cr, uid, {'date':result.strftime("%Y-%m-%d"),
|
||||
'followup_id': self.followup_id
|
||||
}, context={"followup_id": self.followup_id})
|
||||
self.wizard.do_process(cr, uid, [self.wizard_id], context={"followup_id": self.followup_id})
|
||||
self.wizard_id = self.wizard.create(cr, uid, {'date':result.strftime("%Y-%m-%d"),
|
||||
'followup_id': self.followup_id
|
||||
}, context={"followup_id": self.followup_id})
|
||||
self.wizard.do_process(cr, uid, [self.wizard_id], context={"followup_id": self.followup_id})
|
||||
|
||||
|
||||
def test_01_send_followup_later_for_upgrade(self):
|
||||
""" Send one follow-up after 15 days to check it upgrades to level 1"""
|
||||
cr, uid = self.cr, self.uid
|
||||
current_date = datetime.datetime.now()
|
||||
delta = datetime.timedelta(days=15)
|
||||
result = current_date + delta
|
||||
self.wizard_id = self.wizard.create(cr, uid, {
|
||||
'date':result.strftime("%Y-%m-%d"),
|
||||
'followup_id': self.followup_id
|
||||
}, context={"followup_id": self.followup_id})
|
||||
self.wizard.do_process(cr, uid, [self.wizard_id], context={"followup_id": self.followup_id})
|
||||
self.assertEqual(self.partner.browse(cr, uid, self.partner_id).latest_followup_level_id.id, self.first_followup_line_id,
|
||||
"Not updated to the correct follow-up level")
|
||||
|
||||
def test_02_check_manual_action(self):
|
||||
""" Check that when running the wizard three times that the manual action is set"""
|
||||
cr, uid = self.cr, self.uid
|
||||
self.run_wizard_three_times()
|
||||
self.assertEqual(self.partner.browse(cr, uid, self.partner_id).payment_next_action,
|
||||
"Call the customer on the phone! ", "Manual action not set")
|
||||
self.assertEqual(self.partner.browse(cr, uid, self.partner_id).payment_next_action_date,
|
||||
datetime.datetime.now().strftime("%Y-%m-%d"))
|
||||
|
||||
def test_03_filter_on_credit(self):
|
||||
""" Check the partners can be filtered on having credits """
|
||||
cr, uid = self.cr, self.uid
|
||||
ids = self.partner.search(cr, uid, [('credit', '>=', 0.0)])
|
||||
self.assertIn(self.partner_id, ids)
|
||||
|
||||
def test_04_action_done(self):
|
||||
""" Run the wizard 3 times, mark it as done, check the action fields are empty"""
|
||||
cr, uid = self.cr, self.uid
|
||||
partner_rec = self.partner.browse(cr, uid, self.partner_id)
|
||||
self.run_wizard_three_times()
|
||||
self.partner.action_done(cr, uid, self.partner_id)
|
||||
self.assertEqual(partner_rec.payment_next_action,
|
||||
"", "Manual action not emptied")
|
||||
self.assertFalse(partner_rec.payment_responsible_id)
|
||||
self.assertFalse(partner_rec.payment_next_action_date)
|
||||
|
||||
def test_05_litigation(self):
|
||||
""" Set the account move line as litigation, run the wizard 3 times and check nothing happened.
|
||||
Turn litigation off. Run the wizard 3 times and check it is in the right follow-up level.
|
||||
"""
|
||||
cr, uid = self.cr, self.uid
|
||||
aml_id = self.partner.browse(cr, uid, self.partner_id).unreconciled_aml_ids[0].id
|
||||
self.registry('account.move.line').write(cr, uid, aml_id, {'blocked': True})
|
||||
self.run_wizard_three_times()
|
||||
self.assertFalse(self.partner.browse(cr, uid, self.partner_id).latest_followup_level_id, "Litigation does not work")
|
||||
self.registry('account.move.line').write(cr, uid, aml_id, {'blocked': False})
|
||||
self.run_wizard_three_times()
|
||||
self.assertEqual(self.partner.browse(cr, uid, self.partner_id).latest_followup_level_id.id,
|
||||
self.last_followup_line_id, "Lines are not equal")
|
||||
|
||||
def test_06_pay_the_invoice(self):
|
||||
"""Run wizard until manual action, pay the invoice and check that partner has no follow-up level anymore and after running the wizard the action is empty"""
|
||||
cr, uid = self.cr, self.uid
|
||||
self.test_02_check_manual_action()
|
||||
current_date = datetime.datetime.now()
|
||||
delta = datetime.timedelta(days=1)
|
||||
result = current_date + delta
|
||||
self.invoice.pay_and_reconcile(cr, uid, [self.invoice_id], 1000.0, self.pay_account_id,
|
||||
self.period_id, self.journal_id, self.pay_account_id,
|
||||
self.period_id, self.journal_id,
|
||||
name = "Payment for test customer invoice follow-up")
|
||||
self.assertFalse(self.partner.browse(cr, uid, self.partner_id).latest_followup_level_id, "Level not empty")
|
||||
self.wizard_id = self.wizard.create(cr, uid, {'date':result.strftime("%Y-%m-%d"),
|
||||
'followup_id': self.followup_id
|
||||
}, context={"followup_id": self.followup_id})
|
||||
self.wizard.do_process(cr, uid, [self.wizard_id], context={"followup_id": self.followup_id})
|
||||
partner_ref = self.partner.browse(cr, uid, self.partner_id)
|
||||
print partner_ref.credit, partner_ref.payment_next_action_date, partner_ref.payment_responsible_id
|
||||
self.assertEqual(0, self.partner.browse(cr, uid, self.partner_id).credit, "Credit != 0")
|
||||
self.assertFalse(self.partner.browse(cr, uid, self.partner_id).payment_next_action_date, "Next action date not cleared")
|
||||
|
|
@ -26,49 +26,6 @@ import tools
|
|||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
|
||||
class account_followup_print(osv.osv_memory):
|
||||
_name = 'account.followup.print'
|
||||
_description = 'Print Follow-up & Send Mail to Customers'
|
||||
_columns = {
|
||||
'date': fields.date('Follow-up Sending Date', required=True, help="This field allow you to select a forecast date to plan your follow-ups"),
|
||||
'followup_id': fields.many2one('account_followup.followup', 'Follow-Up', required=True),
|
||||
}
|
||||
|
||||
def _get_followup(self, cr, uid, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
if context.get('active_model', 'ir.ui.menu') == 'account_followup.followup':
|
||||
return context.get('active_id', False)
|
||||
company_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id
|
||||
followp_id = self.pool.get('account_followup.followup').search(cr, uid, [('company_id', '=', company_id)], context=context)
|
||||
return followp_id and followp_id[0] or False
|
||||
|
||||
def do_continue(self, cr, uid, ids, context=None):
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.browse(cr, uid, ids, context=context)[0]
|
||||
model_data_ids = mod_obj.search(cr, uid, [('model','=','ir.ui.view'),('name','=','view_account_followup_print_all')], context=context)
|
||||
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||
context.update({'followup_id': data.followup_id.id, 'date': data.date, 'company_id': data.followup_id.company_id.id})
|
||||
return {
|
||||
'name': _('Select Partners'),
|
||||
'view_type': 'form',
|
||||
'context': context,
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'account.followup.print.all',
|
||||
'views': [(resource_id,'form')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'target': 'new',
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'date': lambda *a: time.strftime('%Y-%m-%d'),
|
||||
'followup_id': _get_followup,
|
||||
}
|
||||
account_followup_print()
|
||||
|
||||
class account_followup_stat_by_partner(osv.osv):
|
||||
_name = "account_followup.stat.by.partner"
|
||||
_description = "Follow-up Statistics by Partner"
|
||||
|
@ -110,50 +67,201 @@ class account_followup_stat_by_partner(osv.osv):
|
|||
a.active AND
|
||||
a.type = 'receivable' AND
|
||||
l.reconcile_id is NULL AND
|
||||
l.partner_id IS NOT NULL
|
||||
l.partner_id IS NOT NULL AND
|
||||
(l.blocked = False)
|
||||
GROUP BY
|
||||
l.partner_id, l.company_id
|
||||
)""")
|
||||
)""") #Blocked is to take into account litigation
|
||||
account_followup_stat_by_partner()
|
||||
|
||||
class account_followup_print_all(osv.osv_memory):
|
||||
_name = 'account.followup.print.all'
|
||||
_description = 'Print Follow-up & Send Mail to Customers'
|
||||
_columns = {
|
||||
'partner_ids': fields.many2many('account_followup.stat.by.partner', 'partner_stat_rel', 'osv_memory_id', 'partner_id', 'Partners', required=True),
|
||||
'email_conf': fields.boolean('Send Email Confirmation'),
|
||||
'email_subject': fields.char('Email Subject', size=64),
|
||||
'partner_lang': fields.boolean('Send Email in Partner Language', help='Do not change message text, if you want to send email in partner language, or configure from company'),
|
||||
'email_body': fields.text('Email Body'),
|
||||
'summary': fields.text('Summary', required=True, readonly=True),
|
||||
'test_print': fields.boolean('Test Print', help='Check if you want to print follow-ups without changing follow-ups level.')
|
||||
}
|
||||
def _get_summary(self, cr, uid, context=None):
|
||||
|
||||
class account_followup_sending_results(osv.osv_memory):
|
||||
|
||||
def do_report(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
return context.get('summary', '')
|
||||
return context.get('report_data')
|
||||
|
||||
def _get_partners(self, cr, uid, context=None):
|
||||
return self._get_partners_followp(cr, uid, [], context=context)['partner_ids']
|
||||
def do_done(self, cr, uid, ids, context=None):
|
||||
return {}
|
||||
|
||||
def _get_description(self, cr, uid, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
return context.get('description')
|
||||
|
||||
def _get_need_printing(self, cr, uid, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
return context.get('needprinting')
|
||||
|
||||
_name = 'account_followup.sending.results'
|
||||
_description = 'Results from the sending of the different letters and emails'
|
||||
_columns = {
|
||||
'description': fields.text("Description", readonly=True),
|
||||
'needprinting': fields.boolean("Needs Printing")
|
||||
}
|
||||
_defaults = {
|
||||
'needprinting':_get_need_printing,
|
||||
'description':_get_description,
|
||||
}
|
||||
|
||||
account_followup_sending_results()
|
||||
|
||||
|
||||
class account_followup_print(osv.osv_memory):
|
||||
_name = 'account_followup.print'
|
||||
_description = 'Print Follow-up & Send Mail to Customers'
|
||||
_columns = {
|
||||
'date': fields.date('Follow-up Sending Date', required=True,
|
||||
help="This field allow you to select a forecast date to plan your follow-ups"),
|
||||
'followup_id': fields.many2one('account_followup.followup', 'Follow-Up', required=True, readonly = True),
|
||||
'partner_ids': fields.many2many('account_followup.stat.by.partner', 'partner_stat_rel',
|
||||
'osv_memory_id', 'partner_id', 'Partners', required=True),
|
||||
'company_id':fields.related('followup_id', 'company_id', type='many2one',
|
||||
relation='res.company', store=True, readonly=True),
|
||||
'email_conf': fields.boolean('Send Email Confirmation'),
|
||||
'email_subject': fields.char('Email Subject', size=64),
|
||||
'partner_lang': fields.boolean('Send Email in Partner Language',
|
||||
help='Do not change message text, if you want to send email in partner language, or configure from company'),
|
||||
'email_body': fields.text('Email Body'),
|
||||
'summary': fields.text('Summary', readonly=True),
|
||||
'test_print': fields.boolean('Test Print',
|
||||
help='Check if you want to print follow-ups without changing follow-ups level.'),
|
||||
}
|
||||
|
||||
def _get_followup(self, cr, uid, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
if context.get('active_model', 'ir.ui.menu') == 'account_followup.followup':
|
||||
return context.get('active_id', False)
|
||||
company_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id
|
||||
followp_id = self.pool.get('account_followup.followup').search(cr, uid, [('company_id', '=', company_id)], context=context)
|
||||
return followp_id and followp_id[0] or False
|
||||
|
||||
def process_partners(self, cr, uid, partner_ids, data, context=None):
|
||||
partner_obj = self.pool.get('res.partner')
|
||||
partner_ids_to_print = []
|
||||
nbmanuals = 0
|
||||
manuals = {}
|
||||
nbmails = 0
|
||||
nbunknownmails = 0
|
||||
nbprints = 0
|
||||
resulttext = " "
|
||||
for partner in self.pool.get('account_followup.stat.by.partner').browse(cr, uid, partner_ids, context=context):
|
||||
if partner.max_followup_id.manual_action:
|
||||
partner_obj.do_partner_manual_action(cr, uid, [partner.partner_id.id], context=context)
|
||||
nbmanuals = nbmanuals + 1
|
||||
key = partner.partner_id.payment_responsible_id.name or _("Nobody")
|
||||
if not key in manuals.keys():
|
||||
manuals[key]= 1
|
||||
else:
|
||||
manuals[key] = manuals[key] + 1
|
||||
if partner.max_followup_id.send_email:
|
||||
nbunknownmails += partner_obj.do_partner_mail(cr, uid, [partner.partner_id.id], context=context)
|
||||
nbmails += 1
|
||||
if partner.max_followup_id.send_letter:
|
||||
partner_ids_to_print.append(partner.id)
|
||||
nbprints += 1
|
||||
message = _("Follow-up letter of ") + "<I> " + partner.partner_id.latest_followup_level_id_without_lit.name + "</I>" + _(" will be sent")
|
||||
partner_obj.message_post(cr, uid, [partner.partner_id.id], body=message, context=context)
|
||||
if nbunknownmails == 0:
|
||||
resulttext += str(nbmails) + _(" email(s) sent")
|
||||
else:
|
||||
resulttext += str(nbmails) + _(" email(s) should have been sent, but ") + str(nbunknownmails) + _(" had unknown email address(es)") + "\n <BR/> "
|
||||
resulttext += "<BR/>" + str(nbprints) + _(" letter(s) in report") + " \n <BR/>" + str(nbmanuals) + _(" manual action(s) assigned:")
|
||||
needprinting = False
|
||||
if nbprints > 0:
|
||||
needprinting = True
|
||||
resulttext += "<p align=\"center\">"
|
||||
for item in manuals:
|
||||
resulttext = resulttext + "<li>" + item + ":" + str(manuals[item]) + "\n </li>"
|
||||
resulttext += "</p>"
|
||||
result = {}
|
||||
action = partner_obj.do_partner_print(cr, uid, partner_ids_to_print, data, context=context)
|
||||
result['needprinting'] = needprinting
|
||||
result['resulttext'] = resulttext
|
||||
result['action'] = action or {}
|
||||
return result
|
||||
|
||||
def do_update_followup_level(self, cr, uid, to_update, partner_list, date, context=None):
|
||||
#update the follow-up level on account.move.line
|
||||
for id in to_update.keys():
|
||||
if to_update[id]['partner_id'] in partner_list:
|
||||
self.pool.get('account.move.line').write(cr, uid, [int(id)], {'followup_line_id': to_update[id]['level'],
|
||||
'followup_date': date})
|
||||
|
||||
def clear_manual_actions(self, cr, uid, partner_list, context=None):
|
||||
# Partnerlist is list to exclude
|
||||
# Will clear the actions of partners that have no due payments anymore
|
||||
partner_list_ids = [partner.partner_id.id for partner in self.pool.get('account_followup.stat.by.partner').browse(cr, uid, partner_list, context=context)]
|
||||
ids = self.pool.get('res.partner').search(cr, uid, ['&', ('id', 'not in', partner_list_ids), '|',
|
||||
('payment_responsible_id', '!=', False),
|
||||
('payment_next_action_date', '!=', False)], context=context)
|
||||
partners = self.pool.get('res.partner').browse(cr, uid, ids, context=context)
|
||||
newids = []
|
||||
for part in partners:
|
||||
credit = 0
|
||||
for aml in part.unreconciled_aml_ids:
|
||||
credit +=aml.result
|
||||
if credit <= 0:
|
||||
newids.append(part.id)
|
||||
self.pool.get('res.partner').action_done(cr, uid, newids, context=context)
|
||||
return len(ids)
|
||||
|
||||
def do_process(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
#Get partners
|
||||
tmp = self._get_partners_followp(cr, uid, ids, context=context)
|
||||
partner_list = tmp['partner_ids']
|
||||
to_update = tmp['to_update']
|
||||
date = self.browse(cr, uid, ids, context=context)[0].date
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
data['followup_id'] = data['followup_id'][0]
|
||||
|
||||
#Update partners
|
||||
self.do_update_followup_level(cr, uid, to_update, partner_list, date, context=context)
|
||||
#process the partners (send mails...)
|
||||
restot = self.process_partners(cr, uid, partner_list, data, context=context)
|
||||
#clear the manual actions if nothing is due anymore
|
||||
nbactionscleared = self.clear_manual_actions(cr, uid, partner_list, context=context)
|
||||
if nbactionscleared > 0:
|
||||
restot['resulttext'] = restot['resulttext'] + "<li>" + _("%s partners have no credits and as such the action is cleared") %(str(nbactionscleared)) + "</li>"
|
||||
res = restot['action']
|
||||
|
||||
#return the next action
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
model_data_ids = mod_obj.search(cr, uid, [('model','=','ir.ui.view'),('name','=','view_account_followup_sending_results')], context=context)
|
||||
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||
context.update({'description': restot['resulttext'], 'needprinting': restot['needprinting'], 'report_data': res})
|
||||
return {
|
||||
'name': _('Send Letters and Emails: Actions Summary'),
|
||||
'view_type': 'form',
|
||||
'context': context,
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'account_followup.sending.results',
|
||||
'views': [(resource_id,'form')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'target': 'new',
|
||||
}
|
||||
|
||||
def _get_msg(self, cr, uid, context=None):
|
||||
return self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.follow_up_msg
|
||||
|
||||
_defaults = {
|
||||
'email_body': _get_msg,
|
||||
'email_subject': _('Invoices Reminder'),
|
||||
'partner_lang': True,
|
||||
'partner_ids': _get_partners,
|
||||
'summary': _get_summary,
|
||||
'date': lambda *a: time.strftime('%Y-%m-%d'),
|
||||
'followup_id': _get_followup,
|
||||
'email_body': "",
|
||||
'email_subject': _('Invoices Reminder'),
|
||||
'partner_lang': True,
|
||||
}
|
||||
|
||||
def _get_partners_followp(self, cr, uid, ids, context=None):
|
||||
data = {}
|
||||
if context is None:
|
||||
context = {}
|
||||
if ids:
|
||||
data = self.browse(cr, uid, ids, context=context)[0]
|
||||
company_id = 'company_id' in context and context['company_id'] or data.company_id.id
|
||||
data = self.browse(cr, uid, ids, context=context)[0]
|
||||
company_id = data.company_id.id
|
||||
|
||||
cr.execute(
|
||||
"SELECT l.partner_id, l.followup_line_id,l.date_maturity, l.date, l.id "\
|
||||
|
@ -166,8 +274,9 @@ class account_followup_print_all(osv.osv_memory):
|
|||
"AND (l.partner_id is NOT NULL) "\
|
||||
"AND (a.active) "\
|
||||
"AND (l.debit > 0) "\
|
||||
"AND (l.company_id = %s) "\
|
||||
"ORDER BY l.date", (company_id,))
|
||||
"AND (l.company_id = %s) " \
|
||||
"AND (l.blocked = False)" \
|
||||
"ORDER BY l.date", (company_id,)) #l.blocked added to take litigation into account and it is not necessary to change follow-up level of account move lines without debit
|
||||
move_lines = cr.fetchall()
|
||||
old = None
|
||||
fups = {}
|
||||
|
@ -181,17 +290,17 @@ class account_followup_print_all(osv.osv_memory):
|
|||
"FROM account_followup_followup_line "\
|
||||
"WHERE followup_id=%s "\
|
||||
"ORDER BY delay", (fup_id,))
|
||||
|
||||
#Create dictionary of tuples where first element is the date to compare with the due date and second element is the id of the next level
|
||||
for result in cr.dictfetchall():
|
||||
delay = datetime.timedelta(days=result['delay'])
|
||||
fups[old] = (current_date - delay, result['id'])
|
||||
if result['start'] == 'end_of_month':
|
||||
fups[old][0].replace(day=1)
|
||||
old = result['id']
|
||||
|
||||
fups[old] = (datetime.date(datetime.MAXYEAR, 12, 31), old)
|
||||
|
||||
partner_list = []
|
||||
to_update = {}
|
||||
|
||||
#Fill dictionary of accountmovelines to_update with the partners that need to be updated
|
||||
for partner_id, followup_line_id, date_maturity,date, id in move_lines:
|
||||
if not partner_id:
|
||||
continue
|
||||
|
@ -209,134 +318,6 @@ class account_followup_print_all(osv.osv_memory):
|
|||
to_update[str(id)]= {'level': fups[followup_line_id][1], 'partner_id': stat_line_id}
|
||||
return {'partner_ids': partner_list, 'to_update': to_update}
|
||||
|
||||
def do_mail(self, cr, uid, ids, context=None):
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
move_obj = self.pool.get('account.move.line')
|
||||
user_obj = self.pool.get('res.users')
|
||||
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.browse(cr, uid, ids, context=context)[0]
|
||||
stat_by_partner_line_ids = [partner_id.id for partner_id in data.partner_ids]
|
||||
partners = [stat_by_partner_line / 10000 for stat_by_partner_line in stat_by_partner_line_ids]
|
||||
model_data_ids = mod_obj.search(cr, uid, [('model','=','ir.ui.view'),('name','=','view_account_followup_print_all_msg')], context=context)
|
||||
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||
if data.email_conf:
|
||||
msg_sent = ''
|
||||
msg_unsent = ''
|
||||
data_user = user_obj.browse(cr, uid, uid, context=context)
|
||||
for partner in self.pool.get('res.partner').browse(cr, uid, partners, context=context):
|
||||
ids_lines = move_obj.search(cr,uid,[('partner_id','=',partner.id),('reconcile_id','=',False),('account_id.type','in',['receivable']),('company_id','=',context.get('company_id', False))])
|
||||
data_lines = move_obj.browse(cr, uid, ids_lines, context=context)
|
||||
total_amt = 0.0
|
||||
for line in data_lines:
|
||||
total_amt += line.debit - line.credit
|
||||
dest = False
|
||||
if partner:
|
||||
dest = [partner.email]
|
||||
if not data.partner_lang:
|
||||
body = data.email_body
|
||||
else:
|
||||
cxt = context.copy()
|
||||
cxt['lang'] = partner.lang
|
||||
body = user_obj.browse(cr, uid, uid, context=cxt).company_id.follow_up_msg
|
||||
move_line = ''
|
||||
subtotal_due = 0.0
|
||||
subtotal_paid = 0.0
|
||||
subtotal_maturity = 0.0
|
||||
balance = 0.0
|
||||
l = '--------------------------------------------------------------------------------------------------------------------------'
|
||||
head = l+ '\n' + 'Date'.rjust(10) + '\t' + 'Description'.rjust(10) + '\t' + 'Ref'.rjust(10) + '\t' + 'Due date'.rjust(10) + '\t' + 'Due'.rjust(10) + '\t' + 'Paid'.rjust(10) + '\t' + 'Maturity'.rjust(10) + '\t' + 'Litigation'.rjust(10) + '\n' + l
|
||||
for i in data_lines:
|
||||
maturity = 0.00
|
||||
if i.date_maturity < time.strftime('%Y-%m-%d') and (i.debit - i.credit):
|
||||
maturity = i.debit - i.credit
|
||||
subtotal_due = subtotal_due + i.debit
|
||||
subtotal_paid = subtotal_paid + i.credit
|
||||
subtotal_maturity = subtotal_maturity + int(maturity)
|
||||
balance = balance + (i.debit - i.credit)
|
||||
move_line = move_line + (i.date).rjust(10) + '\t'+ (i.name).rjust(10) + '\t'+ (i.ref or '').rjust(10) + '\t' + (i.date_maturity or '').rjust(10) + '\t' + str(i.debit).rjust(10) + '\t' + str(i.credit).rjust(10) + '\t' + str(maturity).rjust(10) + '\t' + str(i.blocked).rjust(10) + '\n'
|
||||
move_line = move_line + l + '\n'+ '\t\t\t' + 'Sub total'.rjust(35) + '\t' + (str(subtotal_due) or '').rjust(10) + '\t' + (str(subtotal_paid) or '').rjust(10) + '\t' + (str(subtotal_maturity) or '').rjust(10)+ '\n'
|
||||
move_line = move_line + '\t\t\t' + 'Balance'.rjust(33) + '\t' + str(balance).rjust(10) + '\n' + l
|
||||
val = {
|
||||
'partner_name':partner.name,
|
||||
'followup_amount':total_amt,
|
||||
'user_signature':data_user.name,
|
||||
'company_name':data_user.company_id.name,
|
||||
'company_currency':data_user.company_id.currency_id.name,
|
||||
'line':move_line,
|
||||
'heading': head,
|
||||
'date':time.strftime('%Y-%m-%d'),
|
||||
}
|
||||
body = body%val
|
||||
sub = tools.ustr(data.email_subject)
|
||||
msg = ''
|
||||
if dest:
|
||||
try:
|
||||
vals = {'state': 'outgoing',
|
||||
'subject': sub,
|
||||
'body_html': '<pre>%s</pre>' % body,
|
||||
'email_to': dest,
|
||||
'email_from': data_user.email or tools.config.options['email_from']}
|
||||
self.pool.get('mail.mail').create(cr, uid, vals, context=context)
|
||||
msg_sent += partner.name + '\n'
|
||||
except Exception, e:
|
||||
raise osv.except_osv('Error !', e )
|
||||
else:
|
||||
msg += partner.name + '\n'
|
||||
msg_unsent += msg
|
||||
if not msg_unsent:
|
||||
summary = _("All Emails have been successfully sent to Partners:.\n\n%s") % msg_sent
|
||||
else:
|
||||
msg_unsent = _("Email not sent to following Partners, Email not available !\n\n%s") % msg_unsent
|
||||
msg_sent = msg_sent and _("\n\nEmail sent to following Partners successfully. !\n\n%s") % msg_sent
|
||||
line = '=========================================================================='
|
||||
summary = msg_unsent + line + msg_sent
|
||||
context.update({'summary': summary})
|
||||
else:
|
||||
context.update({'summary': '\n\n\nEmail has not been sent to any partner. If you want to send it, please tick send email confirmation on wizard.'})
|
||||
|
||||
return {
|
||||
'name': _('Followup Summary'),
|
||||
'view_type': 'form',
|
||||
'context': context,
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'account.followup.print.all',
|
||||
'views': [(resource_id,'form')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'target': 'new',
|
||||
'nodestroy': True
|
||||
}
|
||||
|
||||
def do_print(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
res = self._get_partners_followp(cr, uid, ids, context)['to_update']
|
||||
to_update = res
|
||||
data['followup_id'] = 'followup_id' in context and context['followup_id'] or False
|
||||
date = 'date' in context and context['date'] or data['date']
|
||||
if not data['test_print']:
|
||||
for id in to_update.keys():
|
||||
if to_update[id]['partner_id'] in data['partner_ids']:
|
||||
cr.execute(
|
||||
"UPDATE account_move_line "\
|
||||
"SET followup_line_id=%s, followup_date=%s "\
|
||||
"WHERE id=%s",
|
||||
(to_update[id]['level'],
|
||||
date, int(id),))
|
||||
data.update({'date': context['date']})
|
||||
datas = {
|
||||
'ids': [],
|
||||
'model': 'account_followup.followup',
|
||||
'form': data
|
||||
}
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'account_followup.followup.print',
|
||||
'datas': datas,
|
||||
}
|
||||
|
||||
account_followup_print_all()
|
||||
account_followup_print()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -4,25 +4,29 @@
|
|||
|
||||
<record id="view_account_followup_print" model="ir.ui.view">
|
||||
<field name="name">account.followup.print.form</field>
|
||||
<field name="model">account.followup.print</field>
|
||||
<field name="model">account_followup.print</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Send follow-ups" version="7.0">
|
||||
<group col="4">
|
||||
<field name="followup_id"/>
|
||||
<field name="date"/>
|
||||
<field name="followup_id" groups="base.group_multi_company"/>
|
||||
<field name="date" groups="base.group_no_one"/>
|
||||
</group>
|
||||
<footer>
|
||||
<button name="do_continue" string="Continue" type="object" class="oe_highlight"/>
|
||||
or
|
||||
<button string="Cancel" class="oe_link" special="cancel"/>
|
||||
</footer>
|
||||
<p class ="oe_grey">
|
||||
This action will send follow-up emails, print the letters and
|
||||
set the manual actions per customers.
|
||||
</p>
|
||||
<footer>
|
||||
<button name="do_process" string="Send emails and generate letters" type="object" class="oe_highlight"/>
|
||||
or
|
||||
<button string="Cancel" class="oe_link" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_account_followup_print" model="ir.actions.act_window">
|
||||
<field name="name">Send Follow-Ups</field>
|
||||
<field name="res_model">account.followup.print</field>
|
||||
<field name="res_model">account_followup.print</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
|
@ -30,8 +34,10 @@
|
|||
|
||||
<menuitem action="action_account_followup_print"
|
||||
id="account_followup_print_menu"
|
||||
parent="account.menu_finance_periodical_processing_billing"
|
||||
sequence="10"/>
|
||||
parent="menu_finance_followup"
|
||||
name = "Send Letters and Emails"
|
||||
groups = "account.group_account_user"
|
||||
sequence="2"/>
|
||||
|
||||
<record id="account_followup_stat_by_partner_search" model="ir.ui.view">
|
||||
<field name="name">account_followup.stat.by.partner.search</field>
|
||||
|
@ -47,7 +53,6 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Screen2 -->
|
||||
<record id="account_followup_stat_by_partner_tree" model="ir.ui.view">
|
||||
<field name="name">account_followup.stat.by.partner.tree</field>
|
||||
<field name="model">account_followup.stat.by.partner</field>
|
||||
|
@ -63,63 +68,25 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_account_followup_print_all" model="ir.ui.view">
|
||||
<field name="name">account.followup.print.all.form</field>
|
||||
<field name="model">account.followup.print.all</field>
|
||||
<record id="view_account_followup_sending_results" model="ir.ui.view">
|
||||
<field name="name">account_followup.sending.results.form</field>
|
||||
<field name="model">account_followup.sending.results</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Send Follow-Ups" version="7.0">
|
||||
<form string="Summary of actions" version="7.0">
|
||||
<header>
|
||||
<button name="do_mail" string="Send Mails" type="object" class="oe_highlight"/>
|
||||
<button name="do_print" string="Print Follow Ups" type="object" class="oe_highlight"/>
|
||||
or
|
||||
<button string="Cancel" class="oe_link" special="cancel"/>
|
||||
<field name="description" widget="html" class="oe_view_only"/>
|
||||
</header>
|
||||
<notebook>
|
||||
<page string="Partner Selection">
|
||||
<field name="partner_ids" context="{'search_default_balance_positive': 1}" domain="[('company_id','=',context.get('company_id',False))]"/>
|
||||
</page>
|
||||
<page string="Email Settings">
|
||||
<group col="4">
|
||||
<field name="email_conf" colspan="4"/>
|
||||
<field name="partner_lang" colspan="4"/>
|
||||
<field name="test_print" colspan="4"/>
|
||||
<field name="email_subject" colspan="4"/>
|
||||
<field name="email_body" colspan="4" nolabel="1"/>
|
||||
</group>
|
||||
<group string="Legend">
|
||||
<label string="%%(partner_name)s: Partner name"/>
|
||||
<label string="%%(user_signature)s: User name"/>
|
||||
<label string="%%(followup_amount)s: Total Amount Due"/>
|
||||
<label string="%%(date)s: Current Date"/>
|
||||
<label string="%%(company_name)s: User's Company name"/>
|
||||
<label string="%%(company_currency)s: User's Company Currency"/>
|
||||
<label string="%%(heading)s: Move line header"/>
|
||||
<label string="%%(line)s: Ledger Posting lines"/>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
<footer>
|
||||
<field name="needprinting" invisible="1"/>
|
||||
<div attrs="{'invisible':[('needprinting','=', False)]}">
|
||||
<button name="do_report" string="Download Letters" type="object" class="oe_highlight"/>
|
||||
</div>
|
||||
<div attrs="{'invisible':[('needprinting','!=', False)]}">
|
||||
<button name="do_done" string="Close" type="object" class="oe_highlight"/>
|
||||
</div>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_account_followup_print_all_msg" model="ir.ui.view">
|
||||
<field name="name">account.followup.print.all.msg.form</field>
|
||||
<field name="model">account.followup.print.all</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Summary" version="7.0">
|
||||
<separator string="Summary"/>
|
||||
<field name="summary"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_account_followup_print_all" model="ir.actions.act_window">
|
||||
<field name="name">Send Follow-Ups</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">account.followup.print.all</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -8,39 +8,39 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-02-09 15:18+0000\n"
|
||||
"Last-Translator: 开阖软件 Jeff Wang <jeff@osbzr.com>\n"
|
||||
"PO-Revision-Date: 2012-11-30 07:45+0000\n"
|
||||
"Last-Translator: mrshelly <Unknown>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-25 06:22+0000\n"
|
||||
"X-Generator: Launchpad (build 16293)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,child_ids:0
|
||||
msgid "Child Accounts"
|
||||
msgstr "子项"
|
||||
msgstr "子科目"
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "In Progress"
|
||||
msgstr ""
|
||||
msgstr "进行中"
|
||||
|
||||
#. module: analytic
|
||||
#: model:mail.message.subtype,name:analytic.mt_account_status
|
||||
msgid "Status Change"
|
||||
msgstr ""
|
||||
msgstr "状态更改"
|
||||
|
||||
#. module: analytic
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "Template"
|
||||
msgstr "模板"
|
||||
msgstr "模版"
|
||||
|
||||
#. module: analytic
|
||||
#: view:account.analytic.account:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
msgstr "截止日期"
|
||||
|
||||
#. module: analytic
|
||||
#: help:account.analytic.line,unit_amount:0
|
||||
|
@ -70,12 +70,12 @@ msgstr ""
|
|||
#. module: analytic
|
||||
#: field:account.analytic.account,manager_id:0
|
||||
msgid "Account Manager"
|
||||
msgstr "项管理"
|
||||
msgstr "科目管理员"
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
msgstr "关注者"
|
||||
|
||||
#. module: analytic
|
||||
#: code:addons/analytic/analytic.py:312
|
||||
|
@ -96,23 +96,23 @@ msgstr "借方"
|
|||
#. module: analytic
|
||||
#: selection:account.analytic.account,state:0
|
||||
msgid "New"
|
||||
msgstr "新增"
|
||||
msgstr "新建"
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,user_id:0
|
||||
msgid "Project Manager"
|
||||
msgstr ""
|
||||
msgstr "项目主管"
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
msgstr "状态"
|
||||
|
||||
#. module: analytic
|
||||
#: code:addons/analytic/analytic.py:254
|
||||
#, python-format
|
||||
msgid "%s (copy)"
|
||||
msgstr ""
|
||||
msgstr "%s (副本)"
|
||||
|
||||
#. module: analytic
|
||||
#: model:ir.model,name:analytic.model_account_analytic_line
|
||||
|
@ -123,7 +123,7 @@ msgstr "辅助核算明细"
|
|||
#: field:account.analytic.account,description:0
|
||||
#: field:account.analytic.line,name:0
|
||||
msgid "Description"
|
||||
msgstr "说明"
|
||||
msgstr "描述"
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,name:0
|
||||
|
@ -133,12 +133,12 @@ msgstr ""
|
|||
#. module: analytic
|
||||
#: field:account.analytic.account,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
msgstr "未读消息"
|
||||
|
||||
#. module: analytic
|
||||
#: constraint:account.analytic.account:0
|
||||
msgid "Error! You cannot create recursive analytic accounts."
|
||||
msgstr ""
|
||||
msgstr "错误!你不能循环创建辅助核算项"
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.account,company_id:0
|
||||
|
@ -180,7 +180,7 @@ msgstr ""
|
|||
#. module: analytic
|
||||
#: field:account.analytic.account,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
msgstr "是一个关注者"
|
||||
|
||||
#. module: analytic
|
||||
#: field:account.analytic.line,user_id:0
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
# 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 AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 17:47+0000\n"
|
||||
"Last-Translator: ccdos <ccdos@163.com>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:0
|
||||
msgid "or view"
|
||||
msgstr "或 视图"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: constraint:account.analytic.account:0
|
||||
msgid "Error! You cannot create recursive analytic accounts."
|
||||
msgstr "错误!你不能循环创建辅助核算项"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: field:account.analytic.account,expense_invoiced:0
|
||||
#: field:account.analytic.account,expense_to_invoice:0
|
||||
#: field:account.analytic.account,remaining_expense:0
|
||||
msgid "unknown"
|
||||
msgstr "未知"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:0
|
||||
msgid "expenses"
|
||||
msgstr "费用"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: model:ir.model,name:analytic_contract_hr_expense.model_account_analytic_account
|
||||
msgid "Analytic Account"
|
||||
msgstr "辅助核算项"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:147
|
||||
#, python-format
|
||||
msgid "Expenses to Invoice of %s"
|
||||
msgstr "%s的费用到发票"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:133
|
||||
#, python-format
|
||||
msgid "Expenses of %s"
|
||||
msgstr "%s的费用"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Nothing to invoice, create"
|
||||
msgstr "尚未开票,创建"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: field:account.analytic.account,est_expenses:0
|
||||
msgid "Estimation of Expenses to Invoice"
|
||||
msgstr "预估费用到发票"
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: field:account.analytic.account,charge_expenses:0
|
||||
msgid "Charge Expenses"
|
||||
msgstr ""
|
||||
|
||||
#. module: analytic_contract_hr_expense
|
||||
#: view:account.analytic.account:0
|
||||
msgid "⇒ Invoice"
|
||||
msgstr "=> 开票"
|
|
@ -14,7 +14,7 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:08+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: auth_anonymous
|
||||
|
|
|
@ -0,0 +1,150 @@
|
|||
# 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 <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 19:36+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,validation_endpoint:0
|
||||
msgid "Validation URL"
|
||||
msgstr "Validatie URL"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: 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_oauth
|
||||
#: field:auth.oauth.provider,auth_endpoint:0
|
||||
msgid "Authentication URL"
|
||||
msgstr "Authenticatie URL"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.model,name:auth_oauth.model_base_config_settings
|
||||
msgid "base.config.settings"
|
||||
msgstr "base.config.settings"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: 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_oauth
|
||||
#: field:auth.oauth.provider,scope:0
|
||||
msgid "Scope"
|
||||
msgstr "Beriek"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:res.users,oauth_provider_id:0
|
||||
msgid "OAuth Provider"
|
||||
msgstr "OAuth Provider"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,css_class:0
|
||||
msgid "CSS class"
|
||||
msgstr "CSS klasse"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,body:0
|
||||
msgid "Body"
|
||||
msgstr "Body"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.model,name:auth_oauth.model_res_users
|
||||
msgid "Users"
|
||||
msgstr "Gebruikers"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,sequence:0
|
||||
msgid "unknown"
|
||||
msgstr "onbekend"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:res.users,oauth_access_token:0
|
||||
msgid "OAuth Access Token"
|
||||
msgstr "OAuth Access Token"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,client_id:0
|
||||
#: field:base.config.settings,auth_oauth_facebook_client_id:0
|
||||
#: field:base.config.settings,auth_oauth_google_client_id:0
|
||||
msgid "Client ID"
|
||||
msgstr "Client ID"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.ui.menu,name:auth_oauth.menu_oauth_providers
|
||||
msgid "OAuth Providers"
|
||||
msgstr "OAuth Providers"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.model,name:auth_oauth.model_auth_oauth_provider
|
||||
msgid "OAuth2 provider"
|
||||
msgstr "OAuth2 provider"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:res.users,oauth_uid:0
|
||||
msgid "OAuth User ID"
|
||||
msgstr "OAuth User ID"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:base.config.settings,auth_oauth_facebook_enabled:0
|
||||
msgid "Allow users to sign in with Facebook"
|
||||
msgstr "Gestaan dat gebruikers inloggen ia Facebook."
|
||||
|
||||
#. module: auth_oauth
|
||||
#: sql_constraint:res.users:0
|
||||
msgid "OAuth UID must be unique per provider"
|
||||
msgstr "OAuth UID moet uniek zijn per provider"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: help:res.users,oauth_uid:0
|
||||
msgid "Oauth Provider user_id"
|
||||
msgstr "Oauth Provider user_id"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,data_endpoint:0
|
||||
msgid "Data URL"
|
||||
msgstr "Data URL"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: view:auth.oauth.provider:0
|
||||
msgid "arch"
|
||||
msgstr "arch"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,name:0
|
||||
msgid "Provider name"
|
||||
msgstr "Provider name"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: model:ir.actions.act_window,name:auth_oauth.action_oauth_provider
|
||||
msgid "Providers"
|
||||
msgstr "Providers"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:base.config.settings,auth_oauth_google_enabled:0
|
||||
msgid "Allow users to sign in with Google"
|
||||
msgstr "Toestaan da gebruikers inloggen via Google."
|
||||
|
||||
#. module: auth_oauth
|
||||
#: constraint:res.users:0
|
||||
msgid "Error: Invalid ean code"
|
||||
msgstr "Fout: Ongeldige EAN-code"
|
||||
|
||||
#. module: auth_oauth
|
||||
#: field:auth.oauth.provider,enabled:0
|
||||
msgid "Allowed"
|
||||
msgstr "Toegestaan"
|
|
@ -0,0 +1,74 @@
|
|||
# Russian 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 <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 19:40+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Russian <ru@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: auth_reset_password
|
||||
#: model:email.template,body_html:auth_reset_password.reset_password_email
|
||||
msgid ""
|
||||
"\n"
|
||||
"<p>A password reset was requested for the OpenERP account linked to this "
|
||||
"email.</p>\n"
|
||||
"\n"
|
||||
"<p>You may change your password following <a "
|
||||
"href=\"${object.signup_url}\">this link</a>.</p>\n"
|
||||
"\n"
|
||||
"<p>Note: If you did not ask for a password reset, you can safely ignore this "
|
||||
"email.</p>"
|
||||
msgstr ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. 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 ""
|
|
@ -14,7 +14,7 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:08+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: base_action_rule
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,88 @@
|
|||
# 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 <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 19:38+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_state.py:107
|
||||
#, python-format
|
||||
msgid "Error !"
|
||||
msgstr "Fout!"
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_stage.py:333
|
||||
#: code:addons/base_status/base_state.py:187
|
||||
#, python-format
|
||||
msgid "%s has been <b>opened</b>."
|
||||
msgstr "%s is <b>geopend</b>."
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_stage.py:357
|
||||
#: code:addons/base_status/base_state.py:220
|
||||
#, python-format
|
||||
msgid "%s has been <b>renewed</b>."
|
||||
msgstr "%s is <b>vernieuw</b>."
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_stage.py:215
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr "Fout!"
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_state.py:107
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You can not escalate, you are already at the top level regarding your sales-"
|
||||
"team category."
|
||||
msgstr ""
|
||||
"Het is niet mogelijk om verder te escaleren. U bent al op het hoogste niveau "
|
||||
"van uw verkoopteam categorieën."
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_stage.py:351
|
||||
#: code:addons/base_status/base_state.py:214
|
||||
#, python-format
|
||||
msgid "%s is now <b>pending</b>."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_stage.py:345
|
||||
#, python-format
|
||||
msgid "%s has been <b>cancelled</b>."
|
||||
msgstr "%s is <b>geannuleerd</b>."
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_state.py:208
|
||||
#, python-format
|
||||
msgid "%s has been <b>canceled</b>."
|
||||
msgstr "%s is <b>geannuleerd</b>."
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_stage.py:215
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You are already at the top level of your sales-team category.\n"
|
||||
"Therefore you cannot escalate furthermore."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_status
|
||||
#: code:addons/base_status/base_stage.py:339
|
||||
#: code:addons/base_status/base_state.py:202
|
||||
#, python-format
|
||||
msgid "%s has been <b>closed</b>."
|
||||
msgstr "%s is <b>gesloten</b>."
|
|
@ -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-01-13 19:12+0000\n"
|
||||
"Last-Translator: Ferdinand @ Camptocamp <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-11-30 10:07+0000\n"
|
||||
"Last-Translator: Felix Schubert <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-25 05:51+0000\n"
|
||||
"X-Generator: Launchpad (build 16293)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:07+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: base_vat
|
||||
#: view:res.partner:0
|
||||
|
@ -34,7 +34,7 @@ msgstr ""
|
|||
#. module: base_vat
|
||||
#: sql_constraint:res.company:0
|
||||
msgid "The company name must be unique !"
|
||||
msgstr "Der Name der Firma darf nur einmal vorkommen!"
|
||||
msgstr "Der Unternehmensname muss eindeutig sein!"
|
||||
|
||||
#. module: base_vat
|
||||
#: constraint:res.partner:0
|
||||
|
@ -65,7 +65,7 @@ msgstr ""
|
|||
#. module: base_vat
|
||||
#: constraint:res.partner:0
|
||||
msgid "Error: Invalid ean code"
|
||||
msgstr ""
|
||||
msgstr "Fehler: Falscher EAN code"
|
||||
|
||||
#. module: base_vat
|
||||
#: help:res.partner,vat_subjected:0
|
||||
|
|
|
@ -7,19 +7,19 @@ 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-02-10 03:41+0000\n"
|
||||
"Last-Translator: 开阖软件 Jeff Wang <jeff@osbzr.com>\n"
|
||||
"PO-Revision-Date: 2012-11-30 17:41+0000\n"
|
||||
"Last-Translator: ccdos <ccdos@163.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-25 05:51+0000\n"
|
||||
"X-Generator: Launchpad (build 16293)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:07+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: base_vat
|
||||
#: view:res.partner:0
|
||||
msgid "Check Validity"
|
||||
msgstr ""
|
||||
msgstr "检查有效性"
|
||||
|
||||
#. module: base_vat
|
||||
#: code:addons/base_vat/base_vat.py:147
|
||||
|
@ -52,18 +52,18 @@ msgstr "公司"
|
|||
#. module: base_vat
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr "错误!您不能创建递归公司."
|
||||
msgstr "错误!您不能创建循环的公司。"
|
||||
|
||||
#. module: base_vat
|
||||
#: code:addons/base_vat/base_vat.py:111
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr ""
|
||||
msgstr "错误!"
|
||||
|
||||
#. module: base_vat
|
||||
#: constraint:res.partner:0
|
||||
msgid "Error: Invalid ean code"
|
||||
msgstr ""
|
||||
msgstr "错误:无效的(EAN)条码"
|
||||
|
||||
#. module: base_vat
|
||||
#: help:res.partner,vat_subjected:0
|
||||
|
|
|
@ -7,94 +7,94 @@ 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-01-23 10:14+0000\n"
|
||||
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
|
||||
"PO-Revision-Date: 2012-11-30 17:42+0000\n"
|
||||
"Last-Translator: ccdos <ccdos@163.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-25 06:12+0000\n"
|
||||
"X-Generator: Launchpad (build 16293)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.action_board_create
|
||||
#: model:ir.ui.menu,name:board.menu_board_create
|
||||
msgid "Create Board"
|
||||
msgstr ""
|
||||
msgstr "创建仪表板"
|
||||
|
||||
#. module: board
|
||||
#: view:board.create:0
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
msgstr "创建"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/xml/board.xml:4
|
||||
#, python-format
|
||||
msgid "Reset Layout.."
|
||||
msgstr ""
|
||||
msgstr "重置布局..."
|
||||
|
||||
#. module: board
|
||||
#: view:board.create:0
|
||||
msgid "Create New Dashboard"
|
||||
msgstr ""
|
||||
msgstr "创建新的仪表板"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/xml/board.xml:40
|
||||
#, python-format
|
||||
msgid "Choose dashboard layout"
|
||||
msgstr ""
|
||||
msgstr "选择仪表板布局"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/xml/board.xml:70
|
||||
#, python-format
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
msgstr "新增"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/js/dashboard.js:139
|
||||
#, python-format
|
||||
msgid "Are you sure you want to remove this item ?"
|
||||
msgstr ""
|
||||
msgstr "您确定要移除此条目吗?"
|
||||
|
||||
#. module: board
|
||||
#: model:ir.model,name:board.model_board_board
|
||||
msgid "Board"
|
||||
msgstr "控制台"
|
||||
msgstr "仪表板"
|
||||
|
||||
#. module: board
|
||||
#: view:board.board:0
|
||||
#: model:ir.actions.act_window,name:board.open_board_my_dash_action
|
||||
#: model:ir.ui.menu,name:board.menu_board_my_dash
|
||||
msgid "My Dashboard"
|
||||
msgstr ""
|
||||
msgstr "我的仪表板"
|
||||
|
||||
#. module: board
|
||||
#: field:board.create,name:0
|
||||
msgid "Board Name"
|
||||
msgstr ""
|
||||
msgstr "仪表板名称"
|
||||
|
||||
#. module: board
|
||||
#: model:ir.model,name:board.model_board_create
|
||||
msgid "Board Creation"
|
||||
msgstr ""
|
||||
msgstr "仪表板创建"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/xml/board.xml:67
|
||||
#, python-format
|
||||
msgid "Add to Dashboard"
|
||||
msgstr ""
|
||||
msgstr "添加到仪表板"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/xml/board.xml:28
|
||||
#, python-format
|
||||
msgid " "
|
||||
msgstr ""
|
||||
msgstr "不能有空格"
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,help:board.open_board_my_dash_action
|
||||
|
@ -114,13 +114,26 @@ msgid ""
|
|||
" </div>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<div class=\"oe_empty_custom_dashboard\">\n"
|
||||
" <p>\n"
|
||||
" <b>你的仪表板是空的.</b>\n"
|
||||
" </p><p>\n"
|
||||
" 你要添加你第一个报表到仪表板,进入任意菜单,\n"
|
||||
" 切换到列表或者图片视图,从扩展搜索选项里单击\n"
|
||||
" “添加到仪表板”\n"
|
||||
" </p><p>\n"
|
||||
" 在使用搜索选项插入到仪表板之前,你能过滤并分\n"
|
||||
" 组数据。\n"
|
||||
" </p>\n"
|
||||
" </div>\n"
|
||||
" "
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/xml/board.xml:6
|
||||
#, python-format
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
msgstr "清空"
|
||||
|
||||
#. module: board
|
||||
#: field:board.create,menu_parent_id:0
|
||||
|
@ -132,21 +145,21 @@ msgstr "上级菜单"
|
|||
#: code:addons/board/static/src/xml/board.xml:8
|
||||
#, python-format
|
||||
msgid "Change Layout.."
|
||||
msgstr ""
|
||||
msgstr "更改布局..."
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/js/dashboard.js:93
|
||||
#, python-format
|
||||
msgid "Edit Layout"
|
||||
msgstr ""
|
||||
msgstr "编辑布局"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/xml/board.xml:10
|
||||
#, python-format
|
||||
msgid "Change Layout"
|
||||
msgstr ""
|
||||
msgstr "更改布局"
|
||||
|
||||
#. module: board
|
||||
#: view:board.create:0
|
||||
|
@ -156,14 +169,14 @@ msgstr "取消"
|
|||
#. module: board
|
||||
#: view:board.create:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
msgstr "or"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/xml/board.xml:69
|
||||
#, python-format
|
||||
msgid "Title of new dashboard item"
|
||||
msgstr ""
|
||||
msgstr "新的仪表板项目标题"
|
||||
|
||||
#~ msgid "Author"
|
||||
#~ msgstr "作者"
|
||||
|
|
|
@ -14,7 +14,7 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:08+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: claim_from_delivery
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
# 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 <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 19:40+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: contacts
|
||||
#: model:ir.actions.act_window,help:contacts.action_contacts
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to add a contact in your address book.\n"
|
||||
" </p><p>\n"
|
||||
" OpenERP helps you easily track all activities related to\n"
|
||||
" a customer; discussions, history of business opportunities,\n"
|
||||
" documents, etc.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: contacts
|
||||
#: model:ir.actions.act_window,name:contacts.action_contacts
|
||||
#: model:ir.ui.menu,name:contacts.menu_contacts
|
||||
msgid "Contacts"
|
||||
msgstr "Contactpersonen"
|
|
@ -0,0 +1,37 @@
|
|||
# Russian 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 <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 18:01+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Russian <ru@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: contacts
|
||||
#: model:ir.actions.act_window,help:contacts.action_contacts
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to add a contact in your address book.\n"
|
||||
" </p><p>\n"
|
||||
" OpenERP helps you easily track all activities related to\n"
|
||||
" a customer; discussions, history of business opportunities,\n"
|
||||
" documents, etc.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: contacts
|
||||
#: model:ir.actions.act_window,name:contacts.action_contacts
|
||||
#: model:ir.ui.menu,name:contacts.menu_contacts
|
||||
msgid "Contacts"
|
||||
msgstr ""
|
|
@ -0,0 +1,190 @@
|
|||
# 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 <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 20:02+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid "Connection with username and password"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
|
||||
msgid "event.moodle.config.wiz"
|
||||
msgstr "event.moodle.config.wiz"
|
||||
|
||||
#. module: event_moodle
|
||||
#: help:event.moodle.config.wiz,server_moodle:0
|
||||
msgid ""
|
||||
"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
|
||||
"'http://localhost'"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.registration,moodle_user_password:0
|
||||
msgid "Password for Moodle User"
|
||||
msgstr "Wachtwoord voor Moodle gebruiker"
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.moodle.config.wiz,moodle_password:0
|
||||
msgid "Moodle Password"
|
||||
msgstr "Moodle wachtwoord"
|
||||
|
||||
#. module: event_moodle
|
||||
#: code:addons/event_moodle/event_moodle.py:137
|
||||
#, python-format
|
||||
msgid "Your email '%s' is wrong."
|
||||
msgstr "Uwr email '%s' is fout."
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid "Connection with a Token"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid ""
|
||||
"The easiest way to connect OpenERP with a moodle server is to create a "
|
||||
"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
|
||||
"application."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.moodle.config.wiz,url:0
|
||||
msgid "URL to Moodle Server"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: help:event.moodle.config.wiz,url:0
|
||||
msgid "The url that will be used for the connection with moodle in xml-rpc"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: model:ir.model,name:event_moodle.model_event_registration
|
||||
msgid "Event Registration"
|
||||
msgstr "Evenementregistratie"
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid ""
|
||||
"Another approach is to create a user for OpenERP in Moodle. If you do so, "
|
||||
"make sure that this user has appropriate access rights."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.registration,moodle_uid:0
|
||||
msgid "Moodle User ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.moodle.config.wiz,server_moodle:0
|
||||
msgid "Moodle Server"
|
||||
msgstr "Moodle Server"
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.event,moodle_id:0
|
||||
msgid "Moodle ID"
|
||||
msgstr "Moodle ID"
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid "Server"
|
||||
msgstr "Server"
|
||||
|
||||
#. module: event_moodle
|
||||
#: code:addons/event_moodle/event_moodle.py:57
|
||||
#: code:addons/event_moodle/event_moodle.py:105
|
||||
#: code:addons/event_moodle/event_moodle.py:137
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr "Fout!"
|
||||
|
||||
#. module: event_moodle
|
||||
#: code:addons/event_moodle/event_moodle.py:105
|
||||
#, python-format
|
||||
msgid "You must configure your moodle connection."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.moodle.config.wiz,moodle_username:0
|
||||
#: field:event.registration,moodle_username:0
|
||||
msgid "Moodle Username"
|
||||
msgstr "Moodle gebruikersnaam"
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
#: model:ir.actions.act_window,name:event_moodle.configure_moodle
|
||||
msgid "Configure Moodle"
|
||||
msgstr "Monocle instellen"
|
||||
|
||||
#. module: event_moodle
|
||||
#: field:event.moodle.config.wiz,moodle_token:0
|
||||
msgid "Moodle Token"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: help:event.moodle.config.wiz,moodle_username:0
|
||||
msgid ""
|
||||
"You can also connect with your username that you define when you create a "
|
||||
"token"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: help:event.event,moodle_id:0
|
||||
msgid "The identifier of this event in Moodle"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: help:event.moodle.config.wiz,moodle_token:0
|
||||
msgid "Put your token that you created in your moodle server"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: model:ir.ui.menu,name:event_moodle.wizard_moodle
|
||||
msgid "Moodle Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: constraint:event.event:0
|
||||
msgid "Error ! Closing Date cannot be set before Beginning Date."
|
||||
msgstr "Fout ! Sluitingsdatum kan niet voor startdatum liggen."
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid "or"
|
||||
msgstr "of"
|
||||
|
||||
#. module: event_moodle
|
||||
#: code:addons/event_moodle/event_moodle.py:57
|
||||
#, python-format
|
||||
msgid "First configure your moodle connection."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid "Apply"
|
||||
msgstr "Toepassen"
|
||||
|
||||
#. module: event_moodle
|
||||
#: view:event.moodle.config.wiz:0
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
|
||||
#. module: event_moodle
|
||||
#: model:ir.model,name:event_moodle.model_event_event
|
||||
msgid "Event"
|
||||
msgstr ""
|
|
@ -0,0 +1,103 @@
|
|||
# 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 <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 20:07+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model,name:event_sale.model_product_product
|
||||
msgid "Product"
|
||||
msgstr "Product"
|
||||
|
||||
#. module: event_sale
|
||||
#: help:product.product,event_ok:0
|
||||
msgid ""
|
||||
"Determine if a product needs to create automatically an event registration "
|
||||
"at the confirmation of a sale order line."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: help:sale.order.line,event_id:0
|
||||
msgid ""
|
||||
"Choose an event and it will automatically create a registration for this "
|
||||
"event."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: sql_constraint:product.product:0
|
||||
msgid "Error ! Ending Date cannot be set before Beginning Date."
|
||||
msgstr "Fout! Einddatum kan niet voor de begindatum liggen."
|
||||
|
||||
#. module: event_sale
|
||||
#: model:event.event,name:event_sale.event_technical_training
|
||||
msgid "Technical training in Grand-Rosiere"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: help:product.product,event_type_id:0
|
||||
msgid ""
|
||||
"Filter the list of event on this category only, in the sale order lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: constraint:product.product:0
|
||||
msgid ""
|
||||
"You provided an invalid \"EAN13 Barcode\" reference. You may use the "
|
||||
"\"Internal Reference\" field instead."
|
||||
msgstr ""
|
||||
"U gebruikte een verkeerde \"EAN13 Barcode\" referentie. Hiervoor in de "
|
||||
"plaats kunt u de interne referentie gebruiken."
|
||||
|
||||
#. module: event_sale
|
||||
#: code:addons/event_sale/event_sale.py:88
|
||||
#, python-format
|
||||
msgid "The registration %s has been created from the Sale Order %s."
|
||||
msgstr ""
|
||||
|
||||
#. module: event_sale
|
||||
#: field:sale.order.line,event_ok:0
|
||||
msgid "event_ok"
|
||||
msgstr "event_ok"
|
||||
|
||||
#. module: event_sale
|
||||
#: field:product.product,event_ok:0
|
||||
msgid "Event Subscription"
|
||||
msgstr "Evenement omschrijving"
|
||||
|
||||
#. module: event_sale
|
||||
#: field:product.product,event_type_id:0
|
||||
msgid "Type of Event"
|
||||
msgstr "Soort evenement"
|
||||
|
||||
#. module: event_sale
|
||||
#: field:sale.order.line,event_type_id:0
|
||||
msgid "Event Type"
|
||||
msgstr "Soort evenement"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:product.template,name:event_sale.event_product_product_template
|
||||
msgid "Technical Training"
|
||||
msgstr "Technisch training"
|
||||
|
||||
#. module: event_sale
|
||||
#: field:sale.order.line,event_id:0
|
||||
msgid "Event"
|
||||
msgstr "Evenement"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model,name:event_sale.model_sale_order_line
|
||||
msgid "Sales Order Line"
|
||||
msgstr "Verkooporderregel"
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -7,13 +7,13 @@ 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-11-30 00:11+0000\n"
|
||||
"Last-Translator: Fabio Graziosi <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-11-30 22:46+0000\n"
|
||||
"Last-Translator: Davide Corio - agilebg.com <davide.corio@agilebg.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:07+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: hr
|
||||
|
@ -24,7 +24,7 @@ msgstr "Utente Openerp"
|
|||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_timesheet_sheet:0
|
||||
msgid "Allow timesheets validation by managers"
|
||||
msgstr ""
|
||||
msgstr "Consenti la validazione timesheet ai manager"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,requirements:0
|
||||
|
@ -63,7 +63,7 @@ msgstr ""
|
|||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Time Tracking"
|
||||
msgstr ""
|
||||
msgstr "Tracciamento Temporale"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
|
@ -74,17 +74,17 @@ msgstr "Raggruppato per..."
|
|||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.view_department_form_installer
|
||||
msgid "Create Your Departments"
|
||||
msgstr ""
|
||||
msgstr "Crea i tuoi dipartimenti"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,no_of_employee:0
|
||||
msgid "Number of employees currently occupying this job position."
|
||||
msgstr ""
|
||||
msgstr "Numero di dipendenti attualmente occupanti questa posizione."
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.config.settings,module_hr_evaluation:0
|
||||
msgid "Organize employees periodic evaluation"
|
||||
msgstr ""
|
||||
msgstr "Organizza la valutazione periodica dei dipendenti"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.department:0
|
||||
|
@ -106,11 +106,13 @@ msgid ""
|
|||
"This field holds the image used as photo for the employee, limited to "
|
||||
"1024x1024px."
|
||||
msgstr ""
|
||||
"Questo campo gestisce l'immagine usata come foto dell'impiegato, limitata a "
|
||||
"1024x1024px."
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_holidays:0
|
||||
msgid "This installs the module hr_holidays."
|
||||
msgstr ""
|
||||
msgstr "Installa il modul hr_holidays."
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.job:0
|
||||
|
@ -125,7 +127,7 @@ msgstr "In assunzione"
|
|||
#. module: hr
|
||||
#: field:hr.job,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
msgstr "Messaggi non letti"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.department,company_id:0
|
||||
|
@ -143,17 +145,17 @@ msgstr "Assunti previsti"
|
|||
#. module: hr
|
||||
#: field:res.users,employee_ids:0
|
||||
msgid "Related employees"
|
||||
msgstr ""
|
||||
msgstr "Dipendenti correlati"
|
||||
|
||||
#. module: hr
|
||||
#: constraint:hr.employee.category:0
|
||||
msgid "Error! You cannot create recursive Categories."
|
||||
msgstr ""
|
||||
msgstr "Errore! Non puoi creare categorie ricorsive."
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_recruitment:0
|
||||
msgid "This installs the module hr_recruitment."
|
||||
msgstr ""
|
||||
msgstr "Installa il modulo hr_recruitment."
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
|
@ -163,12 +165,12 @@ msgstr ""
|
|||
#. module: hr
|
||||
#: field:hr.employee,last_login:0
|
||||
msgid "Latest Connection"
|
||||
msgstr ""
|
||||
msgstr "Ultima Connessione"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.job:0
|
||||
msgid "Launch Recruitement"
|
||||
msgstr ""
|
||||
msgstr "Lancia Assunzione"
|
||||
|
||||
#. module: hr
|
||||
#: model:process.transition,name:hr.process_transition_employeeuser0
|
||||
|
@ -183,7 +185,7 @@ msgstr "Dipartimento Superiore"
|
|||
#. module: hr
|
||||
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_config
|
||||
msgid "Leaves"
|
||||
msgstr ""
|
||||
msgstr "Permessi"
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.employee,marital:0
|
||||
|
@ -193,22 +195,22 @@ msgstr "Sposato/a"
|
|||
#. module: hr
|
||||
#: field:hr.job,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
msgstr "Messaggi"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.config.settings:0
|
||||
msgid "Talent Management"
|
||||
msgstr ""
|
||||
msgstr "Talent Management"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.config.settings,module_hr_timesheet_sheet:0
|
||||
msgid "This installs the module hr_timesheet_sheet."
|
||||
msgstr ""
|
||||
msgstr "Installa il modulo hr_timesheet_sheet."
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Mobile:"
|
||||
msgstr ""
|
||||
msgstr "Cellulare:"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
|
@ -253,12 +255,12 @@ msgstr "Femmina"
|
|||
#: model:ir.actions.act_window,name:hr.open_view_categ_form
|
||||
#: model:ir.ui.menu,name:hr.menu_view_employee_category_form
|
||||
msgid "Categories of Employees"
|
||||
msgstr ""
|
||||
msgstr "Categorie dei Dipendenti"
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
|
||||
msgid "Attendance"
|
||||
msgstr ""
|
||||
msgstr "Presenza"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,work_phone:0
|
||||
|
@ -284,7 +286,7 @@ msgstr "Posizione Ufficio"
|
|||
#. module: hr
|
||||
#: field:hr.job,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
msgstr "Followers"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
|
@ -319,7 +321,7 @@ msgstr ""
|
|||
#. module: hr
|
||||
#: model:ir.actions.client,name:hr.action_client_hr_menu
|
||||
msgid "Open HR Menu"
|
||||
msgstr ""
|
||||
msgstr "Apre Menù HR"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.job,message_summary:0
|
||||
|
@ -376,7 +378,7 @@ msgstr ""
|
|||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
msgid "Tel:"
|
||||
msgstr ""
|
||||
msgstr "Tel:"
|
||||
|
||||
#. module: hr
|
||||
#: selection:hr.employee,marital:0
|
||||
|
|
|
@ -8,13 +8,13 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-28 15:27+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 14:35+0000\n"
|
||||
"Last-Translator: ccdos <ccdos@163.com>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-29 05:15+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: hr_evaluation
|
||||
|
@ -641,6 +641,13 @@ msgid ""
|
|||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" 单击创建一个新的跟个人评估关联的面谈要求。\n"
|
||||
" </p><p>\n"
|
||||
" 面谈要求通常是根据员工的评估计划自动生成的。\n"
|
||||
" 每个用户会自动定期收到要求评估他们的同事的Email。\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.plan.phase,action:0
|
||||
|
@ -694,12 +701,12 @@ msgstr "截止日期"
|
|||
#. module: hr_evaluation
|
||||
#: help:hr_evaluation.evaluation,rating:0
|
||||
msgid "This is the appreciation on which the evaluation is summarized."
|
||||
msgstr ""
|
||||
msgstr "这是评估总结的评价"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: selection:hr_evaluation.plan.phase,action:0
|
||||
msgid "Top-Down Appraisal Requests"
|
||||
msgstr "自上而下的考评申请"
|
||||
msgstr "自上而下的评估申请"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.plan.phase:0
|
||||
|
@ -795,13 +802,13 @@ msgstr "这个月份数字描述了计划中每次考评的间距(首次之后
|
|||
#. module: hr_evaluation
|
||||
#: selection:hr_evaluation.plan.phase,action:0
|
||||
msgid "Self Appraisal Requests"
|
||||
msgstr "自我考评申请"
|
||||
msgstr "自我评估申请"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.evaluation:0
|
||||
#: field:hr_evaluation.evaluation,survey_request_ids:0
|
||||
msgid "Appraisal Forms"
|
||||
msgstr "考评表"
|
||||
msgstr "评估表"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: selection:hr.evaluation.report,month:0
|
||||
|
@ -825,6 +832,15 @@ msgid ""
|
|||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" 单击创建一个新的评估\n"
|
||||
" </p><p>\n"
|
||||
" 每个员工被指派了一个评估计划。这样的计划定义你\n"
|
||||
" 的周期性的人才测评个人的频率和方法。\n"
|
||||
" 你能定义步骤和每一步伴随的面试:自底向上的、自\n"
|
||||
" 上而下的、自我评价以及管理人员的最终评估。\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.evaluation:0
|
||||
|
|
|
@ -8,19 +8,19 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:51+0000\n"
|
||||
"PO-Revision-Date: 2012-10-17 00:25+0000\n"
|
||||
"Last-Translator: Syllas F. de O. Neto <syllasneto@gmail.com>\n"
|
||||
"PO-Revision-Date: 2012-11-30 20:18+0000\n"
|
||||
"Last-Translator: Cristiano Korndörfer <codigo.aberto@dorfer.com.br>\n"
|
||||
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-25 06:30+0000\n"
|
||||
"X-Generator: Launchpad (build 16293)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: mail
|
||||
#: field:res.partner,notification_email_send:0
|
||||
msgid "Receive Feeds by Email"
|
||||
msgstr ""
|
||||
msgstr "Receber Feeds por Email"
|
||||
|
||||
#. module: mail
|
||||
#: view:mail.followers:0
|
||||
|
@ -36,7 +36,7 @@ msgstr ""
|
|||
#: field:mail.compose.message,author_id:0
|
||||
#: field:mail.message,author_id:0
|
||||
msgid "Author"
|
||||
msgstr ""
|
||||
msgstr "Autor"
|
||||
|
||||
#. module: mail
|
||||
#: view:mail.mail:0
|
||||
|
@ -51,7 +51,7 @@ msgstr "Destinatários da mensagem"
|
|||
#. module: mail
|
||||
#: view:mail.message:0
|
||||
msgid "Comments"
|
||||
msgstr ""
|
||||
msgstr "Comentários"
|
||||
|
||||
#. module: mail
|
||||
#: view:mail.alias:0
|
||||
|
@ -70,7 +70,7 @@ msgstr ""
|
|||
#: code:addons/mail/static/src/xml/mail.xml:43
|
||||
#, python-format
|
||||
msgid "Write an internal note..."
|
||||
msgstr ""
|
||||
msgstr "Escrever uma nota interna..."
|
||||
|
||||
#. module: mail
|
||||
#: help:mail.alias,alias_name:0
|
||||
|
@ -91,16 +91,18 @@ msgid ""
|
|||
"Invalid expression, it must be a literal python dictionary definition e.g. "
|
||||
"\"{'field': 'value'}\""
|
||||
msgstr ""
|
||||
"Expressão inválida, deve ser uma definição literal de dicionário estilo "
|
||||
"python como \"{'field': 'value'}\""
|
||||
|
||||
#. module: mail
|
||||
#: view:mail.group:0
|
||||
msgid "Group Name"
|
||||
msgstr ""
|
||||
msgstr "Nome do Grupo"
|
||||
|
||||
#. module: mail
|
||||
#: selection:mail.group,public:0
|
||||
msgid "Public"
|
||||
msgstr ""
|
||||
msgstr "Público"
|
||||
|
||||
#. module: mail
|
||||
#: view:mail.mail:0
|
||||
|
@ -110,7 +112,7 @@ msgstr "Corpo"
|
|||
#. module: mail
|
||||
#: view:mail.message:0
|
||||
msgid "Show messages to read"
|
||||
msgstr ""
|
||||
msgstr "Mostrar mensagens não lidas"
|
||||
|
||||
#. module: mail
|
||||
#: help:mail.compose.message,email_from:0
|
||||
|
@ -131,14 +133,14 @@ msgstr ""
|
|||
#: field:mail.thread,message_unread:0
|
||||
#: field:res.partner,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
msgstr "Mensagens não lidas"
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
#: code:addons/mail/static/src/xml/mail.xml:237
|
||||
#, python-format
|
||||
msgid "show"
|
||||
msgstr ""
|
||||
msgstr "mostrar"
|
||||
|
||||
#. module: mail
|
||||
#: help:mail.message.subtype,default:0
|
||||
|
@ -155,20 +157,20 @@ msgstr ""
|
|||
#. module: mail
|
||||
#: model:ir.ui.menu,name:mail.group_all_employees_ir_ui_menu
|
||||
msgid "Whole Company"
|
||||
msgstr ""
|
||||
msgstr "Toda a Empresa"
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
#: code:addons/mail/static/src/js/mail.js:786
|
||||
#, python-format
|
||||
msgid "Do you really want to delete this message?"
|
||||
msgstr ""
|
||||
msgstr "Deseja realmente excluir esta mensagem?"
|
||||
|
||||
#. module: mail
|
||||
#: view:mail.message:0
|
||||
#: field:mail.notification,read:0
|
||||
msgid "Read"
|
||||
msgstr ""
|
||||
msgstr "Lida"
|
||||
|
||||
#. module: mail
|
||||
#: view:mail.group:0
|
||||
|
@ -180,13 +182,13 @@ msgstr ""
|
|||
#: code:addons/mail/static/src/js/mail_followers.js:134
|
||||
#, python-format
|
||||
msgid "followers"
|
||||
msgstr ""
|
||||
msgstr "Seguidores"
|
||||
|
||||
#. module: mail
|
||||
#: code:addons/mail/mail_message.py:638
|
||||
#, python-format
|
||||
msgid "Access Denied"
|
||||
msgstr ""
|
||||
msgstr "Acesso Negado"
|
||||
|
||||
#. module: mail
|
||||
#: help:mail.group,image_medium:0
|
||||
|
@ -239,12 +241,12 @@ msgstr "Referências"
|
|||
#: code:addons/mail/static/src/xml/mail.xml:171
|
||||
#, python-format
|
||||
msgid "No messages."
|
||||
msgstr ""
|
||||
msgstr "Sem mensagens."
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model,name:mail.model_mail_group
|
||||
msgid "Discussion group"
|
||||
msgstr ""
|
||||
msgstr "Grupo de discussão"
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
|
@ -252,14 +254,14 @@ msgstr ""
|
|||
#: code:addons/mail/static/src/xml/mail.xml:91
|
||||
#, python-format
|
||||
msgid "uploading"
|
||||
msgstr ""
|
||||
msgstr "enviando"
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
#: code:addons/mail/static/src/xml/mail.xml:202
|
||||
#, python-format
|
||||
msgid "Set back to Inbox"
|
||||
msgstr ""
|
||||
msgstr "Devolva para a Caixa de Entrada"
|
||||
|
||||
#. module: mail
|
||||
#: help:mail.compose.message,type:0
|
||||
|
@ -301,7 +303,7 @@ msgstr "Assistente para compor Email"
|
|||
#: help:mail.thread,message_unread:0
|
||||
#: help:res.partner,message_unread:0
|
||||
msgid "If checked new messages require your attention."
|
||||
msgstr ""
|
||||
msgstr "Se marcado novas mensagens requerem sua atenção"
|
||||
|
||||
#. module: mail
|
||||
#: field:mail.group,image_medium:0
|
||||
|
@ -312,7 +314,7 @@ msgstr ""
|
|||
#: model:ir.actions.client,name:mail.action_mail_to_me_feeds
|
||||
#: model:ir.ui.menu,name:mail.mail_tomefeeds
|
||||
msgid "To: me"
|
||||
msgstr ""
|
||||
msgstr "Para: mim"
|
||||
|
||||
#. module: mail
|
||||
#: field:mail.message.subtype,name:0
|
||||
|
@ -322,7 +324,7 @@ msgstr "Tipo de Mensagem"
|
|||
#. module: mail
|
||||
#: field:mail.mail,auto_delete:0
|
||||
msgid "Auto Delete"
|
||||
msgstr "Excluir automaticamente"
|
||||
msgstr "Excluir Automaticamente"
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
|
@ -330,28 +332,28 @@ msgstr "Excluir automaticamente"
|
|||
#: view:mail.group:0
|
||||
#, python-format
|
||||
msgid "Unfollow"
|
||||
msgstr ""
|
||||
msgstr "Não seguir"
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
#: code:addons/mail/static/src/xml/mail.xml:236
|
||||
#, python-format
|
||||
msgid "show one more message"
|
||||
msgstr ""
|
||||
msgstr "Mostrar mais uma mensagem"
|
||||
|
||||
#. module: mail
|
||||
#: code:addons/mail/mail_mail.py:71
|
||||
#: code:addons/mail/res_users.py:76
|
||||
#, python-format
|
||||
msgid "Invalid Action!"
|
||||
msgstr ""
|
||||
msgstr "Ação Inválida!"
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
#: code:addons/mail/static/src/xml/mail.xml:25
|
||||
#, python-format
|
||||
msgid "User img"
|
||||
msgstr ""
|
||||
msgstr "Imagem do usuário"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.actions.act_window,name:mail.action_view_mail_mail
|
||||
|
@ -364,7 +366,7 @@ msgstr "Emails"
|
|||
#. module: mail
|
||||
#: field:mail.followers,partner_id:0
|
||||
msgid "Related Partner"
|
||||
msgstr ""
|
||||
msgstr "Parceiro Relacionado"
|
||||
|
||||
#. module: mail
|
||||
#: help:mail.group,message_summary:0
|
||||
|
@ -387,7 +389,7 @@ msgstr ""
|
|||
#: selection:mail.compose.message,type:0
|
||||
#: selection:mail.message,type:0
|
||||
msgid "System notification"
|
||||
msgstr ""
|
||||
msgstr "Notificação do sistema"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model,name:mail.model_res_partner
|
||||
|
@ -398,7 +400,7 @@ msgstr "Parceiro"
|
|||
#. module: mail
|
||||
#: model:ir.ui.menu,name:mail.mail_my_stuff
|
||||
msgid "Organizer"
|
||||
msgstr ""
|
||||
msgstr "Organizador"
|
||||
|
||||
#. module: mail
|
||||
#: field:mail.compose.message,subject:0
|
||||
|
@ -409,7 +411,7 @@ msgstr "Assunto"
|
|||
#. module: mail
|
||||
#: field:mail.wizard.invite,partner_ids:0
|
||||
msgid "Partners"
|
||||
msgstr ""
|
||||
msgstr "Parceiros"
|
||||
|
||||
#. module: mail
|
||||
#: view:mail.mail:0
|
||||
|
@ -456,7 +458,7 @@ msgstr "Enviar"
|
|||
#: code:addons/mail/static/src/js/mail_followers.js:130
|
||||
#, python-format
|
||||
msgid "No followers"
|
||||
msgstr ""
|
||||
msgstr "Sem seguidores"
|
||||
|
||||
#. module: mail
|
||||
#: view:mail.mail:0
|
||||
|
@ -466,7 +468,7 @@ msgstr "Falhou"
|
|||
#. module: mail
|
||||
#: model:mail.message.subtype,name:mail.mt_crm_won
|
||||
msgid "Won"
|
||||
msgstr ""
|
||||
msgstr "Venceu"
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
|
@ -479,20 +481,20 @@ msgstr ""
|
|||
#: field:res.partner,message_follower_ids:0
|
||||
#, python-format
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
msgstr "Seguidores"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.actions.client,name:mail.action_mail_archives_feeds
|
||||
#: model:ir.ui.menu,name:mail.mail_archivesfeeds
|
||||
msgid "Archives"
|
||||
msgstr ""
|
||||
msgstr "Arquivos"
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
#: code:addons/mail/static/src/xml/mail.xml:79
|
||||
#, python-format
|
||||
msgid "Delete this attachment"
|
||||
msgstr ""
|
||||
msgstr "Excluir este anexo"
|
||||
|
||||
#. module: mail
|
||||
#: field:mail.compose.message,message_id:0
|
||||
|
@ -505,13 +507,13 @@ msgstr "Cód da Mensagem"
|
|||
#: code:addons/mail/static/src/js/mail_followers.js:132
|
||||
#, python-format
|
||||
msgid "One follower"
|
||||
msgstr ""
|
||||
msgstr "Um seguidor"
|
||||
|
||||
#. module: mail
|
||||
#: field:mail.compose.message,type:0
|
||||
#: field:mail.message,type:0
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
msgstr "Tipo"
|
||||
|
||||
#. module: mail
|
||||
#: selection:mail.compose.message,type:0
|
||||
|
@ -523,22 +525,22 @@ msgstr ""
|
|||
#. module: mail
|
||||
#: field:ir.ui.menu,mail_group_id:0
|
||||
msgid "Mail Group"
|
||||
msgstr ""
|
||||
msgstr "Grupo de Email"
|
||||
|
||||
#. module: mail
|
||||
#: selection:res.partner,notification_email_send:0
|
||||
msgid "Comments and Emails"
|
||||
msgstr ""
|
||||
msgstr "Comentários e Emails"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model,name:mail.model_mail_favorite
|
||||
msgid "Favorite messages"
|
||||
msgstr ""
|
||||
msgstr "Mensagens favoritas"
|
||||
|
||||
#. module: mail
|
||||
#: view:mail.mail:0
|
||||
msgid "by"
|
||||
msgstr ""
|
||||
msgstr "por"
|
||||
|
||||
#. module: mail
|
||||
#: code:addons/mail/res_users.py:97
|
||||
|
@ -570,17 +572,17 @@ msgstr ""
|
|||
#. module: mail
|
||||
#: field:mail.group,group_public_id:0
|
||||
msgid "Authorized Group"
|
||||
msgstr ""
|
||||
msgstr "Grupo Autorizado"
|
||||
|
||||
#. module: mail
|
||||
#: view:mail.group:0
|
||||
msgid "Join Group"
|
||||
msgstr ""
|
||||
msgstr "Participar do Grupo"
|
||||
|
||||
#. module: mail
|
||||
#: help:mail.mail,email_from:0
|
||||
msgid "Message sender, taken from user preferences."
|
||||
msgstr ""
|
||||
msgstr "Remetente da mensagem, baseado nas preferências do usuário."
|
||||
|
||||
#. module: mail
|
||||
#: code:addons/mail/wizard/invite.py:39
|
||||
|
|
|
@ -295,7 +295,7 @@ class mail_message(osv.Model):
|
|||
|
||||
return {'id': message.id,
|
||||
'type': message.type,
|
||||
'body': html_email_clean(message.body),
|
||||
'body': html_email_clean(message.body or ''),
|
||||
'model': message.model,
|
||||
'res_id': message.res_id,
|
||||
'record_name': message.record_name,
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
# 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 <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:53+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 19:41+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: note_pad
|
||||
#: model:ir.model,name:note_pad.model_note_note
|
||||
msgid "Note"
|
||||
msgstr "Opmerking"
|
||||
|
||||
#. module: note_pad
|
||||
#: field:note.note,note_pad_url:0
|
||||
msgid "Pad Url"
|
||||
msgstr "Pad Url"
|
|
@ -8,13 +8,13 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:53+0000\n"
|
||||
"PO-Revision-Date: 2012-11-29 15:52+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 11:49+0000\n"
|
||||
"Last-Translator: ccdos <ccdos@163.com>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:08+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: portal
|
||||
|
@ -226,7 +226,7 @@ msgstr ""
|
|||
#. module: portal
|
||||
#: field:portal.payment.acquirer,name:0
|
||||
msgid "Name"
|
||||
msgstr "姓名"
|
||||
msgstr "名称"
|
||||
|
||||
#. module: portal
|
||||
#: model:ir.model,name:portal.model_res_groups
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
# 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 <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:53+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 19:42+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: portal_claim
|
||||
#: model:ir.actions.act_window,help:portal_claim.crm_case_categ_claim0
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to register a new claim. \n"
|
||||
" </p><p>\n"
|
||||
" You can track your claims from this menu and the action we\n"
|
||||
" will take.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: portal_claim
|
||||
#: model:ir.actions.act_window,name:portal_claim.crm_case_categ_claim0
|
||||
#: model:ir.ui.menu,name:portal_claim.portal_after_sales_claims
|
||||
msgid "Claims"
|
||||
msgstr "Klachtenregistratie"
|
|
@ -0,0 +1,23 @@
|
|||
# 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 <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:53+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 19:42+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: portal_project
|
||||
#: model:ir.ui.menu,name:portal_project.portal_services_tasks
|
||||
msgid "Tasks"
|
||||
msgstr "Taken"
|
|
@ -0,0 +1,42 @@
|
|||
# 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 <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:53+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 19:43+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: portal_project_issue
|
||||
#: view:project.issue:0
|
||||
msgid "Creation:"
|
||||
msgstr "Aangemakt:"
|
||||
|
||||
#. module: portal_project_issue
|
||||
#: model:ir.actions.act_window,name:portal_project_issue.project_issue_categ_act0
|
||||
#: model:ir.ui.menu,name:portal_project_issue.portal_after_sales_issues
|
||||
msgid "Issues"
|
||||
msgstr "Issues"
|
||||
|
||||
#. module: portal_project_issue
|
||||
#: model:ir.actions.act_window,help:portal_project_issue.project_issue_categ_act0
|
||||
msgid ""
|
||||
"<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create an issue.\n"
|
||||
" </p><p>\n"
|
||||
" OpenERP's kanban view will help you track easily your "
|
||||
"current \n"
|
||||
" pipeline of issues to fix.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr ""
|
|
@ -7,13 +7,13 @@ msgstr ""
|
|||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:54+0000\n"
|
||||
"PO-Revision-Date: 2012-11-29 22:56+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 13:11+0000\n"
|
||||
"Last-Translator: Christophe Chauvet - http://www.syleam.fr/ <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:07+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#~ msgid "Second UoM"
|
||||
|
@ -485,12 +485,12 @@ msgstr "Hauteur"
|
|||
#. module: product
|
||||
#: view:product.product:0
|
||||
msgid "Procurements"
|
||||
msgstr ""
|
||||
msgstr "Approvisionnements"
|
||||
|
||||
#. module: product
|
||||
#: model:res.groups,name:product.group_mrp_properties
|
||||
msgid "Manage Properties of Product"
|
||||
msgstr ""
|
||||
msgstr "Gérer les propriétés d'article"
|
||||
|
||||
#. module: product
|
||||
#: help:product.uom,factor:0
|
||||
|
@ -543,7 +543,7 @@ msgstr "Temps de travail"
|
|||
#. module: product
|
||||
#: model:product.template,name:product.product_product_42_product_template
|
||||
msgid "Office Suite"
|
||||
msgstr ""
|
||||
msgstr "Suite Bureautique"
|
||||
|
||||
#. module: product
|
||||
#: field:product.template,mes_type:0
|
||||
|
@ -568,6 +568,16 @@ msgid ""
|
|||
"Otherwise, this includes goods arriving to any Stock Location with "
|
||||
"'internal' type."
|
||||
msgstr ""
|
||||
"Quantité de cet article dont l'arrivée est prévue.\n"
|
||||
"Dans le contexte d'un emplacement de stock, cela tient compte des articles "
|
||||
"arrivant à cet emplacement où à ses enfants.\n"
|
||||
"Dans le contexte d'un entrepôt, cela tient compte des articles arrivant à "
|
||||
"l'emplacement de stock de cet entrepôt ou à l'un de ses enfants.\n"
|
||||
"Dans le contexte d'une boutique, cela tient compte des articles arrivant à "
|
||||
"l'emplacement de stock de l'entrepôt de cette boutique, ou à l'un de ses "
|
||||
"enfants.\n"
|
||||
"Dans les autres cas, cela tient compte de tous les articles arrivant à des "
|
||||
"emplacements de type \"interne\"."
|
||||
|
||||
#. module: product
|
||||
#: constraint:product.template:0
|
||||
|
@ -589,7 +599,7 @@ msgstr "Boîte 20x20x40"
|
|||
#. module: product
|
||||
#: field:product.template,warranty:0
|
||||
msgid "Warranty"
|
||||
msgstr ""
|
||||
msgstr "Garantie"
|
||||
|
||||
#. module: product
|
||||
#: view:product.pricelist.item:0
|
||||
|
@ -606,7 +616,7 @@ msgstr ""
|
|||
#. module: product
|
||||
#: model:res.groups,name:product.group_purchase_pricelist
|
||||
msgid "Purchase Pricelists"
|
||||
msgstr ""
|
||||
msgstr "Liste de prix d'achat"
|
||||
|
||||
#. module: product
|
||||
#: model:product.template,name:product.product_product_5_product_template
|
||||
|
@ -636,7 +646,7 @@ msgstr ""
|
|||
#. module: product
|
||||
#: model:product.template,name:product.product_product_36_product_template
|
||||
msgid "Blank DVD-RW"
|
||||
msgstr ""
|
||||
msgstr "DVD-RW vierge"
|
||||
|
||||
#. module: product
|
||||
#: selection:product.category,type:0
|
||||
|
|
|
@ -14,7 +14,7 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:08+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: product_expiry
|
||||
|
|
|
@ -7,15 +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:51+0000\n"
|
||||
"PO-Revision-Date: 2012-02-15 22:57+0000\n"
|
||||
"Last-Translator: Thorsten Vocks (OpenBig.org) <thorsten.vocks@big-"
|
||||
"consulting.net>\n"
|
||||
"PO-Revision-Date: 2012-11-30 10:24+0000\n"
|
||||
"Last-Translator: Felix Schubert <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-25 05:35+0000\n"
|
||||
"X-Generator: Launchpad (build 16293)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:07+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: project
|
||||
#: view:project.project:0
|
||||
|
@ -174,7 +173,7 @@ msgstr "Prozent erledigte Aufgaben zu Gesamtsumme der offenen Aufgaben."
|
|||
#. module: project
|
||||
#: model:ir.actions.client,name:project.action_client_project_menu
|
||||
msgid "Open Project Menu"
|
||||
msgstr ""
|
||||
msgstr "Projekt Menu öffnen"
|
||||
|
||||
#. module: project
|
||||
#: model:ir.actions.act_window,help:project.action_project_task_user_tree
|
||||
|
@ -261,7 +260,7 @@ msgstr ""
|
|||
#. module: project
|
||||
#: view:project.config.settings:0
|
||||
msgid "Project Management"
|
||||
msgstr "Projekte"
|
||||
msgstr "Projekt-Management"
|
||||
|
||||
#. module: project
|
||||
#: model:ir.actions.act_window,name:project.action_project_task_delegate
|
||||
|
@ -273,7 +272,7 @@ msgstr "Delegation Projektaufgabe"
|
|||
#: code:addons/project/project.py:551
|
||||
#, python-format
|
||||
msgid "Project has been <b>created</b>."
|
||||
msgstr ""
|
||||
msgstr "Projekt wurde <b>erzeugt</b>."
|
||||
|
||||
#. module: project
|
||||
#: view:project.config.settings:0
|
||||
|
@ -408,7 +407,7 @@ msgstr "Der beuaftragte Benutzer muss definiert werden."
|
|||
#. module: project
|
||||
#: view:project.project:0
|
||||
msgid "Project(s) Manager"
|
||||
msgstr ""
|
||||
msgstr "Projekt Manager"
|
||||
|
||||
#. module: project
|
||||
#: selection:project.project,state:0
|
||||
|
@ -506,7 +505,7 @@ msgstr ""
|
|||
#. module: project
|
||||
#: view:project.project:0
|
||||
msgid "Project Settings"
|
||||
msgstr ""
|
||||
msgstr "Projekt-Einstellungen"
|
||||
|
||||
#. module: project
|
||||
#: view:report.project.task.user:0
|
||||
|
@ -630,6 +629,7 @@ msgstr "Keine Aufgabenvorlage"
|
|||
msgid ""
|
||||
"Follow this project to automatically follow all related tasks and issues."
|
||||
msgstr ""
|
||||
"Folge diesem Projekt, um alle relevanten Aufgaben und Probleme zu verfolgen."
|
||||
|
||||
#. module: project
|
||||
#: field:project.task,planned_hours:0
|
||||
|
@ -820,7 +820,7 @@ msgstr "PRÜFUNG: %s"
|
|||
#. module: project
|
||||
#: view:project.project:0
|
||||
msgid "Close Project"
|
||||
msgstr ""
|
||||
msgstr "Projekt abschließen"
|
||||
|
||||
#. module: project
|
||||
#: field:project.project,tasks:0
|
||||
|
@ -913,7 +913,7 @@ msgstr ""
|
|||
#: code:addons/project/project.py:560
|
||||
#, python-format
|
||||
msgid "Project has been <b>canceled</b>."
|
||||
msgstr ""
|
||||
msgstr "Projekt wurde <b>abgebrochen</b>."
|
||||
|
||||
#. module: project
|
||||
#: help:project.project,analytic_account_id:0
|
||||
|
@ -940,7 +940,7 @@ msgstr "Abbrechen"
|
|||
#: code:addons/project/project.py:563
|
||||
#, python-format
|
||||
msgid "Project has been <b>closed</b>."
|
||||
msgstr ""
|
||||
msgstr "Projekt wurde <b>abgeschlossen</b>."
|
||||
|
||||
#. module: project
|
||||
#: view:project.project:0
|
||||
|
@ -2041,7 +2041,7 @@ msgstr ""
|
|||
#: model:ir.actions.act_window,name:project.action_config_settings
|
||||
#: view:project.config.settings:0
|
||||
msgid "Configure Project"
|
||||
msgstr ""
|
||||
msgstr "Projekt konfigurieren"
|
||||
|
||||
#. module: project
|
||||
#: field:project.project,message_comment_ids:0
|
||||
|
@ -2087,7 +2087,7 @@ msgstr "Nicht zugewiesenen Aufgaben"
|
|||
#. module: project
|
||||
#: view:project.project:0
|
||||
msgid "Projects in which I am a manager"
|
||||
msgstr "Projekte, die ich manage"
|
||||
msgstr "Projekte, die ich verantworte"
|
||||
|
||||
#. module: project
|
||||
#: view:project.task:0
|
||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:51+0000\n"
|
||||
"PO-Revision-Date: 2012-02-14 10:06+0000\n"
|
||||
"Last-Translator: 开阖软件 Jeff Wang <jeff@osbzr.com>\n"
|
||||
"PO-Revision-Date: 2012-11-30 08:57+0000\n"
|
||||
"Last-Translator: mrshelly <Unknown>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-25 06:26+0000\n"
|
||||
"X-Generator: Launchpad (build 16293)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: project_issue
|
||||
#: model:project.category,name:project_issue.project_issue_category_03
|
||||
|
@ -27,7 +27,7 @@ msgstr ""
|
|||
msgid ""
|
||||
"Allows you to configure your incoming mail server, and create issues from "
|
||||
"incoming emails."
|
||||
msgstr ""
|
||||
msgstr "允许直接从邮件收件服务器收到的邮件创建相关问题."
|
||||
|
||||
#. module: project_issue
|
||||
#: field:project.issue.report,delay_open:0
|
||||
|
@ -74,7 +74,7 @@ msgstr "进度(%)"
|
|||
#: view:project.issue:0
|
||||
#: field:project.issue,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
msgstr "未读消息"
|
||||
|
||||
#. module: project_issue
|
||||
#: code:addons/project_issue/project_issue.py:562
|
||||
|
@ -90,7 +90,7 @@ msgstr "关注者的电子邮件"
|
|||
#. module: project_issue
|
||||
#: help:project.issue,message_unread:0
|
||||
msgid "If checked new messages require your attention."
|
||||
msgstr ""
|
||||
msgstr "如果要求你关注新消息,勾选此项"
|
||||
|
||||
#. module: project_issue
|
||||
#: help:account.analytic.account,use_issues:0
|
||||
|
@ -213,7 +213,7 @@ msgstr "距开始日期小时数"
|
|||
#. module: project_issue
|
||||
#: model:ir.model,name:project_issue.model_account_analytic_account
|
||||
msgid "Analytic Account"
|
||||
msgstr ""
|
||||
msgstr "辅助核算项"
|
||||
|
||||
#. module: project_issue
|
||||
#: help:project.issue,message_summary:0
|
||||
|
@ -288,7 +288,7 @@ msgstr "版本"
|
|||
#. module: project_issue
|
||||
#: field:project.issue,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
msgstr "关注者"
|
||||
|
||||
#. module: project_issue
|
||||
#: view:project.issue:0
|
||||
|
@ -305,7 +305,7 @@ msgstr "问题分类"
|
|||
#. module: project_issue
|
||||
#: field:project.issue,email_from:0
|
||||
msgid "Email"
|
||||
msgstr "电子邮件"
|
||||
msgstr "Email"
|
||||
|
||||
#. module: project_issue
|
||||
#: field:project.issue,channel_id:0
|
||||
|
@ -323,12 +323,12 @@ msgstr "最低"
|
|||
#: code:addons/project_issue/project_issue.py:358
|
||||
#, python-format
|
||||
msgid "%s (copy)"
|
||||
msgstr ""
|
||||
msgstr "%s (副本)"
|
||||
|
||||
#. module: project_issue
|
||||
#: model:ir.actions.server,name:project_issue.actions_server_project_issue_read
|
||||
msgid "Mark read"
|
||||
msgstr ""
|
||||
msgstr "标记为已读"
|
||||
|
||||
#. module: project_issue
|
||||
#: view:project.issue:0
|
||||
|
@ -383,7 +383,7 @@ msgstr "七月"
|
|||
#. module: project_issue
|
||||
#: model:ir.ui.menu,name:project_issue.menu_project_issue_category_act
|
||||
msgid "Categories"
|
||||
msgstr "类别"
|
||||
msgstr "分类"
|
||||
|
||||
#. module: project_issue
|
||||
#: view:project.issue:0
|
||||
|
@ -454,7 +454,7 @@ msgstr "十二月"
|
|||
#. module: project_issue
|
||||
#: field:project.issue,categ_ids:0
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
msgstr "标签"
|
||||
|
||||
#. module: project_issue
|
||||
#: view:project.issue:0
|
||||
|
@ -464,7 +464,7 @@ msgstr "缺陷列表"
|
|||
#. module: project_issue
|
||||
#: model:project.category,name:project_issue.project_issue_category_01
|
||||
msgid "Little problem"
|
||||
msgstr ""
|
||||
msgstr "小问题"
|
||||
|
||||
#. module: project_issue
|
||||
#: view:project.project:0
|
||||
|
@ -484,7 +484,7 @@ msgstr "更新日期"
|
|||
#. module: project_issue
|
||||
#: view:project.issue:0
|
||||
msgid "Project:"
|
||||
msgstr ""
|
||||
msgstr "项目:"
|
||||
|
||||
#. module: project_issue
|
||||
#: view:project.issue:0
|
||||
|
@ -540,7 +540,7 @@ msgstr "草稿"
|
|||
#: selection:project.issue,priority:0
|
||||
#: selection:project.issue.report,priority:0
|
||||
msgid "Low"
|
||||
msgstr "最低"
|
||||
msgstr "低"
|
||||
|
||||
#. module: project_issue
|
||||
#: field:project.issue,date_closed:0
|
||||
|
@ -558,7 +558,7 @@ msgstr "平均耗用天数"
|
|||
#: view:project.issue.report:0
|
||||
#: selection:project.issue.report,state:0
|
||||
msgid "Pending"
|
||||
msgstr "等待中"
|
||||
msgstr "待处理"
|
||||
|
||||
#. module: project_issue
|
||||
#: view:project.issue:0
|
||||
|
@ -581,7 +581,7 @@ msgstr "八月"
|
|||
#: selection:project.issue,priority:0
|
||||
#: selection:project.issue.report,priority:0
|
||||
msgid "Normal"
|
||||
msgstr "一般"
|
||||
msgstr "普通"
|
||||
|
||||
#. module: project_issue
|
||||
#: view:project.issue:0
|
||||
|
@ -596,7 +596,7 @@ msgstr ""
|
|||
#. module: project_issue
|
||||
#: view:project.issue:0
|
||||
msgid "Category:"
|
||||
msgstr ""
|
||||
msgstr "分类:"
|
||||
|
||||
#. module: project_issue
|
||||
#: selection:project.issue.report,month:0
|
||||
|
@ -621,7 +621,7 @@ msgstr "剩余天数"
|
|||
#. module: project_issue
|
||||
#: field:project.issue,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
msgstr "是一个关注者"
|
||||
|
||||
#. module: project_issue
|
||||
#: help:project.issue,state:0
|
||||
|
@ -648,13 +648,13 @@ msgstr "十一月"
|
|||
#: code:addons/project_issue/project_issue.py:474
|
||||
#, python-format
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
msgstr "警告!"
|
||||
|
||||
#. module: project_issue
|
||||
#: field:project.issue,message_comment_ids:0
|
||||
#: help:project.issue,message_comment_ids:0
|
||||
msgid "Comments and emails"
|
||||
msgstr ""
|
||||
msgstr "评论和电子邮件"
|
||||
|
||||
#. module: project_issue
|
||||
#: view:project.issue.report:0
|
||||
|
@ -689,7 +689,7 @@ msgstr "这些人将收到电子邮件。"
|
|||
#. module: project_issue
|
||||
#: field:project.issue,message_summary:0
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
msgstr "摘要"
|
||||
|
||||
#. module: project_issue
|
||||
#: field:project.issue,date:0
|
||||
|
@ -706,7 +706,7 @@ msgstr "指派到"
|
|||
#. module: project_issue
|
||||
#: view:project.config.settings:0
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
msgstr "设置"
|
||||
|
||||
#. module: project_issue
|
||||
#: view:project.issue:0
|
||||
|
@ -726,7 +726,7 @@ msgstr "版本号"
|
|||
#. module: project_issue
|
||||
#: view:project.issue:0
|
||||
msgid "Cancel"
|
||||
msgstr "取消(&C)"
|
||||
msgstr "取消"
|
||||
|
||||
#. module: project_issue
|
||||
#: selection:project.issue.report,state:0
|
||||
|
@ -796,7 +796,7 @@ msgstr "问题"
|
|||
#: code:addons/project_issue/project_issue.py:542
|
||||
#, python-format
|
||||
msgid "Stage changed to <b>%s</b>."
|
||||
msgstr ""
|
||||
msgstr "阶段已改为<b>%s</b>"
|
||||
|
||||
#. module: project_issue
|
||||
#: model:project.category,name:project_issue.project_issue_category_02
|
||||
|
|
|
@ -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-06-01 08:41+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 19:55+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-25 05:42+0000\n"
|
||||
"X-Generator: Launchpad (build 16293)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:07+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: purchase
|
||||
#: model:res.groups,name:purchase.group_analytic_accounting
|
||||
msgid "Analytic Accounting for Purchases"
|
||||
msgstr ""
|
||||
msgstr "Kostenplaatsen voor inkopen"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.model,name:purchase.model_account_config_settings
|
||||
msgid "account.config.settings"
|
||||
msgstr ""
|
||||
msgstr "account.config.settings"
|
||||
|
||||
#. module: purchase
|
||||
#: view:board.board:0
|
||||
|
@ -156,7 +156,7 @@ msgstr "Order van dag"
|
|||
#. module: purchase
|
||||
#: help:purchase.order,message_unread:0
|
||||
msgid "If checked new messages require your attention."
|
||||
msgstr ""
|
||||
msgstr "Indien aangevinkt zullen nieuwe berichten uw aandacht vragen."
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.ui.menu,name:purchase.menu_procurement_management_inventory
|
||||
|
@ -181,6 +181,9 @@ msgid ""
|
|||
"Holds the Chatter summary (number of messages, ...). This summary is "
|
||||
"directly in html format in order to be inserted in kanban views."
|
||||
msgstr ""
|
||||
"Bevat de samenvatting van de chatter (aantal berichten,...). Deze "
|
||||
"samenvatting is direct in html formaat om zo in de kanban weergave te worden "
|
||||
"ingevoegd."
|
||||
|
||||
#. module: purchase
|
||||
#: code:addons/purchase/purchase.py:956
|
||||
|
@ -189,7 +192,7 @@ msgstr ""
|
|||
#: code:addons/purchase/wizard/purchase_order_group.py:47
|
||||
#, python-format
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
msgstr "Waarschuwing!"
|
||||
|
||||
#. module: purchase
|
||||
#: code:addons/purchase/purchase.py:556
|
||||
|
@ -240,7 +243,7 @@ msgstr "Gemiddelde prijs"
|
|||
#: code:addons/purchase/purchase.py:813
|
||||
#, python-format
|
||||
msgid "Invoice <b>paid</b>."
|
||||
msgstr ""
|
||||
msgstr "Factuur <b>betaald</b>."
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
|
@ -274,7 +277,7 @@ msgstr "Afleveradres :"
|
|||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Confirm Order"
|
||||
msgstr ""
|
||||
msgstr "Bevestig Order"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.config.settings,module_warning:0
|
||||
|
@ -291,7 +294,7 @@ msgstr "Order referentie"
|
|||
#. module: purchase
|
||||
#: view:purchase.config.settings:0
|
||||
msgid "Invoicing Process"
|
||||
msgstr ""
|
||||
msgstr "Factureer proces"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition,name:purchase.process_transition_approvingpurchaseorder0
|
||||
|
@ -341,7 +344,7 @@ msgstr "Totaalbedrag excl. belastingen"
|
|||
#. module: purchase
|
||||
#: model:ir.ui.menu,name:purchase.menu_purchase_uom_categ_form_action
|
||||
msgid "Unit of Measure Categories"
|
||||
msgstr ""
|
||||
msgstr "Maateenheid categorieën"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.report:0
|
||||
|
@ -352,7 +355,7 @@ msgstr "Categorie"
|
|||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Quotation "
|
||||
msgstr ""
|
||||
msgstr "Offerte "
|
||||
|
||||
#. module: purchase
|
||||
#: code:addons/purchase/purchase.py:793
|
||||
|
@ -379,7 +382,7 @@ msgstr ""
|
|||
#: field:purchase.order.line,state:0
|
||||
#: view:purchase.report:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
msgstr "Status"
|
||||
|
||||
#. module: purchase
|
||||
#: selection:purchase.report,month:0
|
||||
|
@ -389,7 +392,7 @@ msgstr "Augustus"
|
|||
#. module: purchase
|
||||
#: view:product.product:0
|
||||
msgid "to"
|
||||
msgstr ""
|
||||
msgstr "t/m"
|
||||
|
||||
#. module: purchase
|
||||
#: selection:purchase.report,month:0
|
||||
|
@ -426,7 +429,7 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: constraint:stock.move:0
|
||||
msgid "You must assign a serial number for this product."
|
||||
msgstr ""
|
||||
msgstr "U dient een productie partij toe te wijzen voor dit product."
|
||||
|
||||
#. module: purchase
|
||||
#: selection:purchase.report,month:0
|
||||
|
@ -442,7 +445,7 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: field:purchase.order,message_summary:0
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
msgstr "Samenvatting"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition,note:purchase.process_transition_createpackinglist0
|
||||
|
@ -575,6 +578,8 @@ msgid ""
|
|||
"Error: The default Unit of Measure and the purchase Unit of Measure must be "
|
||||
"in the same category."
|
||||
msgstr ""
|
||||
"Foutmelding: de standaard maateenheid moet in dezelfde categorie vallen als "
|
||||
"de inkoop maateenheid."
|
||||
|
||||
#. module: purchase
|
||||
#: view:board.board:0
|
||||
|
@ -601,19 +606,19 @@ msgstr "De naam van het bedrijf moet uniek zijn!"
|
|||
#: view:product.product:0
|
||||
#: field:product.template,purchase_ok:0
|
||||
msgid "Can be Purchased"
|
||||
msgstr ""
|
||||
msgstr "Inkoop product"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.ui.menu,name:purchase.menu_action_picking_tree_in_move
|
||||
msgid "Incoming Products"
|
||||
msgstr ""
|
||||
msgstr "Inkomende producten"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.config.settings:0
|
||||
#: view:purchase.order.group:0
|
||||
#: view:purchase.order.line_invoice:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
msgstr "of"
|
||||
|
||||
#. module: purchase
|
||||
#: field:res.company,po_lead:0
|
||||
|
@ -623,7 +628,7 @@ msgstr "Voorbereidingstijd inkoop"
|
|||
#. module: purchase
|
||||
#: constraint:res.partner:0
|
||||
msgid "Error: Invalid ean code"
|
||||
msgstr ""
|
||||
msgstr "Fout: Ongeldige EAN-code"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition,note:purchase.process_transition_invoicefrompurchase0
|
||||
|
@ -639,7 +644,7 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: view:purchase.config.settings:0
|
||||
msgid "Apply"
|
||||
msgstr ""
|
||||
msgstr "Toepassen"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order,amount_untaxed:0
|
||||
|
@ -659,12 +664,12 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Customer Address"
|
||||
msgstr ""
|
||||
msgstr "Klant adres"
|
||||
|
||||
#. module: purchase
|
||||
#: selection:purchase.order,state:0
|
||||
msgid "RFQ Sent"
|
||||
msgstr ""
|
||||
msgstr "Offerte verzonden"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
|
@ -717,12 +722,12 @@ msgstr "Inkooporders welke zich de concept fase bevinden"
|
|||
#. module: purchase
|
||||
#: view:product.product:0
|
||||
msgid "Suppliers"
|
||||
msgstr ""
|
||||
msgstr "Leveranciers"
|
||||
|
||||
#. module: purchase
|
||||
#: view:product.product:0
|
||||
msgid "To Purchase"
|
||||
msgstr ""
|
||||
msgstr "Inkoop product"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.actions.act_window,help:purchase.purchase_form_action
|
||||
|
@ -761,7 +766,7 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "(update)"
|
||||
msgstr ""
|
||||
msgstr "(update)"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
|
@ -838,7 +843,7 @@ msgstr "Prijslijst"
|
|||
#. module: purchase
|
||||
#: selection:purchase.order,state:0
|
||||
msgid "Draft PO"
|
||||
msgstr ""
|
||||
msgstr "Concept inkoopporder"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.node,name:purchase.process_node_draftpurchaseorder0
|
||||
|
@ -858,7 +863,7 @@ msgstr "Orderdatum"
|
|||
#. module: purchase
|
||||
#: field:purchase.config.settings,group_uom:0
|
||||
msgid "Manage different units of measure for products"
|
||||
msgstr ""
|
||||
msgstr "Beheer verschillende maateenheden voor een product."
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.node,name:purchase.process_node_invoiceafterpacking0
|
||||
|
@ -906,7 +911,7 @@ msgstr "Goederenstromen"
|
|||
#: code:addons/purchase/purchase.py:1141
|
||||
#, python-format
|
||||
msgid "Draft Purchase Order created"
|
||||
msgstr ""
|
||||
msgstr "Concept inkoopporderBeheer aangemaakt."
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.ui.menu,name:purchase.menu_product_category_config_purchase
|
||||
|
@ -916,7 +921,7 @@ msgstr "Productcategorieën"
|
|||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Send Request for Quotation"
|
||||
msgstr ""
|
||||
msgstr "Verstuur inkooporder"
|
||||
|
||||
#. module: purchase
|
||||
#: help:purchase.order,invoiced:0
|
||||
|
@ -926,12 +931,12 @@ msgstr "Dit geeft aan dat de factuur is betaald."
|
|||
#. module: purchase
|
||||
#: field:purchase.order,notes:0
|
||||
msgid "Terms and Conditions"
|
||||
msgstr ""
|
||||
msgstr "Voorwaarden"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order,currency_id:0
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
msgstr "onbekend"
|
||||
|
||||
#. module: purchase
|
||||
#: help:purchase.order,date_order:0
|
||||
|
@ -941,7 +946,7 @@ msgstr "Datum waarop dit document gemaakt is."
|
|||
#. module: purchase
|
||||
#: field:purchase.order,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
msgstr "Is een volger"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.actions.act_window,name:purchase.action_purchase_order_report_graph
|
||||
|
@ -1008,7 +1013,7 @@ msgstr "Dagen tot goedkeuring"
|
|||
#. module: purchase
|
||||
#: view:purchase.config.settings:0
|
||||
msgid "Supplier Features"
|
||||
msgstr ""
|
||||
msgstr "Leveranciersopties"
|
||||
|
||||
#. module: purchase
|
||||
#: report:purchase.order:0
|
||||
|
@ -1019,7 +1024,7 @@ msgstr "Hvhd"
|
|||
#. module: purchase
|
||||
#: model:res.groups,name:purchase.group_delivery_invoice_address
|
||||
msgid "Addresses in Purchase Orders"
|
||||
msgstr ""
|
||||
msgstr "Adressen in inkooporders"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition.action,name:purchase.process_transition_action_approvingcancelpurchaseorder0
|
||||
|
@ -1035,7 +1040,7 @@ msgstr "Annuleren"
|
|||
#: field:purchase.order,message_comment_ids:0
|
||||
#: help:purchase.order,message_comment_ids:0
|
||||
msgid "Comments and emails"
|
||||
msgstr ""
|
||||
msgstr "Opmerkingen en e-mails."
|
||||
|
||||
#. module: purchase
|
||||
#: sql_constraint:purchase.order:0
|
||||
|
@ -1079,12 +1084,13 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: view:product.product:0
|
||||
msgid "a draft purchase order"
|
||||
msgstr ""
|
||||
msgstr "een concept inkooporder"
|
||||
|
||||
#. module: purchase
|
||||
#: constraint:stock.move:0
|
||||
msgid "You try to assign a lot which is not from the same product."
|
||||
msgstr ""
|
||||
"U probeert een partij toe te wijzen wat niet van hetzelfde product is."
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.report:0
|
||||
|
@ -1094,13 +1100,13 @@ msgstr "Order van jaar"
|
|||
#. module: purchase
|
||||
#: model:ir.actions.act_window,name:purchase.act_res_partner_2_purchase_order
|
||||
msgid "RFQs and Purchases"
|
||||
msgstr ""
|
||||
msgstr "Offertes en inkopen"
|
||||
|
||||
#. module: purchase
|
||||
#: field:account.config.settings,group_analytic_account_for_purchases:0
|
||||
#: field:purchase.config.settings,group_analytic_account_for_purchases:0
|
||||
msgid "Analytic accounting for purchases"
|
||||
msgstr ""
|
||||
msgstr "Kostenplaatsen voor inkopen"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder1
|
||||
|
@ -1123,7 +1129,7 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: model:ir.model,name:purchase.model_mail_mail
|
||||
msgid "Outgoing Mails"
|
||||
msgstr ""
|
||||
msgstr "Uitgaande E-mails"
|
||||
|
||||
#. module: purchase
|
||||
#: code:addons/purchase/purchase.py:420
|
||||
|
@ -1134,13 +1140,13 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: help:purchase.order,message_ids:0
|
||||
msgid "Messages and communication history"
|
||||
msgstr ""
|
||||
msgstr "Berichten en communicatie historie"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order,warehouse_id:0
|
||||
#: field:stock.picking.in,warehouse_id:0
|
||||
msgid "Destination Warehouse"
|
||||
msgstr ""
|
||||
msgstr "Bestemmings magazijn"
|
||||
|
||||
#. module: purchase
|
||||
#: code:addons/purchase/purchase.py:956
|
||||
|
@ -1159,7 +1165,7 @@ msgstr "Maateenheden"
|
|||
#. module: purchase
|
||||
#: field:purchase.config.settings,group_purchase_pricelist:0
|
||||
msgid "Manage pricelist per supplier"
|
||||
msgstr ""
|
||||
msgstr "Beheer prijslijsten per leverancier"
|
||||
|
||||
#. module: purchase
|
||||
#: code:addons/purchase/purchase.py:816
|
||||
|
@ -1181,7 +1187,7 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Approve Order"
|
||||
msgstr ""
|
||||
msgstr "Order goedkeuren"
|
||||
|
||||
#. module: purchase
|
||||
#: help:purchase.report,date:0
|
||||
|
@ -1209,7 +1215,7 @@ msgstr "Inkooporder statistieken"
|
|||
#: view:purchase.order:0
|
||||
#: field:purchase.order,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
msgstr "Ongelezen berichten"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order.line_invoice:0
|
||||
|
@ -1259,7 +1265,7 @@ msgstr "Voorraadmutatie"
|
|||
#: code:addons/purchase/purchase.py:252
|
||||
#, python-format
|
||||
msgid "Invalid Action!"
|
||||
msgstr ""
|
||||
msgstr "Ongeldige actie!"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order,validator:0
|
||||
|
@ -1287,7 +1293,7 @@ msgstr "Offerteaanvraag"
|
|||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
msgstr "Bron"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.model,name:purchase.model_stock_picking
|
||||
|
@ -1382,7 +1388,7 @@ msgstr "Maart"
|
|||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Receive Invoice"
|
||||
msgstr ""
|
||||
msgstr "Ontvang factuur"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
|
@ -1409,7 +1415,7 @@ msgstr "Te controleren door de boekhouder."
|
|||
#. module: purchase
|
||||
#: model:ir.model,name:purchase.model_purchase_config_settings
|
||||
msgid "purchase.config.settings"
|
||||
msgstr ""
|
||||
msgstr "purchase.config.settings"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.node,note:purchase.process_node_approvepurchaseorder0
|
||||
|
@ -1420,7 +1426,7 @@ msgstr "Status van de inkooporder."
|
|||
#. module: purchase
|
||||
#: field:purchase.order.line,product_uom:0
|
||||
msgid "Product Unit of Measure"
|
||||
msgstr ""
|
||||
msgstr "Maateenheid product"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.actions.act_window,help:purchase.purchase_pricelist_version_action
|
||||
|
@ -1467,7 +1473,7 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Purchase Order "
|
||||
msgstr ""
|
||||
msgstr "InkoopporderBeheer "
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order.line:0
|
||||
|
@ -1478,12 +1484,12 @@ msgstr "Handmatige facturen"
|
|||
#: model:ir.actions.act_window,name:purchase.action_purchase_configuration
|
||||
#: view:purchase.config.settings:0
|
||||
msgid "Configure Purchases"
|
||||
msgstr ""
|
||||
msgstr "Inkopen instellen"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Untaxed"
|
||||
msgstr ""
|
||||
msgstr "Onbelast"
|
||||
|
||||
#. module: purchase
|
||||
#: model:process.transition,name:purchase.process_transition_createpackinglist0
|
||||
|
@ -1494,7 +1500,7 @@ msgstr "Pakbon gegenereerd"
|
|||
#: model:ir.actions.act_window,name:purchase.purchase_line_form_action2
|
||||
#: model:ir.ui.menu,name:purchase.menu_purchase_line_order_draft
|
||||
msgid "On Purchase Order Lines"
|
||||
msgstr ""
|
||||
msgstr "Op inkooporderregels"
|
||||
|
||||
#. module: purchase
|
||||
#: report:purchase.quotation:0
|
||||
|
@ -1516,7 +1522,7 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: model:ir.ui.menu,name:purchase.menu_product_pricelist_action2_purchase_type
|
||||
msgid "Price Types"
|
||||
msgstr ""
|
||||
msgstr "Prijs types"
|
||||
|
||||
#. module: purchase
|
||||
#: help:purchase.order,date_approve:0
|
||||
|
@ -1675,12 +1681,12 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: field:purchase.order,invoiced:0
|
||||
msgid "Invoice Received"
|
||||
msgstr ""
|
||||
msgstr "Factuur ontvangen"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.actions.server,name:purchase.actions_server_purchase_order_unread
|
||||
msgid "Mark unread"
|
||||
msgstr ""
|
||||
msgstr "Markeer als ongelezen"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order,invoice_method:0
|
||||
|
@ -1741,7 +1747,7 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: model:ir.actions.client,name:purchase.action_client_purchase_menu
|
||||
msgid "Open Purchase Menu"
|
||||
msgstr ""
|
||||
msgstr "Inkoop menu openen"
|
||||
|
||||
#. module: purchase
|
||||
#: field:purchase.order,company_id:0
|
||||
|
@ -1795,7 +1801,7 @@ msgstr "Ontvangsten analyse"
|
|||
#. module: purchase
|
||||
#: field:purchase.order,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
msgstr "Berichten"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.actions.report.xml,name:purchase.report_purchase_order
|
||||
|
@ -1820,7 +1826,7 @@ msgstr "Inkooporder"
|
|||
#: code:addons/purchase/wizard/purchase_line_invoice.py:109
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr ""
|
||||
msgstr "Fout!"
|
||||
|
||||
#. module: purchase
|
||||
#: report:purchase.order:0
|
||||
|
@ -1858,13 +1864,13 @@ msgstr "Geannuleerd"
|
|||
#. module: purchase
|
||||
#: field:res.partner,purchase_order_count:0
|
||||
msgid "# of Purchase Order"
|
||||
msgstr ""
|
||||
msgstr "# inkoopporderBeheer"
|
||||
|
||||
#. module: purchase
|
||||
#: code:addons/purchase/purchase.py:810
|
||||
#, python-format
|
||||
msgid "Shipment <b>received</b>."
|
||||
msgstr ""
|
||||
msgstr "Inkomende levering <b>ontvangen</>"
|
||||
|
||||
#. module: purchase
|
||||
#: report:purchase.quotation:0
|
||||
|
@ -1874,7 +1880,7 @@ msgstr "Tel.:"
|
|||
#. module: purchase
|
||||
#: view:purchase.order:0
|
||||
msgid "Resend Purchase Order"
|
||||
msgstr ""
|
||||
msgstr "InkoopporderBeheer opnieuw verzenden"
|
||||
|
||||
#. module: purchase
|
||||
#: help:purchase.config.settings,group_purchase_delivery_address:0
|
||||
|
@ -1930,7 +1936,7 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: field:purchase.order,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
msgstr "Volgers"
|
||||
|
||||
#. module: purchase
|
||||
#: help:purchase.config.settings,module_purchase_requisition:0
|
||||
|
@ -1951,7 +1957,7 @@ msgstr "Factuurregels"
|
|||
#. module: purchase
|
||||
#: model:ir.actions.server,name:purchase.actions_server_purchase_order_read
|
||||
msgid "Mark read"
|
||||
msgstr ""
|
||||
msgstr "Markeer als gelezen"
|
||||
|
||||
#. module: purchase
|
||||
#: model:ir.actions.act_window,help:purchase.action_purchase_order_report_all
|
||||
|
@ -1967,7 +1973,7 @@ msgstr ""
|
|||
#. module: purchase
|
||||
#: model:email.template,report_name:purchase.email_template_edi_purchase
|
||||
msgid "RFQ_${(object.name or '').replace('/','_')}"
|
||||
msgstr ""
|
||||
msgstr "Offerte_${(object.name or '').replace('/','_')}"
|
||||
|
||||
#. module: purchase
|
||||
#: code:addons/purchase/purchase.py:971
|
||||
|
@ -2008,7 +2014,7 @@ msgstr "EDI Prijslijst (%s)"
|
|||
#: view:purchase.report:0
|
||||
#: field:purchase.report,product_uom:0
|
||||
msgid "Reference Unit of Measure"
|
||||
msgstr ""
|
||||
msgstr "Maateenheid referentie"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.report:0
|
||||
|
@ -2118,6 +2124,8 @@ msgstr "Januari"
|
|||
#: constraint:stock.move:0
|
||||
msgid "You cannot move products from or to a location of the type view."
|
||||
msgstr ""
|
||||
"Het is niet mogelijk om producten te verplaatsen naar een locatie van het "
|
||||
"type 'weergave'"
|
||||
|
||||
#. module: purchase
|
||||
#: help:purchase.order,invoice_method:0
|
||||
|
@ -2231,7 +2239,7 @@ msgstr "Totaalbedrag"
|
|||
#. module: purchase
|
||||
#: model:ir.model,name:purchase.model_product_template
|
||||
msgid "Product Template"
|
||||
msgstr ""
|
||||
msgstr "Productsjabloon"
|
||||
|
||||
#. module: purchase
|
||||
#: view:purchase.order.group:0
|
||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:54+0000\n"
|
||||
"PO-Revision-Date: 2012-02-13 07:36+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 19:58+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-25 06:30+0000\n"
|
||||
"X-Generator: Launchpad (build 16293)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
|
@ -50,7 +50,7 @@ msgstr ""
|
|||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,message_unread:0
|
||||
msgid "Unread Messages"
|
||||
msgstr ""
|
||||
msgstr "Ongelezen berichten"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,company_id:0
|
||||
|
@ -61,7 +61,7 @@ msgstr "Bedrijf"
|
|||
#. module: purchase_requisition
|
||||
#: help:purchase.requisition,message_unread:0
|
||||
msgid "If checked new messages require your attention."
|
||||
msgstr ""
|
||||
msgstr "Indien aangevinkt zullen nieuwe berichten uw aandacht vragen."
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: code:addons/purchase_requisition/purchase_requisition.py:153
|
||||
|
@ -81,7 +81,7 @@ msgstr "Aantal"
|
|||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,message_ids:0
|
||||
msgid "Messages"
|
||||
msgstr ""
|
||||
msgstr "Berichten"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.model,name:purchase_requisition.model_purchase_order
|
||||
|
@ -126,6 +126,8 @@ msgid ""
|
|||
"You provided an invalid \"EAN13 Barcode\" reference. You may use the "
|
||||
"\"Internal Reference\" field instead."
|
||||
msgstr ""
|
||||
"U gebruikte een verkeerde \"EAN13 Barcode\" referentie. Hiervoor in de "
|
||||
"plaats kunt u de interne referentie gebruiken."
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: selection:purchase.requisition,exclusive:0
|
||||
|
@ -141,7 +143,7 @@ msgstr "Terugzetten naar Concept"
|
|||
#: code:addons/purchase_requisition/purchase_requisition.py:153
|
||||
#, python-format
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
msgstr "Waarschuwing!"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: model:ir.actions.act_window,help:purchase_requisition.action_purchase_requisition
|
||||
|
@ -165,12 +167,12 @@ msgstr ""
|
|||
#: report:purchase.requisition:0
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
msgstr "Bron"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,message_follower_ids:0
|
||||
msgid "Followers"
|
||||
msgstr ""
|
||||
msgstr "Volgers"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,warehouse_id:0
|
||||
|
@ -205,7 +207,7 @@ msgstr "Inkoopaanvraag"
|
|||
#: view:purchase.requisition:0
|
||||
#: selection:purchase.requisition,state:0
|
||||
msgid "Sent to Suppliers"
|
||||
msgstr ""
|
||||
msgstr "Stuur naar leveranciers"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: help:purchase.requisition,message_summary:0
|
||||
|
@ -213,6 +215,9 @@ msgid ""
|
|||
"Holds the Chatter summary (number of messages, ...). This summary is "
|
||||
"directly in html format in order to be inserted in kanban views."
|
||||
msgstr ""
|
||||
"Bevat de samenvatting van de chatter (aantal berichten,...). Deze "
|
||||
"samenvatting is direct in html formaat om zo in de kanban weergave te worden "
|
||||
"ingevoegd."
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
|
@ -222,7 +227,7 @@ msgstr "Goedgekeurd door leverancier"
|
|||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Send to Suppliers"
|
||||
msgstr ""
|
||||
msgstr "Stuur naar leveranciers"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
|
@ -278,28 +283,28 @@ msgstr "Startdatum"
|
|||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition.partner:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
msgstr "of"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition.line,product_uom_id:0
|
||||
msgid "Product Unit of Measure"
|
||||
msgstr ""
|
||||
msgstr "Maateenheid product"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
#: field:purchase.requisition,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
msgstr "Status"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
msgid "Terms and Conditions"
|
||||
msgstr ""
|
||||
msgstr "Voorwaarden"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: sql_constraint:product.product:0
|
||||
msgid "Error ! Ending Date cannot be set before Beginning Date."
|
||||
msgstr ""
|
||||
msgstr "Fout! Einddatum kan niet voor de begindatum liggen."
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.order:0
|
||||
|
@ -319,13 +324,13 @@ msgstr "Gebruiker"
|
|||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,message_is_follower:0
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
msgstr "Is een volger"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,message_comment_ids:0
|
||||
#: help:purchase.requisition,message_comment_ids:0
|
||||
msgid "Comments and emails"
|
||||
msgstr ""
|
||||
msgstr "Opmerkingen en e-mails."
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
|
@ -336,7 +341,7 @@ msgstr "Inkoopaanvragen zoeken"
|
|||
#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:41
|
||||
#, python-format
|
||||
msgid "No Product in Tender."
|
||||
msgstr ""
|
||||
msgstr "Geen product in aanvraag"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
|
@ -346,7 +351,7 @@ msgstr "Verwijder Inkooporder"
|
|||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,message_summary:0
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
msgstr "Samenvatting"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
|
@ -421,7 +426,7 @@ msgstr "Orderreferentie moet uniek zijn per bedrijf!"
|
|||
#. module: purchase_requisition
|
||||
#: field:purchase.requisition,origin:0
|
||||
msgid "Source Document"
|
||||
msgstr ""
|
||||
msgstr "Bron document"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: view:purchase.requisition:0
|
||||
|
@ -509,7 +514,7 @@ msgstr "Aanvraagdatum"
|
|||
#. module: purchase_requisition
|
||||
#: help:purchase.requisition,message_ids:0
|
||||
msgid "Messages and communication history"
|
||||
msgstr ""
|
||||
msgstr "Berichten en communicatie historie"
|
||||
|
||||
#. module: purchase_requisition
|
||||
#: report:purchase.requisition:0
|
||||
|
|
|
@ -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:54+0000\n"
|
||||
"PO-Revision-Date: 2011-01-26 18:40+0000\n"
|
||||
"Last-Translator: Douwe Wullink (Dypalio) <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-11-30 19:55+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-25 06:02+0000\n"
|
||||
"X-Generator: Launchpad (build 16293)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
|
@ -107,6 +107,8 @@ msgid ""
|
|||
"Error: The default Unit of Measure and the purchase Unit of Measure must be "
|
||||
"in the same category."
|
||||
msgstr ""
|
||||
"Foutmelding: de standaard maateenheid moet in dezelfde categorie vallen als "
|
||||
"de inkoop maateenheid."
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
|||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-24 02:54+0000\n"
|
||||
"PO-Revision-Date: 2012-05-10 18:23+0000\n"
|
||||
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-11-30 19:56+0000\n"
|
||||
"Last-Translator: Erwin van der Ploeg (Endian Solutions) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-25 06:22+0000\n"
|
||||
"X-Generator: Launchpad (build 16293)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: resource
|
||||
#: help:resource.calendar.leaves,resource_id:0
|
||||
|
@ -100,7 +100,7 @@ msgstr ""
|
|||
#: code:addons/resource/resource.py:310
|
||||
#, python-format
|
||||
msgid "%s (copy)"
|
||||
msgstr ""
|
||||
msgstr "%s (kopie)"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.calendar:0
|
||||
|
@ -134,7 +134,7 @@ msgstr "Vrijdag"
|
|||
#. module: resource
|
||||
#: view:resource.calendar.attendance:0
|
||||
msgid "Hours"
|
||||
msgstr ""
|
||||
msgstr "Uren"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.calendar.leaves:0
|
||||
|
@ -160,7 +160,7 @@ msgstr "Zoek afwezigheid werkperiode"
|
|||
#. module: resource
|
||||
#: field:resource.calendar.attendance,date_from:0
|
||||
msgid "Starting Date"
|
||||
msgstr ""
|
||||
msgstr "Startdatum"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.calendar,manager:0
|
||||
|
@ -206,7 +206,7 @@ msgstr "Werktijd"
|
|||
#. module: resource
|
||||
#: help:resource.calendar.attendance,hour_from:0
|
||||
msgid "Start and End time of working."
|
||||
msgstr ""
|
||||
msgstr "Begin en eind werktijd"
|
||||
|
||||
#. module: resource
|
||||
#: view:resource.calendar.leaves:0
|
||||
|
@ -349,7 +349,7 @@ msgstr "Persoon"
|
|||
#. module: resource
|
||||
#: view:resource.calendar.leaves:0
|
||||
msgid "Duration"
|
||||
msgstr ""
|
||||
msgstr "Tijdsduur"
|
||||
|
||||
#. module: resource
|
||||
#: field:resource.calendar.leaves,date_from:0
|
||||
|
|
|
@ -7,13 +7,13 @@ 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-11-28 17:01+0000\n"
|
||||
"PO-Revision-Date: 2012-11-30 17:53+0000\n"
|
||||
"Last-Translator: ccdos <ccdos@163.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-29 05:14+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: sale
|
||||
|
@ -1625,6 +1625,13 @@ msgid ""
|
|||
"invoice automatically.\n"
|
||||
" It installs the account_analytic_analysis module."
|
||||
msgstr ""
|
||||
"允许定义你的客户合同条款:\n"
|
||||
"开票方法(固定价格,根据计工单,预付款发票),\n"
|
||||
"准确价格(每天每个开发人员650欧元)\n"
|
||||
"期间(一年的支持合同)\n"
|
||||
"你能跟踪合同的进程和自动开票。\n"
|
||||
"\n"
|
||||
"为此要安装模块 account_analytic_analysis module 。"
|
||||
|
||||
#. module: sale
|
||||
#: model:email.template,report_name:sale.email_template_edi_sale
|
||||
|
@ -1724,6 +1731,8 @@ msgid ""
|
|||
"replenishment.\n"
|
||||
"On order: When needed, the product is purchased or produced."
|
||||
msgstr ""
|
||||
"从库存: 当需要时,产品从库存取得或者我们等待补充。\n"
|
||||
"根据订单: 需要时,产品被采购或者生产。"
|
||||
|
||||
#. module: sale
|
||||
#: selection:sale.order,state:0
|
||||
|
@ -2115,7 +2124,7 @@ msgstr "销售订单"
|
|||
#. module: sale
|
||||
#: field:sale.config.settings,module_account_analytic_analysis:0
|
||||
msgid "Use contracts management"
|
||||
msgstr ""
|
||||
msgstr "使用合同管理"
|
||||
|
||||
#. module: sale
|
||||
#: help:sale.order,invoiced:0
|
||||
|
@ -2173,7 +2182,7 @@ msgid ""
|
|||
" multiple invoicing as part of the same contract "
|
||||
"with\n"
|
||||
" your customer."
|
||||
msgstr ""
|
||||
msgstr "使用合同 管理 多次开票的服务作为你的客户的相同合同的一部分。"
|
||||
|
||||
#. module: sale
|
||||
#: view:sale.order:0
|
||||
|
@ -2184,12 +2193,12 @@ msgstr "查找销售订单"
|
|||
#. module: sale
|
||||
#: field:sale.advance.payment.inv,advance_payment_method:0
|
||||
msgid "What do you want to invoice?"
|
||||
msgstr ""
|
||||
msgstr "你要开什么发票?"
|
||||
|
||||
#. module: sale
|
||||
#: constraint:res.partner:0
|
||||
msgid "Error ! You cannot create recursive associated members."
|
||||
msgstr ""
|
||||
msgstr "错误,您不能创建循环引用的会员用户"
|
||||
|
||||
#. module: sale
|
||||
#: field:sale.order.line,sequence:0
|
||||
|
@ -2205,7 +2214,7 @@ msgstr "付款条款"
|
|||
#. module: sale
|
||||
#: help:account.config.settings,module_sale_analytic_plans:0
|
||||
msgid "This allows install module sale_analytic_plans."
|
||||
msgstr ""
|
||||
msgstr "允许安装模块sale_analytic_plans."
|
||||
|
||||
#. module: sale
|
||||
#: model:ir.actions.act_window,help:sale.action_order_report_all
|
||||
|
|
|
@ -530,55 +530,17 @@ class sale_order(osv.osv):
|
|||
return res
|
||||
|
||||
def action_invoice_cancel(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
for sale in self.browse(cr, uid, ids, context=context):
|
||||
for line in sale.order_line:
|
||||
#
|
||||
# Check if the line is invoiced (has asociated invoice
|
||||
# lines from non-cancelled invoices).
|
||||
#
|
||||
invoiced = False
|
||||
for iline in line.invoice_lines:
|
||||
if iline.invoice_id and iline.invoice_id.state != 'cancel':
|
||||
invoiced = True
|
||||
break
|
||||
# Update the line (only when needed)
|
||||
if line.invoiced != invoiced:
|
||||
self.pool.get('sale.order.line').write(cr, uid, [line.id], {'invoiced': invoiced}, context=context)
|
||||
self.write(cr, uid, ids, {'state': 'invoice_except', 'invoice_ids': False}, context=context)
|
||||
self.write(cr, uid, ids, {'state': 'invoice_except'}, context=context)
|
||||
return True
|
||||
|
||||
def action_invoice_end(self, cr, uid, ids, context=None):
|
||||
for order in self.browse(cr, uid, ids, context=context):
|
||||
#
|
||||
# Update the sale order lines state (and invoiced flag).
|
||||
#
|
||||
for line in order.order_line:
|
||||
vals = {}
|
||||
#
|
||||
# Check if the line is invoiced (has asociated invoice
|
||||
# lines from non-cancelled invoices).
|
||||
#
|
||||
invoiced = False
|
||||
for iline in line.invoice_lines:
|
||||
if iline.invoice_id and iline.invoice_id.state != 'cancel':
|
||||
invoiced = True
|
||||
break
|
||||
if line.invoiced != invoiced:
|
||||
vals['invoiced'] = invoiced
|
||||
# If the line was in exception state, now it gets confirmed.
|
||||
for this in self.browse(cr, uid, ids, context=context):
|
||||
for line in this.order_line:
|
||||
if line.state == 'exception':
|
||||
vals['state'] = 'confirmed'
|
||||
# Update the line (only when needed).
|
||||
if vals:
|
||||
self.pool.get('sale.order.line').write(cr, uid, [line.id], vals, context=context)
|
||||
#
|
||||
# Update the sales order state.
|
||||
#
|
||||
if order.state == 'invoice_except':
|
||||
self.write(cr, uid, [order.id], {'state': 'progress'}, context=context)
|
||||
self.invoice_paid_send_note(cr, uid, [order.id], context=context)
|
||||
line.write({'state': 'confirmed'})
|
||||
if this.state == 'invoice_except':
|
||||
this.write({'state': 'progress'})
|
||||
this.invoice_paid_send_note()
|
||||
return True
|
||||
|
||||
def action_cancel(self, cr, uid, ids, context=None):
|
||||
|
@ -732,6 +694,20 @@ class sale_order_line(osv.osv):
|
|||
except Exception, ex:
|
||||
return False
|
||||
|
||||
def _fnct_line_invoiced(self, cr, uid, ids, field_name, args, context=None):
|
||||
res = dict.fromkeys(ids, False)
|
||||
for this in self.browse(cr, uid, ids, context=context):
|
||||
res[this.id] = this.invoice_lines and \
|
||||
all(iline.invoice_id.state != 'cancel' for iline in this.invoice_lines)
|
||||
return res
|
||||
|
||||
def _order_lines_from_invoice(self, cr, uid, ids, context=None):
|
||||
# direct access to the m2m table is the less convoluted way to achieve this (and is ok ACL-wise)
|
||||
cr.execute("""SELECT DISTINCT sol.id FROM sale_order_invoice_rel rel JOIN
|
||||
sale_order_line sol ON (sol.order_id = rel.order_id)
|
||||
WHERE rel.invoice_id = ANY(%s)""", (list(ids),))
|
||||
return [i[0] for i in cr.fetchall()]
|
||||
|
||||
_name = 'sale.order.line'
|
||||
_description = 'Sales Order Line'
|
||||
_columns = {
|
||||
|
@ -740,7 +716,8 @@ class sale_order_line(osv.osv):
|
|||
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of sales order lines."),
|
||||
'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok', '=', True)], change_default=True),
|
||||
'invoice_lines': fields.many2many('account.invoice.line', 'sale_order_line_invoice_rel', 'order_line_id', 'invoice_id', 'Invoice Lines', readonly=True),
|
||||
'invoiced': fields.boolean('Invoiced', readonly=True),
|
||||
'invoiced': fields.function(_fnct_line_invoiced, string='Invoiced', type='boolean',
|
||||
store={'account.invoice': (_order_lines_from_invoice, ['state'], 10)}),
|
||||
'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price'), readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'type': fields.selection([('make_to_stock', 'from stock'), ('make_to_order', 'on order')], 'Procurement Method', required=True, readonly=True, states={'draft': [('readonly', False)]},
|
||||
help="From stock: When needed, the product is taken from the stock or we wait for replenishment.\nOn order: When needed, the product is purchased or produced."),
|
||||
|
@ -770,7 +747,6 @@ class sale_order_line(osv.osv):
|
|||
'product_uom_qty': 1,
|
||||
'product_uos_qty': 1,
|
||||
'sequence': 10,
|
||||
'invoiced': 0,
|
||||
'state': 'draft',
|
||||
'type': 'make_to_stock',
|
||||
'price_unit': 0.0,
|
||||
|
@ -853,7 +829,6 @@ class sale_order_line(osv.osv):
|
|||
if vals:
|
||||
inv_id = self.pool.get('account.invoice.line').create(cr, uid, vals, context=context)
|
||||
cr.execute('insert into sale_order_line_invoice_rel (order_line_id,invoice_id) values (%s,%s)', (line.id, inv_id))
|
||||
self.write(cr, uid, [line.id], {'invoiced': True})
|
||||
sales.add(line.order_id.id)
|
||||
create_ids.append(inv_id)
|
||||
# Trigger workflow events
|
||||
|
@ -901,7 +876,7 @@ class sale_order_line(osv.osv):
|
|||
def copy_data(self, cr, uid, id, default=None, context=None):
|
||||
if not default:
|
||||
default = {}
|
||||
default.update({'state': 'draft', 'invoiced': False, 'invoice_lines': []})
|
||||
default.update({'state': 'draft', 'invoice_lines': []})
|
||||
return super(sale_order_line, self).copy_data(cr, uid, id, default, context=context)
|
||||
|
||||
def product_id_change(self, cr, uid, ids, pricelist, product, qty=0,
|
||||
|
|
|
@ -75,5 +75,5 @@
|
|||
for invoice in sale_order.invoice_ids:
|
||||
if invoice.state != 'cancel':
|
||||
total_order_line += len(invoice.invoice_line)
|
||||
assert total_order_line == 2, "wrong number of invoice lines"
|
||||
assert total_order_line == 2, "wrong number of invoice lines, got %s" % total_order_line
|
||||
|
||||
|
|
|
@ -88,8 +88,6 @@ class sale_order_line_make_invoice(osv.osv_memory):
|
|||
[line.id])
|
||||
for lid in line_id:
|
||||
invoices[line.order_id.id].append((line, lid))
|
||||
sales_order_line_obj.write(cr, uid, [line.id],
|
||||
{'invoiced': True})
|
||||
for result in invoices.values():
|
||||
order = result[0][0].order_id
|
||||
il = map(lambda x: x[1], result)
|
||||
|
|
|
@ -100,14 +100,8 @@ class stock_picking(osv.osv):
|
|||
return super(stock_picking, self)._get_account_analytic_invoice(cursor, user, picking, move_line)
|
||||
|
||||
def _invoice_line_hook(self, cursor, user, move_line, invoice_line_id):
|
||||
sale_line_obj = self.pool.get('sale.order.line')
|
||||
invoice_line_obj = self.pool.get('account.invoice.line')
|
||||
if move_line.sale_line_id:
|
||||
sale_line_obj.write(cursor, user, [move_line.sale_line_id.id],
|
||||
{
|
||||
'invoiced': True,
|
||||
'invoice_lines': [(4, invoice_line_id)],
|
||||
})
|
||||
move_line.sale_line_id.write({'invoice_lines': [(4, invoice_line_id)]})
|
||||
return super(stock_picking, self)._invoice_line_hook(cursor, user, move_line, invoice_line_id)
|
||||
|
||||
def _invoice_hook(self, cursor, user, picking, invoice_id):
|
||||
|
@ -180,10 +174,7 @@ class stock_picking(osv.osv):
|
|||
vals['account_analytic_id'] = self._get_account_analytic_invoice(cursor, user, picking, sale_line)
|
||||
vals['invoice_id'] = invoices[result[picking.id]].id
|
||||
invoice_line_id = invoice_line_obj.create(cursor, user, vals, context=context)
|
||||
order_line_obj.write(cursor, user, [sale_line.id], {
|
||||
'invoiced': True,
|
||||
'invoice_lines': [(6, 0, [invoice_line_id])],
|
||||
})
|
||||
sale_line.write({'invoice_lines': [(4, invoice_line_id)]})
|
||||
return result
|
||||
|
||||
# Redefinition of the new field in order to update the model stock.picking.out in the orm
|
||||
|
|
|
@ -14,7 +14,7 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:08+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: web_linkedin
|
||||
|
|
|
@ -14,7 +14,7 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-11-30 05:08+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-01 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16319)\n"
|
||||
|
||||
#. module: web_shortcuts
|
||||
|
|
Loading…
Reference in New Issue