-
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index d38684c2317..5fc228c8b06 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -2123,10 +2123,8 @@
-
-
-
+
diff --git a/addons/account/i18n/hu.po b/addons/account/i18n/hu.po
index aa7bd944468..e8fbe018ef3 100644
--- a/addons/account/i18n/hu.po
+++ b/addons/account/i18n/hu.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2013-04-12 06:06+0000\n"
-"Last-Translator: Herczeg Péter \n"
+"PO-Revision-Date: 2013-05-02 07:53+0000\n"
+"Last-Translator: krnkris \n"
"Language-Team: Hungarian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-04-13 06:31+0000\n"
-"X-Generator: Launchpad (build 16564)\n"
+"X-Launchpad-Export-Date: 2013-05-03 06:29+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@@ -623,7 +623,7 @@ msgstr "Sorszámok"
#: field:account.financial.report,account_report_id:0
#: selection:account.financial.report,type:0
msgid "Report Value"
-msgstr ""
+msgstr "Érték beszámoló"
#. module: account
#: code:addons/account/wizard/account_validate_account_move.py:39
@@ -800,7 +800,7 @@ msgstr "Számla kód"
#. module: account
#: selection:account.financial.report,display_detail:0
msgid "Display children with hierarchy"
-msgstr ""
+msgstr "Az alcsoportok mutatása rangsorral"
#. module: account
#: selection:account.payment.term.line,value:0
diff --git a/addons/account/i18n/tr.po b/addons/account/i18n/tr.po
index 1ed5a2dced8..0ce8d29c602 100644
--- a/addons/account/i18n/tr.po
+++ b/addons/account/i18n/tr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2013-04-28 07:29+0000\n"
-"Last-Translator: Ayhan KIZILTAN \n"
+"PO-Revision-Date: 2013-05-02 09:36+0000\n"
+"Last-Translator: Ediz Duman \n"
"Language-Team: OpenERP Türkiye Yerelleştirmesi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-04-29 06:04+0000\n"
-"X-Generator: Launchpad (build 16580)\n"
+"X-Launchpad-Export-Date: 2013-05-03 06:29+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
"Language: tr\n"
#. module: account
@@ -1426,7 +1426,7 @@ msgstr "Şablon"
#. module: account
#: selection:account.analytic.journal,type:0
msgid "Situation"
-msgstr "Durum"
+msgstr "Durumu"
#. module: account
#: help:account.move.line,move_id:0
@@ -6139,7 +6139,7 @@ msgstr "Ortak Hesap Hesap Raporu"
#: selection:account.period,state:0
#: selection:report.invoice.created,state:0
msgid "Open"
-msgstr "Aç"
+msgstr "Açık"
#. module: account
#: view:account.config.settings:0
@@ -7081,7 +7081,7 @@ msgstr "Diğer Bilgiler"
#. module: account
#: field:account.journal,default_credit_account_id:0
msgid "Default Credit Account"
-msgstr "Varsayılan Kredi Hesabı"
+msgstr "Varsayılan Alacak Hesabı"
#. module: account
#: help:account.analytic.line,currency_id:0
@@ -10728,7 +10728,7 @@ msgstr "Hesap Hareketini Doğrula"
#: report:account.vat.declaration:0
#: field:report.account.receivable,credit:0
msgid "Credit"
-msgstr "Kredi"
+msgstr "Alacak"
#. module: account
#: view:account.invoice:0
@@ -10755,7 +10755,7 @@ msgstr "Başlangıç dönemi bitiş döneminden önce olmalı."
#: field:account.invoice,number:0
#: field:account.move,name:0
msgid "Number"
-msgstr "Sayı"
+msgstr "Numarası"
#. module: account
#: report:account.analytic.account.journal:0
diff --git a/addons/account_bank_statement_extensions/i18n/hu.po b/addons/account_bank_statement_extensions/i18n/hu.po
new file mode 100644
index 00000000000..651e8299fc8
--- /dev/null
+++ b/addons/account_bank_statement_extensions/i18n/hu.po
@@ -0,0 +1,362 @@
+# Hungarian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2013-03-07 08:37+0000\n"
+"PO-Revision-Date: 2013-05-05 22:30+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Hungarian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-05-06 06:35+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
+
+#. module: account_bank_statement_extensions
+#: help:account.bank.statement.line.global,name:0
+msgid "Originator to Beneficiary Information"
+msgstr "Kezdeményezőtől a kedvezményezetthez intézett információ"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+#: selection:account.bank.statement.line,state:0
+msgid "Confirmed"
+msgstr "Jóváhagyott"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement:0
+#: view:account.bank.statement.line:0
+msgid "Glob. Id"
+msgstr "Globális ID azonosító"
+
+#. module: account_bank_statement_extensions
+#: selection:account.bank.statement.line.global,type:0
+msgid "CODA"
+msgstr "CODA"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,parent_id:0
+msgid "Parent Code"
+msgstr "Szülő kód"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Debit"
+msgstr "Tartozik"
+
+#. module: account_bank_statement_extensions
+#: view:cancel.statement.line:0
+#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_cancel_statement_line
+#: model:ir.model,name:account_bank_statement_extensions.model_cancel_statement_line
+msgid "Cancel selected statement lines"
+msgstr "Kiválasztott számlakivonat sorok visszavonása"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,val_date:0
+msgid "Value Date"
+msgstr "Értéknap"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Group By..."
+msgstr "Csoportosítás ezzel..."
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+#: selection:account.bank.statement.line,state:0
+msgid "Draft"
+msgstr "Tervezet"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Statement"
+msgstr "Kivonat"
+
+#. module: account_bank_statement_extensions
+#: view:confirm.statement.line:0
+#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_confirm_statement_line
+#: model:ir.model,name:account_bank_statement_extensions.model_confirm_statement_line
+msgid "Confirm selected statement lines"
+msgstr "Kiválasztott bankszámla kivonat sorok jóváhagyása"
+
+#. module: account_bank_statement_extensions
+#: report:bank.statement.balance.report:0
+#: model:ir.actions.report.xml,name:account_bank_statement_extensions.bank_statement_balance_report
+msgid "Bank Statement Balances Report"
+msgstr "Bank kivonat egyenleg kimutatás"
+
+#. module: account_bank_statement_extensions
+#: view:cancel.statement.line:0
+msgid "Cancel Lines"
+msgstr "Sorok elvetése"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line.global:0
+#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line_global
+msgid "Batch Payment Info"
+msgstr "Köptegelt fizetés információ"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,state:0
+msgid "Status"
+msgstr "Állapot"
+
+#. module: account_bank_statement_extensions
+#: code:addons/account_bank_statement_extensions/account_bank_statement.py:129
+#, python-format
+msgid ""
+"Delete operation not allowed. Please go to the associated bank "
+"statement in order to delete and/or modify bank statement line."
+msgstr ""
+"A törlés végrehajtás nem engedélyezett. Kérem menjen az ide vonatkozó banki "
+"kivonathoz, hogy azt törölhesse és/vagy módosíthassa."
+
+#. module: account_bank_statement_extensions
+#: view:confirm.statement.line:0
+msgid "or"
+msgstr "vagy"
+
+#. module: account_bank_statement_extensions
+#: view:confirm.statement.line:0
+msgid "Confirm Lines"
+msgstr "Jóváhagyott sorok5"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line.global:0
+msgid "Transactions"
+msgstr "Tranzakciók"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,type:0
+msgid "Type"
+msgstr "Típus"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+#: report:bank.statement.balance.report:0
+msgid "Journal"
+msgstr "Napló"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Confirmed Statement Lines."
+msgstr "Jóváhagyott kivonat sorok"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Credit Transactions."
+msgstr "Jóváírási tranzakció"
+
+#. module: account_bank_statement_extensions
+#: model:ir.actions.act_window,help:account_bank_statement_extensions.action_cancel_statement_line
+msgid "cancel selected statement lines."
+msgstr "kiválasztott kivonat sorok visszavonása"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,counterparty_number:0
+msgid "Counterparty Number"
+msgstr "Ellanoldali szám"
+
+#. module: account_bank_statement_extensions
+#: report:bank.statement.balance.report:0
+msgid "Closing Balance"
+msgstr "Záró egyenleg"
+
+#. module: account_bank_statement_extensions
+#: report:bank.statement.balance.report:0
+msgid "Date"
+msgstr "Dátum"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+#: field:account.bank.statement.line,globalisation_amount:0
+msgid "Glob. Amount"
+msgstr "Globális összeg"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Debit Transactions."
+msgstr "Terhelés tranzakciók"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Extended Filters..."
+msgstr "Kiterjesztett szűrők…"
+
+#. module: account_bank_statement_extensions
+#: view:confirm.statement.line:0
+msgid "Confirmed lines cannot be changed anymore."
+msgstr "Jóváhagyott sorokat enm lehet többé megváltoztatni."
+
+#. module: account_bank_statement_extensions
+#: view:cancel.statement.line:0
+msgid "Are you sure you want to cancel the selected Bank Statement lines ?"
+msgstr ""
+"Biztos benne, hogy vissza akarja vonni a kijelölt banki kivonat sorokat?"
+
+#. module: account_bank_statement_extensions
+#: report:bank.statement.balance.report:0
+msgid "Name"
+msgstr "Név"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,name:0
+msgid "OBI"
+msgstr "OBI"
+
+#. module: account_bank_statement_extensions
+#: selection:account.bank.statement.line.global,type:0
+msgid "ISO 20022"
+msgstr "ISO 20022"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Notes"
+msgstr "Jegyzetek"
+
+#. module: account_bank_statement_extensions
+#: selection:account.bank.statement.line.global,type:0
+msgid "Manual"
+msgstr "Kézi"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Bank Transaction"
+msgstr "Banki tranzakciók"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Credit"
+msgstr "Jóváírás"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,amount:0
+msgid "Amount"
+msgstr "Összeg"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Fin.Account"
+msgstr "Főkönyvi számla"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,counterparty_currency:0
+msgid "Counterparty Currency"
+msgstr "Ellenoldal pénzneme"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,counterparty_bic:0
+msgid "Counterparty BIC"
+msgstr "Ellenoldali BIC"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,child_ids:0
+msgid "Child Codes"
+msgstr "Alárendelt kódok"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Search Bank Transactions"
+msgstr "Banki tranzakciók keresése"
+
+#. module: account_bank_statement_extensions
+#: view:confirm.statement.line:0
+msgid "Are you sure you want to confirm the selected Bank Statement lines ?"
+msgstr "Biztos, hogy jóvá akarja hagyni a kiválasztott banki kivonat sorait?"
+
+#. module: account_bank_statement_extensions
+#: help:account.bank.statement.line,globalisation_id:0
+msgid ""
+"Code to identify transactions belonging to the same globalisation level "
+"within a batch payment"
+msgstr ""
+"Ugynahhoz, a kötegelt utaláson belüli, globalizált szinthez tartozó "
+"tranzakció azonosító kód"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Draft Statement Lines."
+msgstr "Tervezet kivonat sorok."
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Glob. Am."
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line
+msgid "Bank Statement Line"
+msgstr "Bankkivonat sor"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,code:0
+msgid "Code"
+msgstr "Kód"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,counterparty_name:0
+msgid "Counterparty Name"
+msgstr "Ellenoldal megnevezése"
+
+#. module: account_bank_statement_extensions
+#: model:ir.model,name:account_bank_statement_extensions.model_res_partner_bank
+msgid "Bank Accounts"
+msgstr "Bankszámlák"
+
+#. module: account_bank_statement_extensions
+#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement
+msgid "Bank Statement"
+msgstr "Bankszámlakivonat"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Statement Line"
+msgstr "Kivonat sor"
+
+#. module: account_bank_statement_extensions
+#: sql_constraint:account.bank.statement.line.global:0
+msgid "The code must be unique !"
+msgstr "A kódnak egyedinek kell lennie !"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,bank_statement_line_ids:0
+#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_bank_statement_line
+#: model:ir.ui.menu,name:account_bank_statement_extensions.bank_statement_line
+msgid "Bank Statement Lines"
+msgstr "Bankkivonat sorai"
+
+#. module: account_bank_statement_extensions
+#: code:addons/account_bank_statement_extensions/account_bank_statement.py:129
+#, python-format
+msgid "Warning!"
+msgstr "Figyelem!"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line.global:0
+msgid "Child Batch Payments"
+msgstr "Alárendelt kötegelt utalások"
+
+#. module: account_bank_statement_extensions
+#: view:confirm.statement.line:0
+msgid "Cancel"
+msgstr "Mégse"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Statement Lines"
+msgstr "Kivonat sorai"
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Total Amount"
+msgstr "Teljes érték"
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,globalisation_id:0
+msgid "Globalisation ID"
+msgstr "Globalizált ID azonosító"
diff --git a/addons/account_budget/i18n/fr.po b/addons/account_budget/i18n/fr.po
index fb651a72c8f..270d3bdec87 100644
--- a/addons/account_budget/i18n/fr.po
+++ b/addons/account_budget/i18n/fr.po
@@ -8,15 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2013-04-23 12:55+0000\n"
-"Last-Translator: Frederic Clementi - Camptocamp.com "
-"\n"
+"PO-Revision-Date: 2013-05-02 13:25+0000\n"
+"Last-Translator: WANTELLET Sylvain \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-04-24 05:28+0000\n"
-"X-Generator: Launchpad (build 16580)\n"
+"X-Launchpad-Export-Date: 2013-05-03 06:29+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
#. module: account_budget
#: view:account.budget.analytic:0
@@ -345,7 +344,7 @@ msgstr "ou"
#. module: account_budget
#: view:crossovered.budget:0
msgid "Cancel Budget"
-msgstr ""
+msgstr "Annuler le budget"
#. module: account_budget
#: report:account.budget:0
diff --git a/addons/account_budget/i18n/pl.po b/addons/account_budget/i18n/pl.po
index 71003b187ff..83eb2e2038b 100644
--- a/addons/account_budget/i18n/pl.po
+++ b/addons/account_budget/i18n/pl.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2012-12-21 23:00+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2013-05-05 11:45+0000\n"
+"Last-Translator: Grzegorz Grzelak (OpenGLOBE.pl) \n"
"Language-Team: Polish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 05:29+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-06 06:35+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
#. module: account_budget
#: view:account.budget.analytic:0
@@ -39,7 +39,7 @@ msgstr "Potwierdzone"
#: model:ir.actions.act_window,name:account_budget.open_budget_post_form
#: model:ir.ui.menu,name:account_budget.menu_budget_post_form
msgid "Budgetary Positions"
-msgstr "Pozycje budżetowe"
+msgstr "Składniki budżetowe"
#. module: account_budget
#: report:account.budget:0
@@ -291,7 +291,7 @@ msgstr "Do aprobaty"
#: field:crossovered.budget.lines,general_budget_id:0
#: model:ir.model,name:account_budget.model_account_budget_post
msgid "Budgetary Position"
-msgstr "Pozycja budżetu"
+msgstr "Składnik budżetu"
#. module: account_budget
#: field:account.budget.analytic,date_from:0
diff --git a/addons/account_voucher/__openerp__.py b/addons/account_voucher/__openerp__.py
index 345c3378aa0..a043b15a518 100644
--- a/addons/account_voucher/__openerp__.py
+++ b/addons/account_voucher/__openerp__.py
@@ -67,6 +67,7 @@ This module manages:
'test/sales_payment.yml',
'test/account_voucher_report.yml',
'test/case1_usd_usd.yml',
+ 'test/case1_usd_usd_payment_rate.yml',
'test/case2_usd_eur_debtor_in_eur.yml',
'test/case2_usd_eur_debtor_in_usd.yml',
'test/case3_eur_eur.yml',
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index d65b7ee2bb1..28ed197cc0b 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -28,6 +28,24 @@ import openerp.addons.decimal_precision as dp
from openerp.tools.translate import _
from openerp.tools import float_compare
+class res_currency(osv.osv):
+ _inherit = "res.currency"
+
+ def _current_rate(self, cr, uid, ids, name, arg, context=None):
+ if context is None:
+ context = {}
+ res = super(res_currency, self)._current_rate(cr, uid, ids, name, arg, context=context)
+ if context.get('voucher_special_currency') in ids and context.get('voucher_special_currency_rate'):
+ res[context.get('voucher_special_currency')] = context.get('voucher_special_currency_rate')
+ return res
+
+ _columns = {
+ # same definition of rate that in base in order to just overwrite the function
+ 'rate': fields.function(_current_rate, string='Current Rate', digits=(12,6),
+ help='The rate of the currency to the currency of rate 1.'),
+ }
+
+
class res_company(osv.osv):
_inherit = "res.company"
_columns = {
@@ -156,7 +174,7 @@ class account_voucher(osv.osv):
journal = journal_pool.browse(cr, uid, journal_id, context=context)
if journal.currency:
return journal.currency.id
- return False
+ return self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.currency_id.id
def _get_partner(self, cr, uid, context=None):
if context is None: context = {}
@@ -240,6 +258,12 @@ class account_voucher(osv.osv):
break
return {'value': {'writeoff_amount': self._compute_writeoff_amount(cr, uid, line_dr_ids, line_cr_ids, amount, type), 'is_multi_currency': is_multi_currency}}
+ def _get_journal_currency(self, cr, uid, ids, name, args, context=None):
+ res = {}
+ for voucher in self.browse(cr, uid, ids, context=context):
+ res[voucher.id] = voucher.journal_id.currency and voucher.journal_id.currency.id or voucher.company_id.currency_id.id
+ return res
+
def _get_writeoff_amount(self, cr, uid, ids, name, args, context=None):
if not ids: return {}
currency_obj = self.pool.get('res.currency')
@@ -256,20 +280,18 @@ class account_voucher(osv.osv):
return res
def _paid_amount_in_company_currency(self, cr, uid, ids, name, args, context=None):
- if not ids: return {}
+ if context is None:
+ context = {}
res = {}
- rate = 1.0
- for voucher in self.browse(cr, uid, ids, context=context):
- if voucher.currency_id:
- if voucher.company_id.currency_id.id == voucher.payment_rate_currency_id.id:
- rate = 1 / voucher.payment_rate
- else:
- ctx = context.copy()
- ctx.update({'date': voucher.date})
- voucher_rate = self.browse(cr, uid, voucher.id, context=ctx).currency_id.rate
- company_currency_rate = voucher.company_id.currency_id.rate
- rate = voucher_rate * company_currency_rate
- res[voucher.id] = voucher.amount / rate
+ ctx = context.copy()
+ for v in self.browse(cr, uid, ids, context=context):
+ ctx.update({'date': v.date})
+ #make a new call to browse in order to have the right date in the context, to get the right currency rate
+ voucher = self.browse(cr, uid, v.id, context=ctx)
+ ctx.update({
+ 'voucher_special_currency': voucher.payment_rate_currency_id and voucher.payment_rate_currency_id.id or False,
+ 'voucher_special_currency_rate': voucher.currency_id.rate * voucher.payment_rate,})
+ res[voucher.id] = self.pool.get('res.currency').compute(cr, uid, voucher.currency_id.id, voucher.company_id.currency_id.id, voucher.amount, context=ctx)
return res
_name = 'account.voucher'
@@ -302,8 +324,7 @@ class account_voucher(osv.osv):
domain=[('type','=','dr')], context={'default_type':'dr'}, readonly=True, states={'draft':[('readonly',False)]}),
'period_id': fields.many2one('account.period', 'Period', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'narration':fields.text('Notes', readonly=True, states={'draft':[('readonly',False)]}),
-# 'currency_id':fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}),
- 'currency_id': fields.related('journal_id','currency', type='many2one', relation='res.currency', string='Currency', readonly=True),
+ 'currency_id': fields.function(_get_journal_currency, type='many2one', relation='res.currency', string='Currency', readonly=True, required=True),
'company_id': fields.many2one('res.company', 'Company', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'state':fields.selection(
[('draft','Draft'),
@@ -420,6 +441,8 @@ class account_voucher(osv.osv):
partner_pool = self.pool.get('res.partner')
position_pool = self.pool.get('account.fiscal.position')
line_pool = self.pool.get('account.voucher.line')
+ if not line_ids:
+ line_ids = []
res = {
'tax_amount': False,
'amount': False,
@@ -515,22 +538,25 @@ class account_voucher(osv.osv):
def onchange_rate(self, cr, uid, ids, rate, amount, currency_id, payment_rate_currency_id, company_id, context=None):
res = {'value': {'paid_amount_in_company_currency': amount}}
- company_currency = self.pool.get('res.company').browse(cr, uid, company_id, context=context).currency_id
- if rate and amount and currency_id:# and currency_id == payment_rate_currency_id:
- voucher_rate = self.pool.get('res.currency').browse(cr, uid, currency_id, context).rate
- if company_currency.id == payment_rate_currency_id:
- company_rate = rate
- else:
- company_rate = self.pool.get('res.company').browse(cr, uid, company_id, context=context).currency_id.rate
- res['value']['paid_amount_in_company_currency'] = amount / voucher_rate * company_rate
+ if rate and amount and currency_id:
+ company_currency = self.pool.get('res.company').browse(cr, uid, company_id, context=context).currency_id
+ #context should contain the date, the payment currency and the payment rate specified on the voucher
+ amount_in_company_currency = self.pool.get('res.currency').compute(cr, uid, currency_id, company_currency.id, amount, context=context)
+ res['value']['paid_amount_in_company_currency'] = amount_in_company_currency
return res
def onchange_amount(self, cr, uid, ids, amount, rate, partner_id, journal_id, currency_id, ttype, date, payment_rate_currency_id, company_id, context=None):
if context is None:
context = {}
- res = self.recompute_voucher_lines(cr, uid, ids, partner_id, journal_id, amount, currency_id, ttype, date, context=context)
ctx = context.copy()
ctx.update({'date': date})
+ #read the voucher rate with the right date in the context
+ currency_id = currency_id or self.pool.get('res.company').browse(cr, uid, company_id, context=ctx).currency_id.id
+ voucher_rate = self.pool.get('res.currency').read(cr, uid, currency_id, ['rate'], context=ctx)['rate']
+ ctx.update({
+ 'voucher_special_currency': payment_rate_currency_id,
+ 'voucher_special_currency_rate': rate * voucher_rate})
+ res = self.recompute_voucher_lines(cr, uid, ids, partner_id, journal_id, amount, currency_id, ttype, date, context=ctx)
vals = self.onchange_rate(cr, uid, ids, rate, amount, currency_id, payment_rate_currency_id, company_id, context=ctx)
for key in vals.keys():
res[key].update(vals[key])
@@ -544,6 +570,7 @@ class account_voucher(osv.osv):
journal = self.pool.get('account.journal').browse(cr, uid, journal_id, context=context)
company_id = journal.company_id.id
payment_rate = 1.0
+ currency_id = currency_id or journal.company_id.currency_id.id
payment_rate_currency_id = currency_id
ctx = context.copy()
ctx.update({'date': date})
@@ -559,24 +586,62 @@ class account_voucher(osv.osv):
# is not in the voucher currency
payment_rate_currency_id = voucher_line['currency_id']
tmp = currency_obj.browse(cr, uid, payment_rate_currency_id, context=ctx).rate
- voucher_currency_id = currency_id or journal.company_id.currency_id.id
- payment_rate = tmp / currency_obj.browse(cr, uid, voucher_currency_id, context=ctx).rate
+ payment_rate = tmp / currency_obj.browse(cr, uid, currency_id, context=ctx).rate
break
+ vals['value'].update({
+ 'payment_rate': payment_rate,
+ 'currency_id': currency_id,
+ 'payment_rate_currency_id': payment_rate_currency_id
+ })
+ #read the voucher rate with the right date in the context
+ voucher_rate = self.pool.get('res.currency').read(cr, uid, currency_id, ['rate'], context=ctx)['rate']
+ ctx.update({
+ 'voucher_special_currency_rate': payment_rate * voucher_rate,
+ 'voucher_special_currency': payment_rate_currency_id})
res = self.onchange_rate(cr, uid, ids, payment_rate, amount, currency_id, payment_rate_currency_id, company_id, context=ctx)
for key in res.keys():
vals[key].update(res[key])
- vals['value'].update({'payment_rate': payment_rate})
- if payment_rate_currency_id:
- vals['value'].update({'payment_rate_currency_id': payment_rate_currency_id})
return vals
+ def basic_onchange_partner(self, cr, uid, ids, partner_id, journal_id, ttype, context=None):
+ partner_pool = self.pool.get('res.partner')
+ journal_pool = self.pool.get('account.journal')
+ res = {'value': {'account_id': False}}
+ if not partner_id or not journal_id:
+ return res
+
+ journal = journal_pool.browse(cr, uid, journal_id, context=context)
+ partner = partner_pool.browse(cr, uid, partner_id, context=context)
+ account_id = False
+ if journal.type in ('sale','sale_refund'):
+ account_id = partner.property_account_receivable.id
+ elif journal.type in ('purchase', 'purchase_refund','expense'):
+ account_id = partner.property_account_payable.id
+ else:
+ account_id = journal.default_credit_account_id.id or journal.default_debit_account_id.id
+
+ res['value']['account_id'] = account_id
+ return res
+
def onchange_partner_id(self, cr, uid, ids, partner_id, journal_id, amount, currency_id, ttype, date, context=None):
if not journal_id:
return {}
- res = self.recompute_voucher_lines(cr, uid, ids, partner_id, journal_id, amount, currency_id, ttype, date, context=context)
- vals = self.recompute_payment_rate(cr, uid, ids, res, currency_id, date, ttype, journal_id, amount, context=context)
+ if context is None:
+ context = {}
+ #TODO: comment me and use me directly in the sales/purchases views
+ res = self.basic_onchange_partner(cr, uid, ids, partner_id, journal_id, ttype, context=context)
+ if ttype in ['sale', 'purchase']:
+ return res
+ ctx = context.copy()
+ # not passing the payment_rate currency and the payment_rate in the context but it's ok because they are reset in recompute_payment_rate
+ ctx.update({'date': date})
+ vals = self.recompute_voucher_lines(cr, uid, ids, partner_id, journal_id, amount, currency_id, ttype, date, context=ctx)
+ vals2 = self.recompute_payment_rate(cr, uid, ids, vals, currency_id, date, ttype, journal_id, amount, context=context)
for key in vals.keys():
res[key].update(vals[key])
+ for key in vals2.keys():
+ res[key].update(vals2[key])
+ #TODO: can probably be removed now
#TODO: onchange_partner_id() should not returns [pre_line, line_dr_ids, payment_rate...] for type sale, and not
# [pre_line, line_cr_ids, payment_rate...] for type purchase.
# We should definitively split account.voucher object in two and make distinct on_change functions. In the
@@ -619,8 +684,6 @@ class account_voucher(osv.osv):
if context is None:
context = {}
context_multi_currency = context.copy()
- if date:
- context_multi_currency.update({'date': date})
currency_pool = self.pool.get('res.currency')
move_line_pool = self.pool.get('account.move.line')
@@ -644,18 +707,6 @@ class account_voucher(osv.osv):
journal = journal_pool.browse(cr, uid, journal_id, context=context)
partner = partner_pool.browse(cr, uid, partner_id, context=context)
currency_id = currency_id or journal.company_id.currency_id.id
- account_id = False
- if journal.type in ('sale','sale_refund'):
- account_id = partner.property_account_receivable.id
- elif journal.type in ('purchase', 'purchase_refund','expense'):
- account_id = partner.property_account_payable.id
- else:
- account_id = journal.default_credit_account_id.id or journal.default_debit_account_id.id
-
- default['value']['account_id'] = account_id
-
- if journal.type not in ('cash', 'bank'):
- return default
total_credit = 0.0
total_debit = 0.0
@@ -713,12 +764,13 @@ class account_voucher(osv.osv):
if _remove_noise_in_o2m():
continue
- if line.currency_id and currency_id==line.currency_id.id:
+ if line.currency_id and currency_id == line.currency_id.id:
amount_original = abs(line.amount_currency)
amount_unreconciled = abs(line.amount_residual_currency)
else:
- amount_original = currency_pool.compute(cr, uid, company_currency, currency_id, line.credit or line.debit or 0.0)
- amount_unreconciled = currency_pool.compute(cr, uid, company_currency, currency_id, abs(line.amount_residual))
+ #always use the amount booked in the company currency as the basis of the conversion into the voucher currency
+ amount_original = currency_pool.compute(cr, uid, company_currency, currency_id, line.credit or line.debit or 0.0, context=context_multi_currency)
+ amount_unreconciled = currency_pool.compute(cr, uid, company_currency, currency_id, abs(line.amount_residual), context=context_multi_currency)
line_currency_id = line.currency_id and line.currency_id.id or company_currency
rs = {
'name':line.move_id.name,
@@ -764,10 +816,15 @@ class account_voucher(osv.osv):
if context is None:
context = {}
res = {'value': {}}
- #set the default payment rate of the voucher and compute the paid amount in company currency
if currency_id and currency_id == payment_rate_currency_id:
+ #set the default payment rate of the voucher and compute the paid amount in company currency
ctx = context.copy()
ctx.update({'date': date})
+ #read the voucher rate with the right date in the context
+ voucher_rate = self.pool.get('res.currency').read(cr, uid, currency_id, ['rate'], context=ctx)['rate']
+ ctx.update({
+ 'voucher_special_currency_rate': payment_rate * voucher_rate,
+ 'voucher_special_currency': payment_rate_currency_id})
vals = self.onchange_rate(cr, uid, ids, payment_rate, amount, currency_id, payment_rate_currency_id, company_id, context=ctx)
for key in vals.keys():
res[key].update(vals[key])
@@ -788,6 +845,7 @@ class account_voucher(osv.osv):
currency_obj = self.pool.get('res.currency')
ctx = context.copy()
ctx.update({'company_id': company_id, 'account_period_prefer_normal': True})
+ voucher_currency_id = currency_id or self.pool.get('res.company').browse(cr, uid, company_id, context=ctx).currency_id.id
pids = period_pool.find(cr, uid, date, context=ctx)
if pids:
res['value'].update({'period_id':pids[0]})
@@ -796,9 +854,8 @@ class account_voucher(osv.osv):
payment_rate = 1.0
if payment_rate_currency_id != currency_id:
tmp = currency_obj.browse(cr, uid, payment_rate_currency_id, context=ctx).rate
- voucher_currency_id = currency_id or self.pool.get('res.company').browse(cr, uid, company_id, context=ctx).currency_id.id
payment_rate = tmp / currency_obj.browse(cr, uid, voucher_currency_id, context=ctx).rate
- vals = self.onchange_payment_rate_currency(cr, uid, ids, currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context=context)
+ vals = self.onchange_payment_rate_currency(cr, uid, ids, voucher_currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context=context)
vals['value'].update({'payment_rate': payment_rate})
for key in vals.keys():
res[key].update(vals[key])
@@ -910,8 +967,8 @@ class account_voucher(osv.osv):
current_currency = self._get_current_currency(cr, uid, voucher_id, context)
if current_currency <> company_currency:
context_multi_currency = context.copy()
- voucher_brw = self.pool.get('account.voucher').browse(cr, uid, voucher_id, context)
- context_multi_currency.update({'date': voucher_brw.date})
+ voucher = self.pool.get('account.voucher').browse(cr, uid, voucher_id, context)
+ context_multi_currency.update({'date': voucher.date})
return context_multi_currency
return context
@@ -926,33 +983,33 @@ class account_voucher(osv.osv):
:return: mapping between fieldname and value of account move line to create
:rtype: dict
'''
- voucher_brw = self.pool.get('account.voucher').browse(cr,uid,voucher_id,context)
+ voucher = self.pool.get('account.voucher').browse(cr,uid,voucher_id,context)
debit = credit = 0.0
# TODO: is there any other alternative then the voucher type ??
# ANSWER: We can have payment and receipt "In Advance".
# TODO: Make this logic available.
# -for sale, purchase we have but for the payment and receipt we do not have as based on the bank/cash journal we can not know its payment or receipt
- if voucher_brw.type in ('purchase', 'payment'):
- credit = voucher_brw.paid_amount_in_company_currency
- elif voucher_brw.type in ('sale', 'receipt'):
- debit = voucher_brw.paid_amount_in_company_currency
+ if voucher.type in ('purchase', 'payment'):
+ credit = voucher.paid_amount_in_company_currency
+ elif voucher.type in ('sale', 'receipt'):
+ debit = voucher.paid_amount_in_company_currency
if debit < 0: credit = -debit; debit = 0.0
if credit < 0: debit = -credit; credit = 0.0
sign = debit - credit < 0 and -1 or 1
#set the first line of the voucher
move_line = {
- 'name': voucher_brw.name or '/',
+ 'name': voucher.name or '/',
'debit': debit,
'credit': credit,
- 'account_id': voucher_brw.account_id.id,
+ 'account_id': voucher.account_id.id,
'move_id': move_id,
- 'journal_id': voucher_brw.journal_id.id,
- 'period_id': voucher_brw.period_id.id,
- 'partner_id': voucher_brw.partner_id.id,
+ 'journal_id': voucher.journal_id.id,
+ 'period_id': voucher.period_id.id,
+ 'partner_id': voucher.partner_id.id,
'currency_id': company_currency <> current_currency and current_currency or False,
- 'amount_currency': company_currency <> current_currency and sign * voucher_brw.amount or 0.0,
- 'date': voucher_brw.date,
- 'date_maturity': voucher_brw.date_due
+ 'amount_currency': company_currency <> current_currency and sign * voucher.amount or 0.0,
+ 'date': voucher.date,
+ 'date_maturity': voucher.date_due
}
return move_line
@@ -965,31 +1022,31 @@ class account_voucher(osv.osv):
:rtype: dict
'''
seq_obj = self.pool.get('ir.sequence')
- voucher_brw = self.pool.get('account.voucher').browse(cr,uid,voucher_id,context)
- if voucher_brw.number:
- name = voucher_brw.number
- elif voucher_brw.journal_id.sequence_id:
- if not voucher_brw.journal_id.sequence_id.active:
+ voucher = self.pool.get('account.voucher').browse(cr,uid,voucher_id,context)
+ if voucher.number:
+ name = voucher.number
+ elif voucher.journal_id.sequence_id:
+ if not voucher.journal_id.sequence_id.active:
raise osv.except_osv(_('Configuration Error !'),
_('Please activate the sequence of selected journal !'))
c = dict(context)
- c.update({'fiscalyear_id': voucher_brw.period_id.fiscalyear_id.id})
- name = seq_obj.next_by_id(cr, uid, voucher_brw.journal_id.sequence_id.id, context=c)
+ c.update({'fiscalyear_id': voucher.period_id.fiscalyear_id.id})
+ name = seq_obj.next_by_id(cr, uid, voucher.journal_id.sequence_id.id, context=c)
else:
raise osv.except_osv(_('Error!'),
_('Please define a sequence on the journal.'))
- if not voucher_brw.reference:
+ if not voucher.reference:
ref = name.replace('/','')
else:
- ref = voucher_brw.reference
+ ref = voucher.reference
move = {
'name': name,
- 'journal_id': voucher_brw.journal_id.id,
- 'narration': voucher_brw.narration,
- 'date': voucher_brw.date,
+ 'journal_id': voucher.journal_id.id,
+ 'narration': voucher.narration,
+ 'date': voucher.date,
'ref': ref,
- 'period_id': voucher_brw.period_id.id,
+ 'period_id': voucher.period_id.id,
}
return move
@@ -1016,7 +1073,10 @@ class account_voucher(osv.osv):
raise osv.except_osv(_('Insufficient Configuration!'),_("You should configure the 'Gain Exchange Rate Account' in the accounting settings, to manage automatically the booking of accounting entries related to differences between exchange rates."))
# Even if the amount_currency is never filled, we need to pass the foreign currency because otherwise
# the receivable/payable account may have a secondary currency, which render this field mandatory
- account_currency_id = company_currency <> current_currency and current_currency or False
+ if line.account_id.currency_id:
+ account_currency_id = line.account_id.currency_id.id
+ else:
+ account_currency_id = company_currency <> current_currency and current_currency or False
move_line = {
'journal_id': line.voucher_id.journal_id.id,
'period_id': line.voucher_id.period_id.id,
@@ -1059,16 +1119,11 @@ class account_voucher(osv.osv):
:return: the amount in the currency of the voucher's company
:rtype: float
'''
+ if context is None:
+ context = {}
currency_obj = self.pool.get('res.currency')
voucher = self.browse(cr, uid, voucher_id, context=context)
- res = amount
- if voucher.payment_rate_currency_id.id == voucher.company_id.currency_id.id:
- # the rate specified on the voucher is for the company currency
- res = currency_obj.round(cr, uid, voucher.company_id.currency_id, (amount * voucher.payment_rate))
- else:
- # the rate specified on the voucher is not relevant, we use all the rates in the system
- res = currency_obj.compute(cr, uid, voucher.currency_id.id, voucher.company_id.currency_id.id, amount, context=context)
- return res
+ return currency_obj.compute(cr, uid, voucher.currency_id.id, voucher.company_id.currency_id.id, amount, context=context)
def voucher_move_line_create(self, cr, uid, voucher_id, line_total, move_id, company_currency, current_currency, context=None):
'''
@@ -1092,39 +1147,45 @@ class account_voucher(osv.osv):
tot_line = line_total
rec_lst_ids = []
- voucher_brw = self.pool.get('account.voucher').browse(cr, uid, voucher_id, context)
+ date = self.read(cr, uid, voucher_id, ['date'], context=context)['date']
ctx = context.copy()
- ctx.update({'date': voucher_brw.date})
+ ctx.update({'date': date})
+ voucher = self.pool.get('account.voucher').browse(cr, uid, voucher_id, context=ctx)
+ voucher_currency = voucher.journal_id.currency or voucher.company_id.currency_id
+ ctx.update({
+ 'voucher_special_currency_rate': voucher_currency.rate * voucher.payment_rate ,
+ 'voucher_special_currency': voucher.payment_rate_currency_id and voucher.payment_rate_currency_id.id or False,})
prec = self.pool.get('decimal.precision').precision_get(cr, uid, 'Account')
- for line in voucher_brw.line_ids:
+ for line in voucher.line_ids:
#create one move line per voucher line where amount is not 0.0
# AND (second part of the clause) only if the original move line was not having debit = credit = 0 (which is a legal value)
if not line.amount and not (line.move_line_id and not float_compare(line.move_line_id.debit, line.move_line_id.credit, precision_rounding=prec) and not float_compare(line.move_line_id.debit, 0.0, precision_rounding=prec)):
continue
# convert the amount set on the voucher line into the currency of the voucher's company
- amount = self._convert_amount(cr, uid, line.untax_amount or line.amount, voucher_brw.id, context=ctx)
+ # this calls res_curreny.compute() with the right context, so that it will take either the rate on the voucher if it is relevant or will use the default behaviour
+ amount = self._convert_amount(cr, uid, line.untax_amount or line.amount, voucher.id, context=ctx)
# if the amount encoded in voucher is equal to the amount unreconciled, we need to compute the
# currency rate difference
if line.amount == line.amount_unreconciled:
if not line.move_line_id:
raise osv.except_osv(_('Wrong voucher line'),_("The invoice you are willing to pay is not valid anymore."))
- sign = voucher_brw.type in ('payment', 'purchase') and -1 or 1
+ sign = voucher.type in ('payment', 'purchase') and -1 or 1
currency_rate_difference = sign * (line.move_line_id.amount_residual - amount)
else:
currency_rate_difference = 0.0
move_line = {
- 'journal_id': voucher_brw.journal_id.id,
- 'period_id': voucher_brw.period_id.id,
+ 'journal_id': voucher.journal_id.id,
+ 'period_id': voucher.period_id.id,
'name': line.name or '/',
'account_id': line.account_id.id,
'move_id': move_id,
- 'partner_id': voucher_brw.partner_id.id,
+ 'partner_id': voucher.partner_id.id,
'currency_id': line.move_line_id and (company_currency <> line.move_line_id.currency_id.id and line.move_line_id.currency_id.id) or False,
'analytic_account_id': line.account_analytic_id and line.account_analytic_id.id or False,
'quantity': 1,
'credit': 0.0,
'debit': 0.0,
- 'date': voucher_brw.date
+ 'date': voucher.date
}
if amount < 0:
amount = -amount
@@ -1140,9 +1201,9 @@ class account_voucher(osv.osv):
tot_line -= amount
move_line['credit'] = amount
- if voucher_brw.tax_id and voucher_brw.type in ('sale', 'purchase'):
+ if voucher.tax_id and voucher.type in ('sale', 'purchase'):
move_line.update({
- 'account_tax_id': voucher_brw.tax_id.id,
+ 'account_tax_id': voucher.tax_id.id,
})
if move_line.get('account_tax_id', False):
@@ -1154,7 +1215,6 @@ class account_voucher(osv.osv):
foreign_currency_diff = 0.0
amount_currency = False
if line.move_line_id:
- voucher_currency = voucher_brw.currency_id and voucher_brw.currency_id.id or voucher_brw.journal_id.company_id.currency_id.id
# We want to set it on the account move line as soon as the original line had a foreign currency
if line.move_line_id.currency_id and line.move_line_id.currency_id.id != company_currency:
# we compute the amount in that foreign currency.
@@ -1162,27 +1222,19 @@ class account_voucher(osv.osv):
# if the voucher and the voucher line share the same currency, there is no computation to do
sign = (move_line['debit'] - move_line['credit']) < 0 and -1 or 1
amount_currency = sign * (line.amount)
- elif line.move_line_id.currency_id.id == voucher_brw.payment_rate_currency_id.id:
- # if the rate is specified on the voucher, we must use it
- payment_rate = voucher_brw.payment_rate
- if voucher_currency != company_currency:
- #if the voucher currency is not the company currency, we need to consider the rate of the line's currency
- voucher_rate = currency_obj.browse(cr, uid, voucher_currency, context=ctx).rate
- payment_rate = voucher_rate * payment_rate
- amount_currency = (move_line['debit'] - move_line['credit']) * payment_rate
-
else:
- # otherwise we use the rates of the system (giving the voucher date in the context)
+ # if the rate is specified on the voucher, it will be used thanks to the special keys in the context
+ # otherwise we use the rates of the system
amount_currency = currency_obj.compute(cr, uid, company_currency, line.move_line_id.currency_id.id, move_line['debit']-move_line['credit'], context=ctx)
if line.amount == line.amount_unreconciled and line.move_line_id.currency_id.id == voucher_currency:
- sign = voucher_brw.type in ('payment', 'purchase') and -1 or 1
+ sign = voucher.type in ('payment', 'purchase') and -1 or 1
foreign_currency_diff = sign * line.move_line_id.amount_residual_currency + amount_currency
move_line['amount_currency'] = amount_currency
voucher_line = move_line_obj.create(cr, uid, move_line)
rec_ids = [voucher_line, line.move_line_id.id]
- if not currency_obj.is_zero(cr, uid, voucher_brw.company_id.currency_id, currency_rate_difference):
+ if not currency_obj.is_zero(cr, uid, voucher.company_id.currency_id, currency_rate_difference):
# Change difference entry in company currency
exch_lines = self._get_exchange_lines(cr, uid, line, move_id, currency_rate_difference, company_currency, current_currency, context=context)
new_id = move_line_obj.create(cr, uid, exch_lines[0],context)
@@ -1229,32 +1281,32 @@ class account_voucher(osv.osv):
currency_obj = self.pool.get('res.currency')
move_line = {}
- voucher_brw = self.pool.get('account.voucher').browse(cr,uid,voucher_id,context)
- current_currency_obj = voucher_brw.currency_id or voucher_brw.journal_id.company_id.currency_id
+ voucher = self.pool.get('account.voucher').browse(cr,uid,voucher_id,context)
+ current_currency_obj = voucher.currency_id or voucher.journal_id.company_id.currency_id
if not currency_obj.is_zero(cr, uid, current_currency_obj, line_total):
diff = line_total
account_id = False
write_off_name = ''
- if voucher_brw.payment_option == 'with_writeoff':
- account_id = voucher_brw.writeoff_acc_id.id
- write_off_name = voucher_brw.comment
- elif voucher_brw.type in ('sale', 'receipt'):
- account_id = voucher_brw.partner_id.property_account_receivable.id
+ if voucher.payment_option == 'with_writeoff':
+ account_id = voucher.writeoff_acc_id.id
+ write_off_name = voucher.comment
+ elif voucher.type in ('sale', 'receipt'):
+ account_id = voucher.partner_id.property_account_receivable.id
else:
- account_id = voucher_brw.partner_id.property_account_payable.id
- sign = voucher_brw.type == 'payment' and -1 or 1
+ account_id = voucher.partner_id.property_account_payable.id
+ sign = voucher.type == 'payment' and -1 or 1
move_line = {
'name': write_off_name or name,
'account_id': account_id,
'move_id': move_id,
- 'partner_id': voucher_brw.partner_id.id,
- 'date': voucher_brw.date,
+ 'partner_id': voucher.partner_id.id,
+ 'date': voucher.date,
'credit': diff > 0 and diff or 0.0,
'debit': diff < 0 and -diff or 0.0,
- 'amount_currency': company_currency <> current_currency and (sign * -1 * voucher_brw.writeoff_amount) or False,
+ 'amount_currency': company_currency <> current_currency and (sign * -1 * voucher.writeoff_amount) or False,
'currency_id': company_currency <> current_currency and current_currency or False,
- 'analytic_account_id': voucher_brw.analytic_id and voucher_brw.analytic_id.id or False,
+ 'analytic_account_id': voucher.analytic_id and voucher.analytic_id.id or False,
}
return move_line
@@ -1355,13 +1407,17 @@ class account_voucher_line(osv.osv):
_order = "move_line_id"
# If the payment is in the same currency than the invoice, we keep the same amount
- # Otherwise, we compute from company currency to payment currency
+ # Otherwise, we compute from invoice currency to payment currency
def _compute_balance(self, cr, uid, ids, name, args, context=None):
currency_pool = self.pool.get('res.currency')
rs_data = {}
for line in self.browse(cr, uid, ids, context=context):
ctx = context.copy()
ctx.update({'date': line.voucher_id.date})
+ voucher_rate = self.pool.get('res.currency').read(cr, uid, line.voucher_id.currency_id.id, ['rate'], context=ctx)['rate']
+ ctx.update({
+ 'voucher_special_currency': line.voucher_id.payment_rate_currency_id and line.voucher_id.payment_rate_currency_id.id or False,
+ 'voucher_special_currency_rate': line.voucher_id.payment_rate * voucher_rate})
res = {}
company_currency = line.voucher_id.journal_id.company_id.currency_id.id
voucher_currency = line.voucher_id.currency_id and line.voucher_id.currency_id.id or company_currency
@@ -1371,13 +1427,11 @@ class account_voucher_line(osv.osv):
res['amount_original'] = 0.0
res['amount_unreconciled'] = 0.0
elif move_line.currency_id and voucher_currency==move_line.currency_id.id:
- res['amount_original'] = currency_pool.compute(cr, uid, move_line.currency_id.id, voucher_currency, abs(move_line.amount_currency), context=ctx)
- res['amount_unreconciled'] = currency_pool.compute(cr, uid, move_line.currency_id and move_line.currency_id.id or company_currency, voucher_currency, abs(move_line.amount_residual_currency), context=ctx)
- elif move_line and move_line.credit > 0:
- res['amount_original'] = currency_pool.compute(cr, uid, company_currency, voucher_currency, move_line.credit, context=ctx)
- res['amount_unreconciled'] = currency_pool.compute(cr, uid, company_currency, voucher_currency, abs(move_line.amount_residual), context=ctx)
+ res['amount_original'] = abs(move_line.amount_currency)
+ res['amount_unreconciled'] = abs(move_line.amount_residual_currency)
else:
- res['amount_original'] = currency_pool.compute(cr, uid, company_currency, voucher_currency, move_line.debit, context=ctx)
+ #always use the amount booked in the company currency as the basis of the conversion into the voucher currency
+ res['amount_original'] = currency_pool.compute(cr, uid, company_currency, voucher_currency, move_line.credit or move_line.debit or 0.0, context=ctx)
res['amount_unreconciled'] = currency_pool.compute(cr, uid, company_currency, voucher_currency, abs(move_line.amount_residual), context=ctx)
rs_data[line.id] = res
diff --git a/addons/account_voucher/test/account_voucher.yml b/addons/account_voucher/test/account_voucher.yml
index c9270dc695c..2cd612affc7 100644
--- a/addons/account_voucher/test/account_voucher.yml
+++ b/addons/account_voucher/test/account_voucher.yml
@@ -6,7 +6,7 @@
account_id: account.cash
amount: 1000.0
company_id: base.main_company
- journal_id: account.bank_journal
+ journal_id: account.sales_journal
name: Voucher for Axelor
narration: Basic Pc
line_cr_ids:
diff --git a/addons/account_voucher/test/case1_usd_usd_payment_rate.yml b/addons/account_voucher/test/case1_usd_usd_payment_rate.yml
new file mode 100644
index 00000000000..92c2e46b08f
--- /dev/null
+++ b/addons/account_voucher/test/case1_usd_usd_payment_rate.yml
@@ -0,0 +1,249 @@
+-
+ In order to check the Account_voucher module with multi-currency in OpenERP,
+ I create 2 Invoices in USD and make 1 Payment in USD based on the currency rating given by the bank which is slightly different that the one encoded in OpenERP
+-
+ I set the income and expense currency accounts on the main company
+-
+ !python {model: res.company}: |
+ from datetime import datetime
+ vals = {
+ 'income_currency_exchange_account_id': ref('account.o_expense'),
+ 'expense_currency_exchange_account_id': ref('account.o_expense')}
+ self.write(cr, uid, ref('base.main_company'), vals)
+-
+ I create currency USD in OpenERP for January of 1.333333 Rate
+-
+ !python {model: res.currency.rate}: |
+ from datetime import datetime
+ curr_id = self.pool.get('res.currency').search(cr, uid, [('name', '=', 'USD')])[0]
+ date = '%s-01-01' %(datetime.now().year)
+ ids = self.search(cr, uid, [('currency_id','=',curr_id), ('name', '=', date)])
+ self.write(cr, uid, ids, {'rate': 1.333333})
+-
+ I create currency USD in OpenERP for February of 1.250000 Rate
+-
+ !record {model: res.currency.rate, id: feb_usd}:
+ currency_id: base.USD
+ name: !eval "'%s-02-01' %(datetime.now().year)"
+ rate: 1.250000
+
+-
+ I create currency USD in OpenERP for March of 1.111111 Rate
+-
+ !record {model: res.currency.rate, id: mar_usd}:
+ currency_id: base.USD
+ name: !eval "'%s-03-01' %(datetime.now().year)"
+ rate: 1.111111
+
+-
+ I create currency USD in OpenERP for April of 1.052632 Rate
+-
+ !record {model: res.currency.rate, id: apr_usd}:
+ currency_id: base.USD
+ name: !eval "'%s-04-01' %(datetime.now().year)"
+ rate: 1.052632
+
+-
+ I create a cash account with currency USD
+-
+ !record {model: account.account, id: account_cash_usd_id}:
+ currency_id: base.USD
+ name: "cash account in usd"
+ code: "Xcash usd"
+ type: 'liquidity'
+ user_type: "account.data_account_type_cash"
+
+-
+ I create a bank journal with USD as currency
+-
+ !record {model: account.journal, id: bank_journal_USD}:
+ name: Bank Journal(USD)
+ code: BUSD
+ type: bank
+ analytic_journal_id: account.sit
+ sequence_id: account.sequence_bank_journal
+ default_debit_account_id: account_cash_usd_id
+ default_credit_account_id: account_cash_usd_id
+ currency: base.USD
+ company_id: base.main_company
+
+-
+ I create a new partner Kate Mc Kay
+-
+ !record {model: res.partner, id: res_partner_mc_kay}:
+ name: "Mc Kay Kate"
+ property_account_receivable: account.a_recv
+ property_account_payable: account.a_pay
+-
+ I create the first invoice on 1st January for 200 USD
+-
+ !record {model: account.invoice, id: account_invoice_jan_payment_rate}:
+ account_id: account.a_recv
+ company_id: base.main_company
+ currency_id: base.USD
+ date_invoice: !eval "'%s-01-01' %(datetime.now().year)"
+ period_id: account.period_1
+ invoice_line:
+ - account_id: account.a_sale
+ name: '[PCSC234] PC Assemble SC234'
+ price_unit: 200.0
+ quantity: 1.0
+ product_id: product.product_product_3
+ uos_id: product.product_uom_unit
+ journal_id: account.sales_journal
+ partner_id: res_partner_mc_kay
+ reference_type: none
+-
+ I Validate invoice by clicking on Validate button
+-
+ !workflow {model: account.invoice, action: invoice_open, ref: account_invoice_jan_payment_rate}
+-
+ I check that first invoice move is correct for debtor account (debit - credit == 150.0)
+-
+ !python {model: account.invoice}: |
+ invoice_id = self.browse(cr, uid, ref("account_invoice_jan_payment_rate"))
+ assert invoice_id.move_id, "Move not created for open invoice"
+ move_line_obj = self.pool.get('account.move.line')
+ move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)])
+ move_line = move_line_obj.browse(cr, uid, move_lines[0])
+ assert (move_line.debit - move_line.credit == 150.0), "Invoice move is not correct for debtors account"
+-
+ I create the second invoice on 1st February for 100 USD
+-
+ !record {model: account.invoice, id: account_invoice_feb_payment_rate}:
+ account_id: account.a_recv
+ company_id: base.main_company
+ currency_id: base.USD
+ date_invoice: !eval "'%s-02-01' %(datetime.now().year)"
+ period_id: account.period_2
+ invoice_line:
+ - account_id: account.a_sale
+ name: '[PCSC234] PC Assemble SC234'
+ price_unit: 100.0
+ quantity: 1.0
+ product_id: product.product_product_3
+ uos_id: product.product_uom_unit
+ journal_id: account.sales_journal
+ partner_id: res_partner_mc_kay
+ reference_type: none
+-
+ I Validate invoice by clicking on Validate button
+-
+ !workflow {model: account.invoice, action: invoice_open, ref: account_invoice_feb_payment_rate}
+-
+ I check that second invoice move is correct for debtor account (debit - credit == 80)
+-
+ !python {model: account.invoice}: |
+ invoice_id = self.browse(cr, uid, ref("account_invoice_feb_payment_rate"))
+ assert invoice_id.move_id, "Move not created for open invoice"
+ move_line_obj = self.pool.get('account.move.line')
+ move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)])
+ move_line = move_line_obj.browse(cr, uid, move_lines[0])
+ assert (move_line.debit - move_line.credit == 80), "Invoice move is not correct for debtors account"
+
+-
+ I set the context that will be used for the encoding of all the vouchers of this file
+-
+ !context
+ 'type': 'receipt'
+-
+ On the first March, I create the first voucher of payment with values 240 USD, journal USD, and specifying that $1 = 0.8€
+-
+ !record {model: account.voucher, id: account_voucher_1_case1_payment_rate, view: view_vendor_receipt_form}:
+ account_id: account.cash
+ amount: 240.0
+ company_id: base.main_company
+ journal_id: bank_journal_USD
+ name: 'Payment: Case 1 USD/USD payment rate'
+ partner_id: res_partner_mc_kay
+ period_id: account.period_3
+ date: !eval time.strftime("%Y-03-01")
+ payment_option: 'with_writeoff'
+ writeoff_acc_id: account.a_expense
+ comment: 'Write Off'
+ payment_rate: 0.8
+ payment_rate_currency_id: base.EUR
+
+-
+ I fill amounts 180 for the invoice of 200$ and 70 for the invoice of 100$>
+-
+ !python {model: account.voucher}: |
+ import netsvc, time
+ vals = {}
+ voucher_id = self.browse(cr, uid, ref('account_voucher_1_case1_payment_rate'))
+ data = []
+ for item in voucher_id.line_cr_ids:
+ if item.amount_unreconciled == 200.00:
+ data += [(item.id, 180.0)]
+ else:
+ data += [(item.id, 70.0)]
+ for line_id, amount in data:
+ self.pool.get('account.voucher.line').write(cr, uid, [line_id], {'amount': amount})
+ assert (voucher_id.state=='draft'), "Voucher is not in draft state"
+-
+ I check that writeoff amount computed is -10.0
+-
+ !python {model: account.voucher}: |
+ voucher = ref('account_voucher_1_case1_payment_rate')
+ voucher_id = self.browse(cr, uid, voucher)
+ assert (voucher_id.writeoff_amount == -10.0), "Writeoff amount is not -10.0"
+-
+ I confirm the voucher
+-
+ !python {model: account.voucher}: |
+ import netsvc
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'account.voucher', ref('account_voucher_1_case1_payment_rate'), 'proforma_voucher', cr)
+-
+ I check that the move of my first voucher is valid
+-
+ !python {model: account.voucher}: |
+ voucher = ref('account_voucher_1_case1_payment_rate')
+ voucher_id = self.browse(cr, uid, voucher)
+ move_line_obj = self.pool.get('account.move.line')
+ move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
+ for move_line in move_line_obj.browse(cr, uid, move_lines):
+ assert move_line.state == 'valid', "Voucher move is not valid"
+-
+ I check that my debtor account is correct
+-
+ I check that the debtor account has 2 new lines with -180 and -70 as amount_currency columns and that their credit columns are respectively 144 and 56
+-
+ I check that my write-off is correct. 8 debit and 10 amount_currency
+-
+ !python {model: account.voucher}: |
+ voucher = ref('account_voucher_1_case1_payment_rate')
+ voucher_id = self.browse(cr, uid, voucher)
+ move_line_obj = self.pool.get('account.move.line')
+ move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
+ for move_line in move_line_obj.browse(cr, uid, move_lines):
+ if move_line.amount_currency == -180.00:
+ assert move_line.credit == 144.00, "Debtor account has wrong entry."
+ elif move_line.amount_currency == -70.00:
+ assert move_line.credit == 56.00, "Debtor account has wrong entry."
+ elif move_line.amount_currency == 10.00:
+ assert move_line.debit == 8.00, "Writeoff amount is wrong: Got a debit of %s (expected 8,00€)" % (move_line.debit)
+ elif move_line.amount_currency == 240.00:
+ assert move_line.debit == 192.00, "Bank entry is wrong."
+ else:
+ assert False, "Unrecognized journal entry"
+-
+ I check the residual amount of Invoice1, should be 20 in amount_currency and 6 in amount_residual
+-
+ !python {model: account.invoice}: |
+ invoice_id = self.browse(cr, uid, ref("account_invoice_jan_payment_rate"))
+ move_line_obj = self.pool.get('account.move.line')
+ move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
+ move_line = move_line_obj.browse(cr, uid, move_lines[0])
+ assert (move_line.amount_residual == 6.0) , "Residual amount is not correct for first Invoice"
+ assert (move_line.amount_residual_currency == 20.0) , "Residual amount in currency is not correct for first Invoice"
+-
+ I check the residual amuont of Invoice2, should be 30 in residual currency and 24 in amount_residual
+-
+ !python {model: account.invoice}: |
+ invoice_id = self.browse(cr, uid, ref("account_invoice_feb_payment_rate"))
+ move_line_obj = self.pool.get('account.move.line')
+ move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
+ move_line = move_line_obj.browse(cr, uid, move_lines[0])
+ assert (move_line.amount_residual == 24.0) , "Residual amount is not correct for second Invoice"
+ assert (move_line.amount_residual_currency == 30.0) , "Residual amount in currency is not correct for second Invoice"
diff --git a/addons/account_voucher/test/case2_usd_eur_debtor_in_eur.yml b/addons/account_voucher/test/case2_usd_eur_debtor_in_eur.yml
index 275e4c58835..161bbff37b0 100644
--- a/addons/account_voucher/test/case2_usd_eur_debtor_in_eur.yml
+++ b/addons/account_voucher/test/case2_usd_eur_debtor_in_eur.yml
@@ -201,7 +201,7 @@
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
move_line = move_line_obj.browse(cr, uid, move_lines[0])
- assert (move_line.amount_residual_currency == 55.56 and move_line.amount_residual == 20) , "Residual amount is not correct for first Invoice"
+ assert (move_line.amount_residual_currency == 55.56 and move_line.amount_residual == 20) , "Residual amount is not correct for first Invoice. Got %s USD (%s EUR)" %(move_line.amount_residual_currency, move_line.amount_residual)
-
I check the residual amuont of Invoice2, should be 22.22 in residual currency and 10 in amount_residual
-
diff --git a/addons/account_voucher/test/case_eur_usd.yml b/addons/account_voucher/test/case_eur_usd.yml
index 94f0c718980..8dce677fd9a 100644
--- a/addons/account_voucher/test/case_eur_usd.yml
+++ b/addons/account_voucher/test/case_eur_usd.yml
@@ -41,7 +41,7 @@
currency: base.USD
company_id: base.main_company
-
- I create an invoice
+ On the first of January, I create an invoice of 1000€
-
!record {model: account.invoice, id: account_invoice_eur_usd}:
account_id: account.a_recv
@@ -79,7 +79,7 @@
!context
'type': 'receipt'
-
- I create the voucher of payment with values 1350 USD, journal USD,
+ On the first of February, I create the voucher of payment with values 1350 USD, journal USD,
-
!record {model: account.voucher, id: account_voucher_eur_usd_case, view: view_vendor_receipt_form}:
account_id: account.cash
diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml
index 766fa36e135..e7296a6670f 100644
--- a/addons/account_voucher/voucher_payment_receipt_view.xml
+++ b/addons/account_voucher/voucher_payment_receipt_view.xml
@@ -107,7 +107,7 @@
-
+
@@ -196,7 +196,7 @@
-
+
@@ -376,7 +376,7 @@
-
+
@@ -474,7 +474,7 @@
-
+
diff --git a/addons/audittrail/i18n/tr.po b/addons/audittrail/i18n/tr.po
index e22928750e8..bcb219ebd5b 100644
--- a/addons/audittrail/i18n/tr.po
+++ b/addons/audittrail/i18n/tr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2013-02-15 21:23+0000\n"
-"Last-Translator: Ayhan KIZILTAN \n"
+"PO-Revision-Date: 2013-05-02 10:18+0000\n"
+"Last-Translator: Ediz Duman \n"
"Language-Team: Turkish
\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-28 05:32+0000\n"
-"X-Generator: Launchpad (build 16546)\n"
+"X-Launchpad-Export-Date: 2013-05-03 06:29+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
#. module: audittrail
#: view:audittrail.log:0
@@ -50,7 +50,7 @@ msgstr "'%s' Modeli yoktur..."
#. module: audittrail
#: view:audittrail.rule:0
msgid "Subscribed Rule"
-msgstr ""
+msgstr "Abone Kural"
#. module: audittrail
#: view:audittrail.rule:0
@@ -104,6 +104,8 @@ msgid ""
"Select this if you want to keep track of read/open on any record of the "
"object of this rule"
msgstr ""
+"Bu kuralın nesnenin herhangi bir kayıt üzerinde açık okuma / takip etmek "
+"istiyorsanız bunu seçin"
#. module: audittrail
#: field:audittrail.log,method:0
@@ -113,22 +115,22 @@ msgstr "Yöntem"
#. module: audittrail
#: field:audittrail.view.log,from:0
msgid "Log From"
-msgstr ""
+msgstr "Günlüğünden"
#. module: audittrail
#: field:audittrail.log.line,log:0
msgid "Log ID"
-msgstr ""
+msgstr "Günlük ID"
#. module: audittrail
#: field:audittrail.log,res_id:0
msgid "Resource Id"
-msgstr ""
+msgstr "Kaynak Id"
#. module: audittrail
#: help:audittrail.rule,user_id:0
msgid "if User is not added then it will applicable for all users"
-msgstr ""
+msgstr "Kullanıcı ilave değilse o zaman tüm kullanıcılar için geçerli olacak"
#. module: audittrail
#: help:audittrail.rule,log_workflow:0
@@ -136,6 +138,8 @@ msgid ""
"Select this if you want to keep track of workflow on any record of the "
"object of this rule"
msgstr ""
+"Bu kuralın nesnenin herhangi bir kayıt iş akışı takip etmek istiyorsanız "
+"bunu seçin"
#. module: audittrail
#: field:audittrail.rule,user_id:0
@@ -145,7 +149,7 @@ msgstr "Kullanıcılar"
#. module: audittrail
#: view:audittrail.log:0
msgid "Log Lines"
-msgstr ""
+msgstr "Günlük Saırları"
#. module: audittrail
#: view:audittrail.log:0
@@ -157,38 +161,38 @@ msgstr "Nesne"
#. module: audittrail
#: view:audittrail.rule:0
msgid "AuditTrail Rule"
-msgstr ""
+msgstr "Denetim Takip Kural"
#. module: audittrail
#: field:audittrail.view.log,to:0
msgid "Log To"
-msgstr ""
+msgstr "için Günlük"
#. module: audittrail
#: view:audittrail.log:0
msgid "New Value Text: "
-msgstr ""
+msgstr "Yeni Değer Yazı: "
#. module: audittrail
#: view:audittrail.rule:0
msgid "Search Audittrail Rule"
-msgstr ""
+msgstr "Arama Denetim Takip Kuralı"
#. module: audittrail
#: model:ir.actions.act_window,name:audittrail.action_audittrail_rule_tree
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_rule_tree
msgid "Audit Rules"
-msgstr ""
+msgstr "Denetim Kuralları"
#. module: audittrail
#: view:audittrail.log:0
msgid "Old Value : "
-msgstr ""
+msgstr "Eski Değer: "
#. module: audittrail
#: field:audittrail.log,name:0
msgid "Resource Name"
-msgstr ""
+msgstr "Kaynak Adı"
#. module: audittrail
#: view:audittrail.log:0
@@ -202,42 +206,46 @@ msgid ""
"Select this if you want to keep track of modification on any record of the "
"object of this rule"
msgstr ""
+"Bu kuralın nesnenin herhangi bir kayıt üzerinde değişiklik izlemek "
+"istiyorsanız bunu seçin"
#. module: audittrail
#: view:audittrail.rule:0
msgid "AuditTrail Rules"
msgstr ""
+"Bu kuralın nesnenin herhangi bir kayıt üzerinde değişiklik izlemek "
+"istiyorsanız bunu seçin"
#. module: audittrail
#: help:audittrail.rule,object_id:0
msgid "Select object for which you want to generate log."
-msgstr ""
+msgstr "Günlük oluşturmak istediğiniz nesneyi seçin."
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_audit
msgid "Audit"
-msgstr ""
+msgstr "Denetim"
#. module: audittrail
#: field:audittrail.rule,log_workflow:0
msgid "Log Workflow"
-msgstr ""
+msgstr "İş Akışı Günlüğü"
#. module: audittrail
#: field:audittrail.rule,log_read:0
msgid "Log Reads"
-msgstr ""
+msgstr "Günlük Okumaları"
#. module: audittrail
#: code:addons/audittrail/audittrail.py:77
#, python-format
msgid "Change audittrail depends -- Setting rule as DRAFT"
-msgstr ""
+msgstr "Değişim denetim izi bağlıdır - TASLAK olarak ayarlama kural"
#. module: audittrail
#: field:audittrail.log,line_ids:0
msgid "Log lines"
-msgstr ""
+msgstr "Günlük satırları"
#. module: audittrail
#: field:audittrail.log.line,field_id:0
@@ -247,7 +255,7 @@ msgstr "Alanlar"
#. module: audittrail
#: field:audittrail.rule,log_create:0
msgid "Log Creates"
-msgstr ""
+msgstr "Günlük Oluştur"
#. module: audittrail
#: help:audittrail.rule,log_unlink:0
@@ -255,6 +263,8 @@ msgid ""
"Select this if you want to keep track of deletion on any record of the "
"object of this rule"
msgstr ""
+"Bu kuralın nesnenin herhangi bir kayıt silinmek takip etmek istiyorsanız "
+"bunu seçin"
#. module: audittrail
#: view:audittrail.log:0
@@ -265,17 +275,19 @@ msgstr "Kullanıcı"
#. module: audittrail
#: field:audittrail.rule,action_id:0
msgid "Action ID"
-msgstr ""
+msgstr "İşlem ID"
#. module: audittrail
#: view:audittrail.rule:0
msgid "Users (if User is not added then it will applicable for all users)"
msgstr ""
+"Kullanıcılar (Kullanıcı ilave değilse o zaman tüm kullanıcılar için geçerli "
+"olacak)"
#. module: audittrail
#: view:audittrail.rule:0
msgid "UnSubscribe"
-msgstr ""
+msgstr "ÜyeliktenÇık"
#. module: audittrail
#: sql_constraint:audittrail.rule:0
@@ -287,38 +299,38 @@ msgstr ""
#. module: audittrail
#: field:audittrail.rule,log_unlink:0
msgid "Log Deletes"
-msgstr ""
+msgstr "Günlük Sil"
#. module: audittrail
#: view:audittrail.log:0
#: view:audittrail.rule:0
msgid "Model"
-msgstr ""
+msgstr "Model"
#. module: audittrail
#: field:audittrail.log.line,field_description:0
msgid "Field Description"
-msgstr ""
+msgstr "Alan Açıklaması"
#. module: audittrail
#: view:audittrail.log:0
msgid "Search Audittrail Log"
-msgstr ""
+msgstr "Arama Denetim Takip Günlük"
#. module: audittrail
#: field:audittrail.rule,log_write:0
msgid "Log Writes"
-msgstr ""
+msgstr "Günlük Yazıları"
#. module: audittrail
#: view:audittrail.view.log:0
msgid "Open Logs"
-msgstr ""
+msgstr "Günlükleri Aç"
#. module: audittrail
#: field:audittrail.log.line,new_value_text:0
msgid "New value Text"
-msgstr ""
+msgstr "Yeni değeri Yaz"
#. module: audittrail
#: field:audittrail.rule,name:0
@@ -328,45 +340,45 @@ msgstr "Kural Adı"
#. module: audittrail
#: field:audittrail.log.line,new_value:0
msgid "New Value"
-msgstr ""
+msgstr "Yeni Değer"
#. module: audittrail
#: code:addons/audittrail/audittrail.py:223
#, python-format
msgid "'%s' field does not exist in '%s' model"
-msgstr ""
+msgstr "'% s' alan '% s' modelinde yok"
#. module: audittrail
#: view:audittrail.log:0
msgid "AuditTrail Logs"
-msgstr ""
+msgstr "Denetim Takip Günlükleri"
#. module: audittrail
#: view:audittrail.rule:0
msgid "Draft Rule"
-msgstr ""
+msgstr "Taslak Kural"
#. module: audittrail
#: view:audittrail.log:0
#: model:ir.model,name:audittrail.model_audittrail_log
msgid "Audittrail Log"
-msgstr ""
+msgstr "Denetim Takip Günlüğü"
#. module: audittrail
#: help:audittrail.rule,log_action:0
msgid ""
"Select this if you want to keep track of actions on the object of this rule"
-msgstr ""
+msgstr "Bu kuralın nesne eylemleri takip etmek istiyorsanız bunu seçin"
#. module: audittrail
#: view:audittrail.log:0
msgid "New Value : "
-msgstr ""
+msgstr "Yeni Değer: "
#. module: audittrail
#: field:audittrail.log.line,old_value_text:0
msgid "Old value Text"
-msgstr ""
+msgstr "Eski değer Yazı"
#. module: audittrail
#: view:audittrail.view.log:0
@@ -376,22 +388,22 @@ msgstr "İptal"
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_view_log
msgid "View Log"
-msgstr ""
+msgstr "Günlüğü Göster"
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_log_line
msgid "Log Line"
-msgstr ""
+msgstr "Günlük Satırı"
#. module: audittrail
#: view:audittrail.view.log:0
msgid "or"
-msgstr ""
+msgstr "veya"
#. module: audittrail
#: field:audittrail.rule,log_action:0
msgid "Log Action"
-msgstr ""
+msgstr "Günlük İşlemei"
#. module: audittrail
#: help:audittrail.rule,log_create:0
@@ -399,3 +411,5 @@ msgid ""
"Select this if you want to keep track of creation on any record of the "
"object of this rule"
msgstr ""
+"Bu kuralın nesnenin herhangi bir kayıt oluşturma takip etmek istiyorsanız "
+"bunu seçin"
diff --git a/addons/base_calendar/i18n/nl.po b/addons/base_calendar/i18n/nl.po
index dda56a4bd9d..e51e163d927 100644
--- a/addons/base_calendar/i18n/nl.po
+++ b/addons/base_calendar/i18n/nl.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2013-04-22 14:12+0000\n"
+"PO-Revision-Date: 2013-05-04 16:53+0000\n"
"Last-Translator: Erwin van der Ploeg (Endian Solutions) \n"
"Language-Team: Dutch \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-04-23 06:09+0000\n"
-"X-Generator: Launchpad (build 16580)\n"
+"X-Launchpad-Export-Date: 2013-05-05 06:04+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
#. module: base_calendar
#: selection:calendar.alarm,trigger_related:0
@@ -51,7 +51,7 @@ msgstr "We(e)k(en)"
#: field:calendar.todo,we:0
#: field:crm.meeting,we:0
msgid "Wed"
-msgstr "woe"
+msgstr "Woe"
#. module: base_calendar
#: selection:calendar.attendee,cutype:0
@@ -81,7 +81,7 @@ msgstr "Herinneringen"
#: selection:calendar.todo,week_list:0
#: selection:crm.meeting,week_list:0
msgid "Sunday"
-msgstr "zondag"
+msgstr "Zondag"
#. module: base_calendar
#: field:calendar.attendee,role:0
@@ -129,7 +129,7 @@ msgstr "Uren"
#: selection:calendar.todo,month_list:0
#: selection:crm.meeting,month_list:0
msgid "March"
-msgstr "maart"
+msgstr "Maart"
#. module: base_calendar
#: help:calendar.attendee,cutype:0
@@ -147,7 +147,7 @@ msgstr "Ongelezen berichten"
#: selection:calendar.todo,week_list:0
#: selection:crm.meeting,week_list:0
msgid "Friday"
-msgstr "vrijdag"
+msgstr "Vrijdag"
#. module: base_calendar
#: field:calendar.event,allday:0
@@ -201,7 +201,7 @@ msgstr "Referentie"
#: field:calendar.todo,tu:0
#: field:crm.meeting,tu:0
msgid "Tue"
-msgstr "din"
+msgstr "Din"
#. module: base_calendar
#: selection:calendar.event,byday:0
@@ -453,7 +453,7 @@ msgstr "Kalender-taak"
#: field:calendar.todo,su:0
#: field:crm.meeting,su:0
msgid "Sun"
-msgstr "zon"
+msgstr "Zon"
#. module: base_calendar
#: field:calendar.attendee,cutype:0
@@ -587,7 +587,7 @@ msgstr "Geaccepteerd"
#: field:calendar.todo,th:0
#: field:crm.meeting,th:0
msgid "Thu"
-msgstr "don"
+msgstr "Don"
#. module: base_calendar
#: view:crm.meeting:0
@@ -1216,7 +1216,7 @@ msgstr "Verantwoordelijke gebruiker"
#. module: base_calendar
#: view:crm.meeting:0
msgid "Select Weekdays"
-msgstr "Selecteer dagen van de qweek"
+msgstr "Selecteer dagen van de week"
#. module: base_calendar
#: code:addons/base_calendar/base_calendar.py:1519
@@ -1470,7 +1470,7 @@ msgstr "April"
#: code:addons/base_calendar/crm_meeting.py:106
#, python-format
msgid "Email addresses not found"
-msgstr "E-mail adressen neit gevonden"
+msgstr "E-mail adressen niet gevonden"
#. module: base_calendar
#: view:calendar.event:0
diff --git a/addons/delivery/i18n/nl.po b/addons/delivery/i18n/nl.po
index c0292981813..d989541e851 100644
--- a/addons/delivery/i18n/nl.po
+++ b/addons/delivery/i18n/nl.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:38+0000\n"
-"PO-Revision-Date: 2013-04-24 07:47+0000\n"
+"PO-Revision-Date: 2013-05-02 18:15+0000\n"
"Last-Translator: Erwin van der Ploeg (Endian Solutions) \n"
"Language-Team: Dutch \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-04-25 06:05+0000\n"
-"X-Generator: Launchpad (build 16580)\n"
+"X-Launchpad-Export-Date: 2013-05-03 06:29+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
#. module: delivery
#: report:sale.shipping:0
@@ -144,7 +144,7 @@ msgstr ""
" verkoopprijs te berekenen, op basis van het gewicht van de \n"
" producten en andere criteria. U kunt verschillende "
"prijslijsten\n"
-" voor elke aflevermethode maken. Maar ook per land of een "
+" voor elke verzendwijze maken. Maar ook per land of een "
"gebied\n"
" in een land op basis van een postcode bereik.\n"
" \n"
@@ -588,7 +588,7 @@ msgstr "Vervoerder"
#: model:ir.actions.act_window,name:delivery.action_delivery_carrier_form
#: model:ir.ui.menu,name:delivery.menu_action_delivery_carrier_form
msgid "Delivery Methods"
-msgstr "Leveringsmethodes"
+msgstr "Verzendwijzes"
#. module: delivery
#: code:addons/delivery/sale.py:57
diff --git a/addons/fleet/i18n/tr.po b/addons/fleet/i18n/tr.po
index c545422218f..32c58a56692 100644
--- a/addons/fleet/i18n/tr.po
+++ b/addons/fleet/i18n/tr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:39+0000\n"
-"PO-Revision-Date: 2013-04-26 19:36+0000\n"
-"Last-Translator: Ayhan KIZILTAN \n"
+"PO-Revision-Date: 2013-05-02 09:56+0000\n"
+"Last-Translator: Ediz Duman \n"
"Language-Team: Turkish
\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-04-27 06:34+0000\n"
-"X-Generator: Launchpad (build 16580)\n"
+"X-Launchpad-Export-Date: 2013-05-03 06:29+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
#. module: fleet
#: selection:fleet.vehicle,fuel_type:0
@@ -270,7 +270,7 @@ msgstr "Yenileme maliyet sıklığı"
#. module: fleet
#: model:fleet.service.type,name:fleet.type_service_service_1
msgid "Calculation Benefit In Kind"
-msgstr "Ayni Yarar Hesaplaması"
+msgstr "Tür Olarak Hesaplanma Faydası"
#. module: fleet
#: help:fleet.vehicle.log.contract,expiration_date:0
@@ -533,7 +533,7 @@ msgstr "Bu araç için yakıt günlükleri göster"
#. module: fleet
#: field:fleet.vehicle.log.contract,purchaser_id:0
msgid "Contractor"
-msgstr "Yüklenici"
+msgstr "Sorumlu"
#. module: fleet
#: field:fleet.vehicle,license_plate:0
@@ -833,6 +833,8 @@ msgid ""
"Create a new contract automatically with all the same informations except "
"for the date that will start at the end of current contract"
msgstr ""
+"Mevcut sözleşme sonunda başlayacak tarih hariç hepsi aynı bilgileri otomatik "
+"olarak yeni bir sözleşme oluşturur"
#. module: fleet
#: selection:fleet.vehicle.log.contract,state:0
@@ -1134,6 +1136,9 @@ msgid ""
"image, with aspect ratio preserved. Use this field anywhere a small image is "
"required."
msgstr ""
+"Markanın küçük boyutlu fotoğraf. Otomatik olarak korunmuş en boy oranına "
+"sahip, bir 64x64px görüntü olarak yeniden boyutlandırılır. Her yerde küçük "
+"bir resim gereklidir bu alanı kullanın."
#. module: fleet
#: view:board.board:0
@@ -1450,6 +1455,9 @@ msgid ""
"image, with aspect ratio preserved. Use this field in form views or some "
"kanban views."
msgstr ""
+"Markanın orta ölçekli logosu. Otomatik olarak korunmuş en boy oranına sahip, "
+"bir 128x128px görüntü olarak yeniden boyutlandırılır. Form görünümleri ya da "
+"kanban görünümlerinde bu alanı kullanın."
#. module: fleet
#: selection:fleet.vehicle.log.contract,cost_frequency:0
diff --git a/addons/hr_timesheet_sheet/i18n/tr.po b/addons/hr_timesheet_sheet/i18n/tr.po
index 45828c032cc..50b98744866 100644
--- a/addons/hr_timesheet_sheet/i18n/tr.po
+++ b/addons/hr_timesheet_sheet/i18n/tr.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2013-04-13 18:01+0000\n"
-"Last-Translator: Ayhan KIZILTAN \n"
+"PO-Revision-Date: 2013-05-02 10:41+0000\n"
+"Last-Translator: Ediz Duman \n"
"Language-Team: Turkish
\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-04-14 05:50+0000\n"
-"X-Generator: Launchpad (build 16564)\n"
+"X-Launchpad-Export-Date: 2013-05-03 06:29+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
#. module: hr_timesheet_sheet
#: field:hr.analytic.timesheet,sheet_id:0
@@ -76,6 +76,8 @@ msgid ""
"In order to create a timesheet for this employee, you must assign an "
"analytic journal to the employee, like 'Timesheet Journal'."
msgstr ""
+"Bu personel için bir zaman çizelgesi oluşturmak için, 'Zaman Çizelgesi "
+"Yevmiye' gibi, personel bir analitik yevmiyesi atamanız gerekir."
#. module: hr_timesheet_sheet
#: selection:hr.timesheet.report,month:0
@@ -151,7 +153,7 @@ msgstr "Onaylamış ZamanÇizelgesi bir girişi değiştiremezsiniz."
#: view:hr.timesheet.report:0
#: view:timesheet.report:0
msgid "Group by day of date"
-msgstr ""
+msgstr "Gün tarihine göre gurpla"
#. module: hr_timesheet_sheet
#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form_my_current
@@ -221,6 +223,12 @@ msgid ""
"the user and can be validated by his manager. If required, as defined on the "
"project, you can generate the invoices based on the timesheet."
msgstr ""
+"Eğer sisteme etkinliklerinizi kitap gibi olabilir ki benim Zaman Çizelgesi "
+"zaman çizelgesi açılır. Aynı formu, size katılmcı kayıt (Giriş / Çıkış "
+"Kayıt) ve farklı projeler üzerinde yapılan çalışma saatleri "
+"tanımlayabilirsiniz.Şirketce belirtilen süre sonunda, bir zaman çizelgesi, "
+"kullanıcı tarafından doğrulanır ve yönetici tarafından onaylanır. Gerekirse "
+"proje üzerinde tanımlanan, siz zaman çizelgesi göre faturalar oluşturabilir."
#. module: hr_timesheet_sheet
#: field:hr_timesheet_sheet.sheet,message_ids:0
@@ -258,19 +266,20 @@ msgstr "Hata!"
msgid ""
"Allow a difference of time between timesheets and attendances of (in hours)"
msgstr ""
+"Zaman çizelgeleri ve katılımcı (saat) arasında bir zaman farkı izin verin"
#. module: hr_timesheet_sheet
#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:99
#, python-format
msgid ""
"Please verify that the total difference of the sheet is lower than %.2f."
-msgstr ""
+msgstr "Sayfanın toplam fark %.2f daha düşük olduğunu kontrol edin."
#. module: hr_timesheet_sheet
#: model:ir.actions.act_window,name:hr_timesheet_sheet.action_timesheet_report_stat_all
#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_timesheet_report_all
msgid "Timesheet Sheet Analysis"
-msgstr ""
+msgstr "ZamanÇizelgesi Formu Analizi"
#. module: hr_timesheet_sheet
#: field:hr_timesheet_sheet.sheet.account,name:0
@@ -285,7 +294,7 @@ msgstr "Onaylama"
#. module: hr_timesheet_sheet
#: help:hr_timesheet_sheet.sheet,message_unread:0
msgid "If checked new messages require your attention."
-msgstr ""
+msgstr "İşaretliyse yeni mesajlar ilginizi gerektirir."
#. module: hr_timesheet_sheet
#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:69
@@ -295,11 +304,13 @@ msgid ""
"In order to create a timesheet for this employee, you must assign it to a "
"user."
msgstr ""
+"Bu personel için bir zaman çizelgesi oluşturmak için, bir kullanıcıya "
+"atamanız gerekir."
#. module: hr_timesheet_sheet
#: model:process.node,note:hr_timesheet_sheet.process_node_attendance0
msgid "Employee's timesheet entry"
-msgstr ""
+msgstr "PersonelZaman çizelgesi girişi"
#. module: hr_timesheet_sheet
#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:213
@@ -322,11 +333,13 @@ msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
+"Sohbetçi özetini (mesaj sayısı, ...) barındırır. Bu özet kanban "
+"görünümlerine eklenmek üzere doğrudan html biçimindedir."
#. module: hr_timesheet_sheet
#: field:timesheet.report,nbr:0
msgid "#Nbr"
-msgstr ""
+msgstr "#Nbr"
#. module: hr_timesheet_sheet
#: field:hr_timesheet_sheet.sheet,date_from:0
@@ -374,7 +387,7 @@ msgstr "İzleyiciler"
#. module: hr_timesheet_sheet
#: model:process.node,note:hr_timesheet_sheet.process_node_confirmedtimesheet0
msgid "State is 'confirmed'."
-msgstr ""
+msgstr "Durumu 'doğruladı' ."
#. module: hr_timesheet_sheet
#: field:hr_timesheet_sheet.sheet,employee_id:0
@@ -390,7 +403,7 @@ msgstr "Yeni"
#. module: hr_timesheet_sheet
#: model:ir.actions.act_window,name:hr_timesheet_sheet.action_week_attendance_graph
msgid "My Total Attendances By Week"
-msgstr ""
+msgstr "Hafta olarak Toplam katılımcılar"
#. module: hr_timesheet_sheet
#: field:hr_timesheet_sheet.sheet.account,total:0
@@ -401,7 +414,7 @@ msgstr "Toplam Zaman"
#: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_form
#: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form
msgid "Timesheets to Validate"
-msgstr ""
+msgstr "ZamanÇizelgeleri Doğrulama"
#. module: hr_timesheet_sheet
#: view:hr.timesheet.report:0
@@ -413,12 +426,12 @@ msgstr "Saatler"
#: view:hr.timesheet.report:0
#: view:timesheet.report:0
msgid "Group by month of date"
-msgstr ""
+msgstr "Ayın Günlerini gurupla"
#. module: hr_timesheet_sheet
#: model:process.transition,note:hr_timesheet_sheet.process_transition_validatetimesheet0
msgid "The project manager validates the timesheets."
-msgstr ""
+msgstr "Proje yöneticisi zamançizelgeleri doğrular."
#. module: hr_timesheet_sheet
#: selection:hr.timesheet.report,month:0
@@ -429,7 +442,7 @@ msgstr "Temmuz"
#. module: hr_timesheet_sheet
#: field:hr.config.settings,timesheet_range:0
msgid "Validate timesheets every"
-msgstr ""
+msgstr "ZamanÇizelgeleri her doğrulama"
#. module: hr_timesheet_sheet
#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:73
@@ -448,7 +461,7 @@ msgstr "Durumu"
#. module: hr_timesheet_sheet
#: model:process.node,name:hr_timesheet_sheet.process_node_workontask0
msgid "Work on Task"
-msgstr ""
+msgstr "Görev Çalışmaları"
#. module: hr_timesheet_sheet
#: selection:hr_timesheet_sheet.sheet,state:0
@@ -486,7 +499,7 @@ msgstr "# Toplam ZamanÇizelge"
#. module: hr_timesheet_sheet
#: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_current_open
msgid "hr.timesheet.current.open"
-msgstr ""
+msgstr "hr.timesheet.current.open"
#. module: hr_timesheet_sheet
#: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:71
@@ -495,6 +508,8 @@ msgid ""
"In order to create a timesheet for this employee, you must link the employee "
"to a product, like 'Consultant'."
msgstr ""
+"Bu personel için bir zaman çizelgesi oluşturmak için, 'Danışman' gibi, bir "
+"ürün için personel bağlantı gerekir."
#. module: hr_timesheet_sheet
#: selection:hr.timesheet.report,month:0
@@ -511,7 +526,7 @@ msgstr "Aralık"
#. module: hr_timesheet_sheet
#: view:hr.timesheet.current.open:0
msgid "It will open your current timesheet"
-msgstr ""
+msgstr "Bu mevcut zamançizelgesi açılacak"
#. module: hr_timesheet_sheet
#: selection:hr.config.settings,timesheet_range:0
@@ -527,12 +542,12 @@ msgstr "Ay"
#: view:timesheet.report:0
#: field:timesheet.report,total_diff:0
msgid "#Total Diff"
-msgstr ""
+msgstr "#Toplam Diff"
#. module: hr_timesheet_sheet
#: view:hr_timesheet_sheet.sheet:0
msgid "In Draft"
-msgstr ""
+msgstr "Taslak"
#. module: hr_timesheet_sheet
#: model:process.transition,name:hr_timesheet_sheet.process_transition_attendancetimesheet0
@@ -546,6 +561,8 @@ msgid ""
"In order to create a timesheet for this employee, you must link the employee "
"to a product."
msgstr ""
+"Bu çalışan için bir zaman çizelgesi oluşturmak için, bir ürün için çalışan "
+"bağlantı gerekir."
#. module: hr_timesheet_sheet
#. openerp-web
diff --git a/addons/l10n_multilang/i18n/hu.po b/addons/l10n_multilang/i18n/hu.po
index e9d0176893a..bc57a9e0503 100644
--- a/addons/l10n_multilang/i18n/hu.po
+++ b/addons/l10n_multilang/i18n/hu.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2012-02-08 01:06+0000\n"
-"PO-Revision-Date: 2013-04-26 13:29+0000\n"
+"PO-Revision-Date: 2013-05-03 10:00+0000\n"
"Last-Translator: krnkris \n"
"Language-Team: Hungarian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-04-27 06:34+0000\n"
-"X-Generator: Launchpad (build 16580)\n"
+"X-Launchpad-Export-Date: 2013-05-04 07:10+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_fiscal_position_template
@@ -66,7 +66,7 @@ msgstr "A leírás egyedi kell legyen minden vállalathoz!"
#. module: l10n_multilang
#: constraint:account.tax.code.template:0
msgid "Error ! You can not create recursive Tax Codes."
-msgstr "Hiba! Nem hozhat létre rekurzív adógyűjtőket."
+msgstr "Hiba! Nem hozhat létre rekurzív adókódokat."
#. module: l10n_multilang
#: model:ir.model,name:l10n_multilang.model_account_tax_template
diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js
index 4df49b6a273..527a57fa481 100644
--- a/addons/mail/static/src/js/mail.js
+++ b/addons/mail/static/src/js/mail.js
@@ -1709,7 +1709,10 @@ openerp.mail = function (session) {
* contain the menu widget and the the sub menu related of this wall
*/
do_reload_menu_emails: function () {
- var menu = this.getParent().getParent().__parentedParent.menu || this.getParent().getParent().getParent().getParent().__parentedParent.menu;
+ var menu = session.webclient.menu;
+ if (!menu) {
+ return $.when();
+ }
return menu.rpc("/web/menu/load_needaction", {'menu_ids': [menu.current_menu]}).done(function(r) {
menu.on_needaction_loaded(r);
}).then(function () {
diff --git a/addons/purchase/i18n/tr.po b/addons/purchase/i18n/tr.po
index c5359ac38d0..1040a206e64 100644
--- a/addons/purchase/i18n/tr.po
+++ b/addons/purchase/i18n/tr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2013-04-14 17:43+0000\n"
-"Last-Translator: Ayhan KIZILTAN \n"
+"PO-Revision-Date: 2013-05-02 09:01+0000\n"
+"Last-Translator: Ediz Duman \n"
"Language-Team: Turkish
\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-04-15 06:07+0000\n"
-"X-Generator: Launchpad (build 16564)\n"
+"X-Launchpad-Export-Date: 2013-05-03 06:29+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
#. module: purchase
#: model:res.groups,name:purchase.group_analytic_accounting
@@ -873,7 +873,7 @@ msgstr "Teklif İsteği:"
#: model:ir.actions.act_window,name:purchase.action_picking_tree4_picking_to_invoice
#: model:ir.ui.menu,name:purchase.menu_action_picking_tree4_picking_to_invoice
msgid "On Incoming Shipments"
-msgstr "Gelen Sevkiyatlar üzerine"
+msgstr "Gelen Sevkiyatlar Üzerinden"
#. module: purchase
#: report:purchase.order:0
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index 9b61ec2130c..b1f552b64cc 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -948,7 +948,8 @@ class purchase_order_line(osv.osv):
lang = res_partner.browse(cr, uid, partner_id).lang
context_partner.update( {'lang': lang, 'partner_id': partner_id} )
product = product_product.browse(cr, uid, product_id, context=context_partner)
- name = product.name
+ #call name_get() with partner in the context to eventually match name and description in the seller_ids field
+ dummy, name = product_product.name_get(cr, uid, product_id, context=context_partner)[0]
if product.description_purchase:
name += '\n' + product.description_purchase
res['value'].update({'name': name})
diff --git a/addons/sale/i18n/tr.po b/addons/sale/i18n/tr.po
index 055ab382e0c..35c858353ec 100644
--- a/addons/sale/i18n/tr.po
+++ b/addons/sale/i18n/tr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2013-04-26 19:02+0000\n"
-"Last-Translator: Ayhan KIZILTAN \n"
+"PO-Revision-Date: 2013-05-02 09:03+0000\n"
+"Last-Translator: Ediz Duman \n"
"Language-Team: Turkish
\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-04-27 06:34+0000\n"
-"X-Generator: Launchpad (build 16580)\n"
+"X-Launchpad-Export-Date: 2013-05-03 06:29+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
#. module: sale
#: model:res.groups,name:sale.group_analytic_accounting
@@ -42,7 +42,7 @@ msgstr "Genel özellik olarak tanımlanan hiç gelir hesabı yok."
#: model:ir.actions.act_window,name:sale.action_order_line_tree2
#: model:ir.ui.menu,name:sale.menu_invoicing_sales_order_lines
msgid "Order Lines to Invoice"
-msgstr "Faturalanacak sipariş kalemleri"
+msgstr "Faturalanacak Sipariş Kalemleri"
#. module: sale
#: field:sale.order,date_confirm:0
diff --git a/addons/stock/i18n/tr.po b/addons/stock/i18n/tr.po
index 37718edc333..d9b831081d5 100644
--- a/addons/stock/i18n/tr.po
+++ b/addons/stock/i18n/tr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2013-03-07 08:37+0000\n"
-"PO-Revision-Date: 2013-04-26 18:58+0000\n"
+"PO-Revision-Date: 2013-05-05 09:15+0000\n"
"Last-Translator: Ayhan KIZILTAN \n"
"Language-Team: Turkish
\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-04-27 06:34+0000\n"
-"X-Generator: Launchpad (build 16580)\n"
+"X-Launchpad-Export-Date: 2013-05-06 06:35+0000\n"
+"X-Generator: Launchpad (build 16598)\n"
#. module: stock
#: field:stock.inventory.line.split,line_exist_ids:0
@@ -4434,6 +4434,12 @@ msgid ""
"this quantity on assigned moves affects the product reservation, and should "
"be done with care."
msgstr ""
+"Bu envanter bakış açısından ürün miktarıdır. 'Yapıldı' durumundaki "
+"hareketler için, gerçekten hareket gören ürünlerin miktarıdır. Diğer "
+"hareketleri için, hareket görmesi planlanan ürünlerin miktarıdır. Bu "
+"miktarın azaltılması bir sipariş bakiyesi oluşturmaz. Atandığı hareketlerde "
+"bu miktarı değiştirmek ürün rezervasyonunu etkileyeceğinden çok dikkatli "
+"yapılmalıdır."
#. module: stock
#: help:stock.location,valuation_in_account_id:0
@@ -4892,6 +4898,10 @@ msgid ""
"specific valuation account set on the source location. When not set on the "
"product, the one from the product category is used."
msgstr ""
+"Gerçek zamanlı envanter değerlemesi yaparken, gelen bütün stok "
+"hareketlerinin karşıt günlük maddeleri, kaynak konumda özel bir değerleme "
+"hesabı tanımlanıncaya kadar bu hesaba işlenecektir. Ürüne tanımlanmamışsa, "
+"ürün kategorisinden bir tane kullanılır."
#. module: stock
#: view:stock.move:0
@@ -5197,6 +5207,9 @@ msgid ""
"would let a quantity of \"%s %s\" to ship and only roundings of \"%s %s\" is "
"accepted by the uom."
msgstr ""
+"İlk ürün ölçü biriminin yuvarlanması \"%s %s\" sevkiyatına izin vermez, "
+"çünkü ölçü birimi \"%s %s\" miktarın sevkiyatını ve yalnızca \"%s %s\" "
+"miktarın yuvarlanmasını kabul eder."
#. module: stock
#: help:stock.move,move_dest_id:0