diff --git a/addons/account/account.py b/addons/account/account.py
index 24b04ea6ae7..e5ee083290c 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -340,7 +340,7 @@ class account_account(osv.osv):
accounts = self.browse(cr, uid, ids, context=context)
for account in accounts:
level = 0
- parent_id = account.parent_id
+ parent_id = account.parent_id
while parent_id:
obj = self.browse(cr, uid, parent_id.id)
level += 1
@@ -370,16 +370,16 @@ class account_account(osv.osv):
'parent_id': fields.many2one('account.account', 'Parent', ondelete='cascade', domain=[('type','=','view')]),
'child_parent_ids': fields.one2many('account.account','parent_id','Children'),
'child_consol_ids': fields.many2many('account.account', 'account_account_consol_rel', 'child_id', 'parent_id', 'Consolidated Children'),
- 'child_id': fields.function(_get_child_ids, method=True, type='many2many', relation="account.account", string="Child Accounts"),
- 'balance': fields.function(__compute, digits_compute=dp.get_precision('Account'), method=True, string='Balance', multi='balance'),
- 'credit': fields.function(__compute, digits_compute=dp.get_precision('Account'), method=True, string='Credit', multi='balance'),
- 'debit': fields.function(__compute, digits_compute=dp.get_precision('Account'), method=True, string='Debit', multi='balance'),
+ 'child_id': fields.function(_get_child_ids, type='many2many', relation="account.account", string="Child Accounts"),
+ 'balance': fields.function(__compute, digits_compute=dp.get_precision('Account'), string='Balance', multi='balance'),
+ 'credit': fields.function(__compute, digits_compute=dp.get_precision('Account'), string='Credit', multi='balance'),
+ 'debit': fields.function(__compute, digits_compute=dp.get_precision('Account'), string='Debit', multi='balance'),
'reconcile': fields.boolean('Reconcile', help="Check this if the user is allowed to reconcile entries in this account."),
'shortcut': fields.char('Shortcut', size=12),
'tax_ids': fields.many2many('account.tax', 'account_account_tax_default_rel',
'account_id', 'tax_id', 'Default Taxes'),
'note': fields.text('Note'),
- 'company_currency_id': fields.function(_get_company_currency, method=True, type='many2one', relation='res.currency', string='Company Currency'),
+ 'company_currency_id': fields.function(_get_company_currency, type='many2one', relation='res.currency', string='Company Currency'),
'company_id': fields.many2one('res.company', 'Company', required=True),
'active': fields.boolean('Active', select=2, help="If the active field is set to False, it will allow you to hide the account without removing it."),
@@ -592,7 +592,7 @@ class account_journal_column(osv.osv):
_description = "Journal Column"
_columns = {
'name': fields.char('Column Name', size=64, required=True),
- 'field': fields.selection(_col_get, 'Field Name', method=True, required=True, size=32),
+ 'field': fields.selection(_col_get, 'Field Name', required=True, size=32),
'view_id': fields.many2one('account.journal.view', 'Journal View', select=True),
'sequence': fields.integer('Sequence', help="Gives the sequence order to journal column.", readonly=True),
'required': fields.boolean('Required'),
@@ -990,7 +990,7 @@ class account_journal_period(osv.osv):
'name': fields.char('Journal-Period Name', size=64, required=True),
'journal_id': fields.many2one('account.journal', 'Journal', required=True, ondelete="cascade"),
'period_id': fields.many2one('account.period', 'Period', required=True, ondelete="cascade"),
- 'icon': fields.function(_icon_get, method=True, string='Icon', type='char', size=32),
+ 'icon': fields.function(_icon_get, string='Icon', type='char', size=32),
'active': fields.boolean('Active', required=True, help="If the active field is set to False, it will allow you to hide the journal period without removing it."),
'state': fields.selection([('draft','Draft'), ('printed','Printed'), ('done','Done')], 'State', required=True, readonly=True,
help='When journal period is created. The state is \'Draft\'. If a report is printed it comes to \'Printed\' state. When all transactions are done, it comes in \'Done\' state.'),
@@ -1144,7 +1144,7 @@ class account_move(osv.osv):
'line_id': fields.one2many('account.move.line', 'move_id', 'Entries', states={'posted':[('readonly',True)]}),
'to_check': fields.boolean('To Review', help='Check this box if you are unsure of that journal entry and if you want to note it as \'to be reviewed\' by an accounting expert.'),
'partner_id': fields.related('line_id', 'partner_id', type="many2one", relation="res.partner", string="Partner", store=True),
- 'amount': fields.function(_amount_compute, method=True, string='Amount', digits_compute=dp.get_precision('Account'), type='float', fnct_search=_search_amount),
+ 'amount': fields.function(_amount_compute, string='Amount', digits_compute=dp.get_precision('Account'), type='float', fnct_search=_search_amount),
'date': fields.date('Date', required=True, states={'posted':[('readonly',True)]}, select=True),
'narration':fields.text('Narration'),
'company_id': fields.related('journal_id','company_id',type='many2one',relation='res.company',string='Company', store=True, readonly=True),
@@ -1336,6 +1336,7 @@ class account_move(osv.osv):
def _centralise(self, cr, uid, move, mode, context=None):
assert mode in ('debit', 'credit'), 'Invalid Mode' #to prevent sql injection
+ currency_obj = self.pool.get('res.currency')
if context is None:
context = {}
@@ -1386,6 +1387,34 @@ class account_move(osv.osv):
cr.execute('SELECT SUM(%s) FROM account_move_line WHERE move_id=%%s AND id!=%%s' % (mode,), (move.id, line_id2))
result = cr.fetchone()[0] or 0.0
cr.execute('update account_move_line set '+mode2+'=%s where id=%s', (result, line_id))
+
+ #adjust also the amount in currency if needed
+ cr.execute("select currency_id, sum(amount_currency) as amount_currency from account_move_line where move_id = %s and currency_id is not null group by currency_id", (move.id,))
+ for row in cr.dictfetchall():
+ currency_id = currency_obj.browse(cr, uid, row['currency_id'], context=context)
+ if not currency_obj.is_zero(cr, uid, currency_id, row['amount_currency']):
+ amount_currency = row['amount_currency'] * -1
+ account_id = amount_currency > 0 and move.journal_id.default_debit_account_id.id or move.journal_id.default_credit_account_id.id
+ cr.execute('select id from account_move_line where move_id=%s and centralisation=\'currency\' and currency_id = %slimit 1', (move.id, row['currency_id']))
+ res = cr.fetchone()
+ if res:
+ cr.execute('update account_move_line set amount_currency=%s , account_id=%s where id=%s', (amount_currency, account_id, res[0]))
+ else:
+ context.update({'journal_id': move.journal_id.id, 'period_id': move.period_id.id})
+ line_id = self.pool.get('account.move.line').create(cr, uid, {
+ 'name': _('Currency Adjustment'),
+ 'centralisation': 'currency',
+ 'account_id': account_id,
+ 'move_id': move.id,
+ 'journal_id': move.journal_id.id,
+ 'period_id': move.period_id.id,
+ 'date': move.period_id.date_stop,
+ 'debit': 0.0,
+ 'credit': 0.0,
+ 'currency_id': row['currency_id'],
+ 'amount_currency': amount_currency,
+ }, context)
+
return True
#
@@ -1622,8 +1651,8 @@ class account_tax_code(osv.osv):
'name': fields.char('Tax Case Name', size=64, required=True, translate=True),
'code': fields.char('Case Code', size=64),
'info': fields.text('Description'),
- 'sum': fields.function(_sum_year, method=True, string="Year Sum"),
- 'sum_period': fields.function(_sum_period, method=True, string="Period Sum"),
+ 'sum': fields.function(_sum_year, string="Year Sum"),
+ 'sum_period': fields.function(_sum_period, string="Period Sum"),
'parent_id': fields.many2one('account.tax.code', 'Parent Code', select=True),
'child_ids': fields.one2many('account.tax.code', 'parent_id', 'Child Codes'),
'line_ids': fields.one2many('account.move.line', 'tax_code_id', 'Lines'),
@@ -2478,7 +2507,7 @@ class account_tax_template(osv.osv):
'name': fields.char('Tax Name', size=64, required=True),
'sequence': fields.integer('Sequence', required=True, help="The sequence field is used to order the taxes lines from lower sequences to higher ones. The order is important if you have a tax that has several tax children. In this case, the evaluation order is important."),
'amount': fields.float('Amount', required=True, digits=(14,4), help="For Tax Type percent enter % ratio between 0-1."),
- 'type': fields.selection( [('percent','Percent'), ('fixed','Fixed'), ('none','None'), ('code','Python Code')], 'Tax Type', required=True),
+ 'type': fields.selection( [('percent','Percent'), ('fixed','Fixed'), ('none','None'), ('code','Python Code'), ('balance','Balance')], 'Tax Type', required=True),
'applicable_type': fields.selection( [('true','True'), ('code','Python Code')], 'Applicable Type', required=True, help="If not applicable (computed through a Python code), the tax won't appear on the invoice."),
'domain':fields.char('Domain', size=32, help="This field is only used if you develop your own module allowing developers to create specific taxes in a custom domain."),
'account_collected_id':fields.many2one('account.account.template', 'Invoice Tax Account'),
diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py
index 54776e5c7e6..f712cc9ab0c 100644
--- a/addons/account/account_bank_statement.py
+++ b/addons/account/account_bank_statement.py
@@ -137,7 +137,7 @@ class account_bank_statement(osv.osv):
states={'confirm':[('readonly',True)]}),
'balance_end_real': fields.float('Ending Balance', digits_compute=dp.get_precision('Account'),
states={'confirm':[('readonly', True)]}),
- 'balance_end': fields.function(_end_balance, method=True, string='Balance'),
+ 'balance_end': fields.function(_end_balance, string='Balance'),
'company_id': fields.related('journal_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True),
'line_ids': fields.one2many('account.bank.statement.line',
'statement_id', 'Statement lines',
@@ -149,7 +149,7 @@ class account_bank_statement(osv.osv):
states={'confirm': [('readonly', True)]}, readonly="1",
help='When new statement is created the state will be \'Draft\'. \
\n* And after getting confirmation from the bank it will be in \'Confirmed\' state.'),
- 'currency': fields.function(_currency, method=True, string='Currency',
+ 'currency': fields.function(_currency, string='Currency',
type='many2one', relation='res.currency'),
'account_id': fields.related('journal_id', 'default_debit_account_id', type='many2one', relation='account.account', string='Account used in this journal', readonly=True, help='used in statement reconciliation domain, but shouldn\'t be used elswhere.'),
}
diff --git a/addons/account/account_cash_statement.py b/addons/account/account_cash_statement.py
index 04e780ade30..982383ea2a7 100644
--- a/addons/account/account_cash_statement.py
+++ b/addons/account/account_cash_statement.py
@@ -58,7 +58,7 @@ class account_cashbox_line(osv.osv):
_columns = {
'pieces': fields.float('Values', digits_compute=dp.get_precision('Account')),
'number': fields.integer('Number'),
- 'subtotal': fields.function(_sub_total, method=True, string='Sub Total', type='float', digits_compute=dp.get_precision('Account')),
+ 'subtotal': fields.function(_sub_total, string='Sub Total', type='float', digits_compute=dp.get_precision('Account')),
'starting_id': fields.many2one('account.bank.statement', ondelete='cascade'),
'ending_id': fields.many2one('account.bank.statement', ondelete='cascade'),
}
@@ -223,10 +223,10 @@ class account_cash_statement(osv.osv):
[('draft', 'Draft'),
('confirm', 'Closed'),
('open','Open')], 'State', required=True, states={'confirm': [('readonly', True)]}, readonly="1"),
- 'total_entry_encoding': fields.function(_get_sum_entry_encoding, method=True, store=True, string="Cash Transaction", help="Total cash transactions"),
+ 'total_entry_encoding': fields.function(_get_sum_entry_encoding, store=True, string="Cash Transaction", help="Total cash transactions"),
'closing_date': fields.datetime("Closed On"),
- 'balance_end': fields.function(_end_balance, method=True, store=True, string='Balance', help="Closing balance based on Starting Balance and Cash Transactions"),
- 'balance_end_cash': fields.function(_balance_end_cash, method=True, store=True, string='Balance', help="Closing balance based on cashBox"),
+ 'balance_end': fields.function(_end_balance, store=True, string='Balance', help="Closing balance based on Starting Balance and Cash Transactions"),
+ 'balance_end_cash': fields.function(_balance_end_cash, store=True, string='Balance', help="Closing balance based on cashBox"),
'starting_details_ids': fields.one2many('account.cashbox.line', 'starting_id', string='Opening Cashbox'),
'ending_details_ids': fields.one2many('account.cashbox.line', 'ending_id', string='Closing Cashbox'),
'name': fields.char('Name', size=64, required=True, states={'draft': [('readonly', False)]}, readonly=True, help='if you give the Name other then /, its created Accounting Entries Move will be with same name as statement name. This allows the statement entries to have the same references than the statement itself'),
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index 0b17eb676f6..2733ecbd189 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -489,8 +489,8 @@ class account_move_line(osv.osv):
'reconcile_id': fields.many2one('account.move.reconcile', 'Reconcile', readonly=True, ondelete='set null', select=2),
'reconcile_partial_id': fields.many2one('account.move.reconcile', 'Partial Reconcile', readonly=True, ondelete='set null', select=2),
'amount_currency': fields.float('Amount Currency', help="The amount expressed in an optional other currency if it is a multi-currency entry.", digits_compute=dp.get_precision('Account')),
- 'amount_residual_currency': fields.function(_amount_residual, method=True, string='Residual Amount', multi="residual", help="The residual amount on a receivable or payable of a journal entry expressed in its currency (maybe different of the company currency)."),
- 'amount_residual': fields.function(_amount_residual, method=True, string='Residual Amount', multi="residual", help="The residual amount on a receivable or payable of a journal entry expressed in the company currency."),
+ 'amount_residual_currency': fields.function(_amount_residual, string='Residual Amount', multi="residual", help="The residual amount on a receivable or payable of a journal entry expressed in its currency (maybe different of the company currency)."),
+ 'amount_residual': fields.function(_amount_residual, string='Residual Amount', multi="residual", help="The residual amount on a receivable or payable of a journal entry expressed in the company currency."),
'currency_id': fields.many2one('res.currency', 'Currency', help="The optional other currency if it is a multi-currency entry."),
'period_id': fields.many2one('account.period', 'Period', required=True, select=2),
'journal_id': fields.many2one('account.journal', 'Journal', required=True, select=1),
@@ -503,14 +503,14 @@ class account_move_line(osv.osv):
}),
'date_created': fields.date('Creation date', select=True),
'analytic_lines': fields.one2many('account.analytic.line', 'move_id', 'Analytic lines'),
- 'centralisation': fields.selection([('normal','Normal'),('credit','Credit Centralisation'),('debit','Debit Centralisation')], 'Centralisation', size=6),
- 'balance': fields.function(_balance, fnct_search=_balance_search, method=True, string='Balance'),
+ 'centralisation': fields.selection([('normal','Normal'),('credit','Credit Centralisation'),('debit','Debit Centralisation'),('currency','Currency Adjustment')], 'Centralisation', size=8),
+ 'balance': fields.function(_balance, fnct_search=_balance_search, string='Balance'),
'state': fields.selection([('draft','Unbalanced'), ('valid','Valid')], 'State', readonly=True,
help='When new move line is created the state will be \'Draft\'.\n* When all the payments are done it will be in \'Valid\' state.'),
'tax_code_id': fields.many2one('account.tax.code', 'Tax Account', help="The Account can either be a base tax code or a tax code account."),
'tax_amount': fields.float('Tax/Base Amount', digits_compute=dp.get_precision('Account'), select=True, help="If the Tax account is a tax code account, this field will contain the taxed amount.If the tax account is base tax code, "\
"this field will contain the basic amount(without tax)."),
- 'invoice': fields.function(_invoice, method=True, string='Invoice',
+ 'invoice': fields.function(_invoice, string='Invoice',
type='many2one', relation='account.invoice', fnct_search=_invoice_search),
'account_tax_id':fields.many2one('account.tax', 'Tax'),
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account'),
diff --git a/addons/account/account_report.xml b/addons/account/account_report.xml
index beb23c9ebc3..2a22324d015 100644
--- a/addons/account/account_report.xml
+++ b/addons/account/account_report.xml
@@ -19,7 +19,6 @@
rml="account/report/account_print_invoice.rml"
string="Invoices"
attachment="(object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/',''))"
- attachment_use="1"
multi="True"/>
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index e0a355c35bf..d3d54a51918 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -897,6 +897,7 @@
+
@@ -909,6 +910,7 @@
+
diff --git a/addons/account/company.py b/addons/account/company.py
index a3886cdf14e..c7836e0128b 100644
--- a/addons/account/company.py
+++ b/addons/account/company.py
@@ -30,7 +30,6 @@ class res_company(osv.osv):
type='many2one',
relation='account.account',
string="Reserve and Profit/Loss Account",
- method=True,
view_load=True,
domain="[('type', '=', 'other')]",
help="This Account is used for transferring Profit/Loss(If It is Profit: Amount will be added, Loss : Amount will be deducted.), Which is calculated from Profit & Loss Report"),
diff --git a/addons/account/i18n/ar.po b/addons/account/i18n/ar.po
index 2f0e6798408..a4c12ebb0bb 100644
--- a/addons/account/i18n/ar.po
+++ b/addons/account/i18n/ar.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2011-01-19 11:12+0000\n"
-"Last-Translator: bamuhrez \n"
+"PO-Revision-Date: 2011-06-18 11:20+0000\n"
+"Last-Translator: Ahmed Mokhlis \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 05:04+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-06-19 04:37+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@@ -24,7 +24,7 @@ msgstr "الدفع عن طريق النظام"
#. module: account
#: view:account.journal:0
msgid "Other Configuration"
-msgstr ""
+msgstr "تعديلات أخرى"
#. module: account
#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
@@ -33,7 +33,7 @@ msgid "No End of year journal defined for the fiscal year"
msgstr "لايوجد نهاية لسجل السنة للعام المحاسبي"
#. module: account
-#: code:addons/account/account.py:506
+#: code:addons/account/account.py:516
#, python-format
msgid ""
"You cannot remove/deactivate an account which is set as a property to any "
@@ -65,7 +65,7 @@ msgid "Residual"
msgstr "متبقي"
#. module: account
-#: code:addons/account/invoice.py:785
+#: code:addons/account/invoice.py:793
#, python-format
msgid "Please define sequence on invoice journal"
msgstr ""
@@ -78,7 +78,7 @@ msgstr "خظأ! إن مدة الفترة أو الفترات غير صالحة "
#. module: account
#: field:account.analytic.line,currency_id:0
msgid "Account currency"
-msgstr ""
+msgstr "عملة الحساب"
#. module: account
#: view:account.tax:0
@@ -101,6 +101,7 @@ msgid ""
"The Profit and Loss report gives you an overview of your company profit and "
"loss in a single document"
msgstr ""
+"تقرير المكسب و الخسارة يعطيك فكرة عامة عن مكسب و خسارة شركتك في ملف واحد"
#. module: account
#: model:process.transition,name:account.process_transition_invoiceimport0
@@ -130,7 +131,7 @@ msgid "Accounting Entries-"
msgstr "المدخلات المحاسبية -"
#. module: account
-#: code:addons/account/account.py:1291
+#: code:addons/account/account.py:1305
#, python-format
msgid "You can not delete posted movement: \"%s\"!"
msgstr ""
@@ -174,7 +175,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1421
+#: code:addons/account/invoice.py:1436
#, python-format
msgid "Warning!"
msgstr "تحذير!"
@@ -226,7 +227,7 @@ msgid "account.tax"
msgstr ""
#. module: account
-#: code:addons/account/account.py:901
+#: code:addons/account/account.py:915
#, python-format
msgid ""
"No period defined for this date: %s !\n"
@@ -254,7 +255,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1210
+#: code:addons/account/invoice.py:1224
#, python-format
msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)"
msgstr ""
@@ -270,7 +271,7 @@ msgid "Belgian Reports"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1176
+#: code:addons/account/account_move_line.py:1182
#, python-format
msgid "You can not add/modify entries in a closed journal."
msgstr ""
@@ -308,7 +309,7 @@ msgid "St."
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:529
+#: code:addons/account/invoice.py:532
#, python-format
msgid "Invoice line account company does not match with invoice company."
msgstr ""
@@ -415,7 +416,7 @@ msgstr ""
#. module: account
#: field:account.journal,default_debit_account_id:0
msgid "Default Debit Account"
-msgstr ""
+msgstr "الحساب المدين الافتراضي"
#. module: account
#: view:account.move:0
@@ -550,7 +551,7 @@ msgid "Not reconciled transactions"
msgstr ""
#. module: account
-#: code:addons/account/account_cash_statement.py:348
+#: code:addons/account/account_cash_statement.py:349
#, python-format
msgid "CashBox Balance is not matching with Calculated Balance !"
msgstr ""
@@ -632,7 +633,7 @@ msgid "Tax Code Amount"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2779
+#: code:addons/account/account.py:2823
#: code:addons/account/installer.py:434
#, python-format
msgid "SAJ"
@@ -665,8 +666,8 @@ msgid "Journal Period"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:732
-#: code:addons/account/account_move_line.py:776
+#: code:addons/account/account_move_line.py:723
+#: code:addons/account/account_move_line.py:767
#, python-format
msgid "To reconcile the entries company should be the same for all entries"
msgstr ""
@@ -727,7 +728,7 @@ msgid "Analytic Entries by line"
msgstr ""
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:39
+#: code:addons/account/wizard/account_change_currency.py:38
#, python-format
msgid "You can only change currency for Draft Invoice !"
msgstr ""
@@ -828,7 +829,7 @@ msgid "Next Partner to reconcile"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1191
+#: code:addons/account/account_move_line.py:1197
#, python-format
msgid ""
"You can not do this modification on a confirmed entry ! Please note that you "
@@ -950,11 +951,11 @@ msgid "Code"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2083
+#: code:addons/account/account.py:2097
#: code:addons/account/account_bank_statement.py:350
-#: code:addons/account/account_move_line.py:170
+#: code:addons/account/account_move_line.py:169
#: code:addons/account/invoice.py:73
-#: code:addons/account/invoice.py:670
+#: code:addons/account/invoice.py:678
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "No Analytic Journal !"
@@ -1033,7 +1034,6 @@ msgstr ""
#. module: account
#: report:account.analytic.account.journal:0
-#: report:account.move.voucher:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
msgid "-"
@@ -1119,6 +1119,7 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
@@ -1126,7 +1127,7 @@ msgid "Entry Label"
msgstr ""
#. module: account
-#: code:addons/account/account.py:976
+#: code:addons/account/account.py:990
#, python-format
msgid "You can not modify/delete a journal with entries for this period !"
msgstr ""
@@ -1264,7 +1265,6 @@ msgid "Journal Items Analysis"
msgstr ""
#. module: account
-#: model:ir.actions.act_window,name:account.action_partner_all
#: model:ir.ui.menu,name:account.next_id_22
msgid "Partners"
msgstr ""
@@ -1294,7 +1294,7 @@ msgid "Central Journal"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1271
+#: code:addons/account/account_move_line.py:1277
#, python-format
msgid "You can not use this general account in this journal !"
msgstr ""
@@ -1387,7 +1387,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:815
+#: code:addons/account/invoice.py:823
#, python-format
msgid ""
"Cannot create the invoice !\n"
@@ -1546,7 +1546,6 @@ msgid "Separated Journal Sequences"
msgstr ""
#. module: account
-#: field:account.bank.statement,user_id:0
#: view:account.invoice:0
msgid "Responsible"
msgstr ""
@@ -1613,7 +1612,7 @@ msgid "Error! You cannot define overlapping fiscal years"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:808
+#: code:addons/account/account_move_line.py:799
#, python-format
msgid "The account is not defined to be reconciled !"
msgstr ""
@@ -1646,7 +1645,7 @@ msgid "Receivables & Payables"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:815
+#: code:addons/account/account_move_line.py:806
#, python-format
msgid "You have to provide an account for the write off entry !"
msgstr ""
@@ -1682,7 +1681,7 @@ msgid "Customer Ref:"
msgstr ""
#. module: account
-#: code:addons/account/account_cash_statement.py:328
+#: code:addons/account/account_cash_statement.py:329
#, python-format
msgid "User %s does not have rights to access %s journal !"
msgstr ""
@@ -1703,7 +1702,7 @@ msgid "Tax Declaration: Credit Notes"
msgstr ""
#. module: account
-#: code:addons/account/account.py:499
+#: code:addons/account/account.py:509
#, python-format
msgid "You cannot deactivate an account that contains account moves."
msgstr ""
@@ -1719,7 +1718,7 @@ msgid "You can not create move line on closed account."
msgstr ""
#. module: account
-#: code:addons/account/account.py:519
+#: code:addons/account/account.py:529
#, python-format
msgid ""
"You cannot change the type of account from 'Closed' to any other type which "
@@ -1988,7 +1987,7 @@ msgid " Journal"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1319
+#: code:addons/account/account.py:1333
#, python-format
msgid ""
"There is no default default debit account defined \n"
@@ -2040,7 +2039,7 @@ msgid "Description"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2844
+#: code:addons/account/account.py:2888
#: code:addons/account/installer.py:498
#, python-format
msgid "ECNJ"
@@ -2060,7 +2059,7 @@ msgid "Income Account"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:352
+#: code:addons/account/invoice.py:351
#, python-format
msgid "There is no Accounting Journal of type Sale/Purchase defined!"
msgstr ""
@@ -2071,6 +2070,7 @@ msgid "Accounting Properties"
msgstr ""
#. module: account
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.print.journal,sort_selection:0
msgid "Entries Sorted By"
@@ -2099,6 +2099,7 @@ msgstr ""
#: field:account.fiscalyear,name:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.journal.period,fiscalyear_id:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -2207,7 +2208,7 @@ msgid "Account Tax Code"
msgstr "كود الحساب الضريبي"
#. module: account
-#: code:addons/account/invoice.py:545
+#: code:addons/account/invoice.py:552
#, python-format
msgid ""
"Can't find any account journal of %s type for this company.\n"
@@ -2277,7 +2278,7 @@ msgid "Account Model Entries"
msgstr "إدخالات نماذج الحسابات"
#. module: account
-#: code:addons/account/account.py:2796
+#: code:addons/account/account.py:2840
#: code:addons/account/installer.py:454
#, python-format
msgid "EXJ"
@@ -2361,7 +2362,7 @@ msgid "Accounts"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:351
+#: code:addons/account/invoice.py:350
#, python-format
msgid "Configuration Error!"
msgstr ""
@@ -2373,13 +2374,12 @@ msgid "Average Price"
msgstr ""
#. module: account
-#: report:account.move.voucher:0
#: report:account.overdue:0
msgid "Date:"
msgstr ""
#. module: account
-#: code:addons/account/account.py:640
+#: code:addons/account/account.py:654
#, python-format
msgid ""
"You cannot modify company of this journal as its related record exist in "
@@ -2415,6 +2415,7 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.overdue:0
#: report:account.third_party_ledger:0
@@ -2523,16 +2524,16 @@ msgid "This wizard will create recurring accounting entries"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1181
+#: code:addons/account/account.py:1195
#, python-format
msgid "No sequence defined on the journal !"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2083
+#: code:addons/account/account.py:2097
#: code:addons/account/account_bank_statement.py:350
-#: code:addons/account/account_move_line.py:170
-#: code:addons/account/invoice.py:670
+#: code:addons/account/account_move_line.py:169
+#: code:addons/account/invoice.py:678
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
@@ -2692,7 +2693,7 @@ msgid "Analytic Entries"
msgstr ""
#. module: account
-#: code:addons/account/account.py:822
+#: code:addons/account/account.py:836
#, python-format
msgid ""
"No fiscal year defined for this date !\n"
@@ -2815,7 +2816,7 @@ msgid "BNK%s"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2906
+#: code:addons/account/account.py:2950
#: code:addons/account/installer.py:296
#, python-format
msgid "BNK"
@@ -2924,6 +2925,7 @@ msgstr ""
#: field:account.common.report,journal_ids:0
#: report:account.general.journal:0
#: field:account.general.journal,journal_ids:0
+#: report:account.general.ledger_landscape:0
#: view:account.journal.period:0
#: report:account.partner.balance:0
#: field:account.partner.balance,journal_ids:0
@@ -2984,7 +2986,7 @@ msgid "Starting Balance"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1284
+#: code:addons/account/invoice.py:1298
#, python-format
msgid "No Partner Defined !"
msgstr ""
@@ -3026,7 +3028,6 @@ msgstr ""
#: view:account.invoice.report:0
#: selection:account.invoice.report,state:0
#: selection:account.journal.period,state:0
-#: report:account.move.voucher:0
#: view:account.subscription:0
#: selection:account.subscription,state:0
#: selection:report.invoice.created,state:0
@@ -3078,7 +3079,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:370
+#: code:addons/account/invoice.py:373
#, python-format
msgid "Cannot delete invoice(s) that are already opened or paid !"
msgstr ""
@@ -3139,7 +3140,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account.py:522
+#: code:addons/account/account.py:532
#, python-format
msgid ""
"You cannot change the type of account from '%s' to '%s' type as it contains "
@@ -3148,6 +3149,7 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
msgid "Counterpart"
msgstr ""
@@ -3250,6 +3252,7 @@ msgstr ""
#: field:account.entries.report,date:0
#: selection:account.general.journal,filter:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.invoice.report,date:0
#: report:account.journal.period.print:0
#: view:account.move:0
@@ -3293,7 +3296,7 @@ msgid "Chart of Accounts Template"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2095
+#: code:addons/account/account.py:2109
#, python-format
msgid ""
"Maturity date of entry line generated by model line '%s' of model '%s' is "
@@ -3302,13 +3305,13 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:810
+#: code:addons/account/account_move_line.py:801
#, python-format
msgid "Some entries are already reconciled !"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1204
+#: code:addons/account/account.py:1218
#, python-format
msgid ""
"You cannot validate a Journal Entry unless all journal items are in same "
@@ -3428,7 +3431,7 @@ msgid "Analytic Items"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1128
+#: code:addons/account/account_move_line.py:1134
#, python-format
msgid "Unable to change tax !"
msgstr ""
@@ -3439,14 +3442,14 @@ msgid "#Entries"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1422
+#: code:addons/account/invoice.py:1437
#, python-format
msgid ""
"You selected an Unit of Measure which is not compatible with the product."
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:473
+#: code:addons/account/invoice.py:476
#, python-format
msgid ""
"The Payment Term of Supplier does not have Payment Term Lines(Computation) "
@@ -3740,7 +3743,7 @@ msgid "Acc.Type"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:714
+#: code:addons/account/invoice.py:722
#, python-format
msgid "Global taxes defined, but are not in invoice lines !"
msgstr ""
@@ -3799,7 +3802,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_analytic_line.py:91
+#: code:addons/account/account_analytic_line.py:90
#, python-format
msgid "There is no expense account defined for this product: \"%s\" (id:%d)"
msgstr ""
@@ -3974,7 +3977,7 @@ msgid "Credit Notes"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2067
+#: code:addons/account/account.py:2081
#: code:addons/account/wizard/account_use_model.py:69
#, python-format
msgid "Unable to find a valid period !"
@@ -4045,11 +4048,11 @@ msgid "Change"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1290
-#: code:addons/account/account.py:1318
-#: code:addons/account/account.py:1325
-#: code:addons/account/account_move_line.py:1055
-#: code:addons/account/invoice.py:896
+#: code:addons/account/account.py:1304
+#: code:addons/account/account.py:1332
+#: code:addons/account/account.py:1339
+#: code:addons/account/account_move_line.py:1061
+#: code:addons/account/invoice.py:904
#: code:addons/account/wizard/account_automatic_reconcile.py:152
#: code:addons/account/wizard/account_fiscalyear_close.py:78
#: code:addons/account/wizard/account_fiscalyear_close.py:81
@@ -4153,7 +4156,7 @@ msgid "You must define an analytic journal of type '%s' !"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1397
+#: code:addons/account/account.py:1411
#, python-format
msgid ""
"Couldn't create move with currency different from the secondary currency of "
@@ -4218,7 +4221,7 @@ msgid "Invoices"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:804
+#: code:addons/account/invoice.py:812
#, python-format
msgid ""
"Please verify the price of the invoice !\n"
@@ -4330,25 +4333,24 @@ msgid "Third Party (Country)"
msgstr ""
#. module: account
-#: code:addons/account/account.py:938
-#: code:addons/account/account.py:940
-#: code:addons/account/account.py:1181
-#: code:addons/account/account.py:1393
-#: code:addons/account/account.py:1397
-#: code:addons/account/account_cash_statement.py:249
-#: code:addons/account/account_move_line.py:780
-#: code:addons/account/account_move_line.py:803
-#: code:addons/account/account_move_line.py:805
-#: code:addons/account/account_move_line.py:808
-#: code:addons/account/account_move_line.py:810
-#: code:addons/account/account_move_line.py:1117
+#: code:addons/account/account.py:952
+#: code:addons/account/account.py:954
+#: code:addons/account/account.py:1195
+#: code:addons/account/account.py:1407
+#: code:addons/account/account.py:1411
+#: code:addons/account/account_cash_statement.py:250
+#: code:addons/account/account_move_line.py:771
+#: code:addons/account/account_move_line.py:794
+#: code:addons/account/account_move_line.py:796
+#: code:addons/account/account_move_line.py:799
+#: code:addons/account/account_move_line.py:801
+#: code:addons/account/account_move_line.py:1123
#: code:addons/account/report/common_report_header.py:92
-#: code:addons/account/wizard/account_change_currency.py:39
-#: code:addons/account/wizard/account_change_currency.py:60
-#: code:addons/account/wizard/account_change_currency.py:65
-#: code:addons/account/wizard/account_change_currency.py:71
+#: code:addons/account/wizard/account_change_currency.py:38
+#: code:addons/account/wizard/account_change_currency.py:59
+#: code:addons/account/wizard/account_change_currency.py:64
+#: code:addons/account/wizard/account_change_currency.py:70
#: code:addons/account/wizard/account_move_bank_reconcile.py:49
-#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_report_common.py:120
#: code:addons/account/wizard/account_report_common.py:126
#, python-format
@@ -4370,7 +4372,7 @@ msgid "Bank Details"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:720
+#: code:addons/account/invoice.py:728
#, python-format
msgid "Taxes missing !"
msgstr ""
@@ -4425,7 +4427,7 @@ msgid "Check Date not in the Period"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1210
+#: code:addons/account/account.py:1224
#, python-format
msgid ""
"You can not modify a posted entry of this journal !\n"
@@ -4444,7 +4446,7 @@ msgid "Child Tax Accounts"
msgstr ""
#. module: account
-#: code:addons/account/account.py:940
+#: code:addons/account/account.py:954
#, python-format
msgid "Start period should be smaller then End period"
msgstr ""
@@ -4474,6 +4476,7 @@ msgstr ""
#: report:account.general.journal:0
#: field:account.general.journal,target_move:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.move.journal,target_move:0
#: report:account.partner.balance:0
@@ -4556,7 +4559,7 @@ msgid "Line 1:"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1167
+#: code:addons/account/account.py:1181
#, python-format
msgid "Integrity Error !"
msgstr ""
@@ -4591,7 +4594,7 @@ msgstr ""
#: field:account.invoice.tax,account_id:0
#: field:account.move.line,tax_code_id:0
msgid "Tax Account"
-msgstr ""
+msgstr "حساب الضرائب"
#. module: account
#: view:account.automatic.reconcile:0
@@ -4702,7 +4705,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account.py:2067
+#: code:addons/account/account.py:2081
#: code:addons/account/wizard/account_use_model.py:69
#, python-format
msgid "No period found !"
@@ -4774,7 +4777,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account.py:2896
+#: code:addons/account/account.py:2940
#: code:addons/account/installer.py:283
#: code:addons/account/installer.py:295
#, python-format
@@ -4802,7 +4805,7 @@ msgid "Start of period"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1193
+#: code:addons/account/account_move_line.py:1199
#, python-format
msgid ""
"You can not do this modification on a reconciled entry ! Please note that "
@@ -4858,12 +4861,12 @@ msgstr ""
#. module: account
#: code:addons/account/account_bank_statement.py:331
-#: code:addons/account/invoice.py:405
-#: code:addons/account/invoice.py:505
-#: code:addons/account/invoice.py:520
-#: code:addons/account/invoice.py:528
-#: code:addons/account/invoice.py:545
-#: code:addons/account/invoice.py:1347
+#: code:addons/account/invoice.py:408
+#: code:addons/account/invoice.py:508
+#: code:addons/account/invoice.py:523
+#: code:addons/account/invoice.py:531
+#: code:addons/account/invoice.py:552
+#: code:addons/account/invoice.py:1361
#: code:addons/account/wizard/account_move_journal.py:63
#, python-format
msgid "Configuration Error !"
@@ -4940,7 +4943,7 @@ msgid "Sort By"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1326
+#: code:addons/account/account.py:1340
#, python-format
msgid ""
"There is no default default credit account defined \n"
@@ -4960,7 +4963,7 @@ msgstr ""
msgid ""
"Specified Journal does not have any account move entries in draft state for "
"this period"
-msgstr ""
+msgstr "اليومية المختارة لا تشمل أي حساب، لذا أضفها بالمسودات لهذه الفترة"
#. module: account
#: model:ir.actions.act_window,name:account.action_view_move_line
@@ -5087,7 +5090,7 @@ msgid "Generate Opening Entries"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:738
+#: code:addons/account/account_move_line.py:729
#, python-format
msgid "Already Reconciled!"
msgstr ""
@@ -5123,7 +5126,7 @@ msgstr ""
#. module: account
#: view:account.move.line.reconcile:0
-#: code:addons/account/account_move_line.py:830
+#: code:addons/account/account_move_line.py:821
#, python-format
msgid "Write-Off"
msgstr ""
@@ -5260,7 +5263,7 @@ msgid "# of Lines"
msgstr ""
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:60
+#: code:addons/account/wizard/account_change_currency.py:59
#, python-format
msgid "New currency is not confirured properly !"
msgstr ""
@@ -5285,14 +5288,14 @@ msgid "Filter by"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1131
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1137
+#: code:addons/account/account_move_line.py:1220
#, python-format
msgid "You can not use an inactive account!"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:803
+#: code:addons/account/account_move_line.py:794
#, python-format
msgid "Entries are not of the same account or already reconciled ! "
msgstr ""
@@ -5327,7 +5330,7 @@ msgstr ""
#. module: account
#: code:addons/account/account_bank_statement.py:391
-#: code:addons/account/invoice.py:370
+#: code:addons/account/invoice.py:373
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -5538,7 +5541,7 @@ msgid "Companies"
msgstr ""
#. module: account
-#: code:addons/account/account.py:532
+#: code:addons/account/account.py:546
#, python-format
msgid ""
"You cannot modify Company of account as its related record exist in Entry "
@@ -5804,9 +5807,9 @@ msgid "Optional create"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:406
-#: code:addons/account/invoice.py:506
-#: code:addons/account/invoice.py:1348
+#: code:addons/account/invoice.py:409
+#: code:addons/account/invoice.py:509
+#: code:addons/account/invoice.py:1362
#, python-format
msgid "Can not find account chart for this company, Please Create account."
msgstr ""
@@ -5955,8 +5958,8 @@ msgid "Analytic Entries Statistics"
msgstr ""
#. module: account
-#: code:addons/account/account_analytic_line.py:143
-#: code:addons/account/account_move_line.py:905
+#: code:addons/account/account_analytic_line.py:141
+#: code:addons/account/account_move_line.py:897
#, python-format
msgid "Entries: "
msgstr ""
@@ -5967,7 +5970,7 @@ msgid "Create manual recurring entries in a chosen journal."
msgstr ""
#. module: account
-#: code:addons/account/account.py:1393
+#: code:addons/account/account.py:1407
#, python-format
msgid "Couldn't create move between different companies"
msgstr ""
@@ -6005,7 +6008,7 @@ msgid "Total debit"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:781
+#: code:addons/account/account_move_line.py:772
#, python-format
msgid "Entry \"%s\" is not valid !"
msgstr ""
@@ -6069,30 +6072,31 @@ msgid " valuation: percent"
msgstr ""
#. module: account
-#: code:addons/account/account.py:499
-#: code:addons/account/account.py:501
-#: code:addons/account/account.py:822
-#: code:addons/account/account.py:901
-#: code:addons/account/account.py:976
-#: code:addons/account/account.py:1204
-#: code:addons/account/account.py:1210
-#: code:addons/account/account.py:2095
-#: code:addons/account/account.py:2333
-#: code:addons/account/account_analytic_line.py:90
-#: code:addons/account/account_analytic_line.py:99
+#: code:addons/account/account.py:509
+#: code:addons/account/account.py:511
+#: code:addons/account/account.py:836
+#: code:addons/account/account.py:915
+#: code:addons/account/account.py:990
+#: code:addons/account/account.py:1218
+#: code:addons/account/account.py:1224
+#: code:addons/account/account.py:2109
+#: code:addons/account/account.py:2357
+#: code:addons/account/account_analytic_line.py:89
+#: code:addons/account/account_analytic_line.py:98
#: code:addons/account/account_bank_statement.py:292
#: code:addons/account/account_bank_statement.py:305
#: code:addons/account/account_bank_statement.py:345
-#: code:addons/account/account_cash_statement.py:328
-#: code:addons/account/account_cash_statement.py:348
-#: code:addons/account/account_move_line.py:1176
-#: code:addons/account/account_move_line.py:1191
-#: code:addons/account/account_move_line.py:1193
-#: code:addons/account/invoice.py:785
-#: code:addons/account/invoice.py:815
-#: code:addons/account/invoice.py:1008
+#: code:addons/account/account_cash_statement.py:329
+#: code:addons/account/account_cash_statement.py:349
+#: code:addons/account/account_move_line.py:1182
+#: code:addons/account/account_move_line.py:1197
+#: code:addons/account/account_move_line.py:1199
+#: code:addons/account/invoice.py:793
+#: code:addons/account/invoice.py:823
+#: code:addons/account/invoice.py:1014
#: code:addons/account/wizard/account_invoice_refund.py:100
#: code:addons/account/wizard/account_invoice_refund.py:102
+#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_use_model.py:44
#, python-format
msgid "Error !"
@@ -6202,7 +6206,7 @@ msgid "Journal Select"
msgstr ""
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:65
+#: code:addons/account/wizard/account_change_currency.py:64
#, python-format
msgid "Currnt currency is not confirured properly !"
msgstr ""
@@ -6219,9 +6223,11 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: view:account.report.general.ledger:0
#: model:ir.actions.act_window,name:account.action_account_general_ledger_menu
#: model:ir.actions.report.xml,name:account.account_general_ledger
+#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape
#: model:ir.ui.menu,name:account.menu_general_ledger
msgid "General Ledger"
msgstr ""
@@ -6275,7 +6281,7 @@ msgid "Total:"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2050
+#: code:addons/account/account.py:2064
#, python-format
msgid ""
"You can specify year, month and date in the name of the model using the "
@@ -6305,7 +6311,7 @@ msgid "Child Codes"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:473
+#: code:addons/account/invoice.py:476
#: code:addons/account/wizard/account_invoice_refund.py:137
#, python-format
msgid "Data Insufficient !"
@@ -6462,7 +6468,7 @@ msgid "Lines"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:521
+#: code:addons/account/invoice.py:524
#, python-format
msgid ""
"Can not find account chart for this company in invoice line account, Please "
@@ -6630,7 +6636,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account.py:938
+#: code:addons/account/account.py:952
#, python-format
msgid "You should have chosen periods that belongs to the same company"
msgstr ""
@@ -6734,7 +6740,7 @@ msgid "Sign on Reports"
msgstr ""
#. module: account
-#: code:addons/account/account_cash_statement.py:249
+#: code:addons/account/account_cash_statement.py:250
#, python-format
msgid "You can not have two open register for the same journal"
msgstr ""
@@ -6763,7 +6769,6 @@ msgstr ""
#. module: account
#: report:account.invoice:0
#: view:account.invoice:0
-#: report:account.move.voucher:0
msgid "PRO-FORMA"
msgstr ""
@@ -6793,6 +6798,7 @@ msgstr ""
#. module: account
#: view:account.analytic.line:0
+#: field:account.bank.statement,user_id:0
#: view:account.journal:0
#: field:account.journal,user_id:0
#: view:analytic.entries.report:0
@@ -6818,13 +6824,13 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1271
+#: code:addons/account/account_move_line.py:1277
#, python-format
msgid "Bad account !"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2777
+#: code:addons/account/account.py:2821
#: code:addons/account/installer.py:432
#, python-format
msgid "Sales Journal"
@@ -6842,7 +6848,7 @@ msgid "Invoice Tax"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1246
+#: code:addons/account/account_move_line.py:1252
#, python-format
msgid "No piece number !"
msgstr ""
@@ -7079,17 +7085,17 @@ msgid "Fixed"
msgstr ""
#. module: account
-#: code:addons/account/account.py:506
-#: code:addons/account/account.py:519
-#: code:addons/account/account.py:522
+#: code:addons/account/account.py:516
+#: code:addons/account/account.py:529
#: code:addons/account/account.py:532
-#: code:addons/account/account.py:640
-#: code:addons/account/account.py:927
-#: code:addons/account/account_move_line.py:732
-#: code:addons/account/account_move_line.py:776
-#: code:addons/account/invoice.py:714
-#: code:addons/account/invoice.py:717
-#: code:addons/account/invoice.py:720
+#: code:addons/account/account.py:546
+#: code:addons/account/account.py:654
+#: code:addons/account/account.py:941
+#: code:addons/account/account_move_line.py:723
+#: code:addons/account/account_move_line.py:767
+#: code:addons/account/invoice.py:722
+#: code:addons/account/invoice.py:725
+#: code:addons/account/invoice.py:728
#, python-format
msgid "Warning !"
msgstr ""
@@ -7121,6 +7127,7 @@ msgstr ""
#: view:account.entries.report:0
#: field:account.entries.report,partner_id:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: view:account.invoice:0
#: field:account.invoice,partner_id:0
#: field:account.invoice.line,partner_id:0
@@ -7151,7 +7158,7 @@ msgid "Can not %s draft/proforma/cancel invoice."
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:787
+#: code:addons/account/invoice.py:795
#, python-format
msgid "No Invoice Lines !"
msgstr ""
@@ -7200,7 +7207,7 @@ msgid "Deferral Method"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:359
+#: code:addons/account/invoice.py:360
#, python-format
msgid "Invoice '%s' is paid."
msgstr ""
@@ -7261,7 +7268,7 @@ msgid "Associated Partner"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1284
+#: code:addons/account/invoice.py:1298
#, python-format
msgid "You must first select a partner !"
msgstr ""
@@ -7326,7 +7333,7 @@ msgid "Choose Fiscal Year"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2841
+#: code:addons/account/account.py:2885
#: code:addons/account/installer.py:495
#, python-format
msgid "Purchase Refund Journal"
@@ -7361,6 +7368,7 @@ msgstr ""
#: view:account.entries.report:0
#: field:account.entries.report,period_id:0
#: view:account.fiscalyear:0
+#: report:account.general.ledger_landscape:0
#: view:account.invoice:0
#: view:account.invoice.report:0
#: field:account.journal.period,period_id:0
@@ -7523,7 +7531,7 @@ msgid "Account Types"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:897
+#: code:addons/account/invoice.py:905
#, python-format
msgid "Cannot create invoice move on centralised journal"
msgstr ""
@@ -7573,6 +7581,7 @@ msgstr ""
#: report:account.account.balance:0
#: report:account.central.journal:0
#: report:account.general.journal:0
+#: report:account.general.ledger_landscape:0
#: report:account.partner.balance:0
msgid "Filter By"
msgstr ""
@@ -7611,7 +7620,7 @@ msgid "Payment Term Line"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2794
+#: code:addons/account/account.py:2838
#: code:addons/account/installer.py:452
#, python-format
msgid "Purchase Journal"
@@ -7778,8 +7787,8 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1131
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1137
+#: code:addons/account/account_move_line.py:1220
#, python-format
msgid "Bad account!"
msgstr ""
@@ -7790,7 +7799,7 @@ msgid "Keep empty for all open fiscal years"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1056
+#: code:addons/account/account_move_line.py:1062
#, python-format
msgid "The account move (%s) for centralisation has been confirmed!"
msgstr ""
@@ -7811,6 +7820,7 @@ msgstr ""
#: field:account.entries.report,currency_id:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.invoice,currency_id:0
#: field:account.invoice.report,currency_id:0
#: field:account.journal,currency:0
@@ -7983,14 +7993,14 @@ msgid "Period from"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2817
+#: code:addons/account/account.py:2861
#: code:addons/account/installer.py:476
#, python-format
msgid "Sales Refund Journal"
msgstr ""
#. module: account
-#: code:addons/account/account.py:927
+#: code:addons/account/account.py:941
#, python-format
msgid ""
"You cannot modify company of this period as its related record exist in "
@@ -8039,7 +8049,7 @@ msgid "Purchase Tax(%)"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:787
+#: code:addons/account/invoice.py:795
#, python-format
msgid "Please create some invoice lines."
msgstr ""
@@ -8055,7 +8065,7 @@ msgid "Configure Your Accounting Application"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2820
+#: code:addons/account/account.py:2864
#: code:addons/account/installer.py:479
#, python-format
msgid "SCNJ"
@@ -8093,6 +8103,7 @@ msgstr ""
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
@@ -8102,7 +8113,7 @@ msgid "Start Period"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2333
+#: code:addons/account/account.py:2357
#, python-format
msgid "Cannot locate parent code for template account!"
msgstr ""
@@ -8139,7 +8150,7 @@ msgid "Accountant validates the accounting entries coming from the invoice. "
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1008
+#: code:addons/account/invoice.py:1014
#, python-format
msgid ""
"You cannot cancel the Invoice which is Partially Paid! You need to "
@@ -8167,7 +8178,7 @@ msgid "You can not create move line on view account."
msgstr ""
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:71
+#: code:addons/account/wizard/account_change_currency.py:70
#, python-format
msgid "Current currency is not confirured properly !"
msgstr ""
@@ -8216,6 +8227,7 @@ msgstr ""
#: field:account.entries.report,balance:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.move.line,balance:0
#: report:account.partner.balance:0
#: selection:account.payment.term.line,value:0
@@ -8234,6 +8246,7 @@ msgstr ""
#. module: account
#: report:account.account.balance:0
+#: report:account.general.ledger_landscape:0
msgid "Display Account"
msgstr ""
@@ -8348,6 +8361,7 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.move.line,move_id:0
#: field:analytic.entries.report,move_id:0
@@ -8355,7 +8369,7 @@ msgid "Move"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1128
+#: code:addons/account/account_move_line.py:1134
#, python-format
msgid "You can not change the tax, you should remove and recreate lines !"
msgstr ""
@@ -8449,6 +8463,7 @@ msgstr ""
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
@@ -8492,7 +8507,7 @@ msgid "Account Subscription"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:717
+#: code:addons/account/invoice.py:725
#, python-format
msgid ""
"Tax base different !\n"
@@ -8519,6 +8534,7 @@ msgstr ""
#: report:account.general.journal:0
#: field:account.general.journal,date_from:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,date_start:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -8547,7 +8563,7 @@ msgid "Unreconciled"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:804
+#: code:addons/account/invoice.py:812
#, python-format
msgid "Bad total !"
msgstr ""
@@ -8605,13 +8621,13 @@ msgid "Active"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:354
+#: code:addons/account/invoice.py:353
#, python-format
msgid "Unknown Error"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1167
+#: code:addons/account/account.py:1181
#, python-format
msgid ""
"You cannot validate a non-balanced entry !\n"
@@ -8654,10 +8670,10 @@ msgstr ""
#: field:account.entries.report,credit:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.model.line,credit:0
#: field:account.move.line,credit:0
-#: report:account.move.voucher:0
#: report:account.partner.balance:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
@@ -8893,7 +8909,6 @@ msgstr ""
#: view:account.move:0
#: selection:account.move,state:0
#: view:account.move.line:0
-#: report:account.move.voucher:0
msgid "Posted"
msgstr ""
@@ -8912,6 +8927,7 @@ msgstr ""
#: report:account.general.journal:0
#: field:account.general.journal,date_to:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,date_stop:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -8965,7 +8981,7 @@ msgid "This is a model for recurring accounting entries"
msgstr ""
#. module: account
-#: code:addons/account/account_analytic_line.py:100
+#: code:addons/account/account_analytic_line.py:99
#, python-format
msgid "There is no income account defined for this product: \"%s\" (id:%d)"
msgstr ""
@@ -9115,8 +9131,8 @@ msgid "End period"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:738
-#: code:addons/account/account_move_line.py:815
+#: code:addons/account/account_move_line.py:729
+#: code:addons/account/account_move_line.py:806
#: code:addons/account/wizard/account_invoice_state.py:44
#: code:addons/account/wizard/account_invoice_state.py:68
#: code:addons/account/wizard/account_report_balance_sheet.py:70
@@ -9182,10 +9198,10 @@ msgstr ""
#: field:account.entries.report,debit:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.model.line,debit:0
#: field:account.move.line,debit:0
-#: report:account.move.voucher:0
#: report:account.partner.balance:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
@@ -9219,7 +9235,7 @@ msgid "Recurring"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:805
+#: code:addons/account/account_move_line.py:796
#, python-format
msgid "Entry is already reconciled"
msgstr ""
@@ -9240,7 +9256,7 @@ msgid "Range"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1246
+#: code:addons/account/account_move_line.py:1252
#, python-format
msgid ""
"Can not create an automatic sequence for this piece !\n"
@@ -9370,7 +9386,7 @@ msgid "Accounts Mapping"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:346
+#: code:addons/account/invoice.py:345
#, python-format
msgid "Invoice '%s' is waiting for validation."
msgstr ""
@@ -9395,7 +9411,7 @@ msgid "The income or expense account related to the selected product."
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1117
+#: code:addons/account/account_move_line.py:1123
#, python-format
msgid "The date of your Journal Entry is not in the defined period!"
msgstr ""
@@ -9600,7 +9616,7 @@ msgid "You must enter a period length that cannot be 0 or below !"
msgstr ""
#. module: account
-#: code:addons/account/account.py:501
+#: code:addons/account/account.py:511
#, python-format
msgid "You cannot remove an account which has account entries!. "
msgstr ""
diff --git a/addons/account/i18n/de.po b/addons/account/i18n/de.po
index 14a60c5bc7f..3d6a63f1bd9 100644
--- a/addons/account/i18n/de.po
+++ b/addons/account/i18n/de.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2011-04-21 05:36+0000\n"
+"PO-Revision-Date: 2011-07-02 08:42+0000\n"
"Last-Translator: Ferdinand @ Camptocamp \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 05:06+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-07-03 04:46+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@@ -34,7 +34,7 @@ msgstr ""
"Es ist kein Journal für den Jahresabschluss des Geschäftsjahres definiert"
#. module: account
-#: code:addons/account/account.py:506
+#: code:addons/account/account.py:516
#, python-format
msgid ""
"You cannot remove/deactivate an account which is set as a property to any "
@@ -68,7 +68,7 @@ msgid "Residual"
msgstr "Restwert"
#. module: account
-#: code:addons/account/invoice.py:785
+#: code:addons/account/invoice.py:793
#, python-format
msgid "Please define sequence on invoice journal"
msgstr "Bitte definieren Sie den Sequenzer für das Rechnungsjournal."
@@ -138,7 +138,7 @@ msgid "Accounting Entries-"
msgstr "Buchungssätze-"
#. module: account
-#: code:addons/account/account.py:1291
+#: code:addons/account/account.py:1305
#, python-format
msgid "You can not delete posted movement: \"%s\"!"
msgstr "Sie können keine gebuchten Vorgänge löschen: \"%s\"!"
@@ -184,7 +184,7 @@ msgstr ""
"angezeigt."
#. module: account
-#: code:addons/account/invoice.py:1421
+#: code:addons/account/invoice.py:1436
#, python-format
msgid "Warning!"
msgstr "Achtung!"
@@ -240,7 +240,7 @@ msgid "account.tax"
msgstr "account.tax"
#. module: account
-#: code:addons/account/account.py:901
+#: code:addons/account/account.py:915
#, python-format
msgid ""
"No period defined for this date: %s !\n"
@@ -272,7 +272,7 @@ msgstr ""
"Rechnung erscheinen sollen"
#. module: account
-#: code:addons/account/invoice.py:1210
+#: code:addons/account/invoice.py:1224
#, python-format
msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)"
msgstr ""
@@ -290,7 +290,7 @@ msgid "Belgian Reports"
msgstr "Auswertungen für Belgien"
#. module: account
-#: code:addons/account/account_move_line.py:1176
+#: code:addons/account/account_move_line.py:1182
#, python-format
msgid "You can not add/modify entries in a closed journal."
msgstr ""
@@ -330,7 +330,7 @@ msgid "St."
msgstr "Beleg"
#. module: account
-#: code:addons/account/invoice.py:529
+#: code:addons/account/invoice.py:532
#, python-format
msgid "Invoice line account company does not match with invoice company."
msgstr ""
@@ -594,7 +594,7 @@ msgid "Not reconciled transactions"
msgstr "Nicht ausgeglichene Posten"
#. module: account
-#: code:addons/account/account_cash_statement.py:348
+#: code:addons/account/account_cash_statement.py:349
#, python-format
msgid "CashBox Balance is not matching with Calculated Balance !"
msgstr "Kassenbestand passt nicht zu Kontensaldo"
@@ -679,7 +679,7 @@ msgid "Tax Code Amount"
msgstr "Steuerbetrag"
#. module: account
-#: code:addons/account/account.py:2779
+#: code:addons/account/account.py:2823
#: code:addons/account/installer.py:434
#, python-format
msgid "SAJ"
@@ -712,8 +712,8 @@ msgid "Journal Period"
msgstr "Journal Periode"
#. module: account
-#: code:addons/account/account_move_line.py:732
-#: code:addons/account/account_move_line.py:776
+#: code:addons/account/account_move_line.py:723
+#: code:addons/account/account_move_line.py:767
#, python-format
msgid "To reconcile the entries company should be the same for all entries"
msgstr ""
@@ -776,7 +776,7 @@ msgid "Analytic Entries by line"
msgstr "Analytische Buchungsbelege"
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:39
+#: code:addons/account/wizard/account_change_currency.py:38
#, python-format
msgid "You can only change currency for Draft Invoice !"
msgstr "Sie können die Währung nur bei Rechnungen"
@@ -880,7 +880,7 @@ msgid "Next Partner to reconcile"
msgstr "Weiterer Partner für automat. Ausgleich"
#. module: account
-#: code:addons/account/account_move_line.py:1191
+#: code:addons/account/account_move_line.py:1197
#, python-format
msgid ""
"You can not do this modification on a confirmed entry ! Please note that you "
@@ -1009,11 +1009,11 @@ msgid "Code"
msgstr "Kurzbezeichnung"
#. module: account
-#: code:addons/account/account.py:2083
+#: code:addons/account/account.py:2097
#: code:addons/account/account_bank_statement.py:350
-#: code:addons/account/account_move_line.py:170
+#: code:addons/account/account_move_line.py:169
#: code:addons/account/invoice.py:73
-#: code:addons/account/invoice.py:670
+#: code:addons/account/invoice.py:678
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "No Analytic Journal !"
@@ -1095,7 +1095,6 @@ msgstr "GuV (Aufwendungen)"
#. module: account
#: report:account.analytic.account.journal:0
-#: report:account.move.voucher:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
msgid "-"
@@ -1186,6 +1185,7 @@ msgstr "# Transaktionen"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
@@ -1193,7 +1193,7 @@ msgid "Entry Label"
msgstr "Buchungstext"
#. module: account
-#: code:addons/account/account.py:976
+#: code:addons/account/account.py:990
#, python-format
msgid "You can not modify/delete a journal with entries for this period !"
msgstr ""
@@ -1333,7 +1333,6 @@ msgid "Journal Items Analysis"
msgstr "Analyse der Journaleinträge"
#. module: account
-#: model:ir.actions.act_window,name:account.action_partner_all
#: model:ir.ui.menu,name:account.next_id_22
msgid "Partners"
msgstr "Partner"
@@ -1363,7 +1362,7 @@ msgid "Central Journal"
msgstr "Zentrales Journal"
#. module: account
-#: code:addons/account/account_move_line.py:1271
+#: code:addons/account/account_move_line.py:1277
#, python-format
msgid "You can not use this general account in this journal !"
msgstr "Sie können dieses Sachkonto nicht in diesem Journal einsetzen."
@@ -1460,7 +1459,7 @@ msgid ""
msgstr "Beispiel: 14 Tage 2% Skonto, 30 Tage Netto"
#. module: account
-#: code:addons/account/invoice.py:815
+#: code:addons/account/invoice.py:823
#, python-format
msgid ""
"Cannot create the invoice !\n"
@@ -1631,7 +1630,6 @@ msgid "Separated Journal Sequences"
msgstr "Unterschiedliche Journal Sequenzer"
#. module: account
-#: field:account.bank.statement,user_id:0
#: view:account.invoice:0
msgid "Responsible"
msgstr "Mitarbeiter"
@@ -1705,7 +1703,7 @@ msgid "Error! You cannot define overlapping fiscal years"
msgstr "Fehler ! Sie können keine Überschneidungen bei Geschäftsjahren haben"
#. module: account
-#: code:addons/account/account_move_line.py:808
+#: code:addons/account/account_move_line.py:799
#, python-format
msgid "The account is not defined to be reconciled !"
msgstr ""
@@ -1742,7 +1740,7 @@ msgid "Receivables & Payables"
msgstr "Debitoren & Kreditoren"
#. module: account
-#: code:addons/account/account_move_line.py:815
+#: code:addons/account/account_move_line.py:806
#, python-format
msgid "You have to provide an account for the write off entry !"
msgstr "Sie müssen ein Konto für die Forderungsabschreibung hinterlegen!"
@@ -1778,7 +1776,7 @@ msgid "Customer Ref:"
msgstr "Kundenreferenz:"
#. module: account
-#: code:addons/account/account_cash_statement.py:328
+#: code:addons/account/account_cash_statement.py:329
#, python-format
msgid "User %s does not have rights to access %s journal !"
msgstr "Benutzer %s hat keinen Zugriff auf das %s Journal!"
@@ -1799,7 +1797,7 @@ msgid "Tax Declaration: Credit Notes"
msgstr "Steuermeldung: Ausweis von Gutschriften"
#. module: account
-#: code:addons/account/account.py:499
+#: code:addons/account/account.py:509
#, python-format
msgid "You cannot deactivate an account that contains account moves."
msgstr "Sie können kein Konto mit vorhandenen Buchungen deaktivieren."
@@ -1816,7 +1814,7 @@ msgstr ""
"Sie können keine Buchung auf einem bereits abgeschlossenen Konto vornehmen."
#. module: account
-#: code:addons/account/account.py:519
+#: code:addons/account/account.py:529
#, python-format
msgid ""
"You cannot change the type of account from 'Closed' to any other type which "
@@ -2101,7 +2099,7 @@ msgid " Journal"
msgstr " Journal"
#. module: account
-#: code:addons/account/account.py:1319
+#: code:addons/account/account.py:1333
#, python-format
msgid ""
"There is no default default debit account defined \n"
@@ -2164,7 +2162,7 @@ msgid "Description"
msgstr "Buchungstext"
#. module: account
-#: code:addons/account/account.py:2844
+#: code:addons/account/account.py:2888
#: code:addons/account/installer.py:498
#, python-format
msgid "ECNJ"
@@ -2184,7 +2182,7 @@ msgid "Income Account"
msgstr "Erlöskonto"
#. module: account
-#: code:addons/account/invoice.py:352
+#: code:addons/account/invoice.py:351
#, python-format
msgid "There is no Accounting Journal of type Sale/Purchase defined!"
msgstr ""
@@ -2197,6 +2195,7 @@ msgid "Accounting Properties"
msgstr "Finanzbuchhaltung Eigenschaften"
#. module: account
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.print.journal,sort_selection:0
msgid "Entries Sorted By"
@@ -2225,6 +2224,7 @@ msgstr "Vorlage f. Produkte"
#: field:account.fiscalyear,name:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.journal.period,fiscalyear_id:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -2333,7 +2333,7 @@ msgid "Account Tax Code"
msgstr "Umsatzsteuer"
#. module: account
-#: code:addons/account/invoice.py:545
+#: code:addons/account/invoice.py:552
#, python-format
msgid ""
"Can't find any account journal of %s type for this company.\n"
@@ -2415,7 +2415,7 @@ msgid "Account Model Entries"
msgstr "Buchungsvorlage"
#. module: account
-#: code:addons/account/account.py:2796
+#: code:addons/account/account.py:2840
#: code:addons/account/installer.py:454
#, python-format
msgid "EXJ"
@@ -2507,7 +2507,7 @@ msgid "Accounts"
msgstr "Finanzkonten"
#. module: account
-#: code:addons/account/invoice.py:351
+#: code:addons/account/invoice.py:350
#, python-format
msgid "Configuration Error!"
msgstr "Konfigurationsfehler !"
@@ -2519,13 +2519,12 @@ msgid "Average Price"
msgstr "Durchschnittspreis"
#. module: account
-#: report:account.move.voucher:0
#: report:account.overdue:0
msgid "Date:"
msgstr "Datum:"
#. module: account
-#: code:addons/account/account.py:640
+#: code:addons/account/account.py:654
#, python-format
msgid ""
"You cannot modify company of this journal as its related record exist in "
@@ -2563,6 +2562,7 @@ msgstr "Rabatt (%)"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.overdue:0
#: report:account.third_party_ledger:0
@@ -2679,16 +2679,16 @@ msgid "This wizard will create recurring accounting entries"
msgstr "Diese Assistent erzeugt wiederkehrende Buchungen."
#. module: account
-#: code:addons/account/account.py:1181
+#: code:addons/account/account.py:1195
#, python-format
msgid "No sequence defined on the journal !"
msgstr "Kein Sequenzer für dieses Journal definiert !"
#. module: account
-#: code:addons/account/account.py:2083
+#: code:addons/account/account.py:2097
#: code:addons/account/account_bank_statement.py:350
-#: code:addons/account/account_move_line.py:170
-#: code:addons/account/invoice.py:670
+#: code:addons/account/account_move_line.py:169
+#: code:addons/account/invoice.py:678
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
@@ -2862,7 +2862,7 @@ msgid "Analytic Entries"
msgstr "Analytische Buchungen"
#. module: account
-#: code:addons/account/account.py:822
+#: code:addons/account/account.py:836
#, python-format
msgid ""
"No fiscal year defined for this date !\n"
@@ -2994,7 +2994,7 @@ msgid "BNK%s"
msgstr "BNK%s"
#. module: account
-#: code:addons/account/account.py:2906
+#: code:addons/account/account.py:2950
#: code:addons/account/installer.py:296
#, python-format
msgid "BNK"
@@ -3119,6 +3119,7 @@ msgstr "Leer lassen um Aufwandskonto zu verwenden"
#: field:account.common.report,journal_ids:0
#: report:account.general.journal:0
#: field:account.general.journal,journal_ids:0
+#: report:account.general.ledger_landscape:0
#: view:account.journal.period:0
#: report:account.partner.balance:0
#: field:account.partner.balance,journal_ids:0
@@ -3179,7 +3180,7 @@ msgid "Starting Balance"
msgstr "Anfangssaldo"
#. module: account
-#: code:addons/account/invoice.py:1284
+#: code:addons/account/invoice.py:1298
#, python-format
msgid "No Partner Defined !"
msgstr "Kein Partner definiert!"
@@ -3223,7 +3224,6 @@ msgstr "Journal:"
#: view:account.invoice.report:0
#: selection:account.invoice.report,state:0
#: selection:account.journal.period,state:0
-#: report:account.move.voucher:0
#: view:account.subscription:0
#: selection:account.subscription,state:0
#: selection:report.invoice.created,state:0
@@ -3277,7 +3277,7 @@ msgstr ""
"bedeutet, dass Sie Ihre einzelnen Buchungen nicht ändern können."
#. module: account
-#: code:addons/account/invoice.py:370
+#: code:addons/account/invoice.py:373
#, python-format
msgid "Cannot delete invoice(s) that are already opened or paid !"
msgstr "Kann offene oder bezahlte Rechnungen nicht löschen"
@@ -3340,7 +3340,7 @@ msgstr ""
"'Abgebrochen' oder 'Erledigt' Status ist."
#. module: account
-#: code:addons/account/account.py:522
+#: code:addons/account/account.py:532
#, python-format
msgid ""
"You cannot change the type of account from '%s' to '%s' type as it contains "
@@ -3351,6 +3351,7 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
msgid "Counterpart"
msgstr "Gegenbuchung"
@@ -3455,6 +3456,7 @@ msgstr "(Wenn kein Geschäftsjahr ausgewählt wird, werden alle genommen)"
#: field:account.entries.report,date:0
#: selection:account.general.journal,filter:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.invoice.report,date:0
#: report:account.journal.period.print:0
#: view:account.move:0
@@ -3498,7 +3500,7 @@ msgid "Chart of Accounts Template"
msgstr "Vorlage Kontenplan"
#. module: account
-#: code:addons/account/account.py:2095
+#: code:addons/account/account.py:2109
#, python-format
msgid ""
"Maturity date of entry line generated by model line '%s' of model '%s' is "
@@ -3510,13 +3512,13 @@ msgstr ""
"Bitte ordnen Sie dem Partner eine Zahlungsbedingungen zu."
#. module: account
-#: code:addons/account/account_move_line.py:810
+#: code:addons/account/account_move_line.py:801
#, python-format
msgid "Some entries are already reconciled !"
msgstr "Einige Einträge wurden bereits ausgeglichen!"
#. module: account
-#: code:addons/account/account.py:1204
+#: code:addons/account/account.py:1218
#, python-format
msgid ""
"You cannot validate a Journal Entry unless all journal items are in same "
@@ -3644,7 +3646,7 @@ msgid "Analytic Items"
msgstr "Analytische Buchungen"
#. module: account
-#: code:addons/account/account_move_line.py:1128
+#: code:addons/account/account_move_line.py:1134
#, python-format
msgid "Unable to change tax !"
msgstr "Die Steuer kann nicht geändert werden!"
@@ -3655,7 +3657,7 @@ msgid "#Entries"
msgstr "# Buchungen"
#. module: account
-#: code:addons/account/invoice.py:1422
+#: code:addons/account/invoice.py:1437
#, python-format
msgid ""
"You selected an Unit of Measure which is not compatible with the product."
@@ -3663,7 +3665,7 @@ msgstr ""
"Sie haben eine Mengeneinheit gewählt, die nicht kompatibel zum Produkt ist."
#. module: account
-#: code:addons/account/invoice.py:473
+#: code:addons/account/invoice.py:476
#, python-format
msgid ""
"The Payment Term of Supplier does not have Payment Term Lines(Computation) "
@@ -3977,7 +3979,7 @@ msgid "Acc.Type"
msgstr "Kontotyp"
#. module: account
-#: code:addons/account/invoice.py:714
+#: code:addons/account/invoice.py:722
#, python-format
msgid "Global taxes defined, but are not in invoice lines !"
msgstr ""
@@ -4042,7 +4044,7 @@ msgstr ""
"Status unmittelbar 'Gebucht' ist."
#. module: account
-#: code:addons/account/account_analytic_line.py:91
+#: code:addons/account/account_analytic_line.py:90
#, python-format
msgid "There is no expense account defined for this product: \"%s\" (id:%d)"
msgstr ""
@@ -4224,7 +4226,7 @@ msgid "Credit Notes"
msgstr "Gutschrift"
#. module: account
-#: code:addons/account/account.py:2067
+#: code:addons/account/account.py:2081
#: code:addons/account/wizard/account_use_model.py:69
#, python-format
msgid "Unable to find a valid period !"
@@ -4297,11 +4299,11 @@ msgid "Change"
msgstr "Ändere Währung"
#. module: account
-#: code:addons/account/account.py:1290
-#: code:addons/account/account.py:1318
-#: code:addons/account/account.py:1325
-#: code:addons/account/account_move_line.py:1055
-#: code:addons/account/invoice.py:896
+#: code:addons/account/account.py:1304
+#: code:addons/account/account.py:1332
+#: code:addons/account/account.py:1339
+#: code:addons/account/account_move_line.py:1061
+#: code:addons/account/invoice.py:904
#: code:addons/account/wizard/account_automatic_reconcile.py:152
#: code:addons/account/wizard/account_fiscalyear_close.py:78
#: code:addons/account/wizard/account_fiscalyear_close.py:81
@@ -4408,7 +4410,7 @@ msgid "You must define an analytic journal of type '%s' !"
msgstr "Ein Analytisches Journal vom Typ '%s' muss definiert werden"
#. module: account
-#: code:addons/account/account.py:1397
+#: code:addons/account/account.py:1411
#, python-format
msgid ""
"Couldn't create move with currency different from the secondary currency of "
@@ -4480,7 +4482,7 @@ msgid "Invoices"
msgstr "Rechnung"
#. module: account
-#: code:addons/account/invoice.py:804
+#: code:addons/account/invoice.py:812
#, python-format
msgid ""
"Please verify the price of the invoice !\n"
@@ -4594,25 +4596,24 @@ msgid "Third Party (Country)"
msgstr "Drittwelt (Land)"
#. module: account
-#: code:addons/account/account.py:938
-#: code:addons/account/account.py:940
-#: code:addons/account/account.py:1181
-#: code:addons/account/account.py:1393
-#: code:addons/account/account.py:1397
-#: code:addons/account/account_cash_statement.py:249
-#: code:addons/account/account_move_line.py:780
-#: code:addons/account/account_move_line.py:803
-#: code:addons/account/account_move_line.py:805
-#: code:addons/account/account_move_line.py:808
-#: code:addons/account/account_move_line.py:810
-#: code:addons/account/account_move_line.py:1117
+#: code:addons/account/account.py:952
+#: code:addons/account/account.py:954
+#: code:addons/account/account.py:1195
+#: code:addons/account/account.py:1407
+#: code:addons/account/account.py:1411
+#: code:addons/account/account_cash_statement.py:250
+#: code:addons/account/account_move_line.py:771
+#: code:addons/account/account_move_line.py:794
+#: code:addons/account/account_move_line.py:796
+#: code:addons/account/account_move_line.py:799
+#: code:addons/account/account_move_line.py:801
+#: code:addons/account/account_move_line.py:1123
#: code:addons/account/report/common_report_header.py:92
-#: code:addons/account/wizard/account_change_currency.py:39
-#: code:addons/account/wizard/account_change_currency.py:60
-#: code:addons/account/wizard/account_change_currency.py:65
-#: code:addons/account/wizard/account_change_currency.py:71
+#: code:addons/account/wizard/account_change_currency.py:38
+#: code:addons/account/wizard/account_change_currency.py:59
+#: code:addons/account/wizard/account_change_currency.py:64
+#: code:addons/account/wizard/account_change_currency.py:70
#: code:addons/account/wizard/account_move_bank_reconcile.py:49
-#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_report_common.py:120
#: code:addons/account/wizard/account_report_common.py:126
#, python-format
@@ -4634,7 +4635,7 @@ msgid "Bank Details"
msgstr "Bankkonto Details"
#. module: account
-#: code:addons/account/invoice.py:720
+#: code:addons/account/invoice.py:728
#, python-format
msgid "Taxes missing !"
msgstr "Steuerkonfiguration fehlt!"
@@ -4694,7 +4695,7 @@ msgid "Check Date not in the Period"
msgstr "Prüfe auf ein Datum nicht in Periode"
#. module: account
-#: code:addons/account/account.py:1210
+#: code:addons/account/account.py:1224
#, python-format
msgid ""
"You can not modify a posted entry of this journal !\n"
@@ -4716,7 +4717,7 @@ msgid "Child Tax Accounts"
msgstr "untergeordnete Steuerkonten"
#. module: account
-#: code:addons/account/account.py:940
+#: code:addons/account/account.py:954
#, python-format
msgid "Start period should be smaller then End period"
msgstr "Beginn der Periode sollte kleiner sein als Ende der Periode"
@@ -4746,6 +4747,7 @@ msgstr "Saldo (Anal.)"
#: report:account.general.journal:0
#: field:account.general.journal,target_move:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.move.journal,target_move:0
#: report:account.partner.balance:0
@@ -4830,7 +4832,7 @@ msgid "Line 1:"
msgstr "Zeile 1:"
#. module: account
-#: code:addons/account/account.py:1167
+#: code:addons/account/account.py:1181
#, python-format
msgid "Integrity Error !"
msgstr "Integritätsfehler!"
@@ -4980,7 +4982,7 @@ msgstr ""
"einen vorher vorhandenen Partner erstellen."
#. module: account
-#: code:addons/account/account.py:2067
+#: code:addons/account/account.py:2081
#: code:addons/account/wizard/account_use_model.py:69
#, python-format
msgid "No period found !"
@@ -5057,7 +5059,7 @@ msgstr ""
"->> Fälligkeitstag = 28.2"
#. module: account
-#: code:addons/account/account.py:2896
+#: code:addons/account/account.py:2940
#: code:addons/account/installer.py:283
#: code:addons/account/installer.py:295
#, python-format
@@ -5085,7 +5087,7 @@ msgid "Start of period"
msgstr "Start Periode"
#. module: account
-#: code:addons/account/account_move_line.py:1193
+#: code:addons/account/account_move_line.py:1199
#, python-format
msgid ""
"You can not do this modification on a reconciled entry ! Please note that "
@@ -5144,12 +5146,12 @@ msgstr "Journal Eröffnungsbuchungen"
#. module: account
#: code:addons/account/account_bank_statement.py:331
-#: code:addons/account/invoice.py:405
-#: code:addons/account/invoice.py:505
-#: code:addons/account/invoice.py:520
-#: code:addons/account/invoice.py:528
-#: code:addons/account/invoice.py:545
-#: code:addons/account/invoice.py:1347
+#: code:addons/account/invoice.py:408
+#: code:addons/account/invoice.py:508
+#: code:addons/account/invoice.py:523
+#: code:addons/account/invoice.py:531
+#: code:addons/account/invoice.py:552
+#: code:addons/account/invoice.py:1361
#: code:addons/account/wizard/account_move_journal.py:63
#, python-format
msgid "Configuration Error !"
@@ -5230,7 +5232,7 @@ msgid "Sort By"
msgstr "Sortiert nach"
#. module: account
-#: code:addons/account/account.py:1326
+#: code:addons/account/account.py:1340
#, python-format
msgid ""
"There is no default default credit account defined \n"
@@ -5391,7 +5393,7 @@ msgid "Generate Opening Entries"
msgstr "Erstelle Vortragsbuchungen"
#. module: account
-#: code:addons/account/account_move_line.py:738
+#: code:addons/account/account_move_line.py:729
#, python-format
msgid "Already Reconciled!"
msgstr "Bereits ausgeglichen"
@@ -5430,7 +5432,7 @@ msgstr "untergeordnete Konten"
#. module: account
#: view:account.move.line.reconcile:0
-#: code:addons/account/account_move_line.py:830
+#: code:addons/account/account_move_line.py:821
#, python-format
msgid "Write-Off"
msgstr "Abschreibung"
@@ -5585,7 +5587,7 @@ msgid "# of Lines"
msgstr "# Positionen"
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:60
+#: code:addons/account/wizard/account_change_currency.py:59
#, python-format
msgid "New currency is not confirured properly !"
msgstr "Neue Währung wurde nicht vollständig konfiguriert !"
@@ -5610,14 +5612,14 @@ msgid "Filter by"
msgstr "Filter durch"
#. module: account
-#: code:addons/account/account_move_line.py:1131
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1137
+#: code:addons/account/account_move_line.py:1220
#, python-format
msgid "You can not use an inactive account!"
msgstr "Sie können kein inaktives Konto verwenden!"
#. module: account
-#: code:addons/account/account_move_line.py:803
+#: code:addons/account/account_move_line.py:794
#, python-format
msgid "Entries are not of the same account or already reconciled ! "
msgstr ""
@@ -5654,7 +5656,7 @@ msgstr "7"
#. module: account
#: code:addons/account/account_bank_statement.py:391
-#: code:addons/account/invoice.py:370
+#: code:addons/account/invoice.py:373
#, python-format
msgid "Invalid action !"
msgstr "Fehlerhafte Aktion"
@@ -5876,7 +5878,7 @@ msgid "Companies"
msgstr "Unternehmen"
#. module: account
-#: code:addons/account/account.py:532
+#: code:addons/account/account.py:546
#, python-format
msgid ""
"You cannot modify Company of account as its related record exist in Entry "
@@ -6157,9 +6159,9 @@ msgid "Optional create"
msgstr "Erzeuge optional"
#. module: account
-#: code:addons/account/invoice.py:406
-#: code:addons/account/invoice.py:506
-#: code:addons/account/invoice.py:1348
+#: code:addons/account/invoice.py:409
+#: code:addons/account/invoice.py:509
+#: code:addons/account/invoice.py:1362
#, python-format
msgid "Can not find account chart for this company, Please Create account."
msgstr ""
@@ -6312,8 +6314,8 @@ msgid "Analytic Entries Statistics"
msgstr "Auswertung analytische Buchungen"
#. module: account
-#: code:addons/account/account_analytic_line.py:143
-#: code:addons/account/account_move_line.py:905
+#: code:addons/account/account_analytic_line.py:141
+#: code:addons/account/account_move_line.py:897
#, python-format
msgid "Entries: "
msgstr "Buchungen: "
@@ -6324,7 +6326,7 @@ msgid "Create manual recurring entries in a chosen journal."
msgstr "Händisch wiederkehrende Buchungen in ein bestimmtes Journal buchen."
#. module: account
-#: code:addons/account/account.py:1393
+#: code:addons/account/account.py:1407
#, python-format
msgid "Couldn't create move between different companies"
msgstr "Konnte keine überbetriebliche Buchung erzeugen"
@@ -6373,7 +6375,7 @@ msgid "Total debit"
msgstr "Gesamt Soll"
#. module: account
-#: code:addons/account/account_move_line.py:781
+#: code:addons/account/account_move_line.py:772
#, python-format
msgid "Entry \"%s\" is not valid !"
msgstr "Eintrag \"%s\" ist ungültig !"
@@ -6443,30 +6445,31 @@ msgid " valuation: percent"
msgstr " Wertansatz: Prozent"
#. module: account
-#: code:addons/account/account.py:499
-#: code:addons/account/account.py:501
-#: code:addons/account/account.py:822
-#: code:addons/account/account.py:901
-#: code:addons/account/account.py:976
-#: code:addons/account/account.py:1204
-#: code:addons/account/account.py:1210
-#: code:addons/account/account.py:2095
-#: code:addons/account/account.py:2333
-#: code:addons/account/account_analytic_line.py:90
-#: code:addons/account/account_analytic_line.py:99
+#: code:addons/account/account.py:509
+#: code:addons/account/account.py:511
+#: code:addons/account/account.py:836
+#: code:addons/account/account.py:915
+#: code:addons/account/account.py:990
+#: code:addons/account/account.py:1218
+#: code:addons/account/account.py:1224
+#: code:addons/account/account.py:2109
+#: code:addons/account/account.py:2357
+#: code:addons/account/account_analytic_line.py:89
+#: code:addons/account/account_analytic_line.py:98
#: code:addons/account/account_bank_statement.py:292
#: code:addons/account/account_bank_statement.py:305
#: code:addons/account/account_bank_statement.py:345
-#: code:addons/account/account_cash_statement.py:328
-#: code:addons/account/account_cash_statement.py:348
-#: code:addons/account/account_move_line.py:1176
-#: code:addons/account/account_move_line.py:1191
-#: code:addons/account/account_move_line.py:1193
-#: code:addons/account/invoice.py:785
-#: code:addons/account/invoice.py:815
-#: code:addons/account/invoice.py:1008
+#: code:addons/account/account_cash_statement.py:329
+#: code:addons/account/account_cash_statement.py:349
+#: code:addons/account/account_move_line.py:1182
+#: code:addons/account/account_move_line.py:1197
+#: code:addons/account/account_move_line.py:1199
+#: code:addons/account/invoice.py:793
+#: code:addons/account/invoice.py:823
+#: code:addons/account/invoice.py:1014
#: code:addons/account/wizard/account_invoice_refund.py:100
#: code:addons/account/wizard/account_invoice_refund.py:102
+#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_use_model.py:44
#, python-format
msgid "Error !"
@@ -6587,7 +6590,7 @@ msgid "Journal Select"
msgstr "Wähle Journal"
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:65
+#: code:addons/account/wizard/account_change_currency.py:64
#, python-format
msgid "Currnt currency is not confirured properly !"
msgstr "Die aktuelle Währung ist nicht korrekt konfiguriert !"
@@ -6604,9 +6607,11 @@ msgstr "Steuern Zuordnung"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: view:account.report.general.ledger:0
#: model:ir.actions.act_window,name:account.action_account_general_ledger_menu
#: model:ir.actions.report.xml,name:account.account_general_ledger
+#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape
#: model:ir.ui.menu,name:account.menu_general_ledger
msgid "General Ledger"
msgstr "Umsätze nach Konten und Perioden"
@@ -6667,7 +6672,7 @@ msgid "Total:"
msgstr "Summe:"
#. module: account
-#: code:addons/account/account.py:2050
+#: code:addons/account/account.py:2064
#, python-format
msgid ""
"You can specify year, month and date in the name of the model using the "
@@ -6705,7 +6710,7 @@ msgid "Child Codes"
msgstr "untergeordnete Codes"
#. module: account
-#: code:addons/account/invoice.py:473
+#: code:addons/account/invoice.py:476
#: code:addons/account/wizard/account_invoice_refund.py:137
#, python-format
msgid "Data Insufficient !"
@@ -6896,7 +6901,7 @@ msgid "Lines"
msgstr "Positionen"
#. module: account
-#: code:addons/account/invoice.py:521
+#: code:addons/account/invoice.py:524
#, python-format
msgid ""
"Can not find account chart for this company in invoice line account, Please "
@@ -7095,7 +7100,7 @@ msgstr ""
"Steuerberechnung gebraucht wird."
#. module: account
-#: code:addons/account/account.py:938
+#: code:addons/account/account.py:952
#, python-format
msgid "You should have chosen periods that belongs to the same company"
msgstr ""
@@ -7214,7 +7219,7 @@ msgid "Sign on Reports"
msgstr "Sign On Reports"
#. module: account
-#: code:addons/account/account_cash_statement.py:249
+#: code:addons/account/account_cash_statement.py:250
#, python-format
msgid "You can not have two open register for the same journal"
msgstr ""
@@ -7251,7 +7256,6 @@ msgstr ""
#. module: account
#: report:account.invoice:0
#: view:account.invoice:0
-#: report:account.move.voucher:0
msgid "PRO-FORMA"
msgstr "PRO-FORMA"
@@ -7284,6 +7288,7 @@ msgstr "Informationen (Optional)"
#. module: account
#: view:account.analytic.line:0
+#: field:account.bank.statement,user_id:0
#: view:account.journal:0
#: field:account.journal,user_id:0
#: view:analytic.entries.report:0
@@ -7312,13 +7317,13 @@ msgstr ""
"bezahlt werden soll."
#. module: account
-#: code:addons/account/account_move_line.py:1271
+#: code:addons/account/account_move_line.py:1277
#, python-format
msgid "Bad account !"
msgstr "Falsches Konto!"
#. module: account
-#: code:addons/account/account.py:2777
+#: code:addons/account/account.py:2821
#: code:addons/account/installer.py:432
#, python-format
msgid "Sales Journal"
@@ -7336,7 +7341,7 @@ msgid "Invoice Tax"
msgstr "Umsatzsteuer"
#. module: account
-#: code:addons/account/account_move_line.py:1246
+#: code:addons/account/account_move_line.py:1252
#, python-format
msgid "No piece number !"
msgstr "Keine Stückzahl!"
@@ -7582,17 +7587,17 @@ msgid "Fixed"
msgstr "Fest"
#. module: account
-#: code:addons/account/account.py:506
-#: code:addons/account/account.py:519
-#: code:addons/account/account.py:522
+#: code:addons/account/account.py:516
+#: code:addons/account/account.py:529
#: code:addons/account/account.py:532
-#: code:addons/account/account.py:640
-#: code:addons/account/account.py:927
-#: code:addons/account/account_move_line.py:732
-#: code:addons/account/account_move_line.py:776
-#: code:addons/account/invoice.py:714
-#: code:addons/account/invoice.py:717
-#: code:addons/account/invoice.py:720
+#: code:addons/account/account.py:546
+#: code:addons/account/account.py:654
+#: code:addons/account/account.py:941
+#: code:addons/account/account_move_line.py:723
+#: code:addons/account/account_move_line.py:767
+#: code:addons/account/invoice.py:722
+#: code:addons/account/invoice.py:725
+#: code:addons/account/invoice.py:728
#, python-format
msgid "Warning !"
msgstr "Warnung"
@@ -7624,6 +7629,7 @@ msgstr "Betrag (in Worten)"
#: view:account.entries.report:0
#: field:account.entries.report,partner_id:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: view:account.invoice:0
#: field:account.invoice,partner_id:0
#: field:account.invoice.line,partner_id:0
@@ -7654,7 +7660,7 @@ msgid "Can not %s draft/proforma/cancel invoice."
msgstr "Kann Entwurf/ProForma/Storno für Rechnung %s nicht durchführen"
#. module: account
-#: code:addons/account/invoice.py:787
+#: code:addons/account/invoice.py:795
#, python-format
msgid "No Invoice Lines !"
msgstr "Keine Rechnungszeilen !"
@@ -7705,7 +7711,7 @@ msgid "Deferral Method"
msgstr "Abgrenzung Jahreswechsel"
#. module: account
-#: code:addons/account/invoice.py:359
+#: code:addons/account/invoice.py:360
#, python-format
msgid "Invoice '%s' is paid."
msgstr "Rechnung '%s' wurde bezahlt."
@@ -7769,7 +7775,7 @@ msgid "Associated Partner"
msgstr "Zugehöriger Partner"
#. module: account
-#: code:addons/account/invoice.py:1284
+#: code:addons/account/invoice.py:1298
#, python-format
msgid "You must first select a partner !"
msgstr "Sie müssen zuerst einen Partner wählen!"
@@ -7837,7 +7843,7 @@ msgid "Choose Fiscal Year"
msgstr "Wähle Geschäftsjahr"
#. module: account
-#: code:addons/account/account.py:2841
+#: code:addons/account/account.py:2885
#: code:addons/account/installer.py:495
#, python-format
msgid "Purchase Refund Journal"
@@ -7876,6 +7882,7 @@ msgstr "Finanzbuchhaltung"
#: view:account.entries.report:0
#: field:account.entries.report,period_id:0
#: view:account.fiscalyear:0
+#: report:account.general.ledger_landscape:0
#: view:account.invoice:0
#: view:account.invoice.report:0
#: field:account.journal.period,period_id:0
@@ -8057,7 +8064,7 @@ msgid "Account Types"
msgstr "Kontoartkonfiguration"
#. module: account
-#: code:addons/account/invoice.py:897
+#: code:addons/account/invoice.py:905
#, python-format
msgid "Cannot create invoice move on centralised journal"
msgstr "Kann keine Rechnungsbuchungen in zentralisiertem Journal durchführen"
@@ -8107,6 +8114,7 @@ msgstr "Journal Gutschriften"
#: report:account.account.balance:0
#: report:account.central.journal:0
#: report:account.general.journal:0
+#: report:account.general.ledger_landscape:0
#: report:account.partner.balance:0
msgid "Filter By"
msgstr "Filter nach"
@@ -8150,7 +8158,7 @@ msgid "Payment Term Line"
msgstr "Zahlungsbedingungen"
#. module: account
-#: code:addons/account/account.py:2794
+#: code:addons/account/account.py:2838
#: code:addons/account/installer.py:452
#, python-format
msgid "Purchase Journal"
@@ -8326,8 +8334,8 @@ msgstr ""
"Bankauszug übereinstimmen."
#. module: account
-#: code:addons/account/account_move_line.py:1131
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1137
+#: code:addons/account/account_move_line.py:1220
#, python-format
msgid "Bad account!"
msgstr "Falsches Konto!"
@@ -8338,7 +8346,7 @@ msgid "Keep empty for all open fiscal years"
msgstr "Frei lassen für alle offenen Geschäftsjahre"
#. module: account
-#: code:addons/account/account_move_line.py:1056
+#: code:addons/account/account_move_line.py:1062
#, python-format
msgid "The account move (%s) for centralisation has been confirmed!"
msgstr "Die Buchungszeile (%s)"
@@ -8361,6 +8369,7 @@ msgstr ""
#: field:account.entries.report,currency_id:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.invoice,currency_id:0
#: field:account.invoice.report,currency_id:0
#: field:account.journal,currency:0
@@ -8564,14 +8573,14 @@ msgid "Period from"
msgstr "Gültig ab"
#. module: account
-#: code:addons/account/account.py:2817
+#: code:addons/account/account.py:2861
#: code:addons/account/installer.py:476
#, python-format
msgid "Sales Refund Journal"
msgstr "Gutschriften Ausgangsrechnungen Journal"
#. module: account
-#: code:addons/account/account.py:927
+#: code:addons/account/account.py:941
#, python-format
msgid ""
"You cannot modify company of this period as its related record exist in "
@@ -8621,7 +8630,7 @@ msgid "Purchase Tax(%)"
msgstr "Steuer Einkauf (%)"
#. module: account
-#: code:addons/account/invoice.py:787
+#: code:addons/account/invoice.py:795
#, python-format
msgid "Please create some invoice lines."
msgstr "Bitte erstellen Sie einige Rechnungspositionen"
@@ -8637,7 +8646,7 @@ msgid "Configure Your Accounting Application"
msgstr "Konfigurieren Sie die Anwendungen für die Finanzbuchhaltung"
#. module: account
-#: code:addons/account/account.py:2820
+#: code:addons/account/account.py:2864
#: code:addons/account/installer.py:479
#, python-format
msgid "SCNJ"
@@ -8682,6 +8691,7 @@ msgstr "Überwachung von Zahlungseingängen"
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
@@ -8691,7 +8701,7 @@ msgid "Start Period"
msgstr "Start Periode"
#. module: account
-#: code:addons/account/account.py:2333
+#: code:addons/account/account.py:2357
#, python-format
msgid "Cannot locate parent code for template account!"
msgstr "Kann keine Buchung auf einem Oberkonto vonehmen."
@@ -8729,7 +8739,7 @@ msgstr ""
"Buchhalter verbucht und validiert die Buchungszeilen einer Rechnung. "
#. module: account
-#: code:addons/account/invoice.py:1008
+#: code:addons/account/invoice.py:1014
#, python-format
msgid ""
"You cannot cancel the Invoice which is Partially Paid! You need to "
@@ -8759,7 +8769,7 @@ msgid "You can not create move line on view account."
msgstr "Sie können keine Buchungen auf Konten des Typs Ansicht erstellen."
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:71
+#: code:addons/account/wizard/account_change_currency.py:70
#, python-format
msgid "Current currency is not confirured properly !"
msgstr "Aktuelle Währung ist nicht korrekt definiert"
@@ -8814,6 +8824,7 @@ msgstr "Leer lassen um das Erlöskonto zu nutzen"
#: field:account.entries.report,balance:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.move.line,balance:0
#: report:account.partner.balance:0
#: selection:account.payment.term.line,value:0
@@ -8832,6 +8843,7 @@ msgstr "Händisch oder automatisch im System erfasst."
#. module: account
#: report:account.account.balance:0
+#: report:account.general.ledger_landscape:0
msgid "Display Account"
msgstr "Anzeige Konten"
@@ -8963,6 +8975,7 @@ msgstr "Händische Buchung"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.move.line,move_id:0
#: field:analytic.entries.report,move_id:0
@@ -8970,7 +8983,7 @@ msgid "Move"
msgstr "Buchung"
#. module: account
-#: code:addons/account/account_move_line.py:1128
+#: code:addons/account/account_move_line.py:1134
#, python-format
msgid "You can not change the tax, you should remove and recreate lines !"
msgstr "Die Steuer kann nicht verändert werden. Löschen und Neuerstellen."
@@ -9070,6 +9083,7 @@ msgstr "Saldo Analytisches Konto"
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
@@ -9113,7 +9127,7 @@ msgid "Account Subscription"
msgstr "Konto Automatische Buchung"
#. module: account
-#: code:addons/account/invoice.py:717
+#: code:addons/account/invoice.py:725
#, python-format
msgid ""
"Tax base different !\n"
@@ -9142,6 +9156,7 @@ msgstr "Eingabe automat. Buchung"
#: report:account.general.journal:0
#: field:account.general.journal,date_from:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,date_start:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -9170,7 +9185,7 @@ msgid "Unreconciled"
msgstr "Offene Posten"
#. module: account
-#: code:addons/account/invoice.py:804
+#: code:addons/account/invoice.py:812
#, python-format
msgid "Bad total !"
msgstr "Falsche Summe!"
@@ -9237,13 +9252,13 @@ msgid "Active"
msgstr "Aktiv"
#. module: account
-#: code:addons/account/invoice.py:354
+#: code:addons/account/invoice.py:353
#, python-format
msgid "Unknown Error"
msgstr "Unbekannter Fehler"
#. module: account
-#: code:addons/account/account.py:1167
+#: code:addons/account/account.py:1181
#, python-format
msgid ""
"You cannot validate a non-balanced entry !\n"
@@ -9294,10 +9309,10 @@ msgstr "Buchen"
#: field:account.entries.report,credit:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.model.line,credit:0
#: field:account.move.line,credit:0
-#: report:account.move.voucher:0
#: report:account.partner.balance:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
@@ -9546,7 +9561,6 @@ msgstr "Periode auswählen"
#: view:account.move:0
#: selection:account.move,state:0
#: view:account.move.line:0
-#: report:account.move.voucher:0
msgid "Posted"
msgstr "Gebucht"
@@ -9565,6 +9579,7 @@ msgstr "Gebucht"
#: report:account.general.journal:0
#: field:account.general.journal,date_to:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,date_stop:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -9618,7 +9633,7 @@ msgid "This is a model for recurring accounting entries"
msgstr "Dieses ist ein Modell für wiederkehrende Buchungen."
#. module: account
-#: code:addons/account/account_analytic_line.py:100
+#: code:addons/account/account_analytic_line.py:99
#, python-format
msgid "There is no income account defined for this product: \"%s\" (id:%d)"
msgstr ""
@@ -9781,8 +9796,8 @@ msgid "End period"
msgstr "Ende Periode"
#. module: account
-#: code:addons/account/account_move_line.py:738
-#: code:addons/account/account_move_line.py:815
+#: code:addons/account/account_move_line.py:729
+#: code:addons/account/account_move_line.py:806
#: code:addons/account/wizard/account_invoice_state.py:44
#: code:addons/account/wizard/account_invoice_state.py:68
#: code:addons/account/wizard/account_report_balance_sheet.py:70
@@ -9850,10 +9865,10 @@ msgstr "Eingangsrechnungen"
#: field:account.entries.report,debit:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.model.line,debit:0
#: field:account.move.line,debit:0
-#: report:account.move.voucher:0
#: report:account.partner.balance:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
@@ -9890,7 +9905,7 @@ msgid "Recurring"
msgstr "Wiederkehrend"
#. module: account
-#: code:addons/account/account_move_line.py:805
+#: code:addons/account/account_move_line.py:796
#, python-format
msgid "Entry is already reconciled"
msgstr "Buchung wurde bereits ausgeglichen"
@@ -9911,7 +9926,7 @@ msgid "Range"
msgstr "Bereich"
#. module: account
-#: code:addons/account/account_move_line.py:1246
+#: code:addons/account/account_move_line.py:1252
#, python-format
msgid ""
"Can not create an automatic sequence for this piece !\n"
@@ -10052,7 +10067,7 @@ msgid "Accounts Mapping"
msgstr "Zuordnung Finanzkonten"
#. module: account
-#: code:addons/account/invoice.py:346
+#: code:addons/account/invoice.py:345
#, python-format
msgid "Invoice '%s' is waiting for validation."
msgstr "Rechnung '%s' wartet auf Buchungsfreigabe."
@@ -10077,7 +10092,7 @@ msgid "The income or expense account related to the selected product."
msgstr "Aufwand- und Erlöskonto des Produktes"
#. module: account
-#: code:addons/account/account_move_line.py:1117
+#: code:addons/account/account_move_line.py:1123
#, python-format
msgid "The date of your Journal Entry is not in the defined period!"
msgstr ""
@@ -10241,7 +10256,7 @@ msgstr "Zentrales Journal"
#. module: account
#: report:account.overdue:0
msgid "Maturity"
-msgstr "Fällig am"
+msgstr "überfälllig"
#. module: account
#: selection:account.aged.trial.balance,direction_selection:0
@@ -10287,7 +10302,7 @@ msgid "You must enter a period length that cannot be 0 or below !"
msgstr "Die Länge der Periode muss größer als 0 sein"
#. module: account
-#: code:addons/account/account.py:501
+#: code:addons/account/account.py:511
#, python-format
msgid "You cannot remove an account which has account entries!. "
msgstr ""
@@ -10355,9 +10370,6 @@ msgstr ""
#~ msgid "Unreconciled entries"
#~ msgstr "Offene Posten"
-#~ msgid "Print Taxes Report"
-#~ msgstr "Druck Report Steuer"
-
#, python-format
#~ msgid "Account move line \"%s\" is not valid"
#~ msgstr "Buchungsposition \"%s\" ist ungültig"
@@ -10365,9 +10377,6 @@ msgstr ""
#~ msgid "Unreconcile entries"
#~ msgstr "Storno Ausgleich"
-#~ msgid "Confirm draft invoices"
-#~ msgstr "Bestätige Entwurf Rechnung"
-
#~ msgid "Charts of Account"
#~ msgstr "Kontenplan Finanzkonten"
@@ -11825,16 +11834,6 @@ msgstr ""
#~ msgid "Account Reporting - Reporting"
#~ msgstr "Finanz Reporting"
-#~ msgid ""
-#~ "Gives the view used when writing or browsing entries in this journal. The "
-#~ "view tell Open ERP which fields should be visible, required or readonly and "
-#~ "in which order. You can create your own view for a faster encoding in each "
-#~ "journal."
-#~ msgstr ""
-#~ "Definiert Felder (sichtbar, zwingend, nur lesen) für die Sicht für dieses "
-#~ "Journal. Für jedes Journal können eingene Sichten erzeugt wrden um scheller "
-#~ "erfassen zu können"
-
#~ msgid "wizard.company.setup"
#~ msgstr "wizard.company.setup"
@@ -12289,3 +12288,26 @@ msgstr ""
#~ "dem Geschäftsjahr verwendet (Bei vorläufigem Gewinn: Betrag wird "
#~ "gutgeschrieben, bei vorläufigem Verlust: Betrag wird belastet.) Der Betrag "
#~ "wird durch die Auswertung Gewinn & Verlust generiert."
+
+#~ msgid ""
+#~ "Gives the view used when writing or browsing entries in this journal. The "
+#~ "view tell Open ERP which fields should be visible, required or readonly and "
+#~ "in which order. You can create your own view for a faster encoding in each "
+#~ "journal."
+#~ msgstr ""
+#~ "Zeigt an, welche Sicht genutzt wird, wenn Sie dieses Journal durchblättern "
+#~ "oder etwas schreiben. Die Sichten geben Open ERP an, welche Felder sichtbar "
+#~ "sein sollen, zwingend benötigt werden, ob nur lesend auf sie zugegriffen "
+#~ "werden darf und in welcher Reihenfolge Sie erscheinen sollen. Sie können "
+#~ "Ihre eigene Sicht erstellen, um jedes Journal schneller erfassen zu können."
+
+#~ msgid "Print Taxes Report"
+#~ msgstr "Steuerbericht drucken"
+
+#, python-format
+#~ msgid ""
+#~ "No period defined for this date !\n"
+#~ "Please create a fiscal year."
+#~ msgstr ""
+#~ "Kein Zeitraum für dieses Datum definiert!\n"
+#~ "Bitte erzeugen Sie ein neues Geschäftsjahr."
diff --git a/addons/account/i18n/he.po b/addons/account/i18n/he.po
index 67fea52771c..2008cd4d734 100644
--- a/addons/account/i18n/he.po
+++ b/addons/account/i18n/he.po
@@ -8,24 +8,24 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2010-12-11 16:15+0000\n"
-"Last-Translator: OpenERP Administrators \n"
+"PO-Revision-Date: 2011-06-19 07:00+0000\n"
+"Last-Translator: Natan Alter \n"
"Language-Team: Hebrew \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 05:07+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-06-20 04:33+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
msgid "System payment"
-msgstr ""
+msgstr "מערכת תשלומים"
#. module: account
#: view:account.journal:0
msgid "Other Configuration"
-msgstr ""
+msgstr "תצורה אחרת"
#. module: account
#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
@@ -34,7 +34,7 @@ msgid "No End of year journal defined for the fiscal year"
msgstr ""
#. module: account
-#: code:addons/account/account.py:506
+#: code:addons/account/account.py:516
#, python-format
msgid ""
"You cannot remove/deactivate an account which is set as a property to any "
@@ -66,7 +66,7 @@ msgid "Residual"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:785
+#: code:addons/account/invoice.py:793
#, python-format
msgid "Please define sequence on invoice journal"
msgstr ""
@@ -131,7 +131,7 @@ msgid "Accounting Entries-"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1291
+#: code:addons/account/account.py:1305
#, python-format
msgid "You can not delete posted movement: \"%s\"!"
msgstr ""
@@ -175,7 +175,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1421
+#: code:addons/account/invoice.py:1436
#, python-format
msgid "Warning!"
msgstr ""
@@ -227,7 +227,7 @@ msgid "account.tax"
msgstr ""
#. module: account
-#: code:addons/account/account.py:901
+#: code:addons/account/account.py:915
#, python-format
msgid ""
"No period defined for this date: %s !\n"
@@ -255,7 +255,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1210
+#: code:addons/account/invoice.py:1224
#, python-format
msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)"
msgstr ""
@@ -271,7 +271,7 @@ msgid "Belgian Reports"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1176
+#: code:addons/account/account_move_line.py:1182
#, python-format
msgid "You can not add/modify entries in a closed journal."
msgstr ""
@@ -309,7 +309,7 @@ msgid "St."
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:529
+#: code:addons/account/invoice.py:532
#, python-format
msgid "Invoice line account company does not match with invoice company."
msgstr ""
@@ -551,7 +551,7 @@ msgid "Not reconciled transactions"
msgstr ""
#. module: account
-#: code:addons/account/account_cash_statement.py:348
+#: code:addons/account/account_cash_statement.py:349
#, python-format
msgid "CashBox Balance is not matching with Calculated Balance !"
msgstr ""
@@ -633,7 +633,7 @@ msgid "Tax Code Amount"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2779
+#: code:addons/account/account.py:2823
#: code:addons/account/installer.py:434
#, python-format
msgid "SAJ"
@@ -666,8 +666,8 @@ msgid "Journal Period"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:732
-#: code:addons/account/account_move_line.py:776
+#: code:addons/account/account_move_line.py:723
+#: code:addons/account/account_move_line.py:767
#, python-format
msgid "To reconcile the entries company should be the same for all entries"
msgstr ""
@@ -728,7 +728,7 @@ msgid "Analytic Entries by line"
msgstr ""
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:39
+#: code:addons/account/wizard/account_change_currency.py:38
#, python-format
msgid "You can only change currency for Draft Invoice !"
msgstr ""
@@ -829,7 +829,7 @@ msgid "Next Partner to reconcile"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1191
+#: code:addons/account/account_move_line.py:1197
#, python-format
msgid ""
"You can not do this modification on a confirmed entry ! Please note that you "
@@ -951,11 +951,11 @@ msgid "Code"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2083
+#: code:addons/account/account.py:2097
#: code:addons/account/account_bank_statement.py:350
-#: code:addons/account/account_move_line.py:170
+#: code:addons/account/account_move_line.py:169
#: code:addons/account/invoice.py:73
-#: code:addons/account/invoice.py:670
+#: code:addons/account/invoice.py:678
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "No Analytic Journal !"
@@ -1034,7 +1034,6 @@ msgstr ""
#. module: account
#: report:account.analytic.account.journal:0
-#: report:account.move.voucher:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
msgid "-"
@@ -1120,6 +1119,7 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
@@ -1127,7 +1127,7 @@ msgid "Entry Label"
msgstr ""
#. module: account
-#: code:addons/account/account.py:976
+#: code:addons/account/account.py:990
#, python-format
msgid "You can not modify/delete a journal with entries for this period !"
msgstr ""
@@ -1265,7 +1265,6 @@ msgid "Journal Items Analysis"
msgstr ""
#. module: account
-#: model:ir.actions.act_window,name:account.action_partner_all
#: model:ir.ui.menu,name:account.next_id_22
msgid "Partners"
msgstr ""
@@ -1295,7 +1294,7 @@ msgid "Central Journal"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1271
+#: code:addons/account/account_move_line.py:1277
#, python-format
msgid "You can not use this general account in this journal !"
msgstr ""
@@ -1388,7 +1387,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:815
+#: code:addons/account/invoice.py:823
#, python-format
msgid ""
"Cannot create the invoice !\n"
@@ -1547,7 +1546,6 @@ msgid "Separated Journal Sequences"
msgstr ""
#. module: account
-#: field:account.bank.statement,user_id:0
#: view:account.invoice:0
msgid "Responsible"
msgstr ""
@@ -1614,7 +1612,7 @@ msgid "Error! You cannot define overlapping fiscal years"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:808
+#: code:addons/account/account_move_line.py:799
#, python-format
msgid "The account is not defined to be reconciled !"
msgstr ""
@@ -1647,7 +1645,7 @@ msgid "Receivables & Payables"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:815
+#: code:addons/account/account_move_line.py:806
#, python-format
msgid "You have to provide an account for the write off entry !"
msgstr ""
@@ -1683,7 +1681,7 @@ msgid "Customer Ref:"
msgstr ""
#. module: account
-#: code:addons/account/account_cash_statement.py:328
+#: code:addons/account/account_cash_statement.py:329
#, python-format
msgid "User %s does not have rights to access %s journal !"
msgstr ""
@@ -1704,7 +1702,7 @@ msgid "Tax Declaration: Credit Notes"
msgstr ""
#. module: account
-#: code:addons/account/account.py:499
+#: code:addons/account/account.py:509
#, python-format
msgid "You cannot deactivate an account that contains account moves."
msgstr ""
@@ -1720,7 +1718,7 @@ msgid "You can not create move line on closed account."
msgstr ""
#. module: account
-#: code:addons/account/account.py:519
+#: code:addons/account/account.py:529
#, python-format
msgid ""
"You cannot change the type of account from 'Closed' to any other type which "
@@ -1989,7 +1987,7 @@ msgid " Journal"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1319
+#: code:addons/account/account.py:1333
#, python-format
msgid ""
"There is no default default debit account defined \n"
@@ -2041,7 +2039,7 @@ msgid "Description"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2844
+#: code:addons/account/account.py:2888
#: code:addons/account/installer.py:498
#, python-format
msgid "ECNJ"
@@ -2061,7 +2059,7 @@ msgid "Income Account"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:352
+#: code:addons/account/invoice.py:351
#, python-format
msgid "There is no Accounting Journal of type Sale/Purchase defined!"
msgstr ""
@@ -2072,6 +2070,7 @@ msgid "Accounting Properties"
msgstr ""
#. module: account
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.print.journal,sort_selection:0
msgid "Entries Sorted By"
@@ -2100,6 +2099,7 @@ msgstr ""
#: field:account.fiscalyear,name:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.journal.period,fiscalyear_id:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -2208,7 +2208,7 @@ msgid "Account Tax Code"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:545
+#: code:addons/account/invoice.py:552
#, python-format
msgid ""
"Can't find any account journal of %s type for this company.\n"
@@ -2278,7 +2278,7 @@ msgid "Account Model Entries"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2796
+#: code:addons/account/account.py:2840
#: code:addons/account/installer.py:454
#, python-format
msgid "EXJ"
@@ -2362,7 +2362,7 @@ msgid "Accounts"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:351
+#: code:addons/account/invoice.py:350
#, python-format
msgid "Configuration Error!"
msgstr ""
@@ -2374,13 +2374,12 @@ msgid "Average Price"
msgstr ""
#. module: account
-#: report:account.move.voucher:0
#: report:account.overdue:0
msgid "Date:"
msgstr ""
#. module: account
-#: code:addons/account/account.py:640
+#: code:addons/account/account.py:654
#, python-format
msgid ""
"You cannot modify company of this journal as its related record exist in "
@@ -2416,6 +2415,7 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.overdue:0
#: report:account.third_party_ledger:0
@@ -2524,16 +2524,16 @@ msgid "This wizard will create recurring accounting entries"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1181
+#: code:addons/account/account.py:1195
#, python-format
msgid "No sequence defined on the journal !"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2083
+#: code:addons/account/account.py:2097
#: code:addons/account/account_bank_statement.py:350
-#: code:addons/account/account_move_line.py:170
-#: code:addons/account/invoice.py:670
+#: code:addons/account/account_move_line.py:169
+#: code:addons/account/invoice.py:678
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
@@ -2693,7 +2693,7 @@ msgid "Analytic Entries"
msgstr ""
#. module: account
-#: code:addons/account/account.py:822
+#: code:addons/account/account.py:836
#, python-format
msgid ""
"No fiscal year defined for this date !\n"
@@ -2816,7 +2816,7 @@ msgid "BNK%s"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2906
+#: code:addons/account/account.py:2950
#: code:addons/account/installer.py:296
#, python-format
msgid "BNK"
@@ -2925,6 +2925,7 @@ msgstr ""
#: field:account.common.report,journal_ids:0
#: report:account.general.journal:0
#: field:account.general.journal,journal_ids:0
+#: report:account.general.ledger_landscape:0
#: view:account.journal.period:0
#: report:account.partner.balance:0
#: field:account.partner.balance,journal_ids:0
@@ -2985,7 +2986,7 @@ msgid "Starting Balance"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1284
+#: code:addons/account/invoice.py:1298
#, python-format
msgid "No Partner Defined !"
msgstr ""
@@ -3027,7 +3028,6 @@ msgstr ""
#: view:account.invoice.report:0
#: selection:account.invoice.report,state:0
#: selection:account.journal.period,state:0
-#: report:account.move.voucher:0
#: view:account.subscription:0
#: selection:account.subscription,state:0
#: selection:report.invoice.created,state:0
@@ -3079,7 +3079,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:370
+#: code:addons/account/invoice.py:373
#, python-format
msgid "Cannot delete invoice(s) that are already opened or paid !"
msgstr ""
@@ -3140,7 +3140,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account.py:522
+#: code:addons/account/account.py:532
#, python-format
msgid ""
"You cannot change the type of account from '%s' to '%s' type as it contains "
@@ -3149,6 +3149,7 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
msgid "Counterpart"
msgstr ""
@@ -3251,6 +3252,7 @@ msgstr ""
#: field:account.entries.report,date:0
#: selection:account.general.journal,filter:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.invoice.report,date:0
#: report:account.journal.period.print:0
#: view:account.move:0
@@ -3294,7 +3296,7 @@ msgid "Chart of Accounts Template"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2095
+#: code:addons/account/account.py:2109
#, python-format
msgid ""
"Maturity date of entry line generated by model line '%s' of model '%s' is "
@@ -3303,13 +3305,13 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:810
+#: code:addons/account/account_move_line.py:801
#, python-format
msgid "Some entries are already reconciled !"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1204
+#: code:addons/account/account.py:1218
#, python-format
msgid ""
"You cannot validate a Journal Entry unless all journal items are in same "
@@ -3429,7 +3431,7 @@ msgid "Analytic Items"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1128
+#: code:addons/account/account_move_line.py:1134
#, python-format
msgid "Unable to change tax !"
msgstr ""
@@ -3440,14 +3442,14 @@ msgid "#Entries"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1422
+#: code:addons/account/invoice.py:1437
#, python-format
msgid ""
"You selected an Unit of Measure which is not compatible with the product."
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:473
+#: code:addons/account/invoice.py:476
#, python-format
msgid ""
"The Payment Term of Supplier does not have Payment Term Lines(Computation) "
@@ -3741,7 +3743,7 @@ msgid "Acc.Type"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:714
+#: code:addons/account/invoice.py:722
#, python-format
msgid "Global taxes defined, but are not in invoice lines !"
msgstr ""
@@ -3800,7 +3802,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_analytic_line.py:91
+#: code:addons/account/account_analytic_line.py:90
#, python-format
msgid "There is no expense account defined for this product: \"%s\" (id:%d)"
msgstr ""
@@ -3975,7 +3977,7 @@ msgid "Credit Notes"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2067
+#: code:addons/account/account.py:2081
#: code:addons/account/wizard/account_use_model.py:69
#, python-format
msgid "Unable to find a valid period !"
@@ -4046,11 +4048,11 @@ msgid "Change"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1290
-#: code:addons/account/account.py:1318
-#: code:addons/account/account.py:1325
-#: code:addons/account/account_move_line.py:1055
-#: code:addons/account/invoice.py:896
+#: code:addons/account/account.py:1304
+#: code:addons/account/account.py:1332
+#: code:addons/account/account.py:1339
+#: code:addons/account/account_move_line.py:1061
+#: code:addons/account/invoice.py:904
#: code:addons/account/wizard/account_automatic_reconcile.py:152
#: code:addons/account/wizard/account_fiscalyear_close.py:78
#: code:addons/account/wizard/account_fiscalyear_close.py:81
@@ -4154,7 +4156,7 @@ msgid "You must define an analytic journal of type '%s' !"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1397
+#: code:addons/account/account.py:1411
#, python-format
msgid ""
"Couldn't create move with currency different from the secondary currency of "
@@ -4219,7 +4221,7 @@ msgid "Invoices"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:804
+#: code:addons/account/invoice.py:812
#, python-format
msgid ""
"Please verify the price of the invoice !\n"
@@ -4331,25 +4333,24 @@ msgid "Third Party (Country)"
msgstr ""
#. module: account
-#: code:addons/account/account.py:938
-#: code:addons/account/account.py:940
-#: code:addons/account/account.py:1181
-#: code:addons/account/account.py:1393
-#: code:addons/account/account.py:1397
-#: code:addons/account/account_cash_statement.py:249
-#: code:addons/account/account_move_line.py:780
-#: code:addons/account/account_move_line.py:803
-#: code:addons/account/account_move_line.py:805
-#: code:addons/account/account_move_line.py:808
-#: code:addons/account/account_move_line.py:810
-#: code:addons/account/account_move_line.py:1117
+#: code:addons/account/account.py:952
+#: code:addons/account/account.py:954
+#: code:addons/account/account.py:1195
+#: code:addons/account/account.py:1407
+#: code:addons/account/account.py:1411
+#: code:addons/account/account_cash_statement.py:250
+#: code:addons/account/account_move_line.py:771
+#: code:addons/account/account_move_line.py:794
+#: code:addons/account/account_move_line.py:796
+#: code:addons/account/account_move_line.py:799
+#: code:addons/account/account_move_line.py:801
+#: code:addons/account/account_move_line.py:1123
#: code:addons/account/report/common_report_header.py:92
-#: code:addons/account/wizard/account_change_currency.py:39
-#: code:addons/account/wizard/account_change_currency.py:60
-#: code:addons/account/wizard/account_change_currency.py:65
-#: code:addons/account/wizard/account_change_currency.py:71
+#: code:addons/account/wizard/account_change_currency.py:38
+#: code:addons/account/wizard/account_change_currency.py:59
+#: code:addons/account/wizard/account_change_currency.py:64
+#: code:addons/account/wizard/account_change_currency.py:70
#: code:addons/account/wizard/account_move_bank_reconcile.py:49
-#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_report_common.py:120
#: code:addons/account/wizard/account_report_common.py:126
#, python-format
@@ -4371,7 +4372,7 @@ msgid "Bank Details"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:720
+#: code:addons/account/invoice.py:728
#, python-format
msgid "Taxes missing !"
msgstr ""
@@ -4426,7 +4427,7 @@ msgid "Check Date not in the Period"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1210
+#: code:addons/account/account.py:1224
#, python-format
msgid ""
"You can not modify a posted entry of this journal !\n"
@@ -4445,7 +4446,7 @@ msgid "Child Tax Accounts"
msgstr ""
#. module: account
-#: code:addons/account/account.py:940
+#: code:addons/account/account.py:954
#, python-format
msgid "Start period should be smaller then End period"
msgstr ""
@@ -4475,6 +4476,7 @@ msgstr ""
#: report:account.general.journal:0
#: field:account.general.journal,target_move:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.move.journal,target_move:0
#: report:account.partner.balance:0
@@ -4557,7 +4559,7 @@ msgid "Line 1:"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1167
+#: code:addons/account/account.py:1181
#, python-format
msgid "Integrity Error !"
msgstr ""
@@ -4703,7 +4705,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account.py:2067
+#: code:addons/account/account.py:2081
#: code:addons/account/wizard/account_use_model.py:69
#, python-format
msgid "No period found !"
@@ -4775,7 +4777,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account.py:2896
+#: code:addons/account/account.py:2940
#: code:addons/account/installer.py:283
#: code:addons/account/installer.py:295
#, python-format
@@ -4803,7 +4805,7 @@ msgid "Start of period"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1193
+#: code:addons/account/account_move_line.py:1199
#, python-format
msgid ""
"You can not do this modification on a reconciled entry ! Please note that "
@@ -4859,12 +4861,12 @@ msgstr ""
#. module: account
#: code:addons/account/account_bank_statement.py:331
-#: code:addons/account/invoice.py:405
-#: code:addons/account/invoice.py:505
-#: code:addons/account/invoice.py:520
-#: code:addons/account/invoice.py:528
-#: code:addons/account/invoice.py:545
-#: code:addons/account/invoice.py:1347
+#: code:addons/account/invoice.py:408
+#: code:addons/account/invoice.py:508
+#: code:addons/account/invoice.py:523
+#: code:addons/account/invoice.py:531
+#: code:addons/account/invoice.py:552
+#: code:addons/account/invoice.py:1361
#: code:addons/account/wizard/account_move_journal.py:63
#, python-format
msgid "Configuration Error !"
@@ -4941,7 +4943,7 @@ msgid "Sort By"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1326
+#: code:addons/account/account.py:1340
#, python-format
msgid ""
"There is no default default credit account defined \n"
@@ -5088,7 +5090,7 @@ msgid "Generate Opening Entries"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:738
+#: code:addons/account/account_move_line.py:729
#, python-format
msgid "Already Reconciled!"
msgstr ""
@@ -5124,7 +5126,7 @@ msgstr ""
#. module: account
#: view:account.move.line.reconcile:0
-#: code:addons/account/account_move_line.py:830
+#: code:addons/account/account_move_line.py:821
#, python-format
msgid "Write-Off"
msgstr ""
@@ -5261,7 +5263,7 @@ msgid "# of Lines"
msgstr ""
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:60
+#: code:addons/account/wizard/account_change_currency.py:59
#, python-format
msgid "New currency is not confirured properly !"
msgstr ""
@@ -5286,14 +5288,14 @@ msgid "Filter by"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1131
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1137
+#: code:addons/account/account_move_line.py:1220
#, python-format
msgid "You can not use an inactive account!"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:803
+#: code:addons/account/account_move_line.py:794
#, python-format
msgid "Entries are not of the same account or already reconciled ! "
msgstr ""
@@ -5328,7 +5330,7 @@ msgstr ""
#. module: account
#: code:addons/account/account_bank_statement.py:391
-#: code:addons/account/invoice.py:370
+#: code:addons/account/invoice.py:373
#, python-format
msgid "Invalid action !"
msgstr ""
@@ -5539,7 +5541,7 @@ msgid "Companies"
msgstr ""
#. module: account
-#: code:addons/account/account.py:532
+#: code:addons/account/account.py:546
#, python-format
msgid ""
"You cannot modify Company of account as its related record exist in Entry "
@@ -5805,9 +5807,9 @@ msgid "Optional create"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:406
-#: code:addons/account/invoice.py:506
-#: code:addons/account/invoice.py:1348
+#: code:addons/account/invoice.py:409
+#: code:addons/account/invoice.py:509
+#: code:addons/account/invoice.py:1362
#, python-format
msgid "Can not find account chart for this company, Please Create account."
msgstr ""
@@ -5956,8 +5958,8 @@ msgid "Analytic Entries Statistics"
msgstr ""
#. module: account
-#: code:addons/account/account_analytic_line.py:143
-#: code:addons/account/account_move_line.py:905
+#: code:addons/account/account_analytic_line.py:141
+#: code:addons/account/account_move_line.py:897
#, python-format
msgid "Entries: "
msgstr ""
@@ -5968,7 +5970,7 @@ msgid "Create manual recurring entries in a chosen journal."
msgstr ""
#. module: account
-#: code:addons/account/account.py:1393
+#: code:addons/account/account.py:1407
#, python-format
msgid "Couldn't create move between different companies"
msgstr ""
@@ -6006,7 +6008,7 @@ msgid "Total debit"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:781
+#: code:addons/account/account_move_line.py:772
#, python-format
msgid "Entry \"%s\" is not valid !"
msgstr ""
@@ -6070,30 +6072,31 @@ msgid " valuation: percent"
msgstr ""
#. module: account
-#: code:addons/account/account.py:499
-#: code:addons/account/account.py:501
-#: code:addons/account/account.py:822
-#: code:addons/account/account.py:901
-#: code:addons/account/account.py:976
-#: code:addons/account/account.py:1204
-#: code:addons/account/account.py:1210
-#: code:addons/account/account.py:2095
-#: code:addons/account/account.py:2333
-#: code:addons/account/account_analytic_line.py:90
-#: code:addons/account/account_analytic_line.py:99
+#: code:addons/account/account.py:509
+#: code:addons/account/account.py:511
+#: code:addons/account/account.py:836
+#: code:addons/account/account.py:915
+#: code:addons/account/account.py:990
+#: code:addons/account/account.py:1218
+#: code:addons/account/account.py:1224
+#: code:addons/account/account.py:2109
+#: code:addons/account/account.py:2357
+#: code:addons/account/account_analytic_line.py:89
+#: code:addons/account/account_analytic_line.py:98
#: code:addons/account/account_bank_statement.py:292
#: code:addons/account/account_bank_statement.py:305
#: code:addons/account/account_bank_statement.py:345
-#: code:addons/account/account_cash_statement.py:328
-#: code:addons/account/account_cash_statement.py:348
-#: code:addons/account/account_move_line.py:1176
-#: code:addons/account/account_move_line.py:1191
-#: code:addons/account/account_move_line.py:1193
-#: code:addons/account/invoice.py:785
-#: code:addons/account/invoice.py:815
-#: code:addons/account/invoice.py:1008
+#: code:addons/account/account_cash_statement.py:329
+#: code:addons/account/account_cash_statement.py:349
+#: code:addons/account/account_move_line.py:1182
+#: code:addons/account/account_move_line.py:1197
+#: code:addons/account/account_move_line.py:1199
+#: code:addons/account/invoice.py:793
+#: code:addons/account/invoice.py:823
+#: code:addons/account/invoice.py:1014
#: code:addons/account/wizard/account_invoice_refund.py:100
#: code:addons/account/wizard/account_invoice_refund.py:102
+#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_use_model.py:44
#, python-format
msgid "Error !"
@@ -6203,7 +6206,7 @@ msgid "Journal Select"
msgstr ""
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:65
+#: code:addons/account/wizard/account_change_currency.py:64
#, python-format
msgid "Currnt currency is not confirured properly !"
msgstr ""
@@ -6220,9 +6223,11 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: view:account.report.general.ledger:0
#: model:ir.actions.act_window,name:account.action_account_general_ledger_menu
#: model:ir.actions.report.xml,name:account.account_general_ledger
+#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape
#: model:ir.ui.menu,name:account.menu_general_ledger
msgid "General Ledger"
msgstr ""
@@ -6276,7 +6281,7 @@ msgid "Total:"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2050
+#: code:addons/account/account.py:2064
#, python-format
msgid ""
"You can specify year, month and date in the name of the model using the "
@@ -6306,7 +6311,7 @@ msgid "Child Codes"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:473
+#: code:addons/account/invoice.py:476
#: code:addons/account/wizard/account_invoice_refund.py:137
#, python-format
msgid "Data Insufficient !"
@@ -6463,7 +6468,7 @@ msgid "Lines"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:521
+#: code:addons/account/invoice.py:524
#, python-format
msgid ""
"Can not find account chart for this company in invoice line account, Please "
@@ -6631,7 +6636,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account.py:938
+#: code:addons/account/account.py:952
#, python-format
msgid "You should have chosen periods that belongs to the same company"
msgstr ""
@@ -6735,7 +6740,7 @@ msgid "Sign on Reports"
msgstr ""
#. module: account
-#: code:addons/account/account_cash_statement.py:249
+#: code:addons/account/account_cash_statement.py:250
#, python-format
msgid "You can not have two open register for the same journal"
msgstr ""
@@ -6764,7 +6769,6 @@ msgstr ""
#. module: account
#: report:account.invoice:0
#: view:account.invoice:0
-#: report:account.move.voucher:0
msgid "PRO-FORMA"
msgstr ""
@@ -6794,6 +6798,7 @@ msgstr ""
#. module: account
#: view:account.analytic.line:0
+#: field:account.bank.statement,user_id:0
#: view:account.journal:0
#: field:account.journal,user_id:0
#: view:analytic.entries.report:0
@@ -6819,13 +6824,13 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1271
+#: code:addons/account/account_move_line.py:1277
#, python-format
msgid "Bad account !"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2777
+#: code:addons/account/account.py:2821
#: code:addons/account/installer.py:432
#, python-format
msgid "Sales Journal"
@@ -6843,7 +6848,7 @@ msgid "Invoice Tax"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1246
+#: code:addons/account/account_move_line.py:1252
#, python-format
msgid "No piece number !"
msgstr ""
@@ -7077,17 +7082,17 @@ msgid "Fixed"
msgstr ""
#. module: account
-#: code:addons/account/account.py:506
-#: code:addons/account/account.py:519
-#: code:addons/account/account.py:522
+#: code:addons/account/account.py:516
+#: code:addons/account/account.py:529
#: code:addons/account/account.py:532
-#: code:addons/account/account.py:640
-#: code:addons/account/account.py:927
-#: code:addons/account/account_move_line.py:732
-#: code:addons/account/account_move_line.py:776
-#: code:addons/account/invoice.py:714
-#: code:addons/account/invoice.py:717
-#: code:addons/account/invoice.py:720
+#: code:addons/account/account.py:546
+#: code:addons/account/account.py:654
+#: code:addons/account/account.py:941
+#: code:addons/account/account_move_line.py:723
+#: code:addons/account/account_move_line.py:767
+#: code:addons/account/invoice.py:722
+#: code:addons/account/invoice.py:725
+#: code:addons/account/invoice.py:728
#, python-format
msgid "Warning !"
msgstr ""
@@ -7119,6 +7124,7 @@ msgstr ""
#: view:account.entries.report:0
#: field:account.entries.report,partner_id:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: view:account.invoice:0
#: field:account.invoice,partner_id:0
#: field:account.invoice.line,partner_id:0
@@ -7149,7 +7155,7 @@ msgid "Can not %s draft/proforma/cancel invoice."
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:787
+#: code:addons/account/invoice.py:795
#, python-format
msgid "No Invoice Lines !"
msgstr ""
@@ -7198,7 +7204,7 @@ msgid "Deferral Method"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:359
+#: code:addons/account/invoice.py:360
#, python-format
msgid "Invoice '%s' is paid."
msgstr ""
@@ -7259,7 +7265,7 @@ msgid "Associated Partner"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1284
+#: code:addons/account/invoice.py:1298
#, python-format
msgid "You must first select a partner !"
msgstr ""
@@ -7324,7 +7330,7 @@ msgid "Choose Fiscal Year"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2841
+#: code:addons/account/account.py:2885
#: code:addons/account/installer.py:495
#, python-format
msgid "Purchase Refund Journal"
@@ -7359,6 +7365,7 @@ msgstr ""
#: view:account.entries.report:0
#: field:account.entries.report,period_id:0
#: view:account.fiscalyear:0
+#: report:account.general.ledger_landscape:0
#: view:account.invoice:0
#: view:account.invoice.report:0
#: field:account.journal.period,period_id:0
@@ -7521,7 +7528,7 @@ msgid "Account Types"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:897
+#: code:addons/account/invoice.py:905
#, python-format
msgid "Cannot create invoice move on centralised journal"
msgstr ""
@@ -7571,6 +7578,7 @@ msgstr ""
#: report:account.account.balance:0
#: report:account.central.journal:0
#: report:account.general.journal:0
+#: report:account.general.ledger_landscape:0
#: report:account.partner.balance:0
msgid "Filter By"
msgstr ""
@@ -7609,7 +7617,7 @@ msgid "Payment Term Line"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2794
+#: code:addons/account/account.py:2838
#: code:addons/account/installer.py:452
#, python-format
msgid "Purchase Journal"
@@ -7776,8 +7784,8 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1131
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1137
+#: code:addons/account/account_move_line.py:1220
#, python-format
msgid "Bad account!"
msgstr ""
@@ -7788,7 +7796,7 @@ msgid "Keep empty for all open fiscal years"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1056
+#: code:addons/account/account_move_line.py:1062
#, python-format
msgid "The account move (%s) for centralisation has been confirmed!"
msgstr ""
@@ -7809,6 +7817,7 @@ msgstr ""
#: field:account.entries.report,currency_id:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.invoice,currency_id:0
#: field:account.invoice.report,currency_id:0
#: field:account.journal,currency:0
@@ -7981,14 +7990,14 @@ msgid "Period from"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2817
+#: code:addons/account/account.py:2861
#: code:addons/account/installer.py:476
#, python-format
msgid "Sales Refund Journal"
msgstr ""
#. module: account
-#: code:addons/account/account.py:927
+#: code:addons/account/account.py:941
#, python-format
msgid ""
"You cannot modify company of this period as its related record exist in "
@@ -8037,7 +8046,7 @@ msgid "Purchase Tax(%)"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:787
+#: code:addons/account/invoice.py:795
#, python-format
msgid "Please create some invoice lines."
msgstr ""
@@ -8053,7 +8062,7 @@ msgid "Configure Your Accounting Application"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2820
+#: code:addons/account/account.py:2864
#: code:addons/account/installer.py:479
#, python-format
msgid "SCNJ"
@@ -8091,6 +8100,7 @@ msgstr ""
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
@@ -8100,7 +8110,7 @@ msgid "Start Period"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2333
+#: code:addons/account/account.py:2357
#, python-format
msgid "Cannot locate parent code for template account!"
msgstr ""
@@ -8137,7 +8147,7 @@ msgid "Accountant validates the accounting entries coming from the invoice. "
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1008
+#: code:addons/account/invoice.py:1014
#, python-format
msgid ""
"You cannot cancel the Invoice which is Partially Paid! You need to "
@@ -8165,7 +8175,7 @@ msgid "You can not create move line on view account."
msgstr ""
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:71
+#: code:addons/account/wizard/account_change_currency.py:70
#, python-format
msgid "Current currency is not confirured properly !"
msgstr ""
@@ -8214,6 +8224,7 @@ msgstr ""
#: field:account.entries.report,balance:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.move.line,balance:0
#: report:account.partner.balance:0
#: selection:account.payment.term.line,value:0
@@ -8232,6 +8243,7 @@ msgstr ""
#. module: account
#: report:account.account.balance:0
+#: report:account.general.ledger_landscape:0
msgid "Display Account"
msgstr ""
@@ -8346,6 +8358,7 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.move.line,move_id:0
#: field:analytic.entries.report,move_id:0
@@ -8353,7 +8366,7 @@ msgid "Move"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1128
+#: code:addons/account/account_move_line.py:1134
#, python-format
msgid "You can not change the tax, you should remove and recreate lines !"
msgstr ""
@@ -8447,6 +8460,7 @@ msgstr ""
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
@@ -8490,7 +8504,7 @@ msgid "Account Subscription"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:717
+#: code:addons/account/invoice.py:725
#, python-format
msgid ""
"Tax base different !\n"
@@ -8517,6 +8531,7 @@ msgstr ""
#: report:account.general.journal:0
#: field:account.general.journal,date_from:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,date_start:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -8545,7 +8560,7 @@ msgid "Unreconciled"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:804
+#: code:addons/account/invoice.py:812
#, python-format
msgid "Bad total !"
msgstr ""
@@ -8603,13 +8618,13 @@ msgid "Active"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:354
+#: code:addons/account/invoice.py:353
#, python-format
msgid "Unknown Error"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1167
+#: code:addons/account/account.py:1181
#, python-format
msgid ""
"You cannot validate a non-balanced entry !\n"
@@ -8652,10 +8667,10 @@ msgstr ""
#: field:account.entries.report,credit:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.model.line,credit:0
#: field:account.move.line,credit:0
-#: report:account.move.voucher:0
#: report:account.partner.balance:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
@@ -8891,7 +8906,6 @@ msgstr ""
#: view:account.move:0
#: selection:account.move,state:0
#: view:account.move.line:0
-#: report:account.move.voucher:0
msgid "Posted"
msgstr ""
@@ -8910,6 +8924,7 @@ msgstr ""
#: report:account.general.journal:0
#: field:account.general.journal,date_to:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,date_stop:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -8963,7 +8978,7 @@ msgid "This is a model for recurring accounting entries"
msgstr ""
#. module: account
-#: code:addons/account/account_analytic_line.py:100
+#: code:addons/account/account_analytic_line.py:99
#, python-format
msgid "There is no income account defined for this product: \"%s\" (id:%d)"
msgstr ""
@@ -9113,8 +9128,8 @@ msgid "End period"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:738
-#: code:addons/account/account_move_line.py:815
+#: code:addons/account/account_move_line.py:729
+#: code:addons/account/account_move_line.py:806
#: code:addons/account/wizard/account_invoice_state.py:44
#: code:addons/account/wizard/account_invoice_state.py:68
#: code:addons/account/wizard/account_report_balance_sheet.py:70
@@ -9180,10 +9195,10 @@ msgstr ""
#: field:account.entries.report,debit:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.model.line,debit:0
#: field:account.move.line,debit:0
-#: report:account.move.voucher:0
#: report:account.partner.balance:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
@@ -9217,7 +9232,7 @@ msgid "Recurring"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:805
+#: code:addons/account/account_move_line.py:796
#, python-format
msgid "Entry is already reconciled"
msgstr ""
@@ -9238,7 +9253,7 @@ msgid "Range"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1246
+#: code:addons/account/account_move_line.py:1252
#, python-format
msgid ""
"Can not create an automatic sequence for this piece !\n"
@@ -9368,7 +9383,7 @@ msgid "Accounts Mapping"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:346
+#: code:addons/account/invoice.py:345
#, python-format
msgid "Invoice '%s' is waiting for validation."
msgstr ""
@@ -9393,7 +9408,7 @@ msgid "The income or expense account related to the selected product."
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1117
+#: code:addons/account/account_move_line.py:1123
#, python-format
msgid "The date of your Journal Entry is not in the defined period!"
msgstr ""
@@ -9598,7 +9613,7 @@ msgid "You must enter a period length that cannot be 0 or below !"
msgstr ""
#. module: account
-#: code:addons/account/account.py:501
+#: code:addons/account/account.py:511
#, python-format
msgid "You cannot remove an account which has account entries!. "
msgstr ""
diff --git a/addons/account/i18n/pt_BR.po b/addons/account/i18n/pt_BR.po
index e3c4f508e2f..12a1b35a98a 100644
--- a/addons/account/i18n/pt_BR.po
+++ b/addons/account/i18n/pt_BR.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2011-05-04 03:16+0000\n"
-"Last-Translator: Emerson \n"
+"PO-Revision-Date: 2011-07-02 18:53+0000\n"
+"Last-Translator: Nédio Batista Marques \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-05-05 04:40+0000\n"
-"X-Generator: Launchpad (build 12959)\n"
+"X-Launchpad-Export-Date: 2011-07-03 04:46+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@@ -33,7 +33,7 @@ msgid "No End of year journal defined for the fiscal year"
msgstr "Nenhum Livro de Encerramento definido para o Ano Fiscal."
#. module: account
-#: code:addons/account/account.py:506
+#: code:addons/account/account.py:516
#, python-format
msgid ""
"You cannot remove/deactivate an account which is set as a property to any "
@@ -67,7 +67,7 @@ msgid "Residual"
msgstr "Residual"
#. module: account
-#: code:addons/account/invoice.py:785
+#: code:addons/account/invoice.py:793
#, python-format
msgid "Please define sequence on invoice journal"
msgstr "Defina uma sequencia para o diário"
@@ -136,7 +136,7 @@ msgid "Accounting Entries-"
msgstr "Lançamentos contábeis-"
#. module: account
-#: code:addons/account/account.py:1291
+#: code:addons/account/account.py:1305
#, python-format
msgid "You can not delete posted movement: \"%s\"!"
msgstr "Você não pode excluir o movimento postado: \"%s\"!"
@@ -182,7 +182,7 @@ msgstr ""
"pagamento sem as remover."
#. module: account
-#: code:addons/account/invoice.py:1421
+#: code:addons/account/invoice.py:1436
#, python-format
msgid "Warning!"
msgstr "Aviso!"
@@ -237,7 +237,7 @@ msgid "account.tax"
msgstr "account.tax"
#. module: account
-#: code:addons/account/account.py:901
+#: code:addons/account/account.py:915
#, python-format
msgid ""
"No period defined for this date: %s !\n"
@@ -270,7 +270,7 @@ msgstr ""
"(IVA) relativos a este código de imposto apareçam nas faturas"
#. module: account
-#: code:addons/account/invoice.py:1210
+#: code:addons/account/invoice.py:1224
#, python-format
msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)"
msgstr "Fatura '%s' é parcialmente paga: %s%s of %s%s (%s%s restantes)"
@@ -286,7 +286,7 @@ msgid "Belgian Reports"
msgstr "Relatórios belgas"
#. module: account
-#: code:addons/account/account_move_line.py:1176
+#: code:addons/account/account_move_line.py:1182
#, python-format
msgid "You can not add/modify entries in a closed journal."
msgstr "Você não pode incluir/modificar as lançamentos em um diário fechado."
@@ -324,12 +324,11 @@ msgid "St."
msgstr "St."
#. module: account
-#: code:addons/account/invoice.py:529
+#: code:addons/account/invoice.py:532
#, python-format
msgid "Invoice line account company does not match with invoice company."
msgstr ""
-"A companhia da conta da linha da fatura, não corresponde à companhia da "
-"fatura."
+"A empresa da conta da linha da fatura, não corresponde à empresa da fatura."
#. module: account
#: field:account.journal.column,field:0
@@ -586,7 +585,7 @@ msgid "Not reconciled transactions"
msgstr "Transação não conciliada"
#. module: account
-#: code:addons/account/account_cash_statement.py:348
+#: code:addons/account/account_cash_statement.py:349
#, python-format
msgid "CashBox Balance is not matching with Calculated Balance !"
msgstr "Balanço de Caixa não confere com Balanço Calculado"
@@ -671,7 +670,7 @@ msgid "Tax Code Amount"
msgstr "Valor do Código do Imposto"
#. module: account
-#: code:addons/account/account.py:2779
+#: code:addons/account/account.py:2823
#: code:addons/account/installer.py:434
#, python-format
msgid "SAJ"
@@ -704,8 +703,8 @@ msgid "Journal Period"
msgstr "Período do Diário"
#. module: account
-#: code:addons/account/account_move_line.py:732
-#: code:addons/account/account_move_line.py:776
+#: code:addons/account/account_move_line.py:723
+#: code:addons/account/account_move_line.py:767
#, python-format
msgid "To reconcile the entries company should be the same for all entries"
msgstr ""
@@ -768,7 +767,7 @@ msgid "Analytic Entries by line"
msgstr "Entradas analíticas por linha"
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:39
+#: code:addons/account/wizard/account_change_currency.py:38
#, python-format
msgid "You can only change currency for Draft Invoice !"
msgstr "É permitido alterar a moeda apenas para Fatura Rascunho"
@@ -872,7 +871,7 @@ msgid "Next Partner to reconcile"
msgstr "Próximo Parceiro a reconciliar"
#. module: account
-#: code:addons/account/account_move_line.py:1191
+#: code:addons/account/account_move_line.py:1197
#, python-format
msgid ""
"You can not do this modification on a confirmed entry ! Please note that you "
@@ -999,11 +998,11 @@ msgid "Code"
msgstr "Código"
#. module: account
-#: code:addons/account/account.py:2083
+#: code:addons/account/account.py:2097
#: code:addons/account/account_bank_statement.py:350
-#: code:addons/account/account_move_line.py:170
+#: code:addons/account/account_move_line.py:169
#: code:addons/account/invoice.py:73
-#: code:addons/account/invoice.py:670
+#: code:addons/account/invoice.py:678
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "No Analytic Journal !"
@@ -1084,7 +1083,6 @@ msgstr "Lucros e Perdas (Conta de Despesas)"
#. module: account
#: report:account.analytic.account.journal:0
-#: report:account.move.voucher:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
msgid "-"
@@ -1175,6 +1173,7 @@ msgstr "# de transações"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
@@ -1182,7 +1181,7 @@ msgid "Entry Label"
msgstr "Aba de lançamento"
#. module: account
-#: code:addons/account/account.py:976
+#: code:addons/account/account.py:990
#, python-format
msgid "You can not modify/delete a journal with entries for this period !"
msgstr ""
@@ -1321,7 +1320,6 @@ msgid "Journal Items Analysis"
msgstr "Análise de Itens de Diário"
#. module: account
-#: model:ir.actions.act_window,name:account.action_partner_all
#: model:ir.ui.menu,name:account.next_id_22
msgid "Partners"
msgstr "Parceiros"
@@ -1351,7 +1349,7 @@ msgid "Central Journal"
msgstr "Diário Central"
#. module: account
-#: code:addons/account/account_move_line.py:1271
+#: code:addons/account/account_move_line.py:1277
#, python-format
msgid "You can not use this general account in this journal !"
msgstr "Voce não pode usar esta conta geral neste diário !"
@@ -1448,7 +1446,7 @@ msgid ""
msgstr "Exemplo: 2% em 14 dias, restante em 30 dias no fim do mês."
#. module: account
-#: code:addons/account/invoice.py:815
+#: code:addons/account/invoice.py:823
#, python-format
msgid ""
"Cannot create the invoice !\n"
@@ -1618,7 +1616,6 @@ msgid "Separated Journal Sequences"
msgstr "Sequências de diário separadas"
#. module: account
-#: field:account.bank.statement,user_id:0
#: view:account.invoice:0
msgid "Responsible"
msgstr "Responsável"
@@ -1690,7 +1687,7 @@ msgid "Error! You cannot define overlapping fiscal years"
msgstr "Erro! Você não pode definir anos fiscais que se sobreponham."
#. module: account
-#: code:addons/account/account_move_line.py:808
+#: code:addons/account/account_move_line.py:799
#, python-format
msgid "The account is not defined to be reconciled !"
msgstr "A conta não está definida para ser reconciliada !"
@@ -1725,7 +1722,7 @@ msgid "Receivables & Payables"
msgstr "Recebíveis & Pagáveis"
#. module: account
-#: code:addons/account/account_move_line.py:815
+#: code:addons/account/account_move_line.py:806
#, python-format
msgid "You have to provide an account for the write off entry !"
msgstr "Você tem que fornecer uma conta para o lançamento da baixa !"
@@ -1761,7 +1758,7 @@ msgid "Customer Ref:"
msgstr "Ref.Cliente:"
#. module: account
-#: code:addons/account/account_cash_statement.py:328
+#: code:addons/account/account_cash_statement.py:329
#, python-format
msgid "User %s does not have rights to access %s journal !"
msgstr "Usuário %s não possui permissões para acessar o diário %s !"
@@ -1782,7 +1779,7 @@ msgid "Tax Declaration: Credit Notes"
msgstr "Declaração de Impostos: Observações de Crédito"
#. module: account
-#: code:addons/account/account.py:499
+#: code:addons/account/account.py:509
#, python-format
msgid "You cannot deactivate an account that contains account moves."
msgstr ""
@@ -1799,7 +1796,7 @@ msgid "You can not create move line on closed account."
msgstr "Você não pode criar linhas de movimento em uma conta fechada."
#. module: account
-#: code:addons/account/account.py:519
+#: code:addons/account/account.py:529
#, python-format
msgid ""
"You cannot change the type of account from 'Closed' to any other type which "
@@ -2082,7 +2079,7 @@ msgid " Journal"
msgstr " Diário"
#. module: account
-#: code:addons/account/account.py:1319
+#: code:addons/account/account.py:1333
#, python-format
msgid ""
"There is no default default debit account defined \n"
@@ -2144,7 +2141,7 @@ msgid "Description"
msgstr "Descrição"
#. module: account
-#: code:addons/account/account.py:2844
+#: code:addons/account/account.py:2888
#: code:addons/account/installer.py:498
#, python-format
msgid "ECNJ"
@@ -2164,7 +2161,7 @@ msgid "Income Account"
msgstr "Conta de Receita"
#. module: account
-#: code:addons/account/invoice.py:352
+#: code:addons/account/invoice.py:351
#, python-format
msgid "There is no Accounting Journal of type Sale/Purchase defined!"
msgstr "Não existe Diário Contábil do tipo Compra/Venda definido!"
@@ -2175,6 +2172,7 @@ msgid "Accounting Properties"
msgstr "Propriedades da Conta"
#. module: account
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.print.journal,sort_selection:0
msgid "Entries Sorted By"
@@ -2203,6 +2201,7 @@ msgstr "Modelo de produto"
#: field:account.fiscalyear,name:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.journal.period,fiscalyear_id:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -2312,7 +2311,7 @@ msgid "Account Tax Code"
msgstr "Código da conta de impostos"
#. module: account
-#: code:addons/account/invoice.py:545
+#: code:addons/account/invoice.py:552
#, python-format
msgid ""
"Can't find any account journal of %s type for this company.\n"
@@ -2393,7 +2392,7 @@ msgid "Account Model Entries"
msgstr "Modelo de entrada de contas"
#. module: account
-#: code:addons/account/account.py:2796
+#: code:addons/account/account.py:2840
#: code:addons/account/installer.py:454
#, python-format
msgid "EXJ"
@@ -2484,7 +2483,7 @@ msgid "Accounts"
msgstr "Contas"
#. module: account
-#: code:addons/account/invoice.py:351
+#: code:addons/account/invoice.py:350
#, python-format
msgid "Configuration Error!"
msgstr "Erro de Configuração!"
@@ -2496,13 +2495,12 @@ msgid "Average Price"
msgstr "Preço médio"
#. module: account
-#: report:account.move.voucher:0
#: report:account.overdue:0
msgid "Date:"
msgstr "Data:"
#. module: account
-#: code:addons/account/account.py:640
+#: code:addons/account/account.py:654
#, python-format
msgid ""
"You cannot modify company of this journal as its related record exist in "
@@ -2540,6 +2538,7 @@ msgstr "Desc.(%)"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.overdue:0
#: report:account.third_party_ledger:0
@@ -2656,16 +2655,16 @@ msgid "This wizard will create recurring accounting entries"
msgstr "Este assistente irá criar lançamentos contábeis periódicos"
#. module: account
-#: code:addons/account/account.py:1181
+#: code:addons/account/account.py:1195
#, python-format
msgid "No sequence defined on the journal !"
msgstr "Nenhuma seqüência definida no diário !"
#. module: account
-#: code:addons/account/account.py:2083
+#: code:addons/account/account.py:2097
#: code:addons/account/account_bank_statement.py:350
-#: code:addons/account/account_move_line.py:170
-#: code:addons/account/invoice.py:670
+#: code:addons/account/account_move_line.py:169
+#: code:addons/account/invoice.py:678
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
@@ -2837,7 +2836,7 @@ msgid "Analytic Entries"
msgstr "Lançamentos analíticos"
#. module: account
-#: code:addons/account/account.py:822
+#: code:addons/account/account.py:836
#, python-format
msgid ""
"No fiscal year defined for this date !\n"
@@ -2969,7 +2968,7 @@ msgid "BNK%s"
msgstr "BCO%s"
#. module: account
-#: code:addons/account/account.py:2906
+#: code:addons/account/account.py:2950
#: code:addons/account/installer.py:296
#, python-format
msgid "BNK"
@@ -3091,6 +3090,7 @@ msgstr "Deixe vazio para usar a conta de despesas"
#: field:account.common.report,journal_ids:0
#: report:account.general.journal:0
#: field:account.general.journal,journal_ids:0
+#: report:account.general.ledger_landscape:0
#: view:account.journal.period:0
#: report:account.partner.balance:0
#: field:account.partner.balance,journal_ids:0
@@ -3151,7 +3151,7 @@ msgid "Starting Balance"
msgstr "Saldo Inicial"
#. module: account
-#: code:addons/account/invoice.py:1284
+#: code:addons/account/invoice.py:1298
#, python-format
msgid "No Partner Defined !"
msgstr "Número do parceiro definido !"
@@ -3195,7 +3195,6 @@ msgstr "Diário"
#: view:account.invoice.report:0
#: selection:account.invoice.report,state:0
#: selection:account.journal.period,state:0
-#: report:account.move.voucher:0
#: view:account.subscription:0
#: selection:account.subscription,state:0
#: selection:report.invoice.created,state:0
@@ -3249,7 +3248,7 @@ msgstr ""
"que você não poderá mais alterar seus campos."
#. module: account
-#: code:addons/account/invoice.py:370
+#: code:addons/account/invoice.py:373
#, python-format
msgid "Cannot delete invoice(s) that are already opened or paid !"
msgstr "Impossível excluir fatura(s) que já foram abertas ou pagas!"
@@ -3312,7 +3311,7 @@ msgstr ""
"'Cancelado' ou 'Concluído'!"
#. module: account
-#: code:addons/account/account.py:522
+#: code:addons/account/account.py:532
#, python-format
msgid ""
"You cannot change the type of account from '%s' to '%s' type as it contains "
@@ -3323,6 +3322,7 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
msgid "Counterpart"
msgstr "Contra-parte"
@@ -3428,6 +3428,7 @@ msgstr ""
#: field:account.entries.report,date:0
#: selection:account.general.journal,filter:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.invoice.report,date:0
#: report:account.journal.period.print:0
#: view:account.move:0
@@ -3471,7 +3472,7 @@ msgid "Chart of Accounts Template"
msgstr "Modelo de plano de contas"
#. module: account
-#: code:addons/account/account.py:2095
+#: code:addons/account/account.py:2109
#, python-format
msgid ""
"Maturity date of entry line generated by model line '%s' of model '%s' is "
@@ -3483,13 +3484,13 @@ msgstr ""
"Por favor, defina o parceiro sobre ela!"
#. module: account
-#: code:addons/account/account_move_line.py:810
+#: code:addons/account/account_move_line.py:801
#, python-format
msgid "Some entries are already reconciled !"
msgstr "Alguns lançamentos já estão conciliados !"
#. module: account
-#: code:addons/account/account.py:1204
+#: code:addons/account/account.py:1218
#, python-format
msgid ""
"You cannot validate a Journal Entry unless all journal items are in same "
@@ -3617,7 +3618,7 @@ msgid "Analytic Items"
msgstr "Itens Analíticos"
#. module: account
-#: code:addons/account/account_move_line.py:1128
+#: code:addons/account/account_move_line.py:1134
#, python-format
msgid "Unable to change tax !"
msgstr "Não foi possível alterar o imposto!"
@@ -3628,14 +3629,14 @@ msgid "#Entries"
msgstr "#Entradas"
#. module: account
-#: code:addons/account/invoice.py:1422
+#: code:addons/account/invoice.py:1437
#, python-format
msgid ""
"You selected an Unit of Measure which is not compatible with the product."
msgstr "Você selecionou uma unidade que não é compatível com o produto."
#. module: account
-#: code:addons/account/invoice.py:473
+#: code:addons/account/invoice.py:476
#, python-format
msgid ""
"The Payment Term of Supplier does not have Payment Term Lines(Computation) "
@@ -3949,7 +3950,7 @@ msgid "Acc.Type"
msgstr "Tipo de Conta"
#. module: account
-#: code:addons/account/invoice.py:714
+#: code:addons/account/invoice.py:722
#, python-format
msgid "Global taxes defined, but are not in invoice lines !"
msgstr ""
@@ -4014,7 +4015,7 @@ msgstr ""
"...) os quais já são gerados com status 'Postado'."
#. module: account
-#: code:addons/account/account_analytic_line.py:91
+#: code:addons/account/account_analytic_line.py:90
#, python-format
msgid "There is no expense account defined for this product: \"%s\" (id:%d)"
msgstr ""
@@ -4193,7 +4194,7 @@ msgid "Credit Notes"
msgstr "Notas de crédito"
#. module: account
-#: code:addons/account/account.py:2067
+#: code:addons/account/account.py:2081
#: code:addons/account/wizard/account_use_model.py:69
#, python-format
msgid "Unable to find a valid period !"
@@ -4247,7 +4248,7 @@ msgstr "Taxa incluida no preço"
#. module: account
#: model:ir.model,name:account.model_account_analytic_cost_ledger_journal_report
msgid "Account Analytic Cost Ledger For Journal Report"
-msgstr ""
+msgstr "Livro-razão Conta Custo Analítico para o Relatório de Diários"
#. module: account
#: model:ir.actions.act_window,name:account.action_model_form
@@ -4266,11 +4267,11 @@ msgid "Change"
msgstr "Alterar"
#. module: account
-#: code:addons/account/account.py:1290
-#: code:addons/account/account.py:1318
-#: code:addons/account/account.py:1325
-#: code:addons/account/account_move_line.py:1055
-#: code:addons/account/invoice.py:896
+#: code:addons/account/account.py:1304
+#: code:addons/account/account.py:1332
+#: code:addons/account/account.py:1339
+#: code:addons/account/account_move_line.py:1061
+#: code:addons/account/invoice.py:904
#: code:addons/account/wizard/account_automatic_reconcile.py:152
#: code:addons/account/wizard/account_fiscalyear_close.py:78
#: code:addons/account/wizard/account_fiscalyear_close.py:81
@@ -4376,7 +4377,7 @@ msgid "You must define an analytic journal of type '%s' !"
msgstr "Você tem que definir um diário analítico '%s' !"
#. module: account
-#: code:addons/account/account.py:1397
+#: code:addons/account/account.py:1411
#, python-format
msgid ""
"Couldn't create move with currency different from the secondary currency of "
@@ -4448,7 +4449,7 @@ msgid "Invoices"
msgstr "Faturas"
#. module: account
-#: code:addons/account/invoice.py:804
+#: code:addons/account/invoice.py:812
#, python-format
msgid ""
"Please verify the price of the invoice !\n"
@@ -4562,25 +4563,24 @@ msgid "Third Party (Country)"
msgstr "Terceiro (País)"
#. module: account
-#: code:addons/account/account.py:938
-#: code:addons/account/account.py:940
-#: code:addons/account/account.py:1181
-#: code:addons/account/account.py:1393
-#: code:addons/account/account.py:1397
-#: code:addons/account/account_cash_statement.py:249
-#: code:addons/account/account_move_line.py:780
-#: code:addons/account/account_move_line.py:803
-#: code:addons/account/account_move_line.py:805
-#: code:addons/account/account_move_line.py:808
-#: code:addons/account/account_move_line.py:810
-#: code:addons/account/account_move_line.py:1117
+#: code:addons/account/account.py:952
+#: code:addons/account/account.py:954
+#: code:addons/account/account.py:1195
+#: code:addons/account/account.py:1407
+#: code:addons/account/account.py:1411
+#: code:addons/account/account_cash_statement.py:250
+#: code:addons/account/account_move_line.py:771
+#: code:addons/account/account_move_line.py:794
+#: code:addons/account/account_move_line.py:796
+#: code:addons/account/account_move_line.py:799
+#: code:addons/account/account_move_line.py:801
+#: code:addons/account/account_move_line.py:1123
#: code:addons/account/report/common_report_header.py:92
-#: code:addons/account/wizard/account_change_currency.py:39
-#: code:addons/account/wizard/account_change_currency.py:60
-#: code:addons/account/wizard/account_change_currency.py:65
-#: code:addons/account/wizard/account_change_currency.py:71
+#: code:addons/account/wizard/account_change_currency.py:38
+#: code:addons/account/wizard/account_change_currency.py:59
+#: code:addons/account/wizard/account_change_currency.py:64
+#: code:addons/account/wizard/account_change_currency.py:70
#: code:addons/account/wizard/account_move_bank_reconcile.py:49
-#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_report_common.py:120
#: code:addons/account/wizard/account_report_common.py:126
#, python-format
@@ -4602,7 +4602,7 @@ msgid "Bank Details"
msgstr "Detalhes bancários"
#. module: account
-#: code:addons/account/invoice.py:720
+#: code:addons/account/invoice.py:728
#, python-format
msgid "Taxes missing !"
msgstr "Impostos faltando!"
@@ -4661,7 +4661,7 @@ msgid "Check Date not in the Period"
msgstr "Verificar Data fora do Período"
#. module: account
-#: code:addons/account/account.py:1210
+#: code:addons/account/account.py:1224
#, python-format
msgid ""
"You can not modify a posted entry of this journal !\n"
@@ -4683,7 +4683,7 @@ msgid "Child Tax Accounts"
msgstr "Contas de impostos derivados (subcontas)"
#. module: account
-#: code:addons/account/account.py:940
+#: code:addons/account/account.py:954
#, python-format
msgid "Start period should be smaller then End period"
msgstr "Período Inicial deve ser anterior ao Período Final"
@@ -4713,6 +4713,7 @@ msgstr "Balanço analítico -"
#: report:account.general.journal:0
#: field:account.general.journal,target_move:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.move.journal,target_move:0
#: report:account.partner.balance:0
@@ -4795,7 +4796,7 @@ msgid "Line 1:"
msgstr "Linha 1:"
#. module: account
-#: code:addons/account/account.py:1167
+#: code:addons/account/account.py:1181
#, python-format
msgid "Integrity Error !"
msgstr "Erro de integridade !"
@@ -4945,7 +4946,7 @@ msgstr ""
"um parceiro"
#. module: account
-#: code:addons/account/account.py:2067
+#: code:addons/account/account.py:2081
#: code:addons/account/wizard/account_use_model.py:69
#, python-format
msgid "No period found !"
@@ -5020,7 +5021,7 @@ msgstr ""
"28/02."
#. module: account
-#: code:addons/account/account.py:2896
+#: code:addons/account/account.py:2940
#: code:addons/account/installer.py:283
#: code:addons/account/installer.py:295
#, python-format
@@ -5048,7 +5049,7 @@ msgid "Start of period"
msgstr "Início do período"
#. module: account
-#: code:addons/account/account_move_line.py:1193
+#: code:addons/account/account_move_line.py:1199
#, python-format
msgid ""
"You can not do this modification on a reconciled entry ! Please note that "
@@ -5060,7 +5061,7 @@ msgstr ""
#. module: account
#: model:ir.model,name:account.model_account_common_account_report
msgid "Account Common Account Report"
-msgstr ""
+msgstr "Relatório de Contas da Contabilidade Geral"
#. module: account
#: field:account.bank.statement.line,name:0
@@ -5106,12 +5107,12 @@ msgstr "Diário de lançamentos do fim do ano"
#. module: account
#: code:addons/account/account_bank_statement.py:331
-#: code:addons/account/invoice.py:405
-#: code:addons/account/invoice.py:505
-#: code:addons/account/invoice.py:520
-#: code:addons/account/invoice.py:528
-#: code:addons/account/invoice.py:545
-#: code:addons/account/invoice.py:1347
+#: code:addons/account/invoice.py:408
+#: code:addons/account/invoice.py:508
+#: code:addons/account/invoice.py:523
+#: code:addons/account/invoice.py:531
+#: code:addons/account/invoice.py:552
+#: code:addons/account/invoice.py:1361
#: code:addons/account/wizard/account_move_journal.py:63
#, python-format
msgid "Configuration Error !"
@@ -5191,7 +5192,7 @@ msgid "Sort By"
msgstr "Ordenar Por"
#. module: account
-#: code:addons/account/account.py:1326
+#: code:addons/account/account.py:1340
#, python-format
msgid ""
"There is no default default credit account defined \n"
@@ -5346,7 +5347,7 @@ msgid "Generate Opening Entries"
msgstr "Gerar Lançamentos de Abertura"
#. module: account
-#: code:addons/account/account_move_line.py:738
+#: code:addons/account/account_move_line.py:729
#, python-format
msgid "Already Reconciled!"
msgstr "Já Reconciliado"
@@ -5384,7 +5385,7 @@ msgstr "Sub-contas"
#. module: account
#: view:account.move.line.reconcile:0
-#: code:addons/account/account_move_line.py:830
+#: code:addons/account/account_move_line.py:821
#, python-format
msgid "Write-Off"
msgstr "Baixa ou exclusão"
@@ -5433,6 +5434,8 @@ msgid ""
"Streamlines invoice payment and creates hooks to plug automated payment "
"systems in."
msgstr ""
+"Simplifica o pagamento de faturas e cria ligações com o sistema de pagamento "
+"automático."
#. module: account
#: field:account.payment.term.line,value:0
@@ -5534,7 +5537,7 @@ msgid "# of Lines"
msgstr "# de Linhas"
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:60
+#: code:addons/account/wizard/account_change_currency.py:59
#, python-format
msgid "New currency is not confirured properly !"
msgstr "A nova moeda não está configurada corretamente !"
@@ -5559,14 +5562,14 @@ msgid "Filter by"
msgstr "Filtrar por"
#. module: account
-#: code:addons/account/account_move_line.py:1131
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1137
+#: code:addons/account/account_move_line.py:1220
#, python-format
msgid "You can not use an inactive account!"
msgstr "Voce não pode usar uma conta inativa!"
#. module: account
-#: code:addons/account/account_move_line.py:803
+#: code:addons/account/account_move_line.py:794
#, python-format
msgid "Entries are not of the same account or already reconciled ! "
msgstr "Lançamentos não são das mesmas contas ou já estão conciliados ! "
@@ -5601,7 +5604,7 @@ msgstr "7"
#. module: account
#: code:addons/account/account_bank_statement.py:391
-#: code:addons/account/invoice.py:370
+#: code:addons/account/invoice.py:373
#, python-format
msgid "Invalid action !"
msgstr "Ação invalida !"
@@ -5821,7 +5824,7 @@ msgid "Companies"
msgstr "Empresas"
#. module: account
-#: code:addons/account/account.py:532
+#: code:addons/account/account.py:546
#, python-format
msgid ""
"You cannot modify Company of account as its related record exist in Entry "
@@ -6102,9 +6105,9 @@ msgid "Optional create"
msgstr "Criação opcional"
#. module: account
-#: code:addons/account/invoice.py:406
-#: code:addons/account/invoice.py:506
-#: code:addons/account/invoice.py:1348
+#: code:addons/account/invoice.py:409
+#: code:addons/account/invoice.py:509
+#: code:addons/account/invoice.py:1362
#, python-format
msgid "Can not find account chart for this company, Please Create account."
msgstr ""
@@ -6257,8 +6260,8 @@ msgid "Analytic Entries Statistics"
msgstr "Estatísticas de Lançamentos Analíticos"
#. module: account
-#: code:addons/account/account_analytic_line.py:143
-#: code:addons/account/account_move_line.py:905
+#: code:addons/account/account_analytic_line.py:141
+#: code:addons/account/account_move_line.py:897
#, python-format
msgid "Entries: "
msgstr "Lancamentos: "
@@ -6269,7 +6272,7 @@ msgid "Create manual recurring entries in a chosen journal."
msgstr "Criar lançamentos recorrentes manuais no diário escolhido."
#. module: account
-#: code:addons/account/account.py:1393
+#: code:addons/account/account.py:1407
#, python-format
msgid "Couldn't create move between different companies"
msgstr "Não foi possível criar movimentação entre empresas diferentes"
@@ -6316,7 +6319,7 @@ msgid "Total debit"
msgstr "Débito Total"
#. module: account
-#: code:addons/account/account_move_line.py:781
+#: code:addons/account/account_move_line.py:772
#, python-format
msgid "Entry \"%s\" is not valid !"
msgstr "Lançamento \"%s\" não é válido"
@@ -6386,30 +6389,31 @@ msgid " valuation: percent"
msgstr " valorização: porcentagem"
#. module: account
-#: code:addons/account/account.py:499
-#: code:addons/account/account.py:501
-#: code:addons/account/account.py:822
-#: code:addons/account/account.py:901
-#: code:addons/account/account.py:976
-#: code:addons/account/account.py:1204
-#: code:addons/account/account.py:1210
-#: code:addons/account/account.py:2095
-#: code:addons/account/account.py:2333
-#: code:addons/account/account_analytic_line.py:90
-#: code:addons/account/account_analytic_line.py:99
+#: code:addons/account/account.py:509
+#: code:addons/account/account.py:511
+#: code:addons/account/account.py:836
+#: code:addons/account/account.py:915
+#: code:addons/account/account.py:990
+#: code:addons/account/account.py:1218
+#: code:addons/account/account.py:1224
+#: code:addons/account/account.py:2109
+#: code:addons/account/account.py:2357
+#: code:addons/account/account_analytic_line.py:89
+#: code:addons/account/account_analytic_line.py:98
#: code:addons/account/account_bank_statement.py:292
#: code:addons/account/account_bank_statement.py:305
#: code:addons/account/account_bank_statement.py:345
-#: code:addons/account/account_cash_statement.py:328
-#: code:addons/account/account_cash_statement.py:348
-#: code:addons/account/account_move_line.py:1176
-#: code:addons/account/account_move_line.py:1191
-#: code:addons/account/account_move_line.py:1193
-#: code:addons/account/invoice.py:785
-#: code:addons/account/invoice.py:815
-#: code:addons/account/invoice.py:1008
+#: code:addons/account/account_cash_statement.py:329
+#: code:addons/account/account_cash_statement.py:349
+#: code:addons/account/account_move_line.py:1182
+#: code:addons/account/account_move_line.py:1197
+#: code:addons/account/account_move_line.py:1199
+#: code:addons/account/invoice.py:793
+#: code:addons/account/invoice.py:823
+#: code:addons/account/invoice.py:1014
#: code:addons/account/wizard/account_invoice_refund.py:100
#: code:addons/account/wizard/account_invoice_refund.py:102
+#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_use_model.py:44
#, python-format
msgid "Error !"
@@ -6529,7 +6533,7 @@ msgid "Journal Select"
msgstr "Selecionar Diário"
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:65
+#: code:addons/account/wizard/account_change_currency.py:64
#, python-format
msgid "Currnt currency is not confirured properly !"
msgstr "A moeda atual não está configurada corretamente !"
@@ -6546,9 +6550,11 @@ msgstr "Posição Fiscal dos Impostos"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: view:account.report.general.ledger:0
#: model:ir.actions.act_window,name:account.action_account_general_ledger_menu
#: model:ir.actions.report.xml,name:account.account_general_ledger
+#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape
#: model:ir.ui.menu,name:account.menu_general_ledger
msgid "General Ledger"
msgstr "Livro Razão"
@@ -6609,7 +6615,7 @@ msgid "Total:"
msgstr "Total:"
#. module: account
-#: code:addons/account/account.py:2050
+#: code:addons/account/account.py:2064
#, python-format
msgid ""
"You can specify year, month and date in the name of the model using the "
@@ -6646,7 +6652,7 @@ msgid "Child Codes"
msgstr "Códigos derivados (sub-contas)"
#. module: account
-#: code:addons/account/invoice.py:473
+#: code:addons/account/invoice.py:476
#: code:addons/account/wizard/account_invoice_refund.py:137
#, python-format
msgid "Data Insufficient !"
@@ -6830,7 +6836,7 @@ msgid "Lines"
msgstr "Linhas"
#. module: account
-#: code:addons/account/invoice.py:521
+#: code:addons/account/invoice.py:524
#, python-format
msgid ""
"Can not find account chart for this company in invoice line account, Please "
@@ -7031,7 +7037,7 @@ msgstr ""
"personalizado."
#. module: account
-#: code:addons/account/account.py:938
+#: code:addons/account/account.py:952
#, python-format
msgid "You should have chosen periods that belongs to the same company"
msgstr "Você deveria ter escolhido períodos que pertencem a mesma empresa"
@@ -7145,7 +7151,7 @@ msgid "Sign on Reports"
msgstr "Assinar relatórios"
#. module: account
-#: code:addons/account/account_cash_statement.py:249
+#: code:addons/account/account_cash_statement.py:250
#, python-format
msgid "You can not have two open register for the same journal"
msgstr "Você não pode ter dois registradores abertos para o mesmo diário"
@@ -7180,7 +7186,6 @@ msgstr ""
#. module: account
#: report:account.invoice:0
#: view:account.invoice:0
-#: report:account.move.voucher:0
msgid "PRO-FORMA"
msgstr "Pro-forma"
@@ -7212,6 +7217,7 @@ msgstr "Informação Opcional"
#. module: account
#: view:account.analytic.line:0
+#: field:account.bank.statement,user_id:0
#: view:account.journal:0
#: field:account.journal,user_id:0
#: view:analytic.entries.report:0
@@ -7239,13 +7245,13 @@ msgstr ""
"Você pode colocar data limite para o pagamento desta linha."
#. module: account
-#: code:addons/account/account_move_line.py:1271
+#: code:addons/account/account_move_line.py:1277
#, python-format
msgid "Bad account !"
msgstr "Conta errada!"
#. module: account
-#: code:addons/account/account.py:2777
+#: code:addons/account/account.py:2821
#: code:addons/account/installer.py:432
#, python-format
msgid "Sales Journal"
@@ -7263,7 +7269,7 @@ msgid "Invoice Tax"
msgstr "Taxa de fatura"
#. module: account
-#: code:addons/account/account_move_line.py:1246
+#: code:addons/account/account_move_line.py:1252
#, python-format
msgid "No piece number !"
msgstr "Nenhum número da parte!"
@@ -7510,17 +7516,17 @@ msgid "Fixed"
msgstr "Fixo"
#. module: account
-#: code:addons/account/account.py:506
-#: code:addons/account/account.py:519
-#: code:addons/account/account.py:522
+#: code:addons/account/account.py:516
+#: code:addons/account/account.py:529
#: code:addons/account/account.py:532
-#: code:addons/account/account.py:640
-#: code:addons/account/account.py:927
-#: code:addons/account/account_move_line.py:732
-#: code:addons/account/account_move_line.py:776
-#: code:addons/account/invoice.py:714
-#: code:addons/account/invoice.py:717
-#: code:addons/account/invoice.py:720
+#: code:addons/account/account.py:546
+#: code:addons/account/account.py:654
+#: code:addons/account/account.py:941
+#: code:addons/account/account_move_line.py:723
+#: code:addons/account/account_move_line.py:767
+#: code:addons/account/invoice.py:722
+#: code:addons/account/invoice.py:725
+#: code:addons/account/invoice.py:728
#, python-format
msgid "Warning !"
msgstr "Atenção !"
@@ -7552,6 +7558,7 @@ msgstr "Valor (por extenso) :"
#: view:account.entries.report:0
#: field:account.entries.report,partner_id:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: view:account.invoice:0
#: field:account.invoice,partner_id:0
#: field:account.invoice.line,partner_id:0
@@ -7582,7 +7589,7 @@ msgid "Can not %s draft/proforma/cancel invoice."
msgstr "Não pode %s provisório/proforma/cancelar fatura."
#. module: account
-#: code:addons/account/invoice.py:787
+#: code:addons/account/invoice.py:795
#, python-format
msgid "No Invoice Lines !"
msgstr "Sem Linhas na Fatura !"
@@ -7631,7 +7638,7 @@ msgid "Deferral Method"
msgstr "Método para deferimento"
#. module: account
-#: code:addons/account/invoice.py:359
+#: code:addons/account/invoice.py:360
#, python-format
msgid "Invoice '%s' is paid."
msgstr "A Fatura '%s' está paga."
@@ -7696,7 +7703,7 @@ msgid "Associated Partner"
msgstr "Parceiro Associado"
#. module: account
-#: code:addons/account/invoice.py:1284
+#: code:addons/account/invoice.py:1298
#, python-format
msgid "You must first select a partner !"
msgstr "Voce precisa selecionar um parceiro primeiro !"
@@ -7766,7 +7773,7 @@ msgid "Choose Fiscal Year"
msgstr "Escolha o Ano Fiscal"
#. module: account
-#: code:addons/account/account.py:2841
+#: code:addons/account/account.py:2885
#: code:addons/account/installer.py:495
#, python-format
msgid "Purchase Refund Journal"
@@ -7804,6 +7811,7 @@ msgstr "Gestão Financeira e Contábil"
#: view:account.entries.report:0
#: field:account.entries.report,period_id:0
#: view:account.fiscalyear:0
+#: report:account.general.ledger_landscape:0
#: view:account.invoice:0
#: view:account.invoice.report:0
#: field:account.journal.period,period_id:0
@@ -7983,7 +7991,7 @@ msgid "Account Types"
msgstr "Tipos de Conta"
#. module: account
-#: code:addons/account/invoice.py:897
+#: code:addons/account/invoice.py:905
#, python-format
msgid "Cannot create invoice move on centralised journal"
msgstr "Não é possível criar um movimento de fatura no diário centralizado"
@@ -8033,6 +8041,7 @@ msgstr "Diário de Devolução"
#: report:account.account.balance:0
#: report:account.central.journal:0
#: report:account.general.journal:0
+#: report:account.general.ledger_landscape:0
#: report:account.partner.balance:0
msgid "Filter By"
msgstr "Filtrar Por"
@@ -8075,7 +8084,7 @@ msgid "Payment Term Line"
msgstr "Linha da forma de pagamento"
#. module: account
-#: code:addons/account/account.py:2794
+#: code:addons/account/account.py:2838
#: code:addons/account/installer.py:452
#, python-format
msgid "Purchase Journal"
@@ -8247,8 +8256,8 @@ msgstr ""
"O valor do recibo deve ser o mesmo valor da linha equivalente no extrato"
#. module: account
-#: code:addons/account/account_move_line.py:1131
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1137
+#: code:addons/account/account_move_line.py:1220
#, python-format
msgid "Bad account!"
msgstr "Conta inválida!"
@@ -8259,7 +8268,7 @@ msgid "Keep empty for all open fiscal years"
msgstr "Deixe vazio para todos os anos fiscais abertos"
#. module: account
-#: code:addons/account/account_move_line.py:1056
+#: code:addons/account/account_move_line.py:1062
#, python-format
msgid "The account move (%s) for centralisation has been confirmed!"
msgstr "O movimento de conta (%s) para centralização foi confirmado!"
@@ -8282,6 +8291,7 @@ msgstr ""
#: field:account.entries.report,currency_id:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.invoice,currency_id:0
#: field:account.invoice.report,currency_id:0
#: field:account.journal,currency:0
@@ -8479,14 +8489,14 @@ msgid "Period from"
msgstr "Período de"
#. module: account
-#: code:addons/account/account.py:2817
+#: code:addons/account/account.py:2861
#: code:addons/account/installer.py:476
#, python-format
msgid "Sales Refund Journal"
msgstr "Diário de Devolução de Vendas"
#. module: account
-#: code:addons/account/account.py:927
+#: code:addons/account/account.py:941
#, python-format
msgid ""
"You cannot modify company of this period as its related record exist in "
@@ -8537,7 +8547,7 @@ msgid "Purchase Tax(%)"
msgstr "Imposto de Compra(%)"
#. module: account
-#: code:addons/account/invoice.py:787
+#: code:addons/account/invoice.py:795
#, python-format
msgid "Please create some invoice lines."
msgstr "Por favor, crie algumas linhas da fatura."
@@ -8553,7 +8563,7 @@ msgid "Configure Your Accounting Application"
msgstr "Configure sua Aplicação Contábil"
#. module: account
-#: code:addons/account/account.py:2820
+#: code:addons/account/account.py:2864
#: code:addons/account/installer.py:479
#, python-format
msgid "SCNJ"
@@ -8597,6 +8607,7 @@ msgstr "Gestão de Acompanhamentos"
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
@@ -8606,7 +8617,7 @@ msgid "Start Period"
msgstr "Período Inicial"
#. module: account
-#: code:addons/account/account.py:2333
+#: code:addons/account/account.py:2357
#, python-format
msgid "Cannot locate parent code for template account!"
msgstr "Impossível localizar o código da conta pai para o modelo de conta!"
@@ -8643,7 +8654,7 @@ msgid "Accountant validates the accounting entries coming from the invoice. "
msgstr "O Contador valida os lançamentos contábeis vindos da fatura. "
#. module: account
-#: code:addons/account/invoice.py:1008
+#: code:addons/account/invoice.py:1014
#, python-format
msgid ""
"You cannot cancel the Invoice which is Partially Paid! You need to "
@@ -8673,7 +8684,7 @@ msgid "You can not create move line on view account."
msgstr "Você não pode criar linhas de movimento em uma conta de exibição."
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:71
+#: code:addons/account/wizard/account_change_currency.py:70
#, python-format
msgid "Current currency is not confirured properly !"
msgstr "A moeda atual não está configurada corretamente !"
@@ -8726,6 +8737,7 @@ msgstr "Manter vazio para usar a conta de receita"
#: field:account.entries.report,balance:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.move.line,balance:0
#: report:account.partner.balance:0
#: selection:account.payment.term.line,value:0
@@ -8744,6 +8756,7 @@ msgstr "Entrada manual ou automática no sistema"
#. module: account
#: report:account.account.balance:0
+#: report:account.general.ledger_landscape:0
msgid "Display Account"
msgstr "Mostrar Conta"
@@ -8870,6 +8883,7 @@ msgstr "Lançamento manual"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.move.line,move_id:0
#: field:analytic.entries.report,move_id:0
@@ -8877,7 +8891,7 @@ msgid "Move"
msgstr "Movimento"
#. module: account
-#: code:addons/account/account_move_line.py:1128
+#: code:addons/account/account_move_line.py:1134
#, python-format
msgid "You can not change the tax, you should remove and recreate lines !"
msgstr ""
@@ -8976,6 +8990,7 @@ msgstr "Balanço de Conta Analítica"
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
@@ -9019,7 +9034,7 @@ msgid "Account Subscription"
msgstr "Inscriçãoda conta"
#. module: account
-#: code:addons/account/invoice.py:717
+#: code:addons/account/invoice.py:725
#, python-format
msgid ""
"Tax base different !\n"
@@ -9048,6 +9063,7 @@ msgstr "Inscrição de Lançamento"
#: report:account.general.journal:0
#: field:account.general.journal,date_from:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,date_start:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -9076,7 +9092,7 @@ msgid "Unreconciled"
msgstr "Não conciliado"
#. module: account
-#: code:addons/account/invoice.py:804
+#: code:addons/account/invoice.py:812
#, python-format
msgid "Bad total !"
msgstr "Total inválido!"
@@ -9134,13 +9150,13 @@ msgid "Active"
msgstr "Ativo"
#. module: account
-#: code:addons/account/invoice.py:354
+#: code:addons/account/invoice.py:353
#, python-format
msgid "Unknown Error"
msgstr "Erro Desconhecido"
#. module: account
-#: code:addons/account/account.py:1167
+#: code:addons/account/account.py:1181
#, python-format
msgid ""
"You cannot validate a non-balanced entry !\n"
@@ -9188,10 +9204,10 @@ msgstr "Validar Movimento de Conta"
#: field:account.entries.report,credit:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.model.line,credit:0
#: field:account.move.line,credit:0
-#: report:account.move.voucher:0
#: report:account.partner.balance:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
@@ -9441,7 +9457,6 @@ msgstr "Selecione o período"
#: view:account.move:0
#: selection:account.move,state:0
#: view:account.move.line:0
-#: report:account.move.voucher:0
msgid "Posted"
msgstr "Postado"
@@ -9460,6 +9475,7 @@ msgstr "Postado"
#: report:account.general.journal:0
#: field:account.general.journal,date_to:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,date_stop:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -9513,7 +9529,7 @@ msgid "This is a model for recurring accounting entries"
msgstr "Este é um modelo para lançamentos recorrentes de contabilização"
#. module: account
-#: code:addons/account/account_analytic_line.py:100
+#: code:addons/account/account_analytic_line.py:99
#, python-format
msgid "There is no income account defined for this product: \"%s\" (id:%d)"
msgstr "Não há conta de entrada definida para este produto:\"%s\" (id:%d)"
@@ -9668,8 +9684,8 @@ msgid "End period"
msgstr "Período final"
#. module: account
-#: code:addons/account/account_move_line.py:738
-#: code:addons/account/account_move_line.py:815
+#: code:addons/account/account_move_line.py:729
+#: code:addons/account/account_move_line.py:806
#: code:addons/account/wizard/account_invoice_state.py:44
#: code:addons/account/wizard/account_invoice_state.py:68
#: code:addons/account/wizard/account_report_balance_sheet.py:70
@@ -9735,10 +9751,10 @@ msgstr "Fatura do fornecedor"
#: field:account.entries.report,debit:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.model.line,debit:0
#: field:account.move.line,debit:0
-#: report:account.move.voucher:0
#: report:account.partner.balance:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
@@ -9775,7 +9791,7 @@ msgid "Recurring"
msgstr "Recorrente"
#. module: account
-#: code:addons/account/account_move_line.py:805
+#: code:addons/account/account_move_line.py:796
#, python-format
msgid "Entry is already reconciled"
msgstr "Este lançamento já está conciliado"
@@ -9796,7 +9812,7 @@ msgid "Range"
msgstr "Intervalo"
#. module: account
-#: code:addons/account/account_move_line.py:1246
+#: code:addons/account/account_move_line.py:1252
#, python-format
msgid ""
"Can not create an automatic sequence for this piece !\n"
@@ -9936,7 +9952,7 @@ msgid "Accounts Mapping"
msgstr "Mapeando contas"
#. module: account
-#: code:addons/account/invoice.py:346
+#: code:addons/account/invoice.py:345
#, python-format
msgid "Invoice '%s' is waiting for validation."
msgstr "A fatura '%s' está aguardando validação."
@@ -9961,7 +9977,7 @@ msgid "The income or expense account related to the selected product."
msgstr "A conta de receita ou despesa relacionada ao produto selecionado."
#. module: account
-#: code:addons/account/account_move_line.py:1117
+#: code:addons/account/account_move_line.py:1123
#, python-format
msgid "The date of your Journal Entry is not in the defined period!"
msgstr "A data do seu Lançamento de Diário não está no período definido!"
@@ -10168,7 +10184,7 @@ msgid "You must enter a period length that cannot be 0 or below !"
msgstr "Você deve digitar um período que não seja 0 ou menor !"
#. module: account
-#: code:addons/account/account.py:501
+#: code:addons/account/account.py:511
#, python-format
msgid "You cannot remove an account which has account entries!. "
msgstr "Você não pode remover uma conta que contém lançamentos! "
@@ -10253,6 +10269,14 @@ msgstr ""
#~ msgid "x Checks Journal"
#~ msgstr "x Conferências diárias"
+#, python-format
+#~ msgid ""
+#~ "No period defined for this date !\n"
+#~ "Please create a fiscal year."
+#~ msgstr ""
+#~ "Nenhum período definido para esta data !\n"
+#~ "Por favor crie um ano fiscal."
+
#~ msgid "Account No."
#~ msgstr "Conta nro."
@@ -10412,6 +10436,26 @@ msgstr ""
#~ "Indica se o imposto deve ser incluído na base de cálculo para calcular os "
#~ "próximos impostos."
+#, python-format
+#~ msgid ""
+#~ "You can specify year, month and date in the name of the model using the "
+#~ "following labels:\n"
+#~ "\n"
+#~ "%(year)s : To Specify Year \n"
+#~ "%(month)s : To Specify Month \n"
+#~ "%(date)s : Current Date\n"
+#~ "\n"
+#~ "e.g. My model on %(date)s"
+#~ msgstr ""
+#~ "Você pode especificar o ano, mês e data no nome do modelo usando as "
+#~ "seguintes expressões:\n"
+#~ "\n"
+#~ "%(year)s : Para especificar o Ano \n"
+#~ "%(month)s : Para especificar o Mês \n"
+#~ "%(date)s : Data corrente\n"
+#~ "\n"
+#~ "ex: Meu modelo em %(date)s"
+
#~ msgid "Journal - Period"
#~ msgstr "Dario - Período"
@@ -11744,3 +11788,7 @@ msgstr ""
#, python-format
#~ msgid "is validated."
#~ msgstr "está validada."
+
+#, python-format
+#~ msgid "Date not in a defined fiscal year"
+#~ msgstr "A data não está em um ano fiscal definido"
diff --git a/addons/account/i18n/ru.po b/addons/account/i18n/ru.po
index f16c1a81618..16b60927980 100644
--- a/addons/account/i18n/ru.po
+++ b/addons/account/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2011-04-15 19:34+0000\n"
-"Last-Translator: Chertykov Denis \n"
+"PO-Revision-Date: 2011-06-27 05:16+0000\n"
+"Last-Translator: Andrew Yashchuk \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 05:09+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-06-28 04:40+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@@ -33,7 +33,7 @@ msgid "No End of year journal defined for the fiscal year"
msgstr "Не определен журнал конца года для финансового года"
#. module: account
-#: code:addons/account/account.py:506
+#: code:addons/account/account.py:516
#, python-format
msgid ""
"You cannot remove/deactivate an account which is set as a property to any "
@@ -67,10 +67,10 @@ msgid "Residual"
msgstr "Остаток"
#. module: account
-#: code:addons/account/invoice.py:785
+#: code:addons/account/invoice.py:793
#, python-format
msgid "Please define sequence on invoice journal"
-msgstr "Пожалуйста, определите последовательность в журнале счетов"
+msgstr "Пожалуйста, определите нумерацию в журнале счетов"
#. module: account
#: constraint:account.period:0
@@ -85,12 +85,12 @@ msgstr "Валюта счета"
#. module: account
#: view:account.tax:0
msgid "Children Definition"
-msgstr ""
+msgstr "Определение наследников"
#. module: account
#: model:ir.model,name:account.model_report_aged_receivable
msgid "Aged Receivable Till Today"
-msgstr ""
+msgstr "Просроченная задолженность на сегодня"
#. module: account
#: field:account.partner.ledger,reconcil:0
@@ -127,6 +127,8 @@ msgid ""
"If you unreconciliate transactions, you must also verify all the actions "
"that are linked to those transactions because they will not be disabled"
msgstr ""
+"Если вы отмените сверку транзакций, то вы должны проверить все действия, "
+"связанные с этими транзакциями так, как они не будут отключены"
#. module: account
#: report:account.tax.code.entries:0
@@ -134,10 +136,10 @@ msgid "Accounting Entries-"
msgstr "Бухгалтерские проводки-"
#. module: account
-#: code:addons/account/account.py:1291
+#: code:addons/account/account.py:1305
#, python-format
msgid "You can not delete posted movement: \"%s\"!"
-msgstr "Нельзя удалить проведенное перемещение: \"%s\"!"
+msgstr "Нельзя удалить проведенную операцию: \"%s\"!"
#. module: account
#: report:account.invoice:0
@@ -176,11 +178,11 @@ msgid ""
"If the active field is set to False, it will allow you to hide the payment "
"term without removing it."
msgstr ""
-"Если поле 'Активно' имеет значение Ложь, вы сможете скрыть срок оплаты, не "
-"удаляя его."
+"Если поле \"Активно\" имеет значение Ложь, вы сможете скрыть условие оплаты, "
+"не удаляя его."
#. module: account
-#: code:addons/account/invoice.py:1421
+#: code:addons/account/invoice.py:1436
#, python-format
msgid "Warning!"
msgstr "Предупреждение!"
@@ -219,6 +221,8 @@ msgid ""
"invoice) to create analytic entries, OpenERP will look for a matching "
"journal of the same type."
msgstr ""
+"Дает тип журнала аналитики. Когда для документа (для счета) надо создать "
+"проводки аналитики, OpenERP будет искать подходящий журнал такого типа."
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_template_form
@@ -232,7 +236,7 @@ msgid "account.tax"
msgstr "account.tax"
#. module: account
-#: code:addons/account/account.py:901
+#: code:addons/account/account.py:915
#, python-format
msgid ""
"No period defined for this date: %s !\n"
@@ -244,7 +248,7 @@ msgstr ""
#. module: account
#: model:ir.model,name:account.model_account_move_line_reconcile_select
msgid "Move line reconcile select"
-msgstr "Выбор сверки действия"
+msgstr "Выбор сверки операций"
#. module: account
#: help:account.model.line,sequence:0
@@ -252,8 +256,7 @@ msgid ""
"The sequence field is used to order the resources from lower sequences to "
"higher ones"
msgstr ""
-"Поле \"последовательность\" используется для сортировки. От младшего к "
-"старшему."
+"Поле \"нумерация\" используется для сортировки. От младшего к старшему."
#. module: account
#: help:account.tax.code,notprintable:0
@@ -266,7 +269,7 @@ msgstr ""
"налога появился в счетах-фактурах"
#. module: account
-#: code:addons/account/invoice.py:1210
+#: code:addons/account/invoice.py:1224
#, python-format
msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)"
msgstr "Счет '%s' оплачивается частично: %s%s из %s%s (%s%s остаток)"
@@ -282,7 +285,7 @@ msgid "Belgian Reports"
msgstr "Бельгийские отчеты"
#. module: account
-#: code:addons/account/account_move_line.py:1176
+#: code:addons/account/account_move_line.py:1182
#, python-format
msgid "You can not add/modify entries in a closed journal."
msgstr "В не можете добавить/исправить проводки в закрытом журнале"
@@ -320,7 +323,7 @@ msgid "St."
msgstr "ул."
#. module: account
-#: code:addons/account/invoice.py:529
+#: code:addons/account/invoice.py:532
#, python-format
msgid "Invoice line account company does not match with invoice company."
msgstr ""
@@ -336,8 +339,8 @@ msgid ""
"Installs localized accounting charts to match as closely as possible the "
"accounting needs of your company based on your country."
msgstr ""
-"Устанавливает локализованный план счетов, чтобы соответствовать как можно "
-"ближе потребностям учета вашей компании на основе учета в вашей стране."
+"Устанавливает локализованный план счетов для наибольшего соответствия "
+"потребностям учёта в вашей организации для вашей страны."
#. module: account
#: code:addons/account/wizard/account_move_journal.py:63
@@ -348,6 +351,10 @@ msgid ""
"You can create one in the menu: \n"
"Configuration/Financial Accounting/Accounts/Journals."
msgstr ""
+"Не найден журнал счета типа %s для этой компании.\n"
+"\n"
+"Вы можете создать его в меню:\n"
+"Настройки/Финансы и бухгалтерия/Журналы"
#. module: account
#: model:ir.model,name:account.model_account_unreconcile
@@ -524,7 +531,7 @@ msgstr "Подтвердить выбранные счета"
#. module: account
#: field:account.addtmpl.wizard,cparent_id:0
msgid "Parent target"
-msgstr ""
+msgstr "Родительская цель"
#. module: account
#: field:account.bank.statement,account_id:0
@@ -571,7 +578,7 @@ msgid "Not reconciled transactions"
msgstr "Не сверенные транзакции"
#. module: account
-#: code:addons/account/account_cash_statement.py:348
+#: code:addons/account/account_cash_statement.py:349
#, python-format
msgid "CashBox Balance is not matching with Calculated Balance !"
msgstr "Баланс кассы не совпадает с рассчитанным балансом !"
@@ -647,7 +654,7 @@ msgstr "Централизованный журнал"
#. module: account
#: sql_constraint:account.sequence.fiscalyear:0
msgid "Main Sequence must be different from current !"
-msgstr ""
+msgstr "Основная нумерация должна отличаться от текущей!"
#. module: account
#: field:account.invoice.tax,tax_amount:0
@@ -655,7 +662,7 @@ msgid "Tax Code Amount"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2779
+#: code:addons/account/account.py:2823
#: code:addons/account/installer.py:434
#, python-format
msgid "SAJ"
@@ -688,11 +695,12 @@ msgid "Journal Period"
msgstr "Период журнала"
#. module: account
-#: code:addons/account/account_move_line.py:732
-#: code:addons/account/account_move_line.py:776
+#: code:addons/account/account_move_line.py:723
+#: code:addons/account/account_move_line.py:767
#, python-format
msgid "To reconcile the entries company should be the same for all entries"
-msgstr "Для сверки проводок компания должна быть одна во всех проводках."
+msgstr ""
+"Для проведения сверки, организация в проводках не должна различаться."
#. module: account
#: view:account.account:0
@@ -729,7 +737,7 @@ msgstr "Проверка"
#. module: account
#: field:account.partner.reconcile.process,today_reconciled:0
msgid "Partners Reconciled Today"
-msgstr "Партнеры сверенные сегодня"
+msgstr "Контрагенты сверенные сегодня"
#. module: account
#: selection:account.payment.term.line,value:0
@@ -750,7 +758,7 @@ msgid "Analytic Entries by line"
msgstr "Аналитические проводки по строкам"
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:39
+#: code:addons/account/wizard/account_change_currency.py:38
#, python-format
msgid "You can only change currency for Draft Invoice !"
msgstr "Вы можете изменить валюту только в черновике счета !"
@@ -805,7 +813,7 @@ msgstr "Вычисление срока"
#. module: account
#: report:account.analytic.account.quantity_cost_ledger:0
msgid "J.C./Move name"
-msgstr ""
+msgstr "Код журн./Операция"
#. module: account
#: selection:account.entries.report,month:0
@@ -834,6 +842,8 @@ msgid ""
"Can not %s invoice which is already reconciled, invoice should be "
"unreconciled first. You can only Refund this invoice"
msgstr ""
+"Нельзя \"%s\" счет, который уже сверен, сначала надо отменить сверку. Вы "
+"можете только вернуть счет."
#. module: account
#: model:ir.actions.act_window,name:account.action_subscription_form_new
@@ -848,10 +858,10 @@ msgstr "Вычисления"
#. module: account
#: view:account.move.line:0
msgid "Next Partner to reconcile"
-msgstr "Следующий партнер для сверки"
+msgstr "Следующий контрагент для сверки"
#. module: account
-#: code:addons/account/account_move_line.py:1191
+#: code:addons/account/account_move_line.py:1197
#, python-format
msgid ""
"You can not do this modification on a confirmed entry ! Please note that you "
@@ -937,7 +947,7 @@ msgstr "Выписка банка"
#. module: account
#: field:account.analytic.line,move_id:0
msgid "Move Line"
-msgstr "Действие"
+msgstr "Операция"
#. module: account
#: help:account.move.line,tax_amount:0
@@ -975,11 +985,11 @@ msgid "Code"
msgstr "Код"
#. module: account
-#: code:addons/account/account.py:2083
+#: code:addons/account/account.py:2097
#: code:addons/account/account_bank_statement.py:350
-#: code:addons/account/account_move_line.py:170
+#: code:addons/account/account_move_line.py:169
#: code:addons/account/invoice.py:73
-#: code:addons/account/invoice.py:670
+#: code:addons/account/invoice.py:678
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "No Analytic Journal !"
@@ -1003,7 +1013,7 @@ msgstr "Название счета."
#: field:account.chart.template,property_reserve_and_surplus_account:0
#: field:res.company,property_reserve_and_surplus_account:0
msgid "Reserve and Profit/Loss Account"
-msgstr ""
+msgstr "Счет резервов и прибылей/убытков"
#. module: account
#: field:report.account.receivable,name:0
@@ -1040,7 +1050,7 @@ msgstr ""
#. module: account
#: view:account.tax:0
msgid "Applicability Options"
-msgstr ""
+msgstr "Опции применимости"
#. module: account
#: report:account.partner.balance:0
@@ -1060,7 +1070,6 @@ msgstr "Прибыль и убыток (счета расходов)"
#. module: account
#: report:account.analytic.account.journal:0
-#: report:account.move.voucher:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
msgid "-"
@@ -1095,7 +1104,7 @@ msgstr "Подтвердить документ"
#: field:account.fiscal.position.tax,tax_dest_id:0
#: field:account.fiscal.position.tax.template,tax_dest_id:0
msgid "Replacement Tax"
-msgstr ""
+msgstr "Замещающий налог"
#. module: account
#: selection:account.move.line,centralisation:0
@@ -1110,6 +1119,11 @@ msgid ""
"purchase orders or receipts. This way, you can control the invoice from your "
"supplier according to what you purchased or received."
msgstr ""
+"\"Счета поставщиков\" позволяют вам управлять счетами выставленными вашими "
+"поставщиками. OpenERP может генерировать черновики счетов автоматически из "
+"заказов на закупку или прихода товара. В таком случае вы можете "
+"контролировать соответствие счета, полученного от поставщика, закупленному "
+"или полученному."
#. module: account
#: view:account.invoice.cancel:0
@@ -1132,12 +1146,12 @@ msgstr "Код налога"
#. module: account
#: field:account.account,currency_mode:0
msgid "Outgoing Currencies Rate"
-msgstr ""
+msgstr "Исходящий курс валют"
#. module: account
#: help:account.move.line,move_id:0
msgid "The move of this entry line."
-msgstr "Перемещение этой проводки."
+msgstr "Операция этой проводки"
#. module: account
#: field:account.move.line.reconcile,trans_nbr:0
@@ -1146,6 +1160,7 @@ msgstr "# транзакции"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
@@ -1153,7 +1168,7 @@ msgid "Entry Label"
msgstr "Метка проводки"
#. module: account
-#: code:addons/account/account.py:976
+#: code:addons/account/account.py:990
#, python-format
msgid "You can not modify/delete a journal with entries for this period !"
msgstr "Вы не можете изменить/удалить журнал с записями за этот период !"
@@ -1291,7 +1306,6 @@ msgid "Journal Items Analysis"
msgstr "Анализ элементов журнала"
#. module: account
-#: model:ir.actions.act_window,name:account.action_partner_all
#: model:ir.ui.menu,name:account.next_id_22
msgid "Partners"
msgstr "Контрагенты"
@@ -1321,7 +1335,7 @@ msgid "Central Journal"
msgstr "Центральный журнал"
#. module: account
-#: code:addons/account/account_move_line.py:1271
+#: code:addons/account/account_move_line.py:1277
#, python-format
msgid "You can not use this general account in this journal !"
msgstr "Вы не можете использовать этот общий счет в этом журнале!"
@@ -1416,15 +1430,18 @@ msgstr "Возвраты поставщику"
msgid ""
"Example: at 14 net days 2 percents, remaining amount at 30 days end of month."
msgstr ""
+"Пример: 2 процента через 14 дней, остаток через 30 дней после конца месяца."
#. module: account
-#: code:addons/account/invoice.py:815
+#: code:addons/account/invoice.py:823
#, python-format
msgid ""
"Cannot create the invoice !\n"
"The payment term defined gives a computed amount greater than the total "
"invoiced amount."
msgstr ""
+"Невозможно создать счет!\n"
+"Сумма, рассчитанная по условию оплаты больше чем итоговая сумма счета."
#. module: account
#: field:account.installer.modules,account_anglo_saxon:0
@@ -1440,7 +1457,7 @@ msgstr "Англосаксонский бухгалтерский учет"
#: selection:account.fiscalyear,state:0
#: selection:account.period,state:0
msgid "Closed"
-msgstr "Закрыто"
+msgstr "Закрыт"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_recurrent_entries
@@ -1455,7 +1472,7 @@ msgstr "Шаблон для системы налогообложения"
#. module: account
#: model:account.tax.code,name:account.account_tax_code_0
msgid "Tax Code Test"
-msgstr ""
+msgstr "Проверка налогового кода"
#. module: account
#: field:account.automatic.reconcile,reconciled:0
@@ -1534,6 +1551,11 @@ msgid ""
"the Payment column of a line, you can press F1 to open the reconciliation "
"form."
msgstr ""
+"Банковская выписка является отражением всех финансовых операций, прошедших в "
+"течение определенного периода по банковскому счету, кредитной карте или "
+"любому другому виду финансового счета. Начальный баланс будет предложен "
+"автоматически, а конечное сальдо должно быть в выписке. Когда вы находитесь "
+"в столбце Оплата, вы можете нажать F1, чтобы открыть форму сверки."
#. module: account
#: report:account.analytic.account.cost_ledger:0
@@ -1576,10 +1598,9 @@ msgstr "Последовательность финансовых лет"
#. module: account
#: field:wizard.multi.charts.accounts,seq_journal:0
msgid "Separated Journal Sequences"
-msgstr "Отдельные последовательности журнала"
+msgstr "Раздельные нумерации журнала"
#. module: account
-#: field:account.bank.statement,user_id:0
#: view:account.invoice:0
msgid "Responsible"
msgstr "Ответственный"
@@ -1627,7 +1648,7 @@ msgstr "Годовая сумма"
#. module: account
#: model:ir.actions.report.xml,name:account.report_account_voucher_new
msgid "Print Voucher"
-msgstr ""
+msgstr "Печать ваучера"
#. module: account
#: view:account.change.currency:0
@@ -1641,7 +1662,7 @@ msgid ""
"Have a complete tree view of all journal items per account code by clicking "
"on an account."
msgstr ""
-"Отображение плана счетов вашей компании на финансовый год с фильтром по "
+"Отображение плана счетов вашей организации на финансовый год с фильтром по "
"периодам. Отображается как древовидная структура всех элементов журнала по "
"коду счета при нажатии на счет."
@@ -1651,7 +1672,7 @@ msgid "Error! You cannot define overlapping fiscal years"
msgstr "Ошибка! Вы не можете определить перекрывающиеся отчетные года"
#. module: account
-#: code:addons/account/account_move_line.py:808
+#: code:addons/account/account_move_line.py:799
#, python-format
msgid "The account is not defined to be reconciled !"
msgstr "Счет не определен для сверки !"
@@ -1678,7 +1699,7 @@ msgstr "Дебет по поставщику"
#. module: account
#: help:account.model.line,quantity:0
msgid "The optional quantity on entries"
-msgstr ""
+msgstr "Необязательное количество проводок"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_partner_account_move_all
@@ -1686,7 +1707,7 @@ msgid "Receivables & Payables"
msgstr "Дебиторы и кредиторы"
#. module: account
-#: code:addons/account/account_move_line.py:815
+#: code:addons/account/account_move_line.py:806
#, python-format
msgid "You have to provide an account for the write off entry !"
msgstr "Вы должны указать счет для проводки списания!"
@@ -1722,7 +1743,7 @@ msgid "Customer Ref:"
msgstr "Ссылка на клиента:"
#. module: account
-#: code:addons/account/account_cash_statement.py:328
+#: code:addons/account/account_cash_statement.py:329
#, python-format
msgid "User %s does not have rights to access %s journal !"
msgstr "Пользователь %s не имеет прав доступа к журналу %s !"
@@ -1743,10 +1764,10 @@ msgid "Tax Declaration: Credit Notes"
msgstr ""
#. module: account
-#: code:addons/account/account.py:499
+#: code:addons/account/account.py:509
#, python-format
msgid "You cannot deactivate an account that contains account moves."
-msgstr "Вы не можете отключить счет, по которому есть движение."
+msgstr "Вы не можете отключить счет, по которому есть операции."
#. module: account
#: field:account.move.line.reconcile,credit:0
@@ -1756,10 +1777,10 @@ msgstr "Сумма кредита"
#. module: account
#: constraint:account.move.line:0
msgid "You can not create move line on closed account."
-msgstr "Нельзя сделать действие по закрытому счету."
+msgstr "Нельзя сделать операцию по закрытому счету."
#. module: account
-#: code:addons/account/account.py:519
+#: code:addons/account/account.py:529
#, python-format
msgid ""
"You cannot change the type of account from 'Closed' to any other type which "
@@ -1771,7 +1792,7 @@ msgstr ""
#. module: account
#: view:res.company:0
msgid "Reserve And Profit/Loss Account"
-msgstr ""
+msgstr "Счет резервов и прибылей/убытков"
#. module: account
#: sql_constraint:account.move.line:0
@@ -1788,7 +1809,7 @@ msgstr "Анализ счетов"
#. module: account
#: model:ir.model,name:account.model_account_period_close
msgid "period close"
-msgstr ""
+msgstr "закрытие периода"
#. module: account
#: view:account.installer:0
@@ -1829,7 +1850,7 @@ msgstr "Финансовый анализ"
#. module: account
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
-msgstr "Ошибка! Вы не можете создавать рекурсивные компании."
+msgstr "Ошибка ! Нельзя создать организации рекурсивно."
#. module: account
#: view:account.analytic.account:0
@@ -1902,7 +1923,8 @@ msgid ""
"It adds the currency column if the currency is different then the company "
"currency"
msgstr ""
-"Добавляет столбец валюты , если валюта отличается, от валюты компании."
+"Добавляет столбец валюты. Если валюта отличается — указывается валюта "
+"организации"
#. module: account
#: help:account.journal,allow_date:0
@@ -1952,6 +1974,9 @@ msgid ""
"be with same name as statement name. This allows the statement entries to "
"have the same references than the statement itself"
msgstr ""
+"Если вы вводите название отличное от \"/\", то созданные операции проводок "
+"будут иметь названия как у документа. Это позволяет проводкам в документе "
+"иметь названия как и у самого документа"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_unreconcile
@@ -2039,7 +2064,7 @@ msgid " Journal"
msgstr " журнал"
#. module: account
-#: code:addons/account/account.py:1319
+#: code:addons/account/account.py:1333
#, python-format
msgid ""
"There is no default default debit account defined \n"
@@ -2059,6 +2084,10 @@ msgid ""
"partners accounts (for debit/credit computations), closed for depreciated "
"accounts."
msgstr ""
+"Этот тип используется, чтобы различать типы со специальными эффектами в "
+"OpenERP: вид - не может иметь проводок, объединение - счета которые могут "
+"иметь субсчета для консолидации нескольких компаний, кредитовые/дебетовые - "
+"для контрагентов (вычисление задолженностей), закрыт - для ненужных счетов."
#. module: account
#: view:account.chart.template:0
@@ -2096,7 +2125,7 @@ msgid "Description"
msgstr "Описание"
#. module: account
-#: code:addons/account/account.py:2844
+#: code:addons/account/account.py:2888
#: code:addons/account/installer.py:498
#, python-format
msgid "ECNJ"
@@ -2116,7 +2145,7 @@ msgid "Income Account"
msgstr "Cчёт доходов и расходов"
#. module: account
-#: code:addons/account/invoice.py:352
+#: code:addons/account/invoice.py:351
#, python-format
msgid "There is no Accounting Journal of type Sale/Purchase defined!"
msgstr "Не определен журнал покупок / продаж."
@@ -2127,6 +2156,7 @@ msgid "Accounting Properties"
msgstr "Установки бухгалтерии"
#. module: account
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.print.journal,sort_selection:0
msgid "Entries Sorted By"
@@ -2155,6 +2185,7 @@ msgstr "Шаблон продукта"
#: field:account.fiscalyear,name:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.journal.period,fiscalyear_id:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -2206,7 +2237,7 @@ msgstr "Основная Последовательность"
#: model:ir.model,name:account.model_account_payment_term
#: field:res.partner,property_payment_term:0
msgid "Payment Term"
-msgstr "Условия оплаты"
+msgstr "Условие оплаты"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_fiscal_position_form
@@ -2264,7 +2295,7 @@ msgid "Account Tax Code"
msgstr "Код налогового счёта"
#. module: account
-#: code:addons/account/invoice.py:545
+#: code:addons/account/invoice.py:552
#, python-format
msgid ""
"Can't find any account journal of %s type for this company.\n"
@@ -2272,6 +2303,10 @@ msgid ""
"You can create one in the menu: \n"
"Configuration\\Financial Accounting\\Accounts\\Journals."
msgstr ""
+"Для этой компании не найден журнал типа %s.\n"
+"\n"
+"Вы можете создать его в меню:\n"
+"Настройка\\Финансы и бухгалтерия\\Счета\\Журналы."
#. module: account
#: field:account.invoice.tax,base_code_id:0
@@ -2326,7 +2361,7 @@ msgstr "День"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_renew_view
msgid "Accounts to Renew"
-msgstr ""
+msgstr "Счета для обновления"
#. module: account
#: model:ir.model,name:account.model_account_model_line
@@ -2334,11 +2369,11 @@ msgid "Account Model Entries"
msgstr "Проводки модели счета"
#. module: account
-#: code:addons/account/account.py:2796
+#: code:addons/account/account.py:2840
#: code:addons/account/installer.py:454
#, python-format
msgid "EXJ"
-msgstr ""
+msgstr "ЖР"
#. module: account
#: field:product.template,supplier_taxes_id:0
@@ -2354,11 +2389,10 @@ msgid ""
"date empty, it means direct payment. The payment term may compute several "
"due dates, for example 50% now, 50% in one month."
msgstr ""
-"При использовании условий платежа, дата валютирования будет сгенерирована "
-"автоматически при создании проводок. Если вы оставляете условия платежа и "
-"дату валютирования незаполненными - это будет подразумевать прямой платеж. "
-"Условия платежа могут включать в себя несколько дат валютирования, например "
-"50% сегодня, 50% в следующем месяце."
+"При использовании условий оплаты, срок будет вычислен автоматически при "
+"создании проводок. Если вы оставляете условие оплаты и срок незаполненными - "
+"это будет подразумевать прямой платеж. Условие оплаты может включать в себя "
+"несколько сроков, например 50% сразу, 50% в этом месяце."
#. module: account
#: view:account.analytic.cost.ledger.journal.report:0
@@ -2373,7 +2407,7 @@ msgstr "Выписки"
#. module: account
#: report:account.analytic.account.journal:0
msgid "Move Name"
-msgstr "Имя перемещения"
+msgstr "Название операции"
#. module: account
#: help:res.partner,property_account_position:0
@@ -2425,7 +2459,7 @@ msgid "Accounts"
msgstr "Счета"
#. module: account
-#: code:addons/account/invoice.py:351
+#: code:addons/account/invoice.py:350
#, python-format
msgid "Configuration Error!"
msgstr "Ошибка конфигурации!"
@@ -2437,20 +2471,19 @@ msgid "Average Price"
msgstr "Средняя цена"
#. module: account
-#: report:account.move.voucher:0
#: report:account.overdue:0
msgid "Date:"
msgstr "Дата:"
#. module: account
-#: code:addons/account/account.py:640
+#: code:addons/account/account.py:654
#, python-format
msgid ""
"You cannot modify company of this journal as its related record exist in "
"Entry Lines"
msgstr ""
-"Вы не можете изменить компанию этого журнала, так как существуют связанные с "
-"ним проводки."
+"Вы не можете изменять организацию, связанную с этим журналом, так как "
+"существуют связанные с ним проводки."
#. module: account
#: report:account.journal.period.print:0
@@ -2477,10 +2510,11 @@ msgstr "Сверка банковской выписки"
#. module: account
#: report:account.invoice:0
msgid "Disc.(%)"
-msgstr "Скид.(%)"
+msgstr "Скидка (%)"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.overdue:0
#: report:account.third_party_ledger:0
@@ -2549,7 +2583,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_account_aged_balance_view
#: model:ir.ui.menu,name:account.menu_aged_trial_balance
msgid "Aged Partner Balance"
-msgstr ""
+msgstr "Баланс партнера по периодам"
#. module: account
#: model:process.transition,name:account.process_transition_entriesreconcile0
@@ -2580,7 +2614,7 @@ msgstr ""
#: model:ir.actions.server,name:account.ir_actions_server_action_wizard_multi_chart
#: model:ir.ui.menu,name:account.menu_act_ir_actions_bleble
msgid "New Company Financial Setting"
-msgstr "Финансовые настройки новой компании"
+msgstr "Финансовые настройки новой организации"
#. module: account
#: model:ir.actions.act_window,name:account.action_report_account_sales_tree_all
@@ -2595,16 +2629,16 @@ msgid "This wizard will create recurring accounting entries"
msgstr "Этот мастер создаст повторяющиеся бухгалтерские проводки"
#. module: account
-#: code:addons/account/account.py:1181
+#: code:addons/account/account.py:1195
#, python-format
msgid "No sequence defined on the journal !"
msgstr "Нумерация в журнале не определена !"
#. module: account
-#: code:addons/account/account.py:2083
+#: code:addons/account/account.py:2097
#: code:addons/account/account_bank_statement.py:350
-#: code:addons/account/account_move_line.py:170
-#: code:addons/account/invoice.py:670
+#: code:addons/account/account_move_line.py:169
+#: code:addons/account/invoice.py:678
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
@@ -2677,11 +2711,14 @@ msgid ""
"The optional quantity expressed by this line, eg: number of product sold. "
"The quantity is not a legal requirement but is very useful for some reports."
msgstr ""
+"Необязательное количество отраженное в этой строке, например, количество "
+"проданных товаров. Количество не является обязательным, но оно очень полезно "
+"для некоторых отчетов."
#. module: account
#: view:account.payment.term.line:0
msgid "Line 2:"
-msgstr ""
+msgstr "Строка 2:"
#. module: account
#: field:account.journal.column,required:0
@@ -2710,7 +2747,7 @@ msgstr ""
#. module: account
#: field:account.invoice.tax,base_amount:0
msgid "Base Code Amount"
-msgstr ""
+msgstr "Сумма по основному коду"
#. module: account
#: field:wizard.multi.charts.accounts,sale_tax:0
@@ -2724,6 +2761,8 @@ msgid ""
"between the creation date or the creation date of the entries plus the "
"partner payment terms."
msgstr ""
+"Дата проведения созданных проводок для этой модели. Вы можете выбрать между "
+"датой создания и датой создания проводок плюс условия оплаты партнера."
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_accounting
@@ -2757,6 +2796,8 @@ msgid ""
"It adds initial balance row on report which display previous sum amount of "
"debit/credit/balance"
msgstr ""
+"Добавляет колонку начального баланса к отчету который выводит предыдущую "
+"сумму дебета/кредита/баланса."
#. module: account
#: view:account.analytic.line:0
@@ -2765,7 +2806,7 @@ msgid "Analytic Entries"
msgstr "Проводки аналитического учета"
#. module: account
-#: code:addons/account/account.py:822
+#: code:addons/account/account.py:836
#, python-format
msgid ""
"No fiscal year defined for this date !\n"
@@ -2897,7 +2938,7 @@ msgid "BNK%s"
msgstr "БНК%s"
#. module: account
-#: code:addons/account/account.py:2906
+#: code:addons/account/account.py:2950
#: code:addons/account/installer.py:296
#, python-format
msgid "BNK"
@@ -2921,12 +2962,12 @@ msgstr "Кредит контрагенту"
#. module: account
#: model:ir.model,name:account.model_account_tax_code_template
msgid "Tax Code Template"
-msgstr ""
+msgstr "Шаблон налогового кода"
#. module: account
#: view:account.subscription:0
msgid "Starts on"
-msgstr ""
+msgstr "Начинается с"
#. module: account
#: model:ir.model,name:account.model_account_partner_ledger
@@ -2948,7 +2989,7 @@ msgstr "Налоговая декларация"
#: help:account.account.template,currency_id:0
#: help:account.bank.accounts.wizard,currency_id:0
msgid "Forces all moves for this account to have this secondary currency."
-msgstr ""
+msgstr "Все операции по этому счету принудительно будут иметь вторую валюту."
#. module: account
#: model:ir.actions.act_window,help:account.action_validate_account_move_line
@@ -2956,6 +2997,8 @@ msgid ""
"This wizard will validate all journal entries of a particular journal and "
"period. Once journal entries are validated, you can not update them anymore."
msgstr ""
+"Этот мастер утверждает все проводки журнала для конкретного журнала и "
+"периода. После утверждения проводок вы не сможете их изменить."
#. module: account
#: model:ir.actions.act_window,name:account.action_account_chart_template_form
@@ -3006,6 +3049,7 @@ msgstr "Оставьте пустым для использования счет
#: field:account.common.report,journal_ids:0
#: report:account.general.journal:0
#: field:account.general.journal,journal_ids:0
+#: report:account.general.ledger_landscape:0
#: view:account.journal.period:0
#: report:account.partner.balance:0
#: field:account.partner.balance,journal_ids:0
@@ -3066,7 +3110,7 @@ msgid "Starting Balance"
msgstr "Начальный баланс"
#. module: account
-#: code:addons/account/invoice.py:1284
+#: code:addons/account/invoice.py:1298
#, python-format
msgid "No Partner Defined !"
msgstr "Партнер не определен!"
@@ -3094,6 +3138,7 @@ msgid ""
"The amount expressed in the related account currency if not equal to the "
"company one."
msgstr ""
+"Сумма выражена в валюте связанного счета, если не равна валюте компании."
#. module: account
#: report:account.move.voucher:0
@@ -3108,7 +3153,6 @@ msgstr "Журнал:"
#: view:account.invoice.report:0
#: selection:account.invoice.report,state:0
#: selection:account.journal.period,state:0
-#: report:account.move.voucher:0
#: view:account.subscription:0
#: selection:account.subscription,state:0
#: selection:report.invoice.created,state:0
@@ -3162,7 +3206,7 @@ msgstr ""
"больше не сможете изменять их бухгалтерские поля."
#. module: account
-#: code:addons/account/invoice.py:370
+#: code:addons/account/invoice.py:373
#, python-format
msgid "Cannot delete invoice(s) that are already opened or paid !"
msgstr "Нельзя удалить открытый или оплаченный счет !"
@@ -3180,7 +3224,7 @@ msgstr "Переводы"
#. module: account
#: view:account.payment.term.line:0
msgid " value amount: n.a"
-msgstr ""
+msgstr " значение суммы: неопределено"
#. module: account
#: view:account.chart:0
@@ -3200,7 +3244,7 @@ msgstr "Ваши банковские и денежные счета"
#. module: account
#: view:account.move:0
msgid "Search Move"
-msgstr "Искать проводку"
+msgstr "Искать операцию"
#. module: account
#: field:account.tax.code,name:0
@@ -3225,7 +3269,7 @@ msgstr ""
"состоянии \"Отменено\" или \"Сделано\" !"
#. module: account
-#: code:addons/account/account.py:522
+#: code:addons/account/account.py:532
#, python-format
msgid ""
"You cannot change the type of account from '%s' to '%s' type as it contains "
@@ -3235,6 +3279,7 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
msgid "Counterpart"
msgstr "Корреспондирующая сторона"
@@ -3340,6 +3385,7 @@ msgstr ""
#: field:account.entries.report,date:0
#: selection:account.general.journal,filter:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.invoice.report,date:0
#: report:account.journal.period.print:0
#: view:account.move:0
@@ -3383,22 +3429,24 @@ msgid "Chart of Accounts Template"
msgstr "Шаблон плана счетов"
#. module: account
-#: code:addons/account/account.py:2095
+#: code:addons/account/account.py:2109
#, python-format
msgid ""
"Maturity date of entry line generated by model line '%s' of model '%s' is "
"based on partner payment term!\n"
"Please define partner on it!"
msgstr ""
+"Дата исполнения проводки созданной строкой \"%s\" модели \"%s\" основана на "
+"условии оплаты контрагента."
#. module: account
-#: code:addons/account/account_move_line.py:810
+#: code:addons/account/account_move_line.py:801
#, python-format
msgid "Some entries are already reconciled !"
msgstr "Некоторые записи уже сверены!"
#. module: account
-#: code:addons/account/account.py:1204
+#: code:addons/account/account.py:1218
#, python-format
msgid ""
"You cannot validate a Journal Entry unless all journal items are in same "
@@ -3479,7 +3527,7 @@ msgstr "Судебный спор"
#. module: account
#: view:account.analytic.line:0
msgid "Search Analytic Lines"
-msgstr ""
+msgstr "Искать проводки аналитики"
#. module: account
#: field:res.partner,property_account_payable:0
@@ -3491,8 +3539,8 @@ msgstr "Счета к оплате"
msgid ""
"You cannot create entries on different periods/journals in the same move"
msgstr ""
-"Вы не можете создавать проводки по разным периодам / журналам в одном "
-"действии."
+"Вы не можете создавать проводки по разным периодам / журналам в одной "
+"операции."
#. module: account
#: model:process.node,name:account.process_node_supplierpaymentorder0
@@ -3523,7 +3571,7 @@ msgid "Analytic Items"
msgstr "Элементы аналитики"
#. module: account
-#: code:addons/account/account_move_line.py:1128
+#: code:addons/account/account_move_line.py:1134
#, python-format
msgid "Unable to change tax !"
msgstr "Невозможно изменить налог !"
@@ -3534,19 +3582,20 @@ msgid "#Entries"
msgstr "#Проводок"
#. module: account
-#: code:addons/account/invoice.py:1422
+#: code:addons/account/invoice.py:1437
#, python-format
msgid ""
"You selected an Unit of Measure which is not compatible with the product."
msgstr "Вы выбрали единицу измерения не совместимую с ТМЦ."
#. module: account
-#: code:addons/account/invoice.py:473
+#: code:addons/account/invoice.py:476
#, python-format
msgid ""
"The Payment Term of Supplier does not have Payment Term Lines(Computation) "
"defined !"
msgstr ""
+"Условие оплаты поставщика не содержит строк условий оплаты(расчетов)!"
#. module: account
#: view:account.state.open:0
@@ -3584,7 +3633,7 @@ msgstr ""
#. module: account
#: field:account.move.line,date:0
msgid "Effective date"
-msgstr "Действительно до"
+msgstr "Дата вступления в силу"
#. module: account
#: code:addons/account/wizard/account_move_bank_reconcile.py:53
@@ -3605,7 +3654,7 @@ msgstr "Журнал аналитических проводок"
#: view:product.template:0
#: view:res.partner:0
msgid "Accounting"
-msgstr "Бухгалтерия"
+msgstr "Учёт"
#. module: account
#: help:account.central.journal,amount_currency:0
@@ -3616,6 +3665,7 @@ msgid ""
"Print Report with the currency column if the currency is different then the "
"company currency"
msgstr ""
+"Печать отчета с колонкой валюты, если валюта отличается от валюты компании"
#. module: account
#: view:account.analytic.line:0
@@ -3669,6 +3719,8 @@ msgstr "Утвердить"
#: sql_constraint:account.model.line:0
msgid "Wrong credit or debit value in model (Credit Or Debit Must Be \"0\")!"
msgstr ""
+"В модели указано неверное значение прихода или расхода (Приход или Расход "
+"должен быть равен \"0\")!"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_invoice_report_all
@@ -3807,6 +3859,8 @@ msgid ""
"This account will be used to value outgoing stock for the current product "
"category using sale price"
msgstr ""
+"Этот счет будет использоваться для стоимости исходящих ТМЦ для текущей "
+"категории ТМЦ продажной цене"
#. module: account
#: selection:account.automatic.reconcile,power:0
@@ -3819,6 +3873,8 @@ msgid ""
"Analytic costs (timesheets, some purchased products, ...) come from analytic "
"accounts. These generate draft supplier invoices."
msgstr ""
+"Анализ себестоимости (учет времени, некоторой закупаемой продукции, ...) "
+"берется из счетов аналитики. Генерирует черновик счетов поставщика."
#. module: account
#: view:account.bank.statement:0
@@ -3837,7 +3893,7 @@ msgid "Acc.Type"
msgstr "Тип счета"
#. module: account
-#: code:addons/account/invoice.py:714
+#: code:addons/account/invoice.py:722
#, python-format
msgid "Global taxes defined, but are not in invoice lines !"
msgstr ""
@@ -3883,7 +3939,7 @@ msgstr "Позиции налога"
#. module: account
#: field:account.tax,base_code_id:0
msgid "Account Base Code"
-msgstr ""
+msgstr "Основной код счёта"
#. module: account
#: help:account.move,state:0
@@ -3894,9 +3950,14 @@ msgid ""
"the system on document validation (invoices, bank statements...) and will be "
"created in 'Posted' state."
msgstr ""
+"Все созданные вручную новые проводки в журнале обычно в состоянии \"Не "
+"проведено\", но вы можете установить опцию для пропуска этого состояния в "
+"журнале. Проводки в этом случае, как и создаваемые системой при обработке "
+"документов (счетов, банковских выписок, ...), будут создаваться со статусом "
+"\"Проведено\"."
#. module: account
-#: code:addons/account/account_analytic_line.py:91
+#: code:addons/account/account_analytic_line.py:90
#, python-format
msgid "There is no expense account defined for this product: \"%s\" (id:%d)"
msgstr "Счет расходов не определен для этого товара: \"%s\" (id:%d)"
@@ -3949,7 +4010,7 @@ msgstr "Ошибка ! Неверная продолжительность фи
#. module: account
#: field:report.aged.receivable,name:0
msgid "Month Range"
-msgstr ""
+msgstr "Месячный период"
#. module: account
#: help:account.analytic.balance,empty_acc:0
@@ -3983,7 +4044,7 @@ msgid ""
"When new move line is created the state will be 'Draft'.\n"
"* When all the payments are done it will be in 'Valid' state."
msgstr ""
-"Когда новое перемещение создается, его состояние 'Черновик'.\n"
+"Когда новая операция создается, ее состояние 'Черновик'.\n"
"* Когда все платежи произведены состояние будет 'Проведено'."
#. module: account
@@ -3994,7 +4055,7 @@ msgstr "Режим вывода"
#. module: account
#: model:process.node,note:account.process_node_importinvoice0
msgid "Statement from invoice or payment"
-msgstr ""
+msgstr "Документ из счета или платежа"
#. module: account
#: view:account.payment.term.line:0
@@ -4032,7 +4093,7 @@ msgstr "Банковские выписки введены в систему."
#: code:addons/account/wizard/account_reconcile.py:133
#, python-format
msgid "Reconcile Writeoff"
-msgstr ""
+msgstr "Сверить списание"
#. module: account
#: field:account.model.line,date_maturity:0
@@ -4070,10 +4131,10 @@ msgstr "Печать счета"
#. module: account
#: view:account.tax.template:0
msgid "Credit Notes"
-msgstr ""
+msgstr "Кредит-ноты"
#. module: account
-#: code:addons/account/account.py:2067
+#: code:addons/account/account.py:2081
#: code:addons/account/wizard/account_use_model.py:69
#, python-format
msgid "Unable to find a valid period !"
@@ -4146,11 +4207,11 @@ msgid "Change"
msgstr "Изменить"
#. module: account
-#: code:addons/account/account.py:1290
-#: code:addons/account/account.py:1318
-#: code:addons/account/account.py:1325
-#: code:addons/account/account_move_line.py:1055
-#: code:addons/account/invoice.py:896
+#: code:addons/account/account.py:1304
+#: code:addons/account/account.py:1332
+#: code:addons/account/account.py:1339
+#: code:addons/account/account_move_line.py:1061
+#: code:addons/account/invoice.py:904
#: code:addons/account/wizard/account_automatic_reconcile.py:152
#: code:addons/account/wizard/account_fiscalyear_close.py:78
#: code:addons/account/wizard/account_fiscalyear_close.py:81
@@ -4164,7 +4225,7 @@ msgstr "UserError"
#. module: account
#: field:account.journal,type_control_ids:0
msgid "Type Controls"
-msgstr ""
+msgstr "Контроль типа"
#. module: account
#: help:account.journal,default_credit_account_id:0
@@ -4221,14 +4282,14 @@ msgstr "Генерировать проводки"
#. module: account
#: help:account.vat.declaration,chart_tax_id:0
msgid "Select Charts of Taxes"
-msgstr ""
+msgstr "Выбрать налоговые планы счетов"
#. module: account
#: view:account.fiscal.position:0
#: field:account.fiscal.position,account_ids:0
#: field:account.fiscal.position.template,account_ids:0
msgid "Account Mapping"
-msgstr ""
+msgstr "Отображение счета"
#. module: account
#: selection:account.bank.statement.line,type:0
@@ -4256,13 +4317,16 @@ msgid "You must define an analytic journal of type '%s' !"
msgstr "Вы должны определить журнал аналитики типа '%s' !"
#. module: account
-#: code:addons/account/account.py:1397
+#: code:addons/account/account.py:1411
#, python-format
msgid ""
"Couldn't create move with currency different from the secondary currency of "
"the account \"%s - %s\". Clear the secondary currency field of the account "
"definition if you want to accept all currencies."
msgstr ""
+"Нельзя сделать операцию по счету с валютой отличной от второй валюты счета "
+"\"%s - %s\". Очистите поле ввода второй валюты в форме ввода счета, если "
+"желаете использовать все валюты."
#. module: account
#: field:account.invoice.refund,date:0
@@ -4323,7 +4387,7 @@ msgid "Invoices"
msgstr "Счета"
#. module: account
-#: code:addons/account/invoice.py:804
+#: code:addons/account/invoice.py:812
#, python-format
msgid ""
"Please verify the price of the invoice !\n"
@@ -4434,28 +4498,27 @@ msgstr "Баланс (счета активов)"
#. module: account
#: report:account.tax.code.entries:0
msgid "Third Party (Country)"
-msgstr ""
+msgstr "Третье лицо (Страна)"
#. module: account
-#: code:addons/account/account.py:938
-#: code:addons/account/account.py:940
-#: code:addons/account/account.py:1181
-#: code:addons/account/account.py:1393
-#: code:addons/account/account.py:1397
-#: code:addons/account/account_cash_statement.py:249
-#: code:addons/account/account_move_line.py:780
-#: code:addons/account/account_move_line.py:803
-#: code:addons/account/account_move_line.py:805
-#: code:addons/account/account_move_line.py:808
-#: code:addons/account/account_move_line.py:810
-#: code:addons/account/account_move_line.py:1117
+#: code:addons/account/account.py:952
+#: code:addons/account/account.py:954
+#: code:addons/account/account.py:1195
+#: code:addons/account/account.py:1407
+#: code:addons/account/account.py:1411
+#: code:addons/account/account_cash_statement.py:250
+#: code:addons/account/account_move_line.py:771
+#: code:addons/account/account_move_line.py:794
+#: code:addons/account/account_move_line.py:796
+#: code:addons/account/account_move_line.py:799
+#: code:addons/account/account_move_line.py:801
+#: code:addons/account/account_move_line.py:1123
#: code:addons/account/report/common_report_header.py:92
-#: code:addons/account/wizard/account_change_currency.py:39
-#: code:addons/account/wizard/account_change_currency.py:60
-#: code:addons/account/wizard/account_change_currency.py:65
-#: code:addons/account/wizard/account_change_currency.py:71
+#: code:addons/account/wizard/account_change_currency.py:38
+#: code:addons/account/wizard/account_change_currency.py:59
+#: code:addons/account/wizard/account_change_currency.py:64
+#: code:addons/account/wizard/account_change_currency.py:70
#: code:addons/account/wizard/account_move_bank_reconcile.py:49
-#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_report_common.py:120
#: code:addons/account/wizard/account_report_common.py:126
#, python-format
@@ -4477,7 +4540,7 @@ msgid "Bank Details"
msgstr "Банковская информация"
#. module: account
-#: code:addons/account/invoice.py:720
+#: code:addons/account/invoice.py:728
#, python-format
msgid "Taxes missing !"
msgstr "Налоги отсутствуют !"
@@ -4513,13 +4576,13 @@ msgstr "Закрыть"
#. module: account
#: field:account.bank.statement.line,move_ids:0
msgid "Moves"
-msgstr "Проводки"
+msgstr "Операции"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_vat_declaration
#: model:ir.model,name:account.model_account_vat_declaration
msgid "Account Vat Declaration"
-msgstr ""
+msgstr "Декларация НДС счета"
#. module: account
#: view:account.period:0
@@ -4529,10 +4592,10 @@ msgstr "Закрыть"
#. module: account
#: field:account.journal,allow_date:0
msgid "Check Date not in the Period"
-msgstr ""
+msgstr "Дата проверки не входит в период"
#. module: account
-#: code:addons/account/account.py:1210
+#: code:addons/account/account.py:1224
#, python-format
msgid ""
"You can not modify a posted entry of this journal !\n"
@@ -4554,7 +4617,7 @@ msgid "Child Tax Accounts"
msgstr ""
#. module: account
-#: code:addons/account/account.py:940
+#: code:addons/account/account.py:954
#, python-format
msgid "Start period should be smaller then End period"
msgstr "Начало периода должно быть меньше, чем конец периода"
@@ -4584,6 +4647,7 @@ msgstr "Остаток по аналитике"
#: report:account.general.journal:0
#: field:account.general.journal,target_move:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.move.journal,target_move:0
#: report:account.partner.balance:0
@@ -4597,7 +4661,7 @@ msgstr "Остаток по аналитике"
#: report:account.third_party_ledger_other:0
#: field:account.vat.declaration,target_move:0
msgid "Target Moves"
-msgstr "Цель перемещений"
+msgstr "Цель операции"
#. module: account
#: field:account.subscription,period_type:0
@@ -4625,7 +4689,7 @@ msgstr "Проводка"
#: field:account.tax,python_compute_inv:0
#: field:account.tax.template,python_compute_inv:0
msgid "Python Code (reverse)"
-msgstr ""
+msgstr "Код на Python (реверс)"
#. module: account
#: model:ir.actions.act_window,name:account.action_payment_term_form
@@ -4642,7 +4706,7 @@ msgstr "Название столбца"
#: view:account.general.journal:0
msgid ""
"This report gives you an overview of the situation of your general journals"
-msgstr ""
+msgstr "Этот доклад дает вам обзор ситуации по общим журналам"
#. module: account
#: field:account.entries.report,year:0
@@ -4663,10 +4727,10 @@ msgstr "Открытие кассы"
#. module: account
#: view:account.payment.term.line:0
msgid "Line 1:"
-msgstr ""
+msgstr "Строка 1:"
#. module: account
-#: code:addons/account/account.py:1167
+#: code:addons/account/account.py:1181
#, python-format
msgid "Integrity Error !"
msgstr "Ошибка целостности!"
@@ -4695,7 +4759,7 @@ msgstr "Описание счетов"
#. module: account
#: field:account.partner.reconcile.process,next_partner_id:0
msgid "Next Partner to Reconcile"
-msgstr "Следующий партнер для сверки"
+msgstr "Следующий контрагент для сверки"
#. module: account
#: field:account.invoice.tax,account_id:0
@@ -4811,10 +4875,11 @@ msgstr "Налог на детей"
#: constraint:account.move.line:0
msgid ""
"You can not create move line on receivable/payable account without partner"
-msgstr "Нельзя сделать действие по дебетовому/кредитовому счету без партнера"
+msgstr ""
+"Нельзя сделать действие по дебетовому/кредитовому счету без контрагента"
#. module: account
-#: code:addons/account/account.py:2067
+#: code:addons/account/account.py:2081
#: code:addons/account/wizard/account_use_model.py:69
#, python-format
msgid "No period found !"
@@ -4884,9 +4949,11 @@ msgid ""
"Number of days to add before computation of the day of month.If Date=15/01, "
"Number of Days=22, Day of Month=-1, then the due date is 28/02."
msgstr ""
+"Количество дней для добавления перед вычислением дня месяца. Если "
+"дата=15/01, количество дней=22, день месяца=-1, то срок 28/02."
#. module: account
-#: code:addons/account/account.py:2896
+#: code:addons/account/account.py:2940
#: code:addons/account/installer.py:283
#: code:addons/account/installer.py:295
#, python-format
@@ -4914,7 +4981,7 @@ msgid "Start of period"
msgstr "Начало периода"
#. module: account
-#: code:addons/account/account_move_line.py:1193
+#: code:addons/account/account_move_line.py:1199
#, python-format
msgid ""
"You can not do this modification on a reconciled entry ! Please note that "
@@ -4972,12 +5039,12 @@ msgstr "Журнал проводок конца года"
#. module: account
#: code:addons/account/account_bank_statement.py:331
-#: code:addons/account/invoice.py:405
-#: code:addons/account/invoice.py:505
-#: code:addons/account/invoice.py:520
-#: code:addons/account/invoice.py:528
-#: code:addons/account/invoice.py:545
-#: code:addons/account/invoice.py:1347
+#: code:addons/account/invoice.py:408
+#: code:addons/account/invoice.py:508
+#: code:addons/account/invoice.py:523
+#: code:addons/account/invoice.py:531
+#: code:addons/account/invoice.py:552
+#: code:addons/account/invoice.py:1361
#: code:addons/account/wizard/account_move_journal.py:63
#, python-format
msgid "Configuration Error !"
@@ -5054,7 +5121,7 @@ msgid "Sort By"
msgstr "Сортировать по"
#. module: account
-#: code:addons/account/account.py:1326
+#: code:addons/account/account.py:1340
#, python-format
msgid ""
"There is no default default credit account defined \n"
@@ -5066,7 +5133,7 @@ msgstr ""
#: field:account.model.line,amount_currency:0
#: field:account.move.line,amount_currency:0
msgid "Amount Currency"
-msgstr "Валюта суммы"
+msgstr "Сумма в валюте"
#. module: account
#: code:addons/account/wizard/account_validate_account_move.py:39
@@ -5100,7 +5167,7 @@ msgstr "Количество"
#. module: account
#: view:account.move.line:0
msgid "Number (Move)"
-msgstr "Номер (перемещение)"
+msgstr "Операция"
#. module: account
#: view:account.invoice.refund:0
@@ -5120,8 +5187,8 @@ msgid ""
"The sequence field is used to order the payment term lines from the lowest "
"sequences to the higher ones"
msgstr ""
-"Поле \"последовательность\" используется для упорядочения строк в платежном "
-"документе от наименьшего номера к наибольшему"
+"Поле \"последовательность\" используется для упорядочения строк в условии "
+"оплаты от наименьшего номера к наибольшему"
#. module: account
#: view:account.fiscal.position.template:0
@@ -5195,7 +5262,7 @@ msgstr "Элемент журнала"
#. module: account
#: model:ir.model,name:account.model_account_move_journal
msgid "Move journal"
-msgstr ""
+msgstr "Журнал операций"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_fiscalyear_close
@@ -5204,7 +5271,7 @@ msgid "Generate Opening Entries"
msgstr "Генерировать открывающие проводки"
#. module: account
-#: code:addons/account/account_move_line.py:738
+#: code:addons/account/account_move_line.py:729
#, python-format
msgid "Already Reconciled!"
msgstr "Уже сверено !"
@@ -5240,7 +5307,7 @@ msgstr "Подчиненный счет"
#. module: account
#: view:account.move.line.reconcile:0
-#: code:addons/account/account_move_line.py:830
+#: code:addons/account/account_move_line.py:821
#, python-format
msgid "Write-Off"
msgstr "Списание"
@@ -5314,7 +5381,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_account_state_open
#: model:ir.model,name:account.model_account_state_open
msgid "Account State Open"
-msgstr ""
+msgstr "Состояние счета открытый"
#. module: account
#: report:account.analytic.account.quantity_cost_ledger:0
@@ -5338,6 +5405,8 @@ msgid ""
"document shows your debit and credit taking in consideration some criteria "
"you can choose by using the search tool."
msgstr ""
+"Этот вид предназначен для анализа различных финансовых счетов. Документ "
+"показывает дебет и кредит в соответствии с выбранными критериями поиска."
#. module: account
#: model:ir.actions.act_window,help:account.action_tax_code_list
@@ -5353,6 +5422,9 @@ msgid ""
"Shows you the progress made today on the reconciliation process. Given by \n"
"Partners Reconciled Today \\ (Remaining Partners + Partners Reconciled Today)"
msgstr ""
+"Показывает прогресс, достигнутый сегодня по сверке. Определяется как\n"
+"Контрагенты сверенные сегодня / (Оставшиеся контрагенты + Контрагенты "
+"сверенные сегодня)"
#. module: account
#: help:account.payment.term.line,value:0
@@ -5361,6 +5433,9 @@ msgid ""
"that you should have your last line with the type 'Balance' to ensure that "
"the whole amount will be threated."
msgstr ""
+"Выберите вид расчета относящийся к этой строке условия оплаты. Отметим, что "
+"последняя строка должна быть с типом \"Баланс\" для проверки обработки всей "
+"суммы."
#. module: account
#: field:account.invoice,period_id:0
@@ -5377,7 +5452,7 @@ msgid "# of Lines"
msgstr "# строк"
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:60
+#: code:addons/account/wizard/account_change_currency.py:59
#, python-format
msgid "New currency is not confirured properly !"
msgstr "Новая валюта неправильно настроена !"
@@ -5402,14 +5477,14 @@ msgid "Filter by"
msgstr "Фильтровать по"
#. module: account
-#: code:addons/account/account_move_line.py:1131
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1137
+#: code:addons/account/account_move_line.py:1220
#, python-format
msgid "You can not use an inactive account!"
msgstr "Нельзя использовать неактивный счет !"
#. module: account
-#: code:addons/account/account_move_line.py:803
+#: code:addons/account/account_move_line.py:794
#, python-format
msgid "Entries are not of the same account or already reconciled ! "
msgstr "Проводки не по одному счету и тому же счету или уже сверены! "
@@ -5444,7 +5519,7 @@ msgstr "7"
#. module: account
#: code:addons/account/account_bank_statement.py:391
-#: code:addons/account/invoice.py:370
+#: code:addons/account/invoice.py:373
#, python-format
msgid "Invalid action !"
msgstr "Invalid action !"
@@ -5513,7 +5588,7 @@ msgstr "не реализовано"
#. module: account
#: help:account.journal,company_id:0
msgid "Company related to this journal"
-msgstr "Компания связанная с этим журналом"
+msgstr "Организация, связанная с этим журналом"
#. module: account
#: code:addons/account/wizard/account_invoice_state.py:44
@@ -5561,6 +5636,10 @@ msgid ""
"line of the expense account. OpenERP will propose to you automatically the "
"Tax related to this account and the counterpart \"Account Payable\"."
msgstr ""
+"Здесь можно быстро вводить бухгалтерские проводки. Если вы хотите отразить "
+"счет-фактуру поставщика, начните с записи движения по счету расходов. "
+"OpenERP автоматически предложит вам налог, относящийся к этому счету и "
+"корреспондирующий счет \"Кредиторская задолженность\"."
#. module: account
#: field:account.entries.report,date_created:0
@@ -5578,6 +5657,7 @@ msgid ""
"The code will be used to generate the numbers of the journal entries of this "
"journal."
msgstr ""
+"Код будет использоваться для генерации номеров записей этого журнала."
#. module: account
#: view:account.invoice:0
@@ -5613,7 +5693,7 @@ msgstr "Дата последней сверки"
#. module: account
#: model:ir.model,name:account.model_account_analytic_line
msgid "Analytic Line"
-msgstr ""
+msgstr "Позиция аналитики"
#. module: account
#: field:product.template,taxes_id:0
@@ -5634,7 +5714,7 @@ msgstr "Настройка отчетов"
#. module: account
#: constraint:account.move.line:0
msgid "Company must be same for its related account and period."
-msgstr "Для счета и периода должна быть одна компания."
+msgstr "Для счета и периода должна быть одна организация."
#. module: account
#: field:account.tax,type:0
@@ -5646,25 +5726,27 @@ msgstr "Тип налога"
#: model:ir.actions.act_window,name:account.action_account_template_form
#: model:ir.ui.menu,name:account.menu_action_account_template_form
msgid "Account Templates"
-msgstr "Счет: Шаблоны"
+msgstr "Шаблоны счетов"
#. module: account
#: report:account.vat.declaration:0
msgid "Tax Statement"
-msgstr ""
+msgstr "Налоговая декларация"
#. module: account
#: model:ir.model,name:account.model_res_company
msgid "Companies"
-msgstr "Компании"
+msgstr "Организации"
#. module: account
-#: code:addons/account/account.py:532
+#: code:addons/account/account.py:546
#, python-format
msgid ""
"You cannot modify Company of account as its related record exist in Entry "
"Lines"
msgstr ""
+"Нельзя изменить компанию счета так, как связанные с ней записи существуют в "
+"проводках"
#. module: account
#: help:account.fiscalyear.close.state,fy_id:0
@@ -5789,7 +5871,7 @@ msgstr " количество дней: 30"
#. module: account
#: help:account.analytic.line,currency_id:0
msgid "The related account currency if not equal to the company one."
-msgstr ""
+msgstr "Валюта связанного счета, если не одинакова с валютой компании."
#. module: account
#: view:account.analytic.account:0
@@ -5819,7 +5901,7 @@ msgstr "Мощность"
#. module: account
#: field:account.invoice.refund,filter_refund:0
msgid "Refund Type"
-msgstr ""
+msgstr "Тип возмещения"
#. module: account
#: report:account.invoice:0
@@ -5878,6 +5960,9 @@ msgid ""
"higher ones. The order is important if you have a tax that has several tax "
"children. In this case, the evaluation order is important."
msgstr ""
+"Поле \"последовательность\" используется для упорядочивания позиций налогов "
+"от меньшего к большему. Последовательность важна при наличии субналогов . В "
+"таком случае важна последовательность вычислений."
#. module: account
#: selection:account.account,type:0
@@ -5899,6 +5984,10 @@ msgid ""
"year. Note that you can run this wizard many times for the same fiscal year: "
"it will simply replace the old opening entries with the new ones."
msgstr ""
+"Этот мастер генерирует проводки конца года в журнале для выбранного "
+"финансового года. Заметим, что вы можете запустить этот мастер много раз для "
+"того же финансового года: старые проводки открытия просто будут заменены на "
+"новые."
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_bank_and_cash
@@ -5913,25 +6002,29 @@ msgid ""
"the tool search to analyse information about analytic entries generated in "
"the system."
msgstr ""
+"Этот вид позволяет анализировать проводки аналитики в соответствии со счетом "
+"аналитики, который вы создали исходя из особенностей вашего бизнеса. "
+"Используйте поиск для анализа информации о проводках аналитики созданных в "
+"системе."
#. module: account
#: sql_constraint:account.journal:0
msgid "The name of the journal must be unique per company !"
-msgstr "Название журнала должно быть уникальным по компании !"
+msgstr "Название журнала должно быть уникальным внутри организации!"
#. module: account
#: field:account.account.template,nocreate:0
msgid "Optional create"
-msgstr ""
+msgstr "Создать дополнительно"
#. module: account
-#: code:addons/account/invoice.py:406
-#: code:addons/account/invoice.py:506
-#: code:addons/account/invoice.py:1348
+#: code:addons/account/invoice.py:409
+#: code:addons/account/invoice.py:509
+#: code:addons/account/invoice.py:1362
#, python-format
msgid "Can not find account chart for this company, Please Create account."
msgstr ""
-"Не удалось найти план счетов для компании. Пожалуйста, создайте счет."
+"Не удалось найти план счетов для организации. Пожалуйста, создайте счет."
#. module: account
#: code:addons/account/wizard/account_report_aged_partner_balance.py:57
@@ -6010,6 +6103,8 @@ msgid ""
"Percentages for Payment Term Line must be between 0 and 1, Example: 0.02 for "
"2% "
msgstr ""
+"Проценты для позиции условий оплаты должен быть между 0 и 1, например: 0,02 "
+"для 2% "
#. module: account
#: model:ir.model,name:account.model_account_sequence_fiscalyear
@@ -6077,8 +6172,8 @@ msgid "Analytic Entries Statistics"
msgstr "Статистика аналитических проводок"
#. module: account
-#: code:addons/account/account_analytic_line.py:143
-#: code:addons/account/account_move_line.py:905
+#: code:addons/account/account_analytic_line.py:141
+#: code:addons/account/account_move_line.py:897
#, python-format
msgid "Entries: "
msgstr "Проводки: "
@@ -6089,10 +6184,10 @@ msgid "Create manual recurring entries in a chosen journal."
msgstr "Создать вручную повторяющиеся проводки в выбранном журнале"
#. module: account
-#: code:addons/account/account.py:1393
+#: code:addons/account/account.py:1407
#, python-format
msgid "Couldn't create move between different companies"
-msgstr ""
+msgstr "Нельзя создать перемещение между разными организациями"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_type_form
@@ -6129,7 +6224,7 @@ msgid "Total debit"
msgstr "Всего по дебету"
#. module: account
-#: code:addons/account/account_move_line.py:781
+#: code:addons/account/account_move_line.py:772
#, python-format
msgid "Entry \"%s\" is not valid !"
msgstr "Проводка \"%s\" не верна !"
@@ -6171,6 +6266,8 @@ msgstr "Код на Python"
msgid ""
"Please define the Reserve and Profit/Loss account for current user company !"
msgstr ""
+"Пожалуйста, определите счет резервов и прибылей/убытков для компании "
+"пользователя !"
#. module: account
#: help:account.journal,update_posted:0
@@ -6178,6 +6275,8 @@ msgid ""
"Check this box if you want to allow the cancellation the entries related to "
"this journal or of the invoice related to this journal"
msgstr ""
+"Отметьте, если вы хотите позволить отменять проводки связанные с этим "
+"журналом или счетом связанным с этим журналом"
#. module: account
#: view:account.fiscalyear.close:0
@@ -6195,30 +6294,31 @@ msgid " valuation: percent"
msgstr " оценка: процент"
#. module: account
-#: code:addons/account/account.py:499
-#: code:addons/account/account.py:501
-#: code:addons/account/account.py:822
-#: code:addons/account/account.py:901
-#: code:addons/account/account.py:976
-#: code:addons/account/account.py:1204
-#: code:addons/account/account.py:1210
-#: code:addons/account/account.py:2095
-#: code:addons/account/account.py:2333
-#: code:addons/account/account_analytic_line.py:90
-#: code:addons/account/account_analytic_line.py:99
+#: code:addons/account/account.py:509
+#: code:addons/account/account.py:511
+#: code:addons/account/account.py:836
+#: code:addons/account/account.py:915
+#: code:addons/account/account.py:990
+#: code:addons/account/account.py:1218
+#: code:addons/account/account.py:1224
+#: code:addons/account/account.py:2109
+#: code:addons/account/account.py:2357
+#: code:addons/account/account_analytic_line.py:89
+#: code:addons/account/account_analytic_line.py:98
#: code:addons/account/account_bank_statement.py:292
#: code:addons/account/account_bank_statement.py:305
#: code:addons/account/account_bank_statement.py:345
-#: code:addons/account/account_cash_statement.py:328
-#: code:addons/account/account_cash_statement.py:348
-#: code:addons/account/account_move_line.py:1176
-#: code:addons/account/account_move_line.py:1191
-#: code:addons/account/account_move_line.py:1193
-#: code:addons/account/invoice.py:785
-#: code:addons/account/invoice.py:815
-#: code:addons/account/invoice.py:1008
+#: code:addons/account/account_cash_statement.py:329
+#: code:addons/account/account_cash_statement.py:349
+#: code:addons/account/account_move_line.py:1182
+#: code:addons/account/account_move_line.py:1197
+#: code:addons/account/account_move_line.py:1199
+#: code:addons/account/invoice.py:793
+#: code:addons/account/invoice.py:823
+#: code:addons/account/invoice.py:1014
#: code:addons/account/wizard/account_invoice_refund.py:100
#: code:addons/account/wizard/account_invoice_refund.py:102
+#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_use_model.py:44
#, python-format
msgid "Error !"
@@ -6255,6 +6355,10 @@ msgid ""
"reconcile in a series of accounts. It finds entries for each partner where "
"the amounts correspond."
msgstr ""
+"Для счета, который считается оплаченным, проводки на основе этого счета "
+"должны сверяться с их корреспондирующими частями, обычно платежами. В "
+"процессе автоматической сверки, OpenERP ищет проводки в ряде счетов. Система "
+"ищет проводки с соответствующей суммой для каждого контрагента."
#. module: account
#: view:account.move:0
@@ -6292,6 +6396,7 @@ msgstr ""
msgid ""
"Selected Entry Lines does not have any account move enties in draft state"
msgstr ""
+"Выбранные проводки не содержат ни одной операции в состоянии \"Черновик\"."
#. module: account
#: selection:account.aged.trial.balance,target_move:0
@@ -6332,7 +6437,7 @@ msgid "Journal Select"
msgstr "Выбор журнала"
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:65
+#: code:addons/account/wizard/account_change_currency.py:64
#, python-format
msgid "Currnt currency is not confirured properly !"
msgstr "Текущая валюта неправильно настроена !"
@@ -6349,9 +6454,11 @@ msgstr "Налоги системы налогообложения"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: view:account.report.general.ledger:0
#: model:ir.actions.act_window,name:account.action_account_general_ledger_menu
#: model:ir.actions.report.xml,name:account.account_general_ledger
+#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape
#: model:ir.ui.menu,name:account.menu_general_ledger
msgid "General Ledger"
msgstr "Главная книга"
@@ -6394,7 +6501,7 @@ msgstr "Параметры"
#. module: account
#: model:ir.model,name:account.model_account_tax_chart
msgid "Account tax chart"
-msgstr ""
+msgstr "План налоговых счетов"
#. module: account
#: report:account.analytic.account.cost_ledger:0
@@ -6407,7 +6514,7 @@ msgid "Total:"
msgstr "Всего:"
#. module: account
-#: code:addons/account/account.py:2050
+#: code:addons/account/account.py:2064
#, python-format
msgid ""
"You can specify year, month and date in the name of the model using the "
@@ -6436,16 +6543,16 @@ msgstr "Счета доходов"
#. module: account
#: help:report.invoice.created,origin:0
msgid "Reference of the document that generated this invoice report."
-msgstr ""
+msgstr "Ссылка на документ, создавший этот отчет о счете."
#. module: account
#: field:account.tax.code,child_ids:0
#: field:account.tax.code.template,child_ids:0
msgid "Child Codes"
-msgstr ""
+msgstr "Субкоды"
#. module: account
-#: code:addons/account/invoice.py:473
+#: code:addons/account/invoice.py:476
#: code:addons/account/wizard/account_invoice_refund.py:137
#, python-format
msgid "Data Insufficient !"
@@ -6529,7 +6636,7 @@ msgstr "Налоги"
#. module: account
#: help:account.tax,amount:0
msgid "For taxes of type percentage, enter % ratio between 0-1."
-msgstr ""
+msgstr "Для процентных налогов, введите % как число от 0 до 1."
#. module: account
#: model:ir.actions.act_window,help:account.action_subscription_form
@@ -6594,6 +6701,11 @@ msgid ""
"Most of the OpenERP operations (invoices, timesheets, expenses, etc) "
"generate analytic entries on the related account."
msgstr ""
+"Обычный план счетов имеет структуру определяемую правовыми требованиями "
+"страны. Структура аналитического плана счетов должна отражать требования "
+"вашего бизнеса. Обычно он структурирован по контрактам, проектам, ТМЦ или "
+"отделам. Большинство операций в OpenERP (счета, бюллетени, затраты и т.д.) "
+"создают проводки аналитики в соответствующих счетах."
#. module: account
#: field:account.analytic.journal,line_ids:0
@@ -6602,14 +6714,14 @@ msgid "Lines"
msgstr "Строк"
#. module: account
-#: code:addons/account/invoice.py:521
+#: code:addons/account/invoice.py:524
#, python-format
msgid ""
"Can not find account chart for this company in invoice line account, Please "
"Create account."
msgstr ""
-"Не могу найти план счетов для этой компании в позиции счета, пожалуйста "
-"создайте бух. счет."
+"Невозможно найти план счетов для этой организации в позиции счёта. "
+"Пожалуйста, создайте счёт."
#. module: account
#: view:account.tax.template:0
@@ -6730,6 +6842,9 @@ msgid ""
"new counterpart but will share the same counterpart. This is used in fiscal "
"year closing."
msgstr ""
+"Отметьте, для определения того, что каждая проводка в этом журнале не "
+"создает новой корреспондирующей части, а использует одну и ту же. Это "
+"используется при закрытии финансового года."
#. module: account
#: field:account.bank.statement,closing_date:0
@@ -6775,10 +6890,10 @@ msgstr ""
"домена."
#. module: account
-#: code:addons/account/account.py:938
+#: code:addons/account/account.py:952
#, python-format
msgid "You should have chosen periods that belongs to the same company"
-msgstr ""
+msgstr "Вы должны выбрать периоды принадлежащие одной компании."
#. module: account
#: field:account.fiscalyear.close,report_name:0
@@ -6798,7 +6913,7 @@ msgstr "Отчетность"
#. module: account
#: sql_constraint:account.journal:0
msgid "The code of the journal must be unique per company !"
-msgstr "Код журнала должен быть уникальным для компании !"
+msgstr "Код журнала должен быть уникальным внутри организации!"
#. module: account
#: field:account.bank.statement,ending_details_ids:0
@@ -6823,6 +6938,8 @@ msgid ""
"the system to go through the reconciliation process, based on the latest day "
"it have been reconciled."
msgstr ""
+"Это поле показывает вам следующего контрагента, который автоматически выбран "
+"системой для сверки. Выбор основан на дате последней сверки."
#. module: account
#: field:account.move.line.reconcile.writeoff,comment:0
@@ -6879,7 +6996,7 @@ msgid "Sign on Reports"
msgstr "Знак в отчётах"
#. module: account
-#: code:addons/account/account_cash_statement.py:249
+#: code:addons/account/account_cash_statement.py:250
#, python-format
msgid "You can not have two open register for the same journal"
msgstr "Вы не можете иметь два открытых регистра для одного журнала"
@@ -6908,7 +7025,6 @@ msgstr ""
#. module: account
#: report:account.invoice:0
#: view:account.invoice:0
-#: report:account.move.voucher:0
msgid "PRO-FORMA"
msgstr "Проформа"
@@ -6940,6 +7056,7 @@ msgstr "Доп. информация"
#. module: account
#: view:account.analytic.line:0
+#: field:account.bank.statement,user_id:0
#: view:account.journal:0
#: field:account.journal,user_id:0
#: view:analytic.entries.report:0
@@ -6965,13 +7082,13 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1271
+#: code:addons/account/account_move_line.py:1277
#, python-format
msgid "Bad account !"
msgstr "Неверный счет !"
#. module: account
-#: code:addons/account/account.py:2777
+#: code:addons/account/account.py:2821
#: code:addons/account/installer.py:432
#, python-format
msgid "Sales Journal"
@@ -6989,10 +7106,10 @@ msgid "Invoice Tax"
msgstr "Налог по счету"
#. module: account
-#: code:addons/account/account_move_line.py:1246
+#: code:addons/account/account_move_line.py:1252
#, python-format
msgid "No piece number !"
-msgstr ""
+msgstr "Нет номера части !"
#. module: account
#: view:product.product:0
@@ -7100,7 +7217,7 @@ msgstr "Оплата счетов"
#: field:account.tax,sequence:0
#: field:account.tax.template,sequence:0
msgid "Sequence"
-msgstr "Последовательность"
+msgstr "Нумерация"
#. module: account
#: model:ir.model,name:account.model_account_bs_report
@@ -7188,7 +7305,7 @@ msgstr ""
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_legal_statement
msgid "Legal Reports"
-msgstr ""
+msgstr "Официальные отчеты"
#. module: account
#: field:account.tax.code,sum_period:0
@@ -7202,6 +7319,9 @@ msgid ""
"to the higher ones. The order is important if you have a tax with several "
"tax children. In this case, the evaluation order is important."
msgstr ""
+"Поле \"последовательность\" используется для упорядочивания позиций налогов "
+"от меньшего к большему. Последовательность важна при наличии субналогов . В "
+"таком случае важна последовательность вычислений."
#. module: account
#: model:ir.model,name:account.model_account_cashbox_line
@@ -7229,17 +7349,17 @@ msgid "Fixed"
msgstr "Фиксированный"
#. module: account
-#: code:addons/account/account.py:506
-#: code:addons/account/account.py:519
-#: code:addons/account/account.py:522
+#: code:addons/account/account.py:516
+#: code:addons/account/account.py:529
#: code:addons/account/account.py:532
-#: code:addons/account/account.py:640
-#: code:addons/account/account.py:927
-#: code:addons/account/account_move_line.py:732
-#: code:addons/account/account_move_line.py:776
-#: code:addons/account/invoice.py:714
-#: code:addons/account/invoice.py:717
-#: code:addons/account/invoice.py:720
+#: code:addons/account/account.py:546
+#: code:addons/account/account.py:654
+#: code:addons/account/account.py:941
+#: code:addons/account/account_move_line.py:723
+#: code:addons/account/account_move_line.py:767
+#: code:addons/account/invoice.py:722
+#: code:addons/account/invoice.py:725
+#: code:addons/account/invoice.py:728
#, python-format
msgid "Warning !"
msgstr "Warning !"
@@ -7247,13 +7367,13 @@ msgstr "Warning !"
#. module: account
#: field:account.entries.report,move_line_state:0
msgid "State of Move Line"
-msgstr "Состояние действия"
+msgstr "Состояние операции"
#. module: account
#: model:ir.model,name:account.model_account_move_line_reconcile
#: model:ir.model,name:account.model_account_move_line_reconcile_writeoff
msgid "Account move line reconcile"
-msgstr "Сверка действия по счету"
+msgstr "Сверка операции по счету"
#. module: account
#: view:account.subscription.generate:0
@@ -7271,6 +7391,7 @@ msgstr "Величина (прописью):"
#: view:account.entries.report:0
#: field:account.entries.report,partner_id:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: view:account.invoice:0
#: field:account.invoice,partner_id:0
#: field:account.invoice.line,partner_id:0
@@ -7298,10 +7419,10 @@ msgstr "Выбрать валюту применяемую в счете"
#: code:addons/account/wizard/account_invoice_refund.py:100
#, python-format
msgid "Can not %s draft/proforma/cancel invoice."
-msgstr ""
+msgstr "Нельзя %s черновик/проформу/отмененный счет."
#. module: account
-#: code:addons/account/invoice.py:787
+#: code:addons/account/invoice.py:795
#, python-format
msgid "No Invoice Lines !"
msgstr "Нет позиций в счете !"
@@ -7332,6 +7453,7 @@ msgid ""
"Select Fiscal Year which you want to remove entries for its End of year "
"entries journal"
msgstr ""
+"Выберите финансовый год для удаления проводок из журнала \"Конец года\""
#. module: account
#: field:account.tax.template,type_tax_use:0
@@ -7350,7 +7472,7 @@ msgid "Deferral Method"
msgstr "Метод отсрочки"
#. module: account
-#: code:addons/account/invoice.py:359
+#: code:addons/account/invoice.py:360
#, python-format
msgid "Invoice '%s' is paid."
msgstr "Счет '%s' оплачен."
@@ -7415,7 +7537,7 @@ msgid "Associated Partner"
msgstr "Связанный контрагент"
#. module: account
-#: code:addons/account/invoice.py:1284
+#: code:addons/account/invoice.py:1298
#, python-format
msgid "You must first select a partner !"
msgstr "Сначала вы должны выбрать партнера !"
@@ -7472,7 +7594,7 @@ msgstr "Проформа"
#. module: account
#: report:account.analytic.account.cost_ledger:0
msgid "J.C. /Move name"
-msgstr ""
+msgstr "Код журн./Операция"
#. module: account
#: model:ir.model,name:account.model_account_open_closed_fiscalyear
@@ -7480,7 +7602,7 @@ msgid "Choose Fiscal Year"
msgstr "Закрыть отчетный год"
#. module: account
-#: code:addons/account/account.py:2841
+#: code:addons/account/account.py:2885
#: code:addons/account/installer.py:495
#, python-format
msgid "Purchase Refund Journal"
@@ -7489,7 +7611,7 @@ msgstr "Журнал возврата покупок"
#. module: account
#: help:account.tax.template,amount:0
msgid "For Tax Type percent enter % ratio between 0-1."
-msgstr ""
+msgstr "Для налога типа \"процент\" введите %, как число от 0 до 1."
#. module: account
#: selection:account.automatic.reconcile,power:0
@@ -7517,6 +7639,7 @@ msgstr "Бухучет и управление финансами"
#: view:account.entries.report:0
#: field:account.entries.report,period_id:0
#: view:account.fiscalyear:0
+#: report:account.general.ledger_landscape:0
#: view:account.invoice:0
#: view:account.invoice.report:0
#: field:account.journal.period,period_id:0
@@ -7610,7 +7733,7 @@ msgstr "Тел. :"
#. module: account
#: field:account.account,company_currency_id:0
msgid "Company Currency"
-msgstr "Валюта компании"
+msgstr "Валюта организации"
#. module: account
#: report:account.general.ledger:0
@@ -7673,7 +7796,7 @@ msgstr "Виды журналов"
#. module: account
#: model:ir.model,name:account.model_account_move_bank_reconcile
msgid "Move bank reconcile"
-msgstr "Сверка проводки по банку"
+msgstr "Сверка операции по банку"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_type_form
@@ -7682,7 +7805,7 @@ msgid "Account Types"
msgstr "Типы счетов"
#. module: account
-#: code:addons/account/invoice.py:897
+#: code:addons/account/invoice.py:905
#, python-format
msgid "Cannot create invoice move on centralised journal"
msgstr ""
@@ -7732,6 +7855,7 @@ msgstr "Журнал возвратов"
#: report:account.account.balance:0
#: report:account.central.journal:0
#: report:account.general.journal:0
+#: report:account.general.ledger_landscape:0
#: report:account.partner.balance:0
msgid "Filter By"
msgstr "Фильтровать по"
@@ -7744,13 +7868,17 @@ msgid ""
"sales orders or deliveries. You should only confirm them before sending them "
"to your customers."
msgstr ""
+"Вы можете создавать счета заказчикам и управлять счетами выставленными вашим "
+"клиентам. OpenERP может создавать черновики счетов автоматически по заказам "
+"на продажу и доставку. Вы должны только подтвердить их пред выставлением "
+"заказчикам."
#. module: account
#: view:account.entries.report:0
#: view:board.board:0
#: model:ir.actions.act_window,name:account.action_company_analysis_tree
msgid "Company Analysis"
-msgstr "Анализ компании"
+msgstr "Анализ организации"
#. module: account
#: help:account.invoice,account_id:0
@@ -7770,7 +7898,7 @@ msgid "Payment Term Line"
msgstr "Позиция условий оплаты"
#. module: account
-#: code:addons/account/account.py:2794
+#: code:addons/account/account.py:2838
#: code:addons/account/installer.py:452
#, python-format
msgid "Purchase Journal"
@@ -7839,7 +7967,7 @@ msgstr ""
#. module: account
#: view:account.payment.term.line:0
msgid " valuation: balance"
-msgstr ""
+msgstr " расчет: баланс"
#. module: account
#: view:account.tax.code:0
@@ -7860,7 +7988,7 @@ msgstr "Закрыть финансовый год"
#. module: account
#: sql_constraint:account.account:0
msgid "The code of the account must be unique per company !"
-msgstr "Код счета должен быть уникальным для компании !"
+msgstr "Код счета должен быть уникальным внутри организации!"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_journal_2_account_invoice_opened
@@ -7939,8 +8067,8 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1131
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1137
+#: code:addons/account/account_move_line.py:1220
#, python-format
msgid "Bad account!"
msgstr "Плохой счет!"
@@ -7951,7 +8079,7 @@ msgid "Keep empty for all open fiscal years"
msgstr "Оставьте пустым для всех открытых финансовых лет"
#. module: account
-#: code:addons/account/account_move_line.py:1056
+#: code:addons/account/account_move_line.py:1062
#, python-format
msgid "The account move (%s) for centralisation has been confirmed!"
msgstr ""
@@ -7962,6 +8090,7 @@ msgid ""
"The amount expressed in an optional other currency if it is a multi-currency "
"entry."
msgstr ""
+"Сумма выражается в дополнительный валюте, если эта проводка мульти-валютная."
#. module: account
#: view:account.account:0
@@ -7972,6 +8101,7 @@ msgstr ""
#: field:account.entries.report,currency_id:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.invoice,currency_id:0
#: field:account.invoice.report,currency_id:0
#: field:account.journal,currency:0
@@ -8062,7 +8192,7 @@ msgstr "неизвестен"
#. module: account
#: field:account.fiscalyear.close,journal_id:0
msgid "Opening Entries Journal"
-msgstr "Открытие журнала проводок"
+msgstr "Журнал проводок открытия"
#. module: account
#: model:process.transition,note:account.process_transition_customerinvoice0
@@ -8145,14 +8275,14 @@ msgid "Period from"
msgstr "Период с"
#. module: account
-#: code:addons/account/account.py:2817
+#: code:addons/account/account.py:2861
#: code:addons/account/installer.py:476
#, python-format
msgid "Sales Refund Journal"
msgstr "Журнал возврата продаж"
#. module: account
-#: code:addons/account/account.py:927
+#: code:addons/account/account.py:941
#, python-format
msgid ""
"You cannot modify company of this period as its related record exist in "
@@ -8201,7 +8331,7 @@ msgid "Purchase Tax(%)"
msgstr "Налог на покупку(%)"
#. module: account
-#: code:addons/account/invoice.py:787
+#: code:addons/account/invoice.py:795
#, python-format
msgid "Please create some invoice lines."
msgstr "Пожалуйста, создайте позиции счета"
@@ -8217,7 +8347,7 @@ msgid "Configure Your Accounting Application"
msgstr "Настройка модуля бухучета"
#. module: account
-#: code:addons/account/account.py:2820
+#: code:addons/account/account.py:2864
#: code:addons/account/installer.py:479
#, python-format
msgid "SCNJ"
@@ -8255,6 +8385,7 @@ msgstr "Управление напоминаниями"
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
@@ -8264,7 +8395,7 @@ msgid "Start Period"
msgstr "Начало периода"
#. module: account
-#: code:addons/account/account.py:2333
+#: code:addons/account/account.py:2357
#, python-format
msgid "Cannot locate parent code for template account!"
msgstr "Не удается найти родительский код для шаблона счета!"
@@ -8277,7 +8408,7 @@ msgstr "Направление анализа"
#. module: account
#: field:res.partner,ref_companies:0
msgid "Companies that refers to partner"
-msgstr "Ссылающиеся на партнера компании"
+msgstr "Связанные с партнёром организации"
#. module: account
#: view:account.journal:0
@@ -8301,7 +8432,7 @@ msgid "Accountant validates the accounting entries coming from the invoice. "
msgstr "Бухгалтер утверждает проводки созданные по счет-фактуре. "
#. module: account
-#: code:addons/account/invoice.py:1008
+#: code:addons/account/invoice.py:1014
#, python-format
msgid ""
"You cannot cancel the Invoice which is Partially Paid! You need to "
@@ -8328,10 +8459,10 @@ msgstr "Документ: выписка клиенту со счета"
#. module: account
#: constraint:account.move.line:0
msgid "You can not create move line on view account."
-msgstr "Нельзя создать действие по счету с типом Вид."
+msgstr "Нельзя создать операцию по счету с типом Вид."
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:71
+#: code:addons/account/wizard/account_change_currency.py:70
#, python-format
msgid "Current currency is not confirured properly !"
msgstr "Текущая валюта неправильно настроена !"
@@ -8380,6 +8511,7 @@ msgstr "Оставьте пустым для использования дохо
#: field:account.entries.report,balance:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.move.line,balance:0
#: report:account.partner.balance:0
#: selection:account.payment.term.line,value:0
@@ -8398,6 +8530,7 @@ msgstr "Вручную или автоматически введенные в
#. module: account
#: report:account.account.balance:0
+#: report:account.general.ledger_landscape:0
msgid "Display Account"
msgstr "Вывод счета"
@@ -8512,14 +8645,15 @@ msgstr "Проводка вручную"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.move.line,move_id:0
#: field:analytic.entries.report,move_id:0
msgid "Move"
-msgstr "Перемещение"
+msgstr "Операция"
#. module: account
-#: code:addons/account/account_move_line.py:1128
+#: code:addons/account/account_move_line.py:1134
#, python-format
msgid "You can not change the tax, you should remove and recreate lines !"
msgstr ""
@@ -8528,7 +8662,7 @@ msgstr ""
#. module: account
#: report:account.central.journal:0
msgid "A/C No."
-msgstr ""
+msgstr "Счет №"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_journal_2_account_bank_statement
@@ -8616,6 +8750,7 @@ msgstr "Аналитический баланс"
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
@@ -8646,7 +8781,7 @@ msgstr "План счетов"
#. module: account
#: field:account.move.line,date_maturity:0
msgid "Due date"
-msgstr "Срок"
+msgstr "Срок оплаты"
#. module: account
#: view:account.move.journal:0
@@ -8659,7 +8794,7 @@ msgid "Account Subscription"
msgstr "Счет подписки"
#. module: account
-#: code:addons/account/invoice.py:717
+#: code:addons/account/invoice.py:725
#, python-format
msgid ""
"Tax base different !\n"
@@ -8686,6 +8821,7 @@ msgstr "Проводка подписки"
#: report:account.general.journal:0
#: field:account.general.journal,date_from:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,date_start:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -8714,7 +8850,7 @@ msgid "Unreconciled"
msgstr "Не сверенные"
#. module: account
-#: code:addons/account/invoice.py:804
+#: code:addons/account/invoice.py:812
#, python-format
msgid "Bad total !"
msgstr "Плохой итог !"
@@ -8722,7 +8858,7 @@ msgstr "Плохой итог !"
#. module: account
#: field:account.journal,sequence_id:0
msgid "Entry Sequence"
-msgstr "Последовательный номер проводки"
+msgstr "Нумерация проводок"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_period_tree
@@ -8772,19 +8908,22 @@ msgid "Active"
msgstr "Активен"
#. module: account
-#: code:addons/account/invoice.py:354
+#: code:addons/account/invoice.py:353
#, python-format
msgid "Unknown Error"
msgstr "Неизвестная ошибка"
#. module: account
-#: code:addons/account/account.py:1167
+#: code:addons/account/account.py:1181
#, python-format
msgid ""
"You cannot validate a non-balanced entry !\n"
"Make sure you have configured Payment Term properly !\n"
"It should contain atleast one Payment Term Line with type \"Balance\" !"
msgstr ""
+"Вы не можете утвердить несбалансированную проводку!\n"
+"Проверьте правильность настройки условия оплаты!\n"
+"Должна быть хотя бы одна строка условия оплаты с типом \"Баланс\"!"
#. module: account
#: help:res.partner,property_account_payable:0
@@ -8808,7 +8947,7 @@ msgstr "Вторичная валюта"
#. module: account
#: model:ir.model,name:account.model_validate_account_move
msgid "Validate Account Move"
-msgstr "Утвердить действие по счету"
+msgstr "Утвердить операцию по счету"
#. module: account
#: field:account.account,credit:0
@@ -8821,10 +8960,10 @@ msgstr "Утвердить действие по счету"
#: field:account.entries.report,credit:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.model.line,credit:0
#: field:account.move.line,credit:0
-#: report:account.move.voucher:0
#: report:account.partner.balance:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
@@ -8866,6 +9005,9 @@ msgid ""
"payment term!\n"
"Please define partner on it!"
msgstr ""
+"Дата исполнения проводки созданной строкой \"%s\" основана на условии оплаты "
+"контрагента!\n"
+"Пожалуйста, задайте контрагента!"
#. module: account
#: field:account.cashbox.line,number:0
@@ -9065,7 +9207,6 @@ msgstr "Выберите период"
#: view:account.move:0
#: selection:account.move,state:0
#: view:account.move.line:0
-#: report:account.move.voucher:0
msgid "Posted"
msgstr "Проведено"
@@ -9084,6 +9225,7 @@ msgstr "Проведено"
#: report:account.general.journal:0
#: field:account.general.journal,date_to:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,date_stop:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -9102,7 +9244,7 @@ msgstr "Дата окончания"
#: model:ir.actions.act_window,name:account.action_account_open_closed_fiscalyear
#: model:ir.ui.menu,name:account.menu_wizard_account_open_closed_fiscalyear
msgid "Cancel Opening Entries"
-msgstr "Отмена открывающих проводок"
+msgstr "Отмена проводок открытия"
#. module: account
#: field:account.payment.term.line,days2:0
@@ -9137,7 +9279,7 @@ msgid "This is a model for recurring accounting entries"
msgstr "Это модель для повторяющихся проводок"
#. module: account
-#: code:addons/account/account_analytic_line.py:100
+#: code:addons/account/account_analytic_line.py:99
#, python-format
msgid "There is no income account defined for this product: \"%s\" (id:%d)"
msgstr "Не определен счет доходов для ТМЦ: \"%s\" (id:%d)"
@@ -9210,7 +9352,7 @@ msgstr "Журнал: Все"
#: field:analytic.entries.report,company_id:0
#: field:wizard.multi.charts.accounts,company_id:0
msgid "Company"
-msgstr "Компания"
+msgstr "Организация"
#. module: account
#: model:ir.ui.menu,name:account.menu_action_subscription_form
@@ -9289,8 +9431,8 @@ msgid "End period"
msgstr "Конец периода"
#. module: account
-#: code:addons/account/account_move_line.py:738
-#: code:addons/account/account_move_line.py:815
+#: code:addons/account/account_move_line.py:729
+#: code:addons/account/account_move_line.py:806
#: code:addons/account/wizard/account_invoice_state.py:44
#: code:addons/account/wizard/account_invoice_state.py:68
#: code:addons/account/wizard/account_report_balance_sheet.py:70
@@ -9320,7 +9462,7 @@ msgstr ""
#: view:account.automatic.reconcile:0
#: view:account.move.line.reconcile.writeoff:0
msgid "Write-Off Move"
-msgstr ""
+msgstr "Операция списания"
#. module: account
#: model:process.node,note:account.process_node_paidinvoice0
@@ -9358,10 +9500,10 @@ msgstr "Счет поставщика"
#: field:account.entries.report,debit:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.model.line,debit:0
#: field:account.move.line,debit:0
-#: report:account.move.voucher:0
#: report:account.partner.balance:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
@@ -9395,7 +9537,7 @@ msgid "Recurring"
msgstr "Повторение"
#. module: account
-#: code:addons/account/account_move_line.py:805
+#: code:addons/account/account_move_line.py:796
#, python-format
msgid "Entry is already reconciled"
msgstr "Проводка уже сверена"
@@ -9408,7 +9550,7 @@ msgstr "Дебиторская задолженность"
#. module: account
#: selection:account.model.line,date_maturity:0
msgid "Partner Payment Term"
-msgstr "Условия платежа партнера"
+msgstr "Условие оплаты контрагента"
#. module: account
#: field:temp.range,name:0
@@ -9416,7 +9558,7 @@ msgid "Range"
msgstr "Диапазон"
#. module: account
-#: code:addons/account/account_move_line.py:1246
+#: code:addons/account/account_move_line.py:1252
#, python-format
msgid ""
"Can not create an automatic sequence for this piece !\n"
@@ -9432,7 +9574,7 @@ msgstr ""
#: selection:account.pl.report,display_account:0
#: selection:account.report.general.ledger,display_account:0
msgid "With movements"
-msgstr ""
+msgstr "С движением"
#. module: account
#: view:account.analytic.account:0
@@ -9489,7 +9631,7 @@ msgstr "Этот период уже закрыт !"
#. module: account
#: help:account.move.line,currency_id:0
msgid "The optional other currency if it is a multi-currency entry."
-msgstr "Дополнительная валюта, если эта запись мульти-валютная."
+msgstr "Дополнительная валюта, если эта проводка мульти-валютная."
#. module: account
#: model:process.transition,note:account.process_transition_invoiceimport0
@@ -9518,12 +9660,12 @@ msgid ""
"may keep several types of specialized journals such as a cash journal, "
"purchase journal, sales journal..."
msgstr ""
-"Создание и управление журналами вашей компании. Журнал используется для "
-"записи всех операций учета данных связанных с ежедневной деятельностью вашей "
-"компании используя двойную запись. В зависимости от характера деятельности "
-"и количества ежедневных операций, компания может использовать несколько "
-"типов специализированных журналов таких, как кассовый журнал, журнал "
-"покупок, журнал продаж..."
+"Создавайте журналы организации и управляйте ими в этом меню. Журнал "
+"используется для отражения всех данных операций бухгалтерского учёта, "
+"связанных с повседневной деятельностью вашей организации по принципу двойной "
+"записи. В зависимости от характера деятельности и количества операций, "
+"организация может вести несколько типов специализированных журналов, таких "
+"как кассовый журнал, журнал покупок, журнал продаж…"
#. module: account
#: model:ir.model,name:account.model_account_analytic_chart
@@ -9553,7 +9695,7 @@ msgid "Accounts Mapping"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:346
+#: code:addons/account/invoice.py:345
#, python-format
msgid "Invoice '%s' is waiting for validation."
msgstr "Счет '%s' ожидает утверждения."
@@ -9578,7 +9720,7 @@ msgid "The income or expense account related to the selected product."
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1117
+#: code:addons/account/account_move_line.py:1123
#, python-format
msgid "The date of your Journal Entry is not in the defined period!"
msgstr "Дата вашей записи в журнале вне определенного периода!"
@@ -9636,7 +9778,7 @@ msgstr "Бухгалтерские документы"
#. module: account
#: model:ir.model,name:account.model_validate_account_move_lines
msgid "Validate Account Move Lines"
-msgstr "Утвердить действия по счету"
+msgstr "Утвердить операции по счету"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_analytic_cost_ledger_journal
@@ -9776,7 +9918,7 @@ msgstr ""
#. module: account
#: field:account.analytic.line,amount_currency:0
msgid "Amount currency"
-msgstr "Валюта суммы"
+msgstr "Сумма в валюте"
#. module: account
#: code:addons/account/wizard/account_report_aged_partner_balance.py:55
@@ -9785,7 +9927,7 @@ msgid "You must enter a period length that cannot be 0 or below !"
msgstr "Вы должны ввести длину периода больше 0 !"
#. module: account
-#: code:addons/account/account.py:501
+#: code:addons/account/account.py:511
#, python-format
msgid "You cannot remove an account which has account entries!. "
msgstr "Нельзя удалить счет по которому есть проводки ! "
diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po
index 19544fb613b..a76da12910a 100644
--- a/addons/account/i18n/zh_CN.po
+++ b/addons/account/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2011-02-03 07:35+0000\n"
+"PO-Revision-Date: 2011-07-02 15:26+0000\n"
"Last-Translator: Wei \"oldrev\" Li \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 05:14+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-07-03 04:46+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: account
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
@@ -33,7 +33,7 @@ msgid "No End of year journal defined for the fiscal year"
msgstr "此财务年度没有定义年终日记账"
#. module: account
-#: code:addons/account/account.py:506
+#: code:addons/account/account.py:516
#, python-format
msgid ""
"You cannot remove/deactivate an account which is set as a property to any "
@@ -65,7 +65,7 @@ msgid "Residual"
msgstr "剩余的"
#. module: account
-#: code:addons/account/invoice.py:785
+#: code:addons/account/invoice.py:793
#, python-format
msgid "Please define sequence on invoice journal"
msgstr "请为发票日记账对应序列"
@@ -110,7 +110,7 @@ msgstr "从发票或支付凭证导入"
#. module: account
#: model:ir.model,name:account.model_wizard_multi_charts_accounts
msgid "wizard.multi.charts.accounts"
-msgstr "wizard.multi.charts.accounts"
+msgstr "多科目图表向导"
#. module: account
#: view:account.move:0
@@ -122,7 +122,7 @@ msgstr "借方合计"
msgid ""
"If you unreconciliate transactions, you must also verify all the actions "
"that are linked to those transactions because they will not be disabled"
-msgstr ""
+msgstr "如果您用非关联交易,您还必须验证所有链接到这些交易行动,因为他们不会被禁用"
#. module: account
#: report:account.tax.code.entries:0
@@ -130,7 +130,7 @@ msgid "Accounting Entries-"
msgstr "会计分录"
#. module: account
-#: code:addons/account/account.py:1291
+#: code:addons/account/account.py:1305
#, python-format
msgid "You can not delete posted movement: \"%s\"!"
msgstr "不能删除已登账的凭证行:\"%s\"!"
@@ -171,10 +171,10 @@ msgstr "选择会计年度 "
msgid ""
"If the active field is set to False, it will allow you to hide the payment "
"term without removing it."
-msgstr ""
+msgstr "如果设置为false,该付款条款将会被隐藏。"
#. module: account
-#: code:addons/account/invoice.py:1421
+#: code:addons/account/invoice.py:1436
#, python-format
msgid "Warning!"
msgstr "警告!"
@@ -212,7 +212,7 @@ msgid ""
"Gives the type of the analytic journal. When it needs for a document (eg: an "
"invoice) to create analytic entries, OpenERP will look for a matching "
"journal of the same type."
-msgstr ""
+msgstr "给出了分析报表类型。当一个文件(如:发票),需要创建解析条目,OpenERP将寻找一个相同类型的匹配杂志。"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_template_form
@@ -223,10 +223,10 @@ msgstr "税模板"
#. module: account
#: model:ir.model,name:account.model_account_tax
msgid "account.tax"
-msgstr "科目.税"
+msgstr "税科目"
#. module: account
-#: code:addons/account/account.py:901
+#: code:addons/account/account.py:915
#, python-format
msgid ""
"No period defined for this date: %s !\n"
@@ -238,7 +238,7 @@ msgstr ""
#. module: account
#: model:ir.model,name:account.model_account_move_line_reconcile_select
msgid "Move line reconcile select"
-msgstr ""
+msgstr "选择核销行"
#. module: account
#: help:account.model.line,sequence:0
@@ -256,15 +256,15 @@ msgid ""
msgstr "勾选此项使发票上不显示增值税"
#. module: account
-#: code:addons/account/invoice.py:1210
+#: code:addons/account/invoice.py:1224
#, python-format
msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)"
-msgstr ""
+msgstr "发票'%s'已部分支付了%s%s ,总金额为:%s%s, 尚余%s%s未付"
#. module: account
#: model:process.transition,note:account.process_transition_supplierentriesreconcile0
msgid "Accounting entries are an input of the reconciliation."
-msgstr ""
+msgstr "会计分录必须借贷相等"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_management_belgian_reports
@@ -272,7 +272,7 @@ msgid "Belgian Reports"
msgstr "比利时报表"
#. module: account
-#: code:addons/account/account_move_line.py:1176
+#: code:addons/account/account_move_line.py:1182
#, python-format
msgid "You can not add/modify entries in a closed journal."
msgstr "不能添加/修改已结帐的凭证"
@@ -280,7 +280,7 @@ msgstr "不能添加/修改已结帐的凭证"
#. module: account
#: view:account.bank.statement:0
msgid "Calculated Balance"
-msgstr ""
+msgstr "计算余额"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_use_model_create_entry
@@ -310,7 +310,7 @@ msgid "St."
msgstr "结单编码"
#. module: account
-#: code:addons/account/invoice.py:529
+#: code:addons/account/invoice.py:532
#, python-format
msgid "Invoice line account company does not match with invoice company."
msgstr "发票明细的科目公司与发票头的公司不匹配。"
@@ -325,7 +325,7 @@ msgstr "字段名"
msgid ""
"Installs localized accounting charts to match as closely as possible the "
"accounting needs of your company based on your country."
-msgstr ""
+msgstr "安装本地化财务系统以尽可能的适应本国的财务要求"
#. module: account
#: code:addons/account/wizard/account_move_journal.py:63
@@ -335,12 +335,12 @@ msgid ""
"\n"
"You can create one in the menu: \n"
"Configuration/Financial Accounting/Accounts/Journals."
-msgstr ""
+msgstr "无法找到针对该公司%s类型的分类账簿"
#. module: account
#: model:ir.model,name:account.model_account_unreconcile
msgid "Account Unreconcile"
-msgstr ""
+msgstr "科目反核销"
#. module: account
#: view:product.product:0
@@ -352,7 +352,7 @@ msgstr "采购属性"
#: view:account.installer:0
#: view:account.installer.modules:0
msgid "Configure"
-msgstr ""
+msgstr "设置"
#. module: account
#: selection:account.entries.report,month:0
@@ -370,11 +370,12 @@ msgid ""
"OpenERP. Journal items are created by OpenERP if you use Bank Statements, "
"Cash Registers, or Customer/Supplier payments."
msgstr ""
+"本界面供财务人员在OpenERP中批量录入凭证之用。如果你在OpenERP使用银行对帐单,收银机,或者客户/供应商付款, 相应的分录会由系统自动产生。"
#. module: account
#: model:ir.model,name:account.model_account_tax_template
msgid "account.tax.template"
-msgstr ""
+msgstr "account.tax.template"
#. module: account
#: model:ir.model,name:account.model_account_bank_accounts_wizard
@@ -390,7 +391,7 @@ msgstr "建立日期"
#. module: account
#: selection:account.journal,type:0
msgid "Purchase Refund"
-msgstr ""
+msgstr "采购退款"
#. module: account
#: selection:account.journal,type:0
@@ -412,7 +413,7 @@ msgstr "打开会计年度"
msgid ""
"This field contains the informatin related to the numbering of the journal "
"entries of this journal."
-msgstr ""
+msgstr "该字段包含该分类账簿记录数量的信息"
#. module: account
#: field:account.journal,default_debit_account_id:0
@@ -462,6 +463,7 @@ msgid ""
"amount of each area of the tax declaration for your country. It’s presented "
"in a hierarchical structure, which can be modified to fit your needs."
msgstr ""
+"税务表是一个树状视图,反映了税务结构,并显示当前的纳税情况。税务表反映了国家规定的不同纳税领域的纳税申报数量情况。其设置为一个层次结构,请根据需要修改。"
#. module: account
#: view:account.analytic.line:0
@@ -500,17 +502,17 @@ msgstr "业务类型"
#. module: account
#: model:ir.model,name:account.model_account_invoice_confirm
msgid "Confirm the selected invoices"
-msgstr ""
+msgstr "确认选定的发票"
#. module: account
#: field:account.addtmpl.wizard,cparent_id:0
msgid "Parent target"
-msgstr ""
+msgstr "上级目标"
#. module: account
#: field:account.bank.statement,account_id:0
msgid "Account used in this journal"
-msgstr ""
+msgstr "这个分类账簿上的科目"
#. module: account
#: help:account.aged.trial.balance,chart_account_id:0
@@ -529,7 +531,7 @@ msgstr ""
#: help:account.report.general.ledger,chart_account_id:0
#: help:account.vat.declaration,chart_account_id:0
msgid "Select Charts of Accounts"
-msgstr ""
+msgstr "选择科目表"
#. module: account
#: view:product.product:0
@@ -539,7 +541,7 @@ msgstr "进项税"
#. module: account
#: model:ir.model,name:account.model_account_invoice_refund
msgid "Invoice Refund"
-msgstr ""
+msgstr "发票退款"
#. module: account
#: report:account.overdue:0
@@ -552,10 +554,10 @@ msgid "Not reconciled transactions"
msgstr "没核销的交易"
#. module: account
-#: code:addons/account/account_cash_statement.py:348
+#: code:addons/account/account_cash_statement.py:349
#, python-format
msgid "CashBox Balance is not matching with Calculated Balance !"
-msgstr ""
+msgstr "出纳帐与现金不一致"
#. module: account
#: view:account.fiscal.position:0
@@ -589,12 +591,12 @@ msgstr "所有"
#. module: account
#: field:account.invoice.report,address_invoice_id:0
msgid "Invoice Address Name"
-msgstr ""
+msgstr "发票地址"
#. module: account
#: selection:account.installer,period:0
msgid "3 Monthly"
-msgstr ""
+msgstr "3个月"
#. module: account
#: view:account.unreconcile.reconcile:0
@@ -606,7 +608,7 @@ msgstr "如果执行反核销, 你必须检验链接该处理的所有操作.
#. module: account
#: view:analytic.entries.report:0
msgid " 30 Days "
-msgstr ""
+msgstr " 30 天 "
#. module: account
#: field:ir.sequence,fiscal_ids:0
@@ -626,7 +628,7 @@ msgstr ""
#. module: account
#: sql_constraint:account.sequence.fiscalyear:0
msgid "Main Sequence must be different from current !"
-msgstr ""
+msgstr "序列号必须唯一"
#. module: account
#: field:account.invoice.tax,tax_amount:0
@@ -634,7 +636,7 @@ msgid "Tax Code Amount"
msgstr "税事务金额"
#. module: account
-#: code:addons/account/account.py:2779
+#: code:addons/account/account.py:2823
#: code:addons/account/installer.py:434
#, python-format
msgid "SAJ"
@@ -654,7 +656,7 @@ msgstr "关闭会计期间"
#. module: account
#: model:ir.model,name:account.model_account_common_partner_report
msgid "Account Common Partner Report"
-msgstr ""
+msgstr "普通合伙人的科目报表"
#. module: account
#: field:account.fiscalyear.close,period_id:0
@@ -664,11 +666,11 @@ msgstr "会计期间的启用凭证"
#. module: account
#: model:ir.model,name:account.model_account_journal_period
msgid "Journal Period"
-msgstr ""
+msgstr "明细帐期间"
#. module: account
-#: code:addons/account/account_move_line.py:732
-#: code:addons/account/account_move_line.py:776
+#: code:addons/account/account_move_line.py:723
+#: code:addons/account/account_move_line.py:767
#, python-format
msgid "To reconcile the entries company should be the same for all entries"
msgstr ""
@@ -688,7 +690,7 @@ msgstr "应收款科目"
#. module: account
#: model:ir.model,name:account.model_account_report_general_ledger
msgid "General Ledger Report"
-msgstr ""
+msgstr "总账报表"
#. module: account
#: view:account.invoice:0
@@ -708,7 +710,7 @@ msgstr ""
#. module: account
#: field:account.partner.reconcile.process,today_reconciled:0
msgid "Partners Reconciled Today"
-msgstr ""
+msgstr "今天合作伙伴不开心"
#. module: account
#: selection:account.payment.term.line,value:0
@@ -726,13 +728,13 @@ msgstr "表"
#: model:ir.model,name:account.model_project_account_analytic_line
#, python-format
msgid "Analytic Entries by line"
-msgstr ""
+msgstr "按行显示分析科目数据"
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:39
+#: code:addons/account/wizard/account_change_currency.py:38
#, python-format
msgid "You can only change currency for Draft Invoice !"
-msgstr ""
+msgstr "您只能更改发票草案金额!"
#. module: account
#: view:account.analytic.journal:0
@@ -769,17 +771,17 @@ msgstr "反核销"
#. module: account
#: model:ir.model,name:account.model_account_analytic_Journal_report
msgid "Account Analytic Journal"
-msgstr ""
+msgstr "科目分析报表"
#. module: account
#: model:ir.model,name:account.model_account_automatic_reconcile
msgid "Automatic Reconcile"
-msgstr ""
+msgstr "自己核销"
#. module: account
#: view:account.payment.term.line:0
msgid "Due date Computation"
-msgstr ""
+msgstr "计算截止日期"
#. module: account
#: report:account.analytic.account.quantity_cost_ledger:0
@@ -793,7 +795,7 @@ msgstr "成本业务类型/凭证名称"
#: selection:report.account.sales,month:0
#: selection:report.account_type.sales,month:0
msgid "September"
-msgstr ""
+msgstr "9月"
#. module: account
#: selection:account.subscription,period_type:0
@@ -804,7 +806,7 @@ msgstr "天"
#: help:account.account.template,nocreate:0
msgid ""
"If checked, the new chart of accounts will not contain this by default."
-msgstr ""
+msgstr "如果选中,这一点的新报表科目将不包含在默认情况下。"
#. module: account
#: code:addons/account/wizard/account_invoice_refund.py:102
@@ -812,7 +814,7 @@ msgstr ""
msgid ""
"Can not %s invoice which is already reconciled, invoice should be "
"unreconciled first. You can only Refund this invoice"
-msgstr ""
+msgstr "无法%s该发票,该发票已核销,除非先将其反核销。目前只能对该发票做退款处理"
#. module: account
#: model:ir.actions.act_window,name:account.action_subscription_form_new
@@ -827,10 +829,10 @@ msgstr "计算"
#. module: account
#: view:account.move.line:0
msgid "Next Partner to reconcile"
-msgstr ""
+msgstr "与下一个合作伙伴对帐"
#. module: account
-#: code:addons/account/account_move_line.py:1191
+#: code:addons/account/account_move_line.py:1197
#, python-format
msgid ""
"You can not do this modification on a confirmed entry ! Please note that you "
@@ -841,7 +843,7 @@ msgstr "您不能修改已确认的凭证!您只能修改一些非重要字段
#: view:account.invoice.report:0
#: field:account.invoice.report,delay_to_pay:0
msgid "Avg. Delay To Pay"
-msgstr ""
+msgstr "延迟付款平均时间"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_tax_chart
@@ -864,7 +866,7 @@ msgstr "到期"
#: view:account.invoice.report:0
#: field:account.invoice.report,price_total_tax:0
msgid "Total With Tax"
-msgstr ""
+msgstr "总税单(纳税合计)"
#. module: account
#: view:account.invoice:0
@@ -872,7 +874,7 @@ msgstr ""
#: view:validate.account.move:0
#: view:validate.account.move.lines:0
msgid "Approve"
-msgstr ""
+msgstr "核准"
#. module: account
#: view:account.invoice:0
@@ -894,22 +896,22 @@ msgstr "合并"
#: view:account.invoice.report:0
#: view:account.move.line:0
msgid "Extended Filters..."
-msgstr ""
+msgstr "增加筛选条件"
#. module: account
#: model:ir.ui.menu,name:account.menu_account_central_journal
msgid "Centralizing Journal"
-msgstr ""
+msgstr "合并报表"
#. module: account
#: selection:account.journal,type:0
msgid "Sale Refund"
-msgstr ""
+msgstr "销售退款(货)"
#. module: account
#: model:process.node,note:account.process_node_accountingstatemententries0
msgid "Bank statement"
-msgstr ""
+msgstr "银行对帐单"
#. module: account
#: field:account.analytic.line,move_id:0
@@ -927,7 +929,7 @@ msgstr ""
#. module: account
#: view:account.analytic.line:0
msgid "Purchases"
-msgstr ""
+msgstr "采购单列表"
#. module: account
#: field:account.model,lines_id:0
@@ -952,11 +954,11 @@ msgid "Code"
msgstr "代码"
#. module: account
-#: code:addons/account/account.py:2083
+#: code:addons/account/account.py:2097
#: code:addons/account/account_bank_statement.py:350
-#: code:addons/account/account_move_line.py:170
+#: code:addons/account/account_move_line.py:169
#: code:addons/account/invoice.py:73
-#: code:addons/account/invoice.py:670
+#: code:addons/account/invoice.py:678
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "No Analytic Journal !"
@@ -974,13 +976,13 @@ msgstr "业务伙伴余额"
#. module: account
#: field:account.bank.accounts.wizard,acc_name:0
msgid "Account Name."
-msgstr ""
+msgstr "科目名称"
#. module: account
#: field:account.chart.template,property_reserve_and_surplus_account:0
#: field:res.company,property_reserve_and_surplus_account:0
msgid "Reserve and Profit/Loss Account"
-msgstr ""
+msgstr "所有者权益类科目"
#. module: account
#: field:report.account.receivable,name:0
@@ -997,12 +999,12 @@ msgstr "横向模式"
#. module: account
#: view:board.board:0
msgid "Customer Invoices to Approve"
-msgstr ""
+msgstr "客户发票审核"
#. module: account
#: help:account.fiscalyear.close,fy_id:0
msgid "Select a Fiscal year to close"
-msgstr ""
+msgstr "关闭一个财政年度"
#. module: account
#: help:account.account,user_type:0
@@ -1010,12 +1012,12 @@ msgstr ""
msgid ""
"These types are defined according to your country. The type contains more "
"information about the account and its specificities."
-msgstr ""
+msgstr "根据你的国家定义这些类型,该类型包含有关科目及其具体的信息。"
#. module: account
#: view:account.tax:0
msgid "Applicability Options"
-msgstr ""
+msgstr "可选项"
#. module: account
#: report:account.partner.balance:0
@@ -1026,16 +1028,15 @@ msgstr "争议中"
#: model:ir.actions.act_window,name:account.action_view_bank_statement_tree
#: model:ir.ui.menu,name:account.journal_cash_move_lines
msgid "Cash Registers"
-msgstr ""
+msgstr "出纳现金"
#. module: account
#: selection:account.account.type,report_type:0
msgid "Profit & Loss (Expense Accounts)"
-msgstr ""
+msgstr "损益表"
#. module: account
#: report:account.analytic.account.journal:0
-#: report:account.move.voucher:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
msgid "-"
@@ -1044,7 +1045,7 @@ msgstr "-"
#. module: account
#: view:account.analytic.account:0
msgid "Manager"
-msgstr ""
+msgstr "经理"
#. module: account
#: view:account.subscription.generate:0
@@ -1054,7 +1055,7 @@ msgstr ""
#. module: account
#: selection:account.bank.accounts.wizard,account_type:0
msgid "Bank"
-msgstr ""
+msgstr "银行"
#. module: account
#: field:account.period,date_start:0
@@ -1064,7 +1065,7 @@ msgstr "开始会计期间"
#. module: account
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
msgid "Confirm statement"
-msgstr ""
+msgstr "确认报表"
#. module: account
#: field:account.fiscal.position.tax,tax_dest_id:0
@@ -1085,11 +1086,12 @@ msgid ""
"purchase orders or receipts. This way, you can control the invoice from your "
"supplier according to what you purchased or received."
msgstr ""
+"供应商发票,您可以输入和管理你的供应商发出的发票。 OpenERP还可以自动生成草案从采购订单发票或收据。这样,您就可以控制从供应商的发票."
#. module: account
#: view:account.invoice.cancel:0
msgid "Cancel Invoices"
-msgstr ""
+msgstr "作废发票"
#. module: account
#: view:account.unreconcile.reconcile:0
@@ -1121,6 +1123,7 @@ msgstr "# 处理"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
@@ -1128,7 +1131,7 @@ msgid "Entry Label"
msgstr "凭证标签"
#. module: account
-#: code:addons/account/account.py:976
+#: code:addons/account/account.py:990
#, python-format
msgid "You can not modify/delete a journal with entries for this period !"
msgstr "您不能修改/删除这业务类型和在此会计期间的凭证!"
@@ -1175,19 +1178,19 @@ msgstr "科目"
#. module: account
#: field:account.tax,include_base_amount:0
msgid "Included in base amount"
-msgstr ""
+msgstr "含基数"
#. module: account
#: view:account.entries.report:0
#: model:ir.actions.act_window,name:account.action_account_entries_report_all
#: model:ir.ui.menu,name:account.menu_action_account_entries_report_all
msgid "Entries Analysis"
-msgstr ""
+msgstr "项目分析"
#. module: account
#: field:account.account,level:0
msgid "Level"
-msgstr ""
+msgstr "级别"
#. module: account
#: report:account.invoice:0
@@ -1208,7 +1211,7 @@ msgstr "税"
#: code:addons/account/wizard/account_report_common.py:120
#, python-format
msgid "Select a starting and an ending period"
-msgstr ""
+msgstr "选择一个开始和结束时间"
#. module: account
#: model:ir.model,name:account.model_account_account_template
@@ -1218,12 +1221,12 @@ msgstr "科目模板"
#. module: account
#: view:account.tax.code.template:0
msgid "Search tax template"
-msgstr ""
+msgstr "搜索税模板"
#. module: account
#: report:account.invoice:0
msgid "Your Reference"
-msgstr ""
+msgstr "你的关联单号"
#. module: account
#: view:account.move.reconcile:0
@@ -1242,12 +1245,12 @@ msgstr "逾期付款"
#: report:account.third_party_ledger:0
#: report:account.third_party_ledger_other:0
msgid "Initial Balance"
-msgstr ""
+msgstr "期初余额"
#. module: account
#: view:account.invoice:0
msgid "Reset to Draft"
-msgstr ""
+msgstr "重置为草稿"
#. module: account
#: view:wizard.multi.charts.accounts:0
@@ -1263,13 +1266,12 @@ msgstr "报表选项"
#. module: account
#: model:ir.model,name:account.model_account_entries_report
msgid "Journal Items Analysis"
-msgstr ""
+msgstr "日记帐明细分析"
#. module: account
-#: model:ir.actions.act_window,name:account.action_partner_all
#: model:ir.ui.menu,name:account.next_id_22
msgid "Partners"
-msgstr ""
+msgstr "业务伙伴列表"
#. module: account
#: view:account.bank.statement:0
@@ -1296,7 +1298,7 @@ msgid "Central Journal"
msgstr "主要的业务类型"
#. module: account
-#: code:addons/account/account_move_line.py:1271
+#: code:addons/account/account_move_line.py:1277
#, python-format
msgid "You can not use this general account in this journal !"
msgstr "在这业务类型您不能用这科目!"
@@ -1314,7 +1316,7 @@ msgstr "余额不为0"
#. module: account
#: view:account.tax:0
msgid "Search Taxes"
-msgstr ""
+msgstr "察找税种"
#. module: account
#: model:ir.model,name:account.model_account_analytic_cost_ledger
@@ -1329,7 +1331,7 @@ msgstr "创建凭证"
#. module: account
#: field:account.entries.report,nbr:0
msgid "# of Items"
-msgstr ""
+msgstr "项目"
#. module: account
#: field:account.automatic.reconcile,max_amount:0
@@ -1349,13 +1351,13 @@ msgstr "数字 #"
#. module: account
#: field:account.journal,entry_posted:0
msgid "Skip 'Draft' State for Manual Entries"
-msgstr ""
+msgstr "如果是手工分录的话就跳过“草稿”状态"
#. module: account
#: view:account.invoice.report:0
#: field:account.invoice.report,price_total:0
msgid "Total Without Tax"
-msgstr ""
+msgstr "不含税总金额"
#. module: account
#: model:ir.actions.act_window,help:account.action_move_journal_line
@@ -1369,12 +1371,12 @@ msgstr ""
#. module: account
#: view:account.entries.report:0
msgid "# of Entries "
-msgstr ""
+msgstr "号分录 "
#. module: account
#: model:ir.model,name:account.model_temp_range
msgid "A Temporary table used for Dashboard view"
-msgstr ""
+msgstr "用于仪表盘视图的临时表"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree4
@@ -1386,10 +1388,10 @@ msgstr "供应商红字发票"
#: view:account.payment.term.line:0
msgid ""
"Example: at 14 net days 2 percents, remaining amount at 30 days end of month."
-msgstr ""
+msgstr "例如:在14天内付款减百分之2,30天则没有减。"
#. module: account
-#: code:addons/account/invoice.py:815
+#: code:addons/account/invoice.py:823
#, python-format
msgid ""
"Cannot create the invoice !\n"
@@ -1400,7 +1402,7 @@ msgstr ""
#. module: account
#: field:account.installer.modules,account_anglo_saxon:0
msgid "Anglo-Saxon Accounting"
-msgstr ""
+msgstr "英国会计系统"
#. module: account
#: selection:account.account,type:0
@@ -1416,7 +1418,7 @@ msgstr "已关闭"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_recurrent_entries
msgid "Recurring Entries"
-msgstr ""
+msgstr "经常性项目"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_template
@@ -1426,7 +1428,7 @@ msgstr "财务结构模板"
#. module: account
#: model:account.tax.code,name:account.account_tax_code_0
msgid "Tax Code Test"
-msgstr ""
+msgstr "测试税代码"
#. module: account
#: field:account.automatic.reconcile,reconciled:0
@@ -1462,18 +1464,18 @@ msgstr "未完税"
#. module: account
#: view:account.partner.reconcile.process:0
msgid "Go to next partner"
-msgstr ""
+msgstr "下一个合作伙伴"
#. module: account
#: view:account.bank.statement:0
msgid "Search Bank Statements"
-msgstr ""
+msgstr "查阅银行对帐单"
#. module: account
#: sql_constraint:account.model.line:0
msgid ""
"Wrong credit or debit value in model (Credit + Debit Must Be greater \"0\")!"
-msgstr ""
+msgstr "错误的现金或银行模型(信用+借方必须大于“0”)!"
#. module: account
#: view:account.chart.template:0
@@ -1502,12 +1504,12 @@ msgid ""
"and the closing balance is to be found on your statement. When you are in "
"the Payment column of a line, you can press F1 to open the reconciliation "
"form."
-msgstr ""
+msgstr "银行对帐单是在一个给定的时间上的存款帐户发生的明细。当是你的一个网上交易清单,你可以按F1打开核销的形式。"
#. module: account
#: report:account.analytic.account.cost_ledger:0
msgid "Date/Code"
-msgstr ""
+msgstr "日期/代码"
#. module: account
#: field:account.analytic.line,general_account_id:0
@@ -1535,7 +1537,7 @@ msgstr "发票"
#: model:process.node,note:account.process_node_analytic0
#: model:process.node,note:account.process_node_analyticcost0
msgid "Analytic costs to invoice"
-msgstr ""
+msgstr "开票成本分析"
#. module: account
#: view:ir.sequence:0
@@ -1548,10 +1550,9 @@ msgid "Separated Journal Sequences"
msgstr "分散的业务类型序列"
#. module: account
-#: field:account.bank.statement,user_id:0
#: view:account.invoice:0
msgid "Responsible"
-msgstr ""
+msgstr "负责人"
#. module: account
#: report:account.overdue:0
@@ -1561,14 +1562,14 @@ msgstr "小计 :"
#. module: account
#: model:ir.actions.act_window,name:account.action_report_account_type_sales_tree_all
msgid "Sales by Account Type"
-msgstr ""
+msgstr "销售科目类型"
#. module: account
#: view:account.invoice.refund:0
msgid ""
"Cancel Invoice: Creates the refund invoice, validate and reconcile it to "
"cancel the current invoice."
-msgstr ""
+msgstr "作废发票,退货发票,核销当前发票"
#. module: account
#: model:ir.ui.menu,name:account.periodical_processing_invoicing
@@ -1594,12 +1595,12 @@ msgstr "年合计"
#. module: account
#: model:ir.actions.report.xml,name:account.report_account_voucher_new
msgid "Print Voucher"
-msgstr ""
+msgstr "打印原始凭证"
#. module: account
#: view:account.change.currency:0
msgid "This wizard will change the currency of the invoice"
-msgstr ""
+msgstr "该向导将改变发票的币种"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_chart
@@ -1612,10 +1613,10 @@ msgstr ""
#. module: account
#: constraint:account.fiscalyear:0
msgid "Error! You cannot define overlapping fiscal years"
-msgstr ""
+msgstr "错误!你不能重复定义会计年度"
#. module: account
-#: code:addons/account/account_move_line.py:808
+#: code:addons/account/account_move_line.py:799
#, python-format
msgid "The account is not defined to be reconciled !"
msgstr "科目未设定为可核销!"
@@ -1623,14 +1624,14 @@ msgstr "科目未设定为可核销!"
#. module: account
#: field:account.cashbox.line,pieces:0
msgid "Values"
-msgstr ""
+msgstr "值"
#. module: account
#: help:account.journal.period,active:0
msgid ""
"If the active field is set to False, it will allow you to hide the journal "
"period without removing it."
-msgstr ""
+msgstr "如果此字段设置为False,你可以让他隐藏而不删除它的报表。"
#. module: account
#: view:res.partner:0
@@ -1648,7 +1649,7 @@ msgid "Receivables & Payables"
msgstr "应收&应付"
#. module: account
-#: code:addons/account/account_move_line.py:815
+#: code:addons/account/account_move_line.py:806
#, python-format
msgid "You have to provide an account for the write off entry !"
msgstr "必须为差异凭证指定默认借贷方科目"
@@ -1656,17 +1657,17 @@ msgstr "必须为差异凭证指定默认借贷方科目"
#. module: account
#: model:ir.model,name:account.model_account_common_journal_report
msgid "Account Common Journal Report"
-msgstr ""
+msgstr "科目常用报表"
#. module: account
#: selection:account.partner.balance,display_partner:0
msgid "All Partners"
-msgstr ""
+msgstr "所有合作伙伴"
#. module: account
#: report:account.move.voucher:0
msgid "Ref. :"
-msgstr ""
+msgstr "关联单号:"
#. module: account
#: view:account.analytic.chart:0
@@ -1676,7 +1677,7 @@ msgstr "辅助核算项目一览表"
#. module: account
#: view:account.analytic.line:0
msgid "My Entries"
-msgstr ""
+msgstr "我的工作区"
#. module: account
#: report:account.overdue:0
@@ -1684,7 +1685,7 @@ msgid "Customer Ref:"
msgstr "客户关联:"
#. module: account
-#: code:addons/account/account_cash_statement.py:328
+#: code:addons/account/account_cash_statement.py:329
#, python-format
msgid "User %s does not have rights to access %s journal !"
msgstr ""
@@ -1702,10 +1703,10 @@ msgstr "银行单据草稿"
#. module: account
#: view:account.tax:0
msgid "Tax Declaration: Credit Notes"
-msgstr ""
+msgstr "纳税申报:欠款"
#. module: account
-#: code:addons/account/account.py:499
+#: code:addons/account/account.py:509
#, python-format
msgid "You cannot deactivate an account that contains account moves."
msgstr "你不能停用这科目因为它有凭证"
@@ -1718,10 +1719,10 @@ msgstr "贷方金额"
#. module: account
#: constraint:account.move.line:0
msgid "You can not create move line on closed account."
-msgstr ""
+msgstr "您不能在关闭的科目上建立分录。"
#. module: account
-#: code:addons/account/account.py:519
+#: code:addons/account/account.py:529
#, python-format
msgid ""
"You cannot change the type of account from 'Closed' to any other type which "
@@ -1731,65 +1732,65 @@ msgstr "你不能改变包含\"已关闭\"科目类型的凭证!"
#. module: account
#: view:res.company:0
msgid "Reserve And Profit/Loss Account"
-msgstr ""
+msgstr "损益类科目"
#. module: account
#: sql_constraint:account.move.line:0
msgid "Wrong credit or debit value in accounting entry !"
-msgstr ""
+msgstr "错误的出纳会计分录"
#. module: account
#: view:account.invoice.report:0
#: model:ir.actions.act_window,name:account.action_account_invoice_report_all
#: model:ir.ui.menu,name:account.menu_action_account_invoice_report_all
msgid "Invoices Analysis"
-msgstr ""
+msgstr "开票分析"
#. module: account
#: model:ir.model,name:account.model_account_period_close
msgid "period close"
-msgstr ""
+msgstr "关闭一个会计期间"
#. module: account
#: view:account.installer:0
msgid "Configure Fiscal Year"
-msgstr ""
+msgstr "配置会计年度"
#. module: account
#: model:ir.actions.act_window,name:account.action_project_account_analytic_line_form
msgid "Entries By Line"
-msgstr ""
+msgstr "进行中的项目"
#. module: account
#: report:account.tax.code.entries:0
msgid "A/c Code"
-msgstr ""
+msgstr "A/c编码"
#. module: account
#: field:account.invoice,move_id:0
#: field:account.invoice,move_name:0
msgid "Journal Entry"
-msgstr ""
+msgstr "分类账"
#. module: account
#: view:account.tax:0
msgid "Tax Declaration: Invoices"
-msgstr ""
+msgstr "纳税申报:发票"
#. module: account
#: field:account.cashbox.line,subtotal:0
msgid "Sub Total"
-msgstr ""
+msgstr "小计"
#. module: account
#: view:account.account:0
msgid "Treasury Analysis"
-msgstr ""
+msgstr "出纳报表"
#. module: account
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
-msgstr ""
+msgstr "错误!您不能创建循环的公司。"
#. module: account
#: view:account.analytic.account:0
@@ -1812,12 +1813,12 @@ msgstr "生效"
#: model:ir.actions.act_window,name:account.action_account_print_journal
#: model:ir.model,name:account.model_account_print_journal
msgid "Account Print Journal"
-msgstr ""
+msgstr "打印科目明细帐"
#. module: account
#: model:ir.model,name:account.model_product_category
msgid "Product Category"
-msgstr ""
+msgstr "产品类别"
#. module: account
#: selection:account.account.type,report_type:0
@@ -1827,18 +1828,18 @@ msgstr "/"
#. module: account
#: field:account.bs.report,reserve_account_id:0
msgid "Reserve & Profit/Loss Account"
-msgstr ""
+msgstr "损益类科目"
#. module: account
#: help:account.bank.statement,balance_end:0
msgid "Closing balance based on Starting Balance and Cash Transactions"
-msgstr ""
+msgstr "关闭现金交易,出纳对帐"
#. module: account
#: model:process.node,note:account.process_node_reconciliation0
#: model:process.node,note:account.process_node_supplierreconciliation0
msgid "Comparison between accounting and payment entries"
-msgstr ""
+msgstr "比较会计和支付项目"
#. module: account
#: view:account.tax:0
@@ -1859,7 +1860,7 @@ msgstr "勾选此项, 如果你想每个新建的业务类型使用不同的序
msgid ""
"It adds the currency column if the currency is different then the company "
"currency"
-msgstr ""
+msgstr "此选项增加一个辅助核算币种,他会自动转为记帐本位币。"
#. module: account
#: help:account.journal,allow_date:0
@@ -1871,19 +1872,19 @@ msgstr ""
#. module: account
#: model:ir.actions.act_window,name:account.action_account_pl_report
msgid "Account Profit And Loss"
-msgstr ""
+msgstr "帐户盈亏"
#. module: account
#: field:account.installer,config_logo:0
#: field:account.installer.modules,config_logo:0
#: field:wizard.multi.charts.accounts,config_logo:0
msgid "Image"
-msgstr ""
+msgstr "图像"
#. module: account
#: report:account.move.voucher:0
msgid "Canceled"
-msgstr ""
+msgstr "已作废"
#. module: account
#: view:account.invoice:0
@@ -1896,7 +1897,7 @@ msgstr "未完税金额"
msgid ""
"If the active field is set to False, it will allow you to hide the tax "
"without removing it."
-msgstr ""
+msgstr "如果此字段设置为False,你可以让他隐藏而不删除它的税表。"
#. module: account
#: help:account.bank.statement,name:0
@@ -1932,7 +1933,7 @@ msgstr "打开凭证"
#. module: account
#: field:account.automatic.reconcile,account_ids:0
msgid "Accounts to Reconcile"
-msgstr ""
+msgstr "科目核销"
#. module: account
#: model:process.transition,note:account.process_transition_filestatement0
@@ -1942,7 +1943,7 @@ msgstr ""
#. module: account
#: model:process.node,name:account.process_node_importinvoice0
msgid "Import from invoice"
-msgstr ""
+msgstr "进口发票"
#. module: account
#: selection:account.entries.report,month:0
@@ -1951,7 +1952,7 @@ msgstr ""
#: selection:report.account.sales,month:0
#: selection:report.account_type.sales,month:0
msgid "January"
-msgstr ""
+msgstr "一月"
#. module: account
#: view:account.journal:0
@@ -1961,12 +1962,12 @@ msgstr ""
#. module: account
#: view:account.entries.report:0
msgid "This F.Year"
-msgstr ""
+msgstr "本财年"
#. module: account
#: view:account.tax.chart:0
msgid "Account tax charts"
-msgstr ""
+msgstr "纳税明细表"
#. module: account
#: constraint:account.period:0
@@ -1987,10 +1988,10 @@ msgstr "形式发票"
#: code:addons/account/installer.py:348
#, python-format
msgid " Journal"
-msgstr ""
+msgstr " 日记帐"
#. module: account
-#: code:addons/account/account.py:1319
+#: code:addons/account/account.py:1333
#, python-format
msgid ""
"There is no default default debit account defined \n"
@@ -2012,7 +2013,7 @@ msgstr ""
#. module: account
#: view:account.chart.template:0
msgid "Search Chart of Account Templates"
-msgstr ""
+msgstr "搜索图表科目模板"
#. module: account
#: view:account.installer:0
@@ -2042,7 +2043,7 @@ msgid "Description"
msgstr "说明"
#. module: account
-#: code:addons/account/account.py:2844
+#: code:addons/account/account.py:2888
#: code:addons/account/installer.py:498
#, python-format
msgid "ECNJ"
@@ -2062,7 +2063,7 @@ msgid "Income Account"
msgstr "收入科目"
#. module: account
-#: code:addons/account/invoice.py:352
+#: code:addons/account/invoice.py:351
#, python-format
msgid "There is no Accounting Journal of type Sale/Purchase defined!"
msgstr "没定义销售/采购业务类型!"
@@ -2073,6 +2074,7 @@ msgid "Accounting Properties"
msgstr "会计属性"
#. module: account
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.print.journal,sort_selection:0
msgid "Entries Sorted By"
@@ -2081,17 +2083,17 @@ msgstr "凭证排序按"
#. module: account
#: field:account.change.currency,currency_id:0
msgid "Change to"
-msgstr ""
+msgstr "更改为"
#. module: account
#: view:account.entries.report:0
msgid "# of Products Qty "
-msgstr ""
+msgstr "产品数量 "
#. module: account
#: model:ir.model,name:account.model_product_template
msgid "Product Template"
-msgstr ""
+msgstr "产品模板"
#. module: account
#: report:account.account.balance:0
@@ -2101,6 +2103,7 @@ msgstr ""
#: field:account.fiscalyear,name:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.journal.period,fiscalyear_id:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -2189,7 +2192,7 @@ msgstr "待处理"
#: model:process.node,note:account.process_node_draftinvoices0
#: model:process.node,note:account.process_node_supplierdraftinvoices0
msgid "Draft state of an invoice"
-msgstr ""
+msgstr "草稿状态的发票"
#. module: account
#: help:account.account,reconcile:0
@@ -2200,7 +2203,7 @@ msgstr "勾选, 如果用户可以在这科目核销凭证."
#. module: account
#: view:account.partner.reconcile.process:0
msgid "Partner Reconciliation"
-msgstr ""
+msgstr "往来业务核销"
#. module: account
#: field:account.tax,tax_code_id:0
@@ -2209,7 +2212,7 @@ msgid "Account Tax Code"
msgstr "税事务科目"
#. module: account
-#: code:addons/account/invoice.py:545
+#: code:addons/account/invoice.py:552
#, python-format
msgid ""
"Can't find any account journal of %s type for this company.\n"
@@ -2227,7 +2230,7 @@ msgstr "基础税事务代码"
#. module: account
#: help:account.invoice.tax,sequence:0
msgid "Gives the sequence order when displaying a list of invoice tax."
-msgstr ""
+msgstr "按顺序显示发票税列表."
#. module: account
#: field:account.tax,base_sign:0
@@ -2257,7 +2260,7 @@ msgstr "借方汇总"
#: view:account.invoice.confirm:0
#: model:ir.actions.act_window,name:account.action_account_invoice_confirm
msgid "Confirm Draft Invoices"
-msgstr ""
+msgstr "草案确认发票"
#. module: account
#: field:account.entries.report,day:0
@@ -2266,12 +2269,12 @@ msgstr ""
#: view:analytic.entries.report:0
#: field:analytic.entries.report,day:0
msgid "Day"
-msgstr ""
+msgstr "日"
#. module: account
#: model:ir.actions.act_window,name:account.act_account_renew_view
msgid "Accounts to Renew"
-msgstr ""
+msgstr "延续科目有效期"
#. module: account
#: model:ir.model,name:account.model_account_model_line
@@ -2279,11 +2282,11 @@ msgid "Account Model Entries"
msgstr "凭证模板"
#. module: account
-#: code:addons/account/account.py:2796
+#: code:addons/account/account.py:2840
#: code:addons/account/installer.py:454
#, python-format
msgid "EXJ"
-msgstr ""
+msgstr "EXJ"
#. module: account
#: field:product.template,supplier_taxes_id:0
@@ -2310,7 +2313,7 @@ msgstr "选择会计期间"
#. module: account
#: model:ir.ui.menu,name:account.menu_account_pp_statements
msgid "Statements"
-msgstr ""
+msgstr "描述"
#. module: account
#: report:account.analytic.account.journal:0
@@ -2322,18 +2325,18 @@ msgstr "凭证名称"
msgid ""
"The fiscal position will determine taxes and the accounts used for the "
"partner."
-msgstr ""
+msgstr "会计制度决定税的科目."
#. module: account
#: view:account.print.journal:0
msgid ""
"This report gives you an overview of the situation of a specific journal"
-msgstr ""
+msgstr "这份报告是给你一个特定财务情况概述"
#. module: account
#: constraint:product.category:0
msgid "Error ! You can not create recursive categories."
-msgstr ""
+msgstr "错误!你不能创建递归的类型."
#. module: account
#: report:account.invoice:0
@@ -2362,10 +2365,10 @@ msgstr "辅助核算项目"
#: model:ir.ui.menu,name:account.menu_action_account_form
#: model:ir.ui.menu,name:account.menu_analytic
msgid "Accounts"
-msgstr ""
+msgstr "科目"
#. module: account
-#: code:addons/account/invoice.py:351
+#: code:addons/account/invoice.py:350
#, python-format
msgid "Configuration Error!"
msgstr "设置错误!"
@@ -2374,16 +2377,15 @@ msgstr "设置错误!"
#: view:account.invoice.report:0
#: field:account.invoice.report,price_average:0
msgid "Average Price"
-msgstr ""
+msgstr "平均价格"
#. module: account
-#: report:account.move.voucher:0
#: report:account.overdue:0
msgid "Date:"
msgstr "日期:"
#. module: account
-#: code:addons/account/account.py:640
+#: code:addons/account/account.py:654
#, python-format
msgid ""
"You cannot modify company of this journal as its related record exist in "
@@ -2393,12 +2395,12 @@ msgstr ""
#. module: account
#: report:account.journal.period.print:0
msgid "Label"
-msgstr ""
+msgstr "标签"
#. module: account
#: view:account.tax:0
msgid "Accounting Information"
-msgstr ""
+msgstr "会计信息"
#. module: account
#: view:account.tax:0
@@ -2419,6 +2421,7 @@ msgstr "折扣(%)"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.overdue:0
#: report:account.third_party_ledger:0
@@ -2429,12 +2432,12 @@ msgstr "关联单号"
#. module: account
#: help:account.move.line,tax_code_id:0
msgid "The Account can either be a base tax code or a tax code account."
-msgstr ""
+msgstr "该科目可以是一个基本的税法或税法帐户。(如营业税)"
#. module: account
#: model:ir.ui.menu,name:account.menu_automatic_reconcile
msgid "Automatic Reconciliation"
-msgstr ""
+msgstr "自动核销"
#. module: account
#: field:account.invoice,reconciled:0
@@ -2452,7 +2455,7 @@ msgstr "退税事务代码"
#: model:ir.actions.act_window,name:account.action_bank_statement_tree
#: model:ir.ui.menu,name:account.menu_bank_statement_tree
msgid "Bank Statements"
-msgstr ""
+msgstr "银行对帐单"
#. module: account
#: selection:account.tax.template,applicable_type:0
@@ -2465,7 +2468,7 @@ msgstr "真"
#: view:account.move:0
#: view:account.move.line:0
msgid "Dates"
-msgstr ""
+msgstr "日期"
#. module: account
#: field:account.tax,parent_id:0
@@ -2478,7 +2481,7 @@ msgstr "上级税科目"
msgid ""
"Automatically generate entries based on what has been entered in the system "
"before a specific date."
-msgstr ""
+msgstr "自动生成以这之前的预约项目."
#. module: account
#: view:account.aged.trial.balance:0
@@ -2491,7 +2494,7 @@ msgstr "账龄分析表"
#: model:process.transition,name:account.process_transition_entriesreconcile0
#: model:process.transition,name:account.process_transition_supplierentriesreconcile0
msgid "Accounting entries"
-msgstr ""
+msgstr "会计分录"
#. module: account
#: field:account.invoice.line,discount:0
@@ -2512,31 +2515,31 @@ msgstr ""
#: model:ir.actions.server,name:account.ir_actions_server_action_wizard_multi_chart
#: model:ir.ui.menu,name:account.menu_act_ir_actions_bleble
msgid "New Company Financial Setting"
-msgstr ""
+msgstr "新公司财务设置"
#. module: account
#: model:ir.actions.act_window,name:account.action_report_account_sales_tree_all
#: view:report.account.sales:0
#: view:report.account_type.sales:0
msgid "Sales by Account"
-msgstr ""
+msgstr "销售科目"
#. module: account
#: view:account.use.model:0
msgid "This wizard will create recurring accounting entries"
-msgstr ""
+msgstr "该向导将创建经常性的会计分录"
#. module: account
-#: code:addons/account/account.py:1181
+#: code:addons/account/account.py:1195
#, python-format
msgid "No sequence defined on the journal !"
-msgstr ""
+msgstr "在日记帐中没有定义的序列!"
#. module: account
-#: code:addons/account/account.py:2083
+#: code:addons/account/account.py:2097
#: code:addons/account/account_bank_statement.py:350
-#: code:addons/account/account_move_line.py:170
-#: code:addons/account/invoice.py:670
+#: code:addons/account/account_move_line.py:169
+#: code:addons/account/invoice.py:678
#: code:addons/account/wizard/account_use_model.py:81
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
@@ -2569,7 +2572,7 @@ msgstr "会计期间到"
#: selection:report.account.sales,month:0
#: selection:report.account_type.sales,month:0
msgid "August"
-msgstr ""
+msgstr "8月"
#. module: account
#: code:addons/account/account_bank_statement.py:306
@@ -2601,7 +2604,7 @@ msgstr "关联单号数"
#: selection:report.account.sales,month:0
#: selection:report.account_type.sales,month:0
msgid "October"
-msgstr ""
+msgstr "10月"
#. module: account
#: help:account.move.line,quantity:0
@@ -2613,7 +2616,7 @@ msgstr ""
#. module: account
#: view:account.payment.term.line:0
msgid "Line 2:"
-msgstr ""
+msgstr "第2行"
#. module: account
#: field:account.journal.column,required:0
@@ -2646,7 +2649,7 @@ msgstr "基础税事务代码的金额"
#. module: account
#: field:wizard.multi.charts.accounts,sale_tax:0
msgid "Default Sale Tax"
-msgstr ""
+msgstr "默认销项税"
#. module: account
#: help:account.model.line,date_maturity:0
@@ -2654,7 +2657,7 @@ msgid ""
"The maturity date of the generated entries for this model. You can choose "
"between the creation date or the creation date of the entries plus the "
"partner payment terms."
-msgstr ""
+msgstr "您可以选择开始日期且加上该项止合作伙伴的付款条件,由此模型生成的项目的到期日."
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_accounting
@@ -2665,7 +2668,7 @@ msgstr "财务会计"
#: view:account.pl.report:0
#: model:ir.ui.menu,name:account.menu_account_pl_report
msgid "Profit And Loss"
-msgstr ""
+msgstr "盈利或亏损"
#. module: account
#: view:account.fiscal.position:0
@@ -2696,7 +2699,7 @@ msgid "Analytic Entries"
msgstr "辅助核算凭证"
#. module: account
-#: code:addons/account/account.py:822
+#: code:addons/account/account.py:836
#, python-format
msgid ""
"No fiscal year defined for this date !\n"
@@ -2728,12 +2731,12 @@ msgstr "这用户负责这业务类型"
#. module: account
#: view:account.period:0
msgid "Search Period"
-msgstr ""
+msgstr "搜寻时期"
#. module: account
#: view:account.change.currency:0
msgid "Invoice Currency"
-msgstr ""
+msgstr "货币种类"
#. module: account
#: field:account.payment.term,line_ids:0
@@ -2743,7 +2746,7 @@ msgstr "条款"
#. module: account
#: field:account.bank.statement,total_entry_encoding:0
msgid "Cash Transaction"
-msgstr ""
+msgstr "现金交易"
#. module: account
#: view:res.partner:0
@@ -2779,7 +2782,7 @@ msgstr "条款名称"
#. module: account
#: view:account.fiscalyear:0
msgid "Search Fiscalyear"
-msgstr ""
+msgstr "搜索会计年度"
#. module: account
#: selection:account.tax,applicable_type:0
@@ -2789,7 +2792,7 @@ msgstr ""
#. module: account
#: view:account.analytic.line:0
msgid "Total Quantity"
-msgstr ""
+msgstr "合计数量"
#. module: account
#: field:account.move.line.reconcile.writeoff,writeoff_acc_id:0
@@ -2822,11 +2825,11 @@ msgid "BNK%s"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2906
+#: code:addons/account/account.py:2950
#: code:addons/account/installer.py:296
#, python-format
msgid "BNK"
-msgstr ""
+msgstr "银行"
#. module: account
#: field:account.move.line,analytic_lines:0
@@ -2851,17 +2854,17 @@ msgstr "税事务模板"
#. module: account
#: view:account.subscription:0
msgid "Starts on"
-msgstr ""
+msgstr "开始"
#. module: account
#: model:ir.model,name:account.model_account_partner_ledger
msgid "Account Partner Ledger"
-msgstr ""
+msgstr "合作伙伴会计帐本(往来帐)"
#. module: account
#: help:account.journal.column,sequence:0
msgid "Gives the sequence order to journal column."
-msgstr ""
+msgstr "给日记帐排序号"
#. module: account
#: view:account.tax.template:0
@@ -2873,7 +2876,7 @@ msgstr "税说明"
#: help:account.account.template,currency_id:0
#: help:account.bank.accounts.wizard,currency_id:0
msgid "Forces all moves for this account to have this secondary currency."
-msgstr ""
+msgstr "将此科目的所有发生都转移到他的二级科目。"
#. module: account
#: model:ir.actions.act_window,help:account.action_validate_account_move_line
@@ -2896,7 +2899,7 @@ msgstr "从模板产生科目一览表"
#. module: account
#: model:ir.model,name:account.model_account_unreconcile_reconcile
msgid "Account Unreconcile Reconcile"
-msgstr ""
+msgstr "科目核销反核销"
#. module: account
#: help:account.account.type,close_method:0
@@ -2931,6 +2934,7 @@ msgstr "为使用费用科目而留空"
#: field:account.common.report,journal_ids:0
#: report:account.general.journal:0
#: field:account.general.journal,journal_ids:0
+#: report:account.general.ledger_landscape:0
#: view:account.journal.period:0
#: report:account.partner.balance:0
#: field:account.partner.balance,journal_ids:0
@@ -2952,7 +2956,7 @@ msgstr "业务类型"
#. module: account
#: field:account.partner.reconcile.process,to_reconcile:0
msgid "Remaining Partners"
-msgstr ""
+msgstr "剩下的合作伙伴"
#. module: account
#: view:account.subscription:0
@@ -2977,7 +2981,7 @@ msgstr "采购"
#: model:ir.actions.act_window,name:account.action_account_installer
#: view:wizard.multi.charts.accounts:0
msgid "Accounting Application Configuration"
-msgstr ""
+msgstr "会计应用程序配置"
#. module: account
#: model:ir.actions.act_window,name:account.open_board_account
@@ -2991,7 +2995,7 @@ msgid "Starting Balance"
msgstr "开始余额"
#. module: account
-#: code:addons/account/invoice.py:1284
+#: code:addons/account/invoice.py:1298
#, python-format
msgid "No Partner Defined !"
msgstr "未定义业务伙伴!"
@@ -3018,12 +3022,12 @@ msgstr "增值税"
msgid ""
"The amount expressed in the related account currency if not equal to the "
"company one."
-msgstr ""
+msgstr "如果不是同一公司, 这金额表示相关项的货币"
#. module: account
#: report:account.move.voucher:0
msgid "Journal:"
-msgstr ""
+msgstr "账簿:"
#. module: account
#: view:account.bank.statement:0
@@ -3033,7 +3037,6 @@ msgstr ""
#: view:account.invoice.report:0
#: selection:account.invoice.report,state:0
#: selection:account.journal.period,state:0
-#: report:account.move.voucher:0
#: view:account.subscription:0
#: selection:account.subscription,state:0
#: selection:report.invoice.created,state:0
@@ -3043,7 +3046,7 @@ msgstr "草稿"
#. module: account
#: model:ir.actions.act_window,name:account.action_account_configuration_installer
msgid "Accounting Chart Configuration"
-msgstr ""
+msgstr "会计图表配置"
#. module: account
#: field:account.tax.code,notprintable:0
@@ -3055,17 +3058,17 @@ msgstr "不打印在发票上"
#: report:account.vat.declaration:0
#: field:account.vat.declaration,chart_tax_id:0
msgid "Chart of Tax"
-msgstr ""
+msgstr "税表"
#. module: account
#: view:account.journal:0
msgid "Search Account Journal"
-msgstr ""
+msgstr "搜索科目报表"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree_pending_invoice
msgid "Pending Invoice"
-msgstr ""
+msgstr "待开票"
#. module: account
#: selection:account.subscription,period_type:0
@@ -3075,17 +3078,17 @@ msgstr "年"
#. module: account
#: report:account.move.voucher:0
msgid "Authorised Signatory"
-msgstr ""
+msgstr "授权的签字人"
#. module: account
#: view:validate.account.move.lines:0
msgid ""
"All selected journal entries will be validated and posted. It means you "
"won't be able to modify their accounting fields anymore."
-msgstr ""
+msgstr "所有的凭证和报表将过帐,这意味着你将不能修改之个会计期间了。"
#. module: account
-#: code:addons/account/invoice.py:370
+#: code:addons/account/invoice.py:373
#, python-format
msgid "Cannot delete invoice(s) that are already opened or paid !"
msgstr "无法删除未结或已付款的发票!"
@@ -3118,12 +3121,12 @@ msgstr "税金额"
#. module: account
#: view:account.installer:0
msgid "Your bank and cash accounts"
-msgstr ""
+msgstr "你的科目和现金科目"
#. module: account
#: view:account.move:0
msgid "Search Move"
-msgstr ""
+msgstr "移动搜索"
#. module: account
#: field:account.tax.code,name:0
@@ -3143,10 +3146,10 @@ msgstr "发票草稿"
msgid ""
"Selected Invoice(s) cannot be cancelled as they are already in 'Cancelled' "
"or 'Done' state!"
-msgstr ""
+msgstr "选择的发票不能被取消,因为它们已“取消”或“完成”状态了!"
#. module: account
-#: code:addons/account/account.py:522
+#: code:addons/account/account.py:532
#, python-format
msgid ""
"You cannot change the type of account from '%s' to '%s' type as it contains "
@@ -3155,24 +3158,25 @@ msgstr "你不能修改这会计类型从'%s' 到 '%s' 因为它含有凭证"
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
msgid "Counterpart"
-msgstr ""
+msgstr "对方"
#. module: account
#: view:account.journal:0
msgid "Invoicing Data"
-msgstr ""
+msgstr "进销存数据"
#. module: account
#: field:account.invoice.report,state:0
msgid "Invoice State"
-msgstr ""
+msgstr "发票状态"
#. module: account
#: view:account.invoice.report:0
#: field:account.invoice.report,categ_id:0
msgid "Category of Product"
-msgstr ""
+msgstr "产品类别"
#. module: account
#: view:account.move:0
@@ -3180,18 +3184,18 @@ msgstr ""
#: view:account.move.line:0
#: field:account.move.line,narration:0
msgid "Narration"
-msgstr ""
+msgstr "描述"
#. module: account
#: view:account.addtmpl.wizard:0
#: model:ir.actions.act_window,name:account.action_account_addtmpl_wizard_form
msgid "Create Account"
-msgstr ""
+msgstr "创建科目"
#. module: account
#: model:ir.model,name:account.model_report_account_type_sales
msgid "Report of the Sales by Account Type"
-msgstr ""
+msgstr "销售报表的科目类型"
#. module: account
#: selection:account.account.type,close_method:0
@@ -3201,7 +3205,7 @@ msgstr "详情"
#. module: account
#: field:account.installer,bank_accounts_id:0
msgid "Your Bank and Cash Accounts"
-msgstr ""
+msgstr "您的银行及现金帐户"
#. module: account
#: report:account.invoice:0
@@ -3219,7 +3223,7 @@ msgstr "科目表"
#. module: account
#: view:account.tax.chart:0
msgid "(If you do not select period it will take all open periods)"
-msgstr ""
+msgstr "如果你不选择时间,将可以在任何期间看到"
#. module: account
#: field:account.journal,centralisation:0
@@ -3229,7 +3233,7 @@ msgstr "汇总副本"
#. module: account
#: model:ir.model,name:account.model_account_partner_reconcile_process
msgid "Reconcilation Process partner by partner"
-msgstr ""
+msgstr "核销合作进程的合作伙伴"
#. module: account
#: selection:account.automatic.reconcile,power:0
@@ -3257,6 +3261,7 @@ msgstr "如果你不选择会计年度将使用所有开启的会计年度"
#: field:account.entries.report,date:0
#: selection:account.general.journal,filter:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.invoice.report,date:0
#: report:account.journal.period.print:0
#: view:account.move:0
@@ -3300,7 +3305,7 @@ msgid "Chart of Accounts Template"
msgstr "科目表模板"
#. module: account
-#: code:addons/account/account.py:2095
+#: code:addons/account/account.py:2109
#, python-format
msgid ""
"Maturity date of entry line generated by model line '%s' of model '%s' is "
@@ -3309,13 +3314,13 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:810
+#: code:addons/account/account_move_line.py:801
#, python-format
msgid "Some entries are already reconciled !"
msgstr "部分凭证已核销!"
#. module: account
-#: code:addons/account/account.py:1204
+#: code:addons/account/account.py:1218
#, python-format
msgid ""
"You cannot validate a Journal Entry unless all journal items are in same "
@@ -3330,7 +3335,7 @@ msgstr "税"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_reporting_budgets
msgid "Budgets"
-msgstr ""
+msgstr "预算"
#. module: account
#: selection:account.aged.trial.balance,filter:0
@@ -3349,7 +3354,7 @@ msgstr ""
#: selection:account.report.general.ledger,filter:0
#: selection:account.vat.declaration,filter:0
msgid "No Filters"
-msgstr ""
+msgstr "无过滤器"
#. module: account
#: selection:account.analytic.journal,type:0
@@ -3359,7 +3364,7 @@ msgstr "状况"
#. module: account
#: view:res.partner:0
msgid "History"
-msgstr ""
+msgstr "历史记录"
#. module: account
#: help:account.tax,applicable_type:0
@@ -3379,7 +3384,7 @@ msgstr "可用代码(如果类型=代码)"
#: view:account.invoice.report:0
#: field:account.invoice.report,product_qty:0
msgid "Qty"
-msgstr ""
+msgstr "数量"
#. module: account
#: field:account.invoice.report,address_contact_id:0
@@ -3435,7 +3440,7 @@ msgid "Analytic Items"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1128
+#: code:addons/account/account_move_line.py:1134
#, python-format
msgid "Unable to change tax !"
msgstr "无法更改税目!"
@@ -3446,14 +3451,14 @@ msgid "#Entries"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1422
+#: code:addons/account/invoice.py:1437
#, python-format
msgid ""
"You selected an Unit of Measure which is not compatible with the product."
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:473
+#: code:addons/account/invoice.py:476
#, python-format
msgid ""
"The Payment Term of Supplier does not have Payment Term Lines(Computation) "
@@ -3491,7 +3496,7 @@ msgstr "名称"
#. module: account
#: model:ir.model,name:account.model_account_aged_trial_balance
msgid "Account Aged Trial balance Report"
-msgstr ""
+msgstr "账龄试算平衡表"
#. module: account
#: field:account.move.line,date:0
@@ -3570,7 +3575,7 @@ msgstr ""
#. module: account
#: field:account.partner.balance,display_partner:0
msgid "Display Partners"
-msgstr ""
+msgstr "显示业务伙伴"
#. module: account
#: view:account.invoice:0
@@ -3747,7 +3752,7 @@ msgid "Acc.Type"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:714
+#: code:addons/account/invoice.py:722
#, python-format
msgid "Global taxes defined, but are not in invoice lines !"
msgstr "已定义通用税目, 但未在发票行中出现!"
@@ -3806,7 +3811,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_analytic_line.py:91
+#: code:addons/account/account_analytic_line.py:90
#, python-format
msgid "There is no expense account defined for this product: \"%s\" (id:%d)"
msgstr ""
@@ -3981,7 +3986,7 @@ msgid "Credit Notes"
msgstr "退还"
#. module: account
-#: code:addons/account/account.py:2067
+#: code:addons/account/account.py:2081
#: code:addons/account/wizard/account_use_model.py:69
#, python-format
msgid "Unable to find a valid period !"
@@ -4052,11 +4057,11 @@ msgid "Change"
msgstr "改变"
#. module: account
-#: code:addons/account/account.py:1290
-#: code:addons/account/account.py:1318
-#: code:addons/account/account.py:1325
-#: code:addons/account/account_move_line.py:1055
-#: code:addons/account/invoice.py:896
+#: code:addons/account/account.py:1304
+#: code:addons/account/account.py:1332
+#: code:addons/account/account.py:1339
+#: code:addons/account/account_move_line.py:1061
+#: code:addons/account/invoice.py:904
#: code:addons/account/wizard/account_automatic_reconcile.py:152
#: code:addons/account/wizard/account_fiscalyear_close.py:78
#: code:addons/account/wizard/account_fiscalyear_close.py:81
@@ -4160,7 +4165,7 @@ msgid "You must define an analytic journal of type '%s' !"
msgstr "您必须定义这辅助核算类型'%s' !"
#. module: account
-#: code:addons/account/account.py:1397
+#: code:addons/account/account.py:1411
#, python-format
msgid ""
"Couldn't create move with currency different from the secondary currency of "
@@ -4225,7 +4230,7 @@ msgid "Invoices"
msgstr "发票列表"
#. module: account
-#: code:addons/account/invoice.py:804
+#: code:addons/account/invoice.py:812
#, python-format
msgid ""
"Please verify the price of the invoice !\n"
@@ -4337,25 +4342,24 @@ msgid "Third Party (Country)"
msgstr ""
#. module: account
-#: code:addons/account/account.py:938
-#: code:addons/account/account.py:940
-#: code:addons/account/account.py:1181
-#: code:addons/account/account.py:1393
-#: code:addons/account/account.py:1397
-#: code:addons/account/account_cash_statement.py:249
-#: code:addons/account/account_move_line.py:780
-#: code:addons/account/account_move_line.py:803
-#: code:addons/account/account_move_line.py:805
-#: code:addons/account/account_move_line.py:808
-#: code:addons/account/account_move_line.py:810
-#: code:addons/account/account_move_line.py:1117
+#: code:addons/account/account.py:952
+#: code:addons/account/account.py:954
+#: code:addons/account/account.py:1195
+#: code:addons/account/account.py:1407
+#: code:addons/account/account.py:1411
+#: code:addons/account/account_cash_statement.py:250
+#: code:addons/account/account_move_line.py:771
+#: code:addons/account/account_move_line.py:794
+#: code:addons/account/account_move_line.py:796
+#: code:addons/account/account_move_line.py:799
+#: code:addons/account/account_move_line.py:801
+#: code:addons/account/account_move_line.py:1123
#: code:addons/account/report/common_report_header.py:92
-#: code:addons/account/wizard/account_change_currency.py:39
-#: code:addons/account/wizard/account_change_currency.py:60
-#: code:addons/account/wizard/account_change_currency.py:65
-#: code:addons/account/wizard/account_change_currency.py:71
+#: code:addons/account/wizard/account_change_currency.py:38
+#: code:addons/account/wizard/account_change_currency.py:59
+#: code:addons/account/wizard/account_change_currency.py:64
+#: code:addons/account/wizard/account_change_currency.py:70
#: code:addons/account/wizard/account_move_bank_reconcile.py:49
-#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_report_common.py:120
#: code:addons/account/wizard/account_report_common.py:126
#, python-format
@@ -4377,7 +4381,7 @@ msgid "Bank Details"
msgstr "银行信息"
#. module: account
-#: code:addons/account/invoice.py:720
+#: code:addons/account/invoice.py:728
#, python-format
msgid "Taxes missing !"
msgstr "缺少税目!"
@@ -4432,7 +4436,7 @@ msgid "Check Date not in the Period"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1210
+#: code:addons/account/account.py:1224
#, python-format
msgid ""
"You can not modify a posted entry of this journal !\n"
@@ -4453,7 +4457,7 @@ msgid "Child Tax Accounts"
msgstr "子税科目"
#. module: account
-#: code:addons/account/account.py:940
+#: code:addons/account/account.py:954
#, python-format
msgid "Start period should be smaller then End period"
msgstr ""
@@ -4483,6 +4487,7 @@ msgstr "辅助核算余额 -"
#: report:account.general.journal:0
#: field:account.general.journal,target_move:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.move.journal,target_move:0
#: report:account.partner.balance:0
@@ -4565,7 +4570,7 @@ msgid "Line 1:"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1167
+#: code:addons/account/account.py:1181
#, python-format
msgid "Integrity Error !"
msgstr "完整性错误!"
@@ -4711,7 +4716,7 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account.py:2067
+#: code:addons/account/account.py:2081
#: code:addons/account/wizard/account_use_model.py:69
#, python-format
msgid "No period found !"
@@ -4783,7 +4788,7 @@ msgid ""
msgstr "在计算前加入的天数, 如日期为01/15, 天数是22, 月天数为-1,则应付日期是02/28。"
#. module: account
-#: code:addons/account/account.py:2896
+#: code:addons/account/account.py:2940
#: code:addons/account/installer.py:283
#: code:addons/account/installer.py:295
#, python-format
@@ -4811,7 +4816,7 @@ msgid "Start of period"
msgstr "开始会计期间"
#. module: account
-#: code:addons/account/account_move_line.py:1193
+#: code:addons/account/account_move_line.py:1199
#, python-format
msgid ""
"You can not do this modification on a reconciled entry ! Please note that "
@@ -4867,12 +4872,12 @@ msgstr "结束会计年度业务类型"
#. module: account
#: code:addons/account/account_bank_statement.py:331
-#: code:addons/account/invoice.py:405
-#: code:addons/account/invoice.py:505
-#: code:addons/account/invoice.py:520
-#: code:addons/account/invoice.py:528
-#: code:addons/account/invoice.py:545
-#: code:addons/account/invoice.py:1347
+#: code:addons/account/invoice.py:408
+#: code:addons/account/invoice.py:508
+#: code:addons/account/invoice.py:523
+#: code:addons/account/invoice.py:531
+#: code:addons/account/invoice.py:552
+#: code:addons/account/invoice.py:1361
#: code:addons/account/wizard/account_move_journal.py:63
#, python-format
msgid "Configuration Error !"
@@ -4949,7 +4954,7 @@ msgid "Sort By"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1326
+#: code:addons/account/account.py:1340
#, python-format
msgid ""
"There is no default default credit account defined \n"
@@ -5096,7 +5101,7 @@ msgid "Generate Opening Entries"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:738
+#: code:addons/account/account_move_line.py:729
#, python-format
msgid "Already Reconciled!"
msgstr ""
@@ -5132,7 +5137,7 @@ msgstr "子科目"
#. module: account
#: view:account.move.line.reconcile:0
-#: code:addons/account/account_move_line.py:830
+#: code:addons/account/account_move_line.py:821
#, python-format
msgid "Write-Off"
msgstr "补差额"
@@ -5269,7 +5274,7 @@ msgid "# of Lines"
msgstr ""
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:60
+#: code:addons/account/wizard/account_change_currency.py:59
#, python-format
msgid "New currency is not confirured properly !"
msgstr ""
@@ -5294,14 +5299,14 @@ msgid "Filter by"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1131
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1137
+#: code:addons/account/account_move_line.py:1220
#, python-format
msgid "You can not use an inactive account!"
msgstr "您不能使用一个停用的科目!"
#. module: account
-#: code:addons/account/account_move_line.py:803
+#: code:addons/account/account_move_line.py:794
#, python-format
msgid "Entries are not of the same account or already reconciled ! "
msgstr "不同科目或已核算的凭证! "
@@ -5336,7 +5341,7 @@ msgstr "7"
#. module: account
#: code:addons/account/account_bank_statement.py:391
-#: code:addons/account/invoice.py:370
+#: code:addons/account/invoice.py:373
#, python-format
msgid "Invalid action !"
msgstr "无效动作!"
@@ -5547,7 +5552,7 @@ msgid "Companies"
msgstr ""
#. module: account
-#: code:addons/account/account.py:532
+#: code:addons/account/account.py:546
#, python-format
msgid ""
"You cannot modify Company of account as its related record exist in Entry "
@@ -5813,9 +5818,9 @@ msgid "Optional create"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:406
-#: code:addons/account/invoice.py:506
-#: code:addons/account/invoice.py:1348
+#: code:addons/account/invoice.py:409
+#: code:addons/account/invoice.py:509
+#: code:addons/account/invoice.py:1362
#, python-format
msgid "Can not find account chart for this company, Please Create account."
msgstr ""
@@ -5964,8 +5969,8 @@ msgid "Analytic Entries Statistics"
msgstr ""
#. module: account
-#: code:addons/account/account_analytic_line.py:143
-#: code:addons/account/account_move_line.py:905
+#: code:addons/account/account_analytic_line.py:141
+#: code:addons/account/account_move_line.py:897
#, python-format
msgid "Entries: "
msgstr "凭证: "
@@ -5976,7 +5981,7 @@ msgid "Create manual recurring entries in a chosen journal."
msgstr ""
#. module: account
-#: code:addons/account/account.py:1393
+#: code:addons/account/account.py:1407
#, python-format
msgid "Couldn't create move between different companies"
msgstr "无法创建公司之间的过帐"
@@ -6014,7 +6019,7 @@ msgid "Total debit"
msgstr "借方合计"
#. module: account
-#: code:addons/account/account_move_line.py:781
+#: code:addons/account/account_move_line.py:772
#, python-format
msgid "Entry \"%s\" is not valid !"
msgstr "凭证\"%s\"无效!"
@@ -6078,30 +6083,31 @@ msgid " valuation: percent"
msgstr ""
#. module: account
-#: code:addons/account/account.py:499
-#: code:addons/account/account.py:501
-#: code:addons/account/account.py:822
-#: code:addons/account/account.py:901
-#: code:addons/account/account.py:976
-#: code:addons/account/account.py:1204
-#: code:addons/account/account.py:1210
-#: code:addons/account/account.py:2095
-#: code:addons/account/account.py:2333
-#: code:addons/account/account_analytic_line.py:90
-#: code:addons/account/account_analytic_line.py:99
+#: code:addons/account/account.py:509
+#: code:addons/account/account.py:511
+#: code:addons/account/account.py:836
+#: code:addons/account/account.py:915
+#: code:addons/account/account.py:990
+#: code:addons/account/account.py:1218
+#: code:addons/account/account.py:1224
+#: code:addons/account/account.py:2109
+#: code:addons/account/account.py:2357
+#: code:addons/account/account_analytic_line.py:89
+#: code:addons/account/account_analytic_line.py:98
#: code:addons/account/account_bank_statement.py:292
#: code:addons/account/account_bank_statement.py:305
#: code:addons/account/account_bank_statement.py:345
-#: code:addons/account/account_cash_statement.py:328
-#: code:addons/account/account_cash_statement.py:348
-#: code:addons/account/account_move_line.py:1176
-#: code:addons/account/account_move_line.py:1191
-#: code:addons/account/account_move_line.py:1193
-#: code:addons/account/invoice.py:785
-#: code:addons/account/invoice.py:815
-#: code:addons/account/invoice.py:1008
+#: code:addons/account/account_cash_statement.py:329
+#: code:addons/account/account_cash_statement.py:349
+#: code:addons/account/account_move_line.py:1182
+#: code:addons/account/account_move_line.py:1197
+#: code:addons/account/account_move_line.py:1199
+#: code:addons/account/invoice.py:793
+#: code:addons/account/invoice.py:823
+#: code:addons/account/invoice.py:1014
#: code:addons/account/wizard/account_invoice_refund.py:100
#: code:addons/account/wizard/account_invoice_refund.py:102
+#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
#: code:addons/account/wizard/account_use_model.py:44
#, python-format
msgid "Error !"
@@ -6211,7 +6217,7 @@ msgid "Journal Select"
msgstr ""
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:65
+#: code:addons/account/wizard/account_change_currency.py:64
#, python-format
msgid "Currnt currency is not confirured properly !"
msgstr ""
@@ -6228,9 +6234,11 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: view:account.report.general.ledger:0
#: model:ir.actions.act_window,name:account.action_account_general_ledger_menu
#: model:ir.actions.report.xml,name:account.account_general_ledger
+#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape
#: model:ir.ui.menu,name:account.menu_general_ledger
msgid "General Ledger"
msgstr "按全部业务类型打印全部凭证"
@@ -6284,7 +6292,7 @@ msgid "Total:"
msgstr "合计:"
#. module: account
-#: code:addons/account/account.py:2050
+#: code:addons/account/account.py:2064
#, python-format
msgid ""
"You can specify year, month and date in the name of the model using the "
@@ -6314,7 +6322,7 @@ msgid "Child Codes"
msgstr "子代码"
#. module: account
-#: code:addons/account/invoice.py:473
+#: code:addons/account/invoice.py:476
#: code:addons/account/wizard/account_invoice_refund.py:137
#, python-format
msgid "Data Insufficient !"
@@ -6471,7 +6479,7 @@ msgid "Lines"
msgstr "明细"
#. module: account
-#: code:addons/account/invoice.py:521
+#: code:addons/account/invoice.py:524
#, python-format
msgid ""
"Can not find account chart for this company in invoice line account, Please "
@@ -6639,7 +6647,7 @@ msgid ""
msgstr "这字段只用于如果你开发自己的模块允许开发者在自定义域创建特定的税"
#. module: account
-#: code:addons/account/account.py:938
+#: code:addons/account/account.py:952
#, python-format
msgid "You should have chosen periods that belongs to the same company"
msgstr ""
@@ -6743,7 +6751,7 @@ msgid "Sign on Reports"
msgstr "报表上的符号"
#. module: account
-#: code:addons/account/account_cash_statement.py:249
+#: code:addons/account/account_cash_statement.py:250
#, python-format
msgid "You can not have two open register for the same journal"
msgstr ""
@@ -6772,7 +6780,6 @@ msgstr ""
#. module: account
#: report:account.invoice:0
#: view:account.invoice:0
-#: report:account.move.voucher:0
msgid "PRO-FORMA"
msgstr "形式发票"
@@ -6788,7 +6795,7 @@ msgstr ""
#: view:account.move.line:0
#: selection:account.move.line,state:0
msgid "Unbalanced"
-msgstr ""
+msgstr "不平衡"
#. module: account
#: selection:account.move.line,centralisation:0
@@ -6802,6 +6809,7 @@ msgstr "可选信息"
#. module: account
#: view:account.analytic.line:0
+#: field:account.bank.statement,user_id:0
#: view:account.journal:0
#: field:account.journal,user_id:0
#: view:analytic.entries.report:0
@@ -6827,13 +6835,13 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1271
+#: code:addons/account/account_move_line.py:1277
#, python-format
msgid "Bad account !"
msgstr "无效科目!"
#. module: account
-#: code:addons/account/account.py:2777
+#: code:addons/account/account.py:2821
#: code:addons/account/installer.py:432
#, python-format
msgid "Sales Journal"
@@ -6851,7 +6859,7 @@ msgid "Invoice Tax"
msgstr "发票税"
#. module: account
-#: code:addons/account/account_move_line.py:1246
+#: code:addons/account/account_move_line.py:1252
#, python-format
msgid "No piece number !"
msgstr "没会计期间!"
@@ -7085,17 +7093,17 @@ msgid "Fixed"
msgstr "固定"
#. module: account
-#: code:addons/account/account.py:506
-#: code:addons/account/account.py:519
-#: code:addons/account/account.py:522
+#: code:addons/account/account.py:516
+#: code:addons/account/account.py:529
#: code:addons/account/account.py:532
-#: code:addons/account/account.py:640
-#: code:addons/account/account.py:927
-#: code:addons/account/account_move_line.py:732
-#: code:addons/account/account_move_line.py:776
-#: code:addons/account/invoice.py:714
-#: code:addons/account/invoice.py:717
-#: code:addons/account/invoice.py:720
+#: code:addons/account/account.py:546
+#: code:addons/account/account.py:654
+#: code:addons/account/account.py:941
+#: code:addons/account/account_move_line.py:723
+#: code:addons/account/account_move_line.py:767
+#: code:addons/account/invoice.py:722
+#: code:addons/account/invoice.py:725
+#: code:addons/account/invoice.py:728
#, python-format
msgid "Warning !"
msgstr "警告 !"
@@ -7127,6 +7135,7 @@ msgstr ""
#: view:account.entries.report:0
#: field:account.entries.report,partner_id:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: view:account.invoice:0
#: field:account.invoice,partner_id:0
#: field:account.invoice.line,partner_id:0
@@ -7157,7 +7166,7 @@ msgid "Can not %s draft/proforma/cancel invoice."
msgstr "不能注销 %s 草稿/形式/取消的发票"
#. module: account
-#: code:addons/account/invoice.py:787
+#: code:addons/account/invoice.py:795
#, python-format
msgid "No Invoice Lines !"
msgstr ""
@@ -7206,7 +7215,7 @@ msgid "Deferral Method"
msgstr "递延方法"
#. module: account
-#: code:addons/account/invoice.py:359
+#: code:addons/account/invoice.py:360
#, python-format
msgid "Invoice '%s' is paid."
msgstr ""
@@ -7267,7 +7276,7 @@ msgid "Associated Partner"
msgstr "相关业务伙伴"
#. module: account
-#: code:addons/account/invoice.py:1284
+#: code:addons/account/invoice.py:1298
#, python-format
msgid "You must first select a partner !"
msgstr "你必须首先选择一个业务伙伴!"
@@ -7332,7 +7341,7 @@ msgid "Choose Fiscal Year"
msgstr "选择会计年度"
#. module: account
-#: code:addons/account/account.py:2841
+#: code:addons/account/account.py:2885
#: code:addons/account/installer.py:495
#, python-format
msgid "Purchase Refund Journal"
@@ -7367,6 +7376,7 @@ msgstr ""
#: view:account.entries.report:0
#: field:account.entries.report,period_id:0
#: view:account.fiscalyear:0
+#: report:account.general.ledger_landscape:0
#: view:account.invoice:0
#: view:account.invoice.report:0
#: field:account.journal.period,period_id:0
@@ -7529,7 +7539,7 @@ msgid "Account Types"
msgstr "科目类型"
#. module: account
-#: code:addons/account/invoice.py:897
+#: code:addons/account/invoice.py:905
#, python-format
msgid "Cannot create invoice move on centralised journal"
msgstr "你不能在汇总的副本里创建发票凭证"
@@ -7579,6 +7589,7 @@ msgstr "退款(开红字发票)业务类型"
#: report:account.account.balance:0
#: report:account.central.journal:0
#: report:account.general.journal:0
+#: report:account.general.ledger_landscape:0
#: report:account.partner.balance:0
msgid "Filter By"
msgstr ""
@@ -7617,7 +7628,7 @@ msgid "Payment Term Line"
msgstr "付款条款明细"
#. module: account
-#: code:addons/account/account.py:2794
+#: code:addons/account/account.py:2838
#: code:addons/account/installer.py:452
#, python-format
msgid "Purchase Journal"
@@ -7784,8 +7795,8 @@ msgid ""
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1131
-#: code:addons/account/account_move_line.py:1214
+#: code:addons/account/account_move_line.py:1137
+#: code:addons/account/account_move_line.py:1220
#, python-format
msgid "Bad account!"
msgstr "无效科目!"
@@ -7796,7 +7807,7 @@ msgid "Keep empty for all open fiscal years"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:1056
+#: code:addons/account/account_move_line.py:1062
#, python-format
msgid "The account move (%s) for centralisation has been confirmed!"
msgstr ""
@@ -7817,6 +7828,7 @@ msgstr "如果它是一个多货币凭证,这金额表示一个可选的其它
#: field:account.entries.report,currency_id:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.invoice,currency_id:0
#: field:account.invoice.report,currency_id:0
#: field:account.journal,currency:0
@@ -7989,14 +8001,14 @@ msgid "Period from"
msgstr "会计期间从"
#. module: account
-#: code:addons/account/account.py:2817
+#: code:addons/account/account.py:2861
#: code:addons/account/installer.py:476
#, python-format
msgid "Sales Refund Journal"
msgstr ""
#. module: account
-#: code:addons/account/account.py:927
+#: code:addons/account/account.py:941
#, python-format
msgid ""
"You cannot modify company of this period as its related record exist in "
@@ -8045,7 +8057,7 @@ msgid "Purchase Tax(%)"
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:787
+#: code:addons/account/invoice.py:795
#, python-format
msgid "Please create some invoice lines."
msgstr ""
@@ -8061,7 +8073,7 @@ msgid "Configure Your Accounting Application"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2820
+#: code:addons/account/account.py:2864
#: code:addons/account/installer.py:479
#, python-format
msgid "SCNJ"
@@ -8099,6 +8111,7 @@ msgstr ""
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
@@ -8108,7 +8121,7 @@ msgid "Start Period"
msgstr ""
#. module: account
-#: code:addons/account/account.py:2333
+#: code:addons/account/account.py:2357
#, python-format
msgid "Cannot locate parent code for template account!"
msgstr ""
@@ -8145,7 +8158,7 @@ msgid "Accountant validates the accounting entries coming from the invoice. "
msgstr ""
#. module: account
-#: code:addons/account/invoice.py:1008
+#: code:addons/account/invoice.py:1014
#, python-format
msgid ""
"You cannot cancel the Invoice which is Partially Paid! You need to "
@@ -8173,7 +8186,7 @@ msgid "You can not create move line on view account."
msgstr ""
#. module: account
-#: code:addons/account/wizard/account_change_currency.py:71
+#: code:addons/account/wizard/account_change_currency.py:70
#, python-format
msgid "Current currency is not confirured properly !"
msgstr ""
@@ -8222,6 +8235,7 @@ msgstr "留空为使用收入科目"
#: field:account.entries.report,balance:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.move.line,balance:0
#: report:account.partner.balance:0
#: selection:account.payment.term.line,value:0
@@ -8240,6 +8254,7 @@ msgstr ""
#. module: account
#: report:account.account.balance:0
+#: report:account.general.ledger_landscape:0
msgid "Display Account"
msgstr ""
@@ -8354,6 +8369,7 @@ msgstr ""
#. module: account
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.move.line,move_id:0
#: field:analytic.entries.report,move_id:0
@@ -8361,7 +8377,7 @@ msgid "Move"
msgstr "凭证"
#. module: account
-#: code:addons/account/account_move_line.py:1128
+#: code:addons/account/account_move_line.py:1134
#, python-format
msgid "You can not change the tax, you should remove and recreate lines !"
msgstr "您不能更改此税目,请移除并重新创建凭证!"
@@ -8455,6 +8471,7 @@ msgstr ""
#: report:account.central.journal:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
#: report:account.third_party_ledger:0
@@ -8498,7 +8515,7 @@ msgid "Account Subscription"
msgstr "周期性凭证科目"
#. module: account
-#: code:addons/account/invoice.py:717
+#: code:addons/account/invoice.py:725
#, python-format
msgid ""
"Tax base different !\n"
@@ -8527,6 +8544,7 @@ msgstr "周期性凭证"
#: report:account.general.journal:0
#: field:account.general.journal,date_from:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,date_start:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -8555,7 +8573,7 @@ msgid "Unreconciled"
msgstr "反核销"
#. module: account
-#: code:addons/account/invoice.py:804
+#: code:addons/account/invoice.py:812
#, python-format
msgid "Bad total !"
msgstr "坏的合计!"
@@ -8613,13 +8631,13 @@ msgid "Active"
msgstr "启用"
#. module: account
-#: code:addons/account/invoice.py:354
+#: code:addons/account/invoice.py:353
#, python-format
msgid "Unknown Error"
msgstr ""
#. module: account
-#: code:addons/account/account.py:1167
+#: code:addons/account/account.py:1181
#, python-format
msgid ""
"You cannot validate a non-balanced entry !\n"
@@ -8662,10 +8680,10 @@ msgstr ""
#: field:account.entries.report,credit:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.model.line,credit:0
#: field:account.move.line,credit:0
-#: report:account.move.voucher:0
#: report:account.partner.balance:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
@@ -8901,7 +8919,6 @@ msgstr "选择会计期间"
#: view:account.move:0
#: selection:account.move,state:0
#: view:account.move.line:0
-#: report:account.move.voucher:0
msgid "Posted"
msgstr "已登账"
@@ -8920,6 +8937,7 @@ msgstr "已登账"
#: report:account.general.journal:0
#: field:account.general.journal,date_to:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: field:account.installer,date_stop:0
#: report:account.journal.period.print:0
#: report:account.partner.balance:0
@@ -8973,7 +8991,7 @@ msgid "This is a model for recurring accounting entries"
msgstr "这是一个循环凭证模型"
#. module: account
-#: code:addons/account/account_analytic_line.py:100
+#: code:addons/account/account_analytic_line.py:99
#, python-format
msgid "There is no income account defined for this product: \"%s\" (id:%d)"
msgstr ""
@@ -9123,8 +9141,8 @@ msgid "End period"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:738
-#: code:addons/account/account_move_line.py:815
+#: code:addons/account/account_move_line.py:729
+#: code:addons/account/account_move_line.py:806
#: code:addons/account/wizard/account_invoice_state.py:44
#: code:addons/account/wizard/account_invoice_state.py:68
#: code:addons/account/wizard/account_report_balance_sheet.py:70
@@ -9190,10 +9208,10 @@ msgstr "供应商发票"
#: field:account.entries.report,debit:0
#: report:account.general.journal:0
#: report:account.general.ledger:0
+#: report:account.general.ledger_landscape:0
#: report:account.journal.period.print:0
#: field:account.model.line,debit:0
#: field:account.move.line,debit:0
-#: report:account.move.voucher:0
#: report:account.partner.balance:0
#: report:account.tax.code.entries:0
#: report:account.third_party_ledger:0
@@ -9227,7 +9245,7 @@ msgid "Recurring"
msgstr ""
#. module: account
-#: code:addons/account/account_move_line.py:805
+#: code:addons/account/account_move_line.py:796
#, python-format
msgid "Entry is already reconciled"
msgstr "凭证已经核销"
@@ -9248,7 +9266,7 @@ msgid "Range"
msgstr "范围"
#. module: account
-#: code:addons/account/account_move_line.py:1246
+#: code:addons/account/account_move_line.py:1252
#, python-format
msgid ""
"Can not create an automatic sequence for this piece !\n"
@@ -9327,17 +9345,17 @@ msgstr "如果是一个多货币凭证可选其它货币"
#: model:process.transition,note:account.process_transition_invoiceimport0
msgid ""
"Import of the statement in the system from a supplier or customer invoice"
-msgstr ""
+msgstr "供应商或客户发票在系统中的入口"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_periodical_processing_billing
msgid "Billing"
-msgstr ""
+msgstr "发票"
#. module: account
#: view:account.account:0
msgid "Parent Account"
-msgstr ""
+msgstr "父科目"
#. module: account
#: model:ir.actions.act_window,help:account.action_account_journal_form
@@ -9353,7 +9371,7 @@ msgstr ""
#. module: account
#: model:ir.model,name:account.model_account_analytic_chart
msgid "Account Analytic Chart"
-msgstr ""
+msgstr "科目分析图表"
#. module: account
#: help:account.invoice,residual:0
@@ -9363,14 +9381,14 @@ msgstr "剩余的欠款"
#. module: account
#: model:ir.ui.menu,name:account.menu_finance_statistic_report_statement
msgid "Statistic Reports"
-msgstr ""
+msgstr "统计报告"
#. module: account
#: field:account.installer,progress:0
#: field:account.installer.modules,progress:0
#: field:wizard.multi.charts.accounts,progress:0
msgid "Configuration Progress"
-msgstr ""
+msgstr "配置进度"
#. module: account
#: view:account.fiscal.position.template:0
@@ -9378,7 +9396,7 @@ msgid "Accounts Mapping"
msgstr "科目一览"
#. module: account
-#: code:addons/account/invoice.py:346
+#: code:addons/account/invoice.py:345
#, python-format
msgid "Invoice '%s' is waiting for validation."
msgstr ""
@@ -9403,7 +9421,7 @@ msgid "The income or expense account related to the selected product."
msgstr "和选择的产品相关的收入或费用科目"
#. module: account
-#: code:addons/account/account_move_line.py:1117
+#: code:addons/account/account_move_line.py:1123
#, python-format
msgid "The date of your Journal Entry is not in the defined period!"
msgstr ""
@@ -9487,7 +9505,7 @@ msgstr ""
#. module: account
#: view:account.invoice.tax:0
msgid "Manual Invoice Taxes"
-msgstr "手动发票税"
+msgstr "上门纳税(非主营业务纳税)"
#. module: account
#: field:account.account,parent_right:0
@@ -9589,7 +9607,7 @@ msgstr "通常用 1或-1"
#. module: account
#: model:ir.model,name:account.model_account_fiscal_position_account_template
msgid "Template Account Fiscal Mapping"
-msgstr ""
+msgstr "以这个会计科目为模版制图"
#. module: account
#: field:account.chart.template,property_account_expense:0
@@ -9599,7 +9617,7 @@ msgstr "产品模板的费用科目"
#. module: account
#: field:account.analytic.line,amount_currency:0
msgid "Amount currency"
-msgstr ""
+msgstr "金额"
#. module: account
#: code:addons/account/wizard/account_report_aged_partner_balance.py:55
@@ -9608,7 +9626,7 @@ msgid "You must enter a period length that cannot be 0 or below !"
msgstr "您必须输入的期间长度不能为0或以下 !"
#. module: account
-#: code:addons/account/account.py:501
+#: code:addons/account/account.py:511
#, python-format
msgid "You cannot remove an account which has account entries!. "
msgstr "你不能删除这科目因为它已有凭证! "
diff --git a/addons/account/invoice.py b/addons/account/invoice.py
index 77cf968355b..8b1b2a0edda 100644
--- a/addons/account/invoice.py
+++ b/addons/account/invoice.py
@@ -227,21 +227,21 @@ class account_invoice(osv.osv):
'tax_line': fields.one2many('account.invoice.tax', 'invoice_id', 'Tax Lines', readonly=True, states={'draft':[('readonly',False)]}),
'move_id': fields.many2one('account.move', 'Journal Entry', readonly=True, select=1, ondelete='restrict', help="Link to the automatically generated Journal Items."),
- 'amount_untaxed': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Untaxed',
+ 'amount_untaxed': fields.function(_amount_all, digits_compute=dp.get_precision('Account'), string='Untaxed',
store={
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20),
'account.invoice.tax': (_get_invoice_tax, None, 20),
'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount','invoice_id'], 20),
},
multi='all'),
- 'amount_tax': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Tax',
+ 'amount_tax': fields.function(_amount_all, digits_compute=dp.get_precision('Account'), string='Tax',
store={
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20),
'account.invoice.tax': (_get_invoice_tax, None, 20),
'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount','invoice_id'], 20),
},
multi='all'),
- 'amount_total': fields.function(_amount_all, method=True, digits_compute=dp.get_precision('Account'), string='Total',
+ 'amount_total': fields.function(_amount_all, digits_compute=dp.get_precision('Account'), string='Total',
store={
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20),
'account.invoice.tax': (_get_invoice_tax, None, 20),
@@ -252,7 +252,7 @@ class account_invoice(osv.osv):
'journal_id': fields.many2one('account.journal', 'Journal', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'company_id': fields.many2one('res.company', 'Company', required=True, change_default=True, readonly=True, states={'draft':[('readonly',False)]}),
'check_total': fields.float('Total', digits_compute=dp.get_precision('Account'), states={'open':[('readonly',True)],'close':[('readonly',True)]}),
- 'reconciled': fields.function(_reconciled, method=True, string='Paid/Reconciled', type='boolean',
+ 'reconciled': fields.function(_reconciled, string='Paid/Reconciled', type='boolean',
store={
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, None, 50), # Check if we can remove ?
'account.move.line': (_get_invoice_from_line, None, 50),
@@ -260,17 +260,17 @@ class account_invoice(osv.osv):
}, help="The Journal Entry of the invoice have been totally reconciled with one or several Journal Entries of payment."),
'partner_bank_id': fields.many2one('res.partner.bank', 'Bank Account',
help='Bank Account Number, Company bank account if Invoice is customer or supplier refund, otherwise Partner bank account number.', readonly=True, states={'draft':[('readonly',False)]}),
- 'move_lines':fields.function(_get_lines, method=True, type='many2many', relation='account.move.line', string='Entry Lines'),
- 'residual': fields.function(_amount_residual, method=True, digits_compute=dp.get_precision('Account'), string='Residual',
+ 'move_lines':fields.function(_get_lines, type='many2many', relation='account.move.line', string='Entry Lines'),
+ 'residual': fields.function(_amount_residual, digits_compute=dp.get_precision('Account'), string='Residual',
store={
- 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 50),
+ 'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line','move_id'], 50),
'account.invoice.tax': (_get_invoice_tax, None, 50),
'account.invoice.line': (_get_invoice_line, ['price_unit','invoice_line_tax_id','quantity','discount','invoice_id'], 50),
'account.move.line': (_get_invoice_from_line, None, 50),
'account.move.reconcile': (_get_invoice_from_reconcile, None, 50),
},
help="Remaining amount due."),
- 'payment_ids': fields.function(_compute_lines, method=True, relation='account.move.line', type="many2many", string='Payments'),
+ 'payment_ids': fields.function(_compute_lines, relation='account.move.line', type="many2many", string='Payments'),
'move_name': fields.char('Journal Entry', size=64, readonly=True, states={'draft':[('readonly',False)]}),
'user_id': fields.many2one('res.users', 'Salesman', readonly=True, states={'draft':[('readonly',False)]}),
'fiscal_position': fields.many2one('account.fiscal.position', 'Fiscal Position', readonly=True, states={'draft':[('readonly',False)]})
@@ -1282,7 +1282,7 @@ class account_invoice_line(osv.osv):
'product_id': fields.many2one('product.product', 'Product', ondelete='set null'),
'account_id': fields.many2one('account.account', 'Account', required=True, domain=[('type','<>','view'), ('type', '<>', 'closed')], help="The income or expense account related to the selected product."),
'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Account')),
- 'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal', type="float",
+ 'price_subtotal': fields.function(_amount_line, string='Subtotal', type="float",
digits_compute= dp.get_precision('Account'), store=True),
'quantity': fields.float('Quantity', required=True),
'discount': fields.float('Discount (%)', digits_compute= dp.get_precision('Account')),
@@ -1505,8 +1505,8 @@ class account_invoice_tax(osv.osv):
'tax_code_id': fields.many2one('account.tax.code', 'Tax Code', help="The tax basis of the tax declaration."),
'tax_amount': fields.float('Tax Code Amount', digits_compute=dp.get_precision('Account')),
'company_id': fields.related('account_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True),
- 'factor_base': fields.function(_count_factor, method=True, string='Multipication factor for Base code', type='float', multi="all"),
- 'factor_tax': fields.function(_count_factor, method=True, string='Multipication factor Tax code', type='float', multi="all")
+ 'factor_base': fields.function(_count_factor, string='Multipication factor for Base code', type='float', multi="all"),
+ 'factor_tax': fields.function(_count_factor, string='Multipication factor Tax code', type='float', multi="all")
}
def base_change(self, cr, uid, ids, base, currency_id=False, company_id=False, date_invoice=False):
diff --git a/addons/account/partner.py b/addons/account/partner.py
index 9e2aafe849a..6ff3879889c 100644
--- a/addons/account/partner.py
+++ b/addons/account/partner.py
@@ -142,15 +142,14 @@ class res_partner(osv.osv):
_columns = {
'credit': fields.function(_credit_debit_get,
- fnct_search=_credit_search, method=True, string='Total Receivable', multi='dc', help="Total amount this customer owes you."),
- 'debit': fields.function(_credit_debit_get, fnct_search=_debit_search, method=True, string='Total Payable', multi='dc', help="Total amount you have to pay to this supplier."),
+ fnct_search=_credit_search, string='Total Receivable', multi='dc', help="Total amount this customer owes you."),
+ 'debit': fields.function(_credit_debit_get, fnct_search=_debit_search, string='Total Payable', multi='dc', help="Total amount you have to pay to this supplier."),
'debit_limit': fields.float('Payable Limit'),
'property_account_payable': fields.property(
'account.account',
type='many2one',
relation='account.account',
string="Account Payable",
- method=True,
view_load=True,
domain="[('type', '=', 'payable')]",
help="This account will be used instead of the default one as the payable account for the current partner",
@@ -160,7 +159,6 @@ class res_partner(osv.osv):
type='many2one',
relation='account.account',
string="Account Receivable",
- method=True,
view_load=True,
domain="[('type', '=', 'receivable')]",
help="This account will be used instead of the default one as the receivable account for the current partner",
@@ -170,7 +168,6 @@ class res_partner(osv.osv):
type='many2one',
relation='account.fiscal.position',
string="Fiscal Position",
- method=True,
view_load=True,
help="The fiscal position will determine taxes and the accounts used for the partner.",
),
@@ -179,7 +176,6 @@ class res_partner(osv.osv):
type='many2one',
relation='account.payment.term',
string ='Payment Term',
- method=True,
view_load=True,
help="This payment term will be used instead of the default one for the current partner"),
'ref_companies': fields.one2many('res.company', 'partner_id',
diff --git a/addons/account/product.py b/addons/account/product.py
index b8af27b03e5..9be49b4c56a 100644
--- a/addons/account/product.py
+++ b/addons/account/product.py
@@ -29,7 +29,6 @@ class product_category(osv.osv):
type='many2one',
relation='account.account',
string="Income Account",
- method=True,
view_load=True,
help="This account will be used for invoices to value sales for the current product category"),
'property_account_expense_categ': fields.property(
@@ -37,7 +36,6 @@ class product_category(osv.osv):
type='many2one',
relation='account.account',
string="Expense Account",
- method=True,
view_load=True,
help="This account will be used for invoices to value expenses for the current product category"),
}
@@ -61,7 +59,6 @@ class product_template(osv.osv):
type='many2one',
relation='account.account',
string="Income Account",
- method=True,
view_load=True,
help="This account will be used for invoices instead of the default one to value sales for the current product"),
'property_account_expense': fields.property(
@@ -69,7 +66,6 @@ class product_template(osv.osv):
type='many2one',
relation='account.account',
string="Expense Account",
- method=True,
view_load=True,
help="This account will be used for invoices instead of the default one to value expenses for the current product"),
}
diff --git a/addons/account/report/account_profit_loss.py b/addons/account/report/account_profit_loss.py
index 5f5d561a572..4c8896ee630 100644
--- a/addons/account/report/account_profit_loss.py
+++ b/addons/account/report/account_profit_loss.py
@@ -101,6 +101,7 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
cal_list = {}
account_id = data['form'].get('chart_account_id', False)
+ company_currency = account_pool.browse(self.cr, self.uid, account_id).company_id.currency_id
account_ids = account_pool._get_children_and_consol(cr, uid, account_id, context=ctx)
accounts = account_pool.browse(cr, uid, account_ids, context=ctx)
@@ -121,7 +122,10 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
accounts_temp.append(account)
else:
accounts_temp.append(account)
- if self.result_sum_dr > self.result_sum_cr:
+ if currency_pool.is_zero(self.cr, self.uid, company_currency, (self.result_sum_dr-self.result_sum_cr)):
+ self.res_pl['type'] = None
+ self.res_pl['balance'] = 0.0
+ elif self.result_sum_dr > self.result_sum_cr:
self.res_pl['type'] = _('Net Loss')
self.res_pl['balance'] = (self.result_sum_dr - self.result_sum_cr)
else:
diff --git a/addons/account/report/account_report.py b/addons/account/report/account_report.py
index 6b22dc21fdf..6666b1ccd83 100644
--- a/addons/account/report/account_report.py
+++ b/addons/account/report/account_report.py
@@ -114,7 +114,7 @@ class report_aged_receivable(osv.osv):
_columns = {
'name': fields.char('Month Range', size=7, readonly=True),
- 'balance': fields.function(_calc_bal, method=True, string='Balance', readonly=True),
+ 'balance': fields.function(_calc_bal, string='Balance', readonly=True),
}
def init(self, cr, uid=1):
diff --git a/addons/account/report/account_treasury_report.py b/addons/account/report/account_treasury_report.py
index 9b364a55777..fce3661b4c4 100644
--- a/addons/account/report/account_treasury_report.py
+++ b/addons/account/report/account_treasury_report.py
@@ -31,12 +31,13 @@ class account_treasury_report(osv.osv):
def _compute_balances(self, cr, uid, ids, field_names, arg=None, context=None,
query='', query_params=()):
all_treasury_lines = self.search(cr, uid, [], context=context)
- current_sum = 0
+ all_companies = self.pool.get('res.company').search(cr, uid, [], context=context)
+ current_sum = dict((company, 0.0) for company in all_companies)
res = dict((id, dict((fn, 0.0) for fn in field_names)) for id in all_treasury_lines)
for record in self.browse(cr, uid, all_treasury_lines, context=context):
- res[record.id]['starting_balance'] = current_sum
- current_sum += record.balance
- res[record.id]['ending_balance'] = current_sum
+ res[record.id]['starting_balance'] = current_sum[record.company_id.id]
+ current_sum[record.company_id.id] += record.balance
+ res[record.id]['ending_balance'] = current_sum[record.company_id.id]
return res
_columns = {
@@ -46,8 +47,8 @@ class account_treasury_report(osv.osv):
'credit': fields.float('Credit', readonly=True),
'balance': fields.float('Balance', readonly=True),
'date': fields.date('Beginning of Period Date', readonly=True),
- 'starting_balance': fields.function(_compute_balances, digits_compute=dp.get_precision('Account'), method=True, string='Starting Balance', multi='balance'),
- 'ending_balance': fields.function(_compute_balances, digits_compute=dp.get_precision('Account'), method=True, string='Ending Balance', multi='balance'),
+ 'starting_balance': fields.function(_compute_balances, digits_compute=dp.get_precision('Account'), string='Starting Balance', multi='balance'),
+ 'ending_balance': fields.function(_compute_balances, digits_compute=dp.get_precision('Account'), string='Ending Balance', multi='balance'),
'company_id': fields.many2one('res.company', 'Company', readonly=True),
}
diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml
index b7271fec84b..016c147be91 100644
--- a/addons/account/security/account_security.xml
+++ b/addons/account/security/account_security.xml
@@ -97,6 +97,13 @@
['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
+
+ Invoice Analysis multi-company
+
+
+ ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
+
+
Account fiscal Mapping company rule
diff --git a/addons/account/wizard/account_fiscalyear_close.py b/addons/account/wizard/account_fiscalyear_close.py
index 89e28950535..927f895bb3b 100644
--- a/addons/account/wizard/account_fiscalyear_close.py
+++ b/addons/account/wizard/account_fiscalyear_close.py
@@ -103,6 +103,14 @@ class account_fiscalyear_close(osv.osv_memory):
if accnt_type_data.close_method=='none' or account.type == 'view':
continue
if accnt_type_data.close_method=='balance':
+ balance_in_currency = 0.0
+ if account.currency_id:
+ cr.execute('SELECT sum(amount_currency) as balance_in_currency FROM account_move_line ' \
+ 'WHERE account_id = %s ' \
+ 'AND ' + query_line + ' ' \
+ 'AND currency_id = %s', (account.id, account.currency_id.id))
+ balance_in_currency = cr.dictfetchone()['balance_in_currency']
+
if abs(account.balance)>0.0001:
obj_acc_move_line.create(cr, uid, {
'debit': account.balance>0 and account.balance,
@@ -111,7 +119,9 @@ class account_fiscalyear_close(osv.osv_memory):
'date': period.date_start,
'journal_id': new_journal.id,
'period_id': period.id,
- 'account_id': account.id
+ 'account_id': account.id,
+ 'currency_id': account.currency_id and account.currency_id.id or False,
+ 'amount_currency': balance_in_currency,
}, {'journal_id': new_journal.id, 'period_id':period.id})
if accnt_type_data.close_method == 'unreconciled':
offset = 0
diff --git a/addons/account_accountant/__openerp__.py b/addons/account_accountant/__openerp__.py
index e00353f28ce..5daaf4f4f3e 100644
--- a/addons/account_accountant/__openerp__.py
+++ b/addons/account_accountant/__openerp__.py
@@ -38,6 +38,7 @@ user rights to Demo user.
"depends" : ["account"],
'update_xml': [
'security/account_security.xml',
+ 'account_accountant_data.xml'
],
'demo_xml': ['account_accountant_demo.xml'],
'test': [],
diff --git a/addons/account_accountant/account_accountant_data.xml b/addons/account_accountant/account_accountant_data.xml
new file mode 100644
index 00000000000..5962ae95dcd
--- /dev/null
+++ b/addons/account_accountant/account_accountant_data.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/addons/account_accountant/i18n/fi.po b/addons/account_accountant/i18n/fi.po
new file mode 100644
index 00000000000..1e1c0a25072
--- /dev/null
+++ b/addons/account_accountant/i18n/fi.po
@@ -0,0 +1,33 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-06-22 05:51+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-23 04:56+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: account_accountant
+#: model:ir.module.module,description:account_accountant.module_meta_information
+msgid ""
+"\n"
+"This module gives the admin user the access to all the accounting features "
+"like the journal\n"
+"items and the chart of accounts.\n"
+" "
+msgstr ""
+
+#. module: account_accountant
+#: model:ir.module.module,shortdesc:account_accountant.module_meta_information
+msgid "Accountant"
+msgstr "Kirjanpitäjä"
diff --git a/addons/account_analytic_analysis/account_analytic_analysis.py b/addons/account_analytic_analysis/account_analytic_analysis.py
index 11f92614b73..22eb9401ad7 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis.py
+++ b/addons/account_analytic_analysis/account_analytic_analysis.py
@@ -375,49 +375,49 @@ class account_analytic_account(osv.osv):
return res
_columns ={
- 'ca_invoiced': fields.function(_ca_invoiced_calc, method=True, type='float', string='Invoiced Amount',
+ 'ca_invoiced': fields.function(_ca_invoiced_calc, type='float', string='Invoiced Amount',
help="Total customer invoiced amount for this account.",
digits_compute=dp.get_precision('Account')),
- 'total_cost': fields.function(_total_cost_calc, method=True, type='float', string='Total Costs',
+ 'total_cost': fields.function(_total_cost_calc, type='float', string='Total Costs',
help="Total of costs for this account. It includes real costs (from invoices) and indirect costs, like time spent on timesheets.",
digits_compute=dp.get_precision('Account')),
- 'ca_to_invoice': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='float', string='Uninvoiced Amount',
+ 'ca_to_invoice': fields.function(_analysis_all, multi='analytic_analysis', type='float', string='Uninvoiced Amount',
help="If invoice from analytic account, the remaining amount you can invoice to the customer based on the total costs.",
digits_compute=dp.get_precision('Account')),
- 'ca_theorical': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='float', string='Theoretical Revenue',
+ 'ca_theorical': fields.function(_analysis_all, multi='analytic_analysis', type='float', string='Theoretical Revenue',
help="Based on the costs you had on the project, what would have been the revenue if all these costs have been invoiced at the normal sale price provided by the pricelist.",
digits_compute=dp.get_precision('Account')),
- 'hours_quantity': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='float', string='Hours Tot',
+ 'hours_quantity': fields.function(_analysis_all, multi='analytic_analysis', type='float', string='Hours Tot',
help="Number of hours you spent on the analytic account (from timesheet). It computes on all journal of type 'general'."),
- 'last_invoice_date': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='date', string='Last Invoice Date',
+ 'last_invoice_date': fields.function(_analysis_all, multi='analytic_analysis', type='date', string='Last Invoice Date',
help="If invoice from the costs, this is the date of the latest invoiced."),
- 'last_worked_invoiced_date': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='date', string='Date of Last Invoiced Cost',
+ 'last_worked_invoiced_date': fields.function(_analysis_all, multi='analytic_analysis', type='date', string='Date of Last Invoiced Cost',
help="If invoice from the costs, this is the date of the latest work or cost that have been invoiced."),
- 'last_worked_date': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='date', string='Date of Last Cost/Work',
+ 'last_worked_date': fields.function(_analysis_all, multi='analytic_analysis', type='date', string='Date of Last Cost/Work',
help="Date of the latest work done on this account."),
- 'hours_qtt_non_invoiced': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='float', string='Uninvoiced Hours',
+ 'hours_qtt_non_invoiced': fields.function(_analysis_all, multi='analytic_analysis', type='float', string='Uninvoiced Hours',
help="Number of hours (from journal of type 'general') that can be invoiced if you invoice based on analytic account."),
- 'hours_qtt_invoiced': fields.function(_hours_qtt_invoiced_calc, method=True, type='float', string='Invoiced Hours',
+ 'hours_qtt_invoiced': fields.function(_hours_qtt_invoiced_calc, type='float', string='Invoiced Hours',
help="Number of hours that can be invoiced plus those that already have been invoiced."),
- 'remaining_hours': fields.function(_remaining_hours_calc, method=True, type='float', string='Remaining Hours',
+ 'remaining_hours': fields.function(_remaining_hours_calc, type='float', string='Remaining Hours',
help="Computed using the formula: Maximum Quantity - Hours Tot."),
- 'remaining_ca': fields.function(_remaining_ca_calc, method=True, type='float', string='Remaining Revenue',
+ 'remaining_ca': fields.function(_remaining_ca_calc, type='float', string='Remaining Revenue',
help="Computed using the formula: Max Invoice Price - Invoiced Amount.",
digits_compute=dp.get_precision('Account')),
- 'revenue_per_hour': fields.function(_revenue_per_hour_calc, method=True, type='float', string='Revenue per Hours (real)',
+ 'revenue_per_hour': fields.function(_revenue_per_hour_calc, type='float', string='Revenue per Hours (real)',
help="Computed using the formula: Invoiced Amount / Hours Tot.",
digits_compute=dp.get_precision('Account')),
- 'real_margin': fields.function(_real_margin_calc, method=True, type='float', string='Real Margin',
+ 'real_margin': fields.function(_real_margin_calc, type='float', string='Real Margin',
help="Computed using the formula: Invoiced Amount - Total Costs.",
digits_compute=dp.get_precision('Account')),
- 'theorical_margin': fields.function(_theorical_margin_calc, method=True, type='float', string='Theoretical Margin',
+ 'theorical_margin': fields.function(_theorical_margin_calc, type='float', string='Theoretical Margin',
help="Computed using the formula: Theorial Revenue - Total Costs",
digits_compute=dp.get_precision('Account')),
- 'real_margin_rate': fields.function(_real_margin_rate_calc, method=True, type='float', string='Real Margin Rate (%)',
+ 'real_margin_rate': fields.function(_real_margin_rate_calc, type='float', string='Real Margin Rate (%)',
help="Computes using the formula: (Real Margin / Total Costs) * 100.",
digits_compute=dp.get_precision('Account')),
- 'month_ids': fields.function(_analysis_all, method=True, multi='analytic_analysis', type='many2many', relation='account_analytic_analysis.summary.month', string='Month'),
- 'user_ids': fields.function(_analysis_all, method=True, multi='analytic_analysis', type="many2many", relation='account_analytic_analysis.summary.user', string='User'),
+ 'month_ids': fields.function(_analysis_all, multi='analytic_analysis', type='many2many', relation='account_analytic_analysis.summary.month', string='Month'),
+ 'user_ids': fields.function(_analysis_all, multi='analytic_analysis', type="many2many", relation='account_analytic_analysis.summary.user', string='User'),
}
account_analytic_account()
@@ -456,7 +456,7 @@ class account_analytic_account_summary_user(osv.osv):
_columns = {
'account_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True),
- 'unit_amount': fields.function(_unit_amount, method=True, type='float',
+ 'unit_amount': fields.function(_unit_amount, type='float',
string='Total Time'),
'user': fields.many2one('res.users', 'User'),
}
@@ -620,7 +620,7 @@ class account_analytic_account_summary_month(osv.osv):
_columns = {
'account_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True),
- 'unit_amount': fields.function(_unit_amount, method=True, type='float', string='Total Time'),
+ 'unit_amount': fields.function(_unit_amount, type='float', string='Total Time'),
'month': fields.char('Month', size=32, readonly=True),
}
diff --git a/addons/account_analytic_default/i18n/zh_CN.po b/addons/account_analytic_default/i18n/zh_CN.po
index 7c6b8677b1c..f6cc673966d 100644
--- a/addons/account_analytic_default/i18n/zh_CN.po
+++ b/addons/account_analytic_default/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2010-09-29 09:13+0000\n"
-"Last-Translator: Black Jack \n"
+"PO-Revision-Date: 2011-07-01 10:20+0000\n"
+"Last-Translator: digitalsatori \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 05:25+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:06+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: account_analytic_default
#: model:ir.module.module,shortdesc:account_analytic_default.module_meta_information
@@ -49,7 +49,7 @@ msgstr ""
#. module: account_analytic_default
#: view:account.analytic.default:0
msgid "Group By..."
-msgstr ""
+msgstr "分组..."
#. module: account_analytic_default
#: help:account.analytic.default,date_stop:0
@@ -59,7 +59,7 @@ msgstr ""
#. module: account_analytic_default
#: model:ir.model,name:account_analytic_default.model_stock_picking
msgid "Picking List"
-msgstr ""
+msgstr "领料/提货单"
#. module: account_analytic_default
#: view:account.analytic.default:0
diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py
index 990f53e91ef..c8ab5334d8a 100644
--- a/addons/account_analytic_plans/account_analytic_plans.py
+++ b/addons/account_analytic_plans/account_analytic_plans.py
@@ -61,7 +61,7 @@ class account_analytic_line(osv.osv):
return res
_columns = {
- 'amount_currency': fields.function(_get_amount, string="Amount Currency", type="float", method=True, store=True, help="The amount expressed in the related account currency if not equal to the company one.", readonly=True),
+ 'amount_currency': fields.function(_get_amount, string="Amount Currency", type="float", store=True, help="The amount expressed in the related account currency if not equal to the company one.", readonly=True),
'percentage': fields.float('Percentage')
}
diff --git a/addons/account_anglo_saxon/i18n/fi.po b/addons/account_anglo_saxon/i18n/fi.po
new file mode 100644
index 00000000000..4806d363e98
--- /dev/null
+++ b/addons/account_anglo_saxon/i18n/fi.po
@@ -0,0 +1,111 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-06-29 08:04+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-30 04:34+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: account_anglo_saxon
+#: view:product.category:0
+msgid " Accounting Property"
+msgstr " Kirjanpito-ominaisuus"
+
+#. module: account_anglo_saxon
+#: sql_constraint:purchase.order:0
+msgid "Order Reference must be unique !"
+msgstr "Tilauksen viite tulee olla yksilöllinen!"
+
+#. module: account_anglo_saxon
+#: constraint:product.category:0
+msgid "Error ! You can not create recursive categories."
+msgstr "Virhe ! Et voi luoda rekursiivisia luokkia."
+
+#. module: account_anglo_saxon
+#: constraint:product.template:0
+msgid ""
+"Error: The default UOM and the purchase UOM must be in the same category."
+msgstr ""
+"Virhe: Oletus mittayksikkö ja ostojen mittayksikkö täytyy olla samassa "
+"kategoriassa."
+
+#. module: account_anglo_saxon
+#: model:ir.model,name:account_anglo_saxon.model_account_invoice_line
+msgid "Invoice Line"
+msgstr "Laskun rivi"
+
+#. module: account_anglo_saxon
+#: model:ir.model,name:account_anglo_saxon.model_purchase_order
+msgid "Purchase Order"
+msgstr "Ostotilaus"
+
+#. module: account_anglo_saxon
+#: model:ir.model,name:account_anglo_saxon.model_product_template
+msgid "Product Template"
+msgstr "Tuotteen malli"
+
+#. module: account_anglo_saxon
+#: model:ir.model,name:account_anglo_saxon.model_product_category
+msgid "Product Category"
+msgstr "Tuotteen kategoria"
+
+#. module: account_anglo_saxon
+#: model:ir.module.module,shortdesc:account_anglo_saxon.module_meta_information
+msgid "Stock Accounting for Anglo Saxon countries"
+msgstr "Varastokirjanpito anglosaksalaisille maille"
+
+#. module: account_anglo_saxon
+#: field:product.category,property_account_creditor_price_difference_categ:0
+#: field:product.template,property_account_creditor_price_difference:0
+msgid "Price Difference Account"
+msgstr "Hintaerotuksen tili"
+
+#. module: account_anglo_saxon
+#: model:ir.model,name:account_anglo_saxon.model_account_invoice
+msgid "Invoice"
+msgstr "Lasku"
+
+#. module: account_anglo_saxon
+#: model:ir.model,name:account_anglo_saxon.model_stock_picking
+msgid "Picking List"
+msgstr "Keräilylista"
+
+#. module: account_anglo_saxon
+#: model:ir.module.module,description:account_anglo_saxon.module_meta_information
+msgid ""
+"This module will support the Anglo-Saxons accounting methodology by\n"
+" changing the accounting logic with stock transactions. The difference "
+"between the Anglo-Saxon accounting countries\n"
+" and the Rhine or also called Continental accounting countries is the "
+"moment of taking the Cost of Goods Sold versus Cost of Sales.\n"
+" Anglo-Saxons accounting does take the cost when sales invoice is "
+"created, Continental accounting will take the cost at the moment the goods "
+"are shipped.\n"
+" This module will add this functionality by using a interim account, to "
+"store the value of shipped goods and will contra book this interim account\n"
+" when the invoice is created to transfer this amount to the debtor or "
+"creditor account.\n"
+" Secondly, price differences between actual purchase price and fixed "
+"product standard price are booked on a separate account"
+msgstr ""
+
+#. module: account_anglo_saxon
+#: help:product.category,property_account_creditor_price_difference_categ:0
+#: help:product.template,property_account_creditor_price_difference:0
+msgid ""
+"This account will be used to value price difference between purchase price "
+"and cost price."
+msgstr ""
+"Tätä tiliä käytetään arvostamaan hintaeroa ostohinnan ja kustannushinnan "
+"välillä"
diff --git a/addons/account_anglo_saxon/product.py b/addons/account_anglo_saxon/product.py
index ebb9bde3d00..a2a5f7e6e95 100644
--- a/addons/account_anglo_saxon/product.py
+++ b/addons/account_anglo_saxon/product.py
@@ -28,7 +28,6 @@ class product_category(osv.osv):
type='many2one',
relation='account.account',
string="Price Difference Account",
- method=True,
view_load=True,
help="This account will be used to value price difference between purchase price and cost price."),
@@ -38,7 +37,6 @@ class product_category(osv.osv):
type='many2one',
relation='account.account',
string="Income Account",
- method=True,
view_load=True,
help="This account will be used to value outgoing stock for the current product category using sale price"),
'property_account_expense_categ': fields.property(
@@ -46,7 +44,6 @@ class product_category(osv.osv):
type='many2one',
relation='account.account',
string="Expense Account",
- method=True,
view_load=True,
help="This account will be used to value outgoing stock for the current product category using cost price"),
@@ -61,7 +58,6 @@ class product_template(osv.osv):
type='many2one',
relation='account.account',
string="Price Difference Account",
- method=True,
view_load=True,
help="This account will be used to value price difference between purchase price and cost price."),
@@ -71,7 +67,6 @@ class product_template(osv.osv):
type='many2one',
relation='account.account',
string="Income Account",
- method=True,
view_load=True,
help="This account will be used to value outgoing stock for the current product category using sale price"),
'property_account_expense': fields.property(
@@ -79,7 +74,6 @@ class product_template(osv.osv):
type='many2one',
relation='account.account',
string="Expense Account",
- method=True,
view_load=True,
help="This account will be used to value outgoing stock for the current product category using cost price"),
diff --git a/addons/account_budget/account_budget.py b/addons/account_budget/account_budget.py
index 12caba17374..7d9666ae5ac 100644
--- a/addons/account_budget/account_budget.py
+++ b/addons/account_budget/account_budget.py
@@ -196,9 +196,9 @@ class crossovered_budget_lines(osv.osv):
'date_to': fields.date('End Date', required=True),
'paid_date': fields.date('Paid Date'),
'planned_amount':fields.float('Planned Amount', required=True, digits_compute=dp.get_precision('Account')),
- 'practical_amount':fields.function(_prac, method=True, string='Practical Amount', type='float', digits_compute=dp.get_precision('Account')),
- 'theoritical_amount':fields.function(_theo, method=True, string='Theoretical Amount', type='float', digits_compute=dp.get_precision('Account')),
- 'percentage':fields.function(_perc, method=True, string='Percentage', type='float'),
+ 'practical_amount':fields.function(_prac, string='Practical Amount', type='float', digits_compute=dp.get_precision('Account')),
+ 'theoritical_amount':fields.function(_theo, string='Theoretical Amount', type='float', digits_compute=dp.get_precision('Account')),
+ 'percentage':fields.function(_perc, string='Percentage', type='float'),
'company_id': fields.related('crossovered_budget_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True)
}
diff --git a/addons/account_coda/i18n/fi.po b/addons/account_coda/i18n/fi.po
new file mode 100644
index 00000000000..8daf08f08c8
--- /dev/null
+++ b/addons/account_coda/i18n/fi.po
@@ -0,0 +1,261 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-06-28 09:19+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-29 04:43+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: account_coda
+#: help:account.coda,journal_id:0
+#: field:account.coda.import,journal_id:0
+msgid "Bank Journal"
+msgstr "Pankkitapahtumat"
+
+#. module: account_coda
+#: view:account.coda:0
+#: field:account.coda.import,note:0
+msgid "Log"
+msgstr "Loki"
+
+#. module: account_coda
+#: model:ir.model,name:account_coda.model_account_coda_import
+msgid "Account Coda Import"
+msgstr "Tilien Coda tuonti"
+
+#. module: account_coda
+#: field:account.coda,name:0
+msgid "Coda file"
+msgstr "Coda tiedosto"
+
+#. module: account_coda
+#: view:account.coda:0
+msgid "Group By..."
+msgstr "Ryhmittely.."
+
+#. module: account_coda
+#: field:account.coda.import,awaiting_account:0
+msgid "Default Account for Unrecognized Movement"
+msgstr "Oletustili tuntemattomille siirroille"
+
+#. module: account_coda
+#: help:account.coda,date:0
+msgid "Import Date"
+msgstr "Tuontipäivä"
+
+#. module: account_coda
+#: field:account.coda,note:0
+msgid "Import log"
+msgstr "Tuontiloki"
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Import"
+msgstr "Tuo"
+
+#. module: account_coda
+#: view:account.coda:0
+msgid "Coda import"
+msgstr "Coda tuonti"
+
+#. module: account_coda
+#: code:addons/account_coda/account_coda.py:51
+#, python-format
+msgid "Coda file not found for bank statement !!"
+msgstr "Coda tiedostoa ei löytynyt tiliotteelle"
+
+#. module: account_coda
+#: help:account.coda.import,awaiting_account:0
+msgid ""
+"Set here the default account that will be used, if the partner is found but "
+"does not have the bank account, or if he is domiciled"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+#: field:account.coda,company_id:0
+msgid "Company"
+msgstr "Yritys"
+
+#. module: account_coda
+#: help:account.coda.import,def_payable:0
+msgid ""
+"Set here the payable account that will be used, by default, if the partner "
+"is not found"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+msgid "Search Coda"
+msgstr "Hae coda"
+
+#. module: account_coda
+#: view:account.coda:0
+#: field:account.coda,user_id:0
+msgid "User"
+msgstr "Käyttäjä"
+
+#. module: account_coda
+#: view:account.coda:0
+#: field:account.coda,date:0
+msgid "Date"
+msgstr "Päiväys"
+
+#. module: account_coda
+#: model:ir.ui.menu,name:account_coda.menu_account_coda_statement
+msgid "Coda Import Logs"
+msgstr "Coda tuontilokit"
+
+#. module: account_coda
+#: model:ir.model,name:account_coda.model_account_coda
+msgid "coda for an Account"
+msgstr "Coda tilille"
+
+#. module: account_coda
+#: field:account.coda.import,def_payable:0
+msgid "Default Payable Account"
+msgstr "Oletus maksutili"
+
+#. module: account_coda
+#: help:account.coda,name:0
+msgid "Store the detail of bank statements"
+msgstr "Talleta tiliotteiden yksityiskohdat"
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Cancel"
+msgstr "Peruuta"
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Open Statements"
+msgstr "Avaa tiliotteet"
+
+#. module: account_coda
+#: code:addons/account_coda/wizard/account_coda_import.py:167
+#, python-format
+msgid "The bank account %s is not defined for the partner %s.\n"
+msgstr ""
+
+#. module: account_coda
+#: model:ir.ui.menu,name:account_coda.menu_account_coda_import
+msgid "Import Coda Statements"
+msgstr "Tuo Coda tiedot"
+
+#. module: account_coda
+#: view:account.coda.import:0
+#: model:ir.actions.act_window,name:account_coda.action_account_coda_import
+msgid "Import Coda Statement"
+msgstr "Tuo Coda tiedot"
+
+#. module: account_coda
+#: model:ir.module.module,description:account_coda.module_meta_information
+msgid ""
+"\n"
+" Module provides functionality to import\n"
+" bank statements from coda files.\n"
+" "
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+msgid "Statements"
+msgstr "Tiliotteet"
+
+#. module: account_coda
+#: field:account.bank.statement,coda_id:0
+msgid "Coda"
+msgstr "Coda"
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Results :"
+msgstr "Tulokset :"
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Result of Imported Coda Statements"
+msgstr "Tulos tuoduista Coda tiliotteista"
+
+#. module: account_coda
+#: help:account.coda.import,def_receivable:0
+msgid ""
+"Set here the receivable account that will be used, by default, if the "
+"partner is not found"
+msgstr ""
+"Valitse tähän oletustili jota käytetään jos saapuneen maksun kumppania ei "
+"löydetä"
+
+#. module: account_coda
+#: field:account.coda.import,coda:0
+#: model:ir.actions.act_window,name:account_coda.act_account_payment_account_bank_statement
+msgid "Coda File"
+msgstr "Coda tiedosto"
+
+#. module: account_coda
+#: model:ir.model,name:account_coda.model_account_bank_statement
+msgid "Bank Statement"
+msgstr "Pankin tiliote"
+
+#. module: account_coda
+#: model:ir.actions.act_window,name:account_coda.action_account_coda
+msgid "Coda Logs"
+msgstr "Coda lokit"
+
+#. module: account_coda
+#: code:addons/account_coda/wizard/account_coda_import.py:311
+#, python-format
+msgid "Result"
+msgstr "Tulos"
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Click on 'New' to select your file :"
+msgstr "Valitse 'uusi' valitaksesi tiedostosi :"
+
+#. module: account_coda
+#: field:account.coda.import,def_receivable:0
+msgid "Default Receivable Account"
+msgstr "Oletus saamistili"
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Close"
+msgstr "Sulje"
+
+#. module: account_coda
+#: field:account.coda,statement_ids:0
+msgid "Generated Bank Statements"
+msgstr "Luodut tiliotteet"
+
+#. module: account_coda
+#: model:ir.module.module,shortdesc:account_coda.module_meta_information
+msgid "Account CODA - import bank statements from coda file"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda.import:0
+msgid "Configure Your Journal and Account :"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+msgid "Coda Import"
+msgstr ""
+
+#. module: account_coda
+#: view:account.coda:0
+#: field:account.coda,journal_id:0
+msgid "Journal"
+msgstr ""
diff --git a/addons/account_invoice_layout/account_invoice_layout.py b/addons/account_invoice_layout/account_invoice_layout.py
index 3337710420f..b0fb92c9abb 100644
--- a/addons/account_invoice_layout/account_invoice_layout.py
+++ b/addons/account_invoice_layout/account_invoice_layout.py
@@ -161,7 +161,7 @@ class account_invoice_line(osv.osv):
('break','Page Break'),]
,'Type', select=True, required=True),
'sequence': fields.integer('Sequence Number', help="Gives the sequence order when displaying a list of invoice lines."),
- 'functional_field': fields.function(_fnct, arg=None, fnct_inv=None, fnct_inv_arg=None, type='char', fnct_search=None, obj=None, method=True, store=False, string="Source Account"),
+ 'functional_field': fields.function(_fnct, arg=None, fnct_inv=None, fnct_inv_arg=None, type='char', fnct_search=None, obj=None, store=False, string="Source Account"),
}
def _default_account(self, cr, uid, context=None):
diff --git a/addons/account_payment/account_invoice.py b/addons/account_payment/account_invoice.py
index 1f882b48421..fd787863c7d 100644
--- a/addons/account_payment/account_invoice.py
+++ b/addons/account_payment/account_invoice.py
@@ -42,7 +42,7 @@ class Invoice(osv.osv):
return res
_columns = {
- 'amount_to_pay': fields.function(_amount_to_pay, method=True,
+ 'amount_to_pay': fields.function(_amount_to_pay,
type='float', string='Amount to be paid',
help='The amount which should be paid at the current date\n' \
'minus the amount which is already in payment order'),
diff --git a/addons/account_payment/account_move_line.py b/addons/account_payment/account_move_line.py
index 68bb33ca4e5..24f9486be95 100644
--- a/addons/account_payment/account_move_line.py
+++ b/addons/account_payment/account_move_line.py
@@ -111,7 +111,7 @@ class account_move_line(osv.osv):
return line2bank
_columns = {
- 'amount_to_pay': fields.function(amount_to_pay, method=True,
+ 'amount_to_pay': fields.function(amount_to_pay,
type='float', string='Amount to pay', fnct_search=_to_pay_search),
}
diff --git a/addons/account_payment/account_payment.py b/addons/account_payment/account_payment.py
index 19de746b7c9..9858d536d17 100644
--- a/addons/account_payment/account_payment.py
+++ b/addons/account_payment/account_payment.py
@@ -96,7 +96,7 @@ class payment_order(osv.osv):
('done', 'Done')], 'State', select=True,
help='When an order is placed the state is \'Draft\'.\n Once the bank is confirmed the state is set to \'Confirmed\'.\n Then the order is paid the state is \'Done\'.'),
'line_ids': fields.one2many('payment.line', 'order_id', 'Payment lines', states={'done': [('readonly', True)]}),
- 'total': fields.function(_total, string="Total", method=True, type='float'),
+ 'total': fields.function(_total, string="Total", type='float'),
'user_id': fields.many2one('res.users', 'User', required=True, states={'done': [('readonly', True)]}),
'date_prefered': fields.selection([
('now', 'Directly'),
@@ -344,14 +344,14 @@ class payment_line(osv.osv):
ondelete='cascade', select=True),
'partner_id': fields.many2one('res.partner', string="Partner", required=True, help='The Ordering Customer'),
'amount': fields.function(_amount, string='Amount in Company Currency',
- method=True, type='float',
+ type='float',
help='Payment amount in the company currency'),
'ml_date_created': fields.function(_get_ml_created_date, string="Effective Date",
- method=True, type='date', help="Invoice Effective Date"),
- 'ml_maturity_date': fields.function(_get_ml_maturity_date, method=True, type='date', string='Due Date'),
- 'ml_inv_ref': fields.function(_get_ml_inv_ref, method=True, type='many2one', relation='account.invoice', string='Invoice Ref.'),
- 'info_owner': fields.function(info_owner, string="Owner Account", method=True, type="text", help='Address of the Main Partner'),
- 'info_partner': fields.function(info_partner, string="Destination Account", method=True, type="text", help='Address of the Ordering Customer.'),
+ type='date', help="Invoice Effective Date"),
+ 'ml_maturity_date': fields.function(_get_ml_maturity_date, type='date', string='Due Date'),
+ 'ml_inv_ref': fields.function(_get_ml_inv_ref, type='many2one', relation='account.invoice', string='Invoice Ref.'),
+ 'info_owner': fields.function(info_owner, string="Owner Account", type="text", help='Address of the Main Partner'),
+ 'info_partner': fields.function(info_partner, string="Destination Account", type="text", help='Address of the Ordering Customer.'),
'date': fields.date('Payment Date', help="If no payment date is specified, the bank will treat this payment line directly"),
'create_date': fields.datetime('Created', readonly=True),
'state': fields.selection([('normal','Free'), ('structured','Structured')], 'Communication Type', required=True),
diff --git a/addons/account_sequence/i18n/nb.po b/addons/account_sequence/i18n/nb.po
new file mode 100644
index 00000000000..f77793fcb3e
--- /dev/null
+++ b/addons/account_sequence/i18n/nb.po
@@ -0,0 +1,221 @@
+# Norwegian Bokmal translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-06-24 11:23+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Norwegian Bokmal \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-25 04:59+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+#: model:ir.actions.act_window,name:account_sequence.action_account_seq_installer
+msgid "Account Sequence Application Configuration"
+msgstr ""
+
+#. module: account_sequence
+#: constraint:account.move:0
+msgid ""
+"You cannot create entries on different periods/journals in the same move"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.move,internal_sequence_number:0
+#: help:account.move.line,internal_sequence_number:0
+msgid "Internal Sequence Number"
+msgstr "Internt sekvensnummer"
+
+#. module: account_sequence
+#: help:account.sequence.installer,number_next:0
+msgid "Next number of this sequence"
+msgstr "Neste nummer på denne sekvensen"
+
+#. module: account_sequence
+#: field:account.sequence.installer,number_next:0
+msgid "Next Number"
+msgstr "Neste nummer"
+
+#. module: account_sequence
+#: field:account.sequence.installer,number_increment:0
+msgid "Increment Number"
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.module.module,description:account_sequence.module_meta_information
+msgid ""
+"\n"
+" This module maintains internal sequence number for accounting entries.\n"
+" "
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.module.module,shortdesc:account_sequence.module_meta_information
+msgid "Entries Sequence Numbering"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,number_increment:0
+msgid "The next number of the sequence will be incremented by this number"
+msgstr ""
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "Configure Your Account Sequence Application"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,progress:0
+msgid "Configuration Progress"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,suffix:0
+msgid "Suffix value of the record for the sequence"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.journal,internal_sequence_id:0
+msgid ""
+"This sequence will be used to maintain the internal number for the journal "
+"entries related to this journal."
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,padding:0
+msgid "Number padding"
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_move_line
+msgid "Journal Items"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.move,internal_sequence_number:0
+#: field:account.move.line,internal_sequence_number:0
+msgid "Internal Number"
+msgstr ""
+
+#. module: account_sequence
+#: constraint:account.move.line:0
+msgid "Company must be same for its related account and period."
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,padding:0
+msgid ""
+"OpenERP will automatically adds some '0' on the left of the 'Next Number' to "
+"get the required padding size."
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,name:0
+msgid "Name"
+msgstr ""
+
+#. module: account_sequence
+#: constraint:account.move.line:0
+msgid "You can not create move line on closed account."
+msgstr ""
+
+#. module: account_sequence
+#: constraint:account.move:0
+msgid ""
+"You cannot create more than one move per period on centralized journal"
+msgstr ""
+
+#. module: account_sequence
+#: sql_constraint:account.move.line:0
+msgid "Wrong credit or debit value in accounting entry !"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.journal,internal_sequence_id:0
+msgid "Internal Sequence"
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_sequence_installer
+msgid "account.sequence.installer"
+msgstr ""
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "Configure"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,prefix:0
+msgid "Prefix value of the record for the sequence"
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_move
+msgid "Account Entry"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,suffix:0
+msgid "Suffix"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,config_logo:0
+msgid "Image"
+msgstr ""
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "title"
+msgstr ""
+
+#. module: account_sequence
+#: sql_constraint:account.journal:0
+msgid "The name of the journal must be unique per company !"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,prefix:0
+msgid "Prefix"
+msgstr ""
+
+#. module: account_sequence
+#: sql_constraint:account.journal:0
+msgid "The code of the journal must be unique per company !"
+msgstr ""
+
+#. module: account_sequence
+#: constraint:account.move.line:0
+msgid ""
+"You can not create move line on receivable/payable account without partner"
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_journal
+msgid "Journal"
+msgstr ""
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "You can enhance the Account Sequence Application by installing ."
+msgstr ""
+
+#. module: account_sequence
+#: constraint:account.move.line:0
+msgid "You can not create move line on view account."
+msgstr ""
diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py
index b4422cd8051..dee3d81832b 100644
--- a/addons/account_voucher/account_voucher.py
+++ b/addons/account_voucher/account_voucher.py
@@ -226,7 +226,7 @@ class account_voucher(osv.osv):
'writeoff_acc_id': fields.many2one('account.account', 'Write-Off account', readonly=True, states={'draft': [('readonly', False)]}),
'comment': fields.char('Write-Off Comment', size=64, required=True, readonly=True, states={'draft': [('readonly', False)]}),
'analytic_id': fields.many2one('account.analytic.account','Write-Off Analytic Account', readonly=True, states={'draft': [('readonly', False)]}),
- 'writeoff_amount': fields.function(_get_writeoff_amount, method=True, string='Write-Off Amount', type='float', readonly=True),
+ 'writeoff_amount': fields.function(_get_writeoff_amount, string='Write-Off Amount', type='float', readonly=True),
}
_defaults = {
'period_id': _get_period,
@@ -845,8 +845,8 @@ class account_voucher_line(osv.osv):
'move_line_id': fields.many2one('account.move.line', 'Journal Item'),
'date_original': fields.related('move_line_id','date', type='date', relation='account.move.line', string='Date', readonly=1),
'date_due': fields.related('move_line_id','date_maturity', type='date', relation='account.move.line', string='Due Date', readonly=1),
- 'amount_original': fields.function(_compute_balance, method=True, multi='dc', type='float', string='Original Amount', store=True),
- 'amount_unreconciled': fields.function(_compute_balance, method=True, multi='dc', type='float', string='Open Balance', store=True),
+ 'amount_original': fields.function(_compute_balance, multi='dc', type='float', string='Original Amount', store=True),
+ 'amount_unreconciled': fields.function(_compute_balance, multi='dc', type='float', string='Open Balance', store=True),
'company_id': fields.related('voucher_id','company_id', relation='res.company', type='many2one', string='Company', store=True, readonly=True),
}
_defaults = {
@@ -991,7 +991,7 @@ class account_bank_statement_line(osv.osv):
_columns = {
'amount_reconciled': fields.function(_amount_reconciled,
- string='Amount reconciled', method=True, type='float'),
+ string='Amount reconciled', type='float'),
'voucher_id': fields.many2one('account.voucher', 'Payment'),
}
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py
index d822c382c91..a155352adf8 100644
--- a/addons/analytic/analytic.py
+++ b/addons/analytic/analytic.py
@@ -149,18 +149,18 @@ class account_analytic_account(osv.osv):
_columns = {
'name': fields.char('Account Name', size=128, required=True),
- 'complete_name': fields.function(_complete_name_calc, method=True, type='char', string='Full Account Name'),
+ 'complete_name': fields.function(_complete_name_calc, type='char', string='Full Account Name'),
'code': fields.char('Account Code', size=24, select=True),
'type': fields.selection([('view','View'), ('normal','Normal')], 'Account Type', help='If you select the View Type, it means you won\'t allow to create journal entries using that account.'),
'description': fields.text('Description'),
'parent_id': fields.many2one('account.analytic.account', 'Parent Analytic Account', select=2),
'child_ids': fields.one2many('account.analytic.account', 'parent_id', 'Child Accounts'),
- 'child_complete_ids': fields.function(_child_compute, relation='account.analytic.account', method=True, string="Account Hierarchy", type='many2many'),
+ 'child_complete_ids': fields.function(_child_compute, relation='account.analytic.account', string="Account Hierarchy", type='many2many'),
'line_ids': fields.one2many('account.analytic.line', 'account_id', 'Analytic Entries'),
- 'balance': fields.function(_debit_credit_bal_qtty, method=True, type='float', string='Balance', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
- 'debit': fields.function(_debit_credit_bal_qtty, method=True, type='float', string='Debit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
- 'credit': fields.function(_debit_credit_bal_qtty, method=True, type='float', string='Credit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
- 'quantity': fields.function(_debit_credit_bal_qtty, method=True, type='float', string='Quantity', multi='debit_credit_bal_qtty'),
+ 'balance': fields.function(_debit_credit_bal_qtty, type='float', string='Balance', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
+ 'debit': fields.function(_debit_credit_bal_qtty, type='float', string='Debit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
+ 'credit': fields.function(_debit_credit_bal_qtty, type='float', string='Credit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
+ 'quantity': fields.function(_debit_credit_bal_qtty, type='float', string='Quantity', multi='debit_credit_bal_qtty'),
'quantity_max': fields.float('Maximum Quantity', help='Sets the higher limit of quantity of hours.'),
'partner_id': fields.many2one('res.partner', 'Partner'),
'contact_id': fields.many2one('res.partner.address', 'Contact'),
@@ -175,7 +175,7 @@ class account_analytic_account(osv.osv):
\n* And finally when all the transactions are over, it can be in \'Close\' state. \
\n* The project can be in either if the states \'Template\' and \'Running\'.\n If it is template then we can make projects based on the template projects. If its in \'Running\' state it is a normal project.\
\n If it is to be reviewed then the state is \'Pending\'.\n When the project is completed the state is set to \'Done\'.'),
- 'currency_id': fields.function(_currency, fnct_inv=_set_company_currency, method=True,
+ 'currency_id': fields.function(_currency, fnct_inv=_set_company_currency,
store = {
'res.company': (_get_analytic_account, ['currency_id'], 10),
}, string='Currency', type='many2one', relation='res.currency'),
diff --git a/addons/analytic/i18n/fi.po b/addons/analytic/i18n/fi.po
new file mode 100644
index 00000000000..5822cb824d2
--- /dev/null
+++ b/addons/analytic/i18n/fi.po
@@ -0,0 +1,261 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-06-29 06:16+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-30 04:34+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: analytic
+#: field:account.analytic.account,child_ids:0
+msgid "Child Accounts"
+msgstr "Alatason tilit"
+
+#. module: analytic
+#: field:account.analytic.account,name:0
+msgid "Account Name"
+msgstr "Tilin nimi"
+
+#. module: analytic
+#: help:account.analytic.line,unit_amount:0
+msgid "Specifies the amount of quantity to count."
+msgstr "Määrittelee laskettavan määrän"
+
+#. module: analytic
+#: model:ir.module.module,description:analytic.module_meta_information
+msgid ""
+"Module for defining analytic accounting object.\n"
+" "
+msgstr ""
+"Moduuli analyyttisten tilien määrittelyyn.\n"
+" "
+
+#. module: analytic
+#: field:account.analytic.account,state:0
+msgid "State"
+msgstr "Tila"
+
+#. module: analytic
+#: field:account.analytic.account,user_id:0
+msgid "Account Manager"
+msgstr "Asiakas päällikkö"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Draft"
+msgstr "Luonnos"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Closed"
+msgstr "Suljettu"
+
+#. module: analytic
+#: field:account.analytic.account,debit:0
+msgid "Debit"
+msgstr "Debet"
+
+#. module: analytic
+#: help:account.analytic.account,state:0
+msgid ""
+"* When an account is created its in 'Draft' state. "
+" \n"
+"* If any associated partner is there, it can be in 'Open' state. "
+" \n"
+"* If any pending balance is there it can be in 'Pending'. "
+" \n"
+"* And finally when all the transactions are over, it can be in 'Close' "
+"state. \n"
+"* The project can be in either if the states 'Template' and 'Running'.\n"
+" If it is template then we can make projects based on the template projects. "
+"If its in 'Running' state it is a normal project. "
+" \n"
+" If it is to be reviewed then the state is 'Pending'.\n"
+" When the project is completed the state is set to 'Done'."
+msgstr ""
+
+#. module: analytic
+#: field:account.analytic.account,type:0
+msgid "Account Type"
+msgstr "Tilityyppi"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Template"
+msgstr "Mallipohja"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Pending"
+msgstr "Odottava"
+
+#. module: analytic
+#: model:ir.model,name:analytic.model_account_analytic_line
+msgid "Analytic Line"
+msgstr "Analyyttinen rivi"
+
+#. module: analytic
+#: field:account.analytic.account,description:0
+#: field:account.analytic.line,name:0
+msgid "Description"
+msgstr "Kuvaus"
+
+#. module: analytic
+#: selection:account.analytic.account,type:0
+msgid "Normal"
+msgstr "Tavallinen"
+
+#. module: analytic
+#: field:account.analytic.account,company_id:0
+#: field:account.analytic.line,company_id:0
+msgid "Company"
+msgstr "Yritys"
+
+#. module: analytic
+#: field:account.analytic.account,quantity_max:0
+msgid "Maximum Quantity"
+msgstr "Maksimimäärä"
+
+#. module: analytic
+#: field:account.analytic.line,user_id:0
+msgid "User"
+msgstr "Käyttäjä"
+
+#. module: analytic
+#: field:account.analytic.account,parent_id:0
+msgid "Parent Analytic Account"
+msgstr "Ylempi analyyttinen tili"
+
+#. module: analytic
+#: field:account.analytic.line,date:0
+msgid "Date"
+msgstr "Päiväys"
+
+#. module: analytic
+#: field:account.analytic.account,currency_id:0
+msgid "Account currency"
+msgstr "Tilin valuutta"
+
+#. module: analytic
+#: field:account.analytic.account,quantity:0
+#: field:account.analytic.line,unit_amount:0
+msgid "Quantity"
+msgstr "Määrä"
+
+#. module: analytic
+#: help:account.analytic.line,amount:0
+msgid ""
+"Calculated by multiplying the quantity and the price given in the Product's "
+"cost price. Always expressed in the company main currency."
+msgstr ""
+"Laskettu kertomalla määrä ja tuotteen kustannushinta. Yrityksen "
+"päävaluutassa."
+
+#. module: analytic
+#: help:account.analytic.account,quantity_max:0
+msgid "Sets the higher limit of quantity of hours."
+msgstr "Asettaa tuntien määrän ylärajan"
+
+#. module: analytic
+#: field:account.analytic.account,credit:0
+msgid "Credit"
+msgstr "Kredit"
+
+#. module: analytic
+#: field:account.analytic.line,amount:0
+msgid "Amount"
+msgstr "Määrä"
+
+#. module: analytic
+#: field:account.analytic.account,contact_id:0
+msgid "Contact"
+msgstr "Yhteyshenkilö"
+
+#. module: analytic
+#: constraint:account.analytic.account:0
+msgid ""
+"Error! The currency has to be the same as the currency of the selected "
+"company"
+msgstr "Virhe! Valuutan tulee olla sama kun valitun yrityksen valutta."
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Cancelled"
+msgstr "Peruttu"
+
+#. module: analytic
+#: field:account.analytic.account,balance:0
+msgid "Balance"
+msgstr "Saldo"
+
+#. module: analytic
+#: constraint:account.analytic.account:0
+msgid "Error! You can not create recursive analytic accounts."
+msgstr "Virhe! Et voi luoda sisäkkäisiä analyyttisiä tilejä."
+
+#. module: analytic
+#: help:account.analytic.account,type:0
+msgid ""
+"If you select the View Type, it means you won't allow to create journal "
+"entries using that account."
+msgstr ""
+"Jos valitset näkymätyypin, se tarkoittaa että et voi luoda "
+"päiväkirjamerkintöjä käyttäen sitä tiliä."
+
+#. module: analytic
+#: field:account.analytic.account,date:0
+msgid "Date End"
+msgstr "Loppupäiväys"
+
+#. module: analytic
+#: field:account.analytic.account,code:0
+msgid "Account Code"
+msgstr "Tilikoodi"
+
+#. module: analytic
+#: field:account.analytic.account,complete_name:0
+msgid "Full Account Name"
+msgstr "Tilin kokonimi"
+
+#. module: analytic
+#: field:account.analytic.line,account_id:0
+#: model:ir.model,name:analytic.model_account_analytic_account
+#: model:ir.module.module,shortdesc:analytic.module_meta_information
+msgid "Analytic Account"
+msgstr "Analyyttinen tili"
+
+#. module: analytic
+#: selection:account.analytic.account,type:0
+msgid "View"
+msgstr "Näkymä"
+
+#. module: analytic
+#: field:account.analytic.account,partner_id:0
+msgid "Partner"
+msgstr "Kumppani"
+
+#. module: analytic
+#: field:account.analytic.account,date_start:0
+msgid "Date Start"
+msgstr "Aloituspäivämäärä"
+
+#. module: analytic
+#: selection:account.analytic.account,state:0
+msgid "Open"
+msgstr "Avoin"
+
+#. module: analytic
+#: field:account.analytic.account,line_ids:0
+msgid "Analytic Entries"
+msgstr "Analyyttiset viennit"
diff --git a/addons/analytic_user_function/i18n/fi.po b/addons/analytic_user_function/i18n/fi.po
new file mode 100644
index 00000000000..78387b7f6bd
--- /dev/null
+++ b/addons/analytic_user_function/i18n/fi.po
@@ -0,0 +1,103 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-03 16:56+0000\n"
+"PO-Revision-Date: 2011-06-29 05:53+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-30 04:34+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: analytic_user_function
+#: field:analytic_user_funct_grid,product_id:0
+msgid "Product"
+msgstr "Tuote"
+
+#. module: analytic_user_function
+#: code:addons/analytic_user_function/analytic_user_function.py:96
+#: code:addons/analytic_user_function/analytic_user_function.py:131
+#, python-format
+msgid "Error !"
+msgstr "Virhe !"
+
+#. module: analytic_user_function
+#: model:ir.model,name:analytic_user_function.model_hr_analytic_timesheet
+msgid "Timesheet Line"
+msgstr "Tuntilistan rivi"
+
+#. module: analytic_user_function
+#: field:analytic_user_funct_grid,account_id:0
+#: model:ir.model,name:analytic_user_function.model_account_analytic_account
+msgid "Analytic Account"
+msgstr "Analyyttinen tili"
+
+#. module: analytic_user_function
+#: view:account.analytic.account:0
+#: field:account.analytic.account,user_product_ids:0
+msgid "Users/Products Rel."
+msgstr "Käyttäjän/Tuotteen suhde"
+
+#. module: analytic_user_function
+#: field:analytic_user_funct_grid,user_id:0
+msgid "User"
+msgstr "Käyttäjä"
+
+#. module: analytic_user_function
+#: constraint:account.analytic.account:0
+msgid ""
+"Error! The currency has to be the same as the currency of the selected "
+"company"
+msgstr "Virhe! Valuutan tulee olla sama kun valitun yrityksen valutta."
+
+#. module: analytic_user_function
+#: code:addons/analytic_user_function/analytic_user_function.py:97
+#: code:addons/analytic_user_function/analytic_user_function.py:132
+#, python-format
+msgid "There is no expense account define for this product: \"%s\" (id:%d)"
+msgstr "Tuotteelle ei ole määritelty kulutiliä: \"%s\" (id:%d)"
+
+#. module: analytic_user_function
+#: model:ir.model,name:analytic_user_function.model_analytic_user_funct_grid
+msgid "Relation table between users and products on a analytic account"
+msgstr "Viitetaulu käyttäjien ja tuotteiden välillä analyyttisellä tilillä"
+
+#. module: analytic_user_function
+#: model:ir.module.module,description:analytic_user_function.module_meta_information
+msgid ""
+"\n"
+"\n"
+" This module allows you to define what is the default function of a "
+"specific user on a given account. This is mostly used when a user encodes "
+"his timesheet: the values are retrieved and the fields are auto-filled... "
+"but the possibility to change these values is still available.\n"
+"\n"
+" Obviously if no data has been recorded for the current account, the "
+"default value is given as usual by the employee data so that this module is "
+"perfectly compatible with older configurations.\n"
+"\n"
+" "
+msgstr ""
+
+#. module: analytic_user_function
+#: model:ir.module.module,shortdesc:analytic_user_function.module_meta_information
+msgid "Analytic User Function"
+msgstr "Analyyttinen käyttäjätoiminto"
+
+#. module: analytic_user_function
+#: constraint:account.analytic.account:0
+msgid "Error! You can not create recursive analytic accounts."
+msgstr "Virhe! Et voi luoda sisäkkäisiä analyyttisiä tilejä."
+
+#. module: analytic_user_function
+#: view:analytic_user_funct_grid:0
+msgid "User's Product for this Analytic Account"
+msgstr "Käyttäjän tuote tälle analyyttiselle tilille"
diff --git a/addons/anonymization/anonymization.py b/addons/anonymization/anonymization.py
index 2814227015a..c4a2d9f0488 100644
--- a/addons/anonymization/anonymization.py
+++ b/addons/anonymization/anonymization.py
@@ -240,10 +240,10 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
_columns = {
'name': fields.char(size='64', string='File Name'),
- 'summary': fields.function(_get_summary, method=True, type='text', string='Summary'),
+ 'summary': fields.function(_get_summary, type='text', string='Summary'),
'file_export': fields.binary(string='Export'),
'file_import': fields.binary(string='Import'),
- 'state': fields.function(_get_state, method=True, string='State', type='selection', selection=ANONYMIZATION_STATES, readonly=False),
+ 'state': fields.function(_get_state, string='State', type='selection', selection=ANONYMIZATION_STATES, readonly=False),
'msg': fields.text(string='Message'),
}
diff --git a/addons/anonymization/i18n/fi.po b/addons/anonymization/i18n/fi.po
new file mode 100644
index 00000000000..9526b2a0f71
--- /dev/null
+++ b/addons/anonymization/i18n/fi.po
@@ -0,0 +1,227 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-06-30 09:52+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-07-01 04:54+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard
+msgid "ir.model.fields.anonymize.wizard"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,field_name:0
+msgid "Field Name"
+msgstr "Kentän nimi"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,field_id:0
+msgid "Field"
+msgstr "Kenttä"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,state:0
+#: field:ir.model.fields.anonymize.wizard,state:0
+msgid "State"
+msgstr "Tila"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,file_import:0
+msgid "Import"
+msgstr "Tuo"
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization
+msgid "ir.model.fields.anonymization"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.module.module,shortdesc:anonymization.module_meta_information
+msgid "Database anonymization module"
+msgstr "Tietokannan anonymisointi moduuli"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,direction:0
+msgid "Direction"
+msgstr "suunta"
+
+#. module: anonymization
+#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_tree
+#: view:ir.model.fields.anonymization:0
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_fields
+msgid "Anonymized Fields"
+msgstr "Anonymisoidut kentät"
+
+#. module: anonymization
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization
+msgid "Database anonymization"
+msgstr "Tietokannan anonymisointi"
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:55
+#: sql_constraint:ir.model.fields.anonymization:0
+#, python-format
+msgid "You cannot have two records having the same model and the same field"
+msgstr ""
+"Sinulla ei voi olla kahta tietuetta joilla on sama malli ja sama kenttä"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Anonymized"
+msgstr "Anonymisoitu"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,state:0
+msgid "unknown"
+msgstr "Tuntematon"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,model_id:0
+msgid "Object"
+msgstr "Objekti"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,filepath:0
+msgid "File path"
+msgstr "Tiedoston polku"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,date:0
+msgid "Date"
+msgstr "Päiväys"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,file_export:0
+msgid "Export"
+msgstr "Vie"
+
+#. module: anonymization
+#: view:ir.model.fields.anonymize.wizard:0
+msgid "Reverse the Database Anonymization"
+msgstr "Poista tietokannan anonymisointi"
+
+#. module: anonymization
+#: view:ir.model.fields.anonymize.wizard:0
+msgid "Database Anonymization"
+msgstr "Tietokannan anonymisointi"
+
+#. module: anonymization
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_wizard
+msgid "Anonymize database"
+msgstr "Anonymisoi tietokanta"
+
+#. module: anonymization
+#: view:ir.model.fields.anonymization.history:0
+#: field:ir.model.fields.anonymization.history,field_ids:0
+msgid "Fields"
+msgstr "Kentät"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Clear"
+msgstr "Tyhjennä"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,direction:0
+msgid "clear -> anonymized"
+msgstr "näkyvä -> anonymisoitu"
+
+#. module: anonymization
+#: view:ir.model.fields.anonymize.wizard:0
+#: field:ir.model.fields.anonymize.wizard,summary:0
+msgid "Summary"
+msgstr "Yhteenveto"
+
+#. module: anonymization
+#: view:ir.model.fields.anonymization:0
+msgid "Anonymized Field"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.module.module,description:anonymization.module_meta_information
+msgid ""
+"\n"
+"This module allows you to anonymize a database.\n"
+" "
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Unstable"
+msgstr "Epävakaa"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,state:0
+msgid "Exception occured"
+msgstr "Poikkeus tapahtui"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Not Existing"
+msgstr "Ei ole olemassa"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,model_name:0
+msgid "Object Name"
+msgstr "Objektin nimi"
+
+#. module: anonymization
+#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_history_tree
+#: view:ir.model.fields.anonymization.history:0
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_history
+msgid "Anonymization History"
+msgstr "Anonymisoinnin historia"
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_history
+msgid "ir.model.fields.anonymization.history"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymize_wizard
+#: view:ir.model.fields.anonymize.wizard:0
+msgid "Anonymize Database"
+msgstr "Anonymisoi tietokanta"
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,name:0
+msgid "File Name"
+msgstr "Tiedostonimi"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,direction:0
+msgid "anonymized -> clear"
+msgstr "Anonymisoitu -> näkyvä"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,state:0
+msgid "Started"
+msgstr "Käynnistetty"
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,state:0
+msgid "Done"
+msgstr "Valmis"
+
+#. module: anonymization
+#: view:ir.model.fields.anonymization.history:0
+#: field:ir.model.fields.anonymization.history,msg:0
+#: field:ir.model.fields.anonymize.wizard,msg:0
+msgid "Message"
+msgstr "Viesti"
diff --git a/addons/anonymization/i18n/pt_BR.po b/addons/anonymization/i18n/pt_BR.po
index b710579d4d2..00f32c21c99 100644
--- a/addons/anonymization/i18n/pt_BR.po
+++ b/addons/anonymization/i18n/pt_BR.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2011-05-20 02:08+0000\n"
+"PO-Revision-Date: 2011-07-02 18:49+0000\n"
"Last-Translator: Gustavo T \n"
"Language-Team: Brazilian Portuguese \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-05-21 05:02+0000\n"
-"X-Generator: Launchpad (build 12959)\n"
+"X-Launchpad-Export-Date: 2011-07-03 04:47+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard
@@ -25,7 +25,7 @@ msgstr "ir.model.fields.anonymize.wizard"
#. module: anonymization
#: field:ir.model.fields.anonymization,field_name:0
msgid "Field Name"
-msgstr "Nome do Campo"
+msgstr "Nome do campo"
#. module: anonymization
#: field:ir.model.fields.anonymization,field_id:0
@@ -138,7 +138,7 @@ msgstr "Limpar"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,direction:0
msgid "clear -> anonymized"
-msgstr ""
+msgstr "em branco -> anonimizado"
#. module: anonymization
#: view:ir.model.fields.anonymize.wizard:0
@@ -149,7 +149,7 @@ msgstr "Resumo"
#. module: anonymization
#: view:ir.model.fields.anonymization:0
msgid "Anonymized Field"
-msgstr ""
+msgstr "Campo Anonimizado"
#. module: anonymization
#: model:ir.module.module,description:anonymization.module_meta_information
@@ -158,6 +158,9 @@ msgid ""
"This module allows you to anonymize a database.\n"
" "
msgstr ""
+"\n"
+"Este módulo permite que você anonimize um banco de dados\n"
+" "
#. module: anonymization
#: selection:ir.model.fields.anonymize.wizard,state:0
@@ -196,7 +199,7 @@ msgstr "ir.model.fields.anonymization.history"
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymize_wizard
#: view:ir.model.fields.anonymize.wizard:0
msgid "Anonymize Database"
-msgstr ""
+msgstr "Anonimizar Banco de Dados"
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,name:0
@@ -206,21 +209,21 @@ msgstr "Nome do Arquivo"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,direction:0
msgid "anonymized -> clear"
-msgstr ""
+msgstr "anonimizado -> em branco"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Started"
-msgstr ""
+msgstr "Iniciada"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Done"
-msgstr ""
+msgstr "Concluído"
#. module: anonymization
#: view:ir.model.fields.anonymization.history:0
#: field:ir.model.fields.anonymization.history,msg:0
#: field:ir.model.fields.anonymize.wizard,msg:0
msgid "Message"
-msgstr ""
+msgstr "Mensagem"
diff --git a/addons/association/i18n/fi.po b/addons/association/i18n/fi.po
new file mode 100644
index 00000000000..9a1eae464cb
--- /dev/null
+++ b/addons/association/i18n/fi.po
@@ -0,0 +1,141 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-06-27 10:43+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-28 04:40+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: association
+#: field:profile.association.config.install_modules_wizard,wiki:0
+msgid "Wiki"
+msgstr ""
+
+#. module: association
+#: view:profile.association.config.install_modules_wizard:0
+msgid "Event Management"
+msgstr "Tapahtumienhallinta"
+
+#. module: association
+#: field:profile.association.config.install_modules_wizard,project_gtd:0
+msgid "Getting Things Done"
+msgstr "Saada asiat tehtyä"
+
+#. module: association
+#: model:ir.module.module,description:association.module_meta_information
+msgid "This module is to create Profile for Associates"
+msgstr "Tämä moduuli mahdollistaa yhdistysjäsenprofiilien luonnin"
+
+#. module: association
+#: field:profile.association.config.install_modules_wizard,progress:0
+msgid "Configuration Progress"
+msgstr "Konfiguraation eteneminen"
+
+#. module: association
+#: view:profile.association.config.install_modules_wizard:0
+msgid ""
+"Here are specific applications related to the Association Profile you "
+"selected."
+msgstr ""
+"Tässä on määritellyt ohjelmat jotka liittyvät valitsemaasi "
+"yhdistysprofiiliin."
+
+#. module: association
+#: view:profile.association.config.install_modules_wizard:0
+msgid "title"
+msgstr "otsikko"
+
+#. module: association
+#: help:profile.association.config.install_modules_wizard,event_project:0
+msgid "Helps you to manage and organize your events."
+msgstr "Auttaa sinua hallitsemaan ja organisoimaan tapahtumia"
+
+#. module: association
+#: field:profile.association.config.install_modules_wizard,config_logo:0
+msgid "Image"
+msgstr "Kuva"
+
+#. module: association
+#: help:profile.association.config.install_modules_wizard,hr_expense:0
+msgid ""
+"Tracks and manages employee expenses, and can automatically re-invoice "
+"clients if the expenses are project-related."
+msgstr ""
+"Seuraa ja hallitsee työntekijäkuluja ja voi automaattisesti laskuttaa "
+"asiakasta, jos kulut liittyvät projektiin."
+
+#. module: association
+#: help:profile.association.config.install_modules_wizard,project_gtd:0
+msgid ""
+"GTD is a methodology to efficiently organise yourself and your tasks. This "
+"module fully integrates GTD principle with OpenERP's project management."
+msgstr ""
+
+#. module: association
+#: view:profile.association.config.install_modules_wizard:0
+msgid "Resources Management"
+msgstr "Resurssienhallinta"
+
+#. module: association
+#: model:ir.module.module,shortdesc:association.module_meta_information
+msgid "Association profile"
+msgstr "Yhdistysprofiili"
+
+#. module: association
+#: field:profile.association.config.install_modules_wizard,hr_expense:0
+msgid "Expenses Tracking"
+msgstr "Kulujenseuranta"
+
+#. module: association
+#: model:ir.actions.act_window,name:association.action_config_install_module
+#: view:profile.association.config.install_modules_wizard:0
+msgid "Association Application Configuration"
+msgstr "Jäsenhakemuksen konfiguraatio"
+
+#. module: association
+#: help:profile.association.config.install_modules_wizard,wiki:0
+msgid ""
+"Lets you create wiki pages and page groups in order to keep track of "
+"business knowledge and share it with and between your employees."
+msgstr ""
+
+#. module: association
+#: help:profile.association.config.install_modules_wizard,project:0
+msgid ""
+"Helps you manage your projects and tasks by tracking them, generating "
+"plannings, etc..."
+msgstr ""
+"Auttaa sinua hallitsemaan projektejasi ja tehtäviäsi seuraamalla niitä, "
+"luomalla suunnitelmia yms."
+
+#. module: association
+#: model:ir.model,name:association.model_profile_association_config_install_modules_wizard
+msgid "profile.association.config.install_modules_wizard"
+msgstr ""
+
+#. module: association
+#: field:profile.association.config.install_modules_wizard,event_project:0
+msgid "Events"
+msgstr "Tapahtumat"
+
+#. module: association
+#: view:profile.association.config.install_modules_wizard:0
+#: field:profile.association.config.install_modules_wizard,project:0
+msgid "Project Management"
+msgstr "Projektinhallinta"
+
+#. module: association
+#: view:profile.association.config.install_modules_wizard:0
+msgid "Configure"
+msgstr "Konfiguroi"
diff --git a/addons/auction/auction.py b/addons/auction/auction.py
index 0b2fc467f88..685b6ee3368 100644
--- a/addons/auction/auction.py
+++ b/addons/auction/auction.py
@@ -95,12 +95,12 @@ class auction_dates(osv.osv):
'seller_costs': fields.many2many('account.tax', 'auction_seller_taxes_rel', 'auction_id', 'tax_id', 'Seller Costs', help="Account tax for seller"),
'acc_income': fields.many2one('account.account', 'Income Account', required=True),
'acc_expense': fields.many2one('account.account', 'Expense Account', required=True),
- 'adj_total': fields.function(_adjudication_get, method=True, string='Total Adjudication', store=True),
+ 'adj_total': fields.function(_adjudication_get, string='Total Adjudication', store=True),
'state': fields.selection((('draft', 'Draft'), ('closed', 'Closed')), 'State', select=1, readonly=True,
help='When auction starts the state is \'Draft\'.\n At the end of auction, the state becomes \'Closed\'.'),
'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account', required=False),
- 'buyer_invoice_history': fields.function(_get_invoice, relation='account.invoice', method=True, string="Buyer Invoice", type='many2many', multi=True),
- 'seller_invoice_history': fields.function(_get_invoice, relation='account.invoice', method=True, string="Seller Invoice", type='many2many', multi=True),
+ 'buyer_invoice_history': fields.function(_get_invoice, relation='account.invoice', string="Buyer Invoice", type='many2many', multi=True),
+ 'seller_invoice_history': fields.function(_get_invoice, relation='account.invoice', string="Seller Invoice", type='many2many', multi=True),
}
_defaults = {
@@ -382,8 +382,8 @@ class auction_lots(osv.osv):
'vnd_lim': fields.float('Seller limit'),
'vnd_lim_net': fields.boolean('Net limit ?', readonly=True),
'image': fields.binary('Image', help="Object Image"),
- 'paid_vnd':fields.function(_getprice, string='Seller Paid', method=True, type='boolean', store=True, multi="paid_vnd", help="When state of Seller Invoice is 'Paid', this field is selected as True."),
- 'paid_ach':fields.function(_getprice, string='Buyer Invoice Reconciled', method=True, type='boolean', store=True, multi="paid_ach", help="When state of Buyer Invoice is 'Paid', this field is selected as True."),
+ 'paid_vnd':fields.function(_getprice, string='Seller Paid', type='boolean', store=True, multi="paid_vnd", help="When state of Seller Invoice is 'Paid', this field is selected as True."),
+ 'paid_ach':fields.function(_getprice, string='Buyer Invoice Reconciled', type='boolean', store=True, multi="paid_ach", help="When state of Buyer Invoice is 'Paid', this field is selected as True."),
'state': fields.selection((
('draft', 'Draft'),
('unsold', 'Unsold'),
@@ -394,14 +394,14 @@ class auction_lots(osv.osv):
\n* The \'Unsold\' state is used when object does not sold for long time, user can also set it as draft state after unsold. \
\n* The \'Paid\' state is used when user pay for the object \
\n* The \'Sold\' state is used when user buy the object.'),
- 'buyer_price': fields.function(_getprice, method=True, string='Buyer price', store=True, multi="buyer_price", help="Buyer Price"),
- 'seller_price': fields.function(_getprice, method=True, string='Seller price', store=True, multi="seller_price", help="Seller Price"),
- 'gross_revenue':fields.function(_getprice, method=True, string='Gross revenue', store=True, multi="gross_revenue", help="Buyer Price - Seller Price"),
- 'gross_margin':fields.function(_getprice, method=True, string='Gross Margin (%)', store=True, multi="gross_margin", help="(Gross Revenue*100.0)/ Object Price"),
- 'costs':fields.function(_getprice, method=True, string='Indirect costs', store=True, multi="costs", help="Deposit cost"),
+ 'buyer_price': fields.function(_getprice, string='Buyer price', store=True, multi="buyer_price", help="Buyer Price"),
+ 'seller_price': fields.function(_getprice, string='Seller price', store=True, multi="seller_price", help="Seller Price"),
+ 'gross_revenue':fields.function(_getprice, string='Gross revenue', store=True, multi="gross_revenue", help="Buyer Price - Seller Price"),
+ 'gross_margin':fields.function(_getprice, string='Gross Margin (%)', store=True, multi="gross_margin", help="(Gross Revenue*100.0)/ Object Price"),
+ 'costs':fields.function(_getprice, string='Indirect costs', store=True, multi="costs", help="Deposit cost"),
'statement_id': fields.many2many('account.bank.statement.line', 'auction_statement_line_rel', 'auction_id', 'statement', 'Payment', help="Bank statement line for given buyer"),
- 'net_revenue':fields.function(_getprice, method=True, string='Net revenue', store=True, multi="net_revenue", help="Buyer Price - Seller Price - Indirect Cost"),
- 'net_margin':fields.function(_getprice, method=True, string='Net Margin (%)', store=True, multi="net_margin", help="(Net Revenue * 100)/ Object Price"),
+ 'net_revenue':fields.function(_getprice, string='Net revenue', store=True, multi="net_revenue", help="Buyer Price - Seller Price - Indirect Cost"),
+ 'net_margin':fields.function(_getprice, string='Net Margin (%)', store=True, multi="net_margin", help="(Net Revenue * 100)/ Object Price"),
}
_defaults = {
'state':lambda *a: 'draft',
diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py
index 2a4e2c0e4e1..80c1ab464f1 100644
--- a/addons/base_action_rule/base_action_rule.py
+++ b/addons/base_action_rule/base_action_rule.py
@@ -487,21 +487,24 @@ base_action_rule()
class ir_cron(osv.osv):
- _inherit = 'ir.cron'
-
+ _inherit = 'ir.cron'
+ _init_done = False
+
def _poolJobs(self, db_name, check=False):
- try:
- db = pooler.get_db(db_name)
- except:
- return False
- cr = db.cursor()
- try:
- next = datetime.now().strftime('%Y-%m-%d %H:00:00')
- # Putting nextcall always less than current time in order to call it every time
- cr.execute('UPDATE ir_cron set nextcall = \'%s\' where numbercall<>0 and active and model=\'base.action.rule\' ' % (next))
- finally:
- cr.commit()
- cr.close()
+ if not self._init_done:
+ self._init_done = True
+ try:
+ db = pooler.get_db(db_name)
+ except:
+ return False
+ cr = db.cursor()
+ try:
+ next = datetime.now().strftime('%Y-%m-%d %H:00:00')
+ # Putting nextcall always less than current time in order to call it every time
+ cr.execute('UPDATE ir_cron set nextcall = \'%s\' where numbercall<>0 and active and model=\'base.action.rule\' ' % (next))
+ finally:
+ cr.commit()
+ cr.close()
super(ir_cron, self)._poolJobs(db_name, check=check)
diff --git a/addons/base_calendar/__openerp__.py b/addons/base_calendar/__openerp__.py
index 5688c0e05b5..a01cf0df8cf 100644
--- a/addons/base_calendar/__openerp__.py
+++ b/addons/base_calendar/__openerp__.py
@@ -1,11 +1,55 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
{
- "name": "Base calendar",
- "version": "2.0",
- "depends": ['base'],
- "js": [
- 'static/lib/dhtmlxScheduler/codebase/dhtmlxscheduler.js',
- 'static/src/js/calendar.js'
+ "name" : "Basic Calendar Functionality",
+ "version" : "1.0",
+ "depends" : ["base"],
+ 'description': """
+This is a full-featured calendar system.
+========================================
+
+It supports:
+ - Calendar of events
+ - Alerts (create requests)
+ - Recurring events
+ - Invitations to people""",
+ "author" : "OpenERP SA",
+ 'category': 'Tools',
+ 'website': 'http://www.openerp.com',
+ "init_xml" : [
+ 'base_calendar_data.xml'
],
- "css": ['static/lib/dhtmlxScheduler/codebase/dhtmlxscheduler.css'],
- 'active': True
+ "demo_xml" : [],
+ "update_xml" : [
+ 'security/calendar_security.xml',
+ 'security/ir.model.access.csv',
+ 'wizard/base_calendar_invite_attendee_view.xml',
+ 'base_calendar_view.xml'
+ ],
+ "test" : ['test/base_calendar_test.yml'],
+ "installable" : True,
+ "active" : False,
+ "certificate" : "00694071962960352821",
+ 'images': ['images/base_calendar1.jpeg','images/base_calendar2.jpeg','images/base_calendar3.jpeg','images/base_calendar4.jpeg',],
}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py
index bfcccb3dfe0..5f24b08884a 100644
--- a/addons/base_calendar/base_calendar.py
+++ b/addons/base_calendar/base_calendar.py
@@ -22,6 +22,7 @@
from datetime import datetime, timedelta, date
from dateutil import parser
from dateutil import rrule
+from dateutil.relativedelta import relativedelta
from osv import fields, osv
from service import web_services
from tools.translate import _
@@ -47,20 +48,22 @@ def get_recurrent_dates(rrulestring, exdate, startdate=None, exrule=None):
def todate(date):
val = parser.parse(''.join((re.compile('\d')).findall(date)))
return val
-
+
if not startdate:
startdate = datetime.now()
+
if not exdate:
exdate = []
+
rset1 = rrule.rrulestr(str(rrulestring), dtstart=startdate, forceset=True)
-
for date in exdate:
datetime_obj = todate(date)
rset1._exdate.append(datetime_obj)
+
if exrule:
rset1.exrule(rrule.rrulestr(str(exrule), dtstart=startdate))
- return list(rset1._iter())
+ return list(rset1)
def base_calendar_id2real_id(base_calendar_id=None, with_date=False):
"""
@@ -338,26 +341,26 @@ class calendar_attendee(osv.osv):
help="Status of the attendee's participation"),
'rsvp': fields.boolean('Required Reply?',
help="Indicats whether the favor of a reply is requested"),
- 'delegated_to': fields.function(_compute_data, method=True, \
+ 'delegated_to': fields.function(_compute_data, \
string='Delegated To', type="char", size=124, store=True, \
multi='delegated_to', help="The users that the original \
request was delegated to"),
- 'delegated_from': fields.function(_compute_data, method=True, string=\
+ 'delegated_from': fields.function(_compute_data, string=\
'Delegated From', type="char", store=True, size=124, multi='delegated_from'),
'parent_ids': fields.many2many('calendar.attendee', 'calendar_attendee_parent_rel', \
'attendee_id', 'parent_id', 'Delegrated From'),
'child_ids': fields.many2many('calendar.attendee', 'calendar_attendee_child_rel', \
'attendee_id', 'child_id', 'Delegrated To'),
- 'sent_by': fields.function(_compute_data, method=True, string='Sent By', \
+ 'sent_by': fields.function(_compute_data, string='Sent By', \
type="char", multi='sent_by', store=True, size=124, \
help="Specify the user that is acting on behalf of the calendar user"),
- 'sent_by_uid': fields.function(_compute_data, method=True, string='Sent By User', \
+ 'sent_by_uid': fields.function(_compute_data, string='Sent By User', \
type="many2one", relation="res.users", multi='sent_by_uid'),
- 'cn': fields.function(_compute_data, method=True, string='Common name', \
+ 'cn': fields.function(_compute_data, string='Common name', \
type="char", size=124, multi='cn', store=True),
'dir': fields.char('URI Reference', size=124, help="Reference to the URI\
that points to the directory information corresponding to the attendee."),
- 'language': fields.function(_compute_data, method=True, string='Language', \
+ 'language': fields.function(_compute_data, string='Language', \
type="selection", selection=_lang_get, multi='language', \
store=True, help="To specify the language for text values in a\
property or property parameter."),
@@ -366,14 +369,15 @@ property or property parameter."),
'partner_id': fields.related('partner_address_id', 'partner_id', type='many2one', \
relation='res.partner', string='Partner', help="Partner related to contact"),
'email': fields.char('Email', size=124, help="Email of Invited Person"),
- 'event_date': fields.function(_compute_data, method=True, string='Event Date', \
+ 'event_date': fields.function(_compute_data, string='Event Date', \
type="datetime", multi='event_date'),
- 'event_end_date': fields.function(_compute_data, method=True, \
+ 'event_end_date': fields.function(_compute_data, \
string='Event End Date', type="datetime", \
multi='event_end_date'),
'ref': fields.reference('Event Ref', selection=_links_get, size=128),
'availability': fields.selection([('free', 'Free'), ('busy', 'Busy')], 'Free/Busy', readonly="True"),
- }
+ }
+
_defaults = {
'state': 'needs-action',
'role': 'req-participant',
@@ -411,7 +415,7 @@ property or property parameter."),
cal = vobject.iCalendar()
event = cal.add('vevent')
if not event_obj.date_deadline or not event_obj.date:
- raise osv.except_osv(_('Warning !'),_("Couldn't Invite because date is not specified!"))
+ raise osv.except_osv(_('Warning !'),_("Couldn't Invite because date is not specified!"))
event.add('created').value = ics_datetime(time.strftime('%Y-%m-%d %H:%M:%S'))
event.add('dtstart').value = ics_datetime(event_obj.date)
event.add('dtend').value = ics_datetime(event_obj.date_deadline)
@@ -456,7 +460,7 @@ property or property parameter."),
trigger.value = delta
# Compute other details
valarm.add('DESCRIPTION').value = alarm_data['name'] or 'OpenERP'
-
+
for attendee in event_obj.attendee_ids:
attendee_add = event.add('attendee')
attendee_add.params['CUTYPE'] = [str(attendee.cutype)]
@@ -674,7 +678,7 @@ true, it will allow you to hide the event alarm information without removing it.
new_res_alarm = alarm_ids[0]
cr.execute('UPDATE %s ' % model_obj._table + \
' SET base_calendar_alarm_id=%s, alarm_id=%s ' \
- ' WHERE id=%s',
+ ' WHERE id=%s',
(cal_alarm.id, new_res_alarm, data.id))
self.do_alarm_unlink(cr, uid, [data.id], model)
@@ -806,7 +810,6 @@ class calendar_alarm(osv.osv):
@param use_new_cursor: False or the dbname
@param context: A standard dictionary for contextual values
"""
- return True # XXX FIXME REMOVE THIS AFTER FIXING get_recurrent_dates!!
if context is None:
context = {}
current_datetime = datetime.now()
@@ -914,22 +917,6 @@ class calendar_event(osv.osv):
def _tz_get(self, cr, uid, context=None):
return [(x.lower(), x) for x in pytz.all_timezones]
- def onchange_allday(self, cr, uid, ids, allday, context=None):
- """Sets duration as 24 Hours if event is selected for all day
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of calendar event’s IDs.
- @param allday: Value of allday boolean
- @param context: A standard dictionary for contextual values
- """
- if not allday or not ids:
- return {}
- value = {
- 'duration': 24
- }
- return {'value': value}
-
def onchange_dates(self, cr, uid, ids, start_date, duration=False, end_date=False, allday=False, context=None):
"""Returns duration and/or end date based on values passed
@param self: The object pointer
@@ -952,8 +939,13 @@ class calendar_event(osv.osv):
value['duration'] = duration
if allday: # For all day event
- value = {'duration': 24}
+ value = {'duration': 24.0}
duration = 24.0
+ if start_date:
+ start = datetime.strptime(start_date, "%Y-%m-%d %H:%M:%S")
+ start_date = datetime.strftime(datetime(start.year, start.month, start.day, 0,0,0), "%Y-%m-%d %H:%M:%S")
+ value['date'] = start_date
+
start = datetime.strptime(start_date, "%Y-%m-%d %H:%M:%S")
if end_date and not duration:
@@ -966,7 +958,7 @@ class calendar_event(osv.osv):
value['date_deadline'] = end.strftime("%Y-%m-%d %H:%M:%S")
elif end_date and duration and not allday:
# we have both, keep them synchronized:
- # set duration based on end_date (arbitrary decision: this avoid
+ # set duration based on end_date (arbitrary decision: this avoid
# getting dates like 06:31:48 instead of 06:32:00)
end = datetime.strptime(end_date, "%Y-%m-%d %H:%M:%S")
diff = end - start
@@ -982,88 +974,10 @@ class calendar_event(osv.osv):
"""
if context is None:
context = {}
- cr.execute('select id from '+self._table+' where recurrent_uid in %s', (tuple(ids),))
- r_ids = map(lambda x: x[0], cr.fetchall())
- self.unlink(cr, uid, r_ids, context=context)
- return True
-
- def _set_rrulestring(self, cr, uid, id, name, value, arg, context=None):
- """
- Sets values of fields that defines event recurrence from the value of rrule string
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param id: List of calendar event's ids.
- @param context: A standard dictionary for contextual values
- @return: dictionary of rrule value.
- """
- if context is None:
- context = {}
- cr.execute("UPDATE %s set freq='None',interval=0,count=0,end_date=Null,\
- mo=False,tu=False,we=False,th=False,fr=False,sa=False,su=False,\
- day=0,select1='date',month_list=Null ,byday=Null where id=%%s" % (self._table), (id,))
-
- if not value:
- cr.execute("UPDATE %s set rrule_type='none' where id=%%s" % self._table,(id,))
- return True
- val = {}
- for part in value.split(';'):
- if part.lower().__contains__('freq') and len(value.split(';')) <=2:
- rrule_type = part.lower()[5:]
- break
- else:
- rrule_type = 'custom'
- break
- ans = value.split(';')
- for i in ans:
- val[i.split('=')[0].lower()] = i.split('=')[1].lower()
- if not val.get('interval'):
- rrule_type = 'custom'
- elif int(val.get('interval')) > 1: #If interval is other than 1 rule is custom
- rrule_type = 'custom'
-
- qry = "UPDATE \"%s\" set rrule_type=%%s " % self._table
- qry_args = [ rrule_type, ]
- new_val = val.copy()
- for k, v in val.items():
- if val['freq'] == 'weekly' and val.get('byday'):
- for day in val['byday'].split(','):
- new_val[day] = True
- val.pop('byday')
-
- if val.get('until'):
- until = parser.parse(''.join((re.compile('\d')).findall(val.get('until'))))
- new_val['end_date'] = until.strftime('%Y-%m-%d')
- val.pop('until')
- new_val.pop('until')
-
- if val.get('bymonthday'):
- new_val['day'] = val.get('bymonthday')
- val.pop('bymonthday')
- new_val['select1'] = 'date'
- new_val.pop('bymonthday')
-
- if val.get('byday'):
- d = val.get('byday')
- if '-' in d:
- new_val['byday'] = d[:2]
- new_val['week_list'] = d[2:4].upper()
- else:
- new_val['byday'] = d[:1]
- new_val['week_list'] = d[1:3].upper()
- new_val['select1'] = 'day'
-
- if val.get('bymonth'):
- new_val['month_list'] = val.get('bymonth')
- val.pop('bymonth')
- new_val.pop('bymonth')
-
- for k, v in new_val.items():
- qry += ", %s=%%s" % k
- qry_args.append(v)
-
- qry = qry + " where id=%s"
- qry_args.append(id)
- cr.execute(qry, qry_args)
+ for event_id in ids:
+ cr.execute("select id from %s where recurrent_uid=%%s" % (self._table), (event_id,))
+ r_ids = map(lambda x: x[0], cr.fetchall())
+ self.unlink(cr, uid, r_ids, context=context)
return True
def _get_rulestring(self, cr, uid, ids, name, arg, context=None):
@@ -1075,28 +989,15 @@ class calendar_event(osv.osv):
@param context: A standard dictionary for contextual values
@return: dictionary of rrule value.
"""
+
result = {}
- for datas in self.read(cr, uid, ids, context=context):
+ for datas in self.read(cr, uid, ids, ['id','byday','recurrency', 'month_list','end_date', 'rrule_type', 'select1', 'interval', 'count', 'end_type', 'mo', 'tu', 'we', 'th', 'fr', 'sa', 'su', 'exrule', 'day', 'week_list' ], context=context):
event = datas['id']
- if datas.get('rrule_type'):
- if datas.get('rrule_type') == 'none':
- result[event] = False
- cr.execute("UPDATE %s set exrule=Null where id=%%s" % self._table,( event,))
- if datas.get('rrule_type') :
- if datas.get('interval', 0) < 0:
- raise osv.except_osv(_('Warning!'), _('Interval can not be Negative'))
- if datas.get('count', 0) < 0:
- raise osv.except_osv(_('Warning!'), _('Count can not be Negative'))
- rrule_custom = self.compute_rule_string(cr, uid, datas, \
- context=context)
- result[event] = rrule_custom
- else:
- result[event] = self.compute_rule_string(cr, uid, {'freq': datas.get('rrule_type').upper(), 'interval': 1}, context=context)
-
- for id, myrule in result.items():
- #Remove the events generated from recurrent event
- if not myrule:
- self.unlink_events(cr, uid, [id], context=context)
+ if datas.get('interval', 0) < 0:
+ raise osv.except_osv(_('Warning!'), _('Interval can not be Negative'))
+ if datas.get('count', 0) < 0:
+ raise osv.except_osv(_('Warning!'), _('Count can not be Negative'))
+ result[event] = self.compute_rule_string(datas)
return result
_columns = {
@@ -1121,15 +1022,11 @@ class calendar_event(osv.osv):
defines the list of date/time exceptions for a recurring calendar component."),
'exrule': fields.char('Exception Rule', size=352, help="Defines a \
rule or repeating pattern of time to exclude from the recurring rule."),
- 'rrule': fields.function(_get_rulestring, type='char', size=124, method=True, \
- string='Recurrent Rule', store=True, \
- fnct_inv=_set_rrulestring, help='Defines a\
- rule or repeating pattern for recurring events\n\
-e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
- FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU'),
+ 'rrule': fields.function(_get_rulestring, type='char', size=124, \
+ store=True, string='Recurrent Rule'),
'rrule_type': fields.selection([('none', ''), ('daily', 'Daily'), \
('weekly', 'Weekly'), ('monthly', 'Monthly'), \
- ('yearly', 'Yearly'),],
+ ('yearly', 'Yearly'),],
'Recurrency', states={'done': [('readonly', True)]},
help="Let the event automatically repeat at that interval"),
'alarm_id': fields.many2one('res.alarm', 'Alarm', states={'done': [('readonly', True)]},
@@ -1141,14 +1038,7 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
'user_id': fields.many2one('res.users', 'Responsible', states={'done': [('readonly', True)]}),
'organizer': fields.char("Organizer", size=256, states={'done': [('readonly', True)]}), # Map with Organizer Attribure of VEvent.
'organizer_id': fields.many2one('res.users', 'Organizer', states={'done': [('readonly', True)]}),
- 'freq': fields.selection([('None', 'No Repeat'),
- ('hourly', 'Hours'),
- ('daily', 'Days'),
- ('weekly', 'Weeks'),
- ('monthly', 'Months'),
- ('yearly', 'Years'), ], 'Frequency'),
-
- 'end_type' : fields.selection([('forever', 'Forever'), ('count', 'Fix amout of times'), ('end_date','End date')], 'Way to end reccurency'),
+ 'end_type' : fields.selection([('count', 'Fix amout of times'), ('end_date','End date')], 'Way to end reccurency'),
'interval': fields.integer('Repeat every', help="Repeat every (Days/Week/Month/Year)"),
'count': fields.integer('Repeat', help="Repeat x times"),
'mo': fields.boolean('Mon'),
@@ -1158,7 +1048,7 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
'fr': fields.boolean('Fri'),
'sa': fields.boolean('Sat'),
'su': fields.boolean('Sun'),
- 'select1': fields.selection([('date', 'Date of month'),
+ 'select1': fields.selection([('date', 'Date of month'),
('day', 'Day of month')], 'Option'),
'day': fields.integer('Date of month'),
'week_list': fields.selection([('MO', 'Monday'), ('TU', 'Tuesday'), \
@@ -1175,8 +1065,8 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
'allday': fields.boolean('All Day', states={'done': [('readonly', True)]}),
'active': fields.boolean('Active', help="If the active field is set to \
true, it will allow you to hide the event alarm information without removing it."),
- 'recurrency': fields.boolean('Recurrent', help="Recurrent Meeting"),
- 'edit_all': fields.boolean('Edit All', help="Edit all Occurrences of recurrent Meeting."),
+ 'recurrency': fields.boolean('Recurrent', help="Recurrent Meeting"),
+ 'edit_all': fields.boolean('Edit All', help="Edit all Occurrences of recurrent Meeting."),
}
def default_organizer(self, cr, uid, context=None):
user_pool = self.pool.get('res.users')
@@ -1187,11 +1077,12 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
return res
_defaults = {
- 'end_type' : 'forever',
+ 'end_type' : 'count',
+ 'count' : 1,
+ 'rrule_type' : 'none',
'state': 'tentative',
'class': 'public',
'show_as': 'busy',
- 'freq': 'None',
'select1': 'date',
'interval': 1,
'active': 1,
@@ -1200,43 +1091,7 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
'edit_all' : False,
}
- def onchange_edit_all(self, cr, uid, ids, rrule_type,edit_all, context=None):
- if not context:
- context = {}
-
- value = {}
- if edit_all and rrule_type:
- for id in ids:
- base_calendar_id2real_id(id)
- return value
-
- def modify_all(self, cr, uid, event_ids, defaults, context=None, *args):
- """
- Modifies the recurring event
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param event_ids: List of crm meeting’s IDs.
- @param context: A standard dictionary for contextual values
- @return: True
- """
- for event_id in event_ids:
- event_id = base_calendar_id2real_id(event_id)
-
- defaults.pop('id')
- defaults.update({'table': self._table})
-
- qry = "UPDATE %(table)s set name = '%(name)s', \
- date = '%(date)s', date_deadline = '%(date_deadline)s'"
- if defaults.get('alarm_id'):
- qry += ", alarm_id = %(alarm_id)s"
- if defaults.get('location'):
- qry += ", location = '%(location)s'"
- qry += "WHERE id = %s" % (event_id)
- cr.execute(qry, defaults)
-
- return True
-
- def get_recurrent_ids(self, cr, uid, select, base_start_date, base_until_date, limit=100):
+ def get_recurrent_ids(self, cr, uid, select, base_start_date, base_until_date, limit=100, context=None):
"""Gives virtual event ids for recurring events based on value of Recurrence Rule
This method gives ids of dates that comes between start date and end date of calendar views
@param self: The object pointer
@@ -1245,46 +1100,32 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
@param base_start_date: Get Start Date
@param base_until_date: Get End Date
@param limit: The Number of Results to Return """
+ if not context:
+ context = {}
+
+ virtual_id = context and context.get('virtual_id', False) or False
- if not limit:
- limit = 100
if isinstance(select, (str, int, long)):
ids = [select]
else:
ids = select
result = []
- recur_dict = []
- if ids and (base_start_date or base_until_date):
- cr.execute("select m.id, m.rrule, m.date, m.date_deadline, m.duration, \
- m.exdate, m.exrule, m.recurrent_id, m.recurrent_uid from " + self._table + \
- " m where m.id = ANY(%s)", (ids,) )
-
- count = 0
- for data in cr.dictfetchall():
+ if ids and virtual_id:
+ for data in super(calendar_event, self).read(cr, uid, ids, context=context):
start_date = base_start_date and datetime.strptime(base_start_date[:10]+ ' 00:00:00' , "%Y-%m-%d %H:%M:%S") or False
until_date = base_until_date and datetime.strptime(base_until_date[:10]+ ' 23:59:59', "%Y-%m-%d %H:%M:%S") or False
- if count > limit:
- break
event_date = datetime.strptime(data['date'], "%Y-%m-%d %H:%M:%S")
# To check: If the start date is replace by event date .. the event date will be changed by that of calendar code
- start_date = event_date
+
if not data['rrule']:
if start_date and (event_date < start_date):
continue
if until_date and (event_date > until_date):
continue
- idval = real_id2base_calendar_id(data['id'], data['date'])
- if not data['recurrent_id']:
- result.append(idval)
- count += 1
- else:
- ex_id = real_id2base_calendar_id(data['recurrent_uid'], data['recurrent_id'])
- ls = base_calendar_id2real_id(ex_id, with_date=data and data.get('duration', 0) or 0)
- if not isinstance(ls, (str, int, long)) and len(ls) >= 2:
- if ls[1] == data['recurrent_id']:
- result.append(idval)
- recur_dict.append(ex_id)
+ idval = data['id']
+ result.append(idval)
else:
+ start_date = event_date
exdate = data['exdate'] and data['exdate'].split(',') or []
rrule_str = data['rrule']
new_rrule_str = []
@@ -1300,6 +1141,8 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
until_date = rrule_until_date
if until_date:
value = until_date.strftime("%Y%m%d%H%M%S")
+ else:
+ value = value.strftime("%Y%m%d%H%M%S")
new_rule = '%s=%s' % (name, value)
new_rrule_str.append(new_rule)
if not is_until and until_date:
@@ -1309,6 +1152,7 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
new_rrule_str.append(new_rule)
new_rrule_str = ';'.join(new_rrule_str)
rdates = get_recurrent_dates(str(new_rrule_str), exdate, start_date, data['exrule'])
+
for r_date in rdates:
if start_date and r_date < start_date:
continue
@@ -1316,77 +1160,75 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
continue
idval = real_id2base_calendar_id(data['id'], r_date.strftime("%Y-%m-%d %H:%M:%S"))
result.append(idval)
- count += 1
+
if result:
- ids = list(set(result)-set(recur_dict))
+ ids = list(set(result))
if isinstance(select, (str, int, long)):
return ids and ids[0] or False
return ids
- def compute_rule_string(self, cr, uid, datas, context=None, *args):
+ def compute_rule_string(self, datas):
"""
Compute rule string according to value type RECUR of iCalendar from the values given.
@param self: the object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
@param datas: dictionary of freq and interval value.
- @param context: A standard dictionary for contextual values
- @return: String value of the format RECUR of iCalendar
"""
-
- weekdays = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su']
- weekstring = ''
- monthstring = ''
- yearstring = ''
- freq=datas.get('rrule_type')
- if freq == 'none':
+
+ def get_week_string(freq, datas):
+ weekdays = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su']
+ if freq == 'weekly':
+ byday = map(lambda x: x.upper(), filter(lambda x: datas.get(x) and x in weekdays, datas))
+ if byday:
+ return ';BYDAY=' + ','.join(byday)
+ return ''
+
+ def get_month_string(freq, datas):
+ if freq == 'monthly':
+ if datas.get('select1')=='date' and (datas.get('day') < 1 or datas.get('day') > 31):
+ raise osv.except_osv(_('Error!'), ("Please select proper Day of month"))
+
+ if datas.get('select1')=='day':
+ return ';BYDAY=' + datas.get('byday') + datas.get('week_list')
+ elif datas.get('select1')=='date':
+ return ';BYMONTHDAY=' + str(datas.get('day'))
return ''
+
+ def get_end_date(datas):
+ if datas.get('end_date'):
+ datas['end_date_new'] = ''.join((re.compile('\d')).findall(datas.get('end_date'))) + 'T235959Z'
- interval_srting = datas.get('interval') and (';INTERVAL=' + str(datas.get('interval'))) or ''
-
- if freq == 'weekly':
- byday = map(lambda x: x.upper(), filter(lambda x: datas.get(x) and x in weekdays, datas))
- if byday:
- weekstring = ';BYDAY=' + ','.join(byday)
-
- elif freq == 'monthly':
- if datas.get('select1')=='date' and (datas.get('day') < 1 or datas.get('day') > 31):
- raise osv.except_osv(_('Error!'), ("Please select proper Day of month"))
- if datas.get('select1')=='day':
- monthstring = ';BYDAY=' + datas.get('byday') + datas.get('week_list')
- elif datas.get('select1')=='date':
- monthstring = ';BYMONTHDAY=' + str(datas.get('day'))
-
+ return (datas.get('end_type') == 'count' and (';COUNT=' + str(datas.get('count'))) or '') +\
+ ((datas.get('end_date_new') and datas.get('end_type') == 'end_date' and (';UNTIL=' + datas.get('end_date_new'))) or '')
- if datas.get('end_date'):
- datas['end_date'] = ''.join((re.compile('\d')).findall(datas.get('end_date'))) + 'T235959Z'
- enddate = (datas.get('count') and (';COUNT=' + str(datas.get('count'))) or '') +\
- ((datas.get('end_date') and (';UNTIL=' + datas.get('end_date'))) or '')
+ freq=datas.get('rrule_type')
+ if freq == 'none':
+ return ''
+ interval_srting = datas.get('interval') and (';INTERVAL=' + str(datas.get('interval'))) or ''
+ return 'FREQ=' + freq.upper() + get_week_string(freq, datas) + interval_srting + get_end_date(datas) + get_month_string(freq, datas)
- rrule_string = 'FREQ=' + freq.upper() + weekstring + interval_srting \
- + enddate + monthstring + yearstring
- return rrule_string
-
- def search(self, cr, uid, args, offset=0, limit=100, order=None,
+ def remove_virtual_id(self, ids):
+ if isinstance(ids, (str, int)):
+ return base_calendar_id2real_id(ids)
+
+ if isinstance(ids, (list, tuple)):
+ res = []
+ for id in ids:
+ res.append(base_calendar_id2real_id(id))
+ return res
+
+ def search(self, cr, uid, args, offset=0, limit=0, order=None,
context=None, count=False):
- """
- Overrides orm search method.
- @param cr: the current row, from the database cursor,
- @param user: the current user’s ID for security checks,
- @param args: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...].
- @param offset: The Number of Results to Pass
- @param limit: The Number of Results to Return
- @param context: A standard dictionary for contextual values
- @param count: If its True the method returns number of records instead of ids
- @return: List of id
- """
args_without_date = []
start_date = False
until_date = False
for arg in args:
- if arg[0] not in ('date', unicode('date'), 'date_deadline', unicode('date_deadline')):
+ if arg[0] == "id":
+ new_id = self.remove_virtual_id(arg[2])
+ new_arg = (arg[0], arg[1], new_id)
+ args_without_date.append(new_arg)
+ elif arg[0] not in ('date', unicode('date'), 'date_deadline', unicode('date_deadline')):
args_without_date.append(arg)
else:
if arg[1] in ('>', '>='):
@@ -1397,12 +1239,17 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
if until_date:
continue
until_date = arg[2]
+
res = super(calendar_event, self).search(cr, uid, args_without_date, \
- offset, limit, order, context, count)
+ 0, 0, order, context, count=False)
+ res = self.get_recurrent_ids(cr, uid, res, start_date, until_date, limit, context=context)
+ if count:
+ return len(res)
+ elif limit:
+ return res[offset:offset+limit]
+ else:
+ return res
- res = self.get_recurrent_ids(cr, uid, res, start_date, until_date, limit)
- return res
-
def get_edit_all(self, cr, uid, id, vals=None):
"""
@@ -1413,22 +1260,25 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
if(vals and 'edit_all' in vals): #we jsut check edit_all
return vals['edit_all']
else: #it's a recurrent event and edit_all is already check
- return meeting['recurrency'] and meeting['edit_all']
+ return meeting['recurrency'] and meeting['edit_all']
+ def _get_data(self, cr, uid, id, context=None):
+ res = self.read(cr, uid, [id],['date', 'date_deadline'])
+ return res[0]
-
-
+ def need_to_update(self, event_id, vals):
+ split_id = str(event_id).split("-")
+ if len(split_id) < 2:
+ return False
+ else:
+ date_start = vals.get('date', '')
+ try:
+ date_start = datetime.strptime(date_start, '%Y-%m-%d %H:%M:%S').strftime("%Y%m%d%H%M%S")
+ return date_start == split_id[1]
+ except Exception:
+ return True
+
def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True):
- """
- Overrides orm write method.
- @param self: the object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of crm meeting's ids
- @param vals: Dictionary of field value.
- @param context: A standard dictionary for contextual values
- @return: True
- """
if context is None:
context = {}
if isinstance(ids, (str, int, long)):
@@ -1440,12 +1290,15 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
for event_id in select:
real_event_id = base_calendar_id2real_id(event_id)
-
- if(self.get_edit_all(cr, uid, event_id, vals=vals)):
+ edit_all = self.get_edit_all(cr, uid, event_id, vals=vals)
+ if edit_all:
+ if self.need_to_update(event_id, vals):
+ res = self._get_data(cr, uid, real_event_id, context=context)
+ vals.update(res)
event_id = real_event_id
-
-
- if len(str(event_id).split('-')) > 1:
+
+ #if edit one instance of a reccurrent id
+ if len(str(event_id).split('-')) > 1 and not edit_all:
data = self.read(cr, uid, event_id, ['date', 'date_deadline', \
'rrule', 'duration', 'exdate'])
if data.get('rrule'):
@@ -1458,15 +1311,15 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
'edit_all': False,
'recurrency' : False,
})
-
+
new_id = self.copy(cr, uid, real_event_id, default=data, context=context)
-
+
date_new = event_id.split('-')[1]
date_new = time.strftime("%Y%m%dT%H%M%S", \
time.strptime(date_new, "%Y%m%d%H%M%S"))
exdate = (data['exdate'] and (data['exdate'] + ',') or '') + date_new
res = self.write(cr, uid, [real_event_id], {'exdate': exdate})
-
+
context.update({'active_id': new_id, 'active_ids': [new_id]})
continue
if not real_event_id in new_ids:
@@ -1482,10 +1335,6 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
vals.get('allday', False),
context=context)
vals.update(updated_vals.get('value', {}))
-
- if not 'edit_all' in vals:
- vals['edit_all'] = False
-
if new_ids:
res = super(calendar_event, self).write(cr, uid, new_ids, vals, context=context)
@@ -1494,18 +1343,9 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
# change alarm details
alarm_obj = self.pool.get('res.alarm')
alarm_obj.do_alarm_create(cr, uid, new_ids, self._name, 'date', context=context)
- return res
+ return res or True and False
def browse(self, cr, uid, ids, context=None, list_class=None, fields_process=None):
- """
- Overrides orm browse method.
- @param self: the object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of crm meeting's ids
- @param context: A standard dictionary for contextual values
- @return: the object list.
- """
if isinstance(ids, (str, int, long)):
select = [ids]
else:
@@ -1518,19 +1358,29 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
return res
+ def read_group(self, cr, uid, domain, fields, groupby, offset=0, limit=None, context=None, orderby=False):
+ if not context:
+ context = {}
+
+ if 'date' in groupby:
+ raise osv.except_osv(_('Warning !'), _('Group by date not supported, use the calendar view instead'))
+ virtual_id = context.get('virtual_id', False)
+ context.update({'virtual_id': False})
+ res = super(calendar_event, self).read_group(cr, uid, domain, fields, groupby, offset=offset, limit=limit, context=context, orderby=orderby)
+ for re in res:
+ #remove the count, since the value is not consistent with the result of the search when expand the group
+ for groupname in groupby:
+ if re.get(groupname + "_count"):
+ del re[groupname + "_count"]
+ re.get('__context').update({'virtual_id' : virtual_id})
+ return res
+
def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'):
- """
- Overrides orm Read method.Read List of fields for calendar event.
- @param cr: the current row, from the database cursor,
- @param user: the current user’s ID for security checks,
- @param ids: List of calendar event's id.
- @param fields: List of fields.
- @param context: A standard dictionary for contextual values
- @return: List of Dictionary of form [{‘name_of_the_field’: value, ...}, ...]
- """
# FIXME This whole id mangling has to go!
if context is None:
context = {}
+
+
if isinstance(ids, (str, int, long)):
select = [ids]
@@ -1544,9 +1394,10 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
fields.append('duration')
- for base_calendar_id, real_id in select:
+ for base_calendar_id, real_id in select:
#REVET: Revision ID: olt@tinyerp.com-20100924131709-cqsd1ut234ni6txn
res = super(calendar_event, self).read(cr, uid, real_id, fields=fields, context=context, load=load)
+
if not res :
continue
ls = base_calendar_id2real_id(base_calendar_id, with_date=res and res.get('duration', 0) or 0)
@@ -1558,41 +1409,34 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
result.append(res)
if isinstance(ids, (str, int, long)):
return result and result[0] or False
+
return result
def copy(self, cr, uid, id, default=None, context=None):
- """
- Duplicate record on specified id.
- @param self: the object pointer.
- @param cr: the current row, from the database cursor,
- @param id: id of record from which we duplicated.
- @param context: A standard dictionary for contextual values
- @return: Duplicate record id.
- """
if context is None:
context = {}
+
res = super(calendar_event, self).copy(cr, uid, base_calendar_id2real_id(id), default, context)
alarm_obj = self.pool.get('res.alarm')
alarm_obj.do_alarm_create(cr, uid, [res], self._name, 'date', context=context)
-
return res
-
+
+
def unlink(self, cr, uid, ids, context=None):
- """
- Deletes records specified in ids.
- @param self: the object pointer.
- @param cr: the current row, from the database cursor,
- @param id: List of calendar event's id.
- @param context: A standard dictionary for contextual values
- @return: True
- """
- res = False
- for event_datas in self.read(cr, uid, ids, ['date', 'rrule', 'exdate'], context=context):
- event_id = event_datas['id']
+ if not isinstance(ids, list):
+ ids = [ids]
+ res = False
+ for id in ids:
+ data_list = self.read(cr, uid, [id], ['date', 'rrule', 'exdate'], context=context)
+ if len(data_list) < 1:
+ continue
+ event_data = data_list[0]
+ event_id = event_data['id']
+
if self.get_edit_all(cr, uid, event_id, vals=None):
event_id = base_calendar_id2real_id(event_id)
-
+
if isinstance(event_id, (int, long)):
res = super(calendar_event, self).unlink(cr, uid, event_id, context=context)
self.pool.get('res.alarm').do_alarm_unlink(cr, uid, [event_id], self._name)
@@ -1600,11 +1444,11 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
else:
str_event, date_new = event_id.split('-')
event_id = int(str_event)
- if event_datas['rrule']:
+ if event_data['rrule']:
# Remove one of the recurrent event
date_new = time.strftime("%Y%m%dT%H%M%S", \
time.strptime(date_new, "%Y%m%d%H%M%S"))
- exdate = (event_datas['exdate'] and (event_datas['exdate'] + ',') or '') + date_new
+ exdate = (event_data['exdate'] and (event_data['exdate'] + ',') or '') + date_new
res = self.write(cr, uid, [event_id], {'exdate': exdate})
else:
res = super(calendar_event, self).unlink(cr, uid, [event_id], context=context)
@@ -1613,15 +1457,6 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
return res
def create(self, cr, uid, vals, context=None):
- """
- Create new record.
- @param self: the object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param vals: dictionary of every field value.
- @param context: A standard dictionary for contextual values
- @return: new created record id.
- """
if context is None:
context = {}
@@ -1635,11 +1470,13 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\
vals.get('allday', False),
context=context)
vals.update(updated_vals.get('value', {}))
-
res = super(calendar_event, self).create(cr, uid, vals, context)
alarm_obj = self.pool.get('res.alarm')
alarm_obj.do_alarm_create(cr, uid, [res], self._name, 'date', context=context)
+
return res
+
+
def do_tentative(self, cr, uid, ids, context=None, *args):
""" Makes event invitation as Tentative
@@ -1710,12 +1547,12 @@ class calendar_todo(osv.osv):
@param args: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...].
@param context: A standard dictionary for contextual values
"""
-
+
assert name == 'date'
return self.write(cr, uid, id, { 'date_start': value }, context=context)
_columns = {
- 'date': fields.function(_get_date, method=True, fnct_inv=_set_date, \
+ 'date': fields.function(_get_date, fnct_inv=_set_date, \
string='Duration', store=True, type='datetime'),
'duration': fields.integer('Duration'),
}
@@ -1742,9 +1579,9 @@ class ir_attachment(osv.osv):
for arg in args:
args1.append(map(lambda x:str(x).split('-')[0], arg))
return super(ir_attachment, self).search_count(cr, user, args1, context)
-
-
-
+
+
+
def create(self, cr, uid, vals, context=None):
if context:
id = context.get('default_res_id', False)
@@ -1913,7 +1750,7 @@ class res_users(osv.osv):
_columns = {
'availability': fields.function(_get_user_avail_fun, type='selection', \
selection=[('free', 'Free'), ('busy', 'Busy')], \
- string='Free/Busy', method=True),
+ string='Free/Busy'),
}
res_users()
diff --git a/addons/base_calendar/base_calendar_view.xml b/addons/base_calendar/base_calendar_view.xml
index d5525e48e74..451152b2b58 100644
--- a/addons/base_calendar/base_calendar_view.xml
+++ b/addons/base_calendar/base_calendar_view.xml
@@ -242,8 +242,7 @@
widget="selection" />
-
+
diff --git a/addons/base_calendar/i18n/tr.po b/addons/base_calendar/i18n/tr.po
index 2237e4ba73f..ba228085c56 100644
--- a/addons/base_calendar/i18n/tr.po
+++ b/addons/base_calendar/i18n/tr.po
@@ -8,20 +8,20 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2011-04-23 18:46+0000\n"
+"PO-Revision-Date: 2011-06-23 19:26+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: 2011-04-29 05:50+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-06-24 05:00+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: base_calendar
#: selection:calendar.alarm,trigger_related:0
#: selection:res.alarm,trigger_related:0
msgid "The event starts"
-msgstr "Olay Başlar"
+msgstr "Etkinlik Başlar"
#. module: base_calendar
#: selection:base.calendar.set.exrule,freq:0
@@ -31,7 +31,7 @@ msgstr "Saatlik"
#. module: base_calendar
#: view:calendar.attendee:0
msgid "Required to Join"
-msgstr "Katılmak gerekir"
+msgstr "Katılım Gerekir"
#. module: base_calendar
#: help:calendar.event,exdate:0
@@ -46,19 +46,19 @@ msgstr ""
#. module: base_calendar
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
-msgstr ""
+msgstr "Seçilen firma bu kullanıcı için izin verilen şirketler arasında yok"
#. module: base_calendar
#: field:calendar.event.edit.all,name:0
msgid "Title"
-msgstr "Başlık"
+msgstr "Unvan"
#. module: base_calendar
#: selection:base.calendar.set.exrule,freq:0
#: selection:calendar.event,rrule_type:0
#: selection:calendar.todo,rrule_type:0
msgid "Monthly"
-msgstr ""
+msgstr "Aylık"
#. module: base_calendar
#: view:calendar.attendee:0
@@ -68,7 +68,7 @@ msgstr "Davetli Kullanıcı"
#. module: base_calendar
#: view:calendar.attendee:0
msgid "Invitation"
-msgstr ""
+msgstr "Davet"
#. module: base_calendar
#: help:calendar.event,recurrency:0
@@ -80,20 +80,20 @@ msgstr "Yinelenen Toplantı"
#: model:ir.actions.act_window,name:base_calendar.action_res_alarm_view
#: model:ir.ui.menu,name:base_calendar.menu_crm_meeting_avail_alarm
msgid "Alarms"
-msgstr ""
+msgstr "Alarmlar"
#. module: base_calendar
#: selection:base.calendar.set.exrule,week_list:0
#: selection:calendar.event,week_list:0
#: selection:calendar.todo,week_list:0
msgid "Sunday"
-msgstr ""
+msgstr "Pazar"
#. module: base_calendar
#: view:calendar.attendee:0
#: field:calendar.attendee,role:0
msgid "Role"
-msgstr ""
+msgstr "Rol"
#. module: base_calendar
#: view:calendar.attendee:0
@@ -106,13 +106,13 @@ msgstr "Davet Detayları"
#: selection:calendar.event,byday:0
#: selection:calendar.todo,byday:0
msgid "Fourth"
-msgstr ""
+msgstr "Dördüncü"
#. module: base_calendar
#: field:calendar.event,show_as:0
#: field:calendar.todo,show_as:0
msgid "Show as"
-msgstr "Farklı Göster"
+msgstr "Göster"
#. module: base_calendar
#: field:base.calendar.set.exrule,day:0
@@ -122,13 +122,13 @@ msgstr "Farklı Göster"
#: field:calendar.todo,day:0
#: selection:calendar.todo,select1:0
msgid "Date of month"
-msgstr ""
+msgstr "Ayın Günü"
#. module: base_calendar
#: selection:calendar.event,class:0
#: selection:calendar.todo,class:0
msgid "Public"
-msgstr "Herkese açık"
+msgstr "Genel"
#. module: base_calendar
#: view:calendar.event:0
@@ -140,33 +140,34 @@ msgstr " "
#: selection:calendar.event,month_list:0
#: selection:calendar.todo,month_list:0
msgid "March"
-msgstr ""
+msgstr "Mart"
#. module: base_calendar
+#: code:addons/base_calendar/base_calendar.py:414
#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:90
#, python-format
msgid "Warning !"
-msgstr ""
+msgstr "Uyarı !"
#. module: base_calendar
#: selection:base.calendar.set.exrule,week_list:0
#: selection:calendar.event,week_list:0
#: selection:calendar.todo,week_list:0
msgid "Friday"
-msgstr ""
+msgstr "Cuma"
#. module: base_calendar
#: field:calendar.event,allday:0
#: field:calendar.todo,allday:0
msgid "All Day"
-msgstr ""
+msgstr "Tüm Gün"
#. module: base_calendar
#: field:base.calendar.set.exrule,select1:0
#: field:calendar.event,select1:0
#: field:calendar.todo,select1:0
msgid "Option"
-msgstr ""
+msgstr "Seçenek"
#. module: base_calendar
#: selection:calendar.attendee,availability:0
@@ -174,76 +175,76 @@ msgstr ""
#: selection:calendar.todo,show_as:0
#: selection:res.users,availability:0
msgid "Free"
-msgstr ""
+msgstr "Serbest"
#. module: base_calendar
#: help:calendar.attendee,rsvp:0
msgid "Indicats whether the favor of a reply is requested"
-msgstr ""
+msgstr "Bir yanıtın onaylanmasının gerekip gerekmediğini belirtir."
#. module: base_calendar
#: model:ir.model,name:base_calendar.model_ir_attachment
msgid "ir.attachment"
-msgstr ""
+msgstr "ir.ek"
#. module: base_calendar
#: help:calendar.attendee,delegated_to:0
msgid "The users that the original request was delegated to"
-msgstr ""
+msgstr "Kullanıcıların yetkilendirildiği asıl istek"
#. module: base_calendar
#: field:calendar.attendee,ref:0
msgid "Event Ref"
-msgstr ""
+msgstr "Etkinlik Ref"
#. module: base_calendar
#: field:base.calendar.set.exrule,we:0
#: field:calendar.event,we:0
#: field:calendar.todo,we:0
msgid "Wed"
-msgstr ""
+msgstr "Çar"
#. module: base_calendar
#: view:calendar.event:0
msgid "Show time as"
-msgstr ""
+msgstr "Saati şöyle göster"
#. module: base_calendar
#: field:base.calendar.set.exrule,tu:0
#: field:calendar.event,tu:0
#: field:calendar.todo,tu:0
msgid "Tue"
-msgstr ""
+msgstr "Sa"
#. module: base_calendar
#: selection:base.calendar.set.exrule,freq:0
#: selection:calendar.event,rrule_type:0
#: selection:calendar.todo,rrule_type:0
msgid "Yearly"
-msgstr ""
+msgstr "Yıllık"
#. module: base_calendar
#: selection:calendar.alarm,trigger_related:0
#: selection:res.alarm,trigger_related:0
msgid "The event ends"
-msgstr ""
+msgstr "Etkinlik biter"
#. module: base_calendar
#: selection:base.calendar.set.exrule,byday:0
#: selection:calendar.event,byday:0
#: selection:calendar.todo,byday:0
msgid "Last"
-msgstr ""
+msgstr "Sonuncu"
#. module: base_calendar
#: help:calendar.attendee,state:0
msgid "Status of the attendee's participation"
-msgstr ""
+msgstr "Katılımcının iştirak durumu"
#. module: base_calendar
#: selection:calendar.attendee,cutype:0
msgid "Room"
-msgstr ""
+msgstr "Oda"
#. module: base_calendar
#: selection:calendar.alarm,trigger_interval:0
@@ -251,83 +252,83 @@ msgstr ""
#: selection:calendar.todo,freq:0
#: selection:res.alarm,trigger_interval:0
msgid "Days"
-msgstr ""
+msgstr "Günler"
#. module: base_calendar
#: view:calendar.attendee:0
#: view:calendar.event:0
msgid "Invitation Detail"
-msgstr ""
+msgstr "Davet Ayrıntısı"
#. module: base_calendar
-#: code:addons/base_calendar/base_calendar.py:1356
+#: code:addons/base_calendar/base_calendar.py:1355
#: code:addons/base_calendar/wizard/base_calendar_invite_attendee.py:96
#: code:addons/base_calendar/wizard/base_calendar_invite_attendee.py:143
#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:128
#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:136
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "Hata!"
#. module: base_calendar
#: selection:calendar.attendee,role:0
msgid "Chair Person"
-msgstr ""
+msgstr "Başkan"
#. module: base_calendar
#: selection:calendar.alarm,action:0
msgid "Procedure"
-msgstr ""
+msgstr "Yöntem"
#. module: base_calendar
#: selection:calendar.event,state:0
#: selection:calendar.todo,state:0
msgid "Cancelled"
-msgstr ""
+msgstr "Vazgeçildi"
#. module: base_calendar
#: selection:calendar.alarm,trigger_interval:0
#: selection:res.alarm,trigger_interval:0
msgid "Minutes"
-msgstr ""
+msgstr "Dakikalar"
#. module: base_calendar
#: selection:calendar.alarm,action:0
msgid "Display"
-msgstr ""
+msgstr "Göster"
#. module: base_calendar
#: view:calendar.event.edit.all:0
msgid "Edit all Occurrences"
-msgstr ""
+msgstr "Bütün olayları düzenle"
#. module: base_calendar
#: view:calendar.attendee:0
msgid "Invitation type"
-msgstr ""
+msgstr "Davet türü"
#. module: base_calendar
#: selection:base.calendar.set.exrule,freq:0
msgid "Secondly"
-msgstr ""
+msgstr "İkinci olarak"
#. module: base_calendar
#: field:calendar.alarm,event_date:0
#: field:calendar.attendee,event_date:0
#: view:calendar.event:0
msgid "Event Date"
-msgstr ""
+msgstr "Etkinlik Tarihi"
#. module: base_calendar
#: view:calendar.attendee:0
#: view:calendar.event:0
msgid "Group By..."
-msgstr ""
+msgstr "Gruplandır..."
#. module: base_calendar
#: help:base_calendar.invite.attendee,email:0
msgid "Provide external email address who will receive this invitation."
-msgstr ""
+msgstr "Bu daveti alacak olanın dış eposta adresini verin."
#. module: base_calendar
#: model:ir.module.module,description:base_calendar.module_meta_information
@@ -338,42 +339,47 @@ msgid ""
" - Recurring events\n"
" - Invitations to people"
msgstr ""
+"Çok özellikli takvim sistemi şunları destekler:\n"
+" - Takvim etkinlikleri\n"
+" - Uyarılar (istekler oluşturun)\n"
+" - Yinelenen etkinlikler\n"
+" - Kişilerin davet edilmesi"
#. module: base_calendar
#: help:calendar.attendee,cutype:0
msgid "Specify the type of Invitation"
-msgstr ""
+msgstr "Davet türünü belirle"
#. module: base_calendar
#: selection:calendar.event,freq:0
#: selection:calendar.todo,freq:0
msgid "Years"
-msgstr ""
+msgstr "Yıl"
#. module: base_calendar
#: field:calendar.alarm,event_end_date:0
#: field:calendar.attendee,event_end_date:0
msgid "Event End Date"
-msgstr ""
+msgstr "Etkinlik Bitiş Tarihi"
#. module: base_calendar
#: selection:calendar.attendee,role:0
msgid "Optional Participation"
-msgstr ""
+msgstr "Seçime bağlı Katılım"
#. module: base_calendar
#: field:calendar.event,date_deadline:0
#: field:calendar.todo,date_deadline:0
msgid "Deadline"
-msgstr ""
+msgstr "Bitiş tarihi"
#. module: base_calendar
#: code:addons/base_calendar/base_calendar.py:385
+#: code:addons/base_calendar/base_calendar.py:1088
#: code:addons/base_calendar/base_calendar.py:1090
-#: code:addons/base_calendar/base_calendar.py:1092
#, python-format
msgid "Warning!"
-msgstr ""
+msgstr "Uyarı!"
#. module: base_calendar
#: help:calendar.event,active:0
@@ -382,11 +388,13 @@ msgid ""
"If the active field is set to true, it will allow you to hide the "
"event alarm information without removing it."
msgstr ""
+"Eğer etkin alan doğru olarak ayarlıysa, etkinlik alarmını silmeden "
+"gizleyebilirsiniz."
#. module: base_calendar
#: model:ir.module.module,shortdesc:base_calendar.module_meta_information
msgid "Basic Calendar Functionality"
-msgstr ""
+msgstr "Temel Takvim İşlevselliği"
#. module: base_calendar
#: field:calendar.event,organizer:0
@@ -394,7 +402,7 @@ msgstr ""
#: field:calendar.todo,organizer:0
#: field:calendar.todo,organizer_id:0
msgid "Organizer"
-msgstr ""
+msgstr "Düzenleyen"
#. module: base_calendar
#: view:calendar.attendee:0
@@ -402,88 +410,88 @@ msgstr ""
#: field:calendar.event,user_id:0
#: field:calendar.todo,user_id:0
msgid "Responsible"
-msgstr ""
+msgstr "Sorumlu"
#. module: base_calendar
#: view:calendar.event:0
#: model:res.request.link,name:base_calendar.request_link_meeting
msgid "Event"
-msgstr ""
+msgstr "Etkinlik"
#. module: base_calendar
#: help:calendar.event,edit_all:0
#: help:calendar.todo,edit_all:0
msgid "Edit all Occurrences of recurrent Meeting."
-msgstr ""
+msgstr "Yinelenen Toplantıya ait bütün Olayları Düzenle."
#. module: base_calendar
#: selection:calendar.alarm,trigger_occurs:0
#: selection:res.alarm,trigger_occurs:0
msgid "Before"
-msgstr ""
+msgstr "Önce"
#. module: base_calendar
#: view:calendar.event:0
#: selection:calendar.event,state:0
#: selection:calendar.todo,state:0
msgid "Confirmed"
-msgstr ""
+msgstr "Onaylandı"
#. module: base_calendar
#: model:ir.actions.act_window,name:base_calendar.action_calendar_event_edit_all
msgid "Edit all events"
-msgstr ""
+msgstr "Bütün etkinlikleri düzenle"
#. module: base_calendar
#: field:calendar.alarm,attendee_ids:0
#: field:calendar.event,attendee_ids:0
#: field:calendar.todo,attendee_ids:0
msgid "Attendees"
-msgstr ""
+msgstr "Katılımcılar"
#. module: base_calendar
#: view:calendar.event:0
msgid "Confirm"
-msgstr ""
+msgstr "Onayla"
#. module: base_calendar
#: model:ir.model,name:base_calendar.model_calendar_todo
msgid "Calendar Task"
-msgstr ""
+msgstr "Takvim Görevleri"
#. module: base_calendar
#: field:base.calendar.set.exrule,su:0
#: field:calendar.event,su:0
#: field:calendar.todo,su:0
msgid "Sun"
-msgstr ""
+msgstr "Paz"
#. module: base_calendar
#: field:calendar.attendee,cutype:0
msgid "Invite Type"
-msgstr ""
+msgstr "Davet Türü"
#. module: base_calendar
#: help:calendar.attendee,partner_id:0
msgid "Partner related to contact"
-msgstr ""
+msgstr "İlgiliye ait paydaş"
#. module: base_calendar
#: view:res.alarm:0
msgid "Reminder details"
-msgstr ""
+msgstr "Anımsatma Ayrıntıları"
#. module: base_calendar
#: field:calendar.attendee,parent_ids:0
msgid "Delegrated From"
-msgstr ""
+msgstr "Tarafından Yetkilendirldi"
#. module: base_calendar
#: selection:base.calendar.set.exrule,select1:0
#: selection:calendar.event,select1:0
#: selection:calendar.todo,select1:0
msgid "Day of month"
-msgstr ""
+msgstr "Ayın günü"
#. module: base_calendar
#: view:calendar.event:0
@@ -491,48 +499,48 @@ msgstr ""
#: field:calendar.event.edit.all,location:0
#: field:calendar.todo,location:0
msgid "Location"
-msgstr ""
+msgstr "Konum"
#. module: base_calendar
#: field:base_calendar.invite.attendee,send_mail:0
msgid "Send mail?"
-msgstr ""
+msgstr "Posta gönderilsin mi?"
#. module: base_calendar
#: field:base_calendar.invite.attendee,email:0
#: selection:calendar.alarm,action:0
#: field:calendar.attendee,email:0
msgid "Email"
-msgstr ""
+msgstr "Eposta"
#. module: base_calendar
#: view:calendar.attendee:0
msgid "Event Detail"
-msgstr ""
+msgstr "Etkinlik Ayrıntısı"
#. module: base_calendar
#: selection:calendar.alarm,state:0
msgid "Run"
-msgstr ""
+msgstr "Çalıştır"
#. module: base_calendar
#: field:calendar.event,exdate:0
#: field:calendar.todo,exdate:0
msgid "Exception Date/Times"
-msgstr ""
+msgstr "İtiraz Tarihi/Süresi"
#. module: base_calendar
#: selection:calendar.event,class:0
#: selection:calendar.todo,class:0
msgid "Confidential"
-msgstr ""
+msgstr "Gizli"
#. module: base_calendar
#: field:base.calendar.set.exrule,end_date:0
#: field:calendar.event,end_date:0
#: field:calendar.todo,end_date:0
msgid "Repeat Until"
-msgstr ""
+msgstr "kadar tekrarla"
#. module: base_calendar
#: model:ir.actions.act_window,help:base_calendar.action_res_alarm_view
@@ -540,286 +548,288 @@ msgid ""
"Create specific calendar alarms that may be assigned to calendar events or "
"meetings."
msgstr ""
+"Takvim etkinliklerine ve toplantılarına atanabilecek özel takvim alarmları "
+"oluştur."
#. module: base_calendar
#: view:calendar.event:0
msgid "Visibility"
-msgstr ""
+msgstr "Görünürlük"
#. module: base_calendar
#: field:calendar.attendee,rsvp:0
msgid "Required Reply?"
-msgstr ""
+msgstr "Yanıt isteniyor mu?"
#. module: base_calendar
#: field:calendar.event,base_calendar_url:0
#: field:calendar.todo,base_calendar_url:0
msgid "Caldav URL"
-msgstr ""
+msgstr "Caldav URL si"
#. module: base_calendar
#: view:base.calendar.set.exrule:0
msgid "Select range to Exclude"
-msgstr ""
+msgstr "Hariç tutulacak alanı seç"
#. module: base_calendar
#: field:calendar.event,recurrent_uid:0
#: field:calendar.todo,recurrent_uid:0
msgid "Recurrent ID"
-msgstr ""
+msgstr "Tekrarlayan ID"
#. module: base_calendar
#: selection:base.calendar.set.exrule,month_list:0
#: selection:calendar.event,month_list:0
#: selection:calendar.todo,month_list:0
msgid "July"
-msgstr ""
+msgstr "Temmuz"
#. module: base_calendar
#: view:calendar.attendee:0
#: selection:calendar.attendee,state:0
msgid "Accepted"
-msgstr ""
+msgstr "Kabul edildi"
#. module: base_calendar
#: field:base.calendar.set.exrule,th:0
#: field:calendar.event,th:0
#: field:calendar.todo,th:0
msgid "Thu"
-msgstr ""
+msgstr "Per"
#. module: base_calendar
#: field:calendar.attendee,child_ids:0
msgid "Delegrated To"
-msgstr ""
+msgstr "Şuna Yetkilendirildi"
#. module: base_calendar
#: view:calendar.attendee:0
msgid "Required Reply"
-msgstr ""
+msgstr "Yanıt İsteniyor"
#. module: base_calendar
#: selection:calendar.event,end_type:0
#: selection:calendar.todo,end_type:0
msgid "Forever"
-msgstr ""
+msgstr "Sonsuz"
#. module: base_calendar
#: selection:calendar.attendee,role:0
msgid "Participation required"
-msgstr ""
+msgstr "Katılım gerekli"
#. module: base_calendar
#: view:base.calendar.set.exrule:0
msgid "_Cancel"
-msgstr ""
+msgstr "_Vazgeç"
#. module: base_calendar
#: field:calendar.event,create_date:0
#: field:calendar.todo,create_date:0
msgid "Created"
-msgstr ""
+msgstr "Oluşturuldu"
#. module: base_calendar
#: selection:calendar.event,class:0
#: selection:calendar.todo,class:0
msgid "Private"
-msgstr ""
+msgstr "Özel"
#. module: base_calendar
#: selection:base.calendar.set.exrule,freq:0
#: selection:calendar.event,rrule_type:0
#: selection:calendar.todo,rrule_type:0
msgid "Daily"
-msgstr ""
+msgstr "Günlük"
#. module: base_calendar
#: code:addons/base_calendar/base_calendar.py:385
#, python-format
msgid "Can not Duplicate"
-msgstr ""
+msgstr "Çoğaltılamaz"
#. module: base_calendar
#: field:calendar.event,class:0
#: field:calendar.todo,class:0
msgid "Mark as"
-msgstr ""
+msgstr "olarak İşaretle"
#. module: base_calendar
#: view:calendar.attendee:0
#: field:calendar.attendee,partner_address_id:0
msgid "Contact"
-msgstr ""
+msgstr "İlgili"
#. module: base_calendar
#: help:calendar.event,rrule_type:0
#: help:calendar.todo,rrule_type:0
msgid "Let the event automatically repeat at that interval"
-msgstr ""
+msgstr "Belirli aralıklarla olayın otomatik olarak tekrarlamasına izin ver"
#. module: base_calendar
#: view:calendar.attendee:0
#: view:calendar.event:0
msgid "Delegate"
-msgstr ""
+msgstr "Yetkili"
#. module: base_calendar
#: field:base_calendar.invite.attendee,partner_id:0
#: view:calendar.attendee:0
#: field:calendar.attendee,partner_id:0
msgid "Partner"
-msgstr ""
+msgstr "Paydaş"
#. module: base_calendar
#: view:base_calendar.invite.attendee:0
#: selection:base_calendar.invite.attendee,type:0
msgid "Partner Contacts"
-msgstr ""
+msgstr "Paydaş İlgilileri"
#. module: base_calendar
#: view:base.calendar.set.exrule:0
msgid "_Ok"
-msgstr ""
+msgstr "_Tamam"
#. module: base_calendar
#: selection:base.calendar.set.exrule,byday:0
#: selection:calendar.event,byday:0
#: selection:calendar.todo,byday:0
msgid "First"
-msgstr ""
+msgstr "İlk"
#. module: base_calendar
#: view:calendar.event:0
msgid "Privacy"
-msgstr ""
+msgstr "Gizlilik"
#. module: base_calendar
#: field:calendar.event,vtimezone:0
#: field:calendar.todo,vtimezone:0
msgid "Timezone"
-msgstr ""
+msgstr "Saat dilimi"
#. module: base_calendar
#: view:calendar.event:0
msgid "Subject"
-msgstr ""
+msgstr "Konu"
#. module: base_calendar
#: selection:base.calendar.set.exrule,month_list:0
#: selection:calendar.event,month_list:0
#: selection:calendar.todo,month_list:0
msgid "September"
-msgstr ""
+msgstr "Eylül"
#. module: base_calendar
#: selection:base.calendar.set.exrule,month_list:0
#: selection:calendar.event,month_list:0
#: selection:calendar.todo,month_list:0
msgid "December"
-msgstr ""
+msgstr "Aralık"
#. module: base_calendar
#: help:base_calendar.invite.attendee,send_mail:0
msgid "Check this if you want to send an Email to Invited Person"
-msgstr ""
+msgstr "Davet edile kişiye Eposta göndermek isterseniz bunu işaretleyin"
#. module: base_calendar
#: view:calendar.event:0
msgid "Availability"
-msgstr ""
+msgstr "Elverişlilik"
#. module: base_calendar
#: view:calendar.event.edit.all:0
msgid "_Save"
-msgstr ""
+msgstr "_Sakla"
#. module: base_calendar
#: selection:calendar.attendee,cutype:0
msgid "Individual"
-msgstr ""
+msgstr "Bireysel"
#. module: base_calendar
#: help:calendar.event,count:0
#: help:calendar.todo,count:0
msgid "Repeat x times"
-msgstr ""
+msgstr "x Kere tekrarla"
#. module: base_calendar
#: field:calendar.alarm,user_id:0
msgid "Owner"
-msgstr ""
+msgstr "Sahibi"
#. module: base_calendar
#: view:calendar.attendee:0
msgid "Delegation Info"
-msgstr ""
+msgstr "Temsilci Bilgisi"
#. module: base_calendar
#: view:calendar.event:0
#: field:calendar.event.edit.all,date:0
msgid "Start Date"
-msgstr ""
+msgstr "Başlangıç Tarihi"
#. module: base_calendar
#: field:calendar.attendee,cn:0
msgid "Common name"
-msgstr ""
+msgstr "Genel ad"
#. module: base_calendar
#: view:calendar.attendee:0
#: selection:calendar.attendee,state:0
msgid "Declined"
-msgstr ""
+msgstr "Reddedildi"
#. module: base_calendar
#: view:calendar.attendee:0
msgid "My Role"
-msgstr ""
+msgstr "Rolüm"
#. module: base_calendar
#: view:calendar.event:0
msgid "My Events"
-msgstr ""
+msgstr "Etkinliklerim"
#. module: base_calendar
#: view:calendar.attendee:0
#: view:calendar.event:0
msgid "Decline"
-msgstr ""
+msgstr "Reddet"
#. module: base_calendar
#: selection:calendar.event,freq:0
#: selection:calendar.todo,freq:0
msgid "Weeks"
-msgstr ""
+msgstr "Haftalar"
#. module: base_calendar
#: selection:calendar.attendee,cutype:0
msgid "Group"
-msgstr ""
+msgstr "Grup"
#. module: base_calendar
#: field:calendar.event,edit_all:0
#: field:calendar.todo,edit_all:0
msgid "Edit All"
-msgstr ""
+msgstr "Hepsini Düzenle"
#. module: base_calendar
#: field:base_calendar.invite.attendee,contact_ids:0
msgid "Contacts"
-msgstr ""
+msgstr "İlgililer"
#. module: base_calendar
#: model:ir.model,name:base_calendar.model_res_alarm
msgid "Basic Alarm Information"
-msgstr ""
+msgstr "Temel Alarm Bilgisi"
#. module: base_calendar
#: field:base.calendar.set.exrule,fr:0
#: field:calendar.event,fr:0
#: field:calendar.todo,fr:0
msgid "Fri"
-msgstr ""
+msgstr "Cum"
#. module: base_calendar
#: selection:calendar.alarm,trigger_interval:0
@@ -827,81 +837,80 @@ msgstr ""
#: selection:calendar.todo,freq:0
#: selection:res.alarm,trigger_interval:0
msgid "Hours"
-msgstr ""
+msgstr "Saatler"
#. module: base_calendar
-#: code:addons/base_calendar/base_calendar.py:1092
+#: code:addons/base_calendar/base_calendar.py:1090
#, python-format
msgid "Count can not be Negative"
-msgstr ""
+msgstr "Olumsuz olamayacakları say"
#. module: base_calendar
#: field:calendar.attendee,member:0
msgid "Member"
-msgstr ""
+msgstr "Üye"
#. module: base_calendar
#: help:calendar.event,location:0
#: help:calendar.todo,location:0
msgid "Location of Event"
-msgstr ""
+msgstr "Olay Konumu"
#. module: base_calendar
#: field:calendar.event,rrule:0
#: field:calendar.todo,rrule:0
msgid "Recurrent Rule"
-msgstr ""
+msgstr "Yinelenen Kural"
#. module: base_calendar
#: selection:calendar.alarm,state:0
msgid "Draft"
-msgstr ""
+msgstr "Taslak"
#. module: base_calendar
#: field:calendar.alarm,attach:0
msgid "Attachment"
-msgstr ""
+msgstr "Ek"
#. module: base_calendar
#: view:calendar.attendee:0
msgid "Invitation From"
-msgstr ""
+msgstr "Davet Eden"
#. module: base_calendar
#: view:calendar.event:0
msgid "End of recurrency"
-msgstr ""
+msgstr "Yineleme sonu"
#. module: base_calendar
#: view:calendar.event:0
#: field:calendar.event.edit.all,alarm_id:0
msgid "Reminder"
-msgstr ""
+msgstr "Anımsatıcı"
#. module: base_calendar
#: view:base.calendar.set.exrule:0
-#: model:ir.actions.act_window,name:base_calendar.action_base_calendar_set_exrule
#: model:ir.model,name:base_calendar.model_base_calendar_set_exrule
msgid "Set Exrule"
-msgstr ""
+msgstr "İstisna Kuralını Ayarla"
#. module: base_calendar
#: view:calendar.event:0
#: model:ir.actions.act_window,name:base_calendar.action_view_event
#: model:ir.ui.menu,name:base_calendar.menu_events
msgid "Events"
-msgstr ""
+msgstr "Olaylar"
#. module: base_calendar
#: model:ir.actions.act_window,name:base_calendar.action_view_calendar_invite_attendee_wizard
#: model:ir.model,name:base_calendar.model_base_calendar_invite_attendee
msgid "Invite Attendees"
-msgstr ""
+msgstr "Katılımcıları Davet"
#. module: base_calendar
#: help:calendar.attendee,email:0
msgid "Email of Invited Person"
-msgstr ""
+msgstr "Davetli Kişinin Epostası"
#. module: base_calendar
#: field:calendar.alarm,repeat:0
@@ -909,169 +918,169 @@ msgstr ""
#: field:calendar.todo,count:0
#: field:res.alarm,repeat:0
msgid "Repeat"
-msgstr ""
+msgstr "Yinele"
#. module: base_calendar
#: help:calendar.attendee,dir:0
msgid ""
"Reference to the URIthat points to the directory information corresponding "
"to the attendee."
-msgstr ""
+msgstr "Katılımcıyla ilgili dizin bilgisine yönlendiren URL ile ilişkilidir."
#. module: base_calendar
#: selection:base.calendar.set.exrule,month_list:0
#: selection:calendar.event,month_list:0
#: selection:calendar.todo,month_list:0
msgid "August"
-msgstr ""
+msgstr "Ağustos"
#. module: base_calendar
#: selection:base.calendar.set.exrule,week_list:0
#: selection:calendar.event,week_list:0
#: selection:calendar.todo,week_list:0
msgid "Monday"
-msgstr ""
+msgstr "Pazartesi"
#. module: base_calendar
#: selection:base.calendar.set.exrule,byday:0
#: selection:calendar.event,byday:0
#: selection:calendar.todo,byday:0
msgid "Third"
-msgstr ""
+msgstr "Üçüncü"
#. module: base_calendar
#: selection:base.calendar.set.exrule,month_list:0
#: selection:calendar.event,month_list:0
#: selection:calendar.todo,month_list:0
msgid "June"
-msgstr ""
+msgstr "Haziran"
#. module: base_calendar
#: field:calendar.alarm,alarm_id:0
msgid "Basic Alarm"
-msgstr ""
+msgstr "Temel Alarm"
#. module: base_calendar
#: view:base.calendar.set.exrule:0
#: view:calendar.event:0
msgid "The"
-msgstr ""
+msgstr "Bu"
#. module: base_calendar
#: view:calendar.attendee:0
#: field:calendar.attendee,delegated_from:0
msgid "Delegated From"
-msgstr ""
+msgstr "Temsil Edilen"
#. module: base_calendar
#: field:calendar.attendee,user_id:0
msgid "User"
-msgstr ""
+msgstr "Kullanıcı"
#. module: base_calendar
#: view:calendar.event:0
#: field:calendar.event,date:0
msgid "Date"
-msgstr ""
+msgstr "Tarih"
#. module: base_calendar
#: selection:base.calendar.set.exrule,month_list:0
#: selection:calendar.event,month_list:0
#: selection:calendar.todo,month_list:0
msgid "November"
-msgstr ""
+msgstr "Kasım"
#. module: base_calendar
#: help:calendar.attendee,member:0
msgid "Indicate the groups that the attendee belongs to"
-msgstr ""
+msgstr "Katılanın bağlı olduğu grubu belirt"
#. module: base_calendar
#: view:base_calendar.invite.attendee:0
msgid "Data"
-msgstr ""
+msgstr "Veri"
#. module: base_calendar
#: field:base.calendar.set.exrule,mo:0
#: field:calendar.event,mo:0
#: field:calendar.todo,mo:0
msgid "Mon"
-msgstr ""
+msgstr "Pzt"
#. module: base_calendar
#: field:base.calendar.set.exrule,count:0
msgid "Count"
-msgstr ""
+msgstr "Say"
#. module: base_calendar
#: selection:base.calendar.set.exrule,freq:0
#: selection:calendar.event,freq:0
#: selection:calendar.todo,freq:0
msgid "No Repeat"
-msgstr ""
+msgstr "Yineleme Yok"
#. module: base_calendar
#: selection:base.calendar.set.exrule,month_list:0
#: selection:calendar.event,month_list:0
#: selection:calendar.todo,month_list:0
msgid "October"
-msgstr ""
+msgstr "Ekim"
#. module: base_calendar
#: view:calendar.attendee:0
#: view:calendar.event:0
msgid "Uncertain"
-msgstr ""
+msgstr "Belirsiz"
#. module: base_calendar
#: field:calendar.attendee,language:0
msgid "Language"
-msgstr ""
+msgstr "Dil"
#. module: base_calendar
#: field:calendar.alarm,trigger_occurs:0
#: field:res.alarm,trigger_occurs:0
msgid "Triggers"
-msgstr ""
+msgstr "Tetikleyiciler"
#. module: base_calendar
#: selection:base.calendar.set.exrule,month_list:0
#: selection:calendar.event,month_list:0
#: selection:calendar.todo,month_list:0
msgid "January"
-msgstr ""
+msgstr "Ocak"
#. module: base_calendar
#: field:calendar.alarm,trigger_related:0
#: field:res.alarm,trigger_related:0
msgid "Related to"
-msgstr ""
+msgstr "Bağlı olduğu"
#. module: base_calendar
#: field:base.calendar.set.exrule,interval:0
#: field:calendar.alarm,trigger_interval:0
#: field:res.alarm,trigger_interval:0
msgid "Interval"
-msgstr ""
+msgstr "Aralık"
#. module: base_calendar
#: selection:base.calendar.set.exrule,week_list:0
#: selection:calendar.event,week_list:0
#: selection:calendar.todo,week_list:0
msgid "Wednesday"
-msgstr ""
+msgstr "Çarşamba"
#. module: base_calendar
-#: code:addons/base_calendar/base_calendar.py:1090
+#: code:addons/base_calendar/base_calendar.py:1088
#, python-format
msgid "Interval can not be Negative"
-msgstr ""
+msgstr "Aralık Eksi olamaz"
#. module: base_calendar
#: field:calendar.alarm,name:0
#: view:calendar.event:0
msgid "Summary"
-msgstr ""
+msgstr "Özet"
#. module: base_calendar
#: field:calendar.alarm,active:0
@@ -1079,22 +1088,22 @@ msgstr ""
#: field:calendar.todo,active:0
#: field:res.alarm,active:0
msgid "Active"
-msgstr ""
+msgstr "Etkin"
#. module: base_calendar
#: view:calendar.event:0
msgid "Choose day in the month where repeat the meeting"
-msgstr ""
+msgstr "Ay içinde görüşmenin tekrarlanacağı günü seç"
#. module: base_calendar
#: field:calendar.alarm,action:0
msgid "Action"
-msgstr ""
+msgstr "Eylem"
#. module: base_calendar
#: help:base_calendar.invite.attendee,type:0
msgid "Select whom you want to Invite"
-msgstr ""
+msgstr "Davet edeceğinizi kimseyi seçin"
#. module: base_calendar
#: help:calendar.alarm,duration:0
@@ -1103,50 +1112,52 @@ msgid ""
"Duration' and 'Repeat' are both optional, but if one occurs, so MUST the "
"other"
msgstr ""
+"'Süre' ve 'Yineleme' nin her ikisi de seçme bağlıdır, ama biri seçlirse "
+"diğeri de seçilmelidir"
#. module: base_calendar
#: model:ir.model,name:base_calendar.model_calendar_event_edit_all
msgid "Calendar Edit all event"
-msgstr ""
+msgstr "Bütün etkinlikleri Takvimini Düzenle"
#. module: base_calendar
#: help:calendar.attendee,role:0
msgid "Participation role for the calendar user"
-msgstr ""
+msgstr "Takvim Kullanıcısının katılım rolü"
#. module: base_calendar
#: view:calendar.attendee:0
#: field:calendar.attendee,delegated_to:0
msgid "Delegated To"
-msgstr ""
+msgstr "Temsil edilen"
#. module: base_calendar
#: help:calendar.alarm,action:0
msgid "Defines the action to be invoked when an alarm is triggered"
-msgstr ""
+msgstr "Alarm tetiklendiğinde başlatılacak eylemi tanımlar"
#. module: base_calendar
#: selection:calendar.event,end_type:0
#: selection:calendar.todo,end_type:0
msgid "End date"
-msgstr ""
+msgstr "Bitiş tarihi"
#. module: base_calendar
#: view:calendar.event:0
msgid "Search Events"
-msgstr ""
+msgstr "Etkinlikleri Ara"
#. module: base_calendar
#: view:calendar.event:0
msgid "Recurrency Option"
-msgstr ""
+msgstr "Yineleme Seçeneği"
#. module: base_calendar
#: selection:base.calendar.set.exrule,freq:0
#: selection:calendar.event,rrule_type:0
#: selection:calendar.todo,rrule_type:0
msgid "Weekly"
-msgstr ""
+msgstr "Haftalık"
#. module: base_calendar
#: help:calendar.alarm,active:0
@@ -1155,17 +1166,19 @@ msgid ""
"If the active field is set to true, it will allow you to hide the event "
"alarm information without removing it."
msgstr ""
+"Etkin alan yanlış olarak ayarlıysa, etkinlik alarmını kaldırmadan "
+"gizlemenizi sağlar."
#. module: base_calendar
#: field:calendar.event,recurrent_id:0
#: field:calendar.todo,recurrent_id:0
msgid "Recurrent ID date"
-msgstr ""
+msgstr "Yinelenen Kimlik tarihi"
#. module: base_calendar
#: sql_constraint:res.users:0
msgid "You can not have two users with the same login !"
-msgstr ""
+msgstr "Aynı kullanıcı adı ile iki kullanıcı oluşturamazsınız !"
#. module: base_calendar
#: field:calendar.alarm,state:0
@@ -1175,65 +1188,65 @@ msgstr ""
#: field:calendar.event,state:0
#: field:calendar.todo,state:0
msgid "State"
-msgstr ""
+msgstr "Durum"
#. module: base_calendar
#: view:res.alarm:0
msgid "Reminder Details"
-msgstr ""
+msgstr "Anımsatma Ayrıntıları"
#. module: base_calendar
#: view:calendar.attendee:0
msgid "To Review"
-msgstr ""
+msgstr "İncelenecek"
#. module: base_calendar
#: field:base.calendar.set.exrule,freq:0
#: field:calendar.event,freq:0
#: field:calendar.todo,freq:0
msgid "Frequency"
-msgstr ""
+msgstr "Sıklık"
#. module: base_calendar
#: selection:calendar.alarm,state:0
msgid "Done"
-msgstr ""
+msgstr "Bitti"
#. module: base_calendar
#: help:calendar.event,interval:0
#: help:calendar.todo,interval:0
msgid "Repeat every (Days/Week/Month/Year)"
-msgstr ""
+msgstr "Her (Gün/Hafta/Ay/Yıl) Tekrarla"
#. module: base_calendar
#: view:base_calendar.invite.attendee:0
#: field:base_calendar.invite.attendee,user_ids:0
msgid "Users"
-msgstr ""
+msgstr "Kullanıcılar"
#. module: base_calendar
#: view:base.calendar.set.exrule:0
msgid "of"
-msgstr ""
+msgstr "ın"
#. module: base_calendar
#: view:base_calendar.invite.attendee:0
#: view:calendar.event:0
#: view:calendar.event.edit.all:0
msgid "Cancel"
-msgstr ""
+msgstr "Vazgeç"
#. module: base_calendar
#: model:ir.model,name:base_calendar.model_res_users
msgid "res.users"
-msgstr ""
+msgstr "res.users"
#. module: base_calendar
#: selection:base.calendar.set.exrule,week_list:0
#: selection:calendar.event,week_list:0
#: selection:calendar.todo,week_list:0
msgid "Tuesday"
-msgstr ""
+msgstr "Salı"
#. module: base_calendar
#: help:calendar.alarm,description:0
@@ -1242,11 +1255,13 @@ msgid ""
"calendar component, than that provided by the "
"\"SUMMARY\" property"
msgstr ""
+"Takvim bileşeninin tanımını \"ÖZET\" özelliğinden eldeedilenden daha tam "
+"olarak belirtir."
#. module: base_calendar
#: view:calendar.event:0
msgid "Responsible User"
-msgstr ""
+msgstr "Sorumlu Kullanıcı"
#. module: base_calendar
#: selection:calendar.attendee,availability:0
@@ -1254,73 +1269,75 @@ msgstr ""
#: selection:calendar.todo,show_as:0
#: selection:res.users,availability:0
msgid "Busy"
-msgstr ""
+msgstr "Meşgul"
#. module: base_calendar
#: model:ir.model,name:base_calendar.model_calendar_event
msgid "Calendar Event"
-msgstr ""
+msgstr "Takvim Etkinliği"
#. module: base_calendar
#: selection:calendar.attendee,state:0
#: selection:calendar.event,state:0
#: selection:calendar.todo,state:0
msgid "Tentative"
-msgstr ""
+msgstr "Belirsiz"
#. module: base_calendar
#: field:calendar.event,interval:0
#: field:calendar.todo,interval:0
msgid "Repeat every"
-msgstr ""
+msgstr "Yineler"
#. module: base_calendar
#: selection:calendar.event,end_type:0
#: selection:calendar.todo,end_type:0
msgid "Fix amout of times"
-msgstr ""
+msgstr "Süre Miktarını Düzelt"
#. module: base_calendar
#: field:calendar.event,recurrency:0
#: field:calendar.todo,recurrency:0
msgid "Recurrent"
-msgstr ""
+msgstr "Yinelenen"
#. module: base_calendar
#: field:calendar.event,rrule_type:0
#: field:calendar.todo,rrule_type:0
msgid "Recurrency"
-msgstr ""
+msgstr "Yineleme"
#. module: base_calendar
#: model:ir.actions.act_window,name:base_calendar.action_view_attendee_form
#: model:ir.ui.menu,name:base_calendar.menu_attendee_invitations
msgid "Event Invitations"
-msgstr ""
+msgstr "Etkinlik Davetleri"
#. module: base_calendar
#: selection:base.calendar.set.exrule,week_list:0
#: selection:calendar.event,week_list:0
#: selection:calendar.todo,week_list:0
msgid "Thursday"
-msgstr ""
+msgstr "Perşembe"
#. module: base_calendar
#: field:calendar.event,exrule:0
#: field:calendar.todo,exrule:0
msgid "Exception Rule"
-msgstr ""
+msgstr "Muafşyet Kuralı"
#. module: base_calendar
#: help:calendar.attendee,language:0
msgid ""
"To specify the language for text values in aproperty or property parameter."
msgstr ""
+"Bir özellikteki ya da özellik parametresine ait metin değerlerinin dilini "
+"belirler."
#. module: base_calendar
#: view:calendar.event:0
msgid "Details"
-msgstr ""
+msgstr "Ayrıntılar"
#. module: base_calendar
#: help:calendar.event,exrule:0
@@ -1329,19 +1346,20 @@ msgid ""
"Defines a rule or repeating pattern of time to exclude from the recurring "
"rule."
msgstr ""
+"Yineleme kuralı dışında tutulan bir zaman tekrarlama modelini tanımlar."
#. module: base_calendar
#: field:base.calendar.set.exrule,month_list:0
#: field:calendar.event,month_list:0
#: field:calendar.todo,month_list:0
msgid "Month"
-msgstr ""
+msgstr "Ay"
#. module: base_calendar
#: view:base_calendar.invite.attendee:0
#: view:calendar.event:0
msgid "Invite People"
-msgstr ""
+msgstr "Kişi Davet Et"
#. module: base_calendar
#: help:calendar.event,rrule:0
@@ -1351,11 +1369,14 @@ msgid ""
"e.g.: Every other month on the last Sunday of the month for 10 occurrences: "
" FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=-1SU"
msgstr ""
+"Yinelenen olaylar için tekrarlama modeli kuralı tanımlar\n"
+"Örneğin: İki ayda bir ayın pazar günü için 10 oluşum: "
+"SIKLIK=AYLIK;ARALIK=2;SAYI=10;GÜNLÜK=-1PAZ"
#. module: base_calendar
#: field:calendar.attendee,dir:0
msgid "URI Reference"
-msgstr ""
+msgstr "URI Referansı"
#. module: base_calendar
#: field:calendar.alarm,description:0
@@ -1365,108 +1386,108 @@ msgstr ""
#: field:calendar.todo,description:0
#: field:calendar.todo,name:0
msgid "Description"
-msgstr ""
+msgstr "Açıklama"
#. module: base_calendar
#: selection:base.calendar.set.exrule,month_list:0
#: selection:calendar.event,month_list:0
#: selection:calendar.todo,month_list:0
msgid "May"
-msgstr ""
+msgstr "Mayıs"
#. module: base_calendar
#: field:base_calendar.invite.attendee,type:0
#: view:calendar.attendee:0
msgid "Type"
-msgstr ""
+msgstr "Tür"
#. module: base_calendar
#: view:calendar.attendee:0
msgid "Search Invitations"
-msgstr ""
+msgstr "Davetiye Ara"
#. module: base_calendar
#: selection:calendar.alarm,trigger_occurs:0
#: selection:res.alarm,trigger_occurs:0
msgid "After"
-msgstr ""
+msgstr "Sonra"
#. module: base_calendar
#: selection:calendar.alarm,state:0
msgid "Stop"
-msgstr ""
+msgstr "Dur"
#. module: base_calendar
#: model:ir.model,name:base_calendar.model_ir_values
msgid "ir.values"
-msgstr ""
+msgstr "ir.values"
#. module: base_calendar
#: model:ir.model,name:base_calendar.model_ir_model
msgid "Objects"
-msgstr ""
+msgstr "Nesneler"
#. module: base_calendar
#: view:calendar.attendee:0
#: selection:calendar.attendee,state:0
msgid "Delegated"
-msgstr ""
+msgstr "Temsil Edildi"
#. module: base_calendar
#: field:base.calendar.set.exrule,sa:0
#: field:calendar.event,sa:0
#: field:calendar.todo,sa:0
msgid "Sat"
-msgstr ""
+msgstr "Cts"
#. module: base_calendar
#: view:calendar.event:0
msgid "Choose day where repeat the meeting"
-msgstr ""
+msgstr "Görüşmenin tekrarlanacağı günü seç"
#. module: base_calendar
#: selection:base.calendar.set.exrule,freq:0
msgid "Minutely"
-msgstr ""
+msgstr "Dakikalık"
#. module: base_calendar
#: help:calendar.attendee,sent_by:0
msgid "Specify the user that is acting on behalf of the calendar user"
-msgstr ""
+msgstr "Takvim kullanıcısı adına hareket eden kullanıcıyı tanımla"
#. module: base_calendar
#: view:calendar.event:0
#: field:calendar.event.edit.all,date_deadline:0
msgid "End Date"
-msgstr ""
+msgstr "Bitiş Tarihi"
#. module: base_calendar
#: selection:base.calendar.set.exrule,month_list:0
#: selection:calendar.event,month_list:0
#: selection:calendar.todo,month_list:0
msgid "February"
-msgstr ""
+msgstr "Şubat"
#. module: base_calendar
#: selection:calendar.event,freq:0
#: selection:calendar.todo,freq:0
msgid "Months"
-msgstr ""
+msgstr "Aylar"
#. module: base_calendar
#: selection:calendar.attendee,cutype:0
msgid "Resource"
-msgstr ""
+msgstr "Kaynak"
#. module: base_calendar
#: field:res.alarm,name:0
msgid "Name"
-msgstr ""
+msgstr "Ad"
#. module: base_calendar
#: model:ir.model,name:base_calendar.model_calendar_alarm
msgid "Event alarm information"
-msgstr ""
+msgstr "Etkinlik alarm bilgisi"
#. module: base_calendar
#: help:calendar.alarm,name:0
@@ -1474,6 +1495,8 @@ msgid ""
"Contains the text to be used as the message subject for "
"email or contains the text to be used for display"
msgstr ""
+"Eposta konusu olarak kullanılacak ya da görüntülenecek metin olarak "
+"kullanılacak metni içerir."
#. module: base_calendar
#: field:calendar.event,alarm_id:0
@@ -1481,144 +1504,144 @@ msgstr ""
#: field:calendar.todo,alarm_id:0
#: field:calendar.todo,base_calendar_alarm_id:0
msgid "Alarm"
-msgstr ""
+msgstr "Alarm"
#. module: base_calendar
#: code:addons/base_calendar/wizard/base_calendar_set_exrule.py:90
#, python-format
msgid "Please Apply Recurrency before applying Exception Rule."
-msgstr ""
+msgstr "İstisna Kuralını uygulamadan önce lütfen Yineleme Uygulayın."
#. module: base_calendar
#: field:calendar.attendee,sent_by_uid:0
msgid "Sent By User"
-msgstr ""
+msgstr "Şu Kullanıcı tarafından gönderildi"
#. module: base_calendar
#: selection:base.calendar.set.exrule,month_list:0
#: selection:calendar.event,month_list:0
#: selection:calendar.todo,month_list:0
msgid "April"
-msgstr ""
+msgstr "Nisan"
#. module: base_calendar
#: view:calendar.event:0
msgid "Recurrency period"
-msgstr ""
+msgstr "Yineleme Dönemi"
#. module: base_calendar
#: field:base.calendar.set.exrule,week_list:0
#: field:calendar.event,week_list:0
#: field:calendar.todo,week_list:0
msgid "Weekday"
-msgstr ""
+msgstr "Hafta İçi"
#. module: base_calendar
#: field:base.calendar.set.exrule,byday:0
#: field:calendar.event,byday:0
#: field:calendar.todo,byday:0
msgid "By day"
-msgstr ""
+msgstr "Gündüz"
#. module: base_calendar
#: field:calendar.alarm,model_id:0
msgid "Model"
-msgstr ""
+msgstr "Model"
#. module: base_calendar
#: selection:calendar.alarm,action:0
msgid "Audio"
-msgstr ""
+msgstr "Ses"
#. module: base_calendar
#: field:calendar.event,id:0
#: field:calendar.todo,id:0
msgid "ID"
-msgstr ""
+msgstr "Kimlik"
#. module: base_calendar
#: selection:calendar.attendee,role:0
msgid "For information Purpose"
-msgstr ""
+msgstr "Bilgi Amaçlı"
#. module: base_calendar
#: view:base_calendar.invite.attendee:0
msgid "Invite"
-msgstr ""
+msgstr "Davet et"
#. module: base_calendar
#: model:ir.model,name:base_calendar.model_calendar_attendee
msgid "Attendee information"
-msgstr ""
+msgstr "Katılımcı Bilgisi"
#. module: base_calendar
#: field:calendar.alarm,res_id:0
msgid "Resource ID"
-msgstr ""
+msgstr "Kaynak Kimliği"
#. module: base_calendar
#: selection:calendar.attendee,state:0
msgid "Needs Action"
-msgstr ""
+msgstr "Eylem Gerekir"
#. module: base_calendar
#: field:calendar.attendee,sent_by:0
msgid "Sent By"
-msgstr ""
+msgstr "Gönderen"
#. module: base_calendar
#: field:calendar.event,sequence:0
#: field:calendar.todo,sequence:0
msgid "Sequence"
-msgstr ""
+msgstr "Diziliş"
#. module: base_calendar
#: help:calendar.event,alarm_id:0
#: help:calendar.todo,alarm_id:0
msgid "Set an alarm at this time, before the event occurs"
-msgstr ""
+msgstr "Bu sefer etkinlik başlamadan önce alarm ayarla"
#. module: base_calendar
#: selection:base_calendar.invite.attendee,type:0
msgid "Internal User"
-msgstr ""
+msgstr "İç Kullanıcı"
#. module: base_calendar
#: view:calendar.attendee:0
#: view:calendar.event:0
msgid "Accept"
-msgstr ""
+msgstr "Kabul et"
#. module: base_calendar
#: selection:base.calendar.set.exrule,week_list:0
#: selection:calendar.event,week_list:0
#: selection:calendar.todo,week_list:0
msgid "Saturday"
-msgstr ""
+msgstr "Cumartesi"
#. module: base_calendar
#: view:calendar.attendee:0
msgid "Invitation To"
-msgstr ""
+msgstr "Davetiye Gönder"
#. module: base_calendar
#: selection:base.calendar.set.exrule,byday:0
#: selection:calendar.event,byday:0
#: selection:calendar.todo,byday:0
msgid "Second"
-msgstr ""
+msgstr "İkinci"
#. module: base_calendar
#: field:calendar.attendee,availability:0
#: field:res.users,availability:0
msgid "Free/Busy"
-msgstr ""
+msgstr "Uygun/Meşgul"
#. module: base_calendar
#: field:calendar.event,end_type:0
#: field:calendar.todo,end_type:0
msgid "Way to end reccurency"
-msgstr ""
+msgstr "Yineleme sonlandırma yolu"
#. module: base_calendar
#: field:calendar.alarm,duration:0
@@ -1629,17 +1652,17 @@ msgstr ""
#: field:res.alarm,duration:0
#: field:res.alarm,trigger_duration:0
msgid "Duration"
-msgstr ""
+msgstr "Süre"
#. module: base_calendar
#: selection:base_calendar.invite.attendee,type:0
msgid "External Email"
-msgstr ""
+msgstr "Dış Eposta"
#. module: base_calendar
#: field:calendar.alarm,trigger_date:0
msgid "Trigger Date"
-msgstr ""
+msgstr "Tetikleme Tarihi"
#. module: base_calendar
#: help:calendar.alarm,attach:0
@@ -1651,10 +1674,19 @@ msgid ""
" * Points to a procedure resource, which is invoked when "
" the alarm is triggered for procedure."
msgstr ""
+"* Alarmın ses çalması için tetiklendiği durumuna benzeterek, Bir ses "
+"kaynağını işaret eder.\n"
+" * Bir epostaya mesal eki olarak gönderilmek istenen "
+"dosya,\n"
+" * Alarm işlem için tetiklendiğinde işlem kaynağını "
+"işaret eder."
#. module: base_calendar
#: selection:base.calendar.set.exrule,byday:0
#: selection:calendar.event,byday:0
#: selection:calendar.todo,byday:0
msgid "Fifth"
-msgstr ""
+msgstr "Beşinci"
+
+#~ msgid "Set Exclude range"
+#~ msgstr "Hariç tutulacak alanı ayarla"
diff --git a/addons/base_calendar/test/base_calendar_test.yml b/addons/base_calendar/test/base_calendar_test.yml
index 4c0f3fc126f..5512839e635 100644
--- a/addons/base_calendar/test/base_calendar_test.yml
+++ b/addons/base_calendar/test/base_calendar_test.yml
@@ -15,7 +15,8 @@
Now I will set recurrence for this event to occur monday and friday of week
-
!python {model: calendar.event}: |
- self.write(cr, uid, [ref("calendar_event_technicalpresentation0")], {'fr': 1, 'mo': 1, 'interval': 1, 'rrule_type': 'weekly'})
+ data = {'fr': 1, 'mo': 1, 'interval': 1, 'rrule_type': 'weekly', 'end_type': 'end_date', 'end_date': '2011-05-31 00:00:00'}
+ self.write(cr, uid, [ref("calendar_event_technicalpresentation0")], data)
- |
In order to check that recurrent events are views successfully in calendar view,
I will open calendar view of events
@@ -27,7 +28,7 @@
I will search for one of the recurrent event and count the number of events
-
!python {model: calendar.event}: |
- ids = self.search(cr, uid, [('date', '>=', '2011-04-30 16:00:00'), ('date', '<=', '2011-05-31 00:00:00')] )
+ ids = self.search(cr, uid, [('date', '>=', '2011-04-30 16:00:00'), ('date', '<=', '2011-05-31 00:00:00')], context={'virtual_id': True} )
assert len(ids) == 9
- |
Now I will make All day event and test it
diff --git a/addons/base_calendar/wizard/__init__.py b/addons/base_calendar/wizard/__init__.py
index 8b45dc18a17..cd0690b1dc0 100644
--- a/addons/base_calendar/wizard/__init__.py
+++ b/addons/base_calendar/wizard/__init__.py
@@ -19,9 +19,7 @@
#
##############################################################################
-import calendar_event_edit_all
import base_calendar_invite_attendee
-import base_calendar_set_exrule
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/base_calendar/wizard/base_calendar_set_exrule.py b/addons/base_calendar/wizard/base_calendar_set_exrule.py
deleted file mode 100644
index 80fe1e44720..00000000000
--- a/addons/base_calendar/wizard/base_calendar_set_exrule.py
+++ /dev/null
@@ -1,163 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from base_calendar import base_calendar
-from osv import fields, osv
-from tools.translate import _
-import tools
-import re
-
-
-months = {
- 1: "January", 2: "February", 3: "March", 4: "April", \
- 5: "May", 6: "June", 7: "July", 8: "August", 9: "September", \
- 10: "October", 11: "November", 12: "December"
-}
-
-class base_calendar_set_exrule(osv.osv_memory):
- """
- Set Exrule.
- """
-
- _name = "base.calendar.set.exrule"
- _description = "Set Exrule"
-
- _columns = {
- 'freq': fields.selection([('None', 'No Repeat'), \
- ('secondly', 'Secondly'), \
- ('minutely', 'Minutely'), \
- ('hourly', 'Hourly'), \
- ('daily', 'Daily'), \
- ('weekly', 'Weekly'), \
- ('monthly', 'Monthly'), \
- ('yearly', 'Yearly')], 'Frequency',required=True),
- 'interval': fields.integer('Interval'),
- 'count': fields.integer('Count'),
- 'mo': fields.boolean('Mon'),
- 'tu': fields.boolean('Tue'),
- 'we': fields.boolean('Wed'),
- 'th': fields.boolean('Thu'),
- 'fr': fields.boolean('Fri'),
- 'sa': fields.boolean('Sat'),
- 'su': fields.boolean('Sun'),
- 'select1': fields.selection([('date', 'Date of month'), \
- ('day', 'Day of month')], 'Option'),
- 'day': fields.integer('Date of month'),
- 'week_list': fields.selection([('MO', 'Monday'), ('TU', 'Tuesday'), \
- ('WE', 'Wednesday'), ('TH', 'Thursday'), \
- ('FR', 'Friday'), ('SA', 'Saturday'), \
- ('SU', 'Sunday')], 'Weekday'),
- 'byday': fields.selection([('1', 'First'), ('2', 'Second'), \
- ('3', 'Third'), ('4', 'Fourth'), \
- ('5', 'Fifth'), ('-1', 'Last')], 'By day'),
- 'month_list': fields.selection(months.items(),'Month'),
- 'end_date': fields.date('Repeat Until'),
-
- }
-
- def view_init(self, cr, uid, fields, context=None):
- """
- This function checks for precondition before wizard executes
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param fields: List of fields for default value
- @param context: A standard dictionary for contextual values
- """
- if context is None:
- context = {}
- event_obj = self.pool.get(context.get('active_model'))
- for event in event_obj.browse(cr, uid, context.get('active_ids', []), context=context):
- if not event.rrule:
- raise osv.except_osv(_("Warning !"), _("Please Apply Recurrency before applying Exception Rule."))
- return False
-
- def compute_exrule_string(self, cr, uid, ids, context=None):
- """
- Compute rule string.
- @param self: the object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param datas: dictionary of freq and interval value.
- @return: string value which compute FREQILY;INTERVAL
- """
-
- weekdays = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su']
- weekstring = ''
- monthstring = ''
- yearstring = ''
- if context is None:
- context = {}
- ex_id = base_calendar.base_calendar_id2real_id(context.get('active_id', False))
- model = context.get('model', False)
- model_obj = self.pool.get(model)
- for datas in self.read(cr, uid, ids, context=context):
- freq = datas.get('freq')
- if freq == 'None':
- model_obj.write(cr, uid, ex_id,{'exrule': ''})
- return{}
-
- interval_srting = datas.get('interval') and (';INTERVAL=' + str(datas.get('interval'))) or ''
-
- if freq == 'weekly':
-
- byday = map(lambda x: x.upper(), filter(lambda x: datas.get(x) and x in weekdays, datas))
- if byday:
- weekstring = ';BYDAY=' + ','.join(byday)
-
- elif freq == 'monthly':
- if datas.get('select1')=='date' and (datas.get('day') < 1 or datas.get('day') > 31):
- raise osv.except_osv(_('Error!'), ("Please select proper Day of month"))
- if datas.get('select1')=='day':
- monthstring = ';BYDAY=' + datas.get('byday') + datas.get('week_list')
- elif datas.get('select1')=='date':
- monthstring = ';BYMONTHDAY=' + str(datas.get('day'))
-
- elif freq == 'yearly':
- if datas.get('select1')=='date' and (datas.get('day') < 1 or datas.get('day') > 31):
- raise osv.except_osv(_('Error!'), ("Please select proper Day of month"))
- bymonth = ';BYMONTH=' + str(datas.get('month_list'))
- if datas.get('select1')=='day':
- bystring = ';BYDAY=' + datas.get('byday') + datas.get('week_list')
- elif datas.get('select1')=='date':
- bystring = ';BYMONTHDAY=' + str(datas.get('day'))
- yearstring = bymonth + bystring
-
- if datas.get('end_date'):
- datas['end_date'] = ''.join((re.compile('\d')).findall(datas.get('end_date'))) + '235959Z'
- enddate = (datas.get('count') and (';COUNT=' + str(datas.get('count'))) or '') +\
- ((datas.get('end_date') and (';UNTIL=' + datas.get('end_date'))) or '')
-
- exrule_string = 'FREQ=' + freq.upper() + weekstring + interval_srting \
- + enddate + monthstring + yearstring
-
- model_obj.write(cr, uid, ex_id,{'exrule': exrule_string})
- return {'type': 'ir.actions.act_window_close'}
-
- _defaults = {
- 'freq': lambda *x: 'None',
- 'select1': lambda *x: 'date',
- 'interval': lambda *x: 1,
- }
-
-base_calendar_set_exrule()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/base_calendar/wizard/base_calendar_set_exrule_view.xml b/addons/base_calendar/wizard/base_calendar_set_exrule_view.xml
deleted file mode 100644
index 2a2d6412d4b..00000000000
--- a/addons/base_calendar/wizard/base_calendar_set_exrule_view.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
-
- base.calendar.set.exrule.form
- base.calendar.set.exrule
- form
-
-
-
-
-
-
- Set Exclude range
- base.calendar.set.exrule
- form
- form,tree
- new
-
-
-
-
diff --git a/addons/base_calendar/wizard/calendar_event_edit_all.py b/addons/base_calendar/wizard/calendar_event_edit_all.py
deleted file mode 100644
index 23f67f579f2..00000000000
--- a/addons/base_calendar/wizard/calendar_event_edit_all.py
+++ /dev/null
@@ -1,98 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from osv import osv
-from osv import fields
-
-class calendar_event_edit_all(osv.osv_memory):
-
- def _default_values(self, cr, uid, context=None):
- """ Get Default value for Start Date
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param context: A standard dictionary for contextual values
- @Return: Get Default value for Start Date
- """
- context_id = context and context.get('active_id', False) or False
- if context_id:
- if context.get('date'):
- return context.get('date')
- else:
- model = context.get('model', False)
- model_obj = self.pool.get(model)
- event = model_obj.read(cr, uid, context_id, ['name', 'location', 'alarm_id'])
- return event['date']
-
- def _default_deadline(self, cr, uid, context=None):
- """ Get Default value for End Date
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param context: A standard dictionary for contextual values
- @return: Get Default value for End Date
- """
-
- context_id = context and context.get('active_id', False) or False
- if context_id:
- if context.get('date_deadline'):
- return context.get('date_deadline')
- else:
- model = context.get('model', False)
- model_obj = self.pool.get(model)
- event = model_obj.read(cr, uid, context_id, ['name', 'location', 'alarm_id'])
- return event['date_deadline']
-
- def modify_this(self, cr, uid, ids, context=None):
- """
- Modify All event for Crm Meeting.
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of calendar event edit all’s IDs
- @return: dictionary {}
- """
- if context is None:
- context = {}
-
- context_id = context and context.get('active_id', False) or False
- if context_id:
- for datas in self.read(cr, uid, ids):
- model = context.get('model', False)
- model_obj = self.pool.get(model)
- model_obj.modify_all(cr, uid, [context_id], datas, context=context)
- return {'type': 'ir.actions.act_window_close'}
-
- _name = "calendar.event.edit.all"
- _description = "Calendar Edit all event"
- _columns = {
- 'name': fields.char('Title', size=64, required=True),
- 'date': fields.datetime('Start Date', required=True),
- 'date_deadline': fields.datetime('End Date', required=True),
- 'location': fields.char('Location', size=124),
- 'alarm_id': fields.many2one('res.alarm', 'Reminder'),
- }
- _defaults = {
- 'date': _default_values,
- 'date_deadline': _default_deadline
- }
-calendar_event_edit_all()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/base_calendar/wizard/calendar_event_edit_all_view.xml b/addons/base_calendar/wizard/calendar_event_edit_all_view.xml
deleted file mode 100644
index 82f403e9254..00000000000
--- a/addons/base_calendar/wizard/calendar_event_edit_all_view.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
- calendar.event.edit.all.form
- calendar.event.edit.all
- form
-
-
-
-
-
-
- Edit all events
- calendar.event.edit.all
- form
- tree,form
-
- new
-
-
-
-
diff --git a/addons/base_contact/base_contact.py b/addons/base_contact/base_contact.py
index 8a003ec7cf1..cf0bc610be8 100644
--- a/addons/base_contact/base_contact.py
+++ b/addons/base_contact/base_contact.py
@@ -64,7 +64,7 @@ class res_partner_contact(osv.osv):
relation='res.partner', string='Main Employer'),
'function': fields.related('job_ids', 'function', type='char', \
string='Main Function'),
- 'job_id': fields.function(_main_job, method=True, type='many2one',\
+ 'job_id': fields.function(_main_job, type='many2one',\
relation='res.partner.job', string='Main Job'),
'email': fields.char('E-Mail', size=240),
'comment': fields.text('Notes', translate=True),
diff --git a/addons/base_crypt/crypt.py b/addons/base_crypt/crypt.py
index a616b7e5b74..5a55c02269d 100644
--- a/addons/base_crypt/crypt.py
+++ b/addons/base_crypt/crypt.py
@@ -163,7 +163,7 @@ class users(osv.osv):
# an existing column cannot be downsized; thus we use the original
# column size.
'password': fields.function(get_pw, fnct_inv=set_pw, type='char',
- method=True, size=64, string='Password', invisible=True,
+ size=64, string='Password', invisible=True,
store=True),
}
diff --git a/addons/base_crypt/i18n/zh_CN.po b/addons/base_crypt/i18n/zh_CN.po
new file mode 100644
index 00000000000..ee8bd3df6f4
--- /dev/null
+++ b/addons/base_crypt/i18n/zh_CN.po
@@ -0,0 +1,77 @@
+# Chinese (Simplified) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-06-22 08:19+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Simplified) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-23 04:56+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: base_crypt
+#: sql_constraint:res.users:0
+msgid "You can not have two users with the same login !"
+msgstr "你不能同时登录两个用户!"
+
+#. module: base_crypt
+#: model:ir.model,name:base_crypt.model_res_users
+msgid "res.users"
+msgstr "res.users"
+
+#. module: base_crypt
+#: constraint:res.users:0
+msgid "The chosen company is not in the allowed companies for this user"
+msgstr "用户无权操作所选择公司数据"
+
+#. module: base_crypt
+#: code:addons/base_crypt/crypt.py:132
+#, python-format
+msgid "Please specify the password !"
+msgstr "请指定密码!"
+
+#. module: base_crypt
+#: model:ir.module.module,shortdesc:base_crypt.module_meta_information
+msgid "Base - Password Encryption"
+msgstr "Base - Password Encryption"
+
+#. module: base_crypt
+#: code:addons/base_crypt/crypt.py:132
+#, python-format
+msgid "Error"
+msgstr "错误"
+
+#. module: base_crypt
+#: model:ir.module.module,description:base_crypt.module_meta_information
+msgid ""
+"This module replaces the cleartext password in the database with a password "
+"hash,\n"
+"preventing anyone from reading the original password.\n"
+"For your existing user base, the removal of the cleartext passwords occurs "
+"the first time\n"
+"a user logs into the database, after installing base_crypt.\n"
+"After installing this module it won't be possible to recover a forgotten "
+"password for your\n"
+"users, the only solution is for an admin to set a new password.\n"
+"\n"
+"Note: installing this module does not mean you can ignore basic security "
+"measures,\n"
+"as the password is still transmitted unencrypted on the network (by the "
+"client),\n"
+"unless you are using a secure protocol such as XML-RPCS.\n"
+" "
+msgstr ""
+"这个模块在数据库里用密码散列代替原来的明文密码,防止任何人读取到原密码。\n"
+"对于已存在在数据,当安装了base_crypt后,明文密码会在用户第一次登陆数据库的时候清除。\n"
+"在安装了这个模块后将不能恢复已遗忘的用户密码,唯一的解决办法是通过管理员输入一个新密码。\n"
+"注意:安装这个模块并不意味着你可以忽略基本安全措施,\n"
+"除非你用了一个安全协议例如XML-RPCS,否则密码在网络仍然以非加密的形式传输(通过客户端)\n"
+" "
diff --git a/addons/base_report_creator/base_report_creator.py b/addons/base_report_creator/base_report_creator.py
index a026a077c85..29699b9000d 100644
--- a/addons/base_report_creator/base_report_creator.py
+++ b/addons/base_report_creator/base_report_creator.py
@@ -415,7 +415,7 @@ class report_creator(osv.osv):
'model_ids': fields.many2many('ir.model', 'base_report_creator_report_model_rel', 'report_id', 'model_id', 'Reported Objects'),
'field_ids': fields.one2many('base_report_creator.report.fields', 'report_id', 'Fields to Display'),
'filter_ids': fields.one2many('base_report_creator.report.filter', 'report_id', 'Filters'),
- 'sql_query': fields.function(_sql_query_get, method=True, type="text", string='SQL Query', store=True),
+ 'sql_query': fields.function(_sql_query_get, type="text", string='SQL Query', store=True),
'group_ids': fields.many2many('res.groups', 'base_report_creator_group_rel', 'report_id', 'group_id', 'Authorized Groups'),
'menu_id': fields.many2one('ir.ui.menu', "Menu", readonly=True),
}
diff --git a/addons/base_report_designer/plugin/openerp_report_designer.zip b/addons/base_report_designer/plugin/openerp_report_designer.zip
index 47ca560e47d..85c9150cb73 100644
Binary files a/addons/base_report_designer/plugin/openerp_report_designer.zip and b/addons/base_report_designer/plugin/openerp_report_designer.zip differ
diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/package/Addons.xcu b/addons/base_report_designer/plugin/openerp_report_designer/bin/package/Addons.xcu
index 121c49af167..f9c1280202d 100644
--- a/addons/base_report_designer/plugin/openerp_report_designer/bin/package/Addons.xcu
+++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/package/Addons.xcu
@@ -19,7 +19,7 @@
- service:org.openoffice.openerp.report.serverparam?execute
+ service:org.openoffice.openerp.report.change?execute
@@ -283,7 +283,7 @@
- service:org.openoffice.openerp.report.serverparam?execute
+ service:org.openoffice.openerp.report.change?execute
@@ -593,7 +593,7 @@
- service:org.openoffice.openerp.report.serverparam?execute
+ service:org.openoffice.openerp.report.change?execute
diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Change.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Change.py
index d4359a466ca..0b68ab10b01 100644
--- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Change.py
+++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/Change.py
@@ -44,68 +44,96 @@
#
#
##############################################################################
-
+import uno
+import string
+import unohelper
+import xmlrpclib
+from com.sun.star.task import XJobExecutor
if __name__<>"package":
from lib.gui import *
+ from lib.error import ErrorDialog
from lib.functions import *
+ from lib.logreport import *
from lib.rpc import *
+ from ServerParameter import *
+ database="test"
-class Change:
- def __init__(self, aVal= None, sURL=""):
+class Change( unohelper.Base, XJobExecutor ):
+ def __init__(self,ctx):
+ self.ctx = ctx
+ self.module = "openerp_report"
+ self.version = "0.1"
+ desktop=getDesktop()
+ log_detail(self)
+ self.logobj=Logger()
+ doc = desktop.getCurrentComponent()
+ docinfo=doc.getDocumentInfo()
+ self.protocol = {
+ 'XML-RPC': 'http://',
+ 'XML-RPC secure': 'https://',
+ 'NET-RPC': 'socket://',
+ }
+ host=port=protocol=''
+ if docinfo.getUserFieldValue(0):
+ m = re.match('^(http[s]?://|socket://)([\w.\-]+):(\d{1,5})$', docinfo.getUserFieldValue(0) or '')
+ host = m.group(2)
+ port = m.group(3)
+ protocol = m.group(1)
+ if protocol:
+ for (key, value) in self.protocol.iteritems():
+ if value==protocol:
+ protocol=key
+ break
+ else:
+ protocol='XML-RPC'
self.win=DBModalDialog(60, 50, 120, 90, "Connect to Open ERP Server")
self.win.addFixedText("lblVariable", 38, 12, 25, 15, "Server ")
-
- self.win.addEdit("txtHost",-2,9,60,15,sURL[sURL.find("/")+2:sURL.rfind(":")])
+ self.win.addEdit("txtHost",-2,9,60,15, host or 'localhost')
self.win.addFixedText("lblReportName",45 , 31, 15, 15, "Port ")
- self.win.addEdit("txtPort",-2,28,60,15,sURL[sURL.rfind(":")+1:])
+ self.win.addEdit("txtPort",-2,28,60,15, port or "8069")
self.win.addFixedText("lblLoginName", 2, 51, 60, 15, "Protocol Connection")
self.win.addComboListBox("lstProtocol", -2, 48, 60, 15, True)
self.lstProtocol = self.win.getControl( "lstProtocol" )
-# self.lstProtocol.addItem( "XML-RPC", 0)
- #self.lstProtocol.addItem( "XML-RPC secure", 1)
- #self.lstProtocol.addItem( "NET-RPC (faster)", 2)
-
- self.win.addButton( 'btnOK', -2, -5, 30, 15, 'Ok', actionListenerProc = self.btnOk_clicked )
+ self.win.addButton( 'btnNext', -2, -5, 30, 15, 'Next', actionListenerProc = self.btnNext_clicked )
self.win.addButton( 'btnCancel', -2 - 30 - 5 ,-5, 30, 15, 'Cancel', actionListenerProc = self.btnCancel_clicked )
- self.aVal=aVal
- self.protocol = {
- 'XML-RPC': 'http://',
- 'XML-RPC secure': 'https://',
- 'NET-RPC': 'socket://',
- }
+
for i in self.protocol.keys():
self.lstProtocol.addItem(i,self.lstProtocol.getItemCount() )
+ self.win.doModalDialog( "lstProtocol", protocol)
- sValue=self.protocol.keys()[0]
- if sURL<>"":
- sValue=self.protocol.keys()[self.protocol.values().index(sURL[:sURL.find("/")+2])]
-
- self.win.doModalDialog( "lstProtocol", sValue)
-
- def btnOk_clicked(self,oActionEvent):
+ def btnNext_clicked(self,oActionEvent):
global url
- url = self.protocol[self.win.getListBoxSelectedItem("lstProtocol")]+self.win.getEditText("txtHost")+":"+self.win.getEditText("txtPort")
- self.sock=RPCSession(url)
- desktop=getDesktop()
- doc = desktop.getCurrentComponent()
- docinfo=doc.getDocumentInfo()
- docinfo.setUserFieldValue(0,url)
- res=self.sock.listdb()
- if res == -1:
- self.aVal.append(url)
- elif res == 0:
- self.aVal.append("No Database found !!!")
- else:
- self.aVal.append(url)
- self.aVal.append(res)
+ aVal=''
+ #aVal= Fetature used
+ try:
+ url = self.protocol[self.win.getListBoxSelectedItem("lstProtocol")]+self.win.getEditText("txtHost")+":"+self.win.getEditText("txtPort")
+ self.sock=RPCSession(url)
+ desktop=getDesktop()
+ doc = desktop.getCurrentComponent()
+ docinfo=doc.getDocumentInfo()
+ docinfo.setUserFieldValue(0,url)
+ res=self.sock.listdb()
+ self.win.endExecute()
+ ServerParameter(aVal,url)
+ except :
+ import traceback,sys
+ info = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback))
+ self.logobj.log_write('ServerParameter', LOG_ERROR, info)
+ ErrorDialog("Connection to server fail. please check your Server Parameter", "", "Error")
+ self.win.endExecute()
+
+ def btnCancel_clicked(self,oActionEvent):
self.win.endExecute()
+
- def btnCancel_clicked( self, oActionEvent ):
- self.win.endExecute()
+if __name__<>"package" and __name__=="__main__":
+ Change(None)
+elif __name__=="package":
+ g_ImplementationHelper.addImplementation( Change, "org.openoffice.openerp.report.change", ("com.sun.star.task.Job",),)
diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/LoginTest.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/LoginTest.py
index dbd597e1f2d..012c6f896a2 100644
--- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/LoginTest.py
+++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/LoginTest.py
@@ -51,5 +51,5 @@ if __name__<>"package":
class LoginTest:
def __init__(self):
if not loginstatus:
- ServerParameter(None)
+ Change(None)
diff --git a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ServerParameter.py b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ServerParameter.py
index 3cf759e7ada..245cd1dc7ce 100644
--- a/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ServerParameter.py
+++ b/addons/base_report_designer/plugin/openerp_report_designer/bin/script/ServerParameter.py
@@ -59,8 +59,7 @@ if __name__<>"package":
database="test"
class ServerParameter( unohelper.Base, XJobExecutor ):
- def __init__(self,ctx):
- self.ctx = ctx
+ def __init__(self, aVal= None, sURL=""):
self.module = "openerp_report"
self.version = "0.1"
desktop=getDesktop()
@@ -69,19 +68,12 @@ class ServerParameter( unohelper.Base, XJobExecutor ):
doc = desktop.getCurrentComponent()
docinfo=doc.getDocumentInfo()
self.win=DBModalDialog(60, 50, 160, 108, "Server Connection Parameter")
-
self.win.addFixedText("lblVariable", 2, 12, 35, 15, "Server URL")
if docinfo.getUserFieldValue(0)=="":
- docinfo.setUserFieldValue(0,"http://localhost:8069")
- self.win.addEdit("txtHost",-34,9,91,15,docinfo.getUserFieldValue(0))
- self.win.addButton('btnChange',-2 ,9,30,15,'Change', actionListenerProc = self.btnChange_clicked )
-
+ docinfo.setUserFieldValue(0,"http://localhost:8069")
+ self.win.addFixedText("txtHost",-20,12,105,15,sURL)
self.win.addFixedText("lblDatabaseName", 6, 31, 31, 15, "Database")
- #self.win.addFixedText("lblMsg", -2,28,123,15)
-# self.win.addComboListBox("lstDatabase", -2,28,123,15, True)
-# self.lstDatabase = self.win.getControl( "lstDatabase" )
- #self.win.selectListBoxItem( "lstDatabase", docinfo.getUserFieldValue(2), True )
- #self.win.setEnabled("lblMsg",False)
+
self.win.addFixedText("lblLoginName", 17, 51, 20, 15, "Login")
self.win.addEdit("txtLoginName",-2,48,123,15,docinfo.getUserFieldValue(1))
@@ -92,8 +84,9 @@ class ServerParameter( unohelper.Base, XJobExecutor ):
self.win.addButton('btnOK',-2 ,-5, 60,15,'Connect' ,actionListenerProc = self.btnOk_clicked )
-
- self.win.addButton('btnCancel',-2 - 60 - 5 ,-5, 35,15,'Cancel' ,actionListenerProc = self.btnCancel_clicked )
+ self.win.addButton('btnPrevious',15 -80 ,-5,50,15,'Previous',actionListenerProc = self.btnPrevious_clicked)
+ self.win.addButton('btnCancel',-2 - 110 - 5 ,-5, 35,15,'Cancel' ,actionListenerProc = self.btnCancel_clicked )
+
sValue=""
if docinfo.getUserFieldValue(0)<>"":
global url
@@ -125,7 +118,6 @@ class ServerParameter( unohelper.Base, XJobExecutor ):
def btnOk_clicked(self,oActionEvent):
-
sLogin=self.win.getEditText("txtLoginName")
sPassword=self.win.getEditText("txtPassword")
global url
@@ -136,20 +128,14 @@ class ServerParameter( unohelper.Base, XJobExecutor ):
sDatabase=self.win.getListBoxSelectedItem("lstDatabase")
self.sock=RPCSession(url)
UID = self.sock.login(sDatabase,sLogin,sPassword)
- if not UID :
+ if not UID or UID==-1 :
ErrorDialog("Connection Refuse...","Please enter valid Login/Password")
- self.win.endExecute()
- try:
- ids_module =self.sock.execute(sDatabase, UID, sPassword, 'ir.module.module', 'search', [('name','=','base_report_designer'),('state', '=', 'installed')])
- except :
- import traceback,sys
- info = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback))
- self.logobj.log_write('ServerParameter', LOG_ERROR, info)
-
+ # self.win.endExecute()
+ ids_module =self.sock.execute(sDatabase, UID, sPassword, 'ir.module.module', 'search', [('name','=','base_report_designer'),('state', '=', 'installed')])
if not len(ids_module):
ErrorDialog("Please Install base_report_designer module", "", "Module Uninstalled Error")
self.logobj.log_write('Module Not Found',LOG_WARNING, ':base_report_designer not install in database %s' % (sDatabase))
- self.win.endExecute()
+ #self.win.endExecute()
else:
desktop=getDesktop()
doc = desktop.getCurrentComponent()
@@ -171,27 +157,15 @@ class ServerParameter( unohelper.Base, XJobExecutor ):
self.logobj.log_write('successful login',LOG_INFO, ':successful login from %s using database %s' % (sLogin, sDatabase))
self.win.endExecute()
+
def btnCancel_clicked( self, oActionEvent ):
self.win.endExecute()
- def btnChange_clicked(self,oActionEvent):
- aVal=[]
- url= self.win.getEditText("txtHost")
- Change(aVal,url)
- if aVal[1]== -1:
- self.win.getEditText("lstDatabase")
- self.win.removeListBoxItems("lstDatabase", 0, self.win.getListBoxItemCount("lstDatabase"))
- self.win.setEditText("txtHost",aVal[0])
- for i in range(len(aVal[1])):
- self.lstDatabase.addItem(aVal[1][i],i)
- elif aVal[1]==0:
- ErrorDialog(aVal[0],"")
- else:
- self.win.setEditText("txtHost",aVal[0])
- self.win.removeListBoxItems("lstDatabase", 0, self.win.getListBoxItemCount("lstDatabase"))
- for i in range(len(aVal[1])):
- self.lstDatabase.addItem(aVal[1][i],i)
-
+ def btnPrevious_clicked(self,oActionEvent):
+ self.win.endExecute()
+ Change(None)
+ self.win.endExecute()
+
if __name__<>"package" and __name__=="__main__":
ServerParameter(None)
diff --git a/addons/base_tools/i18n/zh_CN.po b/addons/base_tools/i18n/zh_CN.po
new file mode 100644
index 00000000000..4dd9285396e
--- /dev/null
+++ b/addons/base_tools/i18n/zh_CN.po
@@ -0,0 +1,32 @@
+# Chinese (Simplified) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-06-29 01:21+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Simplified) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-30 04:34+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: base_tools
+#: model:ir.module.module,shortdesc:base_tools.module_meta_information
+msgid "Common base for tools modules"
+msgstr "base_tools"
+
+#. module: base_tools
+#: model:ir.module.module,description:base_tools.module_meta_information
+msgid ""
+"\n"
+" "
+msgstr ""
+"\n"
+" "
diff --git a/addons/caldav/i18n/fi.po b/addons/caldav/i18n/fi.po
new file mode 100644
index 00000000000..445d25ee8c1
--- /dev/null
+++ b/addons/caldav/i18n/fi.po
@@ -0,0 +1,818 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-06-28 09:32+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-29 04:43+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: caldav
+#: view:basic.calendar:0
+msgid "Value Mapping"
+msgstr ""
+
+#. module: caldav
+#: help:caldav.browse,url:0
+msgid "Url of the caldav server, use for synchronization"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.alias,name:0
+msgid "Filename"
+msgstr "Tiedostonnimi"
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_calendar_event_export
+msgid "Event Export"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.subscribe:0
+msgid "Provide path for Remote Calendar"
+msgstr ""
+
+#. module: caldav
+#: model:ir.actions.act_window,name:caldav.action_calendar_event_import_values
+msgid "Import .ics File"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.export:0
+msgid "_Close"
+msgstr ""
+
+#. module: caldav
+#: selection:basic.calendar.attributes,type:0
+#: selection:basic.calendar.lines,name:0
+msgid "Attendee"
+msgstr "Osallistuja"
+
+#. module: caldav
+#: sql_constraint:basic.calendar.fields:0
+msgid "Can not map a field more than once"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:787
+#: code:addons/caldav/calendar.py:877
+#: code:addons/caldav/wizard/calendar_event_import.py:63
+#, python-format
+msgid "Warning !"
+msgstr "Varoitus !"
+
+#. module: caldav
+#: field:basic.calendar.lines,object_id:0
+msgid "Object"
+msgstr "Objekti"
+
+#. module: caldav
+#: view:basic.calendar:0
+msgid "Todo"
+msgstr "Tehtävät"
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_user_preference
+msgid "User preference Form"
+msgstr ""
+
+#. module: caldav
+#: field:user.preference,service:0
+msgid "Services"
+msgstr "Palvelut"
+
+#. module: caldav
+#: selection:basic.calendar.fields,fn:0
+msgid "Expression as constant"
+msgstr ""
+
+#. module: caldav
+#: selection:user.preference,device:0
+msgid "Evolution"
+msgstr "Evoluutio"
+
+#. module: caldav
+#: view:calendar.event.import:0
+#: view:calendar.event.subscribe:0
+msgid "Ok"
+msgstr "OK"
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:877
+#, python-format
+msgid "Please provide proper configuration of \"%s\" in Calendar Lines"
+msgstr ""
+
+#. module: caldav
+#: field:calendar.event.export,name:0
+msgid "File name"
+msgstr "Tiedostonimi"
+
+#. module: caldav
+#: field:caldav.browse,url:0
+msgid "Caldav Server"
+msgstr "Caldav palvelin"
+
+#. module: caldav
+#: code:addons/caldav/wizard/calendar_event_subscribe.py:59
+#, python-format
+msgid "Error!"
+msgstr "Virhe!"
+
+#. module: caldav
+#: help:caldav.browse,caldav_doc_file:0
+msgid "download full caldav Documentation."
+msgstr ""
+
+#. module: caldav
+#: selection:user.preference,device:0
+msgid "iPhone"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/caldav_browse.py:32
+#, python-format
+msgid ""
+"\n"
+" * Webdav server that provides remote access to calendar\n"
+" * Synchronisation of calendar using WebDAV\n"
+" * Customize calendar event and todo attribute with any of OpenERP model\n"
+" * Provides iCal Import/Export functionality\n"
+"\n"
+" To access Calendars using CalDAV clients, point them to:\n"
+" "
+"http://HOSTNAME:PORT/webdav/DATABASE_NAME/calendars/users/USERNAME/c\n"
+"\n"
+" To access OpenERP Calendar using WebCal to remote site use the URL "
+"like:\n"
+" "
+"http://HOSTNAME:PORT/webdav/DATABASE_NAME/Calendars/CALENDAR_NAME.ics\n"
+"\n"
+" Where,\n"
+" HOSTNAME: Host on which OpenERP server(With webdav) is running\n"
+" PORT : Port on which OpenERP server is running (By Default : 8069)\n"
+" DATABASE_NAME: Name of database on which OpenERP Calendar is "
+"created\n"
+" CALENDAR_NAME: Name of calendar to access\n"
+" "
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/caldav_browse.py:147
+#, python-format
+msgid ""
+"\n"
+"Prerequire\n"
+"----------\n"
+"If you are using thunderbird, first you need to install the lightning "
+"module\n"
+"http://www.mozilla.org/projects/calendar/lightning/\n"
+"\n"
+"configuration\n"
+"-------------\n"
+"\n"
+"1. Go to Calendar View\n"
+"\n"
+"2. File -> New Calendar\n"
+"\n"
+"3. Chosse \"On the Network\"\n"
+"\n"
+"4. for format choose CalDav\n"
+" and as location the url given above (ie : "
+"http://host.com:8069/webdav/db/calendars/users/demo/c/Meetings)\n"
+" \n"
+"5. Choose a name and a color for the Calendar, and we advice you to uncheck "
+"\"alarm\"\n"
+"\n"
+"6. Then put your openerp login and password (to give the password only check "
+"the box \"Use password Manager to remember this password\"\n"
+"\n"
+"7. Then Finish, your meetings should appear now in your calendar view\n"
+msgstr ""
+
+#. module: caldav
+#: selection:basic.calendar,type:0
+#: selection:basic.calendar.attributes,type:0
+#: selection:basic.calendar.lines,name:0
+msgid "TODO"
+msgstr "Tehtävät"
+
+#. module: caldav
+#: view:calendar.event.export:0
+msgid "Export ICS"
+msgstr ""
+
+#. module: caldav
+#: selection:basic.calendar.fields,fn:0
+msgid "Use the field"
+msgstr "Käytä kenttää"
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:787
+#, python-format
+msgid "Can not create line \"%s\" more than once"
+msgstr ""
+
+#. module: caldav
+#: view:basic.calendar:0
+#: field:basic.calendar,line_ids:0
+#: model:ir.model,name:caldav.model_basic_calendar_lines
+msgid "Calendar Lines"
+msgstr "Kalenteririvit"
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_calendar_event_subscribe
+msgid "Event subscribe"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.import:0
+msgid "Import ICS"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.import:0
+#: view:calendar.event.subscribe:0
+#: view:user.preference:0
+msgid "_Cancel"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_event
+msgid "basic.calendar.event"
+msgstr ""
+
+#. module: caldav
+#: view:basic.calendar:0
+#: selection:basic.calendar,type:0
+#: selection:basic.calendar.attributes,type:0
+#: selection:basic.calendar.lines,name:0
+msgid "Event"
+msgstr ""
+
+#. module: caldav
+#: field:document.directory,calendar_collection:0
+#: field:user.preference,collection:0
+msgid "Calendar Collection"
+msgstr ""
+
+#. module: caldav
+#: constraint:document.directory:0
+msgid "Error! You can not create recursive Directories."
+msgstr "Virhe! Et voi luoda rekursiivisia kansioita."
+
+#. module: caldav
+#: view:user.preference:0
+msgid "_Open"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar,type:0
+#: field:basic.calendar.attributes,type:0
+#: field:basic.calendar.fields,type_id:0
+#: field:basic.calendar.lines,name:0
+msgid "Type"
+msgstr "Tyyppi"
+
+#. module: caldav
+#: help:calendar.event.export,name:0
+msgid "Save in .ics format"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:1291
+#, python-format
+msgid "Error !"
+msgstr "Virhe !"
+
+#. module: caldav
+#: code:addons/caldav/wizard/caldav_browse.py:128
+#, python-format
+msgid ""
+"\n"
+" 1. Go to Calendar View\n"
+"\n"
+" 2. File -> New -> Calendar\n"
+"\n"
+" 3. Fill the form \n"
+" - type : CalDav\n"
+" - name : Whaterver you want (ie : Meeting)\n"
+" - url : "
+"http://HOST:PORT/webdav/DB_NAME/calendars/users/USER/c/Meetings (ie : "
+"http://localhost:8069/webdav/db_1/calendars/users/demo/c/Meetings) the one "
+"given on the top of this window\n"
+" - uncheck \"User SSL\"\n"
+" - Username : Your username (ie : Demo)\n"
+" - Refresh : everytime you want that evolution synchronize the data "
+"with the server\n"
+"\n"
+" 4. Click ok and give your openerp password\n"
+"\n"
+" 5. A new calendar named with the name you gave should appear on the left "
+"side. \n"
+" "
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_attributes
+msgid "Calendar attributes"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_caldav_browse
+msgid "Caldav Browse"
+msgstr ""
+
+#. module: caldav
+#: model:ir.module.module,description:caldav.module_meta_information
+msgid ""
+"\n"
+" This module Contains basic functionality for caldav system like: \n"
+" - Webdav server that provides remote access to calendar\n"
+" - Synchronisation of calendar using WebDAV\n"
+" - Customize calendar event and todo attribute with any of OpenERP model\n"
+" - Provides iCal Import/Export functionality\n"
+"\n"
+" To access Calendars using CalDAV clients, point them to:\n"
+" "
+"http://HOSTNAME:PORT/webdav/DATABASE_NAME/calendars/users/USERNAME/c\n"
+"\n"
+" To access OpenERP Calendar using WebCal to remote site use the URL "
+"like:\n"
+" "
+"http://HOSTNAME:PORT/webdav/DATABASE_NAME/Calendars/CALENDAR_NAME.ics\n"
+"\n"
+" Where,\n"
+" HOSTNAME: Host on which OpenERP server(With webdav) is running\n"
+" PORT : Port on which OpenERP server is running (By Default : 8069)\n"
+" DATABASE_NAME: Name of database on which OpenERP Calendar is "
+"created\n"
+" CALENDAR_NAME: Name of calendar to access\n"
+msgstr ""
+
+#. module: caldav
+#: selection:user.preference,device:0
+msgid "Android based device"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar,create_date:0
+msgid "Created Date"
+msgstr "Luontipäivä"
+
+#. module: caldav
+#: view:basic.calendar:0
+msgid "Attributes Mapping"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_document_directory
+msgid "Directory"
+msgstr "Hakemisto"
+
+#. module: caldav
+#: field:calendar.event.subscribe,url_path:0
+msgid "Provide path for remote calendar"
+msgstr ""
+
+#. module: caldav
+#: view:caldav.browse:0
+msgid "_Ok"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.lines,domain:0
+msgid "Domain"
+msgstr "Toimialue"
+
+#. module: caldav
+#: view:calendar.event.subscribe:0
+msgid "_Subscribe"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar,user_id:0
+msgid "Owner"
+msgstr "Omistaja"
+
+#. module: caldav
+#: view:basic.calendar:0
+#: field:basic.calendar.alias,cal_line_id:0
+#: field:basic.calendar.lines,calendar_id:0
+#: model:ir.ui.menu,name:caldav.menu_calendar
+#: field:user.preference,calendar:0
+msgid "Calendar"
+msgstr "kalenteri"
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:41
+#, python-format
+msgid ""
+"Please install python-vobject from http://vobject.skyhouseconsulting.com/"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/calendar_event_import.py:63
+#, python-format
+msgid "Invalid format of the ics, file can not be imported"
+msgstr "Virheellinen ics formaatti, tiedostoa ei voi tuoda"
+
+#. module: caldav
+#: selection:user.preference,service:0
+msgid "CalDAV"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.fields,field_id:0
+msgid "OpenObject Field"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.alias,res_id:0
+msgid "Res. ID"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.subscribe:0
+msgid "Message..."
+msgstr "Viesti..."
+
+#. module: caldav
+#: selection:user.preference,device:0
+msgid "Other"
+msgstr "Muu"
+
+#. module: caldav
+#: view:basic.calendar:0
+#: field:basic.calendar,has_webcal:0
+msgid "WebCal"
+msgstr ""
+
+#. module: caldav
+#: view:document.directory:0
+#: model:ir.actions.act_window,name:caldav.action_calendar_collection_form
+#: model:ir.ui.menu,name:caldav.menu_calendar_collection
+msgid "Calendar Collections"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:813
+#: sql_constraint:basic.calendar.alias:0
+#, python-format
+msgid "The same filename cannot apply to two records!"
+msgstr ""
+
+#. module: caldav
+#: sql_constraint:document.directory:0
+msgid "Directory cannot be parent of itself!"
+msgstr ""
+
+#. module: caldav
+#: view:basic.calendar:0
+#: field:document.directory,calendar_ids:0
+#: model:ir.actions.act_window,name:caldav.action_caldav_form
+#: model:ir.ui.menu,name:caldav.menu_caldav_directories
+msgid "Calendars"
+msgstr "Kalenterit"
+
+#. module: caldav
+#: field:basic.calendar,collection_id:0
+msgid "Collection"
+msgstr "Kokoelma"
+
+#. module: caldav
+#: field:basic.calendar,write_date:0
+msgid "Write Date"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/caldav_browse.py:104
+#, python-format
+msgid ""
+"\n"
+"Prerequire\n"
+"----------\n"
+"There is no buit-in way to synchronize calendar with caldav.\n"
+"So you need to install a third part software : Calendar (CalDav) \n"
+"for now it's the only one\n"
+"\n"
+"configuration\n"
+"-------------\n"
+"\n"
+"1. Open Calendar Sync\n"
+" I'll get an interface with 2 tabs\n"
+" Stay on the first one\n"
+" \n"
+"2. CaDAV Calendar URL : put the URL given above (ie : "
+"http://host.com:8069/webdav/db/calendars/users/demo/c/Meetings)\n"
+"\n"
+"3. Put your openerp username and password\n"
+"\n"
+"4. If your server don't use SSL, you'll get a warnign, say \"Yes\"\n"
+"\n"
+"5. Then you can synchronize manually or custom the settings to synchronize "
+"every x minutes.\n"
+" \n"
+" "
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/caldav_browse.py:53
+#, python-format
+msgid ""
+"\n"
+" For SSL specific configuration see the documentation below\n"
+"\n"
+"Now, to setup the calendars, you need to:\n"
+"\n"
+"1. Click on the \"Settings\" and go to the \"Mail, Contacts, Calendars\" "
+"page.\n"
+"2. Go to \"Add account...\"\n"
+"3. Click on \"Other\"\n"
+"4. From the \"Calendars\" group, select \"Add CalDAV Account\"\n"
+"\n"
+"5. Enter the host's name \n"
+" (ie : if the url is http://openerp.com:8069/webdav/db_1/calendars/ , "
+"openerp.com is the host)\n"
+"\n"
+"6. Fill Username and password with your openerp login and password\n"
+"\n"
+"7. As a description, you can either leave the server's name or\n"
+" something like \"OpenERP calendars\".\n"
+"\n"
+"9. If you are not using a SSL server, you'll get an error, do not worry and "
+"push \"Continue\"\n"
+"\n"
+"10. Then click to \"Advanced Settings\" to specify the right\n"
+" ports and paths. \n"
+" \n"
+"11. Specify the port for the OpenERP server: 8071 for SSL, 8069 without.\n"
+"\n"
+"12. Set the \"Account URL\" to the right path of the OpenERP webdav:\n"
+" the url given by the wizard (ie : "
+"http://my.server.ip:8069/webdav/dbname/calendars/ )\n"
+"\n"
+"11. Click on Done. The phone will hopefully connect to the OpenERP server\n"
+" and verify it can use the account.\n"
+"\n"
+"12. Go to the main menu of the iPhone and enter the Calendar application.\n"
+" Your OpenERP calendars will be visible inside the selection of the\n"
+" \"Calendars\" button.\n"
+" Note that when creating a new calendar entry, you will have to specify\n"
+" which calendar it should be saved at.\n"
+"\n"
+"\n"
+"\n"
+"IF you need SSL (and your certificate is not a verified one, as usual),\n"
+"then you first will need to let the iPhone trust that. Follow these\n"
+"steps:\n"
+"\n"
+" s1. Open Safari and enter the https location of the OpenERP server:\n"
+" https://my.server.ip:8071/\n"
+" (assuming you have the server at \"my.server.ip\" and the HTTPS port\n"
+" is the default 8071)\n"
+" s2. Safari will try to connect and issue a warning about the "
+"certificate\n"
+" used. Inspect the certificate and click \"Accept\" so that iPhone\n"
+" now trusts it. \n"
+" "
+msgstr ""
+
+#. module: caldav
+#: sql_constraint:document.directory:0
+msgid "The directory name must be unique !"
+msgstr "Hakemiston nimen tulee olla uniikki !"
+
+#. module: caldav
+#: view:user.preference:0
+msgid "User Preference"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/calendar_event_subscribe.py:59
+#, python-format
+msgid "Please provide Proper URL !"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_timezone
+msgid "basic.calendar.timezone"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.fields,expr:0
+msgid "Expression"
+msgstr "Lauseke"
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_attendee
+msgid "basic.calendar.attendee"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_alias
+msgid "basic.calendar.alias"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.import:0
+#: field:calendar.event.import,file_path:0
+msgid "Select ICS file"
+msgstr ""
+
+#. module: caldav
+#: field:caldav.browse,caldav_doc_file:0
+msgid "Caldav Document"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.lines,mapping_ids:0
+msgid "Fields Mapping"
+msgstr "Kenttien kartoitukset"
+
+#. module: caldav
+#: view:caldav.browse:0
+msgid "Browse caldav"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar
+msgid "basic.calendar"
+msgstr ""
+
+#. module: caldav
+#: view:basic.calendar:0
+msgid "Other Info"
+msgstr "Muu tieto"
+
+#. module: caldav
+#: field:user.preference,device:0
+msgid "Software/Devices"
+msgstr "Ohjelmisto/Laitteet"
+
+#. module: caldav
+#: help:basic.calendar,has_webcal:0
+msgid ""
+"Also export a .ics entry next to the calendar folder, with WebCal "
+"content."
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.fields,fn:0
+msgid "Function"
+msgstr "Toiminto"
+
+#. module: caldav
+#: view:basic.calendar:0
+#: field:basic.calendar,description:0
+#: view:caldav.browse:0
+#: field:caldav.browse,description:0
+msgid "Description"
+msgstr "Kuvaus"
+
+#. module: caldav
+#: help:basic.calendar.alias,cal_line_id:0
+msgid "The calendar/line this mapping applies to"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.fields,mapping:0
+msgid "Mapping"
+msgstr "Mäppäys"
+
+#. module: caldav
+#: code:addons/caldav/wizard/calendar_event_import.py:86
+#, python-format
+msgid "Import Sucessful"
+msgstr "Tuonti onnistui"
+
+#. module: caldav
+#: view:calendar.event.import:0
+msgid "_Import"
+msgstr "_Tuo"
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_calendar_event_import
+msgid "Event Import"
+msgstr ""
+
+#. module: caldav
+#: selection:basic.calendar.fields,fn:0
+msgid "Interval in hours"
+msgstr "Väli tuntia"
+
+#. module: caldav
+#: view:calendar.event.subscribe:0
+msgid "Subscribe to Remote Calendar"
+msgstr ""
+
+#. module: caldav
+#: help:basic.calendar,calendar_color:0
+msgid "For supporting clients, the color of the calendar entries"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar,name:0
+#: field:basic.calendar.attributes,name:0
+#: field:basic.calendar.fields,name:0
+msgid "Name"
+msgstr "Nimi"
+
+#. module: caldav
+#: selection:basic.calendar.attributes,type:0
+#: selection:basic.calendar.lines,name:0
+msgid "Alarm"
+msgstr "Hälytys"
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_alarm
+msgid "basic.calendar.alarm"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:1291
+#, python-format
+msgid "Attendee must have an Email Id"
+msgstr ""
+
+#. module: caldav
+#: model:ir.actions.act_window,name:caldav.action_calendar_event_export_values
+msgid "Export .ics File"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:41
+#, python-format
+msgid "vobject Import Error!"
+msgstr ""
+
+#. module: caldav
+#: field:calendar.event.export,file_path:0
+msgid "Save ICS file"
+msgstr ""
+
+#. module: caldav
+#: selection:user.preference,device:0
+msgid "Sunbird/Thunderbird"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar,calendar_order:0
+msgid "Order"
+msgstr "Järjestys"
+
+#. module: caldav
+#: model:ir.module.module,shortdesc:caldav.module_meta_information
+msgid "Share Calendar using CalDAV"
+msgstr "Jaa kalenteri käyttäen CalDAV:ia"
+
+#. module: caldav
+#: field:basic.calendar,calendar_color:0
+msgid "Color"
+msgstr "Väri"
+
+#. module: caldav
+#: view:basic.calendar:0
+msgid "MY"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_fields
+msgid "Calendar fields"
+msgstr "Kalenterikentät"
+
+#. module: caldav
+#: view:calendar.event.import:0
+msgid "Import Message"
+msgstr ""
+
+#. module: caldav
+#: model:ir.actions.act_window,name:caldav.action_calendar_event_subscribe
+#: model:ir.actions.act_window,name:caldav.action_calendar_event_subscribe_values
+msgid "Subscribe"
+msgstr "Tilaa"
+
+#. module: caldav
+#: sql_constraint:document.directory:0
+msgid "Directory must have a parent or a storage"
+msgstr "Hakemistolla täytyy olla ylätason hakemisto tai tietovarasto"
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_todo
+msgid "basic.calendar.todo"
+msgstr ""
+
+#. module: caldav
+#: help:basic.calendar,calendar_order:0
+msgid "For supporting clients, the order of this folder among the calendars"
+msgstr ""
diff --git a/addons/caldav/i18n/tr.po b/addons/caldav/i18n/tr.po
index c88efae7f95..54e72a958c6 100644
--- a/addons/caldav/i18n/tr.po
+++ b/addons/caldav/i18n/tr.po
@@ -8,24 +8,24 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2011-05-29 10:44+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2011-06-20 20:57+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: 2011-05-30 04:59+0000\n"
-"X-Generator: Launchpad (build 12959)\n"
+"X-Launchpad-Export-Date: 2011-06-21 04:37+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: caldav
#: view:basic.calendar:0
msgid "Value Mapping"
-msgstr ""
+msgstr "Değer Eşleme"
#. module: caldav
#: help:caldav.browse,url:0
msgid "Url of the caldav server, use for synchronization"
-msgstr ""
+msgstr "Caldav sunucusu url si, senkronize etmek için kullanın"
#. module: caldav
#: field:basic.calendar.alias,name:0
@@ -35,17 +35,17 @@ msgstr "Dosya ismi"
#. module: caldav
#: model:ir.model,name:caldav.model_calendar_event_export
msgid "Event Export"
-msgstr ""
+msgstr "Olay Dışaaktarımı"
#. module: caldav
#: view:calendar.event.subscribe:0
msgid "Provide path for Remote Calendar"
-msgstr ""
+msgstr "Uzaktan Takvim yolunu belirt"
#. module: caldav
#: model:ir.actions.act_window,name:caldav.action_calendar_event_import_values
msgid "Import .ics File"
-msgstr ""
+msgstr ".ics Dosyası İçe aktar"
#. module: caldav
#: view:calendar.event.export:0
@@ -61,7 +61,7 @@ msgstr "Katılımcı"
#. module: caldav
#: sql_constraint:basic.calendar.fields:0
msgid "Can not map a field more than once"
-msgstr ""
+msgstr "Birden çok alan eşleştirilemiyor"
#. module: caldav
#: code:addons/caldav/calendar.py:787
@@ -94,12 +94,12 @@ msgstr "Hizmetler"
#. module: caldav
#: selection:basic.calendar.fields,fn:0
msgid "Expression as constant"
-msgstr ""
+msgstr "Sabit İfade"
#. module: caldav
#: selection:user.preference,device:0
msgid "Evolution"
-msgstr ""
+msgstr "Evrim"
#. module: caldav
#: view:calendar.event.import:0
@@ -127,12 +127,12 @@ msgstr "Caldav Sunucusu"
#: code:addons/caldav/wizard/calendar_event_subscribe.py:59
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "Hata!"
#. module: caldav
#: help:caldav.browse,caldav_doc_file:0
msgid "download full caldav Documentation."
-msgstr ""
+msgstr "Tam calsav Belgesi indir"
#. module: caldav
#: selection:user.preference,device:0
@@ -210,7 +210,7 @@ msgstr "YAPILACAK"
#. module: caldav
#: view:calendar.event.export:0
msgid "Export ICS"
-msgstr ""
+msgstr "ICS Dışaaktar"
#. module: caldav
#: selection:basic.calendar.fields,fn:0
@@ -221,7 +221,7 @@ msgstr "Alanı Kullan"
#: code:addons/caldav/calendar.py:787
#, python-format
msgid "Can not create line \"%s\" more than once"
-msgstr ""
+msgstr "\"%s\" Satırı birden çok oluşturulamıyor"
#. module: caldav
#: view:basic.calendar:0
@@ -233,24 +233,24 @@ msgstr "Takvim Satırları"
#. module: caldav
#: model:ir.model,name:caldav.model_calendar_event_subscribe
msgid "Event subscribe"
-msgstr ""
+msgstr "Olay aboneliği"
#. module: caldav
#: view:calendar.event.import:0
msgid "Import ICS"
-msgstr ""
+msgstr "ICS içeaktar"
#. module: caldav
#: view:calendar.event.import:0
#: view:calendar.event.subscribe:0
#: view:user.preference:0
msgid "_Cancel"
-msgstr ""
+msgstr "_Vazgeç"
#. module: caldav
#: model:ir.model,name:caldav.model_basic_calendar_event
msgid "basic.calendar.event"
-msgstr ""
+msgstr "temel.Etkinlik.olay"
#. module: caldav
#: view:basic.calendar:0
@@ -258,7 +258,7 @@ msgstr ""
#: selection:basic.calendar.attributes,type:0
#: selection:basic.calendar.lines,name:0
msgid "Event"
-msgstr ""
+msgstr "Etkinlik"
#. module: caldav
#: field:document.directory,calendar_collection:0
diff --git a/addons/caldav/i18n/zh_CN.po b/addons/caldav/i18n/zh_CN.po
new file mode 100644
index 00000000000..8cdf821ca45
--- /dev/null
+++ b/addons/caldav/i18n/zh_CN.po
@@ -0,0 +1,818 @@
+# Chinese (Simplified) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-07-04 10:45+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Simplified) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-07-05 04:33+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: caldav
+#: view:basic.calendar:0
+msgid "Value Mapping"
+msgstr "值列表"
+
+#. module: caldav
+#: help:caldav.browse,url:0
+msgid "Url of the caldav server, use for synchronization"
+msgstr "caldav服务器网址,用于同步"
+
+#. module: caldav
+#: field:basic.calendar.alias,name:0
+msgid "Filename"
+msgstr "文件名"
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_calendar_event_export
+msgid "Event Export"
+msgstr "事件导出"
+
+#. module: caldav
+#: view:calendar.event.subscribe:0
+msgid "Provide path for Remote Calendar"
+msgstr "提供远程日历路径"
+
+#. module: caldav
+#: model:ir.actions.act_window,name:caldav.action_calendar_event_import_values
+msgid "Import .ics File"
+msgstr "导入 .ics 文件"
+
+#. module: caldav
+#: view:calendar.event.export:0
+msgid "_Close"
+msgstr "关闭(_C):"
+
+#. module: caldav
+#: selection:basic.calendar.attributes,type:0
+#: selection:basic.calendar.lines,name:0
+msgid "Attendee"
+msgstr "参与者"
+
+#. module: caldav
+#: sql_constraint:basic.calendar.fields:0
+msgid "Can not map a field more than once"
+msgstr "不能映射,相关字段多于一个"
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:787
+#: code:addons/caldav/calendar.py:877
+#: code:addons/caldav/wizard/calendar_event_import.py:63
+#, python-format
+msgid "Warning !"
+msgstr "警告!"
+
+#. module: caldav
+#: field:basic.calendar.lines,object_id:0
+msgid "Object"
+msgstr "对象"
+
+#. module: caldav
+#: view:basic.calendar:0
+msgid "Todo"
+msgstr "待办事项"
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_user_preference
+msgid "User preference Form"
+msgstr "用户编好"
+
+#. module: caldav
+#: field:user.preference,service:0
+msgid "Services"
+msgstr "服务"
+
+#. module: caldav
+#: selection:basic.calendar.fields,fn:0
+msgid "Expression as constant"
+msgstr "表现像常量"
+
+#. module: caldav
+#: selection:user.preference,device:0
+msgid "Evolution"
+msgstr "演变"
+
+#. module: caldav
+#: view:calendar.event.import:0
+#: view:calendar.event.subscribe:0
+msgid "Ok"
+msgstr "确定"
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:877
+#, python-format
+msgid "Please provide proper configuration of \"%s\" in Calendar Lines"
+msgstr "在日程表明细中请为 \"%s\" 进行合适的设置"
+
+#. module: caldav
+#: field:calendar.event.export,name:0
+msgid "File name"
+msgstr "文件名"
+
+#. module: caldav
+#: field:caldav.browse,url:0
+msgid "Caldav Server"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/calendar_event_subscribe.py:59
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: caldav
+#: help:caldav.browse,caldav_doc_file:0
+msgid "download full caldav Documentation."
+msgstr ""
+
+#. module: caldav
+#: selection:user.preference,device:0
+msgid "iPhone"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/caldav_browse.py:32
+#, python-format
+msgid ""
+"\n"
+" * Webdav server that provides remote access to calendar\n"
+" * Synchronisation of calendar using WebDAV\n"
+" * Customize calendar event and todo attribute with any of OpenERP model\n"
+" * Provides iCal Import/Export functionality\n"
+"\n"
+" To access Calendars using CalDAV clients, point them to:\n"
+" "
+"http://HOSTNAME:PORT/webdav/DATABASE_NAME/calendars/users/USERNAME/c\n"
+"\n"
+" To access OpenERP Calendar using WebCal to remote site use the URL "
+"like:\n"
+" "
+"http://HOSTNAME:PORT/webdav/DATABASE_NAME/Calendars/CALENDAR_NAME.ics\n"
+"\n"
+" Where,\n"
+" HOSTNAME: Host on which OpenERP server(With webdav) is running\n"
+" PORT : Port on which OpenERP server is running (By Default : 8069)\n"
+" DATABASE_NAME: Name of database on which OpenERP Calendar is "
+"created\n"
+" CALENDAR_NAME: Name of calendar to access\n"
+" "
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/caldav_browse.py:147
+#, python-format
+msgid ""
+"\n"
+"Prerequire\n"
+"----------\n"
+"If you are using thunderbird, first you need to install the lightning "
+"module\n"
+"http://www.mozilla.org/projects/calendar/lightning/\n"
+"\n"
+"configuration\n"
+"-------------\n"
+"\n"
+"1. Go to Calendar View\n"
+"\n"
+"2. File -> New Calendar\n"
+"\n"
+"3. Chosse \"On the Network\"\n"
+"\n"
+"4. for format choose CalDav\n"
+" and as location the url given above (ie : "
+"http://host.com:8069/webdav/db/calendars/users/demo/c/Meetings)\n"
+" \n"
+"5. Choose a name and a color for the Calendar, and we advice you to uncheck "
+"\"alarm\"\n"
+"\n"
+"6. Then put your openerp login and password (to give the password only check "
+"the box \"Use password Manager to remember this password\"\n"
+"\n"
+"7. Then Finish, your meetings should appear now in your calendar view\n"
+msgstr ""
+
+#. module: caldav
+#: selection:basic.calendar,type:0
+#: selection:basic.calendar.attributes,type:0
+#: selection:basic.calendar.lines,name:0
+msgid "TODO"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.export:0
+msgid "Export ICS"
+msgstr ""
+
+#. module: caldav
+#: selection:basic.calendar.fields,fn:0
+msgid "Use the field"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:787
+#, python-format
+msgid "Can not create line \"%s\" more than once"
+msgstr ""
+
+#. module: caldav
+#: view:basic.calendar:0
+#: field:basic.calendar,line_ids:0
+#: model:ir.model,name:caldav.model_basic_calendar_lines
+msgid "Calendar Lines"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_calendar_event_subscribe
+msgid "Event subscribe"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.import:0
+msgid "Import ICS"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.import:0
+#: view:calendar.event.subscribe:0
+#: view:user.preference:0
+msgid "_Cancel"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_event
+msgid "basic.calendar.event"
+msgstr ""
+
+#. module: caldav
+#: view:basic.calendar:0
+#: selection:basic.calendar,type:0
+#: selection:basic.calendar.attributes,type:0
+#: selection:basic.calendar.lines,name:0
+msgid "Event"
+msgstr ""
+
+#. module: caldav
+#: field:document.directory,calendar_collection:0
+#: field:user.preference,collection:0
+msgid "Calendar Collection"
+msgstr ""
+
+#. module: caldav
+#: constraint:document.directory:0
+msgid "Error! You can not create recursive Directories."
+msgstr ""
+
+#. module: caldav
+#: view:user.preference:0
+msgid "_Open"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar,type:0
+#: field:basic.calendar.attributes,type:0
+#: field:basic.calendar.fields,type_id:0
+#: field:basic.calendar.lines,name:0
+msgid "Type"
+msgstr ""
+
+#. module: caldav
+#: help:calendar.event.export,name:0
+msgid "Save in .ics format"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:1291
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/caldav_browse.py:128
+#, python-format
+msgid ""
+"\n"
+" 1. Go to Calendar View\n"
+"\n"
+" 2. File -> New -> Calendar\n"
+"\n"
+" 3. Fill the form \n"
+" - type : CalDav\n"
+" - name : Whaterver you want (ie : Meeting)\n"
+" - url : "
+"http://HOST:PORT/webdav/DB_NAME/calendars/users/USER/c/Meetings (ie : "
+"http://localhost:8069/webdav/db_1/calendars/users/demo/c/Meetings) the one "
+"given on the top of this window\n"
+" - uncheck \"User SSL\"\n"
+" - Username : Your username (ie : Demo)\n"
+" - Refresh : everytime you want that evolution synchronize the data "
+"with the server\n"
+"\n"
+" 4. Click ok and give your openerp password\n"
+"\n"
+" 5. A new calendar named with the name you gave should appear on the left "
+"side. \n"
+" "
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_attributes
+msgid "Calendar attributes"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_caldav_browse
+msgid "Caldav Browse"
+msgstr ""
+
+#. module: caldav
+#: model:ir.module.module,description:caldav.module_meta_information
+msgid ""
+"\n"
+" This module Contains basic functionality for caldav system like: \n"
+" - Webdav server that provides remote access to calendar\n"
+" - Synchronisation of calendar using WebDAV\n"
+" - Customize calendar event and todo attribute with any of OpenERP model\n"
+" - Provides iCal Import/Export functionality\n"
+"\n"
+" To access Calendars using CalDAV clients, point them to:\n"
+" "
+"http://HOSTNAME:PORT/webdav/DATABASE_NAME/calendars/users/USERNAME/c\n"
+"\n"
+" To access OpenERP Calendar using WebCal to remote site use the URL "
+"like:\n"
+" "
+"http://HOSTNAME:PORT/webdav/DATABASE_NAME/Calendars/CALENDAR_NAME.ics\n"
+"\n"
+" Where,\n"
+" HOSTNAME: Host on which OpenERP server(With webdav) is running\n"
+" PORT : Port on which OpenERP server is running (By Default : 8069)\n"
+" DATABASE_NAME: Name of database on which OpenERP Calendar is "
+"created\n"
+" CALENDAR_NAME: Name of calendar to access\n"
+msgstr ""
+
+#. module: caldav
+#: selection:user.preference,device:0
+msgid "Android based device"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar,create_date:0
+msgid "Created Date"
+msgstr ""
+
+#. module: caldav
+#: view:basic.calendar:0
+msgid "Attributes Mapping"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_document_directory
+msgid "Directory"
+msgstr ""
+
+#. module: caldav
+#: field:calendar.event.subscribe,url_path:0
+msgid "Provide path for remote calendar"
+msgstr ""
+
+#. module: caldav
+#: view:caldav.browse:0
+msgid "_Ok"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.lines,domain:0
+msgid "Domain"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.subscribe:0
+msgid "_Subscribe"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar,user_id:0
+msgid "Owner"
+msgstr ""
+
+#. module: caldav
+#: view:basic.calendar:0
+#: field:basic.calendar.alias,cal_line_id:0
+#: field:basic.calendar.lines,calendar_id:0
+#: model:ir.ui.menu,name:caldav.menu_calendar
+#: field:user.preference,calendar:0
+msgid "Calendar"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:41
+#, python-format
+msgid ""
+"Please install python-vobject from http://vobject.skyhouseconsulting.com/"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/calendar_event_import.py:63
+#, python-format
+msgid "Invalid format of the ics, file can not be imported"
+msgstr ""
+
+#. module: caldav
+#: selection:user.preference,service:0
+msgid "CalDAV"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.fields,field_id:0
+msgid "OpenObject Field"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.alias,res_id:0
+msgid "Res. ID"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.subscribe:0
+msgid "Message..."
+msgstr ""
+
+#. module: caldav
+#: selection:user.preference,device:0
+msgid "Other"
+msgstr ""
+
+#. module: caldav
+#: view:basic.calendar:0
+#: field:basic.calendar,has_webcal:0
+msgid "WebCal"
+msgstr ""
+
+#. module: caldav
+#: view:document.directory:0
+#: model:ir.actions.act_window,name:caldav.action_calendar_collection_form
+#: model:ir.ui.menu,name:caldav.menu_calendar_collection
+msgid "Calendar Collections"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:813
+#: sql_constraint:basic.calendar.alias:0
+#, python-format
+msgid "The same filename cannot apply to two records!"
+msgstr ""
+
+#. module: caldav
+#: sql_constraint:document.directory:0
+msgid "Directory cannot be parent of itself!"
+msgstr ""
+
+#. module: caldav
+#: view:basic.calendar:0
+#: field:document.directory,calendar_ids:0
+#: model:ir.actions.act_window,name:caldav.action_caldav_form
+#: model:ir.ui.menu,name:caldav.menu_caldav_directories
+msgid "Calendars"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar,collection_id:0
+msgid "Collection"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar,write_date:0
+msgid "Write Date"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/caldav_browse.py:104
+#, python-format
+msgid ""
+"\n"
+"Prerequire\n"
+"----------\n"
+"There is no buit-in way to synchronize calendar with caldav.\n"
+"So you need to install a third part software : Calendar (CalDav) \n"
+"for now it's the only one\n"
+"\n"
+"configuration\n"
+"-------------\n"
+"\n"
+"1. Open Calendar Sync\n"
+" I'll get an interface with 2 tabs\n"
+" Stay on the first one\n"
+" \n"
+"2. CaDAV Calendar URL : put the URL given above (ie : "
+"http://host.com:8069/webdav/db/calendars/users/demo/c/Meetings)\n"
+"\n"
+"3. Put your openerp username and password\n"
+"\n"
+"4. If your server don't use SSL, you'll get a warnign, say \"Yes\"\n"
+"\n"
+"5. Then you can synchronize manually or custom the settings to synchronize "
+"every x minutes.\n"
+" \n"
+" "
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/caldav_browse.py:53
+#, python-format
+msgid ""
+"\n"
+" For SSL specific configuration see the documentation below\n"
+"\n"
+"Now, to setup the calendars, you need to:\n"
+"\n"
+"1. Click on the \"Settings\" and go to the \"Mail, Contacts, Calendars\" "
+"page.\n"
+"2. Go to \"Add account...\"\n"
+"3. Click on \"Other\"\n"
+"4. From the \"Calendars\" group, select \"Add CalDAV Account\"\n"
+"\n"
+"5. Enter the host's name \n"
+" (ie : if the url is http://openerp.com:8069/webdav/db_1/calendars/ , "
+"openerp.com is the host)\n"
+"\n"
+"6. Fill Username and password with your openerp login and password\n"
+"\n"
+"7. As a description, you can either leave the server's name or\n"
+" something like \"OpenERP calendars\".\n"
+"\n"
+"9. If you are not using a SSL server, you'll get an error, do not worry and "
+"push \"Continue\"\n"
+"\n"
+"10. Then click to \"Advanced Settings\" to specify the right\n"
+" ports and paths. \n"
+" \n"
+"11. Specify the port for the OpenERP server: 8071 for SSL, 8069 without.\n"
+"\n"
+"12. Set the \"Account URL\" to the right path of the OpenERP webdav:\n"
+" the url given by the wizard (ie : "
+"http://my.server.ip:8069/webdav/dbname/calendars/ )\n"
+"\n"
+"11. Click on Done. The phone will hopefully connect to the OpenERP server\n"
+" and verify it can use the account.\n"
+"\n"
+"12. Go to the main menu of the iPhone and enter the Calendar application.\n"
+" Your OpenERP calendars will be visible inside the selection of the\n"
+" \"Calendars\" button.\n"
+" Note that when creating a new calendar entry, you will have to specify\n"
+" which calendar it should be saved at.\n"
+"\n"
+"\n"
+"\n"
+"IF you need SSL (and your certificate is not a verified one, as usual),\n"
+"then you first will need to let the iPhone trust that. Follow these\n"
+"steps:\n"
+"\n"
+" s1. Open Safari and enter the https location of the OpenERP server:\n"
+" https://my.server.ip:8071/\n"
+" (assuming you have the server at \"my.server.ip\" and the HTTPS port\n"
+" is the default 8071)\n"
+" s2. Safari will try to connect and issue a warning about the "
+"certificate\n"
+" used. Inspect the certificate and click \"Accept\" so that iPhone\n"
+" now trusts it. \n"
+" "
+msgstr ""
+
+#. module: caldav
+#: sql_constraint:document.directory:0
+msgid "The directory name must be unique !"
+msgstr ""
+
+#. module: caldav
+#: view:user.preference:0
+msgid "User Preference"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/calendar_event_subscribe.py:59
+#, python-format
+msgid "Please provide Proper URL !"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_timezone
+msgid "basic.calendar.timezone"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.fields,expr:0
+msgid "Expression"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_attendee
+msgid "basic.calendar.attendee"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_alias
+msgid "basic.calendar.alias"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.import:0
+#: field:calendar.event.import,file_path:0
+msgid "Select ICS file"
+msgstr ""
+
+#. module: caldav
+#: field:caldav.browse,caldav_doc_file:0
+msgid "Caldav Document"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.lines,mapping_ids:0
+msgid "Fields Mapping"
+msgstr ""
+
+#. module: caldav
+#: view:caldav.browse:0
+msgid "Browse caldav"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar
+msgid "basic.calendar"
+msgstr ""
+
+#. module: caldav
+#: view:basic.calendar:0
+msgid "Other Info"
+msgstr ""
+
+#. module: caldav
+#: field:user.preference,device:0
+msgid "Software/Devices"
+msgstr ""
+
+#. module: caldav
+#: help:basic.calendar,has_webcal:0
+msgid ""
+"Also export a .ics entry next to the calendar folder, with WebCal "
+"content."
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.fields,fn:0
+msgid "Function"
+msgstr ""
+
+#. module: caldav
+#: view:basic.calendar:0
+#: field:basic.calendar,description:0
+#: view:caldav.browse:0
+#: field:caldav.browse,description:0
+msgid "Description"
+msgstr ""
+
+#. module: caldav
+#: help:basic.calendar.alias,cal_line_id:0
+msgid "The calendar/line this mapping applies to"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar.fields,mapping:0
+msgid "Mapping"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/wizard/calendar_event_import.py:86
+#, python-format
+msgid "Import Sucessful"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.import:0
+msgid "_Import"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_calendar_event_import
+msgid "Event Import"
+msgstr ""
+
+#. module: caldav
+#: selection:basic.calendar.fields,fn:0
+msgid "Interval in hours"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.subscribe:0
+msgid "Subscribe to Remote Calendar"
+msgstr ""
+
+#. module: caldav
+#: help:basic.calendar,calendar_color:0
+msgid "For supporting clients, the color of the calendar entries"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar,name:0
+#: field:basic.calendar.attributes,name:0
+#: field:basic.calendar.fields,name:0
+msgid "Name"
+msgstr ""
+
+#. module: caldav
+#: selection:basic.calendar.attributes,type:0
+#: selection:basic.calendar.lines,name:0
+msgid "Alarm"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_alarm
+msgid "basic.calendar.alarm"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:1291
+#, python-format
+msgid "Attendee must have an Email Id"
+msgstr ""
+
+#. module: caldav
+#: model:ir.actions.act_window,name:caldav.action_calendar_event_export_values
+msgid "Export .ics File"
+msgstr ""
+
+#. module: caldav
+#: code:addons/caldav/calendar.py:41
+#, python-format
+msgid "vobject Import Error!"
+msgstr ""
+
+#. module: caldav
+#: field:calendar.event.export,file_path:0
+msgid "Save ICS file"
+msgstr ""
+
+#. module: caldav
+#: selection:user.preference,device:0
+msgid "Sunbird/Thunderbird"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar,calendar_order:0
+msgid "Order"
+msgstr ""
+
+#. module: caldav
+#: model:ir.module.module,shortdesc:caldav.module_meta_information
+msgid "Share Calendar using CalDAV"
+msgstr ""
+
+#. module: caldav
+#: field:basic.calendar,calendar_color:0
+msgid "Color"
+msgstr ""
+
+#. module: caldav
+#: view:basic.calendar:0
+msgid "MY"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_fields
+msgid "Calendar fields"
+msgstr ""
+
+#. module: caldav
+#: view:calendar.event.import:0
+msgid "Import Message"
+msgstr ""
+
+#. module: caldav
+#: model:ir.actions.act_window,name:caldav.action_calendar_event_subscribe
+#: model:ir.actions.act_window,name:caldav.action_calendar_event_subscribe_values
+msgid "Subscribe"
+msgstr ""
+
+#. module: caldav
+#: sql_constraint:document.directory:0
+msgid "Directory must have a parent or a storage"
+msgstr ""
+
+#. module: caldav
+#: model:ir.model,name:caldav.model_basic_calendar_todo
+msgid "basic.calendar.todo"
+msgstr ""
+
+#. module: caldav
+#: help:basic.calendar,calendar_order:0
+msgid "For supporting clients, the order of this folder among the calendars"
+msgstr ""
diff --git a/addons/caldav/wizard/caldav_browse.py b/addons/caldav/wizard/caldav_browse.py
index 9e67f972216..f6ecc5dccd5 100644
--- a/addons/caldav/wizard/caldav_browse.py
+++ b/addons/caldav/wizard/caldav_browse.py
@@ -26,9 +26,8 @@ import addons
from tools.translate import _
class caldav_browse(osv.osv_memory):
-
+
__doc = {
-
'other' : _("""
* Webdav server that provides remote access to calendar
* Synchronisation of calendar using WebDAV
@@ -45,11 +44,8 @@ class caldav_browse(osv.osv_memory):
HOSTNAME: Host on which OpenERP server(With webdav) is running
PORT : Port on which OpenERP server is running (By Default : 8069)
DATABASE_NAME: Name of database on which OpenERP Calendar is created
- CALENDAR_NAME: Name of calendar to access
"""),
-
-
-
+
'iphone' : _("""
For SSL specific configuration see the documentation below
@@ -60,7 +56,7 @@ Now, to setup the calendars, you need to:
3. Click on "Other"
4. From the "Calendars" group, select "Add CalDAV Account"
-5. Enter the host's name
+5. Enter the host's name
(ie : if the url is http://openerp.com:8069/webdav/db_1/calendars/ , openerp.com is the host)
6. Fill Username and password with your openerp login and password
@@ -71,8 +67,8 @@ Now, to setup the calendars, you need to:
9. If you are not using a SSL server, you'll get an error, do not worry and push "Continue"
10. Then click to "Advanced Settings" to specify the right
- ports and paths.
-
+ ports and paths.
+
11. Specify the port for the OpenERP server: 8071 for SSL, 8069 without.
12. Set the "Account URL" to the right path of the OpenERP webdav:
@@ -87,8 +83,6 @@ Now, to setup the calendars, you need to:
Note that when creating a new calendar entry, you will have to specify
which calendar it should be saved at.
-
-
IF you need SSL (and your certificate is not a verified one, as usual),
then you first will need to let the iPhone trust that. Follow these
steps:
@@ -99,13 +93,13 @@ steps:
is the default 8071)
s2. Safari will try to connect and issue a warning about the certificate
used. Inspect the certificate and click "Accept" so that iPhone
- now trusts it.
+ now trusts it.
"""),
'android' : _("""
Prerequire
----------
There is no buit-in way to synchronize calendar with caldav.
-So you need to install a third part software : Calendar (CalDav)
+So you need to install a third part software : Calendar (CalDav)
for now it's the only one
configuration
@@ -114,7 +108,7 @@ configuration
1. Open Calendar Sync
I'll get an interface with 2 tabs
Stay on the first one
-
+
2. CaDAV Calendar URL : put the URL given above (ie : http://host.com:8069/webdav/db/calendars/users/demo/c/Meetings)
3. Put your openerp username and password
@@ -122,7 +116,7 @@ configuration
4. If your server don't use SSL, you'll get a warnign, say "Yes"
5. Then you can synchronize manually or custom the settings to synchronize every x minutes.
-
+
"""),
'evolution' : _("""
@@ -130,7 +124,7 @@ configuration
2. File -> New -> Calendar
- 3. Fill the form
+ 3. Fill the form
- type : CalDav
- name : Whaterver you want (ie : Meeting)
- url : http://HOST:PORT/webdav/DB_NAME/calendars/users/USER/c/Meetings (ie : http://localhost:8069/webdav/db_1/calendars/users/demo/c/Meetings) the one given on the top of this window
@@ -140,10 +134,9 @@ configuration
4. Click ok and give your openerp password
- 5. A new calendar named with the name you gave should appear on the left side.
+ 5. A new calendar named with the name you gave should appear on the left side.
"""),
-
-
+
'thunderbird' : _("""
Prerequire
----------
@@ -161,7 +154,7 @@ configuration
4. for format choose CalDav
and as location the url given above (ie : http://host.com:8069/webdav/db/calendars/users/demo/c/Meetings)
-
+
5. Choose a name and a color for the Calendar, and we advice you to uncheck "alarm"
6. Then put your openerp login and password (to give the password only check the box "Use password Manager to remember this password"
@@ -169,8 +162,6 @@ configuration
7. Then Finish, your meetings should appear now in your calendar view
"""),
}
-
-
_name = 'caldav.browse'
_description = 'Caldav Browse'
@@ -181,55 +172,48 @@ configuration
}
def default_get(self, cr, uid, fields, context=None):
+ pref_obj = self.pool.get('user.preference')
+ pref_ids = pref_obj.browse(cr, uid ,context.get('rec_id',False), context=context)
res = {}
- host = ''
+ host = context.get('host')
port = ''
- prefix = 'http://'
+ prefix = 'http://'
if not config.get('xmlrpc'):
if not config.get('netrpc'):
- prefix = 'https://'
- host = config.get('xmlrpcs_interface', None)
+ prefix = 'https://'
port = config.get('xmlrpcs_port', 8071)
else:
- host = config.get('netrpc_interface', None)
- port = config.get('netrpc_port',8070)
- else:
- host = config.get('xmlrpc_interface', None)
+ port = config.get('netrpc_port',8070)
+ else:
port = config.get('xmlrpc_port',8069)
- if host == '' or None:
- host = 'localhost'
- port = 8069
if not config.get_misc('webdav','enable',True):
raise Exception("WebDAV is disabled, cannot continue")
user_pool = self.pool.get('res.users')
current_user = user_pool.browse(cr, uid, uid, context=context)
- pref_obj = self.pool.get('user.preference')
- pref_ids = pref_obj.browse(cr, uid ,context.get('rec_id',False), context=context)
#TODO write documentation
res['description'] = self.__doc['other']
if pref_ids:
- pref_ids = pref_ids[0]
+ pref_ids = pref_ids[0]
if pref_ids.device == 'iphone':
url = host + ':' + str(port) + '/'+ pref_ids.service + '/' + cr.dbname + '/'+'calendars/'
else :
url = host + ':' + str(port) + '/'+ pref_ids.service + '/' + cr.dbname + '/'+'calendars/'+ 'users/'+ current_user.login + '/'+ pref_ids.collection.name+ '/'+ pref_ids.calendar.name
-
+
res['description'] = self.__doc.get(pref_ids.device , self.__doc['other'])
file = open(addons.get_module_resource('caldav','doc', 'caldav_doc.pdf'),'rb')
res['caldav_doc_file'] = base64.encodestring(file.read())
-
+
#res['doc_link'] = 'http://doc.openerp.com/'
res['url'] = prefix+url
return res
def browse_caldav(self, cr, uid, ids, context):
-
return {}
caldav_browse()
class user_preference(osv.osv_memory):
-
+
_name = 'user.preference'
_description = 'User preference Form'
@@ -238,32 +222,39 @@ class user_preference(osv.osv_memory):
'calendar' :fields.many2one('basic.calendar', 'Calendar', required=True),
'service': fields.selection([('webdav','CalDAV')], "Services"),
'device' : fields.selection([('other', 'Other'), ('iphone', 'iPhone'), ('android', 'Android based device'),('thunderbird', 'Sunbird/Thunderbird'), ('evolution','Evolution')], "Software/Devices"),
+ 'host_name': fields.char('Host Name', size=64, required=True),
}
-
+
def _get_default_calendar(self, cr, uid, context):
if context == None:
context = {}
name = context.get('cal_name')
-
collection_obj = self.pool.get('basic.calendar')
ids = collection_obj.search(cr, uid, [('name', '=', name)])
return ids[0]
-
-
+
def _get_default_collection(self, cr, uid, context):
collection_obj = self.pool.get('document.directory')
ids = collection_obj.search(cr, uid, [('name', '=', 'c')])
return ids[0]
-
+ def _get_default_host(self, cr, uid, context):
+ ids=self.search(cr,uid,[])
+ host_name = ''
+ if ids:
+ ids = len(ids)> 1 and len(ids)-1 or ids[0] # Use len(ids)-1 for taking the value of last id
+ host_name = self.browse(cr, uid,[ids],context=context)[0].host_name
+ return host_name
+
_defaults={
'service': 'webdav',
'collection' : _get_default_collection,
'calendar' : _get_default_calendar,
'device' : 'other',
-
- }
-
+ 'host_name':_get_default_host
+
+ }
+
def open_window(self, cr, uid, ids, context=None):
obj_model = self.pool.get('ir.model.data')
model_data_ids = obj_model.search(cr,uid,[('model','=','ir.ui.view'),('name','=','caldav_Browse')])
@@ -278,6 +269,22 @@ class user_preference(osv.osv_memory):
'target': 'new',
'context': context,
}
-
-
+
+ def next_window(self, cr, uid, ids, context=None):
+ obj_model = self.pool.get('ir.model.data')
+ host_name = self.browse (cr,uid,ids)[0].host_name
+ model_data_ids = obj_model.search(cr,uid,[('model','=','ir.ui.view'),('name','=','user_prefernce_form')])
+ resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id'])
+ context.update({'res_id': ids,'host':host_name})
+ resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
+ return {
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'user.preference',
+ 'views': [(resource_id,'form')],
+ 'type': 'ir.actions.act_window',
+ 'target': 'new',
+ 'context': context,
+ }
+
user_preference()
diff --git a/addons/caldav/wizard/caldav_browse_view.xml b/addons/caldav/wizard/caldav_browse_view.xml
index 53af6029883..565e3a44407 100644
--- a/addons/caldav/wizard/caldav_browse_view.xml
+++ b/addons/caldav/wizard/caldav_browse_view.xml
@@ -11,19 +11,39 @@
-
-
-
-
-
+
+
+
+
+
+ host_preference
+ user.preference
+ form
+
+
+
+
+
user_preference
user.preference
diff --git a/addons/claim_from_delivery/i18n/fi.po b/addons/claim_from_delivery/i18n/fi.po
new file mode 100644
index 00000000000..84fd929478a
--- /dev/null
+++ b/addons/claim_from_delivery/i18n/fi.po
@@ -0,0 +1,33 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-06-20 10:45+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-21 04:36+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: claim_from_delivery
+#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
+msgid "Claim"
+msgstr "Reklamaatio"
+
+#. module: claim_from_delivery
+#: model:ir.module.module,description:claim_from_delivery.module_meta_information
+msgid "Create Claim from delivery order:\n"
+msgstr "Luo reklamaatio toimitustilaukselta:\n"
+
+#. module: claim_from_delivery
+#: model:ir.module.module,shortdesc:claim_from_delivery.module_meta_information
+msgid "Claim from delivery"
+msgstr "Reklamaatio toimitukselta"
diff --git a/addons/claim_from_delivery/i18n/zh_CN.po b/addons/claim_from_delivery/i18n/zh_CN.po
new file mode 100644
index 00000000000..9d6c10ac3bf
--- /dev/null
+++ b/addons/claim_from_delivery/i18n/zh_CN.po
@@ -0,0 +1,33 @@
+# Chinese (Simplified) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-07-04 05:17+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Simplified) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-07-05 04:33+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: claim_from_delivery
+#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
+msgid "Claim"
+msgstr "索赔"
+
+#. module: claim_from_delivery
+#: model:ir.module.module,description:claim_from_delivery.module_meta_information
+msgid "Create Claim from delivery order:\n"
+msgstr "创建送货单索赔:\n"
+
+#. module: claim_from_delivery
+#: model:ir.module.module,shortdesc:claim_from_delivery.module_meta_information
+msgid "Claim from delivery"
+msgstr "送货单索赔"
diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py
index 903bf5f0b68..1d0ece2dce1 100644
--- a/addons/crm/__openerp__.py
+++ b/addons/crm/__openerp__.py
@@ -129,6 +129,7 @@ Creates a dashboard for CRM that includes:
'test/test_crm_phonecall.yml',
'test/test_crm_recurrent_meeting.yml',
'test/test_crm_stage_changes.yml',
+ 'test/test_crm_recurrent_meeting_case2.yml',
],
'installable': True,
'active': False,
diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index d7b67879a7a..0b1e8db7bbb 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -44,8 +44,177 @@ AVAILABLE_PRIORITIES = [
('5', 'Lowest'),
]
-class crm_case(object):
- """A simple python class to be used for common functions """
+class crm_base(object):
+ """
+ Base classe for crm object,
+ Object that inherit from this class should have
+ date_open
+ date_closed
+ user_id
+ partner_id
+ partner_address_id
+ as field to be compatible with this class
+
+ """
+ def _get_default_partner_address(self, cr, uid, context=None):
+
+ """Gives id of default address for current user
+ :param context: if portal in context is false return false anyway
+ """
+ if context is None:
+ context = {}
+ if not context.get('portal'):
+ return False
+ return self.pool.get('res.users').browse(cr, uid, uid, context).address_id.id
+
+ def _get_default_partner(self, cr, uid, context=None):
+ """Gives id of partner for current user
+ :param context: if portal in context is false return false anyway
+ """
+ if context is None:
+ context = {}
+ if not context.get('portal', False):
+ return False
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+ if not user.address_id:
+ return False
+ return user.address_id.partner_id.id
+
+ def _get_default_email(self, cr, uid, context=None):
+ """Gives default email address for current user
+ :param context: if portal in context is false return false anyway
+ """
+ if not context.get('portal', False):
+ return False
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+ if not user.address_id:
+ return False
+ return user.address_id.email
+
+ def _get_default_user(self, cr, uid, context=None):
+ """Gives current user id
+ :param context: if portal in context is false return false anyway
+ """
+ if context and context.get('portal', False):
+ return False
+ return uid
+
+ def _get_section(self, cr, uid, context=None):
+ """Gives section id for current User
+ """
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+ return user.context_section_id.id or False
+
+ def onchange_partner_address_id(self, cr, uid, ids, add, email=False):
+ """This function returns value of partner email based on Partner Address
+ @param ids: List of case IDs
+ @param add: Id of Partner's address
+ @email: Partner's email ID
+ """
+ if not add:
+ return {'value': {'email_from': False}}
+ address = self.pool.get('res.partner.address').browse(cr, uid, add)
+ if address.email:
+ return {'value': {'email_from': address.email, 'phone': address.phone}}
+ else:
+ return {'value': {'phone': address.phone}}
+
+ def onchange_partner_id(self, cr, uid, ids, part, email=False):
+ """This function returns value of partner address based on partner
+ @param ids: List of case IDs
+ @param part: Partner's id
+ @email: Partner's email ID
+ """
+ data={}
+ if part:
+ addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact'])
+ data = {'partner_address_id': addr['contact']}
+ data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value'])
+ return {'value': data}
+
+
+ def case_open(self, cr, uid, ids, *args):
+ """Opens Case
+ @param ids: List of case Ids
+ """
+ cases = self.browse(cr, uid, ids)
+ for case in cases:
+ data = {'state': 'open', 'active': True}
+ if not case.user_id:
+ data['user_id'] = uid
+ self.write(cr, uid, case.id, data)
+
+
+ self._action(cr, uid, cases, 'open')
+ return True
+
+ def case_close(self, cr, uid, ids, *args):
+ """Closes Case
+ @param ids: List of case Ids
+ """
+ cases = self.browse(cr, uid, ids)
+ cases[0].state # to fill the browse record cache
+ self.write(cr, uid, ids, {'state': 'done',
+ 'date_closed': time.strftime('%Y-%m-%d %H:%M:%S'),
+ })
+ #
+ # We use the cache of cases to keep the old case state
+ #
+ self._action(cr, uid, cases, 'done')
+ return True
+
+ def case_cancel(self, cr, uid, ids, *args):
+ """Cancels Case
+ @param ids: List of case Ids
+ """
+ cases = self.browse(cr, uid, ids)
+ cases[0].state # to fill the browse record cache
+ self.write(cr, uid, ids, {'state': 'cancel',
+ 'active': True})
+ self._action(cr, uid, cases, 'cancel')
+ for case in cases:
+ message = _("The case '%s' has been cancelled.") % (case.name,)
+ self.log(cr, uid, case.id, message)
+ return True
+
+ def case_pending(self, cr, uid, ids, *args):
+ """Marks case as pending
+ @param ids: List of case Ids
+ """
+ cases = self.browse(cr, uid, ids)
+ cases[0].state # to fill the browse record cache
+ self.write(cr, uid, ids, {'state': 'pending', 'active': True})
+ self._action(cr, uid, cases, 'pending')
+ return True
+
+ def case_reset(self, cr, uid, ids, *args):
+ """Resets case as draft
+ @param ids: List of case Ids
+ """
+ cases = self.browse(cr, uid, ids)
+ cases[0].state # to fill the browse record cache
+ self.write(cr, uid, ids, {'state': 'draft', 'active': True})
+ self._action(cr, uid, cases, 'draft')
+ return True
+
+ def _action(self, cr, uid, cases, state_to, scrit=None, context=None):
+ if context is None:
+ context = {}
+ context['state_to'] = state_to
+ rule_obj = self.pool.get('base.action.rule')
+ model_obj = self.pool.get('ir.model')
+ model_ids = model_obj.search(cr, uid, [('model','=',self._name)])
+ rule_ids = rule_obj.search(cr, uid, [('model_id','=',model_ids[0])])
+ return rule_obj._action(cr, uid, rule_ids, cases, scrit=scrit, context=context)
+
+class crm_case(crm_base):
+ """
+ A simple python class to be used for common functions
+ Object that inherit from this class should inherit from mailgate.thread
+ And need a stage_id field
+
+ And object that inherit (orm inheritance) from a class the overwrite copy
+ """
def _find_lost_stage(self, cr, uid, type, section_id):
return self._find_percent_stage(cr, uid, 0.0, type, section_id)
@@ -105,35 +274,7 @@ class crm_case(object):
return {'value':{}}
return {'value':{'probability': stage.probability}}
- def _get_default_partner_address(self, cr, uid, context=None):
-
- """Gives id of default address for current user
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param context: A standard dictionary for contextual values
- """
- if context is None:
- context = {}
- if not context.get('portal', False):
- return False
- return self.pool.get('res.users').browse(cr, uid, uid, context).address_id.id
-
- def _get_default_partner(self, cr, uid, context=None):
- """Gives id of partner for current user
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param context: A standard dictionary for contextual values
- """
- if context is None:
- context = {}
- if not context.get('portal', False):
- return False
- user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
- if not user.address_id:
- return False
- return user.address_id.partner_id.id
+
def copy(self, cr, uid, id, default=None, context=None):
"""
@@ -145,6 +286,7 @@ class crm_case(object):
@param default: Dictionary of default values for copy.
@param context: A standard dictionary for contextual values
"""
+
if context is None:
context = {}
if default is None:
@@ -164,40 +306,9 @@ class crm_case(object):
})
return super(osv.osv, self).copy(cr, uid, id, default, context=context)
- def _get_default_email(self, cr, uid, context=None):
- """Gives default email address for current user
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param context: A standard dictionary for contextual values
- """
- if not context.get('portal', False):
- return False
- user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
- if not user.address_id:
- return False
- return user.address_id.email
+
- def _get_default_user(self, cr, uid, context=None):
- """Gives current user id
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param context: A standard dictionary for contextual values
- """
- if context and context.get('portal', False):
- return False
- return uid
-
- def _get_section(self, cr, uid, context=None):
- """Gives section id for current User
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param context: A standard dictionary for contextual values
- """
- user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
- return user.context_section_id.id or False
+
def _find_next_stage(self, cr, uid, stage_list, index, current_seq, stage_pool, context=None):
if index + 1 == len(stage_list):
@@ -274,38 +385,9 @@ class crm_case(object):
@param context: A standard dictionary for contextual values"""
return self.stage_change(cr, uid, ids, context=context, order='sequence desc')
- def onchange_partner_id(self, cr, uid, ids, part, email=False):
- """This function returns value of partner address based on partner
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of case IDs
- @param part: Partner's id
- @email: Partner's email ID
- """
- data={}
- if part:
- addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact'])
- data = {'partner_address_id': addr['contact']}
- data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value'])
- return {'value': data}
+
- def onchange_partner_address_id(self, cr, uid, ids, add, email=False):
- """This function returns value of partner email based on Partner Address
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of case IDs
- @param add: Id of Partner's address
- @email: Partner's email ID
- """
- if not add:
- return {'value': {'email_from': False}}
- address = self.pool.get('res.partner.address').browse(cr, uid, add)
- if address.email:
- return {'value': {'email_from': address.email, 'phone': address.phone}}
- else:
- return {'value': {'phone': address.phone}}
+
def _history(self, cr, uid, cases, keyword, history=False, subject=None, email=False, details=None, email_from=False, message_id=False, attach=[], context=None):
mailgate_pool = self.pool.get('mailgate.thread')
@@ -331,8 +413,6 @@ class crm_case(object):
if not case.user_id:
data['user_id'] = uid
self.write(cr, uid, case.id, data)
-
-
self._action(cr, uid, cases, 'open')
return True
@@ -423,11 +503,14 @@ class crm_case(object):
@param ids: List of case Ids
@param *args: Tuple Value for additional Params
"""
+ state = 'draft'
+ if 'crm.phonecall' in args:
+ state = 'open'
cases = self.browse(cr, uid, ids)
cases[0].state # to fill the browse record cache
self._history(cr, uid, cases, _('Draft'))
- self.write(cr, uid, ids, {'state': 'draft', 'active': True})
- self._action(cr, uid, cases, 'draft')
+ self.write(cr, uid, ids, {'state': state, 'active': True})
+ self._action(cr, uid, cases, state)
return True
def remind_partner(self, cr, uid, ids, context=None, attach=False):
@@ -454,9 +537,9 @@ class crm_case(object):
"""
for case in self.browse(cr, uid, ids, context=context):
if not destination and not case.email_from:
- raise osv.except_osv(_('Error!'), ("Partner Email is not specified in Case"))
+ return False
if not case.user_id.user_email:
- raise osv.except_osv(_('Error!'), ("User Email is not specified in Case"))
+ return False
if destination and case.section_id.user_id:
case_email = case.section_id.user_id.user_email
@@ -521,15 +604,7 @@ class crm_case(object):
cases = self.browse(cr, uid, ids2, context=context)
return self._action(cr, uid, cases, False, context=context)
- def _action(self, cr, uid, cases, state_to, scrit=None, context=None):
- if context is None:
- context = {}
- context['state_to'] = state_to
- rule_obj = self.pool.get('base.action.rule')
- model_obj = self.pool.get('ir.model')
- model_ids = model_obj.search(cr, uid, [('model','=',self._name)])
- rule_ids = rule_obj.search(cr, uid, [('model_id','=',model_ids[0])])
- return rule_obj._action(cr, uid, rule_ids, cases, scrit=scrit, context=context)
+
def format_body(self, body):
return self.pool.get('base.action.rule').format_body(body)
@@ -607,7 +682,7 @@ class crm_case_section(osv.osv):
_columns = {
'name': fields.char('Sales Team', size=64, required=True, translate=True),
- 'complete_name': fields.function(get_full_name, method=True, type='char', size=256, readonly=True, store=True),
+ 'complete_name': fields.function(get_full_name, type='char', size=256, readonly=True, store=True),
'code': fields.char('Code', size=8),
'active': fields.boolean('Active', help="If the active field is set to "\
"true, it will allow you to hide the sales team without removing it."),
diff --git a/addons/crm/crm_installer.py b/addons/crm/crm_installer.py
index 32551d438c4..f6c61337ce4 100644
--- a/addons/crm/crm_installer.py
+++ b/addons/crm/crm_installer.py
@@ -37,6 +37,7 @@ class crm_installer(osv.osv_memory):
'thunderbird': fields.boolean('Thunderbird', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."),
'outlook': fields.boolean('MS-Outlook', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."),
'wiki_sale_faq': fields.boolean('Sale FAQ', help="Helps you manage wiki pages for Frequently Asked Questions on Sales Application."),
+ 'import_google': fields.boolean('Google Import', help="Imports contacts and events from your google account."),
}
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
diff --git a/addons/crm/crm_installer_view.xml b/addons/crm/crm_installer_view.xml
index 35ff5a0a7cc..14e882f2967 100644
--- a/addons/crm/crm_installer_view.xml
+++ b/addons/crm/crm_installer_view.xml
@@ -19,7 +19,7 @@
Enhance your core CRM Application with additional functionalities.
- 13
+ 8
@@ -37,6 +37,7 @@
+
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index 864e4dfc0a4..98bc01a51af 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -143,7 +143,7 @@ class crm_lead(crm_case, osv.osv):
domain="['|',('section_id','=',section_id),('section_id','=',False), ('object_id.model', '=', 'crm.lead')]"),
'type_id': fields.many2one('crm.case.resource.type', 'Campaign', \
domain="['|',('section_id','=',section_id),('section_id','=',False)]"),
- 'channel_id': fields.many2one('res.partner.canal', 'Channel'),
+ 'channel_id': fields.many2one('res.partner.canal', 'Lead Source'),
'contact_name': fields.char('Contact Name', size=64),
'partner_name': fields.char("Customer Name", size=64,help='The name of the future partner that will be created while converting the into opportunity'),
@@ -161,16 +161,16 @@ class crm_lead(crm_case, osv.osv):
'referred': fields.char('Referred By', size=64),
'date_open': fields.datetime('Opened', readonly=True),
'day_open': fields.function(_compute_day, string='Days to Open', \
- method=True, multi='day_open', type="float", store=True),
+ multi='day_open', type="float", store=True),
'day_close': fields.function(_compute_day, string='Days to Close', \
- method=True, multi='day_close', type="float", store=True),
+ multi='day_close', type="float", store=True),
'state': fields.selection(crm.AVAILABLE_STATES, 'State', size=16, readonly=True,
help='The state is set to \'Draft\', when a case is created.\
\nIf the case is in progress the state is set to \'Open\'.\
\nWhen the case is over, the state is set to \'Done\'.\
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
- 'subjects': fields.function(_get_email_subject, fnct_search=_history_search, string='Subject of Email', method=True, type='char', size=64),
+ 'subjects': fields.function(_get_email_subject, fnct_search=_history_search, string='Subject of Email', type='char', size=64),
}
@@ -270,7 +270,6 @@ class crm_lead(crm_case, osv.osv):
data_obj = self.pool.get('ir.model.data')
value = {}
- view_id = False
for case in self.browse(cr, uid, ids, context=context):
context.update({'active_id': case.id})
@@ -346,7 +345,7 @@ class crm_lead(crm_case, osv.osv):
"""
mailgate_pool = self.pool.get('email.server.tools')
- subject = msg.get('subject')
+ subject = msg.get('subject') or _("No Subject")
body = msg.get('body')
msg_from = msg.get('from')
priority = msg.get('priority')
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index 45f14c3e2df..0159141eb1c 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -105,7 +105,7 @@
-
@@ -334,7 +334,7 @@
domain="[('user_id','=', False)]"
help="Unassigned Leads" />
-
+
crm.meeting
calendar,tree,form,gantt
- {"search_default_user_id":uid, 'search_default_section_id': section_id}
+ {"search_default_user_id":uid, 'search_default_section_id': section_id, 'virtual_id' : True}
The meeting calendar is shared between the sales teams and fully integrated with other applications such as the employee holidays or the business opportunities. You can also synchronize meetings with your mobile phone using the caldav interface.
diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml
index a2d66040fa9..9ece8cafaae 100644
--- a/addons/crm/crm_meeting_view.xml
+++ b/addons/crm/crm_meeting_view.xml
@@ -45,8 +45,7 @@
widget="selection" />
-
+
diff --git a/addons/crm/crm_opportunity_view.xml b/addons/crm/crm_opportunity_view.xml
index b49edb850da..353eefb8f1b 100644
--- a/addons/crm/crm_opportunity_view.xml
+++ b/addons/crm/crm_opportunity_view.xml
@@ -59,7 +59,7 @@
colspan="1" />
-
@@ -132,7 +132,7 @@
-
+
@@ -310,7 +310,7 @@
domain="[]"
help="Show Sales Team"/>
-
+
@@ -326,6 +326,7 @@
+
diff --git a/addons/crm/crm_phonecall.py b/addons/crm/crm_phonecall.py
index 6a4e7bfd7c7..ecae065beac 100644
--- a/addons/crm/crm_phonecall.py
+++ b/addons/crm/crm_phonecall.py
@@ -19,20 +19,19 @@
#
##############################################################################
-from crm import crm_case
+from crm import crm_base
from osv import fields, osv
from tools.translate import _
import crm
import time
from datetime import datetime
-class crm_phonecall(crm_case, osv.osv):
+class crm_phonecall(crm_base, osv.osv):
""" Phonecall Cases """
_name = "crm.phonecall"
_description = "Phonecall"
_order = "id desc"
- _inherit = ['mailgate.thread']
_columns = {
# From crm.case
'id': fields.integer('ID'),
@@ -53,10 +52,10 @@ class crm_phonecall(crm_case, osv.osv):
('draft', 'Draft'),
('open', 'Todo'),
('cancel', 'Cancelled'),
- ('done', 'Done'),
- ('pending', 'Pending'),
+ ('done', 'Held'),
+ ('pending', 'Not Held'),
], 'State', size=16, readonly=True,
- help='The state is set to \'Draft\', when a case is created.\
+ help='The state is set to \'Todo\', when a case is created.\
\nIf the case is in progress the state is set to \'Open\'.\
\nWhen the case is over, the state is set to \'Done\'.\
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
@@ -79,18 +78,25 @@ class crm_phonecall(crm_case, osv.osv):
the canall which is this opportunity source."),
'date_closed': fields.datetime('Closed', readonly=True),
'date': fields.datetime('Date'),
- 'opportunity_id': fields.many2one ('crm.lead', 'Opportunity'),
+ 'opportunity_id': fields.many2one ('crm.lead', 'Lead/Opportunity'),
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
}
+ def _get_default_state(self, cr, uid, context=None):
+ if context and context.get('default_state', False):
+ return context.get('default_state')
+ return 'open'
+
_defaults = {
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'priority': crm.AVAILABLE_PRIORITIES[2][0],
- 'state': 'open',
+ 'state': _get_default_state,
'user_id': lambda self,cr,uid,ctx: uid,
'active': 1,
}
+
+
# From crm.case
def onchange_partner_address_id(self, cr, uid, ids, add, email=False):
@@ -122,14 +128,14 @@ class crm_phonecall(crm_case, osv.osv):
return res
def case_reset(self, cr, uid, ids, *args):
- """Resets case as draft
+ """Resets case as Todo
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param ids: List of case Ids
@param *args: Tuple Value for additional Params
"""
- res = super(crm_phonecall, self).case_reset(cr, uid, ids, args)
+ res = super(crm_phonecall, self).case_reset(cr, uid, ids, args, 'crm.phonecall')
self.write(cr, uid, ids, {'duration': 0.0})
return res
diff --git a/addons/crm/crm_phonecall_demo.xml b/addons/crm/crm_phonecall_demo.xml
index 683cbd9735f..8f0661ab8be 100644
--- a/addons/crm/crm_phonecall_demo.xml
+++ b/addons/crm/crm_phonecall_demo.xml
@@ -18,6 +18,7 @@
+
@@ -33,6 +34,7 @@
+
@@ -49,6 +51,7 @@
+
diff --git a/addons/crm/crm_phonecall_menu.xml b/addons/crm/crm_phonecall_menu.xml
index 41975d9ced4..55e7657ec05 100644
--- a/addons/crm/crm_phonecall_menu.xml
+++ b/addons/crm/crm_phonecall_menu.xml
@@ -4,7 +4,7 @@
- Inbound
+ Logged Calls
crm.phonecall
form
tree,calendar
-
-
-
+
+ [('state','=','done')]
+
- The Inbound Calls tool allows you to log your inbound calls on the fly. Each call you get will appear on the partner form to trace every contact you have with a partner. From the phone call form, you can trigger a request for another call, a meeting or an opportunity.
+ This tool allows you to log your inbound calls on the fly. Each call you get will appear on the partner form to trace every contact you have with a partner. From the phone call form, you can trigger a request for another call, a meeting or an opportunity.
@@ -90,24 +90,24 @@
form
-
+
-
- Outbound
+ Scheduled Calls
crm.phonecall
form
tree,calendar
-
-
+ [('state','!=','done')]
+
- Outbound Calls list all the calls to be done by your sales team. A salesman can record the information about the call in the form view. This information will be stored in the partner form to trace every contact you have with a customer. You can also import a .CSV file with a list of calls to be done by your sales team.
+ Scheduled calls list all the calls to be done by your sales team. A salesman can record the information about the call in the form view. This information will be stored in the partner form to trace every contact you have with a customer. You can also import a .CSV file with a list of calls to be done by your sales team.
@@ -131,7 +131,7 @@
-
diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml
index 44487e2aef5..2490526bb0e 100644
--- a/addons/crm/crm_phonecall_view.xml
+++ b/addons/crm/crm_phonecall_view.xml
@@ -31,20 +31,20 @@
-
+
-
-
-
+
+
+
@@ -61,21 +61,21 @@
-
+
-
+
-
-
+
+
@@ -98,8 +98,7 @@
+ domain="[('object_id.model', '=', 'crm.phonecall')]"/>
@@ -109,94 +108,32 @@
-
-
-
-
-
- CRM - Inbound Phone Call Form
- crm.phonecall
- form
-
-
-
-
-
-
+
- CRM - Inbound Phone Calls Tree
+ CRM - Logged Phone Calls Tree
crm.phonecall
tree
-
+
+ domain="[('object_id.model', '=', 'crm.phonecall')]"/>
-
@@ -252,7 +183,7 @@
+ domain="[('state','in', ('open','pending'))]"/>
\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-06-15 04:39+0000\n"
+"X-Launchpad-Export-Date: 2011-06-21 04:36+0000\n"
"X-Generator: Launchpad (build 13168)\n"
#. module: crm
@@ -1827,6 +1827,10 @@ msgid ""
"sent/to be sent to your colleagues/partners. You can not only invite OpenERP "
"users, but also external parties, such as a customer."
msgstr ""
+"Toplantı Davetiyeleri ile paydaşlarınıza/iş arkadaşlarınıza göndereceğiniz "
+"toplantı davetiyeleri oluşturabilir ve yönetebilirsiniz. Yalnızca OpenERP "
+"kullanıcıların değil, müşterileriniz dışarıdan gruplar da davet "
+"edebilirsiniz."
#. module: crm
#: selection:crm.meeting,week_list:0
@@ -1981,6 +1985,10 @@ msgid ""
"with a partner. From the phone call form, you can trigger a request for "
"another call, a meeting or an opportunity."
msgstr ""
+"Gelen Çağrılar aracı gelen çağrılarınıza anında bağlanmanızı sağlar. "
+"Aldığınız her çağrı, bir paydaşla kuracağınız her iletişimin izlenmesi için "
+"paydaş formunda görünecektir. Telefon çağrı formundan, başka bir çağrıyı, "
+"bir toplantıyı ya da bir fırsatı tetikleyebilirsainiz."
#. module: crm
#: help:crm.meeting,recurrency:0
@@ -2024,6 +2032,9 @@ msgid ""
"opportunities. You can also synchronize meetings with your mobile phone "
"using the caldav interface."
msgstr ""
+"Toplantı takvimi, satış takımınca paylaşılır ve personel tatilleri ya da iş "
+"fırsatları gibi diğer uygulamalarla tam olarak entegredir. Caldav arayüzünü "
+"kullanarak toplantılarınızı da cep telefonunuzdan senkronize edebilirsiniz."
#. module: crm
#: model:ir.model,name:crm.model_crm_phonecall2opportunity
@@ -2230,6 +2241,11 @@ msgid ""
"The opportunities and sales order displayed, will automatically be filtered "
"according to his team."
msgstr ""
+"Farklı satış elemanlarınızı organize etmek ya da satış bölümlerinizi "
+"takımlara ayırmak için bir Satış Takımı tanımlar. Her takım kendine ait "
+"fırsatlar listesi, satış siparişleri, vb. ile çalışacaktır. Her kullanıcı "
+"kendi kullanıcı tercihlerine göre varsayılan takım ayarlar. Görüntülenen "
+"fırsatlar ve satış siparişleri, otomatik olarak bu takıma göre süzülecektir."
#. module: crm
#: help:crm.meeting,count:0
@@ -2307,6 +2323,15 @@ msgid ""
"email gateway: new emails may create leads, each of them automatically gets "
"the history of the conversation with the prospect."
msgstr ""
+"Adaylar, ürünlerinize ve hizmetlerinize ilgi duyan aday ya da paydaşların "
+"ilk temaslarını yönetmeyi ve izlemeyi sağlar. Bir aday, satış çevriminizde "
+"genellikle ilk adımdır. Yeterli bulunduğunda bir aday, herhangi bir "
+"bağlantılı etkinliğinde ayrıntılı olarak izlenmesi için ilgili paydaşın "
+"oluşturulması sırasında iş fırsatına çevrilebilir. Bir adayın veritabanını "
+"içeaktarabilir, kartvizitlerin kaydını tutabilir ya da websitenizin iletişim "
+"formunu OpenERP Adaylarla entegre edebilirsiniz. Adaylar eposta ağgeçidine "
+"bağlanabilir: yeni epostalar adayları oluşturur, her biri adaylarla yapılan "
+"konuşma geçmişini otomatikmen alır."
#. module: crm
#: selection:crm.lead2opportunity.partner,action:0
@@ -3047,6 +3072,10 @@ msgid ""
"instance reflect your product structure or the different types of sales you "
"do."
msgstr ""
+"Adaylarınızı ve fırsatlarınızı firmanızın etkinliklerine uyacak şekilde "
+"sınıflandırmak ve analiz etmek için özel kategoriler oluşturun. Bu "
+"kategoriler örnek olarak ürününüzün yapısını ya da yaptığınız farklı satış "
+"türlerini yansıtabilir."
#. module: crm
#: help:crm.segmentation,som_interval_decrease:0
@@ -3367,6 +3396,13 @@ msgid ""
"bought goods to another supplier. \n"
"Use this functionality for recurring businesses."
msgstr ""
+"Bir dönem, bu bölümde satış ve satınalma döngüsü arasındaki günlerin\n"
+"ortalamasıdır. \n"
+"Genel olarak uzun bir süre hiç satınalma yapılmamış ve mal satınalmamış bir "
+"paydaşı belirlemek için kullanılır, \n"
+"böyle bir durumda ruh durumunun düştüğünü ve başka bir tedarikçiden mal "
+"satınaldığını düşünürüz. \n"
+"Bu işlevi yinelenen işler için kullanın."
#. module: crm
#: view:crm.send.mail:0
@@ -3625,6 +3661,9 @@ msgid ""
"them to easily track how is positioned a specific opportunity in the sales "
"cycle."
msgstr ""
+"Satış fırsatlarını koruyarak satışlarınıza ait satış hunilerini daha iyi "
+"organize etmek için özel aşamalar oluşturun. Satış döngüsü içerisinde "
+"belirli bir fırsatın nasıl bir durumda olduğunun kolayca izlenmesini sağlar."
#. module: crm
#: model:process.process,name:crm.process_process_contractprocess0
diff --git a/addons/crm/i18n/zh_CN.po b/addons/crm/i18n/zh_CN.po
index da15c68eb6e..2b55be47a1e 100644
--- a/addons/crm/i18n/zh_CN.po
+++ b/addons/crm/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-04-11 11:33+0000\n"
-"Last-Translator: lky \n"
+"PO-Revision-Date: 2011-07-01 15:43+0000\n"
+"Last-Translator: hifly \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 05:00+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:06+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: crm
#: view:crm.lead.report:0
@@ -36,12 +36,12 @@ msgstr "需要服务"
#. module: crm
#: selection:crm.meeting,rrule_type:0
msgid "Monthly"
-msgstr "按月"
+msgstr "月度"
#. module: crm
#: view:crm.opportunity2phonecall:0
msgid "Schedule a PhoneCall"
-msgstr "安排一个电话访问"
+msgstr "安排一次电话访问"
#. module: crm
#: model:ir.model,name:crm.model_crm_case_stage
@@ -67,7 +67,7 @@ msgstr "显示为"
#: field:crm.meeting,day:0
#: selection:crm.meeting,select1:0
msgid "Date of month"
-msgstr "月的天数"
+msgstr "每月的指定日期"
#. module: crm
#: view:crm.lead:0
@@ -124,10 +124,10 @@ msgid "The code of the sales team must be unique !"
msgstr "销售团队编码必须唯一!"
#. module: crm
-#: code:addons/crm/wizard/crm_lead_to_opportunity.py:93
+#: code:addons/crm/wizard/crm_lead_to_opportunity.py:95
#, python-format
msgid "Lead '%s' has been converted to an opportunity."
-msgstr "线索'%s'已转化商机"
+msgstr "线索'%s'已转化为商机"
#. module: crm
#: code:addons/crm/crm_lead.py:228
@@ -141,8 +141,8 @@ msgid "No Repeat"
msgstr "不重复"
#. module: crm
-#: code:addons/crm/wizard/crm_lead_to_opportunity.py:133
-#: code:addons/crm/wizard/crm_lead_to_opportunity.py:258
+#: code:addons/crm/wizard/crm_lead_to_opportunity.py:135
+#: code:addons/crm/wizard/crm_lead_to_opportunity.py:260
#: code:addons/crm/wizard/crm_lead_to_partner.py:55
#: code:addons/crm/wizard/crm_phonecall_to_partner.py:52
#, python-format
@@ -152,7 +152,7 @@ msgstr "警告!"
#. module: crm
#: selection:crm.meeting,rrule_type:0
msgid "Yearly"
-msgstr "按年"
+msgstr "年度"
#. module: crm
#: field:crm.segmentation.line,name:0
@@ -172,7 +172,7 @@ msgstr "营销活动"
#. module: crm
#: selection:crm.lead2opportunity.partner,action:0
msgid "Do not create a partner"
-msgstr "不能创建这业务伙伴"
+msgstr "不能创建业务伙伴"
#. module: crm
#: view:crm.lead:0
@@ -184,7 +184,7 @@ msgstr "搜索商机"
#, python-format
msgid ""
"Opportunity must have Partner assigned before merging with other Opportunity."
-msgstr "必须要为商机选择一个业务伙伴才能进行商机合并."
+msgstr "必须为商机选择业务伙伴才能和其它商机合并."
#. module: crm
#: code:addons/crm/wizard/crm_merge_opportunities.py:46
@@ -536,9 +536,9 @@ msgstr "第一次与新的潜在客户接触"
#. module: crm
#: code:addons/crm/crm_lead.py:278
-#: code:addons/crm/wizard/crm_lead_to_opportunity.py:195
-#: code:addons/crm/wizard/crm_lead_to_opportunity.py:229
-#: code:addons/crm/wizard/crm_lead_to_opportunity.py:297
+#: code:addons/crm/wizard/crm_lead_to_opportunity.py:197
+#: code:addons/crm/wizard/crm_lead_to_opportunity.py:231
+#: code:addons/crm/wizard/crm_lead_to_opportunity.py:299
#: view:crm.lead2opportunity:0
#: view:crm.partner2opportunity:0
#: model:ir.actions.act_window,name:crm.action_crm_lead2opportunity
@@ -597,7 +597,7 @@ msgstr "销售FAQ"
#. module: crm
#: model:ir.model,name:crm.model_crm_send_mail_attachment
msgid "crm.send.mail.attachment"
-msgstr ""
+msgstr "crm.send.mail.attachment"
#. module: crm
#: selection:crm.lead.report,month:0
@@ -805,8 +805,8 @@ msgid "Statistics Dashboard"
msgstr "统计控制台"
#. module: crm
-#: code:addons/crm/wizard/crm_lead_to_opportunity.py:86
-#: code:addons/crm/wizard/crm_lead_to_opportunity.py:96
+#: code:addons/crm/wizard/crm_lead_to_opportunity.py:88
+#: code:addons/crm/wizard/crm_lead_to_opportunity.py:98
#: code:addons/crm/wizard/crm_partner_to_opportunity.py:101
#: code:addons/crm/wizard/crm_phonecall_to_opportunity.py:117
#: view:crm.lead:0
@@ -870,7 +870,7 @@ msgstr "事件类型"
#. module: crm
#: model:ir.model,name:crm.model_crm_installer
msgid "crm.installer"
-msgstr ""
+msgstr "crm.installer"
#. module: crm
#: field:crm.segmentation,exclusif:0
@@ -1099,7 +1099,7 @@ msgstr "订阅"
#. module: crm
#: code:addons/crm/crm_opportunity.py:208
-#: code:addons/crm/crm_phonecall.py:184
+#: code:addons/crm/crm_phonecall.py:185
#: code:addons/crm/wizard/crm_phonecall_to_meeting.py:55
#: code:addons/crm/wizard/crm_phonecall_to_meeting.py:137
#: view:crm.meeting:0
@@ -2610,7 +2610,7 @@ msgid "Meeting Type"
msgstr "会议类型"
#. module: crm
-#: code:addons/crm/wizard/crm_lead_to_opportunity.py:312
+#: code:addons/crm/wizard/crm_lead_to_opportunity.py:314
#, python-format
msgid "Merge with Existing Opportunity"
msgstr "合并现有的商机"
@@ -3128,8 +3128,8 @@ msgid "Schedule Call"
msgstr "计划的电话访问"
#. module: crm
-#: code:addons/crm/wizard/crm_lead_to_opportunity.py:133
-#: code:addons/crm/wizard/crm_lead_to_opportunity.py:258
+#: code:addons/crm/wizard/crm_lead_to_opportunity.py:135
+#: code:addons/crm/wizard/crm_lead_to_opportunity.py:260
#, python-format
msgid "Closed/Cancelled Leads Could not convert into Opportunity"
msgstr "已结束/已取消的线索不能转换为商机"
diff --git a/addons/crm/report/crm_phonecall_report.py b/addons/crm/report/crm_phonecall_report.py
index 92221068e25..f68bea03880 100644
--- a/addons/crm/report/crm_phonecall_report.py
+++ b/addons/crm/report/crm_phonecall_report.py
@@ -25,9 +25,9 @@ from crm import crm
AVAILABLE_STATES = [
('draft','Draft'),
- ('open','Open'),
+ ('open','Todo'),
('cancel', 'Cancelled'),
- ('done', 'Closed'),
+ ('done', 'Held'),
('pending','Pending')
]
diff --git a/addons/crm/report/crm_phonecall_report_view.xml b/addons/crm/report/crm_phonecall_report_view.xml
index bc2ce828f5e..acc91cbef41 100644
--- a/addons/crm/report/crm_phonecall_report_view.xml
+++ b/addons/crm/report/crm_phonecall_report_view.xml
@@ -108,7 +108,7 @@
-
diff --git a/addons/crm/res_partner_view.xml b/addons/crm/res_partner_view.xml
index 9df185ae831..659ef075b7f 100644
--- a/addons/crm/res_partner_view.xml
+++ b/addons/crm/res_partner_view.xml
@@ -54,82 +54,14 @@
-
+
-
+
-
-
diff --git a/addons/crm/test/test_crm_meeting.yml b/addons/crm/test/test_crm_meeting.yml
index ae52a747bf2..9b89fff697b 100644
--- a/addons/crm/test/test_crm_meeting.yml
+++ b/addons/crm/test/test_crm_meeting.yml
@@ -57,7 +57,7 @@
!python {model: crm.meeting}: |
import time
from datetime import datetime, date, timedelta
- ids = self.search(cr, uid, [('date', '>=', time.strftime('%Y-%m-%d 00:00:00')), ('date', '<=', (datetime.now()+timedelta(31)).strftime('%Y-%m-%d 00:00:00')), ('name', '=', 'Regarding Presentation')] )
+ ids = self.search(cr, uid, [('date', '>=', time.strftime('%Y-%m-%d 00:00:00')), ('date', '<=', (datetime.now()+timedelta(31)).strftime('%Y-%m-%d 00:00:00')), ('name', '=', 'Regarding Presentation')], context={'virtual_id': True})
assert len(ids) == 10
- |
diff --git a/addons/crm/test/test_crm_recurrent_meeting_case2.yml b/addons/crm/test/test_crm_recurrent_meeting_case2.yml
new file mode 100644
index 00000000000..585c6af73ae
--- /dev/null
+++ b/addons/crm/test/test_crm_recurrent_meeting_case2.yml
@@ -0,0 +1,98 @@
+-
+ In order to test recurrent meetings in OpenERP, I create meetings with different recurrency using different test cases.
+-
+ I create a recurrent meeting with daily recurrency and fixed amount of time.
+-
+ !record {model: crm.meeting, id: crm_meeting_testmeeting0}:
+ count: 5
+ date: '2011-04-13 11:04:00'
+ date_deadline: '2011-04-13 12:04:00'
+ day: 0.0
+ duration: 1.0
+ name: Test Meeting
+ recurrency: true
+ recurrent_uid: 0.0
+ rrule_type: daily
+ sequence: 0.0
+-
+ I search for all the recurrent meetings.
+-
+ !python {model: crm.meeting}: |
+ meeting_ids = self.search(cr, uid, [('id', 'in', [ref('crm_meeting_testmeeting0')]),('date','>=','2011-03-13'), ('date_deadline', '<=', '2011-05-13')], context={'virtual_id': True})
+ assert len(meeting_ids) == 5, 'Recurrent daily meetings are not created !'
+-
+ Now I create a weekly meeting till a particular end date.
+-
+ !record {model: crm.meeting, id: crm_meeting_reviewcodewithprogrammer0}:
+ date: '2011-04-18 11:47:00'
+ date_deadline: '2011-04-18 12:47:00'
+ day: 0.0
+ duration: 1.0
+ end_date: '2011-04-30'
+ end_type: end_date
+ fr: true
+ mo: true
+ th: true
+ tu: true
+ we: true
+ name: Review code with programmer
+ recurrency: true
+ recurrent_uid: 0.0
+ rrule_type: weekly
+ sequence: 0.0
+-
+ I search for all the recurrent weekly meetings.
+-
+ !python {model: crm.meeting}: |
+ meeting_ids = self.search(cr, uid, [('id', 'in', [ref('crm_meeting_reviewcodewithprogrammer0')]),('date','>=','2011-03-13'), ('date_deadline', '<=', '2011-05-13')], context={'virtual_id': True})
+ assert len(meeting_ids) == 10, 'Recurrent weekly meetings are not created !'
+-
+ I want to schedule a meeting every month for Sprint review.
+-
+ !record {model: crm.meeting, id: crm_meeting_sprintreview0}:
+ count: 12
+ date: '2011-04-01 12:01:00'
+ date_deadline: '2011-04-01 13:01:00'
+ day: 1
+ duration: 1.0
+ name: Sprint Review
+ recurrency: true
+ recurrent_uid: 0.0
+ rrule_type: monthly
+ sequence: 0.0
+-
+ I search for all the recurrent monthly meetings.
+-
+ !python {model: crm.meeting}: |
+ meeting_ids = self.search(cr, uid, [('id', 'in', [ref('crm_meeting_sprintreview0')]),('date','>=','2011-03-01'), ('date_deadline', '<=', '2012-05-13')], context={'virtual_id': True})
+ assert len(meeting_ids) == 12, 'Recurrent monthly meetings are not created !'
+-
+ I change name of my monthly Sprint Review meeting.
+-
+ !python {model: crm.meeting}: |
+ from base_calendar import base_calendar
+ base_cal_id = base_calendar.real_id2base_calendar_id(ref('crm_meeting_sprintreview0'), '2011-09-01 13:01:00')
+ self.write(cr, uid, [base_cal_id], {'name': 'Sprint Review for google modules', 'edit_all': True})
+-
+ I check whether all the records are edited or not.
+-
+ !python {model: crm.meeting}: |
+ meeting_ids = self.search(cr, uid, [('id', 'in', [ref('crm_meeting_sprintreview0')]),('date','>=','2011-03-01'), ('date_deadline', '<=', '2012-05-13')], context={'virtual_id': True})
+ meetings = self.browse(cr, uid, meeting_ids, context)
+ for meeting in meetings:
+ assert meeting.name == 'Sprint Review for google modules', 'Name not changed for id: %s' %meeting.id
+-
+ I change description of my weekly meeting Review code with programmer.
+-
+ !python {model: crm.meeting}: |
+ from base_calendar import base_calendar
+ base_cal_id = base_calendar.real_id2base_calendar_id(ref('crm_meeting_reviewcodewithprogrammer0'), '2011-04-25 12:47:00')
+ self.write(cr, uid, [base_cal_id], {'description': 'Review code of the module: sync_google_calendar.'})
+-
+ I check whether the record is edited perfectly or not.
+-
+ !python {model: crm.meeting}: |
+ meeting_ids = self.search(cr, uid, [('recurrent_uid', '=', ref('crm_meeting_reviewcodewithprogrammer0')), ('recurrent_id','=','2011-04-25 12:47:00')], context)
+ assert meeting_ids, 'Meeting is not edited !'
+
+
\ No newline at end of file
diff --git a/addons/crm/wizard/crm_lead_to_partner.py b/addons/crm/wizard/crm_lead_to_partner.py
index 5dc7e489f26..790c6222de6 100644
--- a/addons/crm/wizard/crm_lead_to_partner.py
+++ b/addons/crm/wizard/crm_lead_to_partner.py
@@ -149,7 +149,6 @@ class crm_lead2partner(osv.osv_memory):
contact_obj = self.pool.get('res.partner.address')
partner_ids = []
partner_id = False
- contact_id = False
rec_ids = context and context.get('active_ids', [])
for data in self.browse(cr, uid, ids, context=context):
@@ -160,7 +159,7 @@ class crm_lead2partner(osv.osv_memory):
'user_id': lead.user_id.id,
'comment': lead.description,
})
- contact_id = contact_obj.create(cr, uid, {
+ contact_obj.create(cr, uid, {
'partner_id': partner_id,
'name': lead.contact_name,
'phone': lead.phone,
@@ -180,7 +179,6 @@ class crm_lead2partner(osv.osv_memory):
else:
if data.partner_id:
partner_id = data.partner_id.id
- contact_id = partner_obj.address_get(cr, uid, [partner_id])['default']
self.assign_partner(cr, uid, lead.id, partner_id)
partner_ids.append(partner_id)
return partner_ids
diff --git a/addons/crm/wizard/crm_merge_opportunities.py b/addons/crm/wizard/crm_merge_opportunities.py
index 248bff2e0e4..57620f8c016 100644
--- a/addons/crm/wizard/crm_merge_opportunities.py
+++ b/addons/crm/wizard/crm_merge_opportunities.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
@@ -67,6 +66,8 @@ class crm_merge_opportunity(osv.osv_memory):
ids = list(set(ids) - set(context.get('lead_ids', False)) )
lead_obj = self.pool.get('crm.lead')
op_id = lead_obj.search(cr, uid, [('id', 'in', ids)], order='create_date' , context=context)
+ if not op_id:
+ return False
opps = lead_obj.browse(cr, uid, [op_id[0]], context=context)
return opps[0]
@@ -139,7 +140,7 @@ class crm_merge_opportunity(osv.osv_memory):
attach_ids = self.get_attachments(cr, uid, opp, context=context)
self.set_attachements_res_id(cr, uid, first_opportunity.id, attach_ids)
for history in opp.message_ids:
- new_history = message_obj.write(cr, uid, history.id, {'res_id': first_opportunity.id, 'name' : _("From %s : %s") % (opp.name, history.name) }, context=context)
+ message_obj.write(cr, uid, history.id, {'res_id': first_opportunity.id, 'name' : _("From %s : %s") % (opp.name, history.name) }, context=context)
#Notification about loss of information
details = []
@@ -182,8 +183,6 @@ class crm_merge_opportunity(osv.osv_memory):
# Get Opportunity views
- result = models_data._get_id(
- cr, uid, 'crm', 'view_crm_case_opportunities_filter')
opportunity_view_form = models_data._get_id(
cr, uid, 'crm', 'crm_case_form_view_oppor')
opportunity_view_tree = models_data._get_id(
@@ -227,7 +226,7 @@ class crm_merge_opportunity(osv.osv_memory):
This function gets default values
@param self: The object pointer
@param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
+ @param uid: the current users ID for security checks,
@param fields: List of fields for default value
@param context: A standard dictionary for contextual values
diff --git a/addons/crm/wizard/crm_opportunity_to_phonecall.py b/addons/crm/wizard/crm_opportunity_to_phonecall.py
index 8fc7ffb310d..714376766f6 100644
--- a/addons/crm/wizard/crm_opportunity_to_phonecall.py
+++ b/addons/crm/wizard/crm_opportunity_to_phonecall.py
@@ -21,6 +21,10 @@
from osv import osv, fields
from tools.translate import _
+import pprint
+pp = pprint.PrettyPrinter(indent=4)
+
+import time
class crm_opportunity2phonecall(osv.osv_memory):
"""Converts Opportunity to Phonecall"""
@@ -31,11 +35,13 @@ class crm_opportunity2phonecall(osv.osv_memory):
_columns = {
'name' : fields.char('Call summary', size=64, required=True, select=1),
'user_id' : fields.many2one('res.users', "Assign To"),
- 'date': fields.datetime('Date' , required=True),
+ 'partner_id' : fields.many2one('res.partner', "Partner"),
+ 'date': fields.datetime('Date'),
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
- 'categ_id': fields.many2one('crm.case.categ', 'Category', required=True, \
+ 'categ_id': fields.many2one('crm.case.categ', 'Category', \
domain="['|',('section_id','=',False),('section_id','=',section_id),\
- ('object_id.model', '=', 'crm.phonecall')]"),
+ ('object_id.model', '=', 'crm.phonecall')]"),
+ 'action': fields.selection([('schedule','Schedule a call'), ('log','Log a call')], 'Action', required=True),
}
def default_get(self, cr, uid, fields, context=None):
@@ -58,6 +64,7 @@ class crm_opportunity2phonecall(osv.osv_memory):
record_ids = context and context.get('active_ids', []) or []
res = super(crm_opportunity2phonecall, self).default_get(cr, uid, fields, context=context)
+ res.update({'action': 'schedule', 'date': time.strftime('%Y-%m-%d %H:%M:%S')})
for opp in opp_obj.browse(cr, uid, record_ids, context=context):
if 'name' in fields:
res.update({'name': opp.name})
@@ -67,6 +74,8 @@ class crm_opportunity2phonecall(osv.osv_memory):
res.update({'section_id': opp.section_id and opp.section_id.id or False})
if 'categ_id' in fields:
res.update({'categ_id': categ_id})
+ if 'partner_id' in fields:
+ res.update({'partner_id': opp.partner_id and opp.partner_id.id or False})
return res
def action_cancel(self, cr, uid, ids, context=None):
@@ -112,23 +121,27 @@ class crm_opportunity2phonecall(osv.osv_memory):
for this in self.browse(cr, uid, ids, context=context):
for opp in opp_obj.browse(cr, uid, record_ids, context=context):
- new_case = phonecall_obj.create(cr, uid, {
+ vals = {
'name' : opp.name,
- 'case_id' : opp.id ,
+ 'case_id' : opp.id,
'user_id' : this.user_id and this.user_id.id or False,
'categ_id' : this.categ_id.id,
'description' : opp.description or False,
'date' : this.date,
- 'section_id' : this.section_id.id or opp.section_id.id or False,
+ 'section_id' : this.section_id.id or False,
'partner_id': opp.partner_id and opp.partner_id.id or False,
'partner_address_id': opp.partner_address_id and opp.partner_address_id.id or False,
'partner_phone' : opp.phone or (opp.partner_address_id and opp.partner_address_id.phone or False),
'partner_mobile' : opp.partner_address_id and opp.partner_address_id.mobile or False,
'priority': opp.priority,
- 'opportunity_id': opp.id
- }, context=context)
-
- phonecall_obj.case_open(cr, uid, [new_case])
+ 'opportunity_id': opp.id,
+ 'date_open': time.strftime('%Y-%m-%d %H:%M:%S')
+ }
+
+ new_case = phonecall_obj.create(cr, uid, vals, context=context)
+
+ if this.action == 'log':
+ phonecall_obj.case_close(cr, uid, [new_case])
value = {
'name': _('Phone Call'),
@@ -139,7 +152,7 @@ class crm_opportunity2phonecall(osv.osv_memory):
'res_id' : new_case,
'views': [(id3, 'form'), (id2, 'tree'), (False, 'calendar')],
'type': 'ir.actions.act_window',
- 'search_view_id': res['res_id']
+ 'search_view_id': res['res_id'],
}
return value
diff --git a/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml b/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml
index 9a623d2eaab..764648a877b 100644
--- a/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml
+++ b/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml
@@ -9,19 +9,22 @@
crm.opportunity2phonecall
form
-
@@ -30,7 +33,7 @@
- Schedule Call
+ Schedule/Log Call
crm.opportunity2phonecall
form
form
diff --git a/addons/crm/wizard/crm_phonecall_to_opportunity.py b/addons/crm/wizard/crm_phonecall_to_opportunity.py
index 32810d2f15e..549afa0559b 100644
--- a/addons/crm/wizard/crm_phonecall_to_opportunity.py
+++ b/addons/crm/wizard/crm_phonecall_to_opportunity.py
@@ -31,43 +31,14 @@ class crm_phonecall2opportunity(osv.osv_memory):
def action_cancel(self, cr, uid, ids, context=None):
"""
Closes Phonecall to Opportunity form
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of Phonecall to Opportunity's IDs
- @param context: A standard dictionary for contextual values
"""
return {'type':'ir.actions.act_window_close'}
- def view_init(self, cr, uid, fields, context=None):
- """
- This function checks for precondition before wizard executes
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param fields: List of fields for default value
- @param context: A standard dictionary for contextual values
-
- """
- phonecall_obj = self.pool.get('crm.phonecall')
- record_id = context and context.get('active_id', False) or False
- case = phonecall_obj.browse(cr, uid, record_id, context=context)
- if case.state in ['done', 'cancel']:
- raise osv.except_osv(_("Warning"), _("Closed/Cancelled Phone \
-Call can not be converted into Opportunity"))
-
def action_apply(self, cr, uid, ids, context=None):
"""
This converts Phonecall to Opportunity and opens Phonecall view
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of Phonecall to Opportunity IDs
- @param context: A standard dictionary for contextual values
-
- @return : Dictionary value for created Opportunity form
"""
record_id = context and context.get('active_id', False) or False
if record_id:
diff --git a/addons/crm/wizard/crm_phonecall_to_phonecall.py b/addons/crm/wizard/crm_phonecall_to_phonecall.py
index aaba8e082c5..2872acad4eb 100644
--- a/addons/crm/wizard/crm_phonecall_to_phonecall.py
+++ b/addons/crm/wizard/crm_phonecall_to_phonecall.py
@@ -22,6 +22,8 @@
from osv import osv, fields
from tools.translate import _
+import time
+
class crm_phonecall2phonecall(osv.osv_memory):
""" Converts Phonecall to Phonecall"""
@@ -84,6 +86,10 @@ class crm_phonecall2phonecall(osv.osv_memory):
'date': this.date
}
phonecall_id = phonecall_obj.create(cr, uid, values, context=context)
+ if this.action == 'schedule':
+ phonecall_obj.case_open(cr, uid, [phonecall_id])
+ elif this.action == 'log':
+ phonecall_obj.case_close(cr, uid, [phonecall_id])
res = {
'name': _('Phone Call'),
@@ -102,11 +108,13 @@ class crm_phonecall2phonecall(osv.osv_memory):
_columns = {
'name' : fields.char('Call summary', size=64, required=True, select=1),
'user_id' : fields.many2one('res.users',"Assign To"),
- 'categ_id': fields.many2one('crm.case.categ', 'Category', required=True, \
+ 'categ_id': fields.many2one('crm.case.categ', 'Category', \
domain="['|',('section_id','=',False),('section_id','=',section_id),\
('object_id.model', '=', 'crm.phonecall')]"),
- 'date': fields.datetime('Date', required=True),
+ 'date': fields.datetime('Date'),
'section_id':fields.many2one('crm.case.section','Sales Team'),
+ 'action': fields.selection([('schedule','Schedule a call'), ('log','Log a call')], 'Action', required=True),
+ 'partner_id' : fields.many2one('res.partner', "Partner"),
}
def default_get(self, cr, uid, fields, context=None):
@@ -122,7 +130,7 @@ class crm_phonecall2phonecall(osv.osv_memory):
"""
res = super(crm_phonecall2phonecall, self).default_get(cr, uid, fields, context=context)
record_id = context and context.get('active_id', False) or False
-
+ res.update({'action': 'schedule', 'date': time.strftime('%Y-%m-%d %H:%M:%S')})
if record_id:
phonecall = self.pool.get('crm.phonecall').browse(cr, uid, record_id, context=context)
@@ -142,6 +150,8 @@ class crm_phonecall2phonecall(osv.osv_memory):
res.update({'section_id': phonecall.section_id and phonecall.section_id.id or False})
if 'categ_id' in fields:
res.update({'categ_id': categ_id})
+ if 'partner_id' in fields:
+ res.update({'partner_id': phonecall.partner_id and phonecall.partner_id.id or False})
return res
crm_phonecall2phonecall()
diff --git a/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml b/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml
index 82c3191a17b..794634da4f1 100644
--- a/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml
+++ b/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml
@@ -9,18 +9,21 @@
crm.phonecall2phonecall
form
-
diff --git a/addons/crm_caldav/crm_caldav_view.xml b/addons/crm_caldav/crm_caldav_view.xml
index b8b0ffdea03..a610095d6a6 100644
--- a/addons/crm_caldav/crm_caldav_view.xml
+++ b/addons/crm_caldav/crm_caldav_view.xml
@@ -5,7 +5,7 @@
Caldav Browse
ir.actions.act_window
user.preference
-
+
{'cal_name' : 'Meetings'}
form
form
diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py
index 05634d564b8..c5755085216 100644
--- a/addons/crm_claim/crm_claim.py
+++ b/addons/crm_claim/crm_claim.py
@@ -181,7 +181,7 @@ class crm_claim(crm.crm_case, osv.osv):
"""
mailgate_pool = self.pool.get('email.server.tools')
- subject = msg.get('subject')
+ subject = msg.get('subject') or _("No Subject")
body = msg.get('body')
msg_from = msg.get('from')
priority = msg.get('priority')
diff --git a/addons/crm_helpdesk/crm_helpdesk.py b/addons/crm_helpdesk/crm_helpdesk.py
index 30a2af63512..5d02ec12369 100644
--- a/addons/crm_helpdesk/crm_helpdesk.py
+++ b/addons/crm_helpdesk/crm_helpdesk.py
@@ -24,6 +24,7 @@ from osv import fields, osv
import time
import binascii
import tools
+from tools.translate import _
CRM_HELPDESK_STATES = (
crm.AVAILABLE_STATES[2][0], # Cancelled
@@ -104,7 +105,7 @@ class crm_helpdesk(crm.crm_case, osv.osv):
"""
mailgate_pool = self.pool.get('email.server.tools')
- subject = msg.get('subject')
+ subject = msg.get('subject') or _("No Subject")
body = msg.get('body')
msg_from = msg.get('from')
priority = msg.get('priority')
diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml
index 348492cc308..38536289bb5 100644
--- a/addons/crm_helpdesk/crm_helpdesk_view.xml
+++ b/addons/crm_helpdesk/crm_helpdesk_view.xml
@@ -180,7 +180,7 @@
tree
+ colors="black:state=='open';blue:state=='pending';gray:state in ('cancel','done')">
diff --git a/addons/crm_helpdesk/i18n/fi.po b/addons/crm_helpdesk/i18n/fi.po
new file mode 100644
index 00000000000..82c5bfc5a41
--- /dev/null
+++ b/addons/crm_helpdesk/i18n/fi.po
@@ -0,0 +1,695 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-28 09:47+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-29 04:43+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,delay_close:0
+msgid "Delay to Close"
+msgstr "Sulkemisen viive"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,nbr:0
+msgid "# of Cases"
+msgstr "Tapausten määrä"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: view:crm.helpdesk.report:0
+msgid "Group By..."
+msgstr "Ryhmittely.."
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Today"
+msgstr "Tänään"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "March"
+msgstr "Maaliskuu"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,company_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,company_id:0
+msgid "Company"
+msgstr "Yritys"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,email_cc:0
+msgid "Watchers Emails"
+msgstr "Seuraajien Sähköpostit"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Highest"
+msgstr "Korkein"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,day:0
+msgid "Day"
+msgstr "Päivä"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Add Internal Note"
+msgstr "Lisää sisäinen huomautus"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Notes"
+msgstr "Huomautukset"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_ids:0
+msgid "Messages"
+msgstr "Viestit"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Cancelled"
+msgstr "Peruttu"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,partner_address_id:0
+msgid "Partner Contact"
+msgstr "Kumppanin Yhteystiedot"
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.action_report_crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_report_crm_helpdesks_tree
+msgid "Helpdesk Analysis"
+msgstr "Helpdeskin analyysi"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,date_closed:0
+msgid "Close Date"
+msgstr "Sulkemispäivä"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid " Month "
+msgstr " Kuukausi "
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,ref:0
+msgid "Reference"
+msgstr "Viite"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_action_next:0
+msgid "Next Action"
+msgstr "Seuraava Toimenpide"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Supports"
+msgstr "Helpdesk tukee"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Extra Info"
+msgstr "Lisätiedot"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,partner_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,partner_id:0
+msgid "Partner"
+msgstr "Kumppani"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Estimates"
+msgstr "Arviot"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,section_id:0
+msgid "Section"
+msgstr "Osa"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,priority:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,priority:0
+msgid "Priority"
+msgstr "Prioriteetti"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Send New Email"
+msgstr "Lähetä uusi sähköposti"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Won"
+msgstr "Voitettu"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,delay_expected:0
+msgid "Overpassed Deadline"
+msgstr "Ylitetty aikaraja"
+
+#. module: crm_helpdesk
+#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report
+msgid "Helpdesk report after Sales Services"
+msgstr "Helpdesk raportti jälkimarkkinointipalveluista"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,email_from:0
+msgid "Email"
+msgstr "Sähköposti"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,canal_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,canal_id:0
+msgid "Channel"
+msgstr "Kanava"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Lowest"
+msgstr "Alin"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "# Mails"
+msgstr "Sähköpostien määrä"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,create_date:0
+#: field:crm.helpdesk.report,create_date:0
+msgid "Creation Date"
+msgstr "Luontipäivämäärä"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Reset to Draft"
+msgstr "Palauta luonnokseksi"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Pending"
+msgstr "Odottava"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,date_deadline:0
+#: field:crm.helpdesk.report,date_deadline:0
+msgid "Deadline"
+msgstr "Määräaika"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "July"
+msgstr "Heinäkuu"
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.crm_helpdesk_categ_action
+msgid "Helpdesk Categories"
+msgstr "Helpdesk kategoriat"
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_crm_case_helpdesk-act
+msgid "Categories"
+msgstr "Kategoriat"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "History Information"
+msgstr "Historiatiedot"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Dates"
+msgstr "Päivämäärät"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid " Month-1 "
+msgstr " Kuukausi-1 "
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "#Helpdesk"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,email_cc:0
+msgid ""
+"These email addresses will be added to the CC field of all inbound and "
+"outbound emails for this record before being sent. Separate multiple email "
+"addresses with a comma"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "References"
+msgstr "Viitteet"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "September"
+msgstr "Syyskuu"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Communication"
+msgstr "Viestintä"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,month:0
+msgid "Month"
+msgstr "Kuukausi"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Escalate"
+msgstr "Kohota"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,write_date:0
+msgid "Update Date"
+msgstr "Päivityksen päiväys"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Query"
+msgstr "Kysely"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Salesman"
+msgstr "Myyjä"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,ref2:0
+msgid "Reference 2"
+msgstr "Viittaus 2"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,categ_id:0
+#: field:crm.helpdesk.report,categ_id:0
+msgid "Category"
+msgstr "Kategoria"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid " Year "
+msgstr " Vuosi "
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Support"
+msgstr "Helpdeskin tuki"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,planned_cost:0
+#: field:crm.helpdesk.report,planned_cost:0
+msgid "Planned Costs"
+msgstr "Suunnitellut kulut"
+
+#. module: crm_helpdesk
+#: model:ir.module.module,description:crm_helpdesk.module_meta_information
+msgid "Helpdesk Management"
+msgstr "Helpdeskin hallinta"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Search Helpdesk"
+msgstr "Hae helpdeskiä"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Draft"
+msgstr "Luonnos"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Low"
+msgstr "Matala"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_closed:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Closed"
+msgstr "Suljettu"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "7 Days"
+msgstr "7 päivää"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Communication & History"
+msgstr "Kommunikaatio ja historia"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "August"
+msgstr "Elokuu"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Normal"
+msgstr "Tavallinen"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Global CC"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "June"
+msgstr "Kesäkuu"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,planned_revenue:0
+msgid "Planned Revenue"
+msgstr "Suunniteltu liikevaihto"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,user_id:0
+msgid "User"
+msgstr "Käyttäjä"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,active:0
+msgid "Active"
+msgstr "Aktiivinen"
+
+#. module: crm_helpdesk
+#: model:ir.module.module,shortdesc:crm_helpdesk.module_meta_information
+msgid "CRM Helpdesk"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Extended Filters..."
+msgstr "Laajennetut Suotimet..."
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.crm_case_helpdesk_act111
+msgid "Helpdesk Requests"
+msgstr "Helpdesk pyynnöt"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Search"
+msgstr "Etsi"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "October"
+msgstr "Lokakuu"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "January"
+msgstr "Tammikuu"
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,email_from:0
+msgid "These people will receive email."
+msgstr "Nämä henkilöt vastaanottavat sähköpostin."
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,date:0
+msgid "Date"
+msgstr "Päiväys"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "November"
+msgstr "Marraskuu"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "History"
+msgstr "Historia"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Attachments"
+msgstr "Liitteet"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Misc"
+msgstr "Sekalaiset"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,state:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,state:0
+msgid "State"
+msgstr "Tila"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "General"
+msgstr "Yleinen"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Send Reminder"
+msgstr "Lähetä muistutus"
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,section_id:0
+msgid ""
+"Sales team to which Case belongs to. Define "
+"Responsible user and Email account for mail gateway."
+msgstr ""
+"Myyntitiili mille tapaus kuuluu. Määrittele vastuuhenkilö ja "
+"sähköpostiosoite sähköpostin välityspalvelimelle"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Done"
+msgstr "Valmis"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "December"
+msgstr "Joulukuu"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Cancel"
+msgstr "Peruuta"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Close"
+msgstr "Sulje"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Open"
+msgstr "Avaa"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Support Tree"
+msgstr "Helpdeskin tukipuu"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Categorization"
+msgstr "Kategorisointi"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_config_helpdesk
+msgid "Helpdesk"
+msgstr "Helpdesk"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,user_id:0
+msgid "Responsible"
+msgstr "Vastuuhenkilö"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Current"
+msgstr "Nykyinen"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Details"
+msgstr "Yksityiskohdat"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Reply"
+msgstr "Vastaa"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,description:0
+msgid "Description"
+msgstr "Kuvaus"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "May"
+msgstr "Toukokuu"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,probability:0
+msgid "Probability (%)"
+msgstr "Todennäköisyys (%)"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,email:0
+msgid "# Emails"
+msgstr "Sähköpostien määrä"
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,help:crm_helpdesk.action_report_crm_helpdesk
+msgid ""
+"Have a general overview of all support requests by sorting them with "
+"specific criteria such as the processing time, number of requests answered, "
+"emails sent and costs."
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,canal_id:0
+msgid ""
+"The channels represent the different communication modes available with the "
+"customer."
+msgstr ""
+"Kanavat kuvaavat erilaisia kommunikaatiomuotoja joiden kautta voidaan "
+"viestiä asiakkaan kanssa."
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,state:0
+msgid ""
+"The state is set to 'Draft', when a case is created. "
+" \n"
+"If the case is in progress the state is set to 'Open'. "
+" \n"
+"When the case is over, the state is set to 'Done'. "
+" \n"
+"If the case needs to be reviewed then the state is set to 'Pending'."
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "February"
+msgstr "Helmikuu"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,name:0
+msgid "Name"
+msgstr "Nimi"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Lost"
+msgstr "Hävitty"
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main
+msgid "Helpdesk and Support"
+msgstr "Helpdesk ja tuki"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "April"
+msgstr "Huhtikuu"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "My Case(s)"
+msgstr "Omat tapaukset"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,id:0
+msgid "ID"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,help:crm_helpdesk.crm_helpdesk_categ_action
+msgid ""
+"Create and manage helpdesk categories to better manage and classify your "
+"support requests."
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "High"
+msgstr "Korkea"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,section_id:0
+#: view:crm.helpdesk.report:0
+msgid "Sales Team"
+msgstr "Myyntitiimi"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_action_last:0
+msgid "Last Action"
+msgstr "Viimeisin tapahtuma"
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,help:crm_helpdesk.crm_case_helpdesk_act111
+msgid ""
+"Helpdesk and Support allow you to track your interventions. Select a "
+"customer, add notes and categorize interventions with partners if necessary. "
+"You can also assign a priority level. Use the OpenERP Issues system to "
+"manage your support activities. Issues can be connected to the email "
+"gateway: new emails may create issues, each of them automatically gets the "
+"history of the conversation with the customer."
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,name:0
+msgid "Year"
+msgstr "Vuosi"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,duration:0
+msgid "Duration"
+msgstr "Kesto"
diff --git a/addons/crm_partner_assign/wizard/crm_forward_to_partner.py b/addons/crm_partner_assign/wizard/crm_forward_to_partner.py
index f531165e942..544dbd1ee7b 100644
--- a/addons/crm_partner_assign/wizard/crm_forward_to_partner.py
+++ b/addons/crm_partner_assign/wizard/crm_forward_to_partner.py
@@ -20,11 +20,9 @@
#
##############################################################################
-import base64
import time
import re
from osv import osv, fields
-import tools
from tools.translate import _
class crm_lead_forward_to_partner(osv.osv_memory):
diff --git a/addons/delivery/delivery.py b/addons/delivery/delivery.py
index aceee36e0a2..7ad3f7fff5f 100644
--- a/addons/delivery/delivery.py
+++ b/addons/delivery/delivery.py
@@ -63,7 +63,7 @@ class delivery_carrier(osv.osv):
'partner_id': fields.many2one('res.partner', 'Carrier Partner', required=True),
'product_id': fields.many2one('product.product', 'Delivery Product', required=True),
'grids_id': fields.one2many('delivery.grid', 'carrier_id', 'Delivery Grids'),
- 'price' : fields.function(get_price, method=True,string='Price'),
+ 'price' : fields.function(get_price,string='Price'),
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the delivery carrier without removing it.")
}
_defaults = {
diff --git a/addons/delivery/partner.py b/addons/delivery/partner.py
index 386e9d08139..62008c2c7cf 100644
--- a/addons/delivery/partner.py
+++ b/addons/delivery/partner.py
@@ -29,7 +29,6 @@ class res_partner(osv.osv):
type='many2one',
relation='delivery.carrier',
string="Delivery Method",
- method=True,
view_load=True,
help="This delivery method will be used when invoicing from picking."),
}
diff --git a/addons/delivery/stock.py b/addons/delivery/stock.py
index d1ffb7ba968..05074268220 100644
--- a/addons/delivery/stock.py
+++ b/addons/delivery/stock.py
@@ -54,12 +54,12 @@ class stock_picking(osv.osv):
_columns = {
'carrier_id':fields.many2one("delivery.carrier","Carrier"),
'volume': fields.float('Volume'),
- 'weight': fields.function(_cal_weight, method=True, type='float', string='Weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_weight',
+ 'weight': fields.function(_cal_weight, type='float', string='Weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_weight',
store={
'stock.picking': (lambda self, cr, uid, ids, c={}: ids, ['move_lines'], 20),
'stock.move': (_get_picking_line, ['product_id','product_qty','product_uom','product_uos_qty'], 20),
}),
- 'weight_net': fields.function(_cal_weight, method=True, type='float', string='Net Weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_weight',
+ 'weight_net': fields.function(_cal_weight, type='float', string='Net Weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_weight',
store={
'stock.picking': (lambda self, cr, uid, ids, c={}: ids, ['move_lines'], 20),
'stock.move': (_get_picking_line, ['product_id','product_qty','product_uom','product_uos_qty'], 20),
@@ -158,11 +158,11 @@ class stock_move(osv.osv):
return res
_columns = {
- 'weight': fields.function(_cal_move_weight, method=True, type='float', string='Weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_move_weight',
+ 'weight': fields.function(_cal_move_weight, type='float', string='Weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_move_weight',
store={
'stock.move': (lambda self, cr, uid, ids, c=None: ids, ['product_id', 'product_qty', 'product_uom'], 20),
}),
- 'weight_net': fields.function(_cal_move_weight, method=True, type='float', string='Net weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_move_weight',
+ 'weight_net': fields.function(_cal_move_weight, type='float', string='Net weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_move_weight',
store={
'stock.move': (lambda self, cr, uid, ids, c=None: ids, ['product_id', 'product_qty', 'product_uom'], 20),
}),
diff --git a/addons/document/directory_report.py b/addons/document/directory_report.py
index 1665a7abf68..2726fcd5462 100644
--- a/addons/document/directory_report.py
+++ b/addons/document/directory_report.py
@@ -56,7 +56,7 @@ class ir_action_report_xml(osv.osv):
return [('id','in',report_id)]
_columns={
- 'model_id' : fields.function(_model_get, fnct_search=_model_search, method=True, string='Model Id'),
+ 'model_id' : fields.function(_model_get, fnct_search=_model_search, string='Model Id'),
}
ir_action_report_xml()
diff --git a/addons/document/document.py b/addons/document/document.py
index 90f57438ce8..69e123b87eb 100644
--- a/addons/document/document.py
+++ b/addons/document/document.py
@@ -117,7 +117,7 @@ class document_file(osv.osv):
# If ir.attachment contained any data before document is installed, preserve
# the data, don't drop the column!
'db_datas': fields.binary('Data', oldname='datas'),
- 'datas': fields.function(_data_get, method=True, fnct_inv=_data_set, string='File Content', type="binary", nodrop=True),
+ 'datas': fields.function(_data_get, fnct_inv=_data_set, string='File Content', type="binary", nodrop=True),
# Fields of document:
'user_id': fields.many2one('res.users', 'Owner', select=1),
diff --git a/addons/document_ftp/ftpserver/abstracted_fs.py b/addons/document_ftp/ftpserver/abstracted_fs.py
index 7580a8831cf..b8ce97a7017 100644
--- a/addons/document_ftp/ftpserver/abstracted_fs.py
+++ b/addons/document_ftp/ftpserver/abstracted_fs.py
@@ -68,7 +68,7 @@ class abstracted_fs(object):
db, cr = None, None
try:
try:
- db = pooler.get_db_only(db_name)
+ db = pooler.get_db(db_name)
cr = db.cursor()
cr.execute("SELECT 1 FROM pg_class WHERE relkind = 'r' AND relname = 'ir_module_module'")
if not cr.fetchone():
diff --git a/addons/document_ftp/i18n/fi.po b/addons/document_ftp/i18n/fi.po
new file mode 100644
index 00000000000..7dd3b90d649
--- /dev/null
+++ b/addons/document_ftp/i18n/fi.po
@@ -0,0 +1,138 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-27 06:20+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-28 04:40+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: document_ftp
+#: model:ir.model,name:document_ftp.model_document_ftp_configuration
+msgid "Auto Directory Configuration"
+msgstr "Automaattinen hakemistojen konfigurointi"
+
+#. module: document_ftp
+#: view:document.ftp.configuration:0
+msgid ""
+"Indicate the network address on which your OpenERP server should be "
+"reachable for end-users. This depends on your network topology and "
+"configuration, and will only affect the links displayed to the users. The "
+"format is HOST:PORT and the default host (localhost) is only suitable for "
+"access from the server machine itself.."
+msgstr ""
+
+#. module: document_ftp
+#: field:document.ftp.configuration,progress:0
+msgid "Configuration Progress"
+msgstr "Konfiguraation eteneminen"
+
+#. module: document_ftp
+#: model:ir.actions.url,name:document_ftp.action_document_browse
+msgid "Browse Files"
+msgstr "Selaa tiedostoja"
+
+#. module: document_ftp
+#: field:document.ftp.configuration,config_logo:0
+msgid "Image"
+msgstr "Kuva"
+
+#. module: document_ftp
+#: field:document.ftp.configuration,host:0
+msgid "Address"
+msgstr "Osoite"
+
+#. module: document_ftp
+#: field:document.ftp.browse,url:0
+msgid "FTP Server"
+msgstr "FTP-palvelin"
+
+#. module: document_ftp
+#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
+msgid "FTP Server Configuration"
+msgstr "FTP palvelimen konfiguraatio"
+
+#. module: document_ftp
+#: model:ir.module.module,description:document_ftp.module_meta_information
+msgid ""
+"This is a support FTP Interface with document management system.\n"
+" With this module you would not only be able to access documents through "
+"OpenERP\n"
+" but you would also be able to connect with them through the file system "
+"using the\n"
+" FTP client.\n"
+msgstr ""
+
+#. module: document_ftp
+#: view:document.ftp.browse:0
+msgid "_Browse"
+msgstr "Selaa"
+
+#. module: document_ftp
+#: help:document.ftp.configuration,host:0
+msgid ""
+"Server address or IP and port to which users should connect to for DMS access"
+msgstr ""
+"Palvelimen osoite tai IP ja portti mihin käyttäjien tulisi ottaa yhteyttä "
+"DMS:n käyttöä varten"
+
+#. module: document_ftp
+#: model:ir.ui.menu,name:document_ftp.menu_document_browse
+msgid "Shared Repository (FTP)"
+msgstr "Jaettu tietolähde (FTP)"
+
+#. module: document_ftp
+#: view:document.ftp.browse:0
+msgid "_Cancel"
+msgstr "_Peruuta"
+
+#. module: document_ftp
+#: view:document.ftp.configuration:0
+msgid "Configure FTP Server"
+msgstr "Konfiguroi FTP palvelin"
+
+#. module: document_ftp
+#: model:ir.module.module,shortdesc:document_ftp.module_meta_information
+msgid "Integrated FTP Server with Document Management System"
+msgstr ""
+"Integroitu FTP palvelin dokumenttienhallintajärjestelmällä varustettuna"
+
+#. module: document_ftp
+#: view:document.ftp.configuration:0
+msgid "title"
+msgstr "otsikko"
+
+#. module: document_ftp
+#: model:ir.model,name:document_ftp.model_document_ftp_browse
+msgid "Document FTP Browse"
+msgstr "Dokumenttien FTP selailu"
+
+#. module: document_ftp
+#: view:document.ftp.configuration:0
+msgid "Knowledge Application Configuration"
+msgstr "Tiedonhallintaohjelmiston konfiguraatio"
+
+#. module: document_ftp
+#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
+msgid "Document Browse"
+msgstr "Dokumenttien selailu"
+
+#. module: document_ftp
+#: view:document.ftp.browse:0
+msgid "Browse Document"
+msgstr "Selaa dokumenttia"
+
+#. module: document_ftp
+#: view:document.ftp.configuration:0
+msgid "res_config_contents"
+msgstr ""
diff --git a/addons/document_ftp/i18n/tr.po b/addons/document_ftp/i18n/tr.po
new file mode 100644
index 00000000000..d629d255754
--- /dev/null
+++ b/addons/document_ftp/i18n/tr.po
@@ -0,0 +1,145 @@
+# Turkish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-23 19:32+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: 2011-06-24 05:00+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: document_ftp
+#: model:ir.model,name:document_ftp.model_document_ftp_configuration
+msgid "Auto Directory Configuration"
+msgstr "Otomatik Klasör Yapılandırması"
+
+#. module: document_ftp
+#: view:document.ftp.configuration:0
+msgid ""
+"Indicate the network address on which your OpenERP server should be "
+"reachable for end-users. This depends on your network topology and "
+"configuration, and will only affect the links displayed to the users. The "
+"format is HOST:PORT and the default host (localhost) is only suitable for "
+"access from the server machine itself.."
+msgstr ""
+"OpenERP sunucusunda son kullanıcıların erişebileceği ağ adresini belirtir. "
+"Bu, ağ yapınıza ve yapılandırmasına bağlıdır ve yalnızca kullanıcılara "
+"gösterilen ağları etkiler. Formatı HOST:PORT şeklindedir ve varsayılan "
+"sunucu (localhost) yalnızca sunucu cihazından erişim için uygundur."
+
+#. module: document_ftp
+#: field:document.ftp.configuration,progress:0
+msgid "Configuration Progress"
+msgstr "Yapılandırma Gelişimi"
+
+#. module: document_ftp
+#: model:ir.actions.url,name:document_ftp.action_document_browse
+msgid "Browse Files"
+msgstr "Dosyalara Gözat"
+
+#. module: document_ftp
+#: field:document.ftp.configuration,config_logo:0
+msgid "Image"
+msgstr "Resim"
+
+#. module: document_ftp
+#: field:document.ftp.configuration,host:0
+msgid "Address"
+msgstr "Adres"
+
+#. module: document_ftp
+#: field:document.ftp.browse,url:0
+msgid "FTP Server"
+msgstr "FTP Sunucusu"
+
+#. module: document_ftp
+#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
+msgid "FTP Server Configuration"
+msgstr "FTP Sunucusu Yapılandırması"
+
+#. module: document_ftp
+#: model:ir.module.module,description:document_ftp.module_meta_information
+msgid ""
+"This is a support FTP Interface with document management system.\n"
+" With this module you would not only be able to access documents through "
+"OpenERP\n"
+" but you would also be able to connect with them through the file system "
+"using the\n"
+" FTP client.\n"
+msgstr ""
+"Bu bir belge yönetim sistemli destek FTP Arayüzüdür.\n"
+" Bu modül ile yalnızca OpenERP nin içinden belgelere erişmekle kalmayıp \n"
+" FTP istemcisini kullanarak dosya sistemi içinden de \n"
+" bağlanabileceksiniz.\n"
+
+#. module: document_ftp
+#: view:document.ftp.browse:0
+msgid "_Browse"
+msgstr "_Gözat"
+
+#. module: document_ftp
+#: help:document.ftp.configuration,host:0
+msgid ""
+"Server address or IP and port to which users should connect to for DMS access"
+msgstr ""
+"DMS erişimi için kullanıcıların bağlanacağı sunucu adresi ya da IP ve "
+"bağlantı noktasıdır."
+
+#. module: document_ftp
+#: model:ir.ui.menu,name:document_ftp.menu_document_browse
+msgid "Shared Repository (FTP)"
+msgstr "Paylaşılan Havuz (FTP)"
+
+#. module: document_ftp
+#: view:document.ftp.browse:0
+msgid "_Cancel"
+msgstr "_Vazgeç"
+
+#. module: document_ftp
+#: view:document.ftp.configuration:0
+msgid "Configure FTP Server"
+msgstr "FTP Sunucusunu Yapılandır"
+
+#. module: document_ftp
+#: model:ir.module.module,shortdesc:document_ftp.module_meta_information
+msgid "Integrated FTP Server with Document Management System"
+msgstr "Belge Yönetim Sistemi ile entegre FTP Sunucusu"
+
+#. module: document_ftp
+#: view:document.ftp.configuration:0
+msgid "title"
+msgstr "unvan"
+
+#. module: document_ftp
+#: model:ir.model,name:document_ftp.model_document_ftp_browse
+msgid "Document FTP Browse"
+msgstr "FTP BelgeTaraması"
+
+#. module: document_ftp
+#: view:document.ftp.configuration:0
+msgid "Knowledge Application Configuration"
+msgstr "Bilgi Birikimi Uygulama Ayarları"
+
+#. module: document_ftp
+#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
+msgid "Document Browse"
+msgstr "Belge Tarama"
+
+#. module: document_ftp
+#: view:document.ftp.browse:0
+msgid "Browse Document"
+msgstr "Belge Tara"
+
+#. module: document_ftp
+#: view:document.ftp.configuration:0
+msgid "res_config_contents"
+msgstr "res_config_contents"
diff --git a/addons/document_webdav/dav_fs.py b/addons/document_webdav/dav_fs.py
index 8c606e4cca0..5e01bf6a66c 100644
--- a/addons/document_webdav/dav_fs.py
+++ b/addons/document_webdav/dav_fs.py
@@ -361,7 +361,7 @@ class openerp_dav_handler(dav_interface):
for db_name in result:
cr = None
try:
- db = pooler.get_db_only(db_name)
+ db = pooler.get_db(db_name)
cr = db.cursor()
cr.execute("SELECT id FROM ir_module_module WHERE name = 'document' AND state='installed' ")
res=cr.fetchone()
diff --git a/addons/email_template/i18n/tr.po b/addons/email_template/i18n/tr.po
index b76641ce7e0..2862a96cba3 100644
--- a/addons/email_template/i18n/tr.po
+++ b/addons/email_template/i18n/tr.po
@@ -8,30 +8,30 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-13 23:13+0000\n"
-"Last-Translator: Arif Aydogmus \n"
+"PO-Revision-Date: 2011-06-27 18:17+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: 2011-04-29 05:46+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-06-28 04:40+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: email_template
#: help:email_template.account,auto_delete:0
msgid "Permanently delete emails after sending"
-msgstr "Gönderdikten sonra e-postayı sil."
+msgstr "Gönderdikten sonra epostaları kalıcı olarak sil."
#. module: email_template
#: view:email_template.account:0
msgid "Email Account Configuration"
-msgstr "E-posta Hesapları Yapılandırma"
+msgstr "Eposta Hesapları Yapılandırma"
#. module: email_template
#: code:addons/email_template/wizard/email_template_send_wizard.py:195
#, python-format
msgid "Emails for multiple items saved in outbox."
-msgstr "Çoklu öğeler için e-postalar giden kutusuna kaydedildi."
+msgstr "Çoklu öğeler için epostalar giden kutusuna kaydedildi."
#. module: email_template
#: code:addons/email_template/wizard/email_template_send_wizard.py:59
@@ -54,22 +54,22 @@ msgstr "Kişisel E-postalar"
#. module: email_template
#: field:email.template,file_name:0
msgid "Report Filename"
-msgstr "Rapor dosyasının adı"
+msgstr "Rapor Dosyasının adı"
#. module: email_template
#: view:email.template:0
msgid "Email Content "
-msgstr "E-posta içeriği "
+msgstr "Eposta İçeriği "
#. module: email_template
#: view:email_template.send.wizard:0
msgid "Send mail Wizard"
-msgstr "E-Posta Gönderim Sihirbazı"
+msgstr "Posta Gönderim Sihirbazı"
#. module: email_template
#: selection:email_template.mailbox,mail_type:0
msgid "Plain Text & HTML with no attachments"
-msgstr "Salt Metin ve Eklentisiz HTML"
+msgstr "Düz Metin ve Eklentisiz HTML"
#. module: email_template
#: help:email.template,model_object_field:0
@@ -81,7 +81,7 @@ msgid ""
msgstr ""
"Kullanmak istediğiniz modelden alanı seçiniz.\n"
"Eğer ilintili bir alansa içiçe değerleri aşağıdaki kutudan seçebilirsiniz.\n"
-"(Not: Eğer herhangi bir değer yoksa mutlaka doğru modeli seçiniz)"
+"(Not: Eğer herhangi bir değer yoksa doğru modeli seçtiğinizden emin olun)"
#. module: email_template
#: field:email_template.preview,body_html:0
@@ -89,13 +89,13 @@ msgstr ""
#: field:email_template.send.wizard,body_html:0
#: field:email_template.send.wizard,body_text:0
msgid "Body"
-msgstr "İleti metni"
+msgstr "Gövde"
#. module: email_template
#: code:addons/email_template/email_template.py:304
#, python-format
msgid "Deletion of Record failed"
-msgstr "Kayıt silinemedi"
+msgstr "Kayıt Silinemedi"
#. module: email_template
#: help:email_template.account,company:0
@@ -103,8 +103,8 @@ msgid ""
"Select if this mail account does not belong to specific user but to the "
"organization as a whole. eg: info@companydomain.com"
msgstr ""
-"Bu e-posta hesabı belirli bir kullanıcıya ait değilde birçok kişinin üyesi "
-"olduğu bir grup hesabı ise seçin. Ör: info@companydomain.com"
+"Bu posta hesabı belirli bir kullanıcıya ait değilde bir kurumun geneline "
+"aitse seçin. Ör: info@companydomain.com"
#. module: email_template
#: view:email_template.send.wizard:0
@@ -114,19 +114,19 @@ msgstr "Şimdi gönder"
#. module: email_template
#: selection:email_template.mailbox,state:0
msgid "Not Applicable"
-msgstr "Uygun Değil"
+msgstr "Uygulanabilir Değil"
#. module: email_template
#: view:email_template.account:0
#: model:ir.ui.menu,name:email_template.menu_email_account_all_tools
#: model:ir.ui.menu,name:email_template.menu_email_template_account_all
msgid "Email Accounts"
-msgstr "E-posta Hesapları"
+msgstr "Eposta Hesapları"
#. module: email_template
#: view:email_template.send.wizard:0
msgid "Send all mails"
-msgstr "Tüm E-Postaları gönder"
+msgstr "Tüm postaları gönder"
#. module: email_template
#: help:email_template.account,smtpuname:0
@@ -134,13 +134,13 @@ msgid ""
"Specify the username if your SMTP server requires authentication, otherwise "
"leave it empty."
msgstr ""
-"SMTP sunucunuz kimlik doğrulama gerektiriyorsa kullanıcı adınızı yazınız "
+"SMTP sunucunuz kimlik doğrulama gerektiriyorsa kullanıcı adınızı yazınız, "
"gerektirmiyorsa boş bırakınız."
#. module: email_template
#: field:email_template.mailbox,server_ref:0
msgid "Server Reference of mail"
-msgstr "E-Posta Sunucu Referansı"
+msgstr "Posta Sunucu Referansı"
#. module: email_template
#: view:email_template.account:0
@@ -154,8 +154,8 @@ msgid ""
"Carbon Copy address(es), comma-separated. Placeholders can be used here. "
"e.g. ${object.email_cc}"
msgstr ""
-"Kopya alıcıları virgülle ayrılır. Yertutucular kullanılabilir. Ör: "
-"${object.email_cc}"
+"Karbon Kopya adres(ler) virgülle ayrılı. Yertutucular burada kullanılabilir. "
+"Örn. ${object.email_cc}"
#. module: email_template
#: view:email.template:0
@@ -183,13 +183,13 @@ msgstr ""
#. module: email_template
#: field:email.template,from_account:0
msgid "Email Account"
-msgstr "E-Posta Hesabı"
+msgstr "Eposta Hesabı"
#. module: email_template
#: code:addons/email_template/wizard/email_template_send_wizard.py:201
#, python-format
msgid "Email sending failed for one or more objects."
-msgstr "Bir ya da daha çok nesne için e-posta gönderimi başarısız."
+msgstr "Bir ya da daha çok nesne için eposta gönderimi başarısız."
#. module: email_template
#: view:email_template.send.wizard:0
@@ -197,7 +197,7 @@ msgid ""
"Add here all attachments of the current document you want to include in the "
"Email."
msgstr ""
-"E-postada yer almasını istediğiniz dökümana ait tüm ekleri buraya ekleyiniz."
+"Epostada yer almasını istediğiniz dökümana ait tüm ekleri buraya ekleyiniz."
#. module: email_template
#: help:email.template,lang:0
@@ -205,7 +205,7 @@ msgid ""
"The default language for the email. Placeholders can be used here. eg. "
"${object.partner_id.lang}"
msgstr ""
-"E-Posta için öntanımlı dil. Burada yer tutucular kullanılabilir. Örneğin, "
+"Eposta için varsayılan dil. Burada yertutucular kullanılabilir. Örneğin, "
"${object.partner_id.lang}"
#. module: email_template
@@ -214,7 +214,7 @@ msgid ""
"When you choose relationship fields this field will specify the sub value "
"you can use."
msgstr ""
-"İlintili alanlar seçtiğinizde bu alan kullanabileceğiniz alt değeri "
+"İlişkili alanları seçtiğinizde bu alan kullanabileceğiniz alt değeri "
"belirtecektir"
#. module: email_template
@@ -951,7 +951,7 @@ msgid "Close"
msgstr "Kapat"
#. module: email_template
-#: code:addons/email_template/email_template_mailbox.py:49
+#: code:addons/email_template/email_template_mailbox.py:48
#, python-format
msgid "Error sending mail: %s"
msgstr "İleti gönderiminde hata: %s"
@@ -1043,7 +1043,7 @@ msgid "Email Mailbox"
msgstr "E-Posta Kutusu"
#. module: email_template
-#: code:addons/email_template/email_template_mailbox.py:116
+#: code:addons/email_template/email_template_mailbox.py:104
#, python-format
msgid ""
"Sending of Mail %s failed. Probable Reason:Could not login to server\n"
@@ -1158,7 +1158,9 @@ msgstr ""
#. module: email_template
#: view:email_template.mailbox:0
+#: model:ir.actions.act_window,name:email_template.action_email_template_mailbox
#: model:ir.ui.menu,name:email_template.menu_email_template_mails_tools
+#: model:ir.ui.menu,name:email_template.menu_email_template_personal_mails
msgid "Emails"
msgstr "E-postalar"
@@ -1213,6 +1215,10 @@ msgid ""
"emails.\n"
" "
msgstr ""
+"\n"
+" Eposta Şablonu, temel olarak epostaların gönderimi için Power Epostanın "
+"özüdür.\n"
+" "
#. module: email_template
#: view:email_template.send.wizard:0
diff --git a/addons/event/event.py b/addons/event/event.py
index 4d392689bba..0fc28c7c193 100644
--- a/addons/event/event.py
+++ b/addons/event/event.py
@@ -207,9 +207,9 @@ class event_event(osv.osv):
'type': fields.many2one('event.type', 'Type', help="Type of Event like Seminar, Exhibition, Conference, Training.", readonly=False, states={'done': [('readonly', True)]}),
'register_max': fields.integer('Maximum Registrations', help="Provide Maximum Number of Registrations", readonly=True, states={'draft': [('readonly', False)]}),
'register_min': fields.integer('Minimum Registrations', help="Provide Minimum Number of Registrations", readonly=True, states={'draft': [('readonly', False)]}),
- 'register_current': fields.function(_get_register, method=True, string='Confirmed Registrations', multi='register_current',
+ 'register_current': fields.function(_get_register, string='Confirmed Registrations', multi='register_current',
help="Total of Open and Done Registrations"),
- 'register_prospect': fields.function(_get_register, method=True, string='Unconfirmed Registrations', multi='register_prospect',
+ 'register_prospect': fields.function(_get_register, string='Unconfirmed Registrations', multi='register_prospect',
help="Total of Prospect Registrations"),
'registration_ids': fields.one2many('event.registration', 'event_id', 'Registrations', readonly=False, states={'done': [('readonly', True)]}),
'date_begin': fields.datetime('Beginning date', required=True, help="Beginning Date of Event", readonly=True, states={'draft': [('readonly', False)]}),
@@ -301,7 +301,7 @@ class event_registration(osv.osv):
"partner_invoice_id": fields.many2one('res.partner', 'Partner Invoiced', readonly=True, states={'draft': [('readonly', False)]}),
"contact_id": fields.many2one('res.partner.contact', 'Partner Contact', readonly=False, states={'done': [('readonly', True)]}), #TODO: filter only the contacts that have a function into the selected partner_id
"unit_price": fields.float('Unit Price', required=True, digits_compute=dp.get_precision('Sale Price'), readonly=True, states={'draft': [('readonly', False)]}),
- 'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal', digits_compute=dp.get_precision('Sale Price'), store=True),
+ 'price_subtotal': fields.function(_amount_line, string='Subtotal', digits_compute=dp.get_precision('Sale Price'), store=True),
"badge_ids": fields.one2many('event.registration.badge', 'registration_id', 'Badges', readonly=False, states={'done': [('readonly', True)]}),
"event_product": fields.char("Invoice Name", size=128, readonly=True, states={'draft': [('readonly', False)]}),
"tobe_invoiced": fields.boolean("To be Invoiced", readonly=True, states={'draft': [('readonly', False)]}),
diff --git a/addons/event_project/i18n/fi.po b/addons/event_project/i18n/fi.po
new file mode 100644
index 00000000000..0e94e838766
--- /dev/null
+++ b/addons/event_project/i18n/fi.po
@@ -0,0 +1,122 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-29 07:23+0000\n"
+"Last-Translator: Jussi Mikkola \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-30 04:34+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: event_project
+#: model:ir.model,name:event_project.model_event_project
+msgid "Event Project"
+msgstr "Tapahtumaprojekti"
+
+#. module: event_project
+#: field:event.project,date:0
+msgid "Date End"
+msgstr "Loppupäiväys"
+
+#. module: event_project
+#: view:event.project:0
+msgid "Ok"
+msgstr "OK"
+
+#. module: event_project
+#: model:ir.module.module,description:event_project.module_meta_information
+msgid ""
+"Organization and management of events.\n"
+"\n"
+" This module allows you to create retro planning for managing your "
+"events.\n"
+msgstr ""
+
+#. module: event_project
+#: help:event.project,project_id:0
+msgid ""
+"This is Template Project. Project of event is a duplicate of this Template. "
+"After click on 'Create Retro-planning', New Project will be duplicated from "
+"this template project."
+msgstr ""
+
+#. module: event_project
+#: view:event.project:0
+#: model:ir.actions.act_window,name:event_project.action_event_project
+msgid "Retro-Planning"
+msgstr "Retro suunnittelu"
+
+#. module: event_project
+#: constraint:event.event:0
+msgid "Error ! Closing Date cannot be set before Beginning Date."
+msgstr "Virhe ! Päättymispäivä ei voi olla aikaisempi kuin alkupäivä"
+
+#. module: event_project
+#: field:event.event,project_id:0
+msgid "Project"
+msgstr "Projekti"
+
+#. module: event_project
+#: view:event.event:0
+#: model:ir.actions.act_window,name:event_project.act_event_task
+msgid "Tasks"
+msgstr "Tehtävät"
+
+#. module: event_project
+#: view:event.event:0
+msgid "All tasks"
+msgstr "Kaikki tehtävät"
+
+#. module: event_project
+#: model:ir.module.module,shortdesc:event_project.module_meta_information
+msgid "Event Project - Create Retro-Planning to manage your Events"
+msgstr "Tapahtumaprojekti - luo retro suunitelma tapahtumien hallintaan"
+
+#. module: event_project
+#: field:event.project,project_id:0
+msgid "Template of Project"
+msgstr "Projektin mallipohja"
+
+#. module: event_project
+#: constraint:event.event:0
+msgid "Error ! You cannot create recursive event."
+msgstr "Virhe ! et voi luoda rekursiivisia tapahtumia."
+
+#. module: event_project
+#: field:event.event,task_ids:0
+msgid "Project tasks"
+msgstr "Projektin tehtävät"
+
+#. module: event_project
+#: view:event.project:0
+msgid "Close"
+msgstr "Sulje"
+
+#. module: event_project
+#: field:event.project,date_start:0
+msgid "Date Start"
+msgstr "Aloituspäivämäärä"
+
+#. module: event_project
+#: view:event.event:0
+msgid "Create Retro-Planning"
+msgstr "Luo retrosuunnitelma"
+
+#. module: event_project
+#: model:ir.model,name:event_project.model_event_event
+msgid "Event"
+msgstr "Tapahtuma"
+
+#. module: event_project
+#: view:event.event:0
+msgid "Tasks management"
+msgstr "Tehtävienhallinta"
diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py
index 41f84cfdedd..386b48f1546 100644
--- a/addons/fetchmail/fetchmail.py
+++ b/addons/fetchmail/fetchmail.py
@@ -116,7 +116,7 @@ class email_server(osv.osv):
if context is None:
context = {}
for server in self.browse(cr, uid, ids, context=context):
- logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail start checking for new emails on %s' % (server.name))
+ logger.notifyChannel(server.type, netsvc.LOG_INFO, 'fetchmail start checking for new emails on %s' % (server.name))
context.update({'server_id': server.id, 'server_type': server.type})
try:
if server.type == 'imap':
@@ -199,7 +199,7 @@ class email_server(osv.osv):
pop_server.quit()
- logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail fetch %s email(s) from %s' % (numMsgs, server.name))
+ logger.notifyChannel(server.type, netsvc.LOG_INFO, 'fetchmail fetch %s email(s) from %s' % (numMsgs, server.name))
except Exception, e:
logger.notifyChannel(server.type, netsvc.LOG_WARNING, '%s' % (tools.ustr(e)))
diff --git a/addons/google_base_account/__init__.py b/addons/google_base_account/__init__.py
new file mode 100644
index 00000000000..e1a476431af
--- /dev/null
+++ b/addons/google_base_account/__init__.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import google_base_account
+import wizard
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/google_base_account/__openerp__.py b/addons/google_base_account/__openerp__.py
new file mode 100644
index 00000000000..409ca205c74
--- /dev/null
+++ b/addons/google_base_account/__openerp__.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+
+{
+ 'name': 'Google user',
+ 'version': '1.0',
+ 'category': 'Generic Modules/Others',
+ 'description': """The module adds google user in res user""",
+ 'author': 'OpenERP SA',
+ 'website': 'http://www.openerp.com',
+ 'depends': ['base'],
+ 'init_xml': [],
+ 'update_xml': [
+ 'google_base_account_view.xml',
+ 'wizard/google_login_view.xml',
+ ],
+ 'demo_xml': [],
+ 'installable': True,
+ 'active': False,
+ 'certificate': '',
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/google_base_account/google_base_account.py b/addons/google_base_account/google_base_account.py
new file mode 100644
index 00000000000..c860ec84374
--- /dev/null
+++ b/addons/google_base_account/google_base_account.py
@@ -0,0 +1,33 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields,osv
+
+class res_users(osv.osv):
+ _inherit = "res.users"
+ _columns = {
+ 'gmail_user': fields.char('Username', size=64,),
+ 'gmail_password': fields.char('Password', size=64),
+ }
+res_users()
+
+# vim:expandtab:smartindent:toabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/google_base_account/google_base_account_view.xml b/addons/google_base_account/google_base_account_view.xml
new file mode 100644
index 00000000000..9296ba135c0
--- /dev/null
+++ b/addons/google_base_account/google_base_account_view.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ res.users.google.form1
+ res.users
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/google_base_account/wizard/__init__.py b/addons/google_base_account/wizard/__init__.py
new file mode 100644
index 00000000000..a6b9c644a1e
--- /dev/null
+++ b/addons/google_base_account/wizard/__init__.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import google_login
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/google_base_account/wizard/google_login.py b/addons/google_base_account/wizard/google_login.py
new file mode 100644
index 00000000000..78f27e51da4
--- /dev/null
+++ b/addons/google_base_account/wizard/google_login.py
@@ -0,0 +1,84 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields,osv
+from tools.translate import _
+try:
+ import gdata.contacts.service
+ import gdata.contacts.client
+ import gdata.calendar.service
+except ImportError:
+ raise osv.except_osv(_('Google Contacts Import Error!'), _('Please install gdata-python-client from http://code.google.com/p/gdata-python-client/downloads/list'))
+
+class google_login(osv.osv_memory):
+ _description ='Google Contact'
+ _name = 'google.login'
+ _columns = {
+ 'user': fields.char('Google Username', size=64, required=True),
+ 'password': fields.char('Google Password', size=64),
+ }
+
+ def google_login(self, user, password, type='', context=None):
+ if type == 'group':
+ gd_client = gdata.contacts.client.ContactsClient(source='OpenERP')
+ if type == 'contact' :
+ gd_client = gdata.contacts.service.ContactsService()
+ if type == 'calendar':
+ gd_client = gdata.calendar.service.CalendarService()
+ else:
+ gd_client = gdata.contacts.service.ContactsService()
+ try:
+ gd_client.ClientLogin(user, password,gd_client.source)
+ except Exception:
+ return False
+ return gd_client
+
+
+ def default_get(self, cr, uid, fields, context=None):
+ res = super(google_login, self).default_get(cr, uid, fields, context=context)
+ user_obj = self.pool.get('res.users').browse(cr, uid, uid)
+ if 'user' in fields:
+ res.update({'user': user_obj.gmail_user})
+ if 'password' in fields:
+ res.update({'password': user_obj.gmail_password})
+ return res
+
+ def login(self, cr, uid, ids, context=None):
+ data = self.read(cr, uid, ids)[0]
+ user = data['user']
+ password = data['password']
+ if self.google_login(user, password):
+ res = {
+ 'gmail_user': user,
+ 'gmail_password': password
+ }
+ self.pool.get('res.users').write(cr, uid, uid, res, context=context)
+ else:
+ raise osv.except_osv(_('Error'), _("Authentication fail check the user and password !"))
+
+ return self._get_next_action(cr, uid, context=context)
+
+ def _get_next_action(self, cr, uid, context=None):
+ return {'type': 'ir.actions.act_window_close'}
+
+google_login()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/google_base_account/wizard/google_login_view.xml b/addons/google_base_account/wizard/google_login_view.xml
new file mode 100644
index 00000000000..9c5c93c613e
--- /dev/null
+++ b/addons/google_base_account/wizard/google_login_view.xml
@@ -0,0 +1,42 @@
+
+
+
+
+ google.login.form
+ google.login
+ form
+
+
+
+
+
+
+
+ Google Login
+ ir.actions.act_window
+ google.login
+ form
+ form
+ new
+
+
+
+
diff --git a/addons/google_map/i18n/ar.po b/addons/google_map/i18n/ar.po
index eedf2b8b77b..a9962ed7e5a 100644
--- a/addons/google_map/i18n/ar.po
+++ b/addons/google_map/i18n/ar.po
@@ -7,31 +7,31 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2009-09-08 16:23+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2011-06-18 11:13+0000\n"
+"Last-Translator: kifcaliph \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 04:45+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-06-19 04:36+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: google_map
#: view:res.partner:0
#: view:res.partner.address:0
msgid "Map"
-msgstr ""
+msgstr "خريطة جوجل"
#. module: google_map
#: view:res.partner:0
#: view:res.partner.address:0
msgid "Street2 : "
-msgstr ""
+msgstr "شارع 2: "
#. module: google_map
#: model:ir.actions.wizard,name:google_map.wizard_google_map
msgid "Launch Google Map"
-msgstr ""
+msgstr "فتح خريطة جوجل"
#. module: google_map
#: model:ir.module.module,description:google_map.module_meta_information
diff --git a/addons/hr/hr.py b/addons/hr/hr.py
index 8a49fd876ba..70f7784f55b 100644
--- a/addons/hr/hr.py
+++ b/addons/hr/hr.py
@@ -45,7 +45,7 @@ class hr_employee_category(osv.osv):
_description = "Employee Category"
_columns = {
'name': fields.char("Category", size=64, required=True),
- 'complete_name': fields.function(_name_get_fnc, method=True, type="char", string='Name'),
+ 'complete_name': fields.function(_name_get_fnc, type="char", string='Name'),
'parent_id': fields.many2one('hr.employee.category', 'Parent Category', select=True),
'child_ids': fields.one2many('hr.employee.category', 'parent_id', 'Child Categories')
}
@@ -92,8 +92,8 @@ class hr_job(osv.osv):
_description = "Job Description"
_columns = {
'name': fields.char('Job Name', size=128, required=True, select=True),
- 'expected_employees': fields.function(_no_of_employee, method=True, string='Expected Employees', help='Required number of Employees in total for that job.', multi="no_of_employee", store=True),
- 'no_of_employee': fields.function(_no_of_employee, method=True, string="No of Employee", help='Number of employee with that job.', multi="no_of_employee", store=True),
+ 'expected_employees': fields.function(_no_of_employee, string='Expected Employees', help='Required number of Employees in total for that job.', multi="no_of_employee", store=True),
+ 'no_of_employee': fields.function(_no_of_employee, string="No of Employee", help='Number of employee with that job.', multi="no_of_employee", store=True),
'no_of_recruitment': fields.float('Expected in Recruitment'),
'employee_ids': fields.one2many('hr.employee', 'job_id', 'Employees'),
'description': fields.text('Job Description'),
diff --git a/addons/hr/hr_department.py b/addons/hr/hr_department.py
index c885fdf30bd..3332207cb17 100644
--- a/addons/hr/hr_department.py
+++ b/addons/hr/hr_department.py
@@ -44,7 +44,7 @@ class hr_department(osv.osv):
_name = "hr.department"
_columns = {
'name': fields.char('Department Name', size=64, required=True),
- 'complete_name': fields.function(_dept_name_get_fnc, method=True, type="char", string='Name'),
+ 'complete_name': fields.function(_dept_name_get_fnc, type="char", string='Name'),
'company_id': fields.many2one('res.company', 'Company', select=True, required=False),
'parent_id': fields.many2one('hr.department', 'Parent Department', select=True),
'child_ids': fields.one2many('hr.department', 'parent_id', 'Child Departments'),
diff --git a/addons/hr/i18n/pt_BR.po b/addons/hr/i18n/pt_BR.po
index 001db4b97d7..0e3c61d5515 100644
--- a/addons/hr/i18n/pt_BR.po
+++ b/addons/hr/i18n/pt_BR.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-26 12:19+0000\n"
-"Last-Translator: Vinicius Dittgen - Proge.com.br \n"
+"PO-Revision-Date: 2011-06-22 23:24+0000\n"
+"Last-Translator: Gustavo T \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 05:31+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-06-24 04:59+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: hr
#: model:process.node,name:hr.process_node_openerpuser0
@@ -562,6 +562,13 @@ msgid ""
" * HR Jobs\n"
" "
msgstr ""
+"\n"
+" Módulo de gestão de recursos humanos. Você pode gerenciar:\n"
+" * Funcionários e hierarquias: você pode definir seu funcionário com um "
+"usuário e exibir hierarquias\n"
+" * Departamentos de RH\n"
+" * Cargos de RH\n"
+" "
#. module: hr
#: model:process.transition,note:hr.process_transition_contactofemployee0
@@ -569,6 +576,8 @@ msgid ""
"In the Employee form, there are different kind of information like Contact "
"information."
msgstr ""
+"No formulário de empregado, existem diferentes tipos de informação, como "
+"contato, por exemplo."
#. module: hr
#: help:hr.job,expected_employees:0
diff --git a/addons/hr/i18n/tr.po b/addons/hr/i18n/tr.po
index 5e0866fdf56..bc8f7f0427d 100644
--- a/addons/hr/i18n/tr.po
+++ b/addons/hr/i18n/tr.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2010-10-30 12:04+0000\n"
-"Last-Translator: OpenERP Administrators \n"
+"PO-Revision-Date: 2011-06-23 19:33+0000\n"
+"Last-Translator: Ayhan KIZILTAN \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 05:31+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-06-24 04:59+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: hr
#: model:process.node,name:hr.process_node_openerpuser0
@@ -25,17 +25,17 @@ msgstr "Openerp kullanıcısı"
#: view:hr.job:0
#: field:hr.job,requirements:0
msgid "Requirements"
-msgstr ""
+msgstr "Gereksinimler"
#. module: hr
#: constraint:hr.department:0
msgid "Error! You can not create recursive departments."
-msgstr ""
+msgstr "Hata! Yinelenen bölümler oluşturamazsınız."
#. module: hr
#: model:process.transition,name:hr.process_transition_contactofemployee0
msgid "Link the employee to information"
-msgstr ""
+msgstr "Personeli danışmaya bağla"
#. module: hr
#: field:hr.employee,sinid:0
@@ -55,7 +55,7 @@ msgstr "İnsan Kaynakları"
#: view:hr.employee:0
#: view:hr.job:0
msgid "Group By..."
-msgstr ""
+msgstr "Gruplandır..."
#. module: hr
#: model:ir.actions.act_window,help:hr.action_hr_job
@@ -66,6 +66,11 @@ msgid ""
"will be used in the recruitment process to evaluate the applicants for this "
"job position."
msgstr ""
+"İş Durumları, işlerin ve gereksinimlerinin tanımlanması için kullanılır. Her "
+"iş durumunda kullanılan personel sayısını ve gelecekte kaç personel "
+"beklediğinizin kayıtlarını tutabilirsiniz. Bu iş durumu için başvuranların "
+"değerlendirilmesi için seçme işleminde kullanmak üzere bir anket de "
+"ekleyebilirsiniz."
#. module: hr
#: view:hr.employee:0
@@ -79,27 +84,27 @@ msgstr "Bölüm"
#. module: hr
#: help:hr.installer,hr_attendance:0
msgid "Simplifies the management of employee's attendances."
-msgstr ""
+msgstr "Personelin devam durumunu yönetmeyi basitleştirir."
#. module: hr
#: view:hr.job:0
msgid "Mark as Old"
-msgstr ""
+msgstr "Eski olarak İşaretle"
#. module: hr
#: view:hr.job:0
msgid "Jobs"
-msgstr ""
+msgstr "İşler"
#. module: hr
#: view:hr.job:0
msgid "In Recruitment"
-msgstr ""
+msgstr "Seçme İşleminde"
#. module: hr
#: view:hr.installer:0
msgid "title"
-msgstr ""
+msgstr "unvan"
#. module: hr
#: field:hr.department,company_id:0
@@ -112,22 +117,22 @@ msgstr "Firma"
#. module: hr
#: field:hr.job,no_of_recruitment:0
msgid "Expected in Recruitment"
-msgstr ""
+msgstr "Seçim için Bekleniyor"
#. module: hr
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_config
msgid "Holidays"
-msgstr ""
+msgstr "Tatiller"
#. module: hr
#: help:hr.installer,hr_holidays:0
msgid "Tracks employee leaves, allocation requests and planning."
-msgstr ""
+msgstr "Personel izinlerini, tahsis istekleri ve planlamalrı izler"
#. module: hr
#: model:ir.model,name:hr.model_hr_employee_marital_status
msgid "Employee Marital Status"
-msgstr ""
+msgstr "Personel Medeni Durumu"
#. module: hr
#: help:hr.employee,partner_id:0
@@ -135,42 +140,44 @@ msgid ""
"Partner that is related to the current employee. Accounting transaction will "
"be written on this partner belongs to employee."
msgstr ""
+"Geçerli personelle ilgili Paydaştır. Muhasebe işlemi personelle ilişkili bu "
+"paydaşa yazılacaktır."
#. module: hr
#: model:process.transition,name:hr.process_transition_employeeuser0
msgid "Link a user to an employee"
-msgstr ""
+msgstr "Kullanıcıyı bir personele bağla"
#. module: hr
#: field:hr.installer,hr_contract:0
msgid "Employee's Contracts"
-msgstr ""
+msgstr "Personel Sözleşmeleri"
#. module: hr
#: help:hr.installer,hr_payroll:0
msgid "Generic Payroll system."
-msgstr ""
+msgstr "Genel Bordro Sistemi"
#. module: hr
#: view:hr.employee:0
msgid "My Departments Employee"
-msgstr ""
+msgstr "Bölümümdeki Personel"
#. module: hr
#: model:hr.employee.marital.status,name:hr.hr_employee_marital_status_married
msgid "Married"
-msgstr ""
+msgstr "Evli"
#. module: hr
#: constraint:hr.employee:0
msgid ""
"Error ! You cannot select a department for which the employee is the manager."
-msgstr ""
+msgstr "Hata ! Personelin müdür olduğu bir bölümü seçemezsiniz."
#. module: hr
#: help:hr.employee,passport_id:0
msgid "Employee Passport Information"
-msgstr ""
+msgstr "Personel Pasaport Bilgisi"
#. module: hr
#: model:ir.actions.act_window,help:hr.open_module_tree_department
@@ -179,16 +186,19 @@ msgid ""
"to employees by departments: expenses and timesheet validation, leaves "
"management, recruitments, etc."
msgstr ""
+"Firmanızın Bölüm Yapısı, bölümlere göre personelle ilgili belgelerin "
+"yönetilmesinde kullanılır: giderler, zaman çizelgesi onayları, izin "
+"yönetimi, seçme işlemlemleri, v.b"
#. module: hr
#: view:hr.employee:0
msgid "Position"
-msgstr ""
+msgstr "Durum"
#. module: hr
#: model:ir.actions.act_window,name:hr.action2
msgid "Employee Hierarchy"
-msgstr "Personel Hiyerarşisi"
+msgstr "Personel Sıradüzeni"
#. module: hr
#: model:process.transition,note:hr.process_transition_employeeuser0
@@ -196,43 +206,47 @@ msgid ""
"The Related user field on the Employee form allows to link the OpenERP user "
"(and her rights) to the employee."
msgstr ""
+"Personel formundaki İlişkili Kullanıcı alanı OpenERP kullanıcısının "
+"personele bağlanmasını sağlar."
#. module: hr
#: view:hr.job:0
#: selection:hr.job,state:0
msgid "In Recruitement"
-msgstr ""
+msgstr "Seçim durumunda"
#. module: hr
#: field:hr.employee,identification_id:0
msgid "Identification No"
-msgstr ""
+msgstr "Kimlik No"
#. module: hr
#: field:hr.job,no_of_employee:0
msgid "No of Employee"
-msgstr ""
+msgstr "Personel No"
#. module: hr
#: selection:hr.employee,gender:0
msgid "Female"
-msgstr "Bayan"
+msgstr "Kadın"
#. module: hr
#: help:hr.installer,hr_timesheet_sheet:0
msgid ""
"Tracks and helps employees encode and validate timesheets and attendances."
msgstr ""
+"Personelin zaman çizelgeleri ve devamlılıkları onaylamasını ve "
+"şifrelendirmesini sağlar."
#. module: hr
#: field:hr.installer,hr_evaluation:0
msgid "Periodic Evaluations"
-msgstr ""
+msgstr "Süreli Değerlendirmeler"
#. module: hr
#: field:hr.installer,hr_timesheet_sheet:0
msgid "Timesheets"
-msgstr ""
+msgstr "Zaman Çizelgeleri"
#. module: hr
#: model:ir.actions.act_window,name:hr.open_view_employee_tree
@@ -247,12 +261,12 @@ msgstr "SGK Bilgisi"
#. module: hr
#: help:hr.job,no_of_employee:0
msgid "Number of employee with that job."
-msgstr ""
+msgstr "O işteki personel sayısı"
#. module: hr
#: field:hr.employee,work_phone:0
msgid "Work Phone"
-msgstr "İş Telefon No."
+msgstr "İş Telefonu"
#. module: hr
#: field:hr.employee.category,child_ids:0
@@ -264,12 +278,12 @@ msgstr "Alt Kategoriler"
#: field:hr.job,description:0
#: model:ir.model,name:hr.model_hr_job
msgid "Job Description"
-msgstr ""
+msgstr "İş Tanımı"
#. module: hr
#: field:hr.employee,work_location:0
msgid "Office Location"
-msgstr "Ofis Lokasyonu"
+msgstr "Ofis Konumu"
#. module: hr
#: view:hr.employee:0
@@ -282,12 +296,12 @@ msgstr "Personel"
#. module: hr
#: model:process.node,note:hr.process_node_employeecontact0
msgid "Other information"
-msgstr ""
+msgstr "Diğer Bilgiler"
#. module: hr
#: field:hr.employee,work_email:0
msgid "Work E-mail"
-msgstr ""
+msgstr "İş E-postası"
#. module: hr
#: field:hr.department,complete_name:0
@@ -298,7 +312,7 @@ msgstr "Adı"
#. module: hr
#: field:hr.employee,birthday:0
msgid "Date of Birth"
-msgstr ""
+msgstr "Doğum Tarihi"
#. module: hr
#: model:ir.ui.menu,name:hr.menu_hr_reporting
@@ -308,19 +322,19 @@ msgstr "Raporlama"
#. module: hr
#: model:ir.model,name:hr.model_ir_actions_act_window
msgid "ir.actions.act_window"
-msgstr ""
+msgstr "ir.actions.act_window"
#. module: hr
#: model:ir.actions.act_window,name:hr.open_board_hr
msgid "Human Resources Dashboard"
-msgstr ""
+msgstr "İnsan Kaynakları Kontrol Paneli"
#. module: hr
#: view:hr.employee:0
#: field:hr.employee,job_id:0
#: view:hr.job:0
msgid "Job"
-msgstr ""
+msgstr "İş"
#. module: hr
#: view:hr.department:0
@@ -331,7 +345,7 @@ msgstr "Üyeler"
#. module: hr
#: model:ir.ui.menu,name:hr.menu_hr_configuration
msgid "Configuration"
-msgstr "Ayarlar"
+msgstr "Yapılandırma"
#. module: hr
#: view:hr.installer:0
@@ -339,21 +353,23 @@ msgid ""
"You can enhance the base HR Application by installing few HR-related "
"functionalities."
msgstr ""
+"Bir kaç İK-ilişkili işlevsellik kurarak temel İK Uygulamasını "
+"geliştirebilirsiniz."
#. module: hr
#: view:hr.employee:0
msgid "Categories"
-msgstr ""
+msgstr "Kategoriler"
#. module: hr
#: field:hr.job,expected_employees:0
msgid "Expected Employees"
-msgstr ""
+msgstr "Beklenen Personel"
#. module: hr
#: help:hr.employee,sinid:0
msgid "Social Insurance Number"
-msgstr ""
+msgstr "Sosyal Sigorta Numarası"
#. module: hr
#: model:hr.employee.marital.status,name:hr.hr_employee_marital_status_divorced
@@ -368,7 +384,7 @@ msgstr "Ana Kategori"
#. module: hr
#: constraint:hr.employee.category:0
msgid "Error ! You cannot create recursive Categories."
-msgstr ""
+msgstr "Hata ! Yinelenen Kategoriler oluşturamazsınız."
#. module: hr
#: view:hr.department:0
@@ -377,7 +393,7 @@ msgstr ""
#: view:res.users:0
#: field:res.users,context_department_id:0
msgid "Departments"
-msgstr "Departmanlar"
+msgstr "Bölümler"
#. module: hr
#: model:process.node,name:hr.process_node_employeecontact0
@@ -387,23 +403,23 @@ msgstr "Personel İletişimi"
#. module: hr
#: view:board.board:0
msgid "My Board"
-msgstr ""
+msgstr "Kontrol Panelim"
#. module: hr
#: selection:hr.employee,gender:0
msgid "Male"
-msgstr "Bay"
+msgstr "Erkek"
#. module: hr
#: field:hr.installer,progress:0
msgid "Configuration Progress"
-msgstr ""
+msgstr "Yapılandırma İşlemi"
#. module: hr
#: model:ir.actions.act_window,name:hr.open_view_categ_form
#: model:ir.ui.menu,name:hr.menu_view_employee_category_form
msgid "Categories of Employee"
-msgstr "Personel Kategorisi"
+msgstr "Personel Kategorileri"
#. module: hr
#: view:hr.employee.category:0
@@ -414,12 +430,12 @@ msgstr "Personel Kategorisi"
#. module: hr
#: field:hr.installer,config_logo:0
msgid "Image"
-msgstr ""
+msgstr "Resim"
#. module: hr
#: model:process.process,name:hr.process_process_employeecontractprocess0
msgid "Employee Contract"
-msgstr ""
+msgstr "Personel Sözleşmesi"
#. module: hr
#: help:hr.installer,hr_evaluation:0
@@ -427,21 +443,23 @@ msgid ""
"Lets you create and manage the periodic evaluation and performance review of "
"employees."
msgstr ""
+"Çalışanlarınızın süreli değerlendirme ve verimlilik incelemelerini "
+"oluşturmanızı ve yönetmenizi sağlar."
#. module: hr
#: model:ir.model,name:hr.model_hr_department
msgid "hr.department"
-msgstr ""
+msgstr "ik.bölümü"
#. module: hr
#: help:hr.employee,parent_id:0
msgid "It is linked with manager of Department"
-msgstr ""
+msgstr "Bölümün Müdürüne bağlanmıştır"
#. module: hr
#: field:hr.installer,hr_recruitment:0
msgid "Recruitment Process"
-msgstr ""
+msgstr "Seçme İşlemi"
#. module: hr
#: field:hr.employee,category_ids:0
@@ -463,11 +481,22 @@ msgid ""
"they will be able to enter time through the system. In the note tab, you can "
"enter text data that should be recorded for a specific employee."
msgstr ""
+"Burada, çalışanlar oluşturarak ve onları sistemde belirli niteliklere "
+"atayarak iş gücünüzü yönetebilirsiniz. Çalışanlarınızla ilgili bilgileri "
+"elde edin ve onlarla ilgili kayıt edilmesi gereken her şeyin kaydını tutun. "
+"Personel bilgisi sekmesi, personelin kimlik bilgilerini elde etmenizi "
+"sağlar. Kategori sekmesi, şirket içindeki durumlarına ve etkinliklerine "
+"bağlı olarak personelinizi ilgili çaşıan kategorisine atamanıza fırsat "
+"sağlar. Bir kategori şirket içinde veya bir bölümde bir kıdemlilik "
+"kategorisi olabilir. Zaman Çizelgesi sekmesi onların sistemden zaman "
+"girişlerini yapabilecekleri, belirli bir zaman çizelgesine ve analitik "
+"yevmiyeye atamanızı sağlar. Not sekmesinde, belirli bir çalışan için kayıt "
+"etmeniz gereken bir metin girmenizi sağlar."
#. module: hr
#: help:hr.employee,bank_account_id:0
msgid "Employee bank salary account"
-msgstr ""
+msgstr "Personel maaş banka hesabı"
#. module: hr
#: field:hr.department,note:0
@@ -477,7 +506,7 @@ msgstr "Not"
#. module: hr
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
-msgstr ""
+msgstr "Seçilen firma bu kullanıcı için izin verilen şirketler arasında yok"
#. module: hr
#: view:hr.employee:0
@@ -492,7 +521,7 @@ msgstr "İş Adresi"
#. module: hr
#: model:ir.actions.act_window,name:hr.open_board_hr_manager
msgid "HR Manager Dashboard"
-msgstr ""
+msgstr "İK Yönetici Kontrol Paneli"
#. module: hr
#: view:hr.employee:0
@@ -502,7 +531,7 @@ msgstr "Durum"
#. module: hr
#: view:hr.installer:0
msgid "Configure"
-msgstr ""
+msgstr "Yapılandırma"
#. module: hr
#: model:ir.actions.act_window,name:hr.open_view_categ_tree
@@ -513,12 +542,12 @@ msgstr "Kategori Yapısı"
#. module: hr
#: field:hr.employee,partner_id:0
msgid "unknown"
-msgstr ""
+msgstr "bilinmeyen"
#. module: hr
#: field:hr.installer,hr_holidays:0
msgid "Holidays / Leaves Management"
-msgstr ""
+msgstr "Tatil / İzin Yöneticisi"
#. module: hr
#: field:hr.employee,ssnid:0
@@ -528,12 +557,12 @@ msgstr "SGK No"
#. module: hr
#: view:hr.employee:0
msgid "Active"
-msgstr "Aktif"
+msgstr "Etkin"
#. module: hr
#: constraint:hr.employee:0
msgid "Error ! You cannot create recursive Hierarchy of Employees."
-msgstr "Hata ! You cannot create recursive Hierarchy of Employees."
+msgstr "Hata ! Yinelemeli Personel Sıradizini yaratamazsınız."
#. module: hr
#: view:hr.department:0
@@ -551,39 +580,46 @@ msgid ""
" * HR Jobs\n"
" "
msgstr ""
+"\n"
+" İnsan kaynakları yönetimi modülü. Şunları yönetebilirsiniz:\n"
+" * Çalışanlar ve sıradüzeni : Çalışanlarınızı Kullanıcı ve sıradüzenleri "
+"ile birlikte tanımlayabilirsiniz\n"
+" * İK Bölümleri\n"
+" * İK İşleri\n"
+" "
#. module: hr
#: model:process.transition,note:hr.process_transition_contactofemployee0
msgid ""
"In the Employee form, there are different kind of information like Contact "
"information."
-msgstr ""
+msgstr "Personel formunda sözleşme bilgileri gibi farklı bilgiler vardır."
#. module: hr
#: help:hr.job,expected_employees:0
msgid "Required number of Employees in total for that job."
-msgstr ""
+msgstr "O iş için gerekli toplam Personel sayısı"
#. module: hr
#: selection:hr.job,state:0
msgid "Old"
-msgstr ""
+msgstr "Eski"
#. module: hr
#: field:hr.employee.marital.status,description:0
msgid "Status Description"
-msgstr ""
+msgstr "Durum Açıklaması"
#. module: hr
#: sql_constraint:res.users:0
msgid "You can not have two users with the same login !"
-msgstr ""
+msgstr "Aynı kullanıcı adı ile iki kullanıcı oluşturamazsınız !"
#. module: hr
#: view:hr.job:0
#: field:hr.job,state:0
msgid "State"
-msgstr ""
+msgstr "Durum"
#. module: hr
#: field:hr.employee,marital:0
@@ -597,42 +633,42 @@ msgstr "Medeni Durumu"
#. module: hr
#: help:hr.installer,hr_recruitment:0
msgid "Helps you manage and streamline your recruitment process."
-msgstr ""
+msgstr "Eleman seçme işleminizi yönetmenizi ve yürütmenizi sağlar."
#. module: hr
#: model:process.node,note:hr.process_node_employee0
msgid "Employee form and structure"
-msgstr ""
+msgstr "Personel formu ve yapısı"
#. module: hr
#: field:hr.employee,photo:0
msgid "Photo"
-msgstr ""
+msgstr "Fotoğraf"
#. module: hr
#: model:ir.model,name:hr.model_res_users
msgid "res.users"
-msgstr ""
+msgstr "res.users"
#. module: hr
#: field:hr.installer,hr_payroll_account:0
msgid "Payroll Accounting"
-msgstr ""
+msgstr "Bordro Muhasebesi"
#. module: hr
#: view:hr.employee:0
msgid "Personal Information"
-msgstr "Personel Bilgileri"
+msgstr "Kişisel Bilgiler"
#. module: hr
#: field:hr.employee,passport_id:0
msgid "Passport No"
-msgstr ""
+msgstr "Pasaport No"
#. module: hr
#: view:res.users:0
msgid "Current Activity"
-msgstr ""
+msgstr "Güncel Etkinlik"
#. module: hr
#: help:hr.installer,hr_expense:0
@@ -640,21 +676,23 @@ msgid ""
"Tracks and manages employee expenses, and can automatically re-invoice "
"clients if the expenses are project-related."
msgstr ""
+"Personel harcamalarını izler ve yönetir, ve eğer harcamalar projeyle ilgili "
+"ise müşteriler otomatik olarak yeniden faturalandırılabilir."
#. module: hr
#: view:hr.job:0
msgid "Current"
-msgstr ""
+msgstr "Geçerli"
#. module: hr
#: field:hr.department,parent_id:0
msgid "Parent Department"
-msgstr ""
+msgstr "Ana Bölüm"
#. module: hr
#: view:hr.employee.category:0
msgid "Employees Categories"
-msgstr "Personel Kategorisi"
+msgstr "Personel Kategorileri"
#. module: hr
#: field:hr.employee,address_home_id:0
@@ -665,54 +703,54 @@ msgstr "Ev Adresi"
#: field:hr.installer,hr_attendance:0
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
msgid "Attendances"
-msgstr ""
+msgstr "Devamlılık"
#. module: hr
#: view:hr.employee.marital.status:0
#: view:hr.job:0
msgid "Description"
-msgstr ""
+msgstr "Açıklama"
#. module: hr
#: help:hr.installer,hr_contract:0
msgid "Extends employee profiles to help manage their contracts."
-msgstr ""
+msgstr "Sözleşmelerinin yönetimi için personel profillerini açar."
#. module: hr
#: field:hr.installer,hr_payroll:0
msgid "Payroll"
-msgstr ""
+msgstr "Bordro"
#. module: hr
#: model:hr.employee.marital.status,name:hr.hr_employee_marital_status_single
msgid "Single"
-msgstr ""
+msgstr "Bekar"
#. module: hr
#: field:hr.job,name:0
msgid "Job Name"
-msgstr ""
+msgstr "İş Adı"
#. module: hr
#: view:hr.job:0
#: selection:hr.job,state:0
msgid "In Position"
-msgstr ""
+msgstr "Durumunda"
#. module: hr
#: field:hr.employee,mobile_phone:0
msgid "Mobile"
-msgstr ""
+msgstr "Cep"
#. module: hr
#: view:hr.department:0
msgid "department"
-msgstr ""
+msgstr "bölüm"
#. module: hr
#: field:hr.employee,country_id:0
msgid "Nationality"
-msgstr "Uyruk"
+msgstr "Uyruğu"
#. module: hr
#: view:hr.department:0
@@ -724,23 +762,23 @@ msgstr "Notlar"
#. module: hr
#: model:ir.model,name:hr.model_hr_installer
msgid "hr.installer"
-msgstr ""
+msgstr "ik.kurucu"
#. module: hr
#: view:board.board:0
msgid "HR Manager Board"
-msgstr ""
+msgstr "İK Yönetim Paneli"
#. module: hr
#: field:hr.employee,resource_id:0
msgid "Resource"
-msgstr ""
+msgstr "Kaynak"
#. module: hr
#: view:hr.installer:0
#: model:ir.actions.act_window,name:hr.action_hr_installer
msgid "Human Resources Application Configuration"
-msgstr ""
+msgstr "İnsan Kaynakları Uygulama Yapılandırması"
#. module: hr
#: field:hr.employee,gender:0
@@ -761,49 +799,49 @@ msgstr "Personeller"
#. module: hr
#: field:hr.employee,bank_account_id:0
msgid "Bank Account"
-msgstr ""
+msgstr "Banka Hesabı"
#. module: hr
#: field:hr.department,name:0
msgid "Department Name"
-msgstr ""
+msgstr "Bölüm Adı"
#. module: hr
#: help:hr.employee,ssnid:0
msgid "Social Security Number"
-msgstr ""
+msgstr "Sosyal Güvenlik Numarası"
#. module: hr
#: model:process.node,note:hr.process_node_openerpuser0
msgid "Creation of a OpenERP user"
-msgstr ""
+msgstr "OpenERP kullanıcısı Oluşturma"
#. module: hr
#: field:hr.department,child_ids:0
msgid "Child Departments"
-msgstr "Alt Departmanlar"
+msgstr "Alt Bölümler"
#. module: hr
#: model:ir.actions.act_window,name:hr.action_hr_job
#: model:ir.ui.menu,name:hr.menu_hr_job
msgid "Job Positions"
-msgstr ""
+msgstr "İş Durumları"
#. module: hr
#: view:hr.employee:0
#: field:hr.employee,coach_id:0
msgid "Coach"
-msgstr ""
+msgstr "Çalıştırıcı"
#. module: hr
#: view:hr.installer:0
msgid "Configure Your Human Resources Application"
-msgstr ""
+msgstr "İnsan Kaynakları Uygulamanızı yapılandırın"
#. module: hr
#: field:hr.installer,hr_expense:0
msgid "Expenses"
-msgstr ""
+msgstr "Giderler"
#. module: hr
#: field:hr.department,manager_id:0
@@ -815,17 +853,17 @@ msgstr "Yönetici"
#. module: hr
#: model:hr.employee.marital.status,name:hr.hr_employee_marital_status_widower
msgid "Widower"
-msgstr ""
+msgstr "Dul"
#. module: hr
#: help:hr.installer,hr_payroll_account:0
msgid "Generic Payroll system Integrated with Accountings."
-msgstr ""
+msgstr "Muhasebe ile bütünleşik Genel Bordro sistemi."
#. module: hr
#: field:hr.employee,child_ids:0
msgid "Subordinates"
-msgstr ""
+msgstr "Emrindekiler"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Görüntüleme mimarisi için Geçersiz XML"
diff --git a/addons/hr_attendance/hr_attendance.py b/addons/hr_attendance/hr_attendance.py
index 8c5648a1040..a138d66a285 100644
--- a/addons/hr_attendance/hr_attendance.py
+++ b/addons/hr_attendance/hr_attendance.py
@@ -56,7 +56,7 @@ class hr_attendance(osv.osv):
'action': fields.selection([('sign_in', 'Sign In'), ('sign_out', 'Sign Out'), ('action','Action')], 'Action', required=True),
'action_desc': fields.many2one("hr.action.reason", "Action Reason", domain="[('action_type', '=', action)]", help='Specifies the reason for Signing In/Signing Out in case of extra hours.'),
'employee_id': fields.many2one('hr.employee', "Employee's Name", required=True, select=True),
- 'day': fields.function(_day_compute, method=True, type='char', string='Day', store=True, select=1, size=32),
+ 'day': fields.function(_day_compute, type='char', string='Day', store=True, select=1, size=32),
}
_defaults = {
'name': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), #please don't remove the lambda, if you remove it then the current time will not change
@@ -110,7 +110,7 @@ class hr_employee(osv.osv):
return result
_columns = {
- 'state': fields.function(_state, method=True, type='selection', selection=[('absent', 'Absent'), ('present', 'Present')], string='Attendance'),
+ 'state': fields.function(_state, type='selection', selection=[('absent', 'Absent'), ('present', 'Present')], string='Attendance'),
}
def _action_check(self, cr, uid, emp_id, dt=False, context=None):
diff --git a/addons/hr_contract/hr_contract.py b/addons/hr_contract/hr_contract.py
index 7ed2d16d6b7..21d15a4194b 100644
--- a/addons/hr_contract/hr_contract.py
+++ b/addons/hr_contract/hr_contract.py
@@ -46,7 +46,7 @@ class hr_employee(osv.osv):
'vehicle': fields.char('Company Vehicle', size=64),
'vehicle_distance': fields.integer('Home-Work Distance', help="In kilometers"),
'contract_ids': fields.one2many('hr.contract', 'employee_id', 'Contracts'),
- 'contract_id':fields.function(_get_latest_contract, method=True, string='Contract', type='many2one', relation="hr.contract", help='Latest contract of the employee'),
+ 'contract_id':fields.function(_get_latest_contract, string='Contract', type='many2one', relation="hr.contract", help='Latest contract of the employee'),
}
hr_employee()
diff --git a/addons/hr_contract/i18n/ar.po b/addons/hr_contract/i18n/ar.po
index eeac51a03e0..452f4f7acd3 100644
--- a/addons/hr_contract/i18n/ar.po
+++ b/addons/hr_contract/i18n/ar.po
@@ -7,24 +7,24 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2010-08-03 05:39+0000\n"
-"Last-Translator: Mantavya Gajjar (Open ERP) \n"
+"PO-Revision-Date: 2011-06-18 11:23+0000\n"
+"Last-Translator: kifcaliph \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 05:26+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-06-19 04:37+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: hr_contract
#: view:hr.contract.wage.type:0
msgid "Hourly cost computation"
-msgstr ""
+msgstr "حساب تكلفة الساعة"
#. module: hr_contract
#: selection:hr.contract.wage.type,type:0
msgid "Gross"
-msgstr ""
+msgstr "الإجمالي"
#. module: hr_contract
#: view:hr.contract:0
diff --git a/addons/hr_contract/i18n/ru.po b/addons/hr_contract/i18n/ru.po
index 4d125f3631f..81421433537 100644
--- a/addons/hr_contract/i18n/ru.po
+++ b/addons/hr_contract/i18n/ru.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-14 08:42+0000\n"
-"Last-Translator: Alexey Y. Fedotov \n"
+"PO-Revision-Date: 2011-06-27 05:15+0000\n"
+"Last-Translator: Stanislav Hanzhin \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 05:27+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-06-28 04:40+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: hr_contract
#: view:hr.contract.wage.type:0
@@ -74,7 +74,7 @@ msgstr "Множитель стоимости часа"
#. module: hr_contract
#: view:hr.contract:0
msgid "Overpassed"
-msgstr ""
+msgstr "Переведён"
#. module: hr_contract
#: view:hr.contract.wage.type:0
@@ -145,7 +145,7 @@ msgstr "Поиск договора"
#. module: hr_contract
#: help:hr.employee,contract_id:0
msgid "Latest contract of the employee"
-msgstr ""
+msgstr "Последний договор с сотрудником"
#. module: hr_contract
#: field:hr.contract,advantages_net:0
@@ -163,6 +163,13 @@ msgid ""
" You can assign several contracts per employee.\n"
" "
msgstr ""
+"\n"
+" Добавляйте информацию в форму сотрудника для управления договорами:\n"
+" * Семейное положение,\n"
+" * Номер свидетельства социального страхования,\n"
+" * Место рождения, дата рождения, ...\n"
+" Можно назначить несколько договоров одному сотруднику.\n"
+" "
#. module: hr_contract
#: view:hr.contract:0
@@ -218,7 +225,7 @@ msgstr "Зарплата"
#. module: hr_contract
#: field:hr.contract,name:0
msgid "Contract Reference"
-msgstr ""
+msgstr "Ссылка на договор"
#. module: hr_contract
#: help:hr.employee,vehicle_distance:0
@@ -259,7 +266,7 @@ msgstr "Тип договора"
#. module: hr_contract
#: view:hr.contract.wage.type.period:0
msgid "Search Wage Period"
-msgstr ""
+msgstr "Поиск по периоду выплаты"
#. module: hr_contract
#: view:hr.contract:0
@@ -303,7 +310,7 @@ msgstr ""
#. module: hr_contract
#: view:hr.contract.wage.type:0
msgid "Search Wage Type"
-msgstr ""
+msgstr "Поиск по типу выплаты"
#. module: hr_contract
#: field:hr.contract.wage.type,type:0
@@ -375,7 +382,7 @@ msgstr "Основные данные"
#. module: hr_contract
#: view:hr.contract.type:0
msgid "Search Contract Type"
-msgstr ""
+msgstr "Поиск по типу договора"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
diff --git a/addons/hr_evaluation/i18n/ru.po b/addons/hr_evaluation/i18n/ru.po
index d3ea5e99c6b..96cb0010d4c 100644
--- a/addons/hr_evaluation/i18n/ru.po
+++ b/addons/hr_evaluation/i18n/ru.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2010-10-16 08:48+0000\n"
-"Last-Translator: Nikolay Chesnokov \n"
+"PO-Revision-Date: 2011-06-27 05:30+0000\n"
+"Last-Translator: Bulat Shafigullin \n"
"Language-Team: Russian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 05:41+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-06-28 04:40+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: hr_evaluation
#: selection:hr.evaluation.report,state:0
@@ -26,26 +26,26 @@ msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,wait:0
msgid "Wait Previous Phases"
-msgstr ""
+msgstr "Дождатья предыдущей фазы"
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
#: view:hr.evaluation.report:0
#: view:hr_evaluation.plan:0
msgid "Group By..."
-msgstr ""
+msgstr "Группировать по ..."
#. module: hr_evaluation
#: field:hr.evaluation.interview,request_id:0
#: field:hr.evaluation.report,request_id:0
msgid "Request_id"
-msgstr ""
+msgstr "Идентификатор запроса"
#. module: hr_evaluation
#: field:hr.evaluation.report,progress_bar:0
#: field:hr_evaluation.evaluation,progress:0
msgid "Progress"
-msgstr ""
+msgstr "Выполнено"
#. module: hr_evaluation
#: view:board.board:0
@@ -67,58 +67,58 @@ msgstr ""
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
msgid "March"
-msgstr ""
+msgstr "Март"
#. module: hr_evaluation
#: field:hr.evaluation.report,delay_date:0
msgid "Delay to Start"
-msgstr ""
+msgstr "Задержка начала"
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: field:hr_evaluation.evaluation,rating:0
msgid "Appreciation"
-msgstr ""
+msgstr "Оценка"
#. module: hr_evaluation
#: code:addons/hr_evaluation/hr_evaluation.py:242
#: code:addons/hr_evaluation/hr_evaluation.py:311
#, python-format
msgid "Warning !"
-msgstr ""
+msgstr "Warning !"
#. module: hr_evaluation
#: view:hr_evaluation.plan:0
#: field:hr_evaluation.plan,company_id:0
#: field:hr_evaluation.plan.phase,company_id:0
msgid "Company"
-msgstr ""
+msgstr "Организация"
#. module: hr_evaluation
#: model:ir.actions.act_window,name:hr_evaluation.act_hr_employee_2_hr__evaluation_interview
msgid "Evaluation Interviews"
-msgstr ""
+msgstr "Испытательные собеседования"
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,survey_id:0
msgid "Appraisal Form"
-msgstr ""
+msgstr "Оценочная форма"
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: field:hr.evaluation.report,day:0
msgid "Day"
-msgstr ""
+msgstr "День"
#. module: hr_evaluation
#: field:hr.evaluation.interview,evaluation_id:0
msgid "Evaluation Form"
-msgstr ""
+msgstr "Испытательная форма"
#. module: hr_evaluation
#: help:hr_evaluation.plan.phase,send_anonymous_employee:0
msgid "Send an anonymous summary to the employee"
-msgstr ""
+msgstr "Отправить анонимную сводку сотруднику"
#. module: hr_evaluation
#: help:hr_evaluation.plan,month_first:0
@@ -126,34 +126,38 @@ msgid ""
"This number of months will be used to schedule the first evaluation date of "
"the employee when selecting an evaluation plan. "
msgstr ""
+"Указанное количество месяцев будет использоваться при планировании первого "
+"испытательного дня при выборе испытательного плана. "
#. module: hr_evaluation
#: view:hr.employee:0
msgid "Notes"
-msgstr ""
+msgstr "Заметки"
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
msgid "Interview Request"
-msgstr ""
+msgstr "Запрос на собеседование"
#. module: hr_evaluation
#: constraint:hr.employee:0
msgid ""
"Error ! You cannot select a department for which the employee is the manager."
msgstr ""
+"Ошибка! Вы не можете выбрать подразделение, руководителем которого является "
+"этот сотрудник."
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "Mail Body"
-msgstr ""
+msgstr "Тело письма"
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: model:ir.actions.act_window,name:hr_evaluation.action_evaluation_report_all
#: model:ir.ui.menu,name:hr_evaluation.menu_evaluation_report_all
msgid "Evaluations Analysis"
-msgstr ""
+msgstr "Анализ испытаний"
#. module: hr_evaluation
#: selection:hr.evaluation.report,state:0
@@ -170,7 +174,7 @@ msgstr ""
#: selection:hr.evaluation.report,rating:0
#: selection:hr_evaluation.evaluation,rating:0
msgid "Did not meet expectations"
-msgstr ""
+msgstr "Не оправдал ожиданий"
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
@@ -185,7 +189,7 @@ msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan,month_next:0
msgid "Periodicity of Evaluations (months)"
-msgstr ""
+msgstr "Периодичность испытаний (мес.)"
#. module: hr_evaluation
#: code:addons/hr_evaluation/hr_evaluation.py:242
@@ -203,7 +207,7 @@ msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.plan,month_first:0
msgid "First Evaluation in (months)"
-msgstr ""
+msgstr "Первое испытание через (мес.)"
#. module: hr_evaluation
#: code:addons/hr_evaluation/hr_evaluation.py:81
@@ -229,7 +233,7 @@ msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "Send to Employees"
-msgstr ""
+msgstr "Отправить сотрудникам"
#. module: hr_evaluation
#: field:hr.evaluation.report,deadline:0
@@ -324,18 +328,20 @@ msgstr ""
#: selection:hr.evaluation.report,rating:0
#: selection:hr_evaluation.evaluation,rating:0
msgid "Exceeds expectations"
-msgstr ""
+msgstr "Превосходит ожидания"
#. module: hr_evaluation
#: help:hr_evaluation.plan.phase,mail_feature:0
msgid ""
"Check this box if you want to send mail to employees coming under this phase"
msgstr ""
+"Отметьте, если хотите отправлять письма сотрудникам, приходящим в текущей "
+"фазе"
#. module: hr_evaluation
#: help:hr_evaluation.plan.phase,send_answer_manager:0
msgid "Send all answers to the manager"
-msgstr ""
+msgstr "Отправить все ответы менеджеру"
#. module: hr_evaluation
#: view:hr.evaluation.report:0
@@ -350,13 +356,13 @@ msgstr ""
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,date:0
msgid "Evaluation Deadline"
-msgstr ""
+msgstr "Дата завершения испытания"
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
#: view:hr_evaluation.evaluation:0
msgid "Print Interview"
-msgstr ""
+msgstr "Распечатать собеседование"
#. module: hr_evaluation
#: field:hr.evaluation.report,closed:0
@@ -367,13 +373,13 @@ msgstr ""
#: selection:hr.evaluation.report,rating:0
#: selection:hr_evaluation.evaluation,rating:0
msgid "Meet expectations"
-msgstr ""
+msgstr "Соответствует ожиданиям"
#. module: hr_evaluation
#: view:hr.evaluation.report:0
#: field:hr.evaluation.report,nbr:0
msgid "# of Requests"
-msgstr ""
+msgstr "# запросов"
#. module: hr_evaluation
#: model:ir.actions.act_window,name:hr_evaluation.open_view_hr_evaluation_tree
@@ -391,16 +397,20 @@ msgid ""
"manages all kind of evaluations: bottom-up, top-down, self-evaluation and "
"final evaluation by the manager."
msgstr ""
+"Каждому сотруднику может быть назначен испытательный план. Данный план "
+"определяет частоту и порядок персональных испытаний. Вы можете определить "
+"этапы и прикрепить к ним собеседования. OpenERP поддерживает все виды "
+"оценок: снизу-вверх, сверху-вниз, самооценка и конечная оценка менеджером."
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "Action to Perform"
-msgstr ""
+msgstr "Действие к выполнению"
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,note_action:0
msgid "Action Plan"
-msgstr ""
+msgstr "План действия"
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
@@ -410,13 +420,13 @@ msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Ending Summary"
-msgstr ""
+msgstr "Заключительная сводка"
#. module: hr_evaluation
#: selection:hr.evaluation.report,rating:0
#: selection:hr_evaluation.evaluation,rating:0
msgid "Significantly exceeds expectations"
-msgstr ""
+msgstr "Значительно превосходит ожидания"
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
@@ -427,7 +437,7 @@ msgstr ""
#: field:hr_evaluation.plan.phase,send_answer_employee:0
#: field:hr_evaluation.plan.phase,send_answer_manager:0
msgid "All Answers"
-msgstr ""
+msgstr "Все ответы"
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
@@ -448,7 +458,7 @@ msgstr ""
#. module: hr_evaluation
#: model:ir.module.module,shortdesc:hr_evaluation.module_meta_information
msgid "Human Resources Evaluation"
-msgstr ""
+msgstr "Оценка человеческих ресурсов"
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
@@ -458,23 +468,23 @@ msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "Mail Settings"
-msgstr ""
+msgstr "Настройки почты"
#. module: hr_evaluation
#: field:hr.evaluation.interview,user_to_review_id:0
msgid "Employee to Interview"
-msgstr ""
+msgstr "Сотрудник на собеседование"
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
#: view:hr_evaluation.evaluation:0
msgid "Interview Question"
-msgstr ""
+msgstr "Вопрос собеседования"
#. module: hr_evaluation
#: field:survey.request,is_evaluation:0
msgid "Is Evaluation?"
-msgstr ""
+msgstr "Является оценкой?"
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_survey_request
@@ -487,11 +497,13 @@ msgid ""
"Check this box if you want to wait that all preceding phases are finished "
"before launching this phase."
msgstr ""
+"Отметьте, если необходимо, чтобы перед началом данной фазы все предыдущие "
+"были завершены."
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Evaluation Data"
-msgstr ""
+msgstr "Данные испытания"
#. module: hr_evaluation
#: help:hr_evaluation.evaluation,note_action:0
@@ -509,13 +521,13 @@ msgstr "Черновик"
#. module: hr_evaluation
#: field:hr_evaluation.evaluation,note_summary:0
msgid "Evaluation Summary"
-msgstr ""
+msgstr "Сводка испытания"
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,send_anonymous_employee:0
#: field:hr_evaluation.plan.phase,send_anonymous_manager:0
msgid "Anonymous Summary"
-msgstr ""
+msgstr "Анонимная сводка"
#. module: hr_evaluation
#: view:hr.employee:0
@@ -541,7 +553,7 @@ msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Start Evaluation"
-msgstr ""
+msgstr "Начало испытания"
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
@@ -557,7 +569,7 @@ msgstr ""
#: selection:hr.evaluation.report,rating:0
#: selection:hr_evaluation.evaluation,rating:0
msgid "Significantly bellow expectations"
-msgstr ""
+msgstr "Значительно ниже ожиданий"
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
@@ -610,19 +622,19 @@ msgstr ""
#. module: hr_evaluation
#: help:hr_evaluation.plan.phase,send_anonymous_manager:0
msgid "Send an anonymous summary to the manager"
-msgstr ""
+msgstr "Отправить анонимную сводку менеджеру"
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
#: view:hr_evaluation.evaluation:0
msgid "Interview Evaluation"
-msgstr ""
+msgstr "Оценка собеседования"
#. module: hr_evaluation
#: model:ir.actions.act_window,name:hr_evaluation.open_view_hr_evaluation_plan_tree
#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_hr_evaluation_plan_tree
msgid "Evaluation Plans"
-msgstr ""
+msgstr "Планы испытаний"
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
@@ -648,22 +660,22 @@ msgstr ""
#: view:hr.evaluation.report:0
#: selection:hr.evaluation.report,state:0
msgid "Final Validation"
-msgstr ""
+msgstr "Конечная проверка"
#. module: hr_evaluation
#: selection:hr_evaluation.evaluation,state:0
msgid "Waiting Appreciation"
-msgstr ""
+msgstr "Ожидание оценки"
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,mail_feature:0
msgid "Send mail for this phase"
-msgstr ""
+msgstr "Отправить письмо по данной фазе"
#. module: hr_evaluation
#: field:hr.evaluation.report,rating:0
msgid "Overall Rating"
-msgstr ""
+msgstr "Общий рейтинг"
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
@@ -675,22 +687,22 @@ msgstr ""
#: view:hr.evaluation.interview:0
#: view:hr_evaluation.evaluation:0
msgid "Interviewer"
-msgstr ""
+msgstr "Интервьюер"
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_report
msgid "Evaluations Statistics"
-msgstr ""
+msgstr "Статистика испытаний"
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
msgid "Deadline Date"
-msgstr ""
+msgstr "Конечная дата"
#. module: hr_evaluation
#: selection:hr_evaluation.plan.phase,action:0
msgid "Top-Down Appraisal Requests"
-msgstr ""
+msgstr "Запросы на оценку сверху вниз"
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
@@ -700,12 +712,12 @@ msgstr ""
#. module: hr_evaluation
#: help:hr_evaluation.plan.phase,send_answer_employee:0
msgid "Send all answers to the employee"
-msgstr ""
+msgstr "Отправить все ответы сотруднику"
#. module: hr_evaluation
#: field:hr.employee,evaluation_date:0
msgid "Next Evaluation Date"
-msgstr ""
+msgstr "Следующая дата испытания"
#. module: hr_evaluation
#: view:hr.evaluation.report:0
@@ -718,7 +730,7 @@ msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "Evaluation Plan Phases"
-msgstr ""
+msgstr "Фазы плана оценки"
#. module: hr_evaluation
#: view:hr.evaluation.reminder:0
@@ -794,12 +806,12 @@ msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.evaluation:0
msgid "Validate Evaluation"
-msgstr ""
+msgstr "Проверить оценку"
#. module: hr_evaluation
#: selection:hr_evaluation.plan.phase,action:0
msgid "Final Interview"
-msgstr ""
+msgstr "Завершающее собеседование"
#. module: hr_evaluation
#: field:hr_evaluation.plan.phase,name:0
@@ -809,13 +821,13 @@ msgstr ""
#. module: hr_evaluation
#: selection:hr_evaluation.plan.phase,action:0
msgid "Bottom-Up Appraisal Requests"
-msgstr ""
+msgstr "Запросы оценки снизу вверх"
#. module: hr_evaluation
#: view:hr.evaluation.interview:0
#: view:hr_evaluation.evaluation:0
msgid "Search Evaluation"
-msgstr ""
+msgstr "Поиск оценки"
#. module: hr_evaluation
#: field:hr.employee,evaluation_plan_id:0
@@ -824,7 +836,7 @@ msgstr ""
#: field:hr_evaluation.plan.phase,plan_id:0
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_plan
msgid "Evaluation Plan"
-msgstr ""
+msgstr "План оценки"
#. module: hr_evaluation
#: selection:hr.evaluation.report,month:0
@@ -834,7 +846,7 @@ msgstr ""
#. module: hr_evaluation
#: view:hr_evaluation.plan.phase:0
msgid "Send to Managers"
-msgstr ""
+msgstr "Отправить менеджерам"
#. module: hr_evaluation
#: model:ir.actions.act_window,name:hr_evaluation.action_hr_evaluation_send_mail
@@ -849,12 +861,12 @@ msgstr ""
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_evaluation
msgid "Employee Evaluation"
-msgstr ""
+msgstr "Оценка сотрудника"
#. module: hr_evaluation
#: view:hr_evaluation.plan:0
msgid "Search Evaluation Plan"
-msgstr ""
+msgstr "Поиск по плану оценки"
#. module: hr_evaluation
#: view:hr_evaluation.plan:0
@@ -875,7 +887,7 @@ msgstr ""
#: model:ir.actions.act_window,name:hr_evaluation.action_hr_evaluation_interview_tree
#: model:ir.ui.menu,name:hr_evaluation.menu_open_hr_evaluation_interview_requests
msgid "Interview Requests"
-msgstr ""
+msgstr "Запросы на собеседование"
#. module: hr_evaluation
#: field:hr.evaluation.report,create_date:0
@@ -894,6 +906,8 @@ msgid ""
"The date of the next evaluation is computed by the evaluation plan's dates "
"(first evaluation + periodicity)."
msgstr ""
+"Дата следующей оценки вычисляется согласно плану (первая оценка + "
+"периодичность)."
#~ msgid "Score"
#~ msgstr "Оценка"
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index 2e7020306b5..0f996c79e79 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -70,7 +70,7 @@ class hr_expense_expense(osv.osv):
'account_move_id': fields.many2one('account.move', 'Ledger Posting'),
'line_ids': fields.one2many('hr.expense.line', 'expense_id', 'Expense Lines', readonly=True, states={'draft':[('readonly',False)]} ),
'note': fields.text('Note'),
- 'amount': fields.function(_amount, method=True, string='Total Amount'),
+ 'amount': fields.function(_amount, string='Total Amount'),
'invoice_id': fields.many2one('account.invoice', "Employee's Invoice"),
'currency_id': fields.many2one('res.currency', 'Currency', required=True),
'department_id':fields.many2one('hr.department','Department'),
@@ -244,7 +244,7 @@ class hr_expense_line(osv.osv):
'name': fields.char('Expense Note', size=128, required=True),
'date_value': fields.date('Date', required=True),
'expense_id': fields.many2one('hr.expense.expense', 'Expense', ondelete='cascade', select=True),
- 'total_amount': fields.function(_amount, method=True, string='Total', digits_compute=dp.get_precision('Account')),
+ 'total_amount': fields.function(_amount, string='Total', digits_compute=dp.get_precision('Account')),
'unit_amount': fields.float('Unit Price', digits_compute=dp.get_precision('Account')),
'unit_quantity': fields.float('Quantities' ),
'product_id': fields.many2one('product.product', 'Product', domain=[('hr_expense_ok','=',True)]),
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py
index 3796b379ba2..18b1bacc836 100644
--- a/addons/hr_holidays/hr_holidays.py
+++ b/addons/hr_holidays/hr_holidays.py
@@ -78,9 +78,9 @@ class hr_holidays_status(osv.osv):
'color_name': fields.selection([('red', 'Red'),('blue','Blue'), ('lightgreen', 'Light Green'), ('lightblue','Light Blue'), ('lightyellow', 'Light Yellow'), ('magenta', 'Magenta'),('lightcyan', 'Light Cyan'),('black', 'Black'),('lightpink', 'Light Pink'),('brown', 'Brown'),('violet', 'Violet'),('lightcoral', 'Light Coral'),('lightsalmon', 'Light Salmon'),('lavender', 'Lavender'),('wheat', 'Wheat'),('ivory', 'Ivory')],'Color in Report', required=True, help='This color will be used in the leaves summary located in Reporting\Leaves by Departement'),
'limit': fields.boolean('Allow to Override Limit', help='If you tick this checkbox, the system will allow, for this section, the employees to take more leaves than the available ones.'),
'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the leave type without removing it."),
- 'max_leaves': fields.function(_user_left_days, method=True, string='Maximum Allowed', help='This value is given by the sum of all holidays requests with a positive value.', multi='user_left_days'),
- 'leaves_taken': fields.function(_user_left_days, method=True, string='Leaves Already Taken', help='This value is given by the sum of all holidays requests with a negative value.', multi='user_left_days'),
- 'remaining_leaves': fields.function(_user_left_days, method=True, string='Remaining Leaves', help='Maximum Leaves Allowed - Leaves Already Taken', multi='user_left_days'),
+ 'max_leaves': fields.function(_user_left_days, string='Maximum Allowed', help='This value is given by the sum of all holidays requests with a positive value.', multi='user_left_days'),
+ 'leaves_taken': fields.function(_user_left_days, string='Leaves Already Taken', help='This value is given by the sum of all holidays requests with a negative value.', multi='user_left_days'),
+ 'remaining_leaves': fields.function(_user_left_days, string='Remaining Leaves', help='Maximum Leaves Allowed - Leaves Already Taken', multi='user_left_days'),
'double_validation': fields.boolean('Apply Double Validation', help="If its True then its Allocation/Request have to be validated by second validator")
}
_defaults = {
@@ -94,8 +94,8 @@ class hr_holidays(osv.osv):
_description = "Leave"
_order = "type desc, date_from asc"
- def _employee_get(obj, cr, uid, context=None):
- ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context)
+ def _employee_get(self, cr, uid, context=None):
+ ids = self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context)
if ids:
return ids[0]
return False
@@ -127,7 +127,7 @@ class hr_holidays(osv.osv):
'manager_id': fields.many2one('hr.employee', 'First Approval', invisible=False, readonly=True, help='This area is automatically filled by the user who validate the leave'),
'notes': fields.text('Reasons',readonly=True, states={'draft':[('readonly',False)]}),
'number_of_days_temp': fields.float('Number of Days', readonly=True, states={'draft':[('readonly',False)]}),
- 'number_of_days': fields.function(_compute_number_of_days, method=True, string='Number of Days', store=True),
+ 'number_of_days': fields.function(_compute_number_of_days, string='Number of Days', store=True),
'case_id': fields.many2one('crm.meeting', 'Meeting'),
'type': fields.selection([('remove','Leave Request'),('add','Allocation Request')], 'Request Type', required=True, readonly=True, states={'draft':[('readonly',False)]}, help="Choose 'Leave Request' if someone wants to take an off-day. \nChoose 'Allocation Request' if you want to increase the number of leaves available for someone"),
'parent_id': fields.many2one('hr.holidays', 'Parent'),
diff --git a/addons/hr_payroll/hr_payroll.py b/addons/hr_payroll/hr_payroll.py
index b29bd1312ac..7b94ecc5dbb 100644
--- a/addons/hr_payroll/hr_payroll.py
+++ b/addons/hr_payroll/hr_payroll.py
@@ -318,11 +318,11 @@ class hr_contract(osv.osv):
'visa_expire': fields.date('Visa Expire Date'),
'struct_id': fields.many2one('hr.payroll.structure', 'Salary Structure'),
'working_days_per_week': fields.integer('Working Days', help="No of Working days / week for an employee"),
- 'basic': fields.function(_calculate_salary, method=True, store=True, multi='dc', type='float', string='Basic Salary', digits=(14,2)),
- 'gross': fields.function(_calculate_salary, method=True, store=True, multi='dc', type='float', string='Gross Salary', digits=(14,2)),
- 'net': fields.function(_calculate_salary, method=True, store=True, multi='dc', type='float', string='Net Salary', digits=(14,2)),
- 'advantages_net': fields.function(_calculate_salary, method=True, store=True, multi='dc', type='float', string='Deductions', digits=(14,2)),
- 'advantages_gross': fields.function(_calculate_salary, method=True, store=True, multi='dc', type='float', string='Allowances', digits=(14,2)),
+ 'basic': fields.function(_calculate_salary, store=True, multi='dc', type='float', string='Basic Salary', digits=(14,2)),
+ 'gross': fields.function(_calculate_salary, store=True, multi='dc', type='float', string='Gross Salary', digits=(14,2)),
+ 'net': fields.function(_calculate_salary, store=True, multi='dc', type='float', string='Net Salary', digits=(14,2)),
+ 'advantages_net': fields.function(_calculate_salary, store=True, multi='dc', type='float', string='Deductions', digits=(14,2)),
+ 'advantages_gross': fields.function(_calculate_salary, store=True, multi='dc', type='float', string='Allowances', digits=(14,2)),
}
_defaults = {
'working_days_per_week': lambda *a: 5,
@@ -374,10 +374,10 @@ class payroll_register(osv.osv):
],'State', select=True, readonly=True),
'active':fields.boolean('Active', required=False),
'company_id':fields.many2one('res.company', 'Company', required=False),
- 'grows': fields.function(_calculate, method=True, store=True, multi='dc', string='Gross Salary', type='float', digits=(16, 4)),
- 'net': fields.function(_calculate, method=True, store=True, multi='dc', string='Net Salary', digits=(16, 4)),
- 'allounce': fields.function(_calculate, method=True, store=True, multi='dc', string='Allowance', digits=(16, 4)),
- 'deduction': fields.function(_calculate, method=True, store=True, multi='dc', string='Deduction', digits=(16, 4)),
+ 'grows': fields.function(_calculate, store=True, multi='dc', string='Gross Salary', type='float', digits=(16, 4)),
+ 'net': fields.function(_calculate, store=True, multi='dc', string='Net Salary', digits=(16, 4)),
+ 'allounce': fields.function(_calculate, store=True, multi='dc', string='Allowance', digits=(16, 4)),
+ 'deduction': fields.function(_calculate, store=True, multi='dc', string='Deduction', digits=(16, 4)),
'note': fields.text('Description'),
'bank_id':fields.many2one('res.bank', 'Bank', required=False, help="Select the Bank Address from whcih the salary is going to be paid"),
}
@@ -611,8 +611,8 @@ class contrib_register(osv.osv):
'company_id':fields.many2one('res.company', 'Company', required=False),
'name':fields.char('Name', size=256, required=True, readonly=False),
'register_line_ids':fields.one2many('hr.contibution.register.line', 'register_id', 'Register Line', readonly=True),
- 'monthly_total_by_emp': fields.function(_total_contrib, method=True, multi='dc', string='Total By Employee', digits=(16, 4)),
- 'monthly_total_by_comp': fields.function(_total_contrib, method=True, multi='dc', string='Total By Company', digits=(16, 4)),
+ 'monthly_total_by_emp': fields.function(_total_contrib, multi='dc', string='Total By Employee', digits=(16, 4)),
+ 'monthly_total_by_comp': fields.function(_total_contrib, multi='dc', string='Total By Company', digits=(16, 4)),
'note': fields.text('Description'),
}
_defaults = {
@@ -644,7 +644,7 @@ class contrib_register_line(osv.osv):
'date': fields.date('Date'),
'emp_deduction': fields.float('Employee Deduction', digits=(16, 4)),
'comp_deduction': fields.float('Company Deduction', digits=(16, 4)),
- 'total': fields.function(_total, method=True, store=True, string='Total', digits=(16, 4)),
+ 'total': fields.function(_total, store=True, string='Total', digits=(16, 4)),
}
_defaults = {
'date': lambda *a: time.strftime('%Y-%m-%d'),
@@ -711,7 +711,6 @@ class company_contribution(osv.osv):
type='many2one',
relation='hr.contibution.register',
string="Contribution Register",
- method=True,
view_load=True,
help="Contribution register based on company",
required=False
@@ -884,12 +883,12 @@ class hr_payslip(osv.osv):
'basic_before_leaves': fields.float('Basic Salary', readonly=True, digits_compute=dp.get_precision('Account')),
'leaves': fields.float('Leave Deductions', readonly=True, digits_compute=dp.get_precision('Account')),
'basic': fields.float('Net Basic', readonly=True, digits_compute=dp.get_precision('Account')),
- 'grows': fields.function(_calculate, method=True, store=True, multi='dc', string='Gross Salary', digits_compute=dp.get_precision('Account')),
- 'net': fields.function(_calculate, method=True, store=True, multi='dc', string='Net Salary', digits_compute=dp.get_precision('Account')),
- 'allounce': fields.function(_calculate, method=True, store=True, multi='dc', string='Allowance', digits_compute=dp.get_precision('Account')),
- 'deduction': fields.function(_calculate, method=True, store=True, multi='dc', string='Deduction', digits_compute=dp.get_precision('Account')),
- 'other_pay': fields.function(_calculate, method=True, store=True, multi='dc', string='Others', digits_compute=dp.get_precision('Account')),
- 'total_pay': fields.function(_calculate, method=True, store=True, multi='dc', string='Total Payment', digits_compute=dp.get_precision('Account')),
+ 'grows': fields.function(_calculate, store=True, multi='dc', string='Gross Salary', digits_compute=dp.get_precision('Account')),
+ 'net': fields.function(_calculate, store=True, multi='dc', string='Net Salary', digits_compute=dp.get_precision('Account')),
+ 'allounce': fields.function(_calculate, store=True, multi='dc', string='Allowance', digits_compute=dp.get_precision('Account')),
+ 'deduction': fields.function(_calculate, store=True, multi='dc', string='Deduction', digits_compute=dp.get_precision('Account')),
+ 'other_pay': fields.function(_calculate, store=True, multi='dc', string='Others', digits_compute=dp.get_precision('Account')),
+ 'total_pay': fields.function(_calculate, store=True, multi='dc', string='Total Payment', digits_compute=dp.get_precision('Account')),
'line_ids':fields.one2many('hr.payslip.line', 'slip_id', 'Payslip Line', required=False, readonly=True, states={'draft': [('readonly', False)]}),
'company_id':fields.many2one('res.company', 'Company', required=False, readonly=True, states={'draft': [('readonly', False)]}),
'holiday_days': fields.float('No of Leaves', readonly=True),
@@ -1436,11 +1435,11 @@ class hr_employee(osv.osv):
'slip_ids':fields.one2many('hr.payslip', 'employee_id', 'Payslips', required=False, readonly=True),
'otherid': fields.char('Other Id', size=64),
- 'basic': fields.function(_calculate_salary, method=True, multi='dc', type='float', string='Basic Salary', digits=(14,2)),
- 'gross': fields.function(_calculate_salary, method=True, multi='dc', type='float', string='Gross Salary', digits=(14,2)),
- 'net': fields.function(_calculate_salary, method=True, multi='dc', type='float', string='Net Salary', digits=(14,2)),
- 'advantages_net': fields.function(_calculate_salary, method=True, multi='dc', type='float', string='Deductions', digits=(14,2)),
- 'advantages_gross': fields.function(_calculate_salary, method=True, multi='dc', type='float', string='Allowances', digits=(14,2)),
+ 'basic': fields.function(_calculate_salary, multi='dc', type='float', string='Basic Salary', digits=(14,2)),
+ 'gross': fields.function(_calculate_salary, multi='dc', type='float', string='Gross Salary', digits=(14,2)),
+ 'net': fields.function(_calculate_salary, multi='dc', type='float', string='Net Salary', digits=(14,2)),
+ 'advantages_net': fields.function(_calculate_salary, multi='dc', type='float', string='Deductions', digits=(14,2)),
+ 'advantages_gross': fields.function(_calculate_salary, multi='dc', type='float', string='Allowances', digits=(14,2)),
}
hr_employee()
diff --git a/addons/hr_payroll/hr_payroll_view.xml b/addons/hr_payroll/hr_payroll_view.xml
index 78b9da0f9c1..68090e09dd3 100644
--- a/addons/hr_payroll/hr_payroll_view.xml
+++ b/addons/hr_payroll/hr_payroll_view.xml
@@ -167,9 +167,9 @@
-
-
-
+
+
+
diff --git a/addons/hr_payroll_account/hr_payroll_account.py b/addons/hr_payroll_account/hr_payroll_account.py
index 416aeb485ef..7d069bdf346 100644
--- a/addons/hr_payroll_account/hr_payroll_account.py
+++ b/addons/hr_payroll_account/hr_payroll_account.py
@@ -60,7 +60,6 @@ class hr_employee(osv.osv):
type='many2one',
relation='account.account',
string="Bank Account",
- method=True,
domain="[('type', '=', 'liquidity')]",
view_load=True,
help="Select Bank Account from where Salary Expense will be Paid, to be used for payslip verification."),
@@ -69,7 +68,6 @@ class hr_employee(osv.osv):
type='many2one',
relation='account.account',
string="Salary Account",
- method=True,
domain="[('type', '=', 'other')]",
view_load=True,
help="Expense account when Salary Expense will be recorded"),
@@ -78,7 +76,6 @@ class hr_employee(osv.osv):
type='many2one',
relation='account.account',
string="Employee Account",
- method=True,
domain="[('type', '=', 'other')]",
view_load=True,
help="Employee Payable Account"),
@@ -87,7 +84,6 @@ class hr_employee(osv.osv):
type='many2one',
relation='account.analytic.account',
string="Analytic Account",
- method=True,
view_load=True,
help="Analytic Account for Salary Analysis"),
}
@@ -180,8 +176,8 @@ class contrib_register(osv.osv):
_columns = {
'account_id': fields.many2one('account.account', 'Account'),
'analytic_account_id':fields.many2one('account.analytic.account', 'Analytic Account'),
- 'yearly_total_by_emp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Employee', digits=(16, 4)),
- 'yearly_total_by_comp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Company', digits=(16, 4)),
+ 'yearly_total_by_emp': fields.function(_total_contrib, multi='dc', store=True, string='Total By Employee', digits=(16, 4)),
+ 'yearly_total_by_comp': fields.function(_total_contrib, multi='dc', store=True, string='Total By Company', digits=(16, 4)),
}
contrib_register()
diff --git a/addons/hr_payroll_account/i18n/zh_CN.po b/addons/hr_payroll_account/i18n/zh_CN.po
new file mode 100644
index 00000000000..d44c5ae8a83
--- /dev/null
+++ b/addons/hr_payroll_account/i18n/zh_CN.po
@@ -0,0 +1,344 @@
+# Chinese (Simplified) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-27 13:51+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Simplified) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-28 04:40+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: hr_payroll_account
+#: field:hr.payslip,move_line_ids:0
+msgid "Accounting Lines"
+msgstr "会计明细"
+
+#. module: hr_payroll_account
+#: field:hr.payroll.register,bank_journal_id:0
+#: field:hr.payslip,bank_journal_id:0
+msgid "Bank Journal"
+msgstr "银行日记帐"
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_contibution_register_line
+msgid "Contribution Register Line"
+msgstr "捐款记录明细"
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_contibution_register
+msgid "Contribution Register"
+msgstr "捐款记录"
+
+#. module: hr_payroll_account
+#: help:hr.employee,analytic_account:0
+msgid "Analytic Account for Salary Analysis"
+msgstr "薪酬分析的辅助核算项"
+
+#. module: hr_payroll_account
+#: field:hr.payroll.register,journal_id:0
+#: field:hr.payslip,journal_id:0
+msgid "Expense Journal"
+msgstr "费用日记帐"
+
+#. module: hr_payroll_account
+#: field:hr.contibution.register.line,period_id:0
+msgid "Period"
+msgstr "期间"
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_employee
+msgid "Employee"
+msgstr "员工"
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Other Informations"
+msgstr "其它信息"
+
+#. module: hr_payroll_account
+#: field:hr.employee,salary_account:0
+msgid "Salary Account"
+msgstr "薪酬科目"
+
+#. module: hr_payroll_account
+#: help:hr.employee,property_bank_account:0
+msgid "Select Bank Account from where Salary Expense will be Paid"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payroll_register
+msgid "Payroll Register"
+msgstr "工资表记录"
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip_account_move
+msgid "Account Move Link to Pay Slip"
+msgstr "分录链接到工资表"
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Description"
+msgstr "描述"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:331
+#, python-format
+msgid "Please Confirm all Expense Invoice appear for Reimbursement"
+msgstr "请确认所有报销的费用发票"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:432
+#, python-format
+msgid "Please defined partner in bank account for %s !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Accounting Informations"
+msgstr "会计信息"
+
+#. module: hr_payroll_account
+#: help:hr.employee,salary_account:0
+msgid "Expense account when Salary Expense will be recorded"
+msgstr "开支科目将记录薪酬开支"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:429
+#, python-format
+msgid "Please defined bank account for %s !"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.module.module,description:hr_payroll_account.module_meta_information
+msgid ""
+"Generic Payroll system Integrated with Accountings\n"
+" * Expanse Encoding\n"
+" * Payment Encoding\n"
+" * Comany Contribution Managemet\n"
+" "
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.module.module,shortdesc:hr_payroll_account.module_meta_information
+msgid "Human Resource Payroll Accounting"
+msgstr "人力资源工资表会计部分"
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+#: field:hr.payslip,move_payment_ids:0
+msgid "Payment Lines"
+msgstr "付款明细"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:270
+#: code:addons/hr_payroll_account/hr_payroll_account.py:445
+#, python-format
+msgid "Please define fiscal year for perticular contract"
+msgstr "请定义财务年的会计期间"
+
+#. module: hr_payroll_account
+#: field:hr.payslip.account.move,slip_id:0
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip
+msgid "Pay Slip"
+msgstr "工资表"
+
+#. module: hr_payroll_account
+#: constraint:hr.employee:0
+msgid "Error ! You cannot create recursive Hierarchy of Employees."
+msgstr "错误!您不能创建递归的员工等级。"
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Account Lines"
+msgstr "明细"
+
+#. module: hr_payroll_account
+#: field:hr.contibution.register,account_id:0
+#: field:hr.holidays.status,account_id:0
+#: field:hr.payroll.advice,account_id:0
+msgid "Account"
+msgstr "科目"
+
+#. module: hr_payroll_account
+#: field:hr.employee,property_bank_account:0
+msgid "Bank Account"
+msgstr "银行帐户"
+
+#. module: hr_payroll_account
+#: field:hr.payslip.account.move,name:0
+msgid "Name"
+msgstr "名称"
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip_line
+msgid "Payslip Line"
+msgstr "工资表明细"
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Accounting Vouchers"
+msgstr "会计凭证"
+
+#. module: hr_payroll_account
+#: constraint:hr.employee:0
+msgid ""
+"Error ! You cannot select a department for which the employee is the manager."
+msgstr "错误!您不能选择一部门因为该员工是经理。"
+
+#. module: hr_payroll_account
+#: help:hr.payroll.register,period_id:0
+#: help:hr.payslip,period_id:0
+msgid "Keep empty to use the period of the validation(Payslip) date."
+msgstr "为空使用这个期间审核(工资表)日期"
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payroll_advice
+msgid "Bank Advice Note"
+msgstr "银行通知单备注"
+
+#. module: hr_payroll_account
+#: field:hr.payslip.account.move,move_id:0
+msgid "Expense Entries"
+msgstr "费用分录"
+
+#. module: hr_payroll_account
+#: field:hr.payslip,move_ids:0
+msgid "Accounting vouchers"
+msgstr "会计凭证"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:270
+#: code:addons/hr_payroll_account/hr_payroll_account.py:277
+#: code:addons/hr_payroll_account/hr_payroll_account.py:280
+#: code:addons/hr_payroll_account/hr_payroll_account.py:297
+#: code:addons/hr_payroll_account/hr_payroll_account.py:331
+#: code:addons/hr_payroll_account/hr_payroll_account.py:445
+#: code:addons/hr_payroll_account/hr_payroll_account.py:452
+#: code:addons/hr_payroll_account/hr_payroll_account.py:455
+#: code:addons/hr_payroll_account/hr_payroll_account.py:469
+#: code:addons/hr_payroll_account/hr_payroll_account.py:492
+#, python-format
+msgid "Warning !"
+msgstr "警告!"
+
+#. module: hr_payroll_account
+#: field:hr.employee,employee_account:0
+msgid "Employee Account"
+msgstr "员工帐户"
+
+#. module: hr_payroll_account
+#: field:hr.payslip.line,account_id:0
+msgid "General Account"
+msgstr "一般科目"
+
+#. module: hr_payroll_account
+#: field:hr.contibution.register,yearly_total_by_emp:0
+msgid "Total By Employee"
+msgstr "员工合计"
+
+#. module: hr_payroll_account
+#: field:hr.payslip.account.move,sequence:0
+msgid "Sequence"
+msgstr "序列"
+
+#. module: hr_payroll_account
+#: field:hr.payroll.register,period_id:0
+#: field:hr.payslip,period_id:0
+msgid "Force Period"
+msgstr "强制会计期间"
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_holidays_status
+msgid "Leave Type"
+msgstr "假期类型"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:277
+#: code:addons/hr_payroll_account/hr_payroll_account.py:452
+#, python-format
+msgid "Fiscal Year is not defined for slip date %s"
+msgstr "这薪酬日期 %s 财务年度没定义"
+
+#. module: hr_payroll_account
+#: field:hr.contibution.register,analytic_account_id:0
+#: field:hr.employee,analytic_account:0
+#: field:hr.holidays.status,analytic_account_id:0
+#: field:hr.payroll.structure,account_id:0
+#: field:hr.payslip.line,analytic_account_id:0
+msgid "Analytic Account"
+msgstr "辅助核算项"
+
+#. module: hr_payroll_account
+#: help:hr.employee,employee_account:0
+msgid "Employee Payable Account"
+msgstr "员工应付帐户"
+
+#. module: hr_payroll_account
+#: field:hr.contibution.register,yearly_total_by_comp:0
+msgid "Total By Company"
+msgstr "公司合计"
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payroll_structure
+msgid "Salary Structure"
+msgstr "薪酬结构"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:557
+#, python-format
+msgid "Please Configure Partners Receivable Account!!"
+msgstr "请定义业务伙伴应收款帐户!"
+
+#. module: hr_payroll_account
+#: view:hr.contibution.register:0
+msgid "Year"
+msgstr "年"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:280
+#: code:addons/hr_payroll_account/hr_payroll_account.py:455
+#, python-format
+msgid "Period is not defined for slip date %s"
+msgstr "这薪酬日期 %s 会计期间没定义。"
+
+#. module: hr_payroll_account
+#: view:hr.payslip:0
+msgid "Accounting Details"
+msgstr "会计细节"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:540
+#, python-format
+msgid "Please Configure Partners Payable Account!!"
+msgstr "请定义业务伙伴应付款帐户!"
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:429
+#: code:addons/hr_payroll_account/hr_payroll_account.py:432
+#: code:addons/hr_payroll_account/hr_payroll_account.py:533
+#: code:addons/hr_payroll_account/hr_payroll_account.py:550
+#, python-format
+msgid "Integrity Error !"
+msgstr ""
+
+#~ msgid ""
+#~ "Generic Payroll system Integrated with Accountings\n"
+#~ " * Expense Encoding\n"
+#~ " * Payment Encoding\n"
+#~ " * Company Contribution Management\n"
+#~ " "
+#~ msgstr ""
+#~ "通用工资系统整合会计\n"
+#~ " * 费用编码\n"
+#~ " * 付款编码\n"
+#~ " * 公司捐款管理\n"
+#~ " "
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index bc7489a0c4f..5e738fc6f48 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -157,9 +157,9 @@ class hr_applicant(crm.crm_case, osv.osv):
'response': fields.integer("Response"),
'reference': fields.char('Reference', size=128),
'day_open': fields.function(_compute_day, string='Days to Open', \
- method=True, multi='day_open', type="float", store=True),
+ multi='day_open', type="float", store=True),
'day_close': fields.function(_compute_day, string='Days to Close', \
- method=True, multi='day_close', type="float", store=True),
+ multi='day_close', type="float", store=True),
}
def _get_stage(self, cr, uid, context=None):
@@ -308,7 +308,7 @@ class hr_applicant(crm.crm_case, osv.osv):
mailgate_pool = self.pool.get('email.server.tools')
attach_obj = self.pool.get('ir.attachment')
- subject = msg.get('subject')
+ subject = msg.get('subject') or _("No Subject")
body = msg.get('body')
msg_from = msg.get('from')
priority = msg.get('priority')
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
index 5c042c5c7e3..d9314690ce7 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
@@ -66,7 +66,7 @@ class account_analytic_account(osv.osv):
'pricelist_id': fields.many2one('product.pricelist', 'Sale Pricelist',
help="The product to invoice is defined on the employee form, the price will be deduced by this pricelist on the product."),
'amount_max': fields.float('Max. Invoice Price'),
- 'amount_invoiced': fields.function(_invoiced_calc, method=True, string='Invoiced Amount',
+ 'amount_invoiced': fields.function(_invoiced_calc, string='Invoiced Amount',
help="Total invoiced"),
'to_invoice': fields.many2one('hr_timesheet_invoice.factor', 'Reinvoice Costs',
help="Fill this field if you plan to automatically generate invoices based " \
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
index ea2b5017790..cf4351112a4 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
@@ -286,13 +286,13 @@ class hr_timesheet_sheet(osv.osv):
help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed timesheet. \
\n* The \'Confirmed\' state is used for to confirm the timesheet by user. \
\n* The \'Done\' state is used when users timesheet is accepted by his/her senior.'),
- 'state_attendance' : fields.function(_state_attendance, method=True, type='selection', selection=[('absent', 'Absent'), ('present', 'Present'),('none','No employee defined')], string='Current Status'),
- 'total_attendance_day': fields.function(_total_day, method=True, string='Total Attendance', multi="_total_day"),
- 'total_timesheet_day': fields.function(_total_day, method=True, string='Total Timesheet', multi="_total_day"),
- 'total_difference_day': fields.function(_total_day, method=True, string='Difference', multi="_total_day"),
- 'total_attendance': fields.function(_total, method=True, string='Total Attendance', multi="_total_sheet"),
- 'total_timesheet': fields.function(_total, method=True, string='Total Timesheet', multi="_total_sheet"),
- 'total_difference': fields.function(_total, method=True, string='Difference', multi="_total_sheet"),
+ 'state_attendance' : fields.function(_state_attendance, type='selection', selection=[('absent', 'Absent'), ('present', 'Present'),('none','No employee defined')], string='Current Status'),
+ 'total_attendance_day': fields.function(_total_day, string='Total Attendance', multi="_total_day"),
+ 'total_timesheet_day': fields.function(_total_day, string='Total Timesheet', multi="_total_day"),
+ 'total_difference_day': fields.function(_total_day, string='Difference', multi="_total_day"),
+ 'total_attendance': fields.function(_total, string='Total Attendance', multi="_total_sheet"),
+ 'total_timesheet': fields.function(_total, string='Total Timesheet', multi="_total_sheet"),
+ 'total_difference': fields.function(_total, string='Difference', multi="_total_sheet"),
'period_ids': fields.one2many('hr_timesheet_sheet.sheet.day', 'sheet_id', 'Period', readonly=True),
'account_ids': fields.one2many('hr_timesheet_sheet.sheet.account', 'sheet_id', 'Analytic accounts', readonly=True),
'company_id': fields.many2one('res.company', 'Company'),
@@ -473,7 +473,7 @@ class hr_timesheet_line(osv.osv):
return [('id', 'in', [x[0] for x in res])]
_columns = {
- 'sheet_id': fields.function(_sheet, method=True, string='Sheet',
+ 'sheet_id': fields.function(_sheet, string='Sheet',
type='many2one', relation='hr_timesheet_sheet.sheet',
fnct_search=_sheet_search),
}
@@ -494,6 +494,8 @@ class hr_timesheet_line(osv.osv):
]
def unlink(self, cr, uid, ids, *args, **kwargs):
+ if isinstance(ids, (int, long)):
+ ids = [ids]
self._check(cr, uid, ids)
return super(hr_timesheet_line,self).unlink(cr, uid, ids,*args, **kwargs)
@@ -596,7 +598,7 @@ class hr_attendance(osv.osv):
return [('id', 'in', [x[0] for x in res])]
_columns = {
- 'sheet_id': fields.function(_sheet, method=True, string='Sheet',
+ 'sheet_id': fields.function(_sheet, string='Sheet',
type='many2one', relation='hr_timesheet_sheet.sheet',
fnct_search=_sheet_search),
}
@@ -619,12 +621,16 @@ class hr_attendance(osv.osv):
return res
def unlink(self, cr, uid, ids, *args, **kwargs):
+ if isinstance(ids, (int, long)):
+ ids = [ids]
self._check(cr, uid, ids)
return super(hr_attendance,self).unlink(cr, uid, ids,*args, **kwargs)
def write(self, cr, uid, ids, vals, context=None):
if context is None:
context = {}
+ if isinstance(ids, (int, long)):
+ ids = [ids]
self._check(cr, uid, ids)
res = super(hr_attendance,self).write(cr, uid, ids, vals, context=context)
if 'sheet_id' in context:
diff --git a/addons/idea/idea.py b/addons/idea/idea.py
index 04ae4dff5df..0e6e89f15b5 100644
--- a/addons/idea/idea.py
+++ b/addons/idea/idea.py
@@ -52,7 +52,7 @@ class idea_category(osv.osv):
_columns = {
'name': fields.char('Category', size=64, required=True),
- 'complete_name': fields.function(_categ_name_get_fnc, method=True, type="char", string='Name'),
+ 'complete_name': fields.function(_categ_name_get_fnc, type="char", string='Name'),
'summary': fields.text('Summary'),
'parent_id': fields.many2one('idea.category', 'Parent Categories', ondelete='set null'),
'child_ids': fields.one2many('idea.category', 'parent_id', 'Child Categories'),
@@ -180,10 +180,10 @@ class idea_idea(osv.osv):
'created_date': fields.datetime('Creation date', readonly=True),
'open_date': fields.datetime('Open date', readonly=True, help="Date when an idea opened"),
'vote_ids': fields.one2many('idea.vote', 'idea_id', 'Vote'),
- 'my_vote': fields.function(_vote_read, fnct_inv = _vote_save, string="My Vote", method=True, type="selection", selection=VoteValues),
- 'vote_avg': fields.function(_vote_avg_compute, method=True, string="Average Score", type="float"),
- 'count_votes': fields.function(_vote_count, method=True, string="Count of votes", type="integer"),
- 'count_comments': fields.function(_comment_count, method=True, string="Count of comments", type="integer"),
+ 'my_vote': fields.function(_vote_read, fnct_inv = _vote_save, string="My Vote", type="selection", selection=VoteValues),
+ 'vote_avg': fields.function(_vote_avg_compute, string="Average Score", type="float"),
+ 'count_votes': fields.function(_vote_count, string="Count of votes", type="integer"),
+ 'count_comments': fields.function(_comment_count, string="Count of comments", type="integer"),
'category_id': fields.many2one('idea.category', 'Category', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'state': fields.selection([('draft', 'Draft'),
('open', 'Opened'),
diff --git a/addons/import_base/__init__.py b/addons/import_base/__init__.py
new file mode 100644
index 00000000000..0a5d7fb20b7
--- /dev/null
+++ b/addons/import_base/__init__.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Openerp sa ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import import_framework
+import mapper
\ No newline at end of file
diff --git a/addons/import_base/__openerp__.py b/addons/import_base/__openerp__.py
new file mode 100644
index 00000000000..962541f427a
--- /dev/null
+++ b/addons/import_base/__openerp__.py
@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+{
+ 'name': 'Base framework for module that need to import complex data',
+ 'version': '0.9',
+ 'category': 'Generic Modules',
+ 'description': """
+ This module provide a class import_framework to help importing
+ complex data from other software
+ """,
+ 'author': 'OpenERP SA',
+ 'website': 'http://www.openerp.com',
+ 'depends': ['base'],
+ 'init_xml': [],
+ 'update_xml': [],
+ 'demo_xml': [],
+ 'test': [], #TODO provide test
+ 'installable': True,
+ 'active': False,
+}
diff --git a/addons/import_base/import_framework.py b/addons/import_base/import_framework.py
new file mode 100644
index 00000000000..9b25ecb1ecf
--- /dev/null
+++ b/addons/import_base/import_framework.py
@@ -0,0 +1,432 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+import pprint
+import mapper
+import pooler
+import tools
+
+
+from threading import Thread
+import datetime
+import logging
+pp = pprint.PrettyPrinter(indent=4)
+
+
+
+
+class import_framework(Thread):
+ """
+ This class should be extends,
+ get_data and get_mapping have to extends
+ get_state_map and initialize can be extended
+ for advanced purpose get_default_hook can also be extended
+ @see dummy import for a minimal exemple
+ """
+
+ """
+ for import_object, this domain will avoid to find an already existing object
+ """
+ DO_NOT_FIND_DOMAIN = [('id', '=', 0)]
+
+ def __init__(self, obj, cr, uid, instance_name, module_name, email_to_notify=False, context=None):
+ Thread.__init__(self)
+ self.obj = obj
+ self.cr = cr
+ self.uid = uid
+ self.instance_name = instance_name
+ self.module_name = module_name
+ self.context = context or {}
+ self.email = email_to_notify
+ self.table_list = []
+ self.initialize()
+
+
+
+ """
+ Abstract Method to be implemented in
+ the real instance
+ """
+ def initialize(self):
+ """
+ init before import
+ usually for the login
+ """
+ pass
+
+ def get_data(self, table):
+ """
+ @return: a list of dictionaries
+ each dictionnaries contains the list of pair external_field_name : value
+ """
+ return [{}]
+
+ def get_mapping(self):
+ """
+ @return: { TABLE_NAME : {
+ 'model' : 'openerp.model.name',
+ #if true import the table if not just resolve dependencies, use for meta package, by default => True
+ #Not required
+ 'import' : True or False,
+ #Not required
+ 'dependencies' : [TABLE_1, TABLE_2],
+ #Not required
+ 'hook' : self.function_name, #get the val dict of the object, return the same val dict or False
+ 'map' : { @see mapper
+ 'openerp_field_name' : 'external_field_name', or val('external_field_name')
+ 'openerp_field_id/id' : ref(TABLE_1, 'external_id_field'), #make the mapping between the external id and the xml on the right
+ 'openerp_field2_id/id_parent' : ref(TABLE_1,'external_id_field') #indicate a self dependencies on openerp_field2_id
+ 'state' : map_val('state_equivalent_field', mapping), # use get_state_map to make the mapping between the value of the field and the value of the state
+ 'text_field' : concat('field_1', 'field_2', .., delimiter=':'), #concat the value of the list of field in one
+ 'description_field' : ppconcat('field_1', 'field_2', .., delimiter='\n\t'), #same as above but with a prettier formatting
+ 'field' : call(callable, arg1, arg2, ..), #call the function with all the value, the function should send the value : self.callable
+ 'field' : callable
+ 'field' : call(method, val('external_field') interface of method is self, val where val is the value of the field
+ 'field' : const(value) #always set this field to value
+ + any custom mapper that you will define
+ }
+ },
+
+ }
+ """
+ return {}
+
+ def default_hook(self, val):
+ """
+ this hook will be apply on each table that don't have hook
+ here we define the identity hook
+ """
+ return val
+
+ def _import_table(self, table):
+ data = self.get_data(table)
+ map = self.get_mapping()[table]['map']
+ hook = self.get_mapping()[table].get('hook', self.default_hook)
+ model = self.get_mapping()[table]['model']
+
+ final_data = []
+ for val in data:
+ res = hook(val)
+ if res:
+ final_data.append(res)
+ return self._save_data(model, dict(map), final_data, table)
+
+ def _save_data(self, model, mapping, datas, table):
+ """
+ @param model: the model of the object to import
+ @param table : the external table where the data come from
+ @param mapping : definition of the mapping
+ @see: get_mapping
+ @param datas : list of dictionnaries
+ datas = [data_1, data_2, ..]
+ data_i is a map external field_name => value
+ and each data_i have a external id => in data_id['id']
+ """
+ if not datas:
+ return (0, 'No data in this table')
+ mapping['id'] = 'id_new'
+ res = []
+
+
+ self_dependencies = []
+ for k in mapping.keys():
+ if '_parent' in k:
+ self_dependencies.append((k[:-7], mapping.pop(k)))
+
+ for data in datas:
+ for k, field_name in self_dependencies:
+ data[k] = data.get(field_name) and self._generate_xml_id(data.get(field_name), table)
+
+ data['id_new'] = self._generate_xml_id(data['id'], table)
+ fields, values = self._fields_mapp(data, mapping, table)
+ res.append(values)
+
+ model_obj = self.obj.pool.get(model)
+ if not model_obj:
+ raise ValueError("%s is not a valid model name" % model)
+
+ (p, r, warning, s) = model_obj.import_data(self.cr, self.uid, fields, res, mode='update', current_module=self.module_name, noupdate=True, context=self.context)
+ for (field, field_name) in self_dependencies:
+ self._import_self_dependencies(model_obj, field, datas)
+ return (len(res), warning)
+
+ def _import_self_dependencies(self, obj, parent_field, datas):
+ """
+ @param parent_field: the name of the field that generate a self_dependencies, we call the object referenced in this
+ field the parent of the object
+ @param datas: a list of dictionnaries
+ Dictionnaries need to contains
+ id_new : the xml_id of the object
+ field_new : the xml_id of the parent
+ """
+ fields = ['id', parent_field]
+ for data in datas:
+ if data.get(parent_field):
+ values = [data['id_new'], data[parent_field]]
+ obj.import_data(self.cr, self.uid, fields, [values], mode='update', current_module=self.module_name, noupdate=True, context=self.context)
+
+ def _preprocess_mapping(self, mapping):
+ """
+ Preprocess the mapping :
+ after the preprocces, everything is
+ callable in the val of the dictionary
+
+ use to allow syntaxical sugar like 'field': 'external_field'
+ instead of 'field' : value('external_field')
+ """
+ map = dict(mapping)
+ for key, value in map.items():
+ if isinstance(value, basestring):
+ map[key] = mapper.value(value)
+ #set parent for instance of dbmapper
+ elif isinstance(value, mapper.dbmapper):
+ value.set_parent(self)
+ return map
+
+
+ def _fields_mapp(self,dict_sugar, openerp_dict, table):
+ """
+ call all the mapper and transform data
+ to be compatible with import_data
+ """
+ fields=[]
+ data_lst = []
+ mapping = self._preprocess_mapping(openerp_dict)
+ for key,val in mapping.items():
+ if key not in fields and dict_sugar:
+ fields.append(key)
+ value = val(dict(dict_sugar))
+ data_lst.append(value)
+ return fields, data_lst
+
+ def _generate_xml_id(self, name, table):
+ """
+ @param name: name of the object, has to be unique in for a given table
+ @param table : table where the record we want generate come from
+ @return: a unique xml id for record, the xml_id will be the same given the same table and same name
+ To be used to avoid duplication of data that don't have ids
+ """
+ sugar_instance = self.instance_name
+ name = name.replace('.', '_').replace(',', '_')
+ return sugar_instance + "_" + table + "_" + name
+
+
+ """
+ Public interface of the framework
+ those function can be use in the callable function defined in the mapping
+ """
+ def xml_id_exist(self, table, external_id):
+ """
+ Check if the external id exist in the openerp database
+ in order to check if the id exist the table where it come from
+ should be provide
+ @return the xml_id generated if the external_id exist in the database or false
+ """
+ if not external_id:
+ return False
+
+ xml_id = self._generate_xml_id(external_id, table)
+ id = self.obj.pool.get('ir.model.data').search(self.cr, self.uid, [('name', '=', xml_id), ('module', '=', self.module_name)])
+ return id and xml_id or False
+
+ def name_exist(self, table, name, model):
+ """
+ Check if the object with the name exist in the openerp database
+ in order to check if the id exist the table where it come from
+ should be provide and the model of the object
+ """
+ fields = ['name']
+ data = [name]
+ return self.import_object(fields, data, model, table, name, [('name', '=', name)])
+
+ def get_mapped_id(self, table, external_id, context=None):
+ """
+ @return return the databse id linked with the external_id
+ """
+ if not external_id:
+ return False
+
+ xml_id = self._generate_xml_id(external_id, table)
+ return self.obj.pool.get('ir.model.data').get_object_reference(self.cr, self.uid, self.module_name, xml_id)[1]
+
+ def import_object_mapping(self, mapping, data, model, table, name, domain_search=False):
+ """
+ same as import_objects but instead of two list fields and data,
+ this method take a dictionnaries : external_field : value
+ and the mapping similar to the one define in 'map' key
+ @see import_object, get_mapping
+ """
+ fields, datas = self._fields_mapp(data, mapping, table)
+ return self.import_object(fields, datas, model, table, name, domain_search)
+
+ def import_object(self, fields, data, model, table, name, domain_search=False):
+ """
+ This method will import an object in the openerp, usefull for field that is only a char in sugar and is an object in openerp
+ use import_data that will take care to create/update or do nothing with the data
+ this method return the xml_id
+
+ To be use, when you want to create an object or link if already exist
+ use DO_NOT_LINK_DOMAIN to create always a new object
+ @param fields: list of fields needed to create the object without id
+ @param data: the list of the data, in the same order as the field
+ ex : fields = ['firstname', 'lastname'] ; data = ['John', 'Mc donalds']
+ @param model: the openerp's model of the create/update object
+ @param table: the table where data come from in sugarcrm, no need to fit the real name of openerp name, just need to be unique
+ @param unique_name: the name of the object that we want to create/update get the id
+ @param domain_search : the domain that should find the unique existing record
+
+ @return: the xml_id of the ressources
+ """
+ domain_search = not domain_search and [('name', 'ilike', name)] or domain_search
+ obj = self.obj.pool.get(model)
+ xml_id = self._generate_xml_id(name, table)
+ xml_ref = self.mapped_id_if_exist(model, domain_search, table, name)
+ fields.append('id')
+ data.append(xml_id)
+ obj.import_data(self.cr, self.uid, fields, [data], mode='update', current_module=self.module_name, noupdate=True, context=self.context)
+ return xml_ref or xml_id
+
+
+ def mapped_id_if_exist(self, model, domain, table, name):
+ """
+ To be use when we want link with and existing object, if the object don't exist
+ just ignore.
+ @param domain : search domain to find existing record, should return a unique record
+ @param xml_id: xml_id give to the mapping
+ @param name: external_id or name of the object to create if there is no id
+ @param table: the name of the table of the object to map
+ @return : the xml_id if the record exist in the db, False otherwise
+ """
+ obj = self.obj.pool.get(model)
+ ids = obj.search(self.cr, self.uid, domain, context=self.context)
+ if ids:
+ xml_id = self._generate_xml_id(name, table)
+ ir_model_data_obj = obj.pool.get('ir.model.data')
+ id = ir_model_data_obj._update(self.cr, self.uid, model,
+ self.module_name, {}, mode='update', xml_id=xml_id,
+ noupdate=True, res_id=ids[0], context=self.context)
+ return xml_id
+ return False
+
+
+ def set_table_list(self, table_list):
+ """
+ Set the list of table to import, this method should be call before run
+ @param table_list: the list of external table to import
+ ['Leads', 'Opportunity']
+ """
+ self.table_list = table_list
+
+ def run(self):
+ """
+ Import all data into openerp,
+ this is the Entry point to launch the process of import
+
+
+ """
+ self.data_started = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
+ self.cr = pooler.get_db(self.cr.dbname).cursor()
+ try:
+ result = []
+ imported = set() #to invoid importing 2 times the sames modules
+ for table in self.table_list:
+ to_import = self.get_mapping()[table].get('import', True)
+ if not table in imported:
+ res = self._resolve_dependencies(self.get_mapping()[table].get('dependencies', []), imported)
+ result.extend(res)
+ if to_import:
+ (position, warning) = self._import_table(table)
+ result.append((table, position, warning))
+ imported.add(table)
+ self.cr.commit()
+
+ finally:
+ self.cr.close()
+ self.date_ended = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
+ self._send_notification_email(result)
+
+
+ def _resolve_dependencies(self, dep, imported):
+ """
+ import dependencies recursively
+ and avoid to import twice the same table
+ """
+ result = []
+ for dependency in dep:
+ if not dependency in imported:
+ to_import = self.get_mapping()[dependency].get('import', True)
+ res = self._resolve_dependencies(self.get_mapping()[dependency].get('dependencies', []), imported)
+ result.extend(res)
+ if to_import:
+ r = self._import_table(dependency)
+ (position, warning) = r
+ result.append((dependency, position, warning))
+ imported.add(dependency)
+ return result
+
+ def _send_notification_email(self, result):
+ if not self.email:
+ return
+ tools.email_send(
+ 'import_sugarcrm@module.openerp',
+ self.email,
+ self.get_email_subject(result),
+ self.get_email_body(result),
+ )
+ logger = logging.getLogger('import_sugarcam')
+ logger.info("Import finished, notification email sended")
+
+ def get_email_subject(self, result):
+ """
+ This method define the subject of the email send by openerp at the end of import
+ @param result: a list of tuple
+ (table_name, number_of_record_created/updated, warning) for each table
+ @return the subject of the mail
+
+ """
+ return "Import of your data finished at %s" % self.date_ended
+
+ def get_email_body(self, result):
+ """
+ This method define the body of the email send by openerp at the end of import. The body is separated in two part
+ the header (@see get_body_header), and the generate body with the list of table and number of record imported.
+ If you want to keep this it's better to overwrite get_body_header
+ @param result: a list of tuple
+ (table_name, number_of_record_created/updated, warning) for each table
+ @return the subject of the mail
+
+ """
+
+ body = "started at %s and finished at %s \n" % (self.data_started, self.date_ended)
+ for (table, nb, warning) in result:
+ if not warning:
+ warning = "with no warning"
+ else:
+ warning = "with warning : %s" % warning
+ body += "%s records were imported from table %s, %s \n" % (nb, table, warning)
+ return self.get_body_header(result) + "\n\n" + body
+
+ def get_body_header(self, result):
+ """
+ @return the first sentences written in the mail's body
+ """
+ return "The import of data \n instance name : %s \n" % self.instance_name
+
+#For example of use see import_sugarcrm
diff --git a/addons/import_base/mapper.py b/addons/import_base/mapper.py
new file mode 100644
index 00000000000..7f97ed0b615
--- /dev/null
+++ b/addons/import_base/mapper.py
@@ -0,0 +1,173 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+
+class mapper(object):
+ """
+ super class for all mapper class
+ They are call before import data
+ to transform the mapping into real value that we
+ will import
+
+ the call function receive a dictionary with external data
+ 'external_field' : value
+ """
+ def __call__(self, external_values):
+ raise NotImplementedError()
+
+class dbmapper(mapper):
+ """
+ Super class for mapper that need to access to
+ data base or any function of the import_framework
+
+ self.parent contains a reference to the instance of
+ the import framework
+ """
+ def set_parent(self, parent):
+ self.parent = parent
+
+
+class concat(mapper):
+ """
+ Use : contact('field_name1', 'field_name2', delimiter='_')
+ concat value of fields using the delimiter, delimiter is optional
+ and by default is a space
+
+ """
+ def __init__(self, *arg, **delimiter):
+ self.arg = arg
+ self.delimiter = delimiter and delimiter.get('delimiter', ' ') or ' '
+
+ def __call__(self, external_values):
+ return self.delimiter.join(map(lambda x : external_values.get(x,''), self.arg))
+
+class ppconcat(mapper):
+ """
+ Use : contact('field_name1', 'field_name2', delimiter='_')
+ concat external field name and value of fields using the delimiter,
+ delimiter is optional and by default is a two line feeds
+
+ """
+ def __init__(self, *arg, **delimiter):
+ self.arg = arg
+ self.delimiter = delimiter and delimiter.get('delimiter', ' ') or '\n\n'
+
+ def __call__(self, external_values):
+ return self.delimiter.join(map(lambda x : x + ": " + external_values.get(x,''), self.arg))
+
+class const(mapper):
+ """
+ Use : const(arg)
+ return always arg
+ """
+ def __init__(self, val):
+ self.val = val
+
+ def __call__(self, external_values):
+ return self.val
+
+class value(mapper):
+ """
+ Use : value(external_field_name)
+ Return the value of the external field name
+ this is equivalent to the a single string
+
+ usefull for call if you want your call get the value
+ and don't care about the name of the field
+ call(self.method, value('field1'))
+ """
+ def __init__(self, val, default='', fallback=False):
+ self.val = val
+ self.default = default
+ self.fallback = fallback
+
+ def __call__(self, external_values):
+ val = external_values.get(self.val, self.default)
+ if self.fallback and (not val or val == self.default):
+ val = external_values.get(self.fallback, self.default)
+ return val
+
+
+
+class map_val(mapper):
+ """
+ Use : map_val(external_field, val_mapping)
+ where val_mapping is a dictionary
+ with external_val : openerp_val
+
+ usefull for selection field like state
+ to map value
+ """
+ def __init__(self, val, map, default='draft'):
+ self.val = value(val)
+ self.map = map
+ self.default = default
+
+ def __call__(self, external_values):
+ return self.map.get(self.val(external_values), self.default)
+
+class ref(dbmapper):
+ """
+ Use : ref(table_name, external_id)
+ return the xml_id of the ressource
+
+ to associate an already imported object with the current object
+ """
+ def __init__(self, table, field_name):
+ self.table = table
+ self.field_name = field_name
+
+ def __call__(self, external_values):
+ return self.parent.xml_id_exist(self.table, external_values.get(self.field_name))
+
+class refbyname(dbmapper):
+ """
+ Use : refbyname(table_name, external_name, res.model)
+ same as ref but use the name of the ressource to find it
+ """
+ def __init__(self, table, field_name, model):
+ self.table = table
+ self.field_name = field_name
+ self.model = model
+
+ def __call__(self, external_values):
+ v = external_values.get(self.field_name, '')
+ return self.parent.name_exist(self.table, v , self.model)
+
+class call(mapper):
+ """
+ Use : call(function, arg1, arg2)
+ to call the function with external val follow by the arg specified
+ """
+ def __init__(self, fun, *arg):
+ self.fun = fun
+ self.arg = arg
+
+ def __call__(self, external_values):
+ args = []
+ for arg in self.arg:
+ if isinstance(arg, mapper):
+ args.append(arg(external_values))
+ else:
+ args.append(arg)
+ return self.fun(external_values, *args)
+
+
\ No newline at end of file
diff --git a/addons/import_google/__init__.py b/addons/import_google/__init__.py
new file mode 100644
index 00000000000..7ca8ce67ab3
--- /dev/null
+++ b/addons/import_google/__init__.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import partner
+import wizard
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/import_google/__openerp__.py b/addons/import_google/__openerp__.py
new file mode 100644
index 00000000000..f1ab89a041d
--- /dev/null
+++ b/addons/import_google/__openerp__.py
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+{
+ 'name': 'Google Import',
+ 'version': '1.0',
+ 'category': 'Generic Modules/Others',
+ 'description': """The module adds google contact in partner address and add google calendar events details in Meeting""",
+ 'author': 'OpenERP SA',
+ 'website': 'http://www.openerp.com',
+ 'depends': ['base', 'google_base_account','crm'],
+ 'init_xml': [],
+ 'update_xml': ['security/ir.model.access.csv',
+ 'sync_google_calendar_view.xml',
+ 'wizard/import_google_data_view.xml',
+ 'wizard/google_import_message_view.xml'
+
+ ],
+ 'demo_xml': [],
+ 'test': [
+ #'test/test_sync_google_contact_import_partner.yml',
+ # 'test/test_sync_google_contact_import_address.yml',
+ #'test/test_sync_google_calendar.yml',
+ ],
+ 'installable': True,
+ 'active': False,
+ 'certificate': '',
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/import_google/partner.py b/addons/import_google/partner.py
new file mode 100644
index 00000000000..232f18d06a3
--- /dev/null
+++ b/addons/import_google/partner.py
@@ -0,0 +1,31 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import fields,osv
+
+class crm_case_categ(osv.osv):
+ """ Category of Case """
+ _inherit = "crm.case.categ"
+ _columns = {
+ 'user_id': fields.many2one('res.users', 'User')
+ }
+crm_case_categ()
+# vim:expandtab:smartindent:toabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/import_google/security/ir.model.access.csv b/addons/import_google/security/ir.model.access.csv
new file mode 100644
index 00000000000..50b689efa69
--- /dev/null
+++ b/addons/import_google/security/ir.model.access.csv
@@ -0,0 +1,5 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_res_users_partner_manager","google.res.partner.manager","base.model_ir_model_data","base.group_partner_manager",1,1,1,0
+"access_ir_model_data_partner_manager","ir.model.data.partner.manager","base.model_res_users","base.group_partner_manager",1,1,0,0
+"access_google_import_message_partner_manager","google.import.message.partner.manager","model_google_import_message","base.group_partner_manager",1,1,0,0
+
diff --git a/addons/import_google/sync_google_calendar_view.xml b/addons/import_google/sync_google_calendar_view.xml
new file mode 100644
index 00000000000..58e1e55efd0
--- /dev/null
+++ b/addons/import_google/sync_google_calendar_view.xml
@@ -0,0 +1,32 @@
+
+
+
+
+ CRM - Meetings Form (Inherited)
+ crm.meeting
+ form
+
+
+
+
+
+
+
+
+
+ CRM - Meetings Tree (Inherited)
+ crm.meeting
+ tree
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/import_google/test/test_sync_google_calendar.yml b/addons/import_google/test/test_sync_google_calendar.yml
new file mode 100644
index 00000000000..28863f358bb
--- /dev/null
+++ b/addons/import_google/test/test_sync_google_calendar.yml
@@ -0,0 +1,36 @@
+-
+ In order to test google calendar feature with OpenERP, I import events from
+ a google account and store them in Meetings.
+- |
+ I create a record for the gmail account for which I want to import the contacts.
+-
+ !record {model: google.login, id: google_login_id0}:
+ user: testmail.openerp@gmail.com
+ password: openerptiny
+- |
+ I login into that account.
+-
+ !python {model: google.login}: |
+ self.login(cr, uid, [ref('google_login_id0')], context)
+- |
+ Now I want to import all the events from all the calendars in the user account.
+- |
+ I select all calendars.
+-
+ !record {model: synchronize.google.import, id: synchronize_google_import_id0}:
+ calendar_name: all
+- |
+ I import the events from the google calendar.
+-
+ !python {model: synchronize.google.import}: |
+ self.import_google(cr, uid, [ref('synchronize_google_import_id0')], context={'calendar':True})
+- |
+ Now I check my meetings are created or not.
+-
+ !python {model: crm.meeting}: |
+ model_obj = self.pool.get('ir.model.data')
+ meeting_ids = self.search(cr, uid, [])
+ model_ids = model_obj.search(cr, uid, [('res_id','in',meeting_ids),('model','=','crm.meeting'),('module','=','synchronize_google')])
+ assert model_ids, 'Meetings not created !'
+
+
diff --git a/addons/import_google/test/test_sync_google_contact_import_address.yml b/addons/import_google/test/test_sync_google_contact_import_address.yml
new file mode 100644
index 00000000000..b1a8f9a2e09
--- /dev/null
+++ b/addons/import_google/test/test_sync_google_contact_import_address.yml
@@ -0,0 +1,34 @@
+-
+ In order to test Importing contacts from any google account into OpenERP,
+ I use a gmail account and import the contact details and store them as Partner addresses.
+- |
+ I create a record for the gmail account for which I want to import the contacts.
+-
+ !record {model: google.login, id: google_login_id0}:
+ user: testmail.openerp@gmail.com
+ password: openerptiny
+- |
+ I login into that account.
+-
+ !python {model: google.login}: |
+ self.login(cr, uid, [ref('google_login_id0')], context)
+- |
+ Now I select from which group I want to get the contact details.
+-
+ !record {model: synchronize.google.import, id: synchronize_google_import_id0}:
+ create_partner: create_address
+ group_name: all
+ calendar_name: all
+- |
+ I import the contacts and I also check if the contact already exists in db and updates the address.
+-
+ !python {model: synchronize.google.import}: |
+ self.import_google(cr, uid, [ref('synchronize_google_import_id0')], context={'contact':True})
+- |
+ I check whether the Contacts are created in Partner address or not.
+-
+ !python {model: res.partner.address}: |
+ addr_obj = self.pool.get('ir.model.data')
+ data_ids = addr_obj.search(cr, uid, [('model','=','res.partner.address'),('module','=','synchronize_google')])
+ assert data_ids, 'Addresses not created !'
+
\ No newline at end of file
diff --git a/addons/import_google/test/test_sync_google_contact_import_partner.yml b/addons/import_google/test/test_sync_google_contact_import_partner.yml
new file mode 100644
index 00000000000..4eadbf0f100
--- /dev/null
+++ b/addons/import_google/test/test_sync_google_contact_import_partner.yml
@@ -0,0 +1,36 @@
+-
+ In order to test Importing contacts from any google account into OpenERP,
+ I use a gmail account and import the contact details and create Partners.
+- |
+ I create a record for the gmail account for which I want to import the contacts.
+-
+ !record {model: google.login, id: google_login_id1}:
+ user: testmail.openerp@gmail.com
+ password: openerptiny
+- |
+ I login into that account.
+-
+ !python {model: google.login}: |
+ self.login(cr, uid, [ref('google_login_id1')], context)
+- |
+ Now I select from which group I want to get the contact details and I want to create partner for all contacts.
+-
+ !record {model: synchronize.google.import, id: synchronize_google_import_id1}:
+ create_partner: create_all
+ group_name: all
+- |
+ I import the contacts.
+-
+ !python {model: synchronize.google.import}: |
+ self.import_google(cr, uid, [ref('synchronize_google_import_id1')], context={'contact':True})
+- |
+ I check whether the Partners are created or not.
+-
+ !python {model: res.partner.address }: |
+ addr_obj = self.pool.get('ir.model.data')
+ addr_ids = addr_obj.search(cr, uid, [])
+ data_ids = addr_obj.search(cr, uid, [('model','=','res.partner.address'),('module','=','synchronize_google')])
+ address_ids = map(lambda x: x.res_id, [child for child in addr_obj.browse(cr, uid, data_ids) if child.res_id])
+ partner_ids = map(lambda x: x.partner_id.id, [addr for addr in self.browse(cr, uid, address_ids) if addr.partner_id])
+ assert partner_ids, 'Partners not created !'
+
\ No newline at end of file
diff --git a/addons/import_google/wizard/__init__.py b/addons/import_google/wizard/__init__.py
new file mode 100644
index 00000000000..41c118a0ef3
--- /dev/null
+++ b/addons/import_google/wizard/__init__.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+import import_google
+import import_google_data
+import google_import_message
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/import_google/wizard/google_import_message.py b/addons/import_google/wizard/google_import_message.py
new file mode 100644
index 00000000000..5e2b2b6f4b1
--- /dev/null
+++ b/addons/import_google/wizard/google_import_message.py
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import osv
+from osv import fields
+
+
+class google_import_message(osv.osv):
+ """Import Message"""
+
+ _name = "google.import.message"
+ _description = "Import Message"
+ _columns = {
+ 'name': fields.text('Message', readonly=True),
+ }
+
+ def default_get(self, cr, uid, fields, context=None):
+ if context == None:
+ context = {}
+ res = super(google_import_message, self).default_get(cr, uid, fields, context=context)
+ res.update({'name': context.get('message')})
+ return res
+
+google_import_message()
diff --git a/addons/import_google/wizard/google_import_message_view.xml b/addons/import_google/wizard/google_import_message_view.xml
new file mode 100644
index 00000000000..0ea8b15f286
--- /dev/null
+++ b/addons/import_google/wizard/google_import_message_view.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ google.import.message.form
+ google.import.message
+ form
+
+
+
+
+
+
diff --git a/addons/import_google/wizard/import_google.py b/addons/import_google/wizard/import_google.py
new file mode 100644
index 00000000000..87155c806c6
--- /dev/null
+++ b/addons/import_google/wizard/import_google.py
@@ -0,0 +1,355 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import re
+import urllib
+import dateutil
+import pytz
+from dateutil import *
+from pytz import timezone
+from datetime import datetime
+import time
+from osv import *
+try:
+ import gdata
+ import gdata.contacts.service
+ import gdata.calendar.service
+ import gdata.contacts
+ import gdata.calendar
+except ImportError:
+ raise osv.except_osv(_('Google Contacts Import Error!'), _('Please install gdata-python-client from http://code.google.com/p/gdata-python-client/downloads/list'))
+from import_base.import_framework import *
+from import_base.mapper import *
+
+class google_import(import_framework):
+
+ gd_client = False
+ calendars = False
+ contact = False
+ DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S"
+ TABLE_CONTACT = 'Contact'
+ TABLE_ADDRESS ='Address'
+ TABLE_EVENT = 'Events'
+
+ def initialize(self):
+ google = self.obj.pool.get('google.login')
+ self.external_id_field = 'Id'
+ self.gd_client = google.google_login(self.context.get('user'),
+ self.context.get('password'),
+ self.context.get('instance'))
+
+ if self.context.get('instance') and self.context.get('instance') == 'contact':
+ self.contact = self.context.get('contact')
+ if self.context.get('instance') and self.context.get('instance') == 'calendar':
+ self.calendars = self.context.get('calendars')
+
+ def get_mapping(self):
+ return {
+ self.TABLE_EVENT: self.get_event_mapping(),
+ self.TABLE_CONTACT: self.get_contact_mapping(),
+ self.TABLE_ADDRESS: self.get_address_mapping(),
+ }
+
+ def get_data(self, table):
+ data_fetching_function = {
+ self.TABLE_CONTACT: self.get_contact,
+ self.TABLE_ADDRESS: self.get_contact,
+ self.TABLE_EVENT: self.get_events,
+ }
+
+ return data_fetching_function.get(table)()
+
+
+ def _get_tinydates(self, stime, etime, au_tz):
+ stime = dateutil.parser.parse(stime)
+ etime = dateutil.parser.parse(etime)
+ try:
+ au_dt = au_tz.normalize(stime.replace(tzinfo=pytz.utc).astimezone(au_tz))
+ timestring = datetime.datetime(*au_dt.timetuple()[:6]).strftime('%Y-%m-%d %H:%M:%S')
+ au_dt = au_tz.normalize(etime.replace(tzinfo=pytz.utc).astimezone(au_tz))
+ timestring_end = datetime.datetime(*au_dt.timetuple()[:6]).strftime('%Y-%m-%d %H:%M:%S')
+ except:
+ timestring = datetime.datetime(*stime.timetuple()[:6]).strftime('%Y-%m-%d %H:%M:%S')
+ timestring_end = datetime.datetime(*etime.timetuple()[:6]).strftime('%Y-%m-%d %H:%M:%S')
+ return (timestring, timestring_end)
+
+ def _get_rules(self, datas):
+ new_val = {}
+ if datas['FREQ'] == 'WEEKLY' and datas.get('BYDAY'):
+ for day in datas['BYDAY'].split(','):
+ new_val[day.lower()] = True
+ datas.pop('BYDAY')
+
+ if datas.get('UNTIL'):
+ until = parser.parse(''.join((re.compile('\d')).findall(datas.get('UNTIL'))))
+ new_val['end_date'] = until.strftime('%Y-%m-%d')
+ new_val['end_type'] = 'end_date'
+ datas.pop('UNTIL')
+
+ if datas.get('COUNT'):
+ new_val['count'] = datas.get('COUNT')
+ new_val['end_type'] = 'count'
+ datas.pop('COUNT')
+
+ if datas.get('INTERVAL'):
+ new_val['interval'] = datas.get('INTERVAL')
+ else:
+ new_val['interval'] = 1
+
+ if datas.get('BYMONTHDAY'):
+ new_val['day'] = datas.get('BYMONTHDAY')
+ datas.pop('BYMONTHDAY')
+ new_val['select1'] = 'date'
+
+ if datas.get('BYDAY'):
+ d = datas.get('BYDAY')
+ if '-' in d:
+ new_val['byday'] = d[:2]
+ new_val['week_list'] = d[2:4].upper()
+ else:
+ new_val['byday'] = d[:1]
+ new_val['week_list'] = d[1:3].upper()
+ new_val['select1'] = 'day'
+
+ if datas.get('BYMONTH'):
+ new_val['month_list'] = datas.get('BYMONTH')
+ datas.pop('bymonth')
+ return new_val
+
+
+ def _get_repeat_status(self, str_google):
+ rrule = str_google[str_google.find('FREQ'):str_google.find('\nBEGIN')]
+ status = {}
+ for rule in rrule.split(';'):
+ status[rule.split('=')[0]] = rule.split('=')[-1:] and rule.split('=')[-1:][0] or ''
+ rules = self._get_rules(status)
+ if status.get('FREQ') == 'WEEKLY':
+ status.update({'rrule_type': 'weekly'})
+ status.pop('FREQ')
+ elif status.get('FREQ') == 'DAILY':
+ status.update({'rrule_type': 'daily'})
+ status.pop('FREQ')
+ elif status.get('FREQ') == 'MONTHLY':
+ status.update({'rrule_type': 'monthly'})
+ status.pop('FREQ')
+ elif status.get('FREQ') == 'YEARLY':
+ status.update({'rrule_type': 'yearly'})
+ status.pop('FREQ')
+ status.update(rules)
+ return status
+
+
+ def _get_repeat_dates(self, x):
+ if len(x) > 4:
+ if x[3].startswith('BY'):
+ zone_time = x[4].split('+')[-1:][0].split(':')[0][:4]
+ else:
+ zone_time = x[3].split('+')[-1:][0].split(':')[0][:4]
+ else:
+ zone_time = x[2].split('+')[-1:][0].split(':')[0][:4]
+ tz_format = zone_time[:2]+':'+zone_time[2:]
+ repeat_start = x[1].split('\n')[0].split(':')[1]
+ repeat_end = x[2].split('\n')[0].split(':')[1]
+ o = repeat_start.split('T')
+ repeat_start = str(o[0][:4]) + '-' + str(o[0][4:6]) + '-' + str(o[0][6:8])
+ if len(o) == 2:
+ repeat_start += ' ' + str(o[1][:2]) + ':' + str(o[1][2:4]) + ':' + str(o[1][4:6])
+ else:
+ repeat_start += ' ' + '00' + ':' + '00' + ':' + '00'
+ p = repeat_end.split('T')
+ repeat_end = str(p[0][:4]) + '-' + str(p[0][4:6]) + '-' + str(p[0][6:8])
+ if len(p) == 2:
+ repeat_end += ' ' + str(p[1][:2]) + ':' + str(p[1][2:4]) + ':' + str(p[1][4:6])
+ else:
+ repeat_end += ' ' + '00' + ':' + '00' + ':' + '00'
+ return (repeat_start, repeat_end, tz_format)
+
+ def get_events(self):
+ if 'tz' in self.context and self.context['tz']:
+ time_zone = self.context['tz']
+ else:
+ time_zone = tools.get_server_timezone()
+ au_tz = timezone(time_zone)
+ event_vals = []
+ for cal in self.calendars:
+ events_query = gdata.calendar.service.CalendarEventQuery(user=urllib.unquote(cal.split('/')[~0]))
+ events_query.start_index = 1
+ events_query.max_results = 1000
+ event_feed = self.gd_client.GetCalendarEventFeed(events_query.ToUri())
+ for feed in event_feed.entry:
+ event = {
+ 'recurrency': False,
+ 'end_date' : False,
+ 'end_type' : False,
+ 'byday': 0,
+ 'count' : 0,
+ 'interval': 1,
+ 'day': False,
+ 'select1': False,
+ 'week_list': "",
+ 'month_list': False,
+ 'rrule_type': False,
+ }
+
+ timestring = timestring_end = datetime.datetime.now().strftime(self.DATETIME_FORMAT)
+ if feed.when:
+ timestring, timestring_end = self._get_tinydates(feed.when[0].start_time, feed.when[0].end_time, au_tz)
+ else:
+ x = feed.recurrence.text.split(';')
+ repeat_status = self._get_repeat_status(feed.recurrence.text)
+ repeat_start, repeat_end, zone_time = self._get_repeat_dates(x)
+ timestring = time.strftime('%Y-%m-%d %H:%M:%S', time.strptime(repeat_start, "%Y-%m-%d %H:%M:%S"))
+ timestring_end = time.strftime('%Y-%m-%d %H:%M:%S', time.strptime(repeat_end, "%Y-%m-%d %H:%M:%S"))
+ if repeat_status:
+ repeat_status.update({'recurrency': True})
+ event.update(repeat_status)
+
+ event.update({'id' : feed.id.text,
+ 'DateStart': timestring,
+ 'DateEnd': timestring_end,
+ 'Category':event_feed.title.text,
+ 'Name': feed.title.text or 'No title',
+ 'Description': feed.content.text,
+ })
+ event_vals.append(event)
+ return event_vals
+
+
+ def get_event_category(self, val, name):
+ fields = ['name', 'object_id']
+ nameid = 'event_category_'+name
+ data = [name, 'crm.meeting']
+ return self.import_object(fields, data, 'crm.case.categ', "crm_case_categ", nameid, [('name', 'ilike', name)])
+
+ def get_rec(self, val):
+ if val.get("recurrency"):
+ return "1"
+ return "0"
+
+ def get_event_mapping(self):
+ return {
+ 'model': 'crm.meeting',
+ 'map': {
+ 'id': 'id',
+ 'name': 'Name',
+ 'description': 'Description',
+ 'email_from': 'Email',
+ 'date': 'DateStart',
+ 'date_deadline': 'DateEnd',
+ 'categ_id/id': call(self.get_event_category, value('Category')),
+ 'recurrency': self.get_rec,
+ 'end_date' : 'end_date',
+ 'end_type' : 'end_type',
+ 'byday':'byday',
+ 'count' : 'count',
+ 'interval': 'interval',
+ 'day': 'day',
+ 'select1': 'date',
+ 'week_list': 'week_list',
+ 'month_list':'month_list',
+ 'rrule_type': 'rrule_type',
+ }
+ }
+
+
+ def get_contact(self):
+ table = self.context.get('table')[0]
+ datas = []
+ if self.context.get('group_name'):
+ query = gdata.contacts.service.ContactsQuery()
+ query.group = self.context.get('group_name')
+ self.contact = self.gd_client.GetContactsFeed(query.ToUri())
+ else:
+ self.contact = self.gd_client.GetContactsFeed()
+ while self.contact:
+ for entry in self.contact.entry:
+ data = {}
+ data['id'] = entry.id.text
+ name = tools.ustr(entry.title.text)
+ if name == "None":
+ name = entry.email[0].address
+ data['name'] = name
+ emails = ','.join(email.address for email in entry.email)
+ data['email'] = emails
+ if table == 'Contact':
+ data.update({'customer': str(self.context.get('customer')),
+ 'supplier': str(self.context.get('supplier'))})
+ if entry.organization:
+ if entry.organization.org_name:
+ data.update({'company': entry.organization.org_name.text})
+ if entry.organization.org_title:
+ data.update ({'function': entry.organization.org_title.text})
+ if entry.phone_number:
+ for phone in entry.phone_number:
+ if phone.rel == gdata.contacts.REL_WORK:
+ data['phone'] = phone.text
+ if phone.rel == gdata.contacts.PHONE_MOBILE:
+ data['mobile'] = phone.text
+ if phone.rel == gdata.contacts.PHONE_WORK_FAX:
+ data['fax'] = phone.text
+ datas.append(data)
+ next = self.contact.GetNextLink()
+ self.contact = next and self.gd_client.GetContactsFeed(next.href) or None
+ return datas
+
+
+
+ def get_contact_mapping(self):
+ return {
+ 'model': 'res.partner',
+ 'dependencies': [self.TABLE_ADDRESS],
+ 'map': {
+ 'id':'id',
+ 'name': value('company', fallback='name'),
+ 'customer': 'customer',
+ 'supplier': 'supplier',
+ 'address/id': ref(self.TABLE_ADDRESS, 'id'),
+ }
+ }
+
+ def get_partner_id(self, val):
+ partner_id = False
+ company_pool = self.obj.pool.get('res.partner')
+ if 'company' in val:
+ partner_ids = company_pool.search(self.cr, self.uid, [('name', '=', val.get('company'))])
+ return partner_ids and partner_ids[0] or False
+ contact = self.xml_id_exist(self.TABLE_CONTACT, val.get('id'))
+ if contact:
+ partner_id = self.get_mapped_id(self.TABLE_CONTACT, val.get('id'))
+ return partner_id
+
+ def get_address_mapping(self):
+ return {
+ 'model': 'res.partner.address',
+ 'dependencies': [],
+ 'map': {
+ 'id':'id',
+ 'partner_id/.id': self.get_partner_id,
+ 'name': 'name',
+ 'city': 'city',
+ 'phone': 'phone',
+ 'mobile': 'mobile',
+ 'email': 'email',
+ 'fax': 'fax',
+ 'function': 'function'
+ }
+
+ }
diff --git a/addons/import_google/wizard/import_google_data.py b/addons/import_google/wizard/import_google_data.py
new file mode 100644
index 00000000000..776cb578f08
--- /dev/null
+++ b/addons/import_google/wizard/import_google_data.py
@@ -0,0 +1,182 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+import datetime
+
+try:
+ import gdata
+ import gdata.contacts.service
+ import gdata.contacts
+except ImportError:
+ raise osv.except_osv(_('Google Contacts Import Error!'), _('Please install gdata-python-client from http://code.google.com/p/gdata-python-client/downloads/list'))
+from osv import fields
+from osv import osv
+from tools.translate import _
+from import_google import google_import
+
+
+class google_login_contact(osv.osv_memory):
+
+ _inherit = 'google.login'
+
+ def _get_next_action(self, cr, uid, context=None):
+ data_obj = self.pool.get('ir.model.data')
+ data_id = data_obj._get_id(cr, uid, 'import_google', 'view_synchronize_google_contact_import_form')
+ view_id = False
+ if context.get('contact'):
+ data_id = data_obj._get_id(cr, uid, 'import_google', 'view_synchronize_google_contact_import_form')
+ if context.get('calendar'):
+ data_id = data_obj._get_id(cr, uid, 'import_google', 'view_synchronize_google_calendar_import_form')
+ if data_id:
+ view_id = data_obj.browse(cr, uid, data_id, context=context).res_id
+ value = {
+ 'name': _('Import google'),
+ 'view_type': 'form',
+ 'view_mode': 'form,tree',
+ 'res_model': 'synchronize.google.import',
+ 'view_id': False,
+ 'context': context,
+ 'views': [(view_id, 'form')],
+ 'type': 'ir.actions.act_window',
+ 'target': 'new',
+ }
+ return value
+
+google_login_contact()
+
+class synchronize_google(osv.osv_memory):
+ _name = 'synchronize.google.import'
+
+ def _get_group(self, cr, uid, context=None):
+ user_obj = self.pool.get('res.users').browse(cr, uid, uid)
+ google=self.pool.get('google.login')
+ if not user_obj.gmail_user or not user_obj.gmail_password:
+ raise osv.except_osv(_('Warning !'), _("No Google Username or password Defined for user.\nPlease define in user view"))
+ gd_client = google.google_login(user_obj.gmail_user,user_obj.gmail_password,type='group')
+ if not gd_client:
+ return [('failed', 'Connection to google fail')]
+
+ res = []
+ query = gdata.contacts.service.GroupsQuery(feed='/m8/feeds/groups/default/full')
+ if gd_client:
+ groups = gd_client.GetFeed(query.ToUri())
+ for grp in groups.entry:
+ res.append((grp.id.text, grp.title.text))
+ res.append(('all','All Groups'))
+ return res
+
+ def _get_calendars(self, cr, uid, context=None):
+ user_obj = self.pool.get('res.users').browse(cr, uid, uid)
+ google = self.pool.get('google.login')
+ res = []
+ try:
+ gd_client = google.google_login(user_obj.gmail_user, user_obj.gmail_password, type='calendar')
+ calendars = gd_client.GetAllCalendarsFeed()
+ for cal in calendars.entry:
+ res.append((cal.id.text, cal.title.text))
+ except Exception, e:
+ return [('failed', 'Connection to google fail')]
+ res.append(('all', 'All Calendars'))
+ return res
+
+ _columns = {
+ 'create_partner': fields.selection([('create_all','Create partner for each contact'),('create_address','Import only address')],'Options'),
+ 'customer': fields.boolean('Customer', help="Check this box to set newly created partner as Customer."),
+ 'supplier': fields.boolean('Supplier', help="Check this box to set newly created partner as Supplier."),
+ 'group_name': fields.selection(_get_group, "Group Name", size=32,help="Choose which group to import, By default it takes all."),
+ 'calendar_name': fields.selection(_get_calendars, "Calendar Name", size=32),
+ }
+
+ _defaults = {
+ 'create_partner': 'create_all',
+ 'group_name': 'all',
+ 'calendar_name': 'all',
+ }
+
+ def import_google(self, cr, uid, ids, context=None):
+ if context == None:
+ context = {}
+ if not ids:
+ return {'type': 'ir.actions.act_window_close'}
+ obj = self.browse(cr, uid, ids, context=context)[0]
+ cust = obj.customer
+ sup = obj.supplier
+ tables=[]
+ user_obj = self.pool.get('res.users').browse(cr, uid, uid)
+
+ gmail_user = user_obj.gmail_user
+ gmail_pwd = user_obj.gmail_password
+ google = self.pool.get('google.login')
+ if not gmail_user or not gmail_pwd:
+ raise osv.except_osv(_('Error'), _("Invalid login detail !\n Specify Username/Password."))
+
+ if context.get('contact'):
+ msg = " You're Contact are import in background, a email will be send when the process is finished to %s"%(user_obj.gmail_user)
+ gd_client = google.google_login(gmail_user, gmail_pwd, type='contact')
+ if not gd_client:
+ raise osv.except_osv(_('Error'), _("Please specify correct user and password !"))
+ if obj.group_name not in ['all']:
+ context.update({ 'group_name': obj.group_name})
+ if obj.create_partner=='create_all':
+ tables.append('Contact')
+ else:
+ tables.append('Address')
+ context.update({'user': gmail_user,
+ 'password': gmail_pwd,
+ 'instance': 'contact',
+ 'table':tables,
+ 'customer':cust,
+ 'supplier':sup})
+
+ elif context.get('calendar'):
+ msg = " You're Meeting are import in background, a email will be send when the process is finished to %s"%(user_obj.gmail_user)
+
+ tables.append('Events')
+ current_rec = self.browse(cr, uid, ids, context=context)
+ calendars = False
+ for rec in current_rec:
+ if rec.calendar_name != 'all':
+ calendars = [rec.calendar_name]
+ else:
+ calendars = map(lambda x: x[0], [cal for cal in self._get_calendars(cr, uid, context) if cal[0] != 'all'])
+ context.update({'user': gmail_user,
+ 'password': gmail_pwd,
+ 'calendars': calendars,
+ 'instance': 'calendar'})
+ imp = google_import(self, cr, uid,'import_google' , "synchronize_google", gmail_user, context)
+ imp.set_table_list(tables)
+ imp.start()
+ context.update({'message': msg})
+ obj_model = self.pool.get('ir.model.data')
+ model_data_ids = obj_model.search(cr,uid,[('model','=','ir.ui.view'),('name','=','view_google_import_message_form')])
+ resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
+ return {
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'google.import.message',
+ 'views': [(resource_id,'form')],
+ 'type': 'ir.actions.act_window',
+ 'target': 'new',
+ 'context': context,
+ }
+
+synchronize_google()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/import_google/wizard/import_google_data_view.xml b/addons/import_google/wizard/import_google_data_view.xml
new file mode 100644
index 00000000000..b35e97645e7
--- /dev/null
+++ b/addons/import_google/wizard/import_google_data_view.xml
@@ -0,0 +1,91 @@
+
+
+
+
+ synchronize.base.form
+ synchronize.google.import
+ form
+
+
+
+
+
+
+
+
+ synchronize.google.calendar.form
+ synchronize.google.import
+ form
+
+
+
+
+
+
+ Import Google Calendar
+ ir.actions.act_window
+ google.login
+ form
+ form
+ new
+ {'calendar':True}
+
+
+
+
+ Import Google Contacts
+ ir.actions.act_window
+ google.login
+ form
+ form
+ new
+ {'contact':True}
+
+
+
+
+
+
+
+
+
diff --git a/addons/l10n_be/i18n/de.po b/addons/l10n_be/i18n/de.po
index a6dec54c06d..ca6658cb201 100644
--- a/addons/l10n_be/i18n/de.po
+++ b/addons/l10n_be/i18n/de.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-05-19 19:08+0000\n"
-"Last-Translator: Daniel Fai \n"
+"PO-Revision-Date: 2011-06-24 17:11+0000\n"
+"Last-Translator: Marco Dieckhoff \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-05-20 04:34+0000\n"
-"X-Generator: Launchpad (build 12959)\n"
+"X-Launchpad-Export-Date: 2011-06-25 04:58+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: l10n_be
#: field:partner.vat,test_xml:0
@@ -42,7 +42,7 @@ msgstr "Umsatzsteuernummer ist keinem Partner zugeordnet."
#. module: l10n_be
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
-msgstr ""
+msgstr "Fehler! Sie können keine rekursiven Unternehmen erzeugen."
#. module: l10n_be
#: code:addons/l10n_be/wizard/l10_be_partner_vat_listing.py:155
@@ -149,6 +149,7 @@ msgstr "Jährlicher Bericht über umsatzsteuerpflichtige Kunden"
#: model:ir.module.module,shortdesc:l10n_be.module_meta_information
msgid "Belgium - Plan Comptable Minimum Normalise"
msgstr ""
+"Belgien - Genormter minimaler Kontenrahmen (Plan Comptable Minimum Normalise)"
#. module: l10n_be
#: view:partner.vat.list:0
@@ -266,7 +267,7 @@ msgstr "Anzahl"
#. module: l10n_be
#: view:l1on_be.vat.declaration:0
msgid "Is Last Declaration"
-msgstr ""
+msgstr "Letzte Erklärung"
#. module: l10n_be
#: model:ir.model,name:l10n_be.model_partner_vat
@@ -304,7 +305,7 @@ msgstr ""
#. module: l10n_be
#: field:vat.listing.clients,turnover:0
msgid "Turnover"
-msgstr ""
+msgstr "Umsatz"
#. module: l10n_be
#: view:l1on_be.vat.declaration:0
diff --git a/addons/l10n_ch/invoice.py b/addons/l10n_ch/invoice.py
index af9beac55e0..4896931b77b 100644
--- a/addons/l10n_ch/invoice.py
+++ b/addons/l10n_ch/invoice.py
@@ -73,7 +73,7 @@ class account_invoice(osv.osv):
help='The partner bank account to pay\nKeep empty to use the default'
),
### Amount to pay
- 'amount_to_pay': fields.function(_amount_to_pay, method=True,
+ 'amount_to_pay': fields.function(_amount_to_pay,
type='float', string='Amount to be paid',
help='The amount which should be paid at the current date\n' \
'minus the amount which is already in payment order'),
diff --git a/addons/l10n_syscohada/__init__.py b/addons/l10n_syscohada/__init__.py
new file mode 100644
index 00000000000..ea9e9b47bc2
--- /dev/null
+++ b/addons/l10n_syscohada/__init__.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (C) 2010-2011 BAAMTU SARL ().
+# contact: leadsn@baamtu.com
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/l10n_syscohada/__openerp__.py b/addons/l10n_syscohada/__openerp__.py
new file mode 100644
index 00000000000..6cf85ed5f19
--- /dev/null
+++ b/addons/l10n_syscohada/__openerp__.py
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (C) 2010-2011 BAAMTU SARL ().
+# contact: leadsn@baamtu.com
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+{
+ "name" : "OHADA - The accounting chart ",
+ "version" : "1.0",
+ "author" : "Baamtu Senegal",
+ "category" : "Localisation/Account Charts",
+ "description": """This module implements the accounting chart for OHADA area.
+ It allows any company or association to manage its financial accounting.
+ Countries that use OHADA are the following:
+ Benin, Burkina Faso, Cameroon, Central African Republic, Comoros, Congo,
+ Ivory Coast, Gabon, Guinea, Guinea Bissau,
+ Equatorial Guinea, Mali, Niger, Replica of Democratic Congo, Senegal, Chad, Togo.
+ """,
+ "website": "http://www.baamtu.com",
+ "depends" : ["account", "base_vat"],
+ "demo_xml" : [],
+ "init_xml":[],
+ "update_xml" : ["l10n_syscohada_data.xml","l10n_syscohada_wizard.xml"],
+ "active": False,
+ "installable": True
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/l10n_syscohada/i18n/fr.po b/addons/l10n_syscohada/i18n/fr.po
new file mode 100644
index 00000000000..8a58faab1fa
--- /dev/null
+++ b/addons/l10n_syscohada/i18n/fr.po
@@ -0,0 +1,200 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * l10n_syscohada
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 5.0.0\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-05-09 10:31+0000\n"
+"PO-Revision-Date: 2011-06-20 13:17+0000\n"
+"Last-Translator: OpenERP Administrators \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-21 04:37+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: l10n_syscohada
+#: model:ir.actions.todo,note:l10n_syscohada.config_call_account_template_syscohada
+msgid ""
+"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
+"the name of the company, the chart template to follow, the no. of digits to "
+"generate the code for your accounts and Bank account, currency to create "
+"Journals. Thus,the pure copy of chart Template is generated.\n"
+"\tThis is the same wizard that runs from Financial "
+"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
+"Chart of Accounts from a Chart Template."
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_asset
+msgid "Asset"
+msgstr "Actifs"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_income
+msgid "Income"
+msgstr "Produits"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_payable
+msgid "Payable"
+msgstr "À payer"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_stocks
+msgid "Actif circulant"
+msgstr "Actif circulant"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_dettes
+msgid "Dettes long terme"
+msgstr "Dettes long terme"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_tax
+msgid "Tax"
+msgstr "Taxes"
+
+#. module: l10n_syscohada
+#: constraint:account.account.template:0
+msgid "Error ! You can not create recursive account templates."
+msgstr "Erreur ! Vous ne pouvez pas créer des modéles de comptes récursifs"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_provision
+msgid "Provisions"
+msgstr "Provisions"
+
+#. module: l10n_syscohada
+#: constraint:account.tax.code.template:0
+msgid "Error ! You can not create recursive Tax Codes."
+msgstr "Erreur ! Vous ne pouvez pas créer de codes de taxe récursifs"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_commitment
+msgid "Engagements"
+msgstr "Engagements"
+
+#. module: l10n_syscohada
+#: model:ir.module.module,description:l10n_syscohada.module_meta_information
+msgid "This module implementes the accounting chart for OHADA area."
+msgstr ""
+"Ce module implémente le plan comptable général du système comptable de la "
+"zone OHAHA"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_expense
+msgid "Expense"
+msgstr "Charges"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_receivable
+msgid "Receivable"
+msgstr "Recevable"
+
+#. module: l10n_syscohada
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères "
+"spéciaux !"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_immobilisations
+msgid "Immobilisations"
+msgstr "Immobilisations"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_equity
+msgid "Equity"
+msgstr "Capitaux propres"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_stock
+msgid "Stocks"
+msgstr "Stocks"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_cash
+msgid "Cash"
+msgstr "Liquidités"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_special
+msgid "Comptes spéciaux"
+msgstr "Comptes spéciaux"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_view
+msgid "View"
+msgstr "Vue"
+
+#. module: l10n_syscohada
+#: model:ir.module.module,shortdesc:l10n_syscohada.module_meta_information
+msgid "OHADA - Plan comptable général"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_cloture
+msgid "Cloture"
+msgstr "Clôture"
+
+#~ msgid "The journal must have centralised counterpart"
+#~ msgstr "Le journal attend une contrepartie centralisée"
+
+#~ msgid "Opening Entries Period"
+#~ msgstr "Période des écritures d'ouvertures"
+
+#~ msgid "Fiscal Year to close"
+#~ msgstr "Année fiscale à clôturer"
+
+#~ msgid "Generate Fiscal Year Opening Entries(Corrected)"
+#~ msgstr "Générer les écritures d'ouvertures d'exercice fiscal(Corrigé)"
+
+#~ msgid "Generated during fiscal year closing/opening process"
+#~ msgstr "Ecriture de report"
+
+#~ msgid "Opening Entries Journal"
+#~ msgstr "Journal des écritures d'ouverture"
+
+#~ msgid "The journal must have default credit and debit account"
+#~ msgstr "Le journal doit posséder un compte de crédit et débit par défaut"
+
+#~ msgid "Create entries"
+#~ msgstr "Créer les écritures"
+
+#~ msgid "Name of new entries"
+#~ msgstr "Nom des nouvelles entrées"
+
+#~ msgid "Closing of fiscal year cancelled, please check the box !"
+#~ msgstr "Clôture de l'exercice fiscal annulée, veuillez cocher la case !"
+
+#~ msgid "End of Fiscal Year Entry"
+#~ msgstr "Écriture de fin d'exercice fiscal"
+
+#~ msgid "The opening journal must not have any entry in the new fiscal year !"
+#~ msgstr ""
+#~ "Le journal d'ouverture ne doit pas contenir d'écriture dans le nouvel "
+#~ "exercice fiscal !"
+
+#~ msgid "Close Fiscal Year with new entries"
+#~ msgstr "Clôturer l'exercice fiscal avec de nouvelles écritures"
+
+#~ msgid "UserError"
+#~ msgstr "Erreur utilsateur"
+
+#~ msgid "New Fiscal Year"
+#~ msgstr "Nouvel exercice fiscal"
+
+#~ msgid "Check this box"
+#~ msgstr "Cocher cette case"
+
+#~ msgid "Are you sure you want to create entries?"
+#~ msgstr "Etes vous sûr de vouloir enrégistrer des écritures"
+
+#~ msgid "Cancel"
+#~ msgstr "Annuler"
diff --git a/addons/l10n_syscohada/i18n/fr_FR.po b/addons/l10n_syscohada/i18n/fr_FR.po
new file mode 100644
index 00000000000..89dbc882ca9
--- /dev/null
+++ b/addons/l10n_syscohada/i18n/fr_FR.po
@@ -0,0 +1,240 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * l10n_syscohada
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 5.0.0\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-05-09 10:31+0000\n"
+"PO-Revision-Date: 2010-05-09 10:31+0000\n"
+"Last-Translator: Baamtu Sarl \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-05-09 10:31+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: l10n_syscohada
+#: model:ir.actions.todo,note:l10n_syscohada.config_call_account_template_syscohada
+msgid ""
+"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
+"the name of the company, the chart template to follow, the no. of digits to "
+"generate the code for your accounts and Bank account, currency to create "
+"Journals. Thus,the pure copy of chart Template is generated.\n"
+"\tThis is the same wizard that runs from Financial "
+"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
+"Chart of Accounts from a Chart Template."
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_asset
+msgid "Asset"
+msgstr "Actifs"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_income
+msgid "Income"
+msgstr "Produits"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_payable
+msgid "Payable"
+msgstr "À payer"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_stocks
+msgid "Actif circulant"
+msgstr "Actif circulant"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_dettes
+msgid "Dettes long terme"
+msgstr "Dettes long terme"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_tax
+msgid "Tax"
+msgstr "Taxes"
+
+#. module: l10n_syscohada
+#: constraint:account.account.template:0
+msgid "Error ! You can not create recursive account templates."
+msgstr "Erreur ! Vous ne pouvez pas créer des modéles de comptes récursifs"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_provision
+msgid "Provisions"
+msgstr "Provisions"
+
+#. module: l10n_syscohada
+#: constraint:account.tax.code.template:0
+msgid "Error ! You can not create recursive Tax Codes."
+msgstr "Erreur ! Vous ne pouvez pas créer de codes de taxe récursifs"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_commitment
+msgid "Engagements"
+msgstr "Engagements"
+
+#. module: l10n_syscohada
+#: model:ir.module.module,description:l10n_syscohada.module_meta_information
+msgid "This module implementes the accounting chart for OHADA area."
+msgstr "Ce module implémente le plan comptable général du système comptable de la zone OHAHA"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_expense
+msgid "Expense"
+msgstr "Charges"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_receivable
+msgid "Receivable"
+msgstr "Recevable"
+
+#. module: l10n_syscohada
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères "
+"spéciaux !"
+
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_immobilisations
+msgid "Immobilisations"
+msgstr "Immobilisations"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_equity
+msgid "Equity"
+msgstr "Capitaux propres"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_stock
+msgid "Stocks"
+msgstr "Stocks"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_cash
+msgid "Cash"
+msgstr "Liquidités"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_special
+msgid "Comptes spéciaux"
+msgstr "Comptes spéciaux"
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_view
+msgid "View"
+msgstr "Vue"
+
+#. module: l10n_syscohada
+#: model:ir.module.module,shortdesc:l10n_syscohada.module_meta_information
+msgid "OHADA - Plan comptable général"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_cloture
+msgid "Cloture"
+msgstr "Clôture"
+
+#. module: l10n_syscohada
+#: code:addons/l10n_syscohada/wizard/wizard_fiscalyear_close.py:0
+#, python-format
+msgid "The journal must have centralised counterpart"
+msgstr "Le journal attend une contrepartie centralisée"
+
+#. module: l10n_syscohada
+#: wizard_field:account.fiscalyear.close_corrected,init,period_id:0
+msgid "Opening Entries Period"
+msgstr "Période des écritures d'ouvertures"
+
+#. module: l10n_syscohada
+#: wizard_field:account.fiscalyear.close_corrected,init,fy_id:0
+msgid "Fiscal Year to close"
+msgstr "Année fiscale à clôturer"
+
+#. module: l10n_syscohada
+#: model:ir.actions.wizard,name:l10n_syscohada.wizard_fiscalyear_close_corrected
+#: model:ir.ui.menu,name:l10n_syscohada.menu_wizard_fy_close_corrected
+msgid "Generate Fiscal Year Opening Entries(Corrected)"
+msgstr "Générer les écritures d'ouvertures d'exercice fiscal(Corrigé)"
+
+#. module: l10n_syscohada
+#: field:account.move.line,fy_opening:0
+msgid "Generated during fiscal year closing/opening process"
+msgstr "Ecriture de report"
+
+#. module: l10n_syscohada
+#: wizard_field:account.fiscalyear.close_corrected,init,journal_id:0
+msgid "Opening Entries Journal"
+msgstr "Journal des écritures d'ouverture"
+
+#. module: l10n_syscohada
+#: code:addons/l10n_syscohada/wizard/wizard_fiscalyear_close.py:0
+#, python-format
+msgid "The journal must have default credit and debit account"
+msgstr "Le journal doit posséder un compte de crédit et débit par défaut"
+
+#. module: l10n_syscohada
+#: wizard_button:account.fiscalyear.close_corrected,init,close:0
+msgid "Create entries"
+msgstr "Créer les écritures"
+
+#. module: l10n_syscohada
+#: wizard_field:account.fiscalyear.close_corrected,init,report_name:0
+msgid "Name of new entries"
+msgstr "Nom des nouvelles entrées"
+
+#. module: l10n_syscohada
+#: code:addons/l10n_syscohada/wizard/wizard_fiscalyear_close.py:0
+#, python-format
+msgid "Closing of fiscal year cancelled, please check the box !"
+msgstr "Clôture de l'exercice fiscal annulée, veuillez cocher la case !"
+
+#. module: l10n_syscohada
+#: code:addons/l10n_syscohada/wizard/wizard_fiscalyear_close.py:0
+#, python-format
+msgid "End of Fiscal Year Entry"
+msgstr "Écriture de fin d'exercice fiscal"
+
+#. module: l10n_syscohada
+#: code:addons/l10n_syscohada/wizard/wizard_fiscalyear_close.py:0
+#, python-format
+msgid "The opening journal must not have any entry in the new fiscal year !"
+msgstr "Le journal d'ouverture ne doit pas contenir d'écriture dans le nouvel exercice fiscal !"
+
+#. module: l10n_syscohada
+#: wizard_view:account.fiscalyear.close_corrected,init:0
+msgid "Close Fiscal Year with new entries"
+msgstr "Clôturer l'exercice fiscal avec de nouvelles écritures"
+
+#. module: l10n_syscohada
+#: code:addons/l10n_syscohada/wizard/wizard_fiscalyear_close.py:0
+#, python-format
+msgid "UserError"
+msgstr "Erreur utilsateur"
+
+#. module: l10n_syscohada
+#: wizard_field:account.fiscalyear.close_corrected,init,fy2_id:0
+msgid "New Fiscal Year"
+msgstr "Nouvel exercice fiscal"
+
+#. module: l10n_syscohada
+#: wizard_field:account.fiscalyear.close_corrected,init,sure:0
+msgid "Check this box"
+msgstr "Cocher cette case"
+
+#. module: l10n_syscohada
+#: wizard_view:account.fiscalyear.close_corrected,init:0
+msgid "Are you sure you want to create entries?"
+msgstr "Etes vous sûr de vouloir enrégistrer des écritures"
+
+#. module: l10n_syscohada
+#: wizard_button:account.fiscalyear.close_corrected,init,end:0
+msgid "Cancel"
+msgstr "Annuler"
\ No newline at end of file
diff --git a/addons/l10n_syscohada/i18n/l10n_syscohada.pot b/addons/l10n_syscohada/i18n/l10n_syscohada.pot
new file mode 100644
index 00000000000..824ff010158
--- /dev/null
+++ b/addons/l10n_syscohada/i18n/l10n_syscohada.pot
@@ -0,0 +1,137 @@
+#,
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 5.0.0\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2010-05-09 10:31+0000\n"
+"PO-Revision-Date: 2010-05-09 10:31+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-05-09 10:31+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: l10n_syscohada
+#: model:ir.actions.todo,note:l10n_syscohada.config_call_account_template_syscohada
+msgid ""
+"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
+"the name of the company, the chart template to follow, the no. of digits to "
+"generate the code for your accounts and Bank account, currency to create "
+"Journals. Thus,the pure copy of chart Template is generated.\n"
+"\tThis is the same wizard that runs from Financial "
+"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
+"Chart of Accounts from a Chart Template."
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_asset
+msgid "Asset"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_income
+msgid "Income"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_payable
+msgid "Payable"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_stocks
+msgid "Actif circulant"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_dettes
+msgid "Dettes long terme"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_tax
+msgid "Tax"
+msgstr ""
+
+#. module: l10n_syscohada
+#: constraint:account.account.template:0
+msgid "Error ! You can not create recursive account templates."
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_provision
+msgid "Provisions"
+msgstr ""
+
+#. module: l10n_syscohada
+#: constraint:account.tax.code.template:0
+msgid "Error ! You can not create recursive Tax Codes."
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_commitment
+msgid "Engagements"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:ir.module.module,description:l10n_syscohada.module_meta_information
+msgid "This module implementes the accounting chart for OHADA area."
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_expense
+msgid "Expense"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_receivable
+msgid "Receivable"
+msgstr ""
+
+#. module: l10n_syscohada
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_immobilisations
+msgid "Immobilisations"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_equity
+msgid "Equity"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_stock
+msgid "Stocks"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_cash
+msgid "Cash"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_special
+msgid "Comptes spéciaux"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_view
+msgid "View"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:ir.module.module,shortdesc:l10n_syscohada.module_meta_information
+msgid "OHADA - Plan comptable général"
+msgstr ""
+
+#. module: l10n_syscohada
+#: model:account.account.type,name:l10n_syscohada.account_type_cloture
+msgid "Cloture"
+msgstr ""
\ No newline at end of file
diff --git a/addons/l10n_syscohada/l10n_syscohada_data.xml b/addons/l10n_syscohada/l10n_syscohada_data.xml
new file mode 100644
index 00000000000..1d8a1564348
--- /dev/null
+++ b/addons/l10n_syscohada/l10n_syscohada_data.xml
@@ -0,0 +1,1945 @@
+
+
+
+
+ Dettes long terme
+ dettes
+ liability
+ balance
+
+
+ Immobilisations
+ immobilization
+ asset
+ balance
+
+
+ Stocks
+ stocks
+ asset
+ balance
+
+
+ Cloture
+ cloture
+ liability
+ balance
+
+
+ Receivable
+ receivable
+ asset
+ unreconciled
+
+
+ Payable
+ payable
+ liability
+ unreconciled
+
+
+ View
+ view
+ none
+
+
+ Income
+ income
+ income
+ none
+
+
+ Expense
+ expense
+ expense
+ none
+
+
+ Tax
+ tax
+ unreconciled
+
+
+ Cash
+ cash
+ asset
+ balance
+
+
+ Asset
+ asset
+ asset
+ balance
+
+
+ Equity
+ equity
+ asset
+ balance
+
+
+ Provisions
+ provision
+ liability
+ balance
+
+
+ Engagements
+ commitment
+ balance
+
+
+ Actif circulant
+ current asset
+ asset
+ balance
+
+
+ Comptes spéciaux
+ special
+ none
+
+
+ Plan Comptable SYSCOA
+ 0
+ view
+
+
+
+ Comptes de bilan
+ Classes 1 à 5
+ view
+
+
+
+
+ Comptes de gestion
+ Classes 6 et 7
+ view
+
+
+
+
+ Comptes de capitaux
+ Classe 1
+ view
+
+ Capitaux propres, autres fonds propres, emprunts et dettes assimilées
+
+
+
+ Comptes d'immobilisations
+ Classe 2
+ view
+
+ Immobilisations incorporelles, corporelles, financières et frais d'établissement
+
+
+
+ Comptes de stocks et d'en-cours
+ Classe 3
+ view
+
+
+
+
+ Comptes de tiers
+ Classe 4
+ view
+
+
+
+
+ Comptes financiers
+ Classe 5
+ view
+
+
+
+
+ Comptes de charges
+ Classe 6
+ view
+
+
+
+
+ Comptes de produits
+ Classe 7
+ view
+
+
+
+
+ Comptes spéciaux
+ Classes 8
+ view
+
+
+
+
+ Comptes des engagements hors bilan et comptabilité analytique
+ Classes 9
+ view
+
+
+
+CAPITAL10view
+CAPITAL SOCIAL101view
+Capital souscrit, non appelé1011other
+Capital souscrit, appelé, non versé1012other
+Capital souscrit, appelé, versé, non amorti1013other
+Capital souscrit, appelé, versé, amorti1014other
+Capital souscrit soumis à des conditions particulières1018other
+CAPITAL PAR DOTATION102view
+Dotation initiale1021other
+Dotations complémentaires1022other
+Autres dotations1028other
+CAPITAL PERSONNEL103other
+COMPTE DE L'EXPLOITANT104view
+Apports temporaires1041other
+Opérations courantes1042other
+Rémunérations, impôts et autres charges personnelles1043other
+Prélèvements d’autoconsommation1047other
+Autres prélèvements1048other
+PRIMES LIÉES AUX CAPITAUX PROPRES105view
+Primes d'émission1051other
+Primes d'apport1052other
+Primes de fusion1053other
+Primes de conversion1054other
+Autres primes1058other
+ÉCARTS DE RÉÉVALUATION106view
+Écarts de réévaluation légale1061other
+Écarts de réévaluation libre1062other
+ACTIONNAIRES, CAPITAL SOUSCRIT, NON APPELÉ109other
+RÉSERVES11view
+RÉSERVE LÉGALE111other
+RÉSERVES STATUTAIRES OU CONTRACTUELLES112other
+RÉSERVES RÉGLEMENTÉES113view
+Réserves de plus-values nettes à long terme1131other
+Réserves consécutives à l'octroi de subventions d'investissement1133other
+Autres réserves réglementées1138other
+AUTRES RÉSERVES118view
+Réserves facultatives1181other
+Réserves diverses1188other
+REPORT À NOUVEAU12view
+REPORT À NOUVEAU CRÉDITEUR121other
+REPORT À NOUVEAU DÉBITEUR129view
+Perte nette à reporter1291other
+Perte - Amortissements réputés différés1292other
+RÉSULTAT NET DE L'EXERCICE13view
+RÉSULTAT EN INSANCE D’AFFECTATION130view
+Résultat en instance d'affectation : Bénéfice1301other
+Résultat en instance d'affectation : Perte1309other
+RÉSULTAT NET : BÉNÉFICE131other
+MARGE BRUTE (M.B.)132view
+Marge brute sur marchandises1321other
+Marge brute sur matières1322other
+VALEUR AJOUTÉE (V.A.)133other
+EXCÉDENT BRUT D'EXPLOITATION (E.B.E.)134other
+RÉSULTAT D'EXPLOITATION (R.E.)135other
+RÉSULTAT FINANCIER (R.F.)136other
+RÉSULTAT DES ACTIVITÉS ORDINAIRES (R.A.O.)137other
+RÉSULTAT HORS ACTIVITÉS ORDINAIRES (R.H.A.O.)138other
+RÉSULTAT NET : PERTE139other
+SUBVENTIONS D'INVESTISSEMENT14view
+SUBVENTIONS D'ÉQUIPEMENT A141view
+État1411other
+Régions1412other
+Départements1413other
+Communes et collectivités publiques décentralisées1414other
+Entreprises publiques ou mixtes1415other
+Entreprises et organismes privés1416other
+Organismes internationaux1417other
+Autres1418other
+SUBVENTIONS D'ÉQUIPEMENT B142other
+AUTRES SUBVENTIONS D'INVESTISSEMENT148other
+PROVISIONS RÉGLEMENTÉES ET FONDS ASSIMILÉS15view
+AMORTISSEMENTS DÉROGATOIRES151other
+PLUS-VALUES DE CESSION À RÉINVESTIR152other
+FONDS RÉGLEMENTÉS153view
+Fonds National1531other
+Prélèvement pour le Budget1532other
+PROVISION SPÉCIALE DE RÉÉVALUATION154other
+PROVISIONS RÉGLEMENTÉES RELATIVES AUX IMMOBILISATIONS155view
+Reconstitution des gisements miniers et pétroliers1551other
+PROVISIONS RÉGLEMENTÉES RELATIVES AUX STOCKS156view
+Hausse de prix1561other
+Fluctuation des cours1562other
+PROVISIONS POUR INVESTISSEMENT157other
+AUTRES PROVISIONS ET FONDS RÉGLEMENTES158other
+EMPRUNTS ET DETTES ASSIMILÉES16view
+EMPRUNTS OBLIGATAIRES161view
+Emprunts obligataires ordinaires1611other
+Emprunts obligataires convertibles1612other
+Autres emprunts obligataires1618other
+EMPRUNTS ET DETTES AUPRÈS DES ÉTABLISSEMENTS DE CRÉDIT162other
+AVANCES REÇUES DE L'ÉTAT163other
+AVANCES REÇUES ET COMPTES COURANTS BLOQUÉS164other
+DÉPÔTS ET CAUTIONNEMENTS RECUS165view
+Dépôts1651other
+Cautionnements1652other
+INTÉRÊTS COURUS166view
+sur emprunts obligataires1661other
+sur emprunts et dettes auprès des établissements de crédit1662other
+sur avances reçues de l'État1663other
+sur avances reçues et comptes courants bloqués1664other
+sur dépôts et cautionnements reçus1665other
+sur avances assorties de conditions particulières1667other
+sur autres emprunts et dettes1668other
+AVANCES ASSORTIES DE CONDITIONS PARTICULIÈRES167view
+Avances bloquées pour augmentation du capital1671other
+Avances conditionnées par l'État1672other
+Avances conditionnées par les autres organismes africains1673other
+Avances conditionnées par les organismes internationaux1674other
+Droits du concédant exigibles en nature1676other
+AUTRES EMPRUNTS ET DETTES168view
+Rentes viagères capitalisées1681other
+Billets de fonds1682other
+Dettes consécutives à des titres empruntés1683other
+Dettes du concédant exigibles en nature1684other
+Emprunts participatifs1685other
+Participation des travailleurs aux bénéfices1686other
+DETTES DE CRÉDIT - BAIL ET CONTRATS ASSIMILÉS17view
+EMPRUNTS ÉQUIVALENTS DE CRÉDIT - BAIL IMMOBILIER172other
+EMPRUNTS ÉQUIVALENTS DE CRÉDIT - BAIL MOBILIER173other
+INTÉRÊTS COURUS176view
+sur emprunts équivalents de crédit – bail immobilier1762other
+sur emprunts équivalents de crédit – bail mobilier1763other
+sur emprunts équivalents d’autres contrats1768other
+EMPRUNTS ÉQUIVALENTS D’AUTRES CONTRATS178other
+DETTES LIÉES À DES PARTICIPATIONS ET COMPTES DE LIAISON DES ETABLISSEMENTS ET SOCIÉTÉS EN PARTICIPATION18view
+DETTES LIÉES À DES PARTICIPATIONS181view
+Dettes liées à des participations (groupe)1811other
+Dettes liées à des participations (hors groupe)1812other
+DETTES LIÉES À DES SOCIÉTÉS EN PARTICIPATION182other
+INTÉRÊTS COURUS SUR DETTES LIÉES À DES PARTICIPATIONS183other
+COMPTES PERMANENTS BLOQUÉS DES ÉTABLISSEMENTS ET SUCCURSALES184other
+COMPTES PERMANENTS NON BLOQUÉS DES ÉTABLISSEMENTS ET SUCCURSALES185other
+COMPTES DE LIAISON CHARGES186other
+COMPTES DE LIAISON PRODUITS187other
+COMPTES DE LIAISON DES SOCIÉTÉS EN PARTICIPATION188other
+PROVISIONS FINANCIERES POUR RISQUES ET CHARGES19view
+PROVISIONS POUR LITIGES191other
+PROVISIONS POUR GARANTIES DONNÉES AUX CLIENTS192other
+PROVISIONS POUR PERTES SUR MARCHÉS À ACHÈVEMENT FUTUR193other
+PROVISIONS POUR PERTES DE CHANGE194other
+PROVISIONS POUR IMPÔTS195other
+PROVISIONS POUR PENSIONS ET OBLIGATIONS SIMILAIRES196other
+PROVISIONS POUR CHARGES À REPARTIR SUR PLUSIEURS EXERCICES197view
+Provisions pour grosses réparations1971other
+AUTRES PROVISIONS FINANCIÈRES POUR RISQUES ET CHARGES198view
+Provisions pour amendes et pénalités1981other
+Provisions pour renouvellement des immobilisations (entreprises concessionnaires)1982other
+Provisions de propre assureur1983other
+Autres provisions financières pour risques et charges1988other
+CHARGES IMMOBILISÉES20view
+FRAIS D'ÉTABLISSEMENT201view
+Frais de constitution2011other
+Frais de prospection2012other
+Frais de publicité et de lancement2013other
+Frais de fonctionnement antérieurs au démarrage2014other
+Frais de modification du capital (fusions, scissions, transformations)2015other
+Frais d'entrée à la Bourse2016other
+Frais de restructuration2017other
+Frais divers d'établissement2018other
+CHARGES À RÉPARTIR SUR PLUSIEURS EXERCICES202view
+Charges différées2021other
+Frais d'acquisition d'immobilisations2022other
+Frais d'émission des emprunts2026other
+Charges à étaler2028other
+PRIMES DE REMBOURSEMENT DES OBLIGATIONS206view
+Obligations ordinaires2061other
+Obligations convertibles2062other
+Autres emprunts obligataires2068other
+IMMOBILISATIONS INCORPORELLES21view
+FRAIS DE RECHERCHE ET DE DÉVELOPPEMENT211other
+BREVETS, LICENCES, CONCESSIONS ET DROITS SIMILAIRES212other
+LOGICIELS213other
+MARQUES214other
+FONDS COMMERCIAL215other
+DROIT AU BAIL216other
+INVESTISSEMENTS DE CRÉATION217other
+AUTRES DROITS ET VALEURS INCORPORELS218other
+IMMOBILISATIONS INCORPORELLES EN COURS219view
+Frais de recherche et de développement2191other
+Logiciels2193other
+Autres droits et valeurs incorporels2198other
+TERRAINS22view
+TERRAINS AGRICOLES ET FORESTIERS221view
+Terrains d'exploitation agricole2211other
+Terrains d'exploitation forestière2212other
+Autres terrains2218other
+TERRAINS NUS222view
+Terrains à bâtir2221other
+Autres terrains nus2228other
+TERRAINS BÂTIS223view
+pour bâtiments industriels et agricoles2231other
+pour bâtiments administratifs et commerciaux2232other
+pour bâtiments affectés aux autres opérations professionnelles2234other
+pour bâtiments affectés aux autres opérations non professionnelles2235other
+Autres terrains bâtis2238other
+TRAVAUX DE MISE EN VALEUR DES TERRAINS224view
+Plantation d'arbres et d'arbustes2241other
+Autres travaux2248other
+TERRAINS DE GISEMENT225view
+Carrières2251other
+TERRAINS AMÉNAGÉS226view
+Parkings2261other
+TERRAINS MIS EN CONCESSION227other
+AUTRES TERRAINS228view
+Terrains des immeubles de rapport2281other
+Terrains des logements affectés au personnel2285other
+Autres terrains2288other
+AMÉNAGEMENTS DE TERRAINS EN COURS229view
+Terrains agricoles et forestiers2291other
+Terrains nus2292other
+Terrains de gisement2295other
+Autres terrains2298other
+BÂTIMENTS, INSTALLATIONS TECHNIQUES ET AGENCEMENTS23view
+BÂTIMENTS INDUSTRIELS, AGRICOLES, ADMINISTRATIFS ET COMMERCIAUX SUR SOL PROPRE231view
+Bâtiments industriels2311other
+Bâtiments agricoles2312other
+Bâtiments administratifs et commerciaux2313other
+Bâtiments affectés au logement du personnel2314other
+Immeubles de rapport2315other
+BÂTIMENTS INDUSTRIELS, AGRICOLES, ADMINISTRATIFS ET COMMERCIAUX SUR SOL D’AUTRUI232view
+Bâtiments industriels2321other
+Bâtiments agricoles2322other
+Bâtiments administratifs et commerciaux2323other
+Bâtiments affectés au logement du personnel2324other
+Immeubles de rapport2325other
+OUVRAGES D’INFRASTRUCTURE233view
+Voies de terre2331other
+Voies de fer2332other
+Voies d’eau2333other
+Barrages, Digues2334other
+Pistes d’aérodrome2335other
+Autres2338other
+INSTALLATIONS TECHNIQUES234view
+Installations complexes spécialisées sur sol propre2341other
+Installations complexes spécialisées sur sol d’autrui2342other
+Installations à caractère spécifique sur sol propre2343other
+Installations à caractère spécifique sur sol d’autrui2344other
+AMENAGEMENTS DE BUREAUX235view
+Installations générales2351other
+Autres2358other
+BÂTIMENTS INDUSTRIELS, AGRICOLES ET COMMERCIAUX MIS EN CONCESSION237other
+AUTRES INSTALLATIONS ET AGENCEMENTS238other
+BÂTIMENTS ET INSTALLATIONS EN COURS239other
+MATÉRIEL24view
+MATÉRIEL ET OUTILLAGE INDUSTRIEL ET COMMERCIAL241view
+Matériel industriel2411other
+Outillage industriel2412other
+Matériel commercial2413other
+Outillage commercial2414other
+MATÉRIEL ET OUTILLAGE AGRICOLE242view
+Matériel agricole2421other
+Outillage agricole2422other
+MATÉRIEL D’EMBALLAGE RÉCUPÉRABLE ET IDENTIFIABLE243other
+MATÉRIEL ET MOBILIER244view
+Matériel de bureau2441other
+Matériel informatique2442other
+Matériel bureautique2443other
+Mobilier de bureau2444other
+Matériel et mobilier des immeubles de rapport2446other
+Matériel et mobilier des logements du personnel2447other
+MATÉRIEL DE TRANSPORT245view
+Matériel automobile2451other
+Matériel ferroviaire2452other
+Matériel fluvial, lagunaire2453other
+Matériel naval2454other
+Matériel aérien2455other
+Matériel hippomobile2456other
+Autres (vélo, mobylette, moto)2458other
+IMMOBILISATIONS ANIMALES ET AGRICOLES246view
+Cheptel, animaux de trait2461other
+Cheptel, animaux reproducteurs2462other
+Animaux de garde2463other
+Plantations agricoles2465other
+Autres2468other
+AGENCEMENTS ET AMÉNAGEMENTS DU MATÉRIEL247other
+AUTRES MATÉRIELS248view
+Collections et oeuvres d’art2481other
+MATÉRIEL EN COURS249view
+Matériel et outillage industriel et commercial2491other
+Matériel et outillage agricole2492other
+Matériel d’emballage récupérable et identifiable2493other
+Matériel et mobilier de bureau2494other
+Matériel de transport2495other
+Immobilisations animales et agricoles2496other
+Agencements et aménagements du matériel2497other
+Autres matériels2498other
+AVANCES ET ACOMPTES VERSÉS SUR IMMOBILISATIONS25view
+AVANCES ET ACOMPTES VERSÉS SUR IMMOBILISATIONS INCORPORELLES251other
+AVANCES ET ACOMPTES VERSÉS SUR IMMOBILISATIONS CORPORELLES252other
+TITRES DE PARTICIPATION26view
+TITRES DE PARTICIPATION DANS DES SOCIÉTÉS SOUS CONTRÔLE EXCLUSIF261other
+TITRES DE PARTICIPATION DANS DES SOCIÉTÉS SOUS CONTRÔLE CONJOINT262other
+TITRES DE PARTICIPATION DANS DES SOCIÉTÉS CONFÉRANT UNE INFLUENCE NOTABLE263other
+PARTICIPATIONS DANS DES ORGANISMES PROFESSIONNELS265other
+PARTS DANS DES GROUPEMENTS D’INTÉRÊT ÉCONOMIQUE (G.I.E.)266other
+AUTRES TITRES DE PARTICIPATION268other
+AUTRES IMMOBLISATIONS FINANCIÈRES27view
+PRÊTS ET CRÉANCES NON COMMERCIALES271view
+Prêts participatifs2711other
+Prêts aux associés2712other
+Billets de fonds2713other
+Titres prêtés2714other
+PRÊTS AU PERSONNEL272view
+Prêts immobiliers2721other
+Prêts mobiliers et d’installation2722other
+Autres prêts (frais d’études…)2728other
+CRÉANCES SUR L’ÉTAT273view
+Retenues de garantie2731other
+Fonds réglementé2733other
+Autres2738other
+TITRES IMMOBILISÉS274view
+Titres immobilisés de l’activité de portefeuille (T.I.A.P.)2741other
+Titres participatifs2742other
+Certificats d’investissement2743other
+Parts de fonds commun de placement (F.C.P.)2744other
+Autres titres immobilisés2748other
+DÉPÔTS ET CAUTIONNEMENTS VERSÉS275view
+Dépôts pour loyers d’avance2751other
+Dépôts pour l’électricité2752other
+Dépôts pour l’eau2753other
+Dépôts pour le gaz2754other
+Dépôts pour le téléphone, le télex, la télécopie2755other
+Cautionnements sur marchés publics2756other
+Cautionnements sur autres opérations2757other
+Autres dépôts et cautionnements2758other
+INTÉRÊTS COURUS276view
+Prêts et créances non commerciales2761other
+Prêts au personnel2762other
+Créances sur l'Etat2763other
+Titres immobilisés2764other
+Dépôts et cautionnements versés2765other
+Créances rattachées à des participations2767other
+Immobilisations financières diverses2768other
+CRÉANCES RATTACHÉES À DES PARTICIPATIONS ET AVANCES À DES G.I.E.277view
+Créances rattachées à des participations (groupe)2771other
+Créances rattachées à des participations (hors groupe)2772other
+Créances rattachées à des sociétés en participation2773other
+Avances à des Groupements d'intérêt économique (G.I.E.)2774other
+IMMOBILISATIONS FINANCIÈRES DIVERSES278view
+Créances diverses groupe2781other
+Créances divers hors groupe2782other
+Or et métaux précieux ()2785other
+AMORTISSEMENTS28view
+AMORTISSEMENTS DES IMMOBILISATIONS INCORPORELLES281view
+Amortissements des frais de recherche et de développement2811other
+Amortissements des brevets, licences, concessions et droits similaires2812other
+Amortissements des logiciels2813other
+Amortissements des marques2814other
+Amortissements du fonds commercial2815other
+Amortissements du droit au bail2816other
+Amortissements des investissements de création2817other
+Amortissements des autres droits et valeurs incorporels2818other
+AMORTISSEMENTS DES TERRAINS282view
+Amortissements des terrains agricoles et forestiers2821other
+Amortissements des travaux de mise en valeur des terrains2824other
+Amortissements des terrains de gisement2825other
+AMORTISSEMENTS DES BÂTIMENTS, INSTALLATIONS TECHNIQUES ET AGENCEMENTS283view
+Amortissements des bâtiments industriels, agricoles, administratifs et commerciaux sur sol propre2831other
+Amortissements des bâtiments industriels, agricoles, administratifs et commerciaux sur sol d'autrui2832other
+Amortissements des ouvrages d'infrastructure2833other
+Amortissements des installations techniques2834other
+Amortissements des aménagements de bureaux2835other
+Amortissements des bâtiments industriels, agricoles et commerciaux mis en concession2837other
+Amortissements des autres installations et agencements2838other
+AMORTISSEMENTS DU MATÉRIEL284view
+Amortissements du matériel et outillage industriel et commercial2841other
+Amortissements du matériel et outillage agricole2842other
+Amortissements du matériel d'emballage récupérable et identifiable2843other
+Amortissements du matériel et mobilier2844other
+Amortissements du matériel de transport2845other
+Amortissements des immobilisations animales et agricoles2846other
+Amortissements des agencements et aménagements du matériel2847other
+Amortissements des autres matériels2848other
+PROVISIONS POUR DEPRECIATION29view
+PROVISIONS POUR DÉPRÉCIATION DES IMMOBILISATIONS INCORPORELLES291view
+Provisions pour dépréciation des brevets, licences, concessions et droits similaires2912other
+Provisions pour dépréciation des logiciels2913other
+Provisions pour dépréciation des marques2914other
+Provisions pour dépréciation du fonds commercial2915other
+Provisions pour dépréciation du droit au bail2916other
+Provisions pour dépréciation des investissements de création2917other
+Provisions pour dépréciation des autres droits et valeurs incorporels2918other
+Provisions pour dépréciation des immobilisations incorporelles en cours2919other
+PROVISIONS POUR DÉPRÉCIATION DES TERRAINS292view
+Provisions pour dépréciation des terrains agricoles et forestiers2921other
+Provisions pour dépréciation des terrains nus2922other
+Provisions pour dépréciation des terrains bâtis2923other
+Provisions pour dépréciation des travaux de mise en valeur des terrains2924other
+Provisions pour dépréciation des terrains de gisement2925other
+Provisions pour dépréciation des terrains aménagés2926other
+Provisions pour dépréciation des terrains mis en concession2927other
+Provisions pour dépréciation des autres terrains2928other
+Provisions pour dépréciation des aménagements de terrains en cours2929other
+PROVISIONS POUR DÉPRÉCIATION DES BÂTIMENTS, INSTALLATIONS TECHNIQUES ET AGENCEMENTS293view
+Provisions pour dépréciation des bâtiments industriels, agricoles, administratifs et commerciaux sur sol propre2931other
+Provisions pour dépréciation des bâtiments industriels, agricoles, administratifs et commerciaux sur sol d'autrui2932other
+Provisions pour dépréciation des ouvrages d'infrastructures2933other
+Provisions pour dépréciation des installations techniques2934other
+Provisions pour dépréciation des aménagements de bureaux2935other
+Provisions pour dépréciation des bâtiments industriels, agricoles et commerciaux mis en concession2937other
+Provisions pour dépréciation des autres installations et agencements2938other
+Provisions pour dépréciation des bâtiments et installations en cours2939other
+PROVISIONS POUR DÉPRÉCIATION DE MATÉRIEL294view
+Provisions pour dépréciation du matériel et outillage industriel et commercial2941other
+Provisions pour dépréciation du matériel et outillage agricole2942other
+Provisions pour dépréciation du matériel d'emballage récupérable et identifiable2943other
+Provisions pour dépréciation du matériel et mobilier2944other
+Provisions pour dépréciation du matériel de transport2945other
+Provisions pour dépréciation des immobilisations animales et agricoles2946other
+Provisions pour dépréciation des agencements et aménagements du matériel2947other
+Provisions pour dépréciation des autres matériels2948other
+Provisions pour dépréciation de matériel en cours2949other
+PROVISIONS POUR DÉPRÉCIATION DES AVANCES ET ACOMPTES VERSÉS SUR IMMOBILISATIONS295view
+Provisions pour dépréciation des avances et acomptes versés sur immobilisations incorporelles2951other
+Provisions pour dépréciation des avances et acomptes versés sur immobilisations corporelles2952other
+PROVISIONS POUR DÉPRÉCIATION DES TITRES DE PARTICIPATION296view
+Provisions pour dépréciation des titres de participation dans des sociétés sous contrôle exclusif2961other
+Provisions pour dépréciation des titres de participation dans les sociétés sous contrôle conjoint2962other
+Provisions pour dépréciation des titres de participation dans les sociétés conférant une influence notable2963other
+Provisions pour dépréciation des participations dans des organismes professionnels2965other
+Provisions pour dépréciation des parts dans des GIE2966other
+Provisions pour dépréciation des autres titres de participation2968other
+PROVISIONS POUR DÉPRÉCIATION DES AUTRES IMMOBILISATIONS FINANCIÈRES297view
+Provisions pour dépréciation des prêts et créances non commerciales2971other
+Provisions pour dépréciation des prêts au personnel2972other
+Provisions pour dépréciation des créances sur l'Etat2973other
+Provisions pour dépréciation des titres immobilisés2974other
+Provisions pour dépréciation des dépôts et cautionnements versés2975other
+Provisions pour dépréciation des créances rattachées à des participations et avances à des GIE2977other
+Provisions pour dépréciation des créances financières diverses2978other
+MARCHANDISES31view
+MARCHANDISES A311view
+Marchandises A13111other
+Marchandises A23112other
+MARCHANDISES B312view
+Marchandises B13121other
+Marchandises B23122other
+MARCHANDISES HORS ACTIVITÉS ORDINAIRES (H.A.O.)318other
+MATIÈRES PREMIÈRES ET FOURNITURES LIÉES32view
+MATIÈRES A321other
+MATIÈRES B322other
+FOURNITURES (A,B)323other
+AUTRES APPROVISIONNEMENTS33view
+MATIÈRES CONSOMMABLES331other
+FOURNITURES D'ATELIER ET D'USINE332other
+FOURNITURES DE MAGASIN333other
+FOURNITURES DE BUREAU334other
+EMBALLAGES335view
+Emballages perdus3351other
+Emballages récupérables non identifiables3352other
+Emballages à usage mixte3353other
+Autres emballages3358other
+AUTRES MATIÈRES338other
+PRODUITS EN COURS34view
+PRODUITS EN COURS341view
+Produits en cours P13411other
+Produits en cours P23412other
+TRAVAUX EN COURS342view
+Travaux en cours T13421other
+Travaux en cours T23422other
+PRODUITS INTERMÉDIAIRES EN COURS343view
+Produits intermédiaires A3431other
+Produits intermédiaires B3432other
+PRODUITS RÉSIDUELS EN COURS344view
+Produits résiduels A3441other
+Produits résiduels B3442other
+SERVICES EN COURS35view
+ÉTUDES EN COURS351view
+Études en cours E13511other
+Études en cours E23512other
+PRESTATIONS DE SERVICES EN COURS352view
+Prestations de services S13521other
+Prestations de services S23522other
+PRODUITS FINIS36view
+PRODUITS FINIS A361other
+PRODUITS FINIS B362other
+PRODUITS INTERMÉDIAIRES ET RÉSIDUELS37view
+PRODUITS INTERMÉDIAIRES371view
+Produits intermédiaires A3711other
+Produits intermédiaires B3712other
+PRODUITS RÉSIDUELS372view
+Déchets3721other
+Rebuts3722other
+Matières de Récupération3723other
+STOCKS EN COURS DE ROUTE, EN CONSIGNATION OU EN DÉPÔT38view
+MARCHANDISES EN COURS DE ROUTE381other
+MATIÈRES PREMIÈRES ET FOURNITURES LIÉES EN COURS DE ROUTE382other
+AUTRES APPROVISIONNEMENTS EN COURS DE ROUTE383other
+PRODUITS FINIS EN COURS DE ROUTE386other
+STOCK EN CONSIGNATION OU EN DÉPÔT387view
+Stock en consignation3871other
+Stock en dépôt3872other
+STOCK PROVENANT D'IMMOBILISATIONS MISES HORS SERVICE OU AU REBUT388other
+DÉPRÉCIATIONS DES STOCKS39view
+DÉPRÉCIATIONS DES STOCKS DE MARCHANDISES391other
+DÉPRÉCIATIONS DES STOCKS DE MATIÈRES PREMIÈRES ET FOURNITURES LIÉES392other
+DÉPRÉCIATIONS DES STOCKS D'AUTRES APPOVISIONNEMENTS393other
+DÉPRÉCIATIONS DES PRODUCTIONS EN COURS394other
+DÉPRÉCIATIONS DES SERVICES EN COURS395other
+DÉPRÉCIATIONS DES STOCKS DE PRODUITS FINIS396other
+DÉPRÉCIATIONS DES STOCKS DE PRODUITS INTERMÉDIAIRES ET RÉSIDUELS397other
+DÉPRÉCIATIONS DES STOCKS EN COURS DE ROUTE, EN CONSIGNATION OU EN DÉPÔT398other
+FOURNISSEURS ET COMPTES RATTACHÉS40view
+FOURNISSEURS, DETTES EN COMPTE401view
+Fournisseurs4011payable
+Fournisseurs Groupe4012payable
+Fournisseurs sous-traitants4013payable
+Fournisseur, retenues de garantie4017payable
+FOURNISSEURS, EFFETS À PAYER402view
+Fournisseurs, Effets à payer4021payable
+Fournisseurs - Groupe, Effets à payer4022payable
+Fournisseurs sous-traitants, Effets à payer4023payable
+FOURNISSEURS, FACTURES NON PARVENUES408view
+Fournisseurs4081payable
+Fournisseurs - Groupe4082payable
+Fournisseurs sous-traitants4083payable
+Fournisseurs, intérêts courus4086payable
+FOURNISSEURS DÉBITEURS409view
+Fournisseurs avances et acomptes versés4091other
+Fournisseurs - Groupe avances et acomptes versés4092other
+Fournisseurs sous-traitants avances et acomptes versés4093other
+Fournisseurs créances pour emballages et matériels à rendre4094other
+Rabais, Remises, Ristournes et autres avoirs à obtenir4098other
+CLIENTS ET COMPTES RATTACHÉS41view
+CLIENTS411view
+Clients4111receivable
+Clients - Groupe4112receivable
+Clients, État et Collectivités publiques4114receivable
+Clients, organismes internationaux4115receivable
+Client, retenues de garantie4117receivable
+Clients, dégrèvement de Taxes sur la Valeur Ajoutée (T.V.A.)4118receivable
+CLIENTS, ÉFFETS À RECEVOIR EN PORTEFEUILLE412view
+Clients, Effets à recevoir4121receivable
+Clients - Groupe, Effets à recevoir4122receivable
+État et Collectivités publiques, Effets à recevoir4124receivable
+Organismes Internationaux, Effets à recevoir4125receivable
+CRÉANCES SUR CESSIONS D'IMMOBILISATIONS414view
+Créances en compte4141receivable
+Effets à recevoir4142receivable
+CLIENTS, ÉFFETS ESCOMPTÉS NON ÉCHUS415receivable
+CRÉANCES CLIENTS LITIGIEUSES OU DOUTEUSES416view
+Créances litigieuses4161receivable
+Créances douteuses4162receivable
+CLIENTS, PRODUITS À RECEVOIR418view
+Clients, factures à établir4181receivable
+Clients, intérêts courus4186receivable
+CLIENTS CRÉDITEURS419view
+Clients, avances et acomptes reçus4191other
+Clients - Groupe, avances et acomptes reçus4192other
+Clients, dettes pour emballages et matériels consignés4194other
+Rabais, Remises, Ristournes et autres avoirs à accorder4198other
+PERSONNEL42view
+PERSONNEL, AVANCES ET ACOMPTES421view
+Personnel, avances4211other
+Personnel, acomptes4212other
+Frais avancés et fournitures au personnel4213other
+PERSONNEL, RÉMUNÉRATIONS DUES422other
+PERSONNEL, OPPOSITIONS, SAISIES-ARRÊTS423view
+Personnel, oppositions4231other
+Personnel, saisies-arrêts4232other
+Personnel, avis à tiers détenteur4233other
+PERSONNEL, OEUVRES SOCIALES INTERNES424view
+Assistance médicale4241other
+Allocations familiales4242other
+Organismes sociaux rattachés à l'entreprise4245other
+Autres oeuvres sociales internes4248other
+REPRÉSENTANTS DU PERSONNEL425view
+Délégués du personnel4251other
+Syndicats et Comités d'entreprises, d'Établissement4252other
+Autres représentants du personnel4258other
+PERSONNEL, PARTICIPATION AUX BÉNÉFICES426other
+PERSONNEL – DÉPÔTS427other
+PERSONNEL, CHARGES À PAYER ET PRODUITS À RECEVOIR428view
+Dettes provisionnées pour congés à payer4281other
+Autres Charges à payer4286other
+Produits à recevoir4287receivable
+ORGANISMES SOCIAUX43view
+SÉCURITÉ SOCIALE431view
+Prestations familiales4311other
+Accidents de travail4312other
+Caisse de retraite obligatoire4313other
+Caisse de retraite facultative4314other
+Autres cotisations sociales4318other
+CAISSES DE RETRAITE COMPLÉMENTAIRE432other
+AUTRES ORGANISMES SOCIAUX433view
+Mutuelle4331other
+T.V.A. facturée sur production livrée à soi-même4334other
+T.V.A. sur factures à établir4335other
+ORGANISMES SOCIAUX, CHARGES À PAYER ET PRODUITS À RECEVOIR438view
+Charges sociales sur gratifications à payer4381other
+Charges sociales sur congés à payer4382other
+Autres charges à payer4386other
+Produits à recevoir4387receivable
+ÉTAT ET COLLECTIVITÉS PUBLIQUES44view
+ÉTAT, IMPÔT SUR LES BÉNÉFICES441other
+ÉTAT, AUTRES IMPÔTS ET TAXES442view
+Impôts et taxes d'Etat4421other
+Impôts et taxes pour les collectivités publiques4422other
+Impôts et taxes recouvrables sur des obligataires4423other
+Impôts et taxes recouvrables sur des associés4424other
+Droits de douane4426other
+Autres impôts et taxes4428other
+ÉTAT, T.V.A. FACTURÉE443view
+T.V.A. facturée sur ventes4431other
+T.V.A. facturée sur prestations de services4432other
+T.V.A. facturée sur travaux4433other
+ÉTAT, T.V.A. DUE OU CRÉDIT DE T.V.A.444view
+État, T.V.A. due4441other
+État, crédit de T.V.A. à reporter4449other
+ÉTAT, T.V.A. RÉCUPÉRABLE445view
+T.V.A. récupérable sur immobilisations4451other
+T.V.A. récupérable sur achats4452other
+T.V.A. récupérable sur transport4453other
+T.V.A. récupérable sur services extérieurs et autres charges4454other
+T.V.A. récupérable sur factures non parvenues4455other
+T.V.A. transférée par d'autres entreprises4456other
+ÉTAT, AUTRES TAXES SUR LE CHIFFRE D'AFFAIRES446other
+ÉTAT, IMPÔTS RETENUS À LA SOURCE447view
+Impôt Général sur le revenu4471other
+Impôts sur salaires4472other
+Contribution nationale4473other
+Contribution nationale de solidarité4474other
+Autres impôts et contributions4478other
+ÉTAT, CHARGES À PAYER ET PRODUITS À RECEVOIR448view
+Charges à payer4486other
+Produits à recevoir4487receivable
+ÉTAT, CRÉANCES ET DETTES DIVERSES449view
+État, obligations cautionnées4491receivable
+État, avances et acomptes versés sur impôts4492receivable
+État, fonds de dotation à recevoir4493receivable
+État, subventions d'équipement à recevoir4494receivable
+État, subventions d'exploitation à recevoir4495receivable
+État, subventions d'équilibre à recevoir4496receivable
+État, fonds réglementé provisionné4499receivable
+ORGANISMES INTERNATIONAUX45view
+OPÉRATIONS AVEC LES ORGANISMES AFRICAINS451other
+OPÉRATIONS AVEC LES AUTRES ORGANISMES INTERNATIONAUX452other
+ORGANISMES INTERNATIONAUX, FONDS DE DOTATION ET SUBVENTIONS À RECEVOIR458view
+Organismes internationaux, fonds de dotation à recevoir4581other
+Organismes internationaux, subventions à recevoir4582other
+ASSOCIÉS ET GROUPE46view
+ASSOCIÉS, OPÉRATIONS SUR LE CAPITAL461view
+Associés apports en nature4611receivable
+Associés apports en numéraire4612receivable
+Actionnaires, capital souscrit appelé non versé4613receivable
+Associés, capital appelé non versé4614receivable
+Associés, versements reçus sur augmentation de capital4615receivable
+Associés, versements anticipés4616receivable
+Actionnaires défaillants4617receivable
+Associés, autres apports4618receivable
+Associés, capital à rembourser4619receivable
+ASSOCIÉS, COMPTES COURANTS462view
+Principal4621receivable
+Intérêts courus4626receivable
+ASSOCIÉS, OPÉRATIONS FAITES EN COMMUN463receivable
+ASSOCIÉS, DIVIDENDES À PAYER465other
+GROUPE, COMPTES COURANTS466other
+ACTIONNAIRES, RESTANT DÛ SUR CAPITAL APPELÉ467receivable
+DÉBITEURS ET CRÉDITEURS DIVERS47view
+COMPTES D'ATTENTE471view
+Débiteurs divers4711other
+Créditeurs divers4712receivable
+VERSEMENTS RESTANT À EFFECTUER SUR TITRES NON LIBÉRÉS472view
+Titres de participation4726other
+Titres immobilisés4727other
+Titres de placement4728other
+RÉPARTITION PÉRIODIQUE DES CHARGES ET DES PRODUITS474view
+Charges4746other
+Produits4747other
+CRÉANCES SUR TRAVAUX NON ENCORE FACTURABLES475other
+CHARGES CONSTATÉES D'AVANCE476receivable
+PRODUITS CONSTATÉS D'AVANCE477other
+ÉCARTS DE CONVERSION - ACTIF478view
+Diminution des créances4781receivable
+Augmentation des dettes4782receivable
+Différences compensées par couverture de change4788receivable
+ÉCARTS DE CONVERSION - PASSIF479view
+Augmentation des créances4791other
+Diminution des dettes4792other
+Différences compensées par couverture de change4798other
+CRÉANCES ET DETTES HORS ACTIVITÉS ORDINAIRES (HAO)48view
+FOURNISSEURS D'INVESTISSEMENTS481view
+Immobilisations incorporelles4811other
+Immobilisations corporelles4812other
+Retenues de garantie4817receivable
+Factures non parvenues4818payable
+FOURNISSEURS D'INVESTISSEMENTS, EFFETS À PAYER482payable
+DETTES SUR ACQUISITION DE TITRES DE PLACEMENT483other
+AUTRES DETTES HORS ACTIVITES ORDINAIRES (H.A.O.)484other
+CRÉANCES SUR CESSIONS D'IMMOBILISATIONS485view
+En compte4851receivable
+Effets à recevoir4852receivable
+Retenues de garantie4857receivable
+Factures à établir4858receivable
+CRÉANCES SUR CESSIONS DE TITRES DE PLACEMENT486receivable
+AUTRES CRÉANCES HORS ACTIVITÉS ORDINAIRES (H.A.O.)488receivable
+DÉPRÉCIATIONS ET RISQUES PROVISIONNÉS (TIERS)49view
+DÉPRÉCIATIONS DES COMPTES FOURNISSEURS490other
+DÉPRÉCIATIONS DES COMPTES CLIENTS491view
+Créances litigieuses4911receivable
+Créances douteuses4912receivable
+DÉPRÉCIATIONS DES COMPTES PERSONNEL492other
+DÉPRÉCIATIONS DES COMPTES ORGANISMES SOCIAUX493other
+DÉPRÉCIATIONS DES COMPTES ÉTAT ET COLLECTIVITÉS PUBLIQUES494other
+DÉPRÉCIATIONS DES COMPTES ORGANISMES INTERNATIONAUX495other
+DÉPRÉCIATIONS DES COMPTES ASSOCIÉS ET GROUPE496view
+Associés, comptes courants4962other
+Associés, opérations faites en commun4963other
+Groupe, comptes courants4966other
+DÉPRÉCIATIONS DES COMPTES DÉBITEURS DIVERS497receivable
+DÉPRÉCIATIONS DES COMPTES DE CRÉANCES H.A.O.498view
+Créances sur cessions d'immobilisations4981receivable
+Créances sur cessions de titres de placement4982receivable
+Autres créances H.A.O.4983receivable
+RISQUES PROVISIONNÉS499view
+Sur opérations d'exploitation4991other
+Sur opérations H.A.O.4998other
+TITRES DE PLACEMENT50view
+TITRES DU TRÉSOR ET BONS DE CAISSE À COURT TERME501view
+Titres du Trésor à court terme5011other
+Titres d'organismes financiers5012other
+Bons de caisse à court terme5013other
+ACTIONS502view
+Actions propres5021other
+Actions cotées5022other
+Actions non cotées5023other
+Actions démembrées (certificats d'investissement ; droits de vote)5024other
+Autres titres conférant un droit de propriété5025other
+OBLIGATIONS503view
+Obligations émises par la société et rachetées par elle5031other
+Obligations cotées5032other
+Obligations non cotées5033other
+Autres titres conférant un droit de créance5035other
+BONS DE SOUSCRIPTION504view
+Bons de souscription d'actions5042other
+Bons de souscription d'obligations5043other
+TITRES NÉGOCIABLES HORS REGION505other
+INTÉRÊTS COURUS506view
+Titres du Trésor et bons de caisse à court terme5061other
+Actions5062other
+Obligations5063other
+AUTRES VALEURS ASSIMILÉES508other
+VALEURS À ENCAISSER51view
+EFFETS À ENCAISSER511other
+EFFETS À L'ENCAISSEMENT512other
+CHÈQUES À ENCAISSER513other
+CHÈQUES À L'ENCAISSEMENT514other
+CARTES DE CRÉDIT À ENCAISSER515other
+AUTRES VALEURS À L'ENCAISSEMENT518view
+Warrants5181other
+Billets de fonds5182other
+Chèques de voyage5185other
+Coupons échus5186other
+Intérêts échus des obligations5187other
+BANQUES52view
+BANQUES LOCALES521view
+BANQUES X5211view
+BANQUE Y5212other
+BANQUES AUTRES ÉTATS REGION522other
+BANQUES AUTRES ETATS ZONE MONETAIRE523other
+BANQUES HORS ZONE MONETAIRE524other
+BANQUES, INTERETS COURUS526other
+ÉTABLISSEMENTS FINANCIERS ET ASSIMILÉS53view
+CHÈQUES POSTAUX531other
+TRÉSOR532other
+SOCIÉTÉS DE GESTION ET D'INTERMÉDIATION (S.G.I.)533other
+ETABLISSEMENTS FINANCIERS, INTERETS COURUS536other
+AUTRES ORGANISMES FINANCIERS538other
+INSTRUMENTS DE TRÉSORERIE54view
+OPTIONS DE TAUX D'INTÉRÊT541other
+OPTIONS DE TAUX DE CHANGE542other
+OPTIONS DE TAUX BOURSIERS543other
+INSTRUMENTS DE MARCHÉS À TERME544other
+AVOIRS D'OR ET AUTRES MÉTAUX PRÉCIEUX ()545other
+BANQUES, CRÉDITS DE TRÉSORERIE ET D'ESCOMPTE56view
+CRÉDITS DE TRÉSORERIE561other
+ESCOMPTE DE CRÉDITS DE CAMPAGNE564other
+ESCOMPTE DE CRÉDITS ORDINAIRES565other
+BANQUES, CREDITS DE TRESORERIE, INTERETS COURUS566other
+CAISSE57view
+CAISSE SIÈGE SOCIAL571view
+en unités monétaires légales5711other
+en devises5712other
+CAISSE SUCCURSALE A572view
+en unités monétaires légales5721other
+en devises5722other
+CAISSE SUCCURSALE B573view
+en unités monétaires légales5731other
+en devises5732other
+RÉGIES D'AVANCES, ACCRÉDITIFS ET VIREMENTS INTERNES58view
+RÉGIES D'AVANCE581other
+ACCRÉDITIFS582other
+VIREMENTS DE FONDS585other
+AUTRES VIREMENTS INTERNES588other
+DÉPRÉCIATIONS ET RISQUES PROVISIONNÉS59view
+DÉPRÉCIATIONS DES TITRES DE PLACEMENT590other
+DÉPRÉCIATIONS DES TITRES ET VALEURS À ENCAISSER591other
+DÉPRÉCIATIONS DES COMPTES BANQUES592other
+DÉPRÉCIATIONS DES COMPTES ÉTABLISSEMENTS FINANCIERS ET ASSIMILÉS593other
+DÉPRÉCIATIONS DES COMPTES D’INSTRUMENTS DE TRÉSORERIE594other
+RISQUES PROVISIONNÉS À CARACTÈRE FINANCIER599other
+ACHATS ET VARIATIONS DE STOCKS60view
+ACHATS DE MARCHANDISES601view
+dans la Région6011other
+hors Région6012other
+aux entreprises du groupe dans la Région6013other
+aux entreprises du groupe hors Région6014other
+Rabais, Remises et Ristournes obtenus (non ventilés)6019other
+ACHATS DE MATIÈRES PREMIÈRES ET FOURNITURES LIÉES602view
+dans la Région6021other
+hors Région6022other
+aux entreprises du groupe dans la Région6023other
+aux entreprises du groupe hors Région6024other
+Rabais, Remises et Ristournes obtenus (non ventilés)6029other
+VARIATIONS DES STOCKS DE BIENS ACHETÉS603view
+Variations des stocks de marchandises6031other
+Variations des stocks de matières premières et fournitures liées6032other
+Variations des stocks d'autres approvisionnements6033other
+ACHATS STOCKÉS DE MATIÈRES ET FOURNITURES CONSOMMABLES604view
+Matières consommables6041other
+Matières combustibles6042other
+Produits d'entretien6043other
+Fournitures d'atelier et d'usine6044other
+Fournitures de magasin6046other
+Fournitures de bureau6047other
+Rabais, Remises et Ristournes obtenus (non ventilés)6049other
+AUTRES ACHATS605view
+Fournitures non stockables -Eau6051other
+Fournitures non stockables - Electricité6052other
+Fournitures non stockables – Autres énergies6053other
+Fournitures d'entretien non stockables6054other
+Fournitures de bureau non stockables6055other
+Achats de petit matériel et outillage6056other
+Achats d'études et prestations de services6057other
+Achats de travaux, matériels et équipements6058other
+Rabais, Remises et Ristournes obtenus (non ventilés)6059other
+ACHATS D'EMBALLAGES608view
+Emballages perdus6081other
+Emballages récupérables non identifiables6082other
+Emballages à usage mixte6083other
+Rabais, Remises et Ristournes obtenus (non ventilés)6089other
+TRANSPORTS61view
+TRANSPORTS SUR ACHATS()611other
+TRANSPORTS SUR VENTES612other
+TRANSPORTS POUR LE COMPTE DE TIERS613other
+TRANSPORTS DU PERSONNEL614other
+TRANSPORTS DE PLIS616other
+AUTRES FRAIS DE TRANSPORT618view
+Voyages et déplacements6181other
+Transports entre établissements ou chantiers6182other
+Transports administratifs6183other
+SERVICES EXTÉRIEURS A62view
+SOUS-TRAITANCE GÉNÉRALE621other
+LOCATIONS ET CHARGES LOCATIVES622view
+Locations de terrains6221other
+Locations de bâtiments6222other
+Locations de matériels et outillages6223other
+Malis sur emballages6224other
+Locations d'emballages6225other
+Locations et charges locatives diverses6228other
+REDEVANCES DE CRÉDIT-BAIL ET CONTRATS ASSIMILÉS623view
+Crédit-bail immobilier6232other
+Crédit-bail mobilier6233other
+Contrats assimilés6235other
+ENTRETIEN, RÉPARATIONS ET MAINTENANCE624view
+Entretien et réparations des biens immobiliers6241other
+Entretien et réparations des biens mobiliers6242other
+Maintenance6243other
+Autres entretiens et réparations6248other
+PRIMES D'ASSURANCE625view
+Assurances multirisques6251other
+Assurances matériel de transport6252other
+Assurances risques d'exploitation6253other
+Assurances responsabilité du producteur6254other
+Assurances insolvabilité clients6255other
+Assurances transport sur achats6256other
+Assurances transport sur ventes6257other
+Autres primes d'assurances6258other
+ÉTUDES, RECHERCHES ET DOCUMENTATION626view
+Études et recherches6261other
+Documentation générale6265other
+Documentation technique6266other
+PUBLICITÉ, PUBLICATIONS, RELATIONS PUBLIQUES627view
+Annonces, insertions6271other
+Catalogues, imprimés publicitaires6272other
+Échantillons6273other
+Foires et expositions6274other
+Publications6275other
+Cadeaux à la clientèle6276other
+Frais de colloques, séminaires, conférences6277other
+Autres charges de publicité et relations publiques6278other
+FRAIS DE TÉLÉCOMMUNICATIONS628view
+Frais de téléphone6281other
+Frais de télex6282other
+Frais de télécopie6283other
+Autres frais de télécommunications6288other
+SERVICES EXTÉRIEURS B63view
+FRAIS BANCAIRES631view
+Frais sur titres (achat, vente, garde)6311other
+Frais sur effets6312other
+Location de coffres6313other
+Commissions sur cartes de crédit6315other
+Frais d'émission d'emprunts6316other
+Autres frais bancaires6318other
+RÉMUNÉRATIONS D'INTERMÉDIAIRES ET DE CONSEILS632view
+Commissions et courtages sur achats6321other
+Commissions et courtages sur ventes6322other
+Rémunérations des transitaires6323other
+Honoraires6324other
+Frais d'actes et de contentieux6325other
+Divers frais6328other
+FRAIS DE FORMATION DU PERSONNEL633other
+REDEVANCES POUR BREVETS, LICENCES, LOGICIELS ET DROITS SIMILAIRES634view
+Redevances pour brevets, licences, concessions et droits similaires6342other
+Redevances pour logiciels6343other
+Redevances pour marques6344other
+COTISATIONS635view
+Cotisations6351other
+Concours divers6358other
+RÉMUNÉRATIONS DE PERSONNEL EXTÉRIEUR À L'ENTREPRISE637view
+Personnel intérimaire6371other
+Personnel détaché ou prêté à l'entreprise6372other
+AUTRES CHARGES EXTERNES638view
+Frais de recrutement du personnel6381other
+Frais de déménagement6382other
+Réceptions6383other
+Missions6384other
+IMPÔTS ET TAXES64view
+IMPÔTS ET TAXES DIRECTS641view
+Impôts fonciers et taxes annexes6411other
+Patentes, licences et taxes annexes6412other
+Taxes sur appointements et salaires6413other
+Taxes d'apprentissage6414other
+Formation professionnelle continue6415other
+Autres impôts et taxes directs6418other
+IMPÔTS ET TAXES INDIRECTS645other
+DROITS D'ENREGISTREMENT646view
+Droits de mutation6461other
+Droits de timbre6462other
+Taxes sur les véhicules de société6463other
+Vignettes6464other
+Autres droits6468other
+PÉNALITÉS ET AMENDES FISCALES647view
+Pénalités d'assiette, impôts directs6471other
+Pénalités d'assiette, impôts indirects6472other
+Pénalités de recouvrement, impôts directs6473other
+Pénalités de recouvrement, impôts indirects6474other
+Autres amendes pénales et fiscales6478other
+AUTRES IMPÔTS ET TAXES648other
+AUTRES CHARGES65view
+PERTES SUR CRÉANCES CLIENTS ET AUTRES DÉBITEURS651view
+Clients6511other
+Autres débiteurs6515other
+QUOTE-PART DE RÉSULTAT SUR OPÉRATIONS FAITES EN COMMUN652view
+Quote-part transférée de bénéfices (comptabilité du gérant)6521other
+Pertes imputées par transfert (comptabilité des associés non gérants)6525other
+QUOTE-PART DE RÉSULTAT ANNULÉE SUR EXÉCUTION PARTIELLE DE CONTRATS PLURI-EXERCICES653other
+VALEUR COMPTABLE DES CESSIONS COURANTES D'IMMOBILISATIONS654other
+CHARGES DIVERSES658view
+Jetons de présence et autres rémunérations d'administrateurs6581other
+Dons6582other
+Mécénat6583other
+CHARGES PROVISIONNÉES D'EXPLOITATION659view
+sur risques à court terme6591other
+sur stocks6593other
+sur créances6594other
+Autres charges provisionnées6598other
+CHARGES DE PERSONNEL66view
+RÉMUNÉRATIONS DIRECTES VERSÉES AU PERSONNEL NATIONAL661view
+Appointements salaires et commissions6611other
+Primes et gratifications6612other
+Congés payés6613other
+Indemnités de préavis, de licenciement et de recherche d'embauche6614other
+Indemnités de maladie versées aux travailleurs6615other
+Supplément familial6616other
+Avantages en nature6617other
+Autres rémunérations directes6618other
+RÉMUNÉRATIONS DIRECTES VERSÉES AU PERSONNEL NON NATIONAL662view
+Appointements salaires et commissions6621other
+Primes et gratifications6622other
+Congés payés6623other
+Indemnités de préavis, de licenciement et de recherche d'embauche6624other
+Indemnités de maladie versées aux travailleurs6625other
+Supplément familial6626other
+Avantages en nature6627other
+Autres rémunérations directes6628other
+INDEMNITÉS FORFAITAIRES VERSÉES AU PERSONNEL663view
+Indemnités de logement6631other
+Indemnités de représentation6632other
+Indemnités d'expatriation6633other
+Autres indemnités et avantages divers6638other
+CHARGES SOCIALES664view
+Charges sociales sur rémunération du personnel national6641other
+Charges sociales sur rémunération du personnel non national6642other
+RÉMUNÉRATIONS ET CHARGES SOCIALES DE L'EXPLOITANT INDIVIDUEL666view
+Rémunération du travail de l'exploitant6661other
+Charges sociales6662other
+RÉMUNÉRATION TRANSFÉRÉE DE PERSONNEL EXTÉRIEUR667view
+Personnel intérimaire6671other
+Personnel détaché ou prêté à l’entreprise6672other
+AUTRES CHARGES SOCIALES668view
+Versements aux Syndicats et Comités d'entreprise, d'établissement6681other
+Versements aux Comités d'hygiène et de sécurité6682other
+Versements aux autres oeuvres sociales6683other
+Médecine du travail et pharmacie6684other
+FRAIS FINANCIERS ET CHARGES ASSIMILÉES67view
+INTÉRÊTS DES EMPRUNTS671view
+Emprunts obligataires6711other
+Emprunts auprès des établissements de crédit6712other
+Dettes liées à des participations6713other
+INTÉRÊTS DANS LOYERS DE CRÉDIT-BAIL ET CONTRATS ASSIMILÉS672view
+Intérêts dans loyers de crédit-bail immobilier6721other
+Intérêts dans loyers de crédit-bail mobilier6722other
+Intérêts dans loyers des autres contrats6723other
+ESCOMPTES ACCORDÉS673other
+AUTRES INTÉRÊTS674view
+Avances reçues et dépôts créditeurs6741other
+Comptes courants bloqués6742other
+Intérêts sur obligations cautionnées6743other
+Intérêts sur dettes commerciales6744other
+Intérêts bancaires et sur opérations de trésorerie et d’escompte6745other
+Intérêts sur dettes diverses6748other
+ESCOMPTES DES EFFETS DE COMMERCE675other
+PERTES DE CHANGE676other
+PERTES SUR CESSIONS DE TITRES DE PLACEMENT677other
+PERTES SUR RISQUES FINANCIERS678view
+sur rentes viagères6781other
+sur opérations financières6782other
+sur instruments de trésorerie6784other
+CHARGES PROVISIONNÉES FINANCIÈRES679view
+sur risques financiers6791other
+sur titres de placement6795other
+Autres charges provisionnées financières6798other
+DOTATIONS AUX AMORTISSEMENTS68view
+DOTATIONS AUX AMORTISSEMENTS D'EXPLOITATION681view
+Dotations aux amortissements des charges immobilisées6811other
+Dotations aux amortissements des immobilisations incorporelles6812other
+Dotations aux amortissements des immobilisations corporelles6813other
+DOTATIONS AUX AMORTISSEMENTS À CARACTÈRE FINANCIER687view
+Dotations aux amortissements des primes de remboursement des obligations6872other
+Autres dotations aux amortissements à caractère financier6878other
+DOTATIONS AUX PROVISIONS69view
+DOTATIONS AUX PROVISIONS D'EXPLOITATION691view
+pour risques et charges6911other
+pour grosses réparations6912other
+pour dépréciation des immobilisations incorporelles6913other
+pour dépréciation des immobilisations corporelles6914other
+DOTATIONS AUX PROVISIONS FINANCIÈRES697view
+pour risques et charges6971other
+pour dépréciation des immobilisations financières6972other
+VENTES70view
+VENTES DE MARCHANDISES701view
+dans la Région7011other
+hors Région7012other
+aux entreprises du groupe dans la Région7013other
+aux entreprises du groupe hors Région7014other
+VENTES DE PRODUITS FINIS702view
+dans la Région7021other
+hors Région7022other
+aux entreprises du groupe dans la Région7023other
+aux entreprises du groupe hors Région7024other
+VENTES DE PRODUITS INTERMÉDIAIRES703view
+dans la Région7031other
+hors Région7032other
+aux entreprises du groupe dans la Région7033other
+aux entreprises du groupe hors Région7034other
+VENTES DE PRODUITS RÉSIDUELS704view
+dans la Région7041other
+hors Région7042other
+aux entreprises du groupe dans la Région7043other
+aux entreprises du groupe hors Région7044other
+TRAVAUX FACTURÉS705view
+dans la Région7051other
+hors Région7052other
+aux entreprises du groupe dans la Région7053other
+aux entreprises du groupe hors Région7054other
+SERVICES VENDUS706view
+dans la Région7061other
+hors Région7062other
+aux entreprises du groupe dans la Région7063other
+aux entreprises du groupe hors Région7064other
+PRODUITS ACCESSOIRES707view
+Ports, emballages perdus et autres frais facturés7071other
+Commissions et courtages7072other
+Locations7073other
+Bonis sur reprises et cessions d'emballages7074other
+Mise à disposition de personnel7075other
+Redevances pour brevets, logiciels, marques et droits similaires7076other
+Services exploités dans l'intérêt du personnel7077other
+Autres produits accessoires7078other
+SUBVENTIONS D'EXPLOITATION71view
+SUR PRODUITS À L'EXPORTATION711other
+SUR PRODUITS À L'IMPORTATION712other
+SUR PRODUITS DE PÉRÉQUATION713other
+AUTRES SUBVENTIONS D'EXPLOITATION718view
+Versées par l'État et les collectivités publiques7181other
+Versées par les organismes internationaux7182other
+Versées par des tiers7183other
+PRODUCTION IMMOBILISÉE72view
+IMMOBILISATIONS INCORPORELLES721other
+IMMOBILISATIONS CORPORELLES722other
+IMMOBILISATIONS FINANCIÈRES726other
+VARIATIONS DES STOCKS DE BIENS ET DE SERVICES PRODUITS73view
+VARIATIONS DES STOCKS DE PRODUITS EN COURS734view
+Produits en cours7341other
+Travaux en cours7342other
+VARIATIONS DES EN-COURS DE SERVICES735view
+Études en cours7351other
+Prestations de services en cours7352other
+VARIATIONS DES STOCKS DE PRODUITS FINIS736other
+VARIATIONS DES STOCKS DE PRODUITS INTERMÉDIAIRES ET RÉSIDUELS737view
+Produits intermédiaires7371other
+Produits résiduels7372other
+AUTRES PRODUITS75view
+QUOTE-PART DE RÉSULTAT SUR OPÉRATIONS FAITES EN COMMUN752view
+Quote-part transférée de pertes (comptabilité du gérant)7521other
+Bénéfices attribués par transfert (comptabilité des associés non gérants)7525other
+QUOTE-PART DE RÉSULTAT SUR EXÉCUTION PARTIELLE DE CONTRATS PLURIEXERCICES753other
+PRODUITS DES CESSIONS COURANTES D'IMMOBILISATIONS754other
+PRODUITS DIVERS758view
+Jetons de présence et autres rémunérations d'administrateurs7581other
+Indemnités d’assurances reçues7582other
+REPRISES DE CHARGES PROVISIONNÉES D'EXPLOITATION759view
+sur risques à court terme7591other
+sur stocks7593other
+sur créances7594other
+sur autres charges provisionnées7598other
+REVENUS FINANCIERS ET PRODUITS ASSIMILÉS77view
+INTÉRÊTS DE PRÊTS771other
+REVENUS DE PARTICIPATIONS772other
+ESCOMPTES OBTENUS773other
+REVENUS DE TITRES DE PLACEMENT774other
+GAINS DE CHANGE776other
+GAINS SUR CESSIONS DE TITRES DE PLACEMENT777other
+GAINS SUR RISQUES FINANCIERS778view
+sur rentes viagères7781other
+sur opérations financières7782other
+sur instruments de trésorerie7784other
+REPRISES DE CHARGES PROVISIONNÉES FINANCIÈRES779view
+sur risques financiers7791other
+sur titres de placement7795other
+autres charges provisionnées financières7798other
+TRANSFERTS DE CHARGES78view
+TRANSFERTS DE CHARGES D'EXPLOITATION781other
+TRANSFERTS DE CHARGES FINANCIERES787other
+REPRISES DE PROVISIONS79view
+REPRISES DE PROVISIONS D'EXPLOITATION791view
+pour risques et charges7911other
+pour grosses réparations7912other
+pour dépréciation des immobilisations incorporelles7913other
+pour dépréciation des immobilisations corporelles7914other
+REPRISES DE PROVISIONS FINANCIÈRES797view
+pour risques et charges7971other
+pour dépréciation des immobilisations financières7972other
+REPRISES D'AMORTISSEMENTS798other
+VALEURS COMPTABLES DES CESSIONS D'IMMOBILISATIONS81view
+IMMOBILISATIONS INCORPORELLES811other
+IMMOBILISATIONS CORPORELLES812other
+IMMOBILISATIONS FINANCIÈRES816other
+PRODUITS DES CESSIONS D'IMMOBILISATIONS82view
+IMMOBILISATIONS INCORPORELLES821other
+IMMOBILISATIONS CORPORELLES822other
+IMMOBILISATIONS FINANCIÈRES826other
+CHARGES HORS ACTIVITÉS ORDINAIRES83view
+CHARGES H.A.O. CONSTATÉES831other
+PERTES SUR CRÉANCES H.A.O.834other
+DONS ET LIBÉRALITÉS ACCORDÉS835other
+ABANDONS DE CRÉANCES CONSENTIS836other
+CHARGES PROVISIONNÉES H.A.O.839other
+PRODUITS HORS ACTIVITÉS ORDINAIRES84view
+PRODUITS H.A.O CONSTATÉS841other
+DONS ET LIBÉRALITÉS OBTENUS845other
+ABANDONS DE CRÉANCES OBTENUS846other
+TRANSFERTS DE CHARGES H.A.O848other
+REPRISES DES CHARGES PROVISIONNÉES H.A.O.849other
+DOTATIONS HORS ACTIVITÉS ORDINAIRES85view
+DOTATIONS AUX PROVISIONS RÉGLEMENTÉES851other
+DOTATIONS AUX AMORTISSEMENTS H.A.O.852other
+DOTATIONS AUX PROVISIONS POUR DÉPRÉCIATION H.A.O.853other
+DOTATIONS AUX PROVISIONS POUR RISQUES ET CHARGES H.A.O.854other
+AUTRES DOTATIONS H.A.O.858other
+REPRISES HORS ACTIVITÉS ORDINAIRES86view
+REPRISES DE PROVISIONS RÉGLEMENTÉES861other
+REPRISES D’AMORTISSEMENTS862other
+REPRISES DE PROVISIONS POUR DÉPRÉCIATION H.A.O.863other
+REPRISES DE PROVISIONS POUR RISQUES ET CHARGES H.A.O.864other
+REPRISES DE SUBVENTIONS D’INVESTISSEMENT865other
+AUTRES REPRISES H.A.O.868other
+PARTICIPATION DES TRAVAILLEURS87view
+PARTICIPATION LÉGALE AUX BÉNÉFICES871other
+PARTICIPATION CONTRACTUELLE AUX BÉNÉFICES874other
+AUTRES PARTICIPATIONS878other
+SUBVENTIONS D'ÉQUILIBRE88view
+ÉTAT881other
+COLLECTIVITÉS PUBLIQUES884other
+GROUPE886other
+AUTRES888other
+IMPÔTS SUR LE RÉSULTAT89view
+IMPÔTS SUR LES BÉNÉFICES DE L'EXERCICE891view
+Activités exercées dans l'État8911other
+Activités exercées dans les autres États de la Région8912other
+Activités exercées hors Région8913other
+RAPPEL D'IMPÔTS SUR RÉSULTATS ANTÉRIEURS892other
+IMPÔT MINIMUM FORFAITAIRE (I.M.F.)895other
+DÉGRÈVEMENTS ET ANNULATIONS D’IMPÔTS SUR RÉSULTATS ANTÉRIEURS899view
+Dégrèvements8991other
+Annulations pour pertes rétroactives8994other
+
+ ENGAGEMENTS OBTENUS ET ENGAGEMENTS ACCORDÉS
+ 9
+ view
+
+
+
+
+ ENGAGEMENTS DE FINANCEMENT OBTENUS
+ 901
+ view
+
+
+
+
+ Crédits confirmés obtenus
+ 9011
+ other
+
+
+
+
+ Emprunts restant à encaisser
+ 9012
+ other
+
+
+
+
+ Facilités de financement renouvelables
+ 9013
+ other
+
+
+
+
+ Facilités d'émission
+ 9014
+ other
+
+
+
+
+ Autres engagements de financement obtenus
+ 9018
+ other
+
+
+
+
+ ENGAGEMENTS DE GARANTIE OBTENUS
+ 902
+ view
+
+
+
+
+ Avals obtenus
+ 9021
+ other
+
+
+
+
+ Cautions, garanties obtenues
+ 9022
+ other
+
+
+
+
+ Hypothèques obtenues
+ 9023
+ other
+
+
+
+
+ Effets endossés par des tiers
+ 9024
+ other
+
+
+
+
+ Autres garanties obtenues
+ 9028
+ other
+
+
+
+
+ ENGAGEMENTS RÉCIPROQUES
+ 903
+ view
+
+
+
+
+ Achats de marchandises à terme
+ 9031
+ other
+
+
+
+
+ Achats à terme de devises
+ 9032
+ other
+
+
+
+
+ Commandes fermes des clients
+ 9033
+ other
+
+
+
+
+ Autres engagements réciproques
+ 9038
+ other
+
+
+
+
+ AUTRES ENGAGEMENTS OBTENUS
+ 904
+ view
+
+
+
+
+ Abandons de créances conditionnels
+ 9041
+ other
+
+
+
+
+ Ventes avec clause de réserve de propriété
+ 9043
+ other
+
+
+
+
+ Divers engagements obtenus
+ 9048
+ other
+
+
+
+
+ ENGAGEMENTS DE FINANCEMENT ACCORDÉS
+ 905
+ view
+
+
+
+
+ Crédits accordés non décaissés
+ 9051
+ other
+
+
+
+
+ Autres engagements de financement accordés
+ 9058
+ other
+
+
+
+
+ ENGAGEMENTS DE GARANTIE ACCORDÉS
+ 906
+ view
+
+
+
+
+ Avals accordés
+ 9061
+ other
+
+
+
+
+ Cautions, garanties accordées
+ 9062
+ other
+
+
+
+
+ Hypothèques accordées
+ 9063
+ other
+
+
+
+
+ Effets endossés par l'entreprise
+ 9064
+ other
+
+
+
+
+ Autres garanties accordées
+ 9068
+ other
+
+
+
+
+ ENGAGEMENTS RÉCIPROQUES
+ 907
+ view
+
+
+
+
+ Ventes de marchandises à terme
+ 9071
+ other
+
+
+
+
+ Ventes à terme de devises
+ 9072
+ other
+
+
+
+
+ Commandes fermes aux fournisseurs
+ 9073
+ other
+
+
+
+
+ Autres engagements réciproques
+ 9078
+ other
+
+
+
+
+ AUTRES ENGAGEMENTS ACCORDÉS
+ 908
+ view
+
+
+
+
+ Annulations conditionnelles de dettes
+ 9081
+ other
+
+
+
+
+ Engagements de retraite
+ 9082
+ other
+
+
+
+
+ Achats avec clause de réserve de propriété
+ 9083
+ other
+
+
+
+
+ Divers engagements accordés
+ 9088
+ other
+
+
+
+
+ CONTREPARTIES DES ENGAGEMENTS
+ 91
+ view
+
+
+
+
+ CONTREPARTIE DES ENGAGEMENTS OBTENUS, 901 à 904
+
+ 911
+ other
+
+
+
+
+ CONTREPARTIE DES ENGAGEMENTS OBTENUS, 901 à 904
+
+ 912
+ other
+
+
+
+
+ CONTREPARTIE DES ENGAGEMENTS OBTENUS, 901 à 904
+
+ 913
+ other
+
+
+
+
+ CONTREPARTIE DES ENGAGEMENTS OBTENUS, 901 à 904
+
+ 914
+ other
+
+
+
+
+ CONTREPARTIE DES ENGAGEMENTS ACCORDÉS, 905 à 908
+
+ 915
+ other
+
+
+
+
+ CONTREPARTIE DES ENGAGEMENTS ACCORDÉS, 905 à 908
+
+ 916
+ other
+
+
+
+
+ CONTREPARTIE DES ENGAGEMENTS ACCORDÉS, 905 à 908
+
+ 917
+ other
+
+
+
+
+ CONTREPARTIE DES ENGAGEMENTS ACCORDÉS, 905 à 908
+
+ 918
+ other
+
+
+
+
+ COMPTES REFLECHIS
+ 92
+ view
+
+
+
+
+ COMPTES DE RECLASSEMENTS
+ 93
+ view
+
+
+
+
+ COMPTES DE COÛTS
+ 94
+ view
+
+
+
+
+ COMPTES DE STOCKS
+ 95
+ view
+
+
+
+
+ COMPTES D'ECARTS SUR COUTS PREETABLIS
+ 96
+ view
+
+
+
+
+ COMPTES DE DIFFERENCES DE TRAITEMENT COMPTABLE
+
+ 97
+ view
+
+
+
+
+ COMPTES DE RESULTATS
+ 98
+ view
+
+
+
+
+ COMPTES DE LIAISONS INTERNES
+ 99
+ view
+
+
+
+
+
+
+ XOF
+ CFA
+ 1
+ 4
+
+
+ 655.957
+
+
+
+
+
+
+ Plan de Taxes SYSCOHADA
+
+
+
+ SYSCOHADA - Plan de compte
+
+
+
+
+
+
+
+
+
+
+ Base H.T. TVA collectée
+ Base HT TVA collectée
+ 1.00
+
+
+
+ Base H.T. 18.0%
+ TVA collectée à 18.0% (Base H.T.)
+
+ 1.00
+
+
+ TVA collectée
+ TVA collectée
+ 1.00
+
+
+
+ TVA 18.0%
+ TVA collectée à 18.0%
+
+ 1.00
+
+
+
+ Base H.T. TVA acquittée
+ Base HT TVA acquittée
+ 1.00
+
+
+
+ Base H.T. 18.0%
+ TVA acquittée à 18.0% (Base H.T.)
+
+ 1.00
+
+
+
+ TVA acquittée
+ TVA acquittée
+ 1.00
+
+
+
+ TVA 18.0%
+ TVA acquittée à 18.0%
+
+ 1.00
+
+
+
+ TVA 18% (vente)
+
+
+ percent
+
+
+
+
+ sale
+
+
+
+
+
+
+
+
+ TVA 18% (achat)
+
+
+ percent
+ purchase
+
+
+
+
+
+
+
+
+
+
+
+ Exonéré de TVA
+
+
+ none
+
+
diff --git a/addons/l10n_syscohada/l10n_syscohada_wizard.xml b/addons/l10n_syscohada/l10n_syscohada_wizard.xml
new file mode 100644
index 00000000000..84c0f68e0a4
--- /dev/null
+++ b/addons/l10n_syscohada/l10n_syscohada_wizard.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ Generate Chart of Accounts from a Chart Template
+ Generate Chart of Accounts from a SYSCOHADA Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
+ This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
+
+ open
+
+
+
diff --git a/addons/lunch/lunch.py b/addons/lunch/lunch.py
index 1499dd4414e..c940d23fa40 100644
--- a/addons/lunch/lunch.py
+++ b/addons/lunch/lunch.py
@@ -81,7 +81,7 @@ class lunch_cashbox(osv.osv):
_columns = {
'manager': fields.many2one('res.users', 'Manager'),
'name': fields.char('Name', size=30, required=True, unique = True),
- 'sum_remain': fields.function(amount_available, method=True, string='Total Remaining'),
+ 'sum_remain': fields.function(amount_available, string='Total Remaining'),
}
lunch_cashbox()
@@ -140,7 +140,7 @@ class lunch_order(osv.osv):
states = {'draft':[('readonly', False)]}),
'state': fields.selection([('draft', 'Draft'), ('confirmed', 'Confirmed'), ], \
'State', readonly=True, select=True),
- 'price': fields.function(_price_get, method=True, string="Price"),
+ 'price': fields.function(_price_get, string="Price"),
'category': fields.many2one('lunch.category','Category'),
}
diff --git a/addons/mail_gateway/i18n/fi.po b/addons/mail_gateway/i18n/fi.po
new file mode 100644
index 00000000000..fb05ccd2184
--- /dev/null
+++ b/addons/mail_gateway/i18n/fi.po
@@ -0,0 +1,360 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-20 10:00+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-21 04:37+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: mail_gateway
+#: field:mailgate.message,res_id:0
+msgid "Resource ID"
+msgstr "Resurssi ID"
+
+#. module: mail_gateway
+#: code:addons/mail_gateway/mail_gateway.py:68
+#: code:addons/mail_gateway/mail_gateway.py:71
+#: code:addons/mail_gateway/mail_gateway.py:89
+#, python-format
+msgid "Method is not implemented"
+msgstr "Metodia ei ole toteutettu"
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+#: field:mailgate.message,email_from:0
+msgid "From"
+msgstr "Lähettäjä"
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+msgid "Open Attachments"
+msgstr "Avaa liitteet"
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+msgid "Message Details"
+msgstr "Viestin yksityiskohdat"
+
+#. module: mail_gateway
+#: field:mailgate.message,message_id:0
+msgid "Message Id"
+msgstr "Viestin ID"
+
+#. module: mail_gateway
+#: field:mailgate.message,ref_id:0
+msgid "Reference Id"
+msgstr "Viite id"
+
+#. module: mail_gateway
+#: view:mailgate.thread:0
+msgid "Mailgateway History"
+msgstr "Postiyhteyden historia"
+
+#. module: mail_gateway
+#: code:addons/mail_gateway/mail_gateway.py:249
+#, python-format
+msgid "Note"
+msgstr "Huomautus"
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+msgid "Group By..."
+msgstr "Ryhmittely.."
+
+#. module: mail_gateway
+#: constraint:res.partner:0
+msgid "Error ! You can not create recursive associated members."
+msgstr "Virhe! Rekursiivisesti rinnastettuja jäseniä ei voi luoda."
+
+#. module: mail_gateway
+#: help:mailgate.message,message_id:0
+msgid "Message Id on Email."
+msgstr "Viestin id sähköpostissa"
+
+#. module: mail_gateway
+#: help:mailgate.message,email_to:0
+msgid "Email Recipients"
+msgstr "Sähköpostin vastaanottajat"
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+msgid "Details"
+msgstr "Yksityiskohdat"
+
+#. module: mail_gateway
+#: view:mailgate.thread:0
+msgid "Mailgate History"
+msgstr "Sähöpostivälittäjän historia"
+
+#. module: mail_gateway
+#: model:ir.model,name:mail_gateway.model_email_server_tools
+msgid "Email Server Tools"
+msgstr "Sähköpostipalvelimen työkalut"
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+msgid "Email Followers"
+msgstr "Sähköpostin seuraajat"
+
+#. module: mail_gateway
+#: model:ir.model,name:mail_gateway.model_res_partner
+#: view:mailgate.message:0
+#: field:mailgate.message,partner_id:0
+msgid "Partner"
+msgstr "Yhteistyökumppani"
+
+#. module: mail_gateway
+#: code:addons/mail_gateway/mail_gateway.py:250
+#, python-format
+msgid " wrote on %s:\n"
+msgstr ""
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+#: field:mailgate.message,description:0
+#: field:mailgate.message,message:0
+msgid "Description"
+msgstr "Kuvaus"
+
+#. module: mail_gateway
+#: field:mailgate.message,email_to:0
+msgid "To"
+msgstr "Vastaanottaja"
+
+#. module: mail_gateway
+#: help:mailgate.message,references:0
+msgid "References emails."
+msgstr "Viittaavat sähköpostit"
+
+#. module: mail_gateway
+#: help:mailgate.message,email_cc:0
+msgid "Carbon Copy Email Recipients"
+msgstr "Kopio viestistä vastaanottajille"
+
+#. module: mail_gateway
+#: model:ir.module.module,shortdesc:mail_gateway.module_meta_information
+msgid "Email Gateway System"
+msgstr "Sähköpostivälitysjärjstelmä"
+
+#. module: mail_gateway
+#: field:mailgate.message,date:0
+msgid "Date"
+msgstr "Päiväys"
+
+#. module: mail_gateway
+#: field:mailgate.message,model:0
+msgid "Object Name"
+msgstr "Objektin nimi"
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+msgid "Partner Name"
+msgstr "Kumppanin Nimi"
+
+#. module: mail_gateway
+#: model:ir.actions.act_window,name:mail_gateway.action_view_mailgate_thread
+msgid "Mailgateway Threads"
+msgstr "sähköpostivälittäjän keskustelut"
+
+#. module: mail_gateway
+#: code:addons/mail_gateway/mail_gateway.py:247
+#, python-format
+msgid "Opportunity"
+msgstr "Mahdollisuus"
+
+#. module: mail_gateway
+#: model:ir.actions.act_window,name:mail_gateway.act_res_partner_emails
+#: model:ir.actions.act_window,name:mail_gateway.action_view_mailgate_message
+#: view:mailgate.message:0
+#: field:res.partner,emails:0
+msgid "Emails"
+msgstr "Sähköpostit"
+
+#. module: mail_gateway
+#: code:addons/mail_gateway/mail_gateway.py:252
+#, python-format
+msgid "Stage"
+msgstr "Vaihe"
+
+#. module: mail_gateway
+#: code:addons/mail_gateway/mail_gateway.py:250
+#, python-format
+msgid " added note on "
+msgstr " lisäsi huomautuksen "
+
+#. module: mail_gateway
+#: help:mailgate.message,email_from:0
+msgid "Email From"
+msgstr "Sähköposti lähettäjältä"
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+msgid "Thread"
+msgstr "Keskustelu"
+
+#. module: mail_gateway
+#: model:ir.model,name:mail_gateway.model_mailgate_message
+msgid "Mailgateway Message"
+msgstr "sähköpostivälittäjän viesti"
+
+#. module: mail_gateway
+#: model:ir.actions.act_window,name:mail_gateway.action_view_mail_message
+#: field:mailgate.thread,message_ids:0
+msgid "Messages"
+msgstr "Viestit"
+
+#. module: mail_gateway
+#: field:mailgate.message,user_id:0
+msgid "User Responsible"
+msgstr "Vastuunalainen käyttäjä"
+
+#. module: mail_gateway
+#: code:addons/mail_gateway/mail_gateway.py:248
+#, python-format
+msgid "Converted to Opportunity"
+msgstr "Muutettu mahdollisuudeksi"
+
+#. module: mail_gateway
+#: field:mailgate.message,email_bcc:0
+msgid "Bcc"
+msgstr "Piilokopio"
+
+#. module: mail_gateway
+#: field:mailgate.message,history:0
+msgid "Is History?"
+msgstr "onko historiaa?"
+
+#. module: mail_gateway
+#: help:mailgate.message,email_bcc:0
+msgid "Blind Carbon Copy Email Recipients"
+msgstr "Piilokopion vastaanottajat"
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+msgid "mailgate message"
+msgstr "Postinvälittäjän viesti"
+
+#. module: mail_gateway
+#: code:addons/mail_gateway/mail_gateway.py:148
+#: view:mailgate.thread:0
+#: view:res.partner:0
+#, python-format
+msgid "History"
+msgstr "Historia"
+
+#. module: mail_gateway
+#: field:mailgate.message,references:0
+msgid "References"
+msgstr "Viitteet"
+
+#. module: mail_gateway
+#: model:ir.model,name:mail_gateway.model_mailgate_thread
+#: view:mailgate.thread:0
+msgid "Mailgateway Thread"
+msgstr "sähköpostivälittäjän keskustelu"
+
+#. module: mail_gateway
+#: model:ir.actions.act_window,name:mail_gateway.act_res_partner_open_email
+#: view:mailgate.message:0
+#: field:mailgate.message,attachment_ids:0
+#: view:mailgate.thread:0
+msgid "Attachments"
+msgstr "Liitteet"
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+msgid "Open Document"
+msgstr "Avaa asiakirja"
+
+#. module: mail_gateway
+#: view:mailgate.thread:0
+msgid "Email Details"
+msgstr "Sähköpostin yksityiskohdat"
+
+#. module: mail_gateway
+#: field:mailgate.message,email_cc:0
+msgid "Cc"
+msgstr "Kopio"
+
+#. module: mail_gateway
+#: code:addons/mail_gateway/mail_gateway.py:254
+#, python-format
+msgid " on %s:\n"
+msgstr ""
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+msgid "Month"
+msgstr "Kuukausi"
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+msgid "Email Search"
+msgstr "Sähköpostin haku"
+
+#. module: mail_gateway
+#: code:addons/mail_gateway/mail_gateway.py:561
+#, python-format
+msgid "receive"
+msgstr "vastaanota"
+
+#. module: mail_gateway
+#: model:ir.module.module,description:mail_gateway.module_meta_information
+msgid ""
+"The generic email gateway system allows to send and receive emails\n"
+" * History for Emails\n"
+" * Easy Integration with any Module"
+msgstr ""
+
+#. module: mail_gateway
+#: code:addons/mail_gateway/mail_gateway.py:255
+#, python-format
+msgid "Changed Status to: "
+msgstr "Tila muutettu : "
+
+#. module: mail_gateway
+#: field:mailgate.message,display_text:0
+msgid "Display Text"
+msgstr "Näytä teksti"
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+msgid "Owner"
+msgstr "Omistaja"
+
+#. module: mail_gateway
+#: code:addons/mail_gateway/mail_gateway.py:253
+#, python-format
+msgid "Changed Stage to: "
+msgstr "Vaihe muutettu : "
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+msgid "Message"
+msgstr "Viesti"
+
+#. module: mail_gateway
+#: view:mailgate.message:0
+#: field:mailgate.message,name:0
+msgid "Subject"
+msgstr "Aihe"
+
+#. module: mail_gateway
+#: help:mailgate.message,ref_id:0
+msgid "Message Id in Email Server."
+msgstr "Viestin ID sähköpostipalvelimella."
+
+#, python-format
+#~ msgid " wrote on "
+#~ msgstr " kirjoitti "
diff --git a/addons/mail_gateway/mail_gateway.py b/addons/mail_gateway/mail_gateway.py
index c67a2668192..4fa70484666 100644
--- a/addons/mail_gateway/mail_gateway.py
+++ b/addons/mail_gateway/mail_gateway.py
@@ -80,7 +80,7 @@ class mailgate_thread(osv.osv):
for thread in self.browse(cr, uid, ids, context=context):
l=[]
for message in thread.message_ids:
- l.append((message.user_id and message.user_id.email) or '')
+ l.append((message.user_id and message.user_id.user_email) or '')
l.append(message.email_from or '')
l.append(message.email_cc or '')
res[thread.id] = l
@@ -281,7 +281,7 @@ class mailgate_message(osv.osv):
'description': fields.text('Description', readonly=True),
'partner_id': fields.many2one('res.partner', 'Partner', required=False),
'attachment_ids': fields.many2many('ir.attachment', 'message_attachment_rel', 'message_id', 'attachment_id', 'Attachments', readonly=True),
- 'display_text': fields.function(_get_display_text, method=True, type='text', size="512", string='Display Text'),
+ 'display_text': fields.function(_get_display_text, type='text', size="512", string='Display Text'),
}
def init(self, cr):
@@ -519,7 +519,7 @@ class mailgate_tool(osv.osv_memory):
body = content
has_plain_text = True
elif part.get_content_maintype() in ('application', 'image'):
- if filename :
+ if filename and attach:
attachments[filename] = part.get_payload(decode=True)
else:
res = part.get_payload(decode=True)
diff --git a/addons/marketing_campaign/i18n/zh_CN.po b/addons/marketing_campaign/i18n/zh_CN.po
new file mode 100644
index 00000000000..95aafae0f40
--- /dev/null
+++ b/addons/marketing_campaign/i18n/zh_CN.po
@@ -0,0 +1,1054 @@
+# Chinese (Simplified) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-07-01 03:28+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Simplified) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-07-02 05:06+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Manual Mode"
+msgstr "手工模式"
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,activity_from_id:0
+msgid "Previous Activity"
+msgstr "前一个活动"
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:772
+#, python-format
+msgid "The current step for this item has no email or report to preview."
+msgstr "这步没有邮件或者报表。"
+
+#. module: marketing_campaign
+#: constraint:marketing.campaign.transition:0
+msgid "The To/From Activity of transition must be of the same Campaign "
+msgstr "前后活动必须属于同一个营销活动 "
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:144
+#, python-format
+msgid ""
+"The campaign cannot be started: it doesn't have any starting activity (or "
+"any activity with a signal and no previous activity)"
+msgstr "营销活动无法开始:它没有开始的活动(或者标识为开始但没有前一个活动的活动)"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,trigger:0
+msgid "Time"
+msgstr "时间"
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.activity,type:0
+msgid "Custom Action"
+msgstr "自定义操作"
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:139
+#, python-format
+msgid ""
+"The campaign cannot be started: the email account is missing in email "
+"activity '%s'"
+msgstr "营销活动无法开始:没有为邮件活动'%s'设置邮箱帐号"
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+msgid "Group By..."
+msgstr "分组..."
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,revenue:0
+msgid ""
+"Set an expected revenue if you consider that every campaign item that has "
+"reached this point has generated a certain revenue. You can get revenue "
+"statistics in the Reporting section"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,trigger:0
+msgid "Trigger"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,count:0
+msgid "# of Actions"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Campaign Editor"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: view:marketing.campaign.workitem:0
+msgid "Today"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "March"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,sync_mode:0
+msgid ""
+"Determines an additional criterion to add to the filter when selecting new "
+"records to inject in the campaign."
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,object_id:0
+msgid "Object"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,condition:0
+msgid ""
+"Python expression to decide whether the activity can be executed, otherwise "
+"it will be deleted or cancelled.The expression may use the following "
+"[browsable] variables:\n"
+" - activity: the campaign activity\n"
+" - workitem: the campaign workitem\n"
+" - resource: the resource object this campaign item represents\n"
+" - transitions: list of campaign transitions outgoing from this activity\n"
+"...- re: Python regular expression module"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,to_ids:0
+msgid "Next Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Synchronization"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "This Year"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:772
+#, python-format
+msgid "No preview"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+#: field:marketing.campaign.segment,date_run:0
+msgid "Launch Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,day:0
+msgid "Day"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Outgoing Transitions"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Reset"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,object_id:0
+msgid "Choose the resource on which you want this campaign to be run"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,sync_last_date:0
+msgid "Last Synchronization"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Year(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:209
+#, python-format
+msgid "Sorry, campaign duplication is not supported at the moment."
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,sync_last_date:0
+msgid ""
+"Date on which this segment was synchronized last time (automatically or "
+"manually)"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,state:0
+#: selection:marketing.campaign,state:0
+#: selection:marketing.campaign.segment,state:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,trigger:0
+msgid "Automatic"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,mode:0
+msgid ""
+"Test - It creates and process all the activities directly (without waiting "
+"for the delay on transitions) but does not send emails or produce reports.\n"
+"Test in Realtime - It creates and processes all the activities directly but "
+"does not send emails or produce reports.\n"
+"With Manual Confirmation - the campaigns runs normally, but the user has to "
+"validate all workitem manually.\n"
+"Normal - the campaign runs normally and automatically sends all emails and "
+"reports (be very careful with this mode, you're live!)"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,date_run:0
+msgid "Initial start date of this segment."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,campaign_id:0
+#: view:marketing.campaign:0
+#: field:marketing.campaign.activity,campaign_id:0
+#: view:marketing.campaign.segment:0
+#: field:marketing.campaign.segment,campaign_id:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,campaign_id:0
+msgid "Campaign"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,start:0
+msgid "Start"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,partner_field_id:0
+msgid ""
+"The generated workitems will be linked to the partner related to the record. "
+"If the record is the partner itself leave this field empty."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,segment_id:0
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,segment_id:0
+msgid "Segment"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Cost / Revenue"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,type:0
+msgid ""
+"The type of action to execute when an item enters this activity, such as:\n"
+" - Email: send an email using a predefined email template\n"
+" - Report: print an existing Report defined on the resource item and save "
+"it into a specific directory\n"
+" - Custom Action: execute a predefined action, e.g. to modify the fields "
+"of the resource record\n"
+" "
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,date_next_sync:0
+msgid "Next time the synchronization job is scheduled to run automatically"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Month(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,partner_id:0
+#: model:ir.model,name:marketing_campaign.model_res_partner
+#: field:marketing.campaign.workitem,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Transitions"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,keep_if_condition_not_met:0
+msgid "Don't delete workitems"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,state:0
+#: view:marketing.campaign:0
+#: field:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: field:marketing.campaign.segment,state:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,state:0
+msgid "State"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "Marketing Reports"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,type:0
+msgid "Type"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Related Resource"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,name:0
+#: field:marketing.campaign.activity,name:0
+#: field:marketing.campaign.segment,name:0
+#: field:marketing.campaign.transition,name:0
+msgid "Name"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.workitem,res_name:0
+msgid "Resource Name"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,sync_mode:0
+msgid "Synchronization mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Run"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,from_ids:0
+msgid "Previous Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,date_done:0
+msgid "Date this segment was last closed or cancelled."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Marketing Campaign Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,error_msg:0
+msgid "Error Message"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_form
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_form
+#: view:marketing.campaign:0
+msgid "Campaigns"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,interval_type:0
+msgid "Interval Unit"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,country_id:0
+msgid "Country"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,report_id:0
+#: selection:marketing.campaign.activity,type:0
+msgid "Report"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "July"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_configuration
+msgid "Configuration"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,variable_cost:0
+msgid ""
+"Set a variable cost if you consider that every campaign item that has "
+"reached this point has entailed a certain cost. You can get cost statistics "
+"in the Reporting section"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Hour(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_segment
+msgid "Campaign Segment"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+#: view:marketing.campaign.workitem:0
+msgid "Cancel"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,keep_if_condition_not_met:0
+msgid ""
+"By activating this option, workitems that aren't executed because the "
+"condition is not met are marked as cancelled instead of being deleted."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "Exceptions"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:res.partner,workitem_ids:0
+msgid "Workitems"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,fixed_cost:0
+msgid "Fixed Cost"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Newly Modified"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,interval_nbr:0
+msgid "Interval Value"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,revenue:0
+#: field:marketing.campaign.activity,revenue:0
+msgid "Revenue"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "September"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "December"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,month:0
+msgid "Month"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.transition,activity_to_id:0
+msgid "Next Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_followup
+msgid "Campaign Follow-up"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,email_template_id:0
+msgid "The e-mail to send when this activity is activated"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+msgid "This Month"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+msgid "Test Mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "Only records modified after last sync (no duplicates)"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_ir_actions_report_xml
+msgid "ir.actions.report.xml"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_stat
+msgid "Campaign Statistics"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,server_action_id:0
+msgid "The action to perform when this activity is activated"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,partner_field_id:0
+msgid "Partner Field"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: model:ir.actions.act_window,name:marketing_campaign.action_campaign_analysis_all
+#: model:ir.model,name:marketing_campaign.model_campaign_analysis
+#: model:ir.ui.menu,name:marketing_campaign.menu_action_campaign_analysis_all
+msgid "Campaign Analysis"
+msgstr ""
+
+#. module: marketing_campaign
+#: sql_constraint:marketing.campaign.transition:0
+msgid "The interval must be positive or zero"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Test in Realtime"
+msgstr ""
+
+#. module: marketing_campaign
+#: sql_constraint:email.template:0
+msgid "The template name must be unique !"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Test Directly"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,report_directory_id:0
+msgid "Directory"
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:res.partner:0
+msgid "Error ! You can not create recursive associated members."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: selection:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: selection:marketing.campaign.segment,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Preview"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.module.module,description:marketing_campaign.module_meta_information
+msgid ""
+"\n"
+"This module provides leads automation through marketing campaigns (campaigns "
+"can in fact be defined on any resource, not just CRM Leads).\n"
+" The campaigns are dynamic and multi-channels. The process is as "
+"follows:\n"
+" * Design marketing campaigns like workflows, including email "
+"templates to send, reports to print and send by email, custom actions, etc.\n"
+" * Define input segments that will select the items that should "
+"enter the campaign (e.g leads from certain countries, etc.)\n"
+" * Run you campaign in simulation mode to test it real-time or "
+"accelerated, and fine-tune it\n"
+" * You may also start the real campaign in manual mode, where each "
+"action requires manual validation\n"
+" * Finally launch your campaign live, and watch the statistics as "
+"the campaign does everything fully automatically. \n"
+" While the campaign runs you can of course continue to fine-tune "
+"the parameters, input segments, workflow, etc.\n"
+" \n"
+" Note: If you need demo data, you can install the "
+"marketing_campaign_crm_demo module, but this will also install the CRM "
+"application as it depends on CRM Leads.\n"
+" "
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "August"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "Normal"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,start:0
+msgid "This activity is launched when the campaign starts."
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,signal:0
+msgid ""
+"An activity with a signal can be called programmatically. Be careful, the "
+"workitem is always created when a signal is sent"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "June"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "All records (no duplicates)"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Newly Created"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:campaign.analysis,date:0
+#: view:marketing.campaign.workitem:0
+msgid "Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "November"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+#: field:marketing.campaign.activity,condition:0
+msgid "Condition"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,report_id:0
+msgid "The report to generate when this activity is activated"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,state:0
+#: view:marketing.campaign.workitem:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Exception"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "October"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:141
+#, python-format
+msgid ""
+"The campaign cannot be started: the email account is not approved in email "
+"activity '%s'"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,email_template_id:0
+msgid "Email Template"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "January"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,date:0
+msgid "Execution Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_workitem
+msgid "Campaign Workitem"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_activity
+msgid "Campaign Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.activity,report_directory_id:0
+msgid "This folder is used to store the generated reports"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:125
+#: code:addons/marketing_campaign/marketing_campaign.py:139
+#: code:addons/marketing_campaign/marketing_campaign.py:141
+#: code:addons/marketing_campaign/marketing_campaign.py:144
+#: code:addons/marketing_campaign/marketing_campaign.py:154
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+#: field:marketing.campaign.activity,server_action_id:0
+msgid "Action"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:488
+#, python-format
+msgid "Automatic transition"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+#: view:res.partner:0
+msgid "History"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.module.module,shortdesc:marketing_campaign.module_meta_information
+msgid "marketing_campaign"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Process"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:490
+#: selection:marketing.campaign.transition,trigger:0
+#, python-format
+msgid "Cosmetic"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.transition,trigger:0
+msgid "How is the destination workitem triggered"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,help:marketing_campaign.action_marketing_campaign_form
+msgid ""
+"A marketing campaign is an event or activity that will help you manage and "
+"reach your partners with specific messages. A campaign can have many "
+"activities that will be triggered from a specific situation. One action "
+"could be sending an email template that has previously been created in the "
+"system."
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: selection:campaign.analysis,state:0
+#: selection:marketing.campaign,state:0
+#: selection:marketing.campaign.segment,state:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "Done"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:209
+#, python-format
+msgid "Operation not supported"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_email_template
+msgid "Email Templates for Models"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: view:marketing.campaign.segment:0
+msgid "Close"
+msgstr ""
+
+#. module: marketing_campaign
+#: constraint:marketing.campaign.segment:0
+msgid "Model of filter must be same as resource model of Campaign "
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "Synchronize Manually"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:154
+#, python-format
+msgid "The campaign cannot be marked as done before all segments are done"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,res_id:0
+msgid "Resource ID"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign_transition
+msgid "Campaign Transition"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: selection:campaign.analysis,state:0
+#: view:marketing.campaign.workitem:0
+#: selection:marketing.campaign.workitem,state:0
+msgid "To Do"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.workitem:0
+msgid "Campaign Step"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_segment_form
+#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_segment_form
+#: view:marketing.campaign.segment:0
+msgid "Segments"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_segment_opened
+msgid "All Segments"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.activity:0
+msgid "Incoming Transitions"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.activity,type:0
+msgid "E-mail"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.transition,interval_type:0
+msgid "Day(s)"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign,activity_ids:0
+#: view:marketing.campaign.activity:0
+msgid "Activities"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "May"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: selection:marketing.campaign,state:0
+#: view:marketing.campaign.segment:0
+#: selection:marketing.campaign.segment,state:0
+msgid "Running"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:489
+#, python-format
+msgid "After %(interval_nbr)d %(interval_type)s"
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.model,name:marketing_campaign.model_marketing_campaign
+msgid "Marketing Campaign"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,date_done:0
+msgid "End Date"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "February"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,res_id:0
+#: view:marketing.campaign:0
+#: field:marketing.campaign,object_id:0
+#: field:marketing.campaign.segment,object_id:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,object_id:0
+msgid "Resource"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign,fixed_cost:0
+msgid ""
+"Fixed cost for running this campaign. You may also specify variable cost and "
+"revenue on each campaign activity. Cost and Revenue statistics are included "
+"in Campaign Reporting."
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:746
+#, python-format
+msgid "Email Preview"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,signal:0
+msgid "Signal"
+msgstr ""
+
+#. module: marketing_campaign
+#: code:addons/marketing_campaign/marketing_campaign.py:125
+#, python-format
+msgid "The campaign cannot be started: there are no activities in it"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.workitem,date:0
+msgid "If date is not set, this workitem has to be run manually"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:campaign.analysis,month:0
+msgid "April"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign:0
+#: field:marketing.campaign,mode:0
+msgid "Mode"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,activity_id:0
+#: view:marketing.campaign.activity:0
+#: view:marketing.campaign.workitem:0
+#: field:marketing.campaign.workitem,activity_id:0
+msgid "Activity"
+msgstr ""
+
+#. module: marketing_campaign
+#: help:marketing.campaign.segment,ir_filter_id:0
+msgid ""
+"Filter to select the matching resource records that belong to this segment. "
+"New filters can be created and saved using the advanced search on the list "
+"view of the Resource. If no filter is set, all records are selected without "
+"filtering. The synchronization mode may also add a criterion to the filter."
+msgstr ""
+
+#. module: marketing_campaign
+#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_workitem
+#: model:ir.ui.menu,name:marketing_campaign.menu_action_marketing_campaign_workitem
+msgid "Campaign Followup"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.segment,date_next_sync:0
+msgid "Next Synchronization"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+#: field:marketing.campaign.segment,ir_filter_id:0
+msgid "Filter"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:marketing.campaign.segment:0
+msgid "All"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign.segment,sync_mode:0
+msgid "Only records created after last sync"
+msgstr ""
+
+#. module: marketing_campaign
+#: field:marketing.campaign.activity,variable_cost:0
+msgid "Variable Cost"
+msgstr ""
+
+#. module: marketing_campaign
+#: selection:marketing.campaign,mode:0
+msgid "With Manual Confirmation"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,total_cost:0
+#: view:marketing.campaign:0
+msgid "Cost"
+msgstr ""
+
+#. module: marketing_campaign
+#: view:campaign.analysis:0
+#: field:campaign.analysis,year:0
+msgid "Year"
+msgstr ""
diff --git a/addons/marketing_campaign/marketing_campaign.py b/addons/marketing_campaign/marketing_campaign.py
index 15c86f5298e..ae1ab2309e2 100644
--- a/addons/marketing_campaign/marketing_campaign.py
+++ b/addons/marketing_campaign/marketing_campaign.py
@@ -281,7 +281,7 @@ class marketing_campaign_segment(osv.osv):
'State',),
'date_run': fields.datetime('Launch Date', help="Initial start date of this segment."),
'date_done': fields.datetime('End Date', help="Date this segment was last closed or cancelled."),
- 'date_next_sync': fields.function(_get_next_sync, method=True, string='Next Synchronization', type='datetime', help="Next time the synchronization job is scheduled to run automatically"),
+ 'date_next_sync': fields.function(_get_next_sync, string='Next Synchronization', type='datetime', help="Next time the synchronization job is scheduled to run automatically"),
}
_defaults = {
@@ -548,7 +548,7 @@ class marketing_campaign_transition(osv.osv):
_columns = {
- 'name': fields.function(_get_name, method=True, string='Name',
+ 'name': fields.function(_get_name, string='Name',
type='char', size=128),
'activity_from_id': fields.many2one('marketing.campaign.activity',
'Previous Activity', select=1,
@@ -649,7 +649,7 @@ class marketing_campaign_workitem(osv.osv):
'object_id': fields.related('activity_id', 'campaign_id', 'object_id',
type='many2one', relation='ir.model', string='Resource', select=1, readonly=True, store=True),
'res_id': fields.integer('Resource ID', select=1, readonly=True),
- 'res_name': fields.function(_res_name_get, method=True, string='Resource Name', fnct_search=_resource_search, type="char", size=64),
+ 'res_name': fields.function(_res_name_get, string='Resource Name', fnct_search=_resource_search, type="char", size=64),
'date': fields.datetime('Execution Date', help='If date is not set, this workitem has to be run manually', readonly=True),
'partner_id': fields.many2one('res.partner', 'Partner', select=1, readonly=True),
'state': fields.selection([('todo', 'To Do'),
diff --git a/addons/marketing_campaign/report/campaign_analysis.py b/addons/marketing_campaign/report/campaign_analysis.py
index 0b245aee785..af04a7e6dff 100644
--- a/addons/marketing_campaign/report/campaign_analysis.py
+++ b/addons/marketing_campaign/report/campaign_analysis.py
@@ -62,7 +62,7 @@ class campaign_analysis(osv.osv):
'partner_id': fields.many2one('res.partner', 'Partner', readonly=True),
'country_id': fields.related('partner_id','address', 'country_id',
type='many2one', relation='res.country',string='Country'),
- 'total_cost' : fields.function(_total_cost, string='Cost', method=True,
+ 'total_cost' : fields.function(_total_cost, string='Cost',
type="float", digits_compute=dp.get_precision('Purchase Price')),
'revenue': fields.float('Revenue', readonly=True, digits_compute=dp.get_precision('Sale Price')),
'count' : fields.integer('# of Actions', readonly=True),
diff --git a/addons/marketing_campaign_crm_demo/i18n/zh_CN.po b/addons/marketing_campaign_crm_demo/i18n/zh_CN.po
new file mode 100644
index 00000000000..7723b72fe43
--- /dev/null
+++ b/addons/marketing_campaign_crm_demo/i18n/zh_CN.po
@@ -0,0 +1,179 @@
+# Chinese (Simplified) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-29 16:49+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Simplified) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-30 04:34+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.actions.report.xml,name:marketing_campaign_crm_demo.mc_crm_lead_demo_report
+msgid "Marketing campaign demo report"
+msgstr "市场营销活动显示报表"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_1
+msgid ""
+"Hello,Thanks for generous interest you have shown in the "
+"openERP.Regards,OpenERP Team,"
+msgstr "你好,感谢你对OpenERP很感兴趣。 OpenERP团队敬上。"
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.module.module,description:marketing_campaign_crm_demo.module_meta_information
+msgid "Demo data for the module marketing_campaign."
+msgstr "模块marketing_campaign的演示数据。"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_4
+msgid ""
+"Hello,Thanks for showing intrest and buying the OpenERP book.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+"你好,感谢你喜欢和购买OpenERP的书。\n"
+" 如果需要进一步的消息,请告诉我们。\n"
+" 欢迎垂询进一步的信息。\n"
+" 敬上!\n"
+" OpenERP团队"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_2
+msgid "Propose to subscribe to the OpenERP Discovery Day on May 2010"
+msgstr "推荐订购2010年5月的OpenERP 发现日 (OpenERP Discovery Day)"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_6
+msgid "Propose paid training to Silver partners"
+msgstr "推荐银牌合作伙伴参加付费的培训"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_1
+msgid "Thanks for showing interest in OpenERP"
+msgstr "感谢您喜欢OpenERP"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_4
+msgid "Thanks for buying the OpenERP book"
+msgstr "感谢您购买OpenERP book"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_5
+msgid "Propose a free technical training to Gold partners"
+msgstr "推荐金牌合作伙伴参加免费的技术培训"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_7
+msgid ""
+"Hello, We have very good offer that might suit you.\n"
+" For our silver partners,We are offering Gold partnership.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+"您好,我们有一些很好的服务可能很适合您。\n"
+" 对于我们的银牌合作伙伴,我们提供金牌合作伙伴的服务。\n"
+" 欢迎垂询进一步的信息。\n"
+"\n"
+" 敬上!\n"
+" OpenERP团队"
+
+#. module: marketing_campaign_crm_demo
+#: report:crm.lead.demo:0
+msgid "Partner :"
+msgstr "合作伙伴:"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_8
+msgid ""
+"Hello, Thanks for showing intrest and for subscribing to technical "
+"training.If any further information required kindly revert back.I really "
+"appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+"您好, 感谢您有兴趣订购技术培训课程。欢迎垂询进一步的信息。我衷心的感谢您的合作。\n"
+" OpenERP团队敬上。"
+
+#. module: marketing_campaign_crm_demo
+#: report:crm.lead.demo:0
+msgid "Company :"
+msgstr "公司:"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_8
+msgid "Thanks for subscribing to technical training"
+msgstr "感谢您订购技术培训课程"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_3
+msgid "Thanks for subscribing to the OpenERP Discovery Day"
+msgstr "感谢您订购OpenERP发现日(OpenERP Discovery Day)"
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_5
+msgid ""
+"Hello, We have very good offer that might suit you.\n"
+" For our gold partners,We are arranging free technical training "
+"on june,2010.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_3
+msgid ""
+"Hello,Thanks for showing intrest and for subscribing to the OpenERP "
+"Discovery Day.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_2
+msgid ""
+"Hello,We have very good offer that might suit you.\n"
+" We propose you to subscribe to the OpenERP Discovery Day on May "
+"2010.\n"
+" If any further information required kindly revert back.\n"
+" We really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_body_text:marketing_campaign_crm_demo.email_template_6
+msgid ""
+"Hello, We have very good offer that might suit you.\n"
+" For our silver partners,We are paid technical training on "
+"june,2010.\n"
+" If any further information required kindly revert back.\n"
+" I really appreciate your co-operation on this.\n"
+" Regards,OpenERP Team,"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.actions.server,name:marketing_campaign_crm_demo.action_dummy
+msgid "Dummy Action"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:ir.module.module,shortdesc:marketing_campaign_crm_demo.module_meta_information
+msgid "marketing_campaign_crm_demo"
+msgstr ""
+
+#. module: marketing_campaign_crm_demo
+#: model:email.template,def_subject:marketing_campaign_crm_demo.email_template_7
+msgid "Propose gold partnership to silver partners"
+msgstr ""
diff --git a/addons/membership/membership.py b/addons/membership/membership.py
index 48fd8dc2d41..6384a255ac3 100644
--- a/addons/membership/membership.py
+++ b/addons/membership/membership.py
@@ -149,7 +149,7 @@ class membership_line(osv.osv):
'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True, help='Amount for the membership'),
'account_invoice_line': fields.many2one('account.invoice.line', 'Account Invoice line', readonly=True),
'account_invoice_id': fields.related('account_invoice_line', 'invoice_id', type='many2one', relation='account.invoice', string='Invoice', readonly=True),
- 'state': fields.function(_state, method=True,
+ 'state': fields.function(_state,
string='Membership State', type='selection',
selection=STATE, store = {
'account.invoice': (_get_membership_lines, ['state'], 10),
@@ -322,7 +322,7 @@ class Partner(osv.osv):
'Membership amount', digits=(16, 2),
help = 'The price negotiated by the partner'),
'membership_state': fields.function(
- __get_membership_state, method=True,
+ __get_membership_state,
string = 'Current Membership State', type = 'selection',
selection = STATE,
store = {
@@ -337,7 +337,7 @@ class Partner(osv.osv):
-Invoiced Member: A member whose invoice has been created.
-Paid Member: A member who has paid the membership amount."""),
'membership_start': fields.function(
- _membership_date, method=True, multi = 'membeship_start',
+ _membership_date, multi = 'membeship_start',
string = 'Start membership date', type = 'date',
store = {
'account.invoice': (_get_invoice_partner, ['state'], 10),
@@ -345,7 +345,7 @@ class Partner(osv.osv):
'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['free_member'], 10)
}, help="Date from which membership becomes active."),
'membership_stop': fields.function(
- _membership_date, method=True,
+ _membership_date,
string = 'Stop membership date', type='date', multi='membership_stop',
store = {
'account.invoice': (_get_invoice_partner, ['state'], 10),
@@ -353,7 +353,7 @@ class Partner(osv.osv):
'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['free_member'], 10)
}, help="Date until which membership remains active."),
'membership_cancel': fields.function(
- _membership_date, method=True,
+ _membership_date,
string = 'Cancel membership date', type='date', multi='membership_cancel',
store = {
'account.invoice': (_get_invoice_partner, ['state'], 11),
diff --git a/addons/mrp/i18n/tr.po b/addons/mrp/i18n/tr.po
index 05c4042c6f9..372460e0167 100644
--- a/addons/mrp/i18n/tr.po
+++ b/addons/mrp/i18n/tr.po
@@ -7,20 +7,20 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-05-16 20:21+0000\n"
+"PO-Revision-Date: 2011-06-27 18:38+0000\n"
"Last-Translator: Ayhan KIZILTAN \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-05-17 04:39+0000\n"
-"X-Generator: Launchpad (build 12959)\n"
+"X-Launchpad-Export-Date: 2011-06-28 04:39+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
#: field:mrp.production,move_created_ids2:0
msgid "Moves Created"
-msgstr "Oluşan Hareketler"
+msgstr "Oluşturulan Hareketler"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_production_action
@@ -40,7 +40,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,location_src_id:0
msgid "Location where the system will look for components."
-msgstr "Sistemin bileşenleri arayacağı lokasyon."
+msgstr "Sistemin bileşenleri arayacağı konum."
#. module: mrp
#: field:mrp.production,workcenter_lines:0
@@ -50,7 +50,7 @@ msgstr "İş Merkezi Kullanımı"
#. module: mrp
#: view:mrp.routing.workcenter:0
msgid "Routing Work Centers"
-msgstr "Rota İş Merkezleri"
+msgstr "İş Merkezleri Yönlendirme"
#. module: mrp
#: model:ir.module.module,shortdesc:mrp.module_meta_information
@@ -73,14 +73,14 @@ msgid ""
"The 'Minimum stock rule' allows the system to create procurement orders "
"automatically as soon as the minimum stock is reached."
msgstr ""
-"'Minimum stok kuralı', minimum stok sayısına erişildiğinde sistemin "
-"satınalma emirlerini otomatik olarak oluşturmasına izin verir."
+"'Enaz stok kuralı', enaz stok sayısına erişildiğinde sistemin satınalma "
+"emirlerini otomatik olarak oluşturmasına izin verir."
#. module: mrp
#: field:mrp.production,picking_id:0
#: field:mrp.production.order,picking_id:0
msgid "Picking list"
-msgstr "Seçim listesi"
+msgstr "Toplama Listesi"
#. module: mrp
#: code:addons/mrp/report/price.py:121
@@ -2114,7 +2114,7 @@ msgstr "Ayar için saat cinsinden süre."
#. module: mrp
#: selection:mrp.production.order,month:0
msgid "December"
-msgstr "Eylül"
+msgstr "Aralık"
#. module: mrp
#: field:mrp.installer,config_logo:0
diff --git a/addons/mrp/i18n/zh_CN.po b/addons/mrp/i18n/zh_CN.po
index c9b0a72865f..0a8750fa20b 100644
--- a/addons/mrp/i18n/zh_CN.po
+++ b/addons/mrp/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-28 05:53+0000\n"
+"PO-Revision-Date: 2011-07-02 15:27+0000\n"
"Last-Translator: Wei \"oldrev\" Li \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 04:51+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-07-03 04:45+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: mrp
#: field:mrp.production,move_created_ids:0
@@ -35,7 +35,7 @@ msgstr ""
#. module: mrp
#: help:mrp.production,location_src_id:0
msgid "Location where the system will look for components."
-msgstr ""
+msgstr "系统用于查找部件的位置。"
#. module: mrp
#: field:mrp.production,workcenter_lines:0
@@ -107,7 +107,7 @@ msgstr "工艺路线"
#. module: mrp
#: field:mrp.workcenter,product_id:0
msgid "Work Center Product"
-msgstr ""
+msgstr "工作中心产品"
#. module: mrp
#: view:mrp.bom:0
@@ -165,7 +165,7 @@ msgstr ""
#. module: mrp
#: model:process.transition,note:mrp.process_transition_purchaseprocure0
msgid "The system launches automatically a RFQ to the preferred supplier."
-msgstr ""
+msgstr "系统将自动向首选供应商发起询价单。"
#. module: mrp
#: view:mrp.production:0
@@ -227,7 +227,7 @@ msgstr ""
#. module: mrp
#: model:process.node,note:mrp.process_node_purchaseprocure0
msgid "For purchased material"
-msgstr ""
+msgstr "用于采购原料"
#. module: mrp
#: field:mrp.bom.revision,indice:0
@@ -273,7 +273,7 @@ msgstr "目标库位"
#. module: mrp
#: view:mrp.installer:0
msgid "title"
-msgstr ""
+msgstr "标题"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_bom
@@ -320,7 +320,7 @@ msgstr "八月"
#. module: mrp
#: constraint:stock.move:0
msgid "You try to assign a lot which is not from the same product"
-msgstr ""
+msgstr "您尝试为另外的产品赋予批次"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production_order
@@ -335,7 +335,7 @@ msgstr "六月"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_product_produce
msgid "Product Produce"
-msgstr ""
+msgstr "产品生产"
#. module: mrp
#: selection:mrp.production.order,month:0
@@ -370,7 +370,7 @@ msgstr "数量"
#. module: mrp
#: field:mrp.production.workcenter.line,hour:0
msgid "Nbr of hours"
-msgstr ""
+msgstr "小时数"
#. module: mrp
#: view:mrp.production:0
@@ -399,7 +399,7 @@ msgstr "维修"
#. module: mrp
#: field:mrp.installer,stock_location:0
msgid "Advanced Routes"
-msgstr ""
+msgstr "高级路线"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_view_resource_calendar_search_mrp
@@ -468,7 +468,7 @@ msgstr ""
#. module: mrp
#: model:process.node,note:mrp.process_node_serviceproduct1
msgid "For Services."
-msgstr ""
+msgstr "用于服务。"
#. module: mrp
#: field:mrp.bom.revision,date:0
@@ -486,13 +486,13 @@ msgstr "如果你需要生产单的自动辅助核算项目凭证只有完成这
#. module: mrp
#: field:mrp.production.workcenter.line,cycle:0
msgid "Nbr of cycles"
-msgstr ""
+msgstr "周期数"
#. module: mrp
#: model:process.node,note:mrp.process_node_orderrfq0
#: model:process.node,note:mrp.process_node_rfq0
msgid "Request for Quotation."
-msgstr ""
+msgstr "询价单"
#. module: mrp
#: model:process.transition,note:mrp.process_transition_billofmaterialrouting0
@@ -540,7 +540,7 @@ msgstr "物料清单结构"
#. module: mrp
#: view:mrp.production:0
msgid "Search Production"
-msgstr ""
+msgstr "搜索产品"
#. module: mrp
#: code:addons/mrp/report/price.py:130
@@ -575,7 +575,7 @@ msgstr ""
#: view:mrp.production.order:0
#: selection:mrp.production.order,state:0
msgid "Picking Exception"
-msgstr ""
+msgstr "领料异常"
#. module: mrp
#: field:mrp.bom,bom_lines:0
@@ -617,7 +617,7 @@ msgstr "错误!你不能创建递归的物料清单"
#: model:ir.model,name:mrp.model_mrp_workcenter_load
#: model:ir.model,name:mrp.model_report_workcenter_load
msgid "Work Center Load"
-msgstr ""
+msgstr "工作中心负载"
#. module: mrp
#: code:addons/mrp/procurement.py:45
@@ -663,7 +663,7 @@ msgstr "一个周期的工作小时数"
#. module: mrp
#: report:bom.structure:0
msgid "BOM Ref"
-msgstr ""
+msgstr "物料表编号"
#. module: mrp
#: view:mrp.production:0
@@ -676,7 +676,7 @@ msgstr "生产中"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_property
msgid "Master Bill of Materials"
-msgstr ""
+msgstr "主物料表"
#. module: mrp
#: help:mrp.bom,product_uos:0
@@ -702,12 +702,12 @@ msgstr "类型"
#: code:addons/mrp/report/price.py:201
#, python-format
msgid "Total Cost of "
-msgstr ""
+msgstr "总成本 "
#. module: mrp
#: model:process.node,note:mrp.process_node_minimumstockrule0
msgid "Linked to the 'Minimum stock rule' supplying method."
-msgstr ""
+msgstr "链接到“最小库存规则”供货方式"
#. module: mrp
#: selection:mrp.workcenter.load,time_unit:0
@@ -715,7 +715,7 @@ msgid "Per month"
msgstr "每月"
#. module: mrp
-#: code:addons/mrp/mrp.py:591
+#: code:addons/mrp/mrp.py:595
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
@@ -728,7 +728,7 @@ msgid "Product Name"
msgstr "产品名称"
#. module: mrp
-#: code:addons/mrp/mrp.py:491
+#: code:addons/mrp/mrp.py:495
#, python-format
msgid "Invalid action !"
msgstr "无效动作"
@@ -798,7 +798,7 @@ msgstr "紧急"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_routing_workcenter
msgid "Work Center Usage"
-msgstr ""
+msgstr "工作中心使用情况"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production
@@ -879,7 +879,7 @@ msgstr "公司"
#: model:process.node,name:mrp.process_node_minimumstockrule0
#: model:process.node,name:mrp.process_node_productminimumstockrule0
msgid "Minimum Stock"
-msgstr ""
+msgstr "最小库存"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menus_dash_mrp
@@ -889,7 +889,7 @@ msgstr "仪表盘"
#. module: mrp
#: view:board.board:0
msgid "Work Center Future Load"
-msgstr ""
+msgstr "工作中心未来负载"
#. module: mrp
#: model:process.node,name:mrp.process_node_stockproduct0
@@ -902,7 +902,7 @@ msgstr "可库存产品"
#: code:addons/mrp/report/price.py:121
#, python-format
msgid "Work Center name"
-msgstr ""
+msgstr "工作中心名称"
#. module: mrp
#: field:mrp.routing,code:0
@@ -917,7 +917,7 @@ msgstr "小时编号"
#. module: mrp
#: field:mrp.installer,mrp_jit:0
msgid "Just In Time Scheduling"
-msgstr ""
+msgstr "及时生产计划"
#. module: mrp
#: view:mrp.property:0
@@ -1000,7 +1000,7 @@ msgstr ""
#. module: mrp
#: report:bom.structure:0
msgid "BOM Name"
-msgstr ""
+msgstr "物料表名称"
#. module: mrp
#: view:mrp.production:0
@@ -1011,17 +1011,17 @@ msgstr "启动生产"
#: model:ir.actions.act_window,name:mrp.open_board_manufacturing
#: model:ir.ui.menu,name:mrp.menu_board_manufacturing
msgid "Production Dashboard"
-msgstr ""
+msgstr "生产仪表盘"
#. module: mrp
#: view:mrp.production:0
msgid "Source Loc."
-msgstr ""
+msgstr "来源位置"
#. module: mrp
#: field:mrp.bom,position:0
msgid "Internal Reference"
-msgstr ""
+msgstr "内部单号"
#. module: mrp
#: help:mrp.installer,stock_location:0
@@ -1033,7 +1033,7 @@ msgstr ""
#. module: mrp
#: model:process.node,note:mrp.process_node_billofmaterial0
msgid "Product's structure"
-msgstr ""
+msgstr "产品结构"
#. module: mrp
#: field:mrp.bom,name:0
@@ -1294,7 +1294,7 @@ msgid "Month -1"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:914
+#: code:addons/mrp/mrp.py:924
#, python-format
msgid "Manufacturing order '%s' is scheduled for the %s."
msgstr ""
@@ -1305,7 +1305,7 @@ msgid "Production Order N° :"
msgstr "生产单号:"
#. module: mrp
-#: code:addons/mrp/mrp.py:630
+#: code:addons/mrp/mrp.py:640
#, python-format
msgid "Manufacturing order '%s' is ready to produce."
msgstr ""
@@ -1534,7 +1534,7 @@ msgid "Manufacturing Orders To Start"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:491
+#: code:addons/mrp/mrp.py:495
#, python-format
msgid "Cannot delete Production Order(s) which are in %s State!"
msgstr ""
@@ -1624,7 +1624,7 @@ msgid "Production Analysis"
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:345
+#: code:addons/mrp/mrp.py:349
#, python-format
msgid "Copy"
msgstr ""
@@ -2113,7 +2113,7 @@ msgid "Product type is Stockable or Consumable."
msgstr ""
#. module: mrp
-#: code:addons/mrp/mrp.py:591
+#: code:addons/mrp/mrp.py:595
#: code:addons/mrp/wizard/change_production_qty.py:77
#: code:addons/mrp/wizard/change_production_qty.py:82
#, python-format
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index 5603327290d..ec429488914 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -197,7 +197,7 @@ class mrp_bom(osv.osv):
help= "If a sub-product is used in several products, it can be useful to create its own BoM. "\
"Though if you don't want separated production orders for this sub-product, select Set/Phantom as BoM type. "\
"If a Phantom BoM is used for a root product, it will be sold and shipped as a set of components, instead of being produced."),
- 'method': fields.function(_compute_type, string='Method', method=True, type='selection', selection=[('',''),('stock','On Stock'),('order','On Order'),('set','Set / Pack')]),
+ 'method': fields.function(_compute_type, string='Method', type='selection', selection=[('',''),('stock','On Stock'),('order','On Order'),('set','Set / Pack')]),
'date_start': fields.date('Valid From', help="Validity of this BoM or component. Keep empty if it's always valid."),
'date_stop': fields.date('Valid Until', help="Validity of this BoM or component. Keep empty if it's always valid."),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of bills of material."),
@@ -214,7 +214,7 @@ class mrp_bom(osv.osv):
'routing_id': fields.many2one('mrp.routing', 'Routing', help="The list of operations (list of work centers) to produce the finished product. The routing is mainly used to compute work center costs during operations and to plan future loads on work centers based on production planning."),
'property_ids': fields.many2many('mrp.property', 'mrp_bom_property_rel', 'bom_id','property_id', 'Properties'),
'revision_ids': fields.one2many('mrp.bom.revision', 'bom_id', 'BoM Revisions'),
- 'child_complete_ids': fields.function(_child_compute, relation='mrp.bom', method=True, string="BoM Hierarchy", type='many2many'),
+ 'child_complete_ids': fields.function(_child_compute, relation='mrp.bom', string="BoM Hierarchy", type='many2many'),
'company_id': fields.many2one('res.company','Company',required=True),
}
_defaults = {
@@ -457,8 +457,8 @@ class mrp_production(osv.osv):
'location_dest_id': fields.many2one('stock.location', 'Finished Products Location', required=True,
readonly=True, states={'draft':[('readonly',False)]}, help="Location where the system will stock the finished products."),
- 'date_planned_end': fields.function(_production_date_end, method=True, type='date', string='Scheduled End Date'),
- 'date_planned_date': fields.function(_production_date, method=True, type='date', string='Scheduled Date'),
+ 'date_planned_end': fields.function(_production_date_end, type='date', string='Scheduled End Date'),
+ 'date_planned_date': fields.function(_production_date, type='date', string='Scheduled Date'),
'date_planned': fields.datetime('Scheduled date', required=True, select=1),
'date_start': fields.datetime('Start Date', select=True),
'date_finished': fields.datetime('End Date', select=True),
@@ -478,8 +478,8 @@ class mrp_production(osv.osv):
'state': fields.selection([('draft','Draft'),('picking_except', 'Picking Exception'),('confirmed','Waiting Goods'),('ready','Ready to Produce'),('in_production','In Production'),('cancel','Cancelled'),('done','Done')],'State', readonly=True,
help='When the production order is created the state is set to \'Draft\'.\n If the order is confirmed the state is set to \'Waiting Goods\'.\n If any exceptions are there, the state is set to \'Picking Exception\'.\
\nIf the stock is available then the state is set to \'Ready to Produce\'.\n When the production gets started then the state is set to \'In Production\'.\n When the production is over, the state is set to \'Done\'.'),
- 'hour_total': fields.function(_production_calc, method=True, type='float', string='Total Hours', multi='workorder', store=True),
- 'cycle_total': fields.function(_production_calc, method=True, type='float', string='Total Cycles', multi='workorder', store=True),
+ 'hour_total': fields.function(_production_calc, type='float', string='Total Hours', multi='workorder', store=True),
+ 'cycle_total': fields.function(_production_calc, type='float', string='Total Cycles', multi='workorder', store=True),
'company_id': fields.many2one('res.company','Company',required=True),
}
_defaults = {
diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py
index 589d3c27031..fe926d30ac1 100644
--- a/addons/mrp_operations/mrp_operations.py
+++ b/addons/mrp_operations/mrp_operations.py
@@ -92,9 +92,9 @@ class mrp_production_workcenter_line(osv.osv):
"* When work order is in running mode, during that time if user wants to stop or to make changes in order then can set in 'Pause' state.\n" \
"* When the user cancels the work order it will be set in 'Canceled' state.\n" \
"* When order is completely processed that time it is set in 'Finished' state."),
- 'date_start_date': fields.function(_get_date_date, method=True, string='Start Date', type='date'),
+ 'date_start_date': fields.function(_get_date_date, string='Start Date', type='date'),
'date_planned': fields.datetime('Scheduled Date'),
- 'date_planned_end': fields.function(_get_date_end, method=True, string='End Date', type='datetime'),
+ 'date_planned_end': fields.function(_get_date_end, string='End Date', type='datetime'),
'date_start': fields.datetime('Start Date'),
'date_finished': fields.datetime('End Date'),
'delay': fields.float('Working Hours',help="This is lead time between operation start and stop in this Work Center",readonly=True),
@@ -554,7 +554,7 @@ class mrp_operations_operation(osv.osv):
'code_id':fields.many2one('mrp_operations.operation.code','Code',required=True),
'date_start': fields.datetime('Start Date'),
'date_finished': fields.datetime('End Date'),
- 'order_date': fields.function(_get_order_date,method=True,string='Order Date',type='date',store={'mrp.production':(_order_date_search_production,['date_planned'], 10)}),
+ 'order_date': fields.function(_get_order_date,string='Order Date',type='date',store={'mrp.production':(_order_date_search_production,['date_planned'], 10)}),
}
_defaults={
'date_start': lambda *a:datetime.now().strftime('%Y-%m-%d %H:%M:%S')
diff --git a/addons/mrp_repair/i18n/tr.po b/addons/mrp_repair/i18n/tr.po
index 03e1833a574..73051f4a724 100644
--- a/addons/mrp_repair/i18n/tr.po
+++ b/addons/mrp_repair/i18n/tr.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2010-09-09 07:21+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2011-06-23 20:16+0000\n"
+"Last-Translator: Ayhan KIZILTAN \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 05:38+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-06-24 04:59+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Fees Line"
-msgstr ""
+msgstr "Ücret Kallemleri"
#. module: mrp_repair
#: help:mrp.repair,state:0
@@ -35,6 +35,17 @@ msgid ""
"* The 'Done' state is set when repairing is completed. \n"
"* The 'Cancelled' state is used when user cancel repair order."
msgstr ""
+" * 'Taslak' durumu, bir kullanıcı yeni ve onaylanmamış bir onarım siparişi "
+"girerken kullanılır. \n"
+"* 'Onaylı' durumu, bir kullanıcı bir onarım siparişini onaylarken "
+"kullanılır. \n"
+"* 'Onarıma Hazır' durumu, kullanıcı onarıma başlarken kullanılır, kullanıcı "
+"ancak onarım siparişi onaylandıktan sonra onarıma başlayabilir. "
+"\n"
+"* 'Faturalandırılacak' durumu, onarımdan önce ya da sonra fatura oluşturmak "
+"için kullanılır. \n"
+"* 'Bitti' durumu, onarım bittiğinde kullanılır. \n"
+"* 'İptal' durumu, onarım siparişi iptal edildiğinde kullanılır."
#. module: mrp_repair
#: field:mrp.repair.line,move_id:0
@@ -50,11 +61,16 @@ msgid ""
"date on the production lot in order to know if whether the repair should be "
"invoiced to the customer or not."
msgstr ""
+"Onarım siparişleri ürün onarımlarınızı düzenlemenizi sağlar. Bir onarım "
+"siparişinde, kaldırılacak bileşenleri ayrıntılayabilir, farklı işlemler için "
+"harcadığınız süreleri ekleyebilir, çıkarabilir ve kayıt edebilirsiniz. "
+"Onarım siparişi, müşteriye kesilip kesilmeyeceğini belirlemek için ürün "
+"partisine ait garanti tarihini kullanır."
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Group By..."
-msgstr ""
+msgstr "Şuna göre grupla"
#. module: mrp_repair
#: view:mrp.repair:0
@@ -69,18 +85,21 @@ msgid ""
"that you can select the locations in the Info tab, if you have the extended "
"view."
msgstr ""
+"Bu kutuyu, ürün onarılır onarılmaz teslimatı yapmak isterseniz işaretleyin. "
+"İşaretlenirse, seçilen ürün için toplama oluşturulacaktır. Genişletilmiş "
+"görünümdeyseniz, Bilgi Sekmesinde konumları seçebileceğinize dikkat edin."
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_cancel_repair
#: view:mrp.repair.cancel:0
msgid "Cancel Repair Order"
-msgstr ""
+msgstr "Onarım Siparişini İptal Et"
#. module: mrp_repair
#: field:mrp.repair.fee,to_invoice:0
#: field:mrp.repair.line,to_invoice:0
msgid "To Invoice"
-msgstr "Fatura Adresi"
+msgstr "Faturalandırılacak"
#. module: mrp_repair
#: report:repair.order:0
@@ -90,18 +109,18 @@ msgstr "Yazdırma Tarihi"
#. module: mrp_repair
#: field:mrp.repair.make_invoice,group:0
msgid "Group by partner invoice address"
-msgstr "Cari Fatura Adreslerine göre Gruplandı"
+msgstr "Paydaş Fatura Adreslerine göre Gruplandır"
#. module: mrp_repair
-#: code:addons/mrp_repair/mrp_repair.py:427
+#: code:addons/mrp_repair/mrp_repair.py:430
#, python-format
msgid "No product defined on Fees!"
-msgstr ""
+msgstr "Ücretlerde tanımlanmış ürün yok!"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Set to Draft"
-msgstr "Taslak olarak Ayarla"
+msgstr "Taslağa Ayarla"
#. module: mrp_repair
#: selection:mrp.repair,state:0
@@ -118,13 +137,13 @@ msgstr "Teslimat Adresi"
#: model:ir.model,name:mrp_repair.model_mrp_repair_make_invoice
#: view:mrp.repair:0
msgid "Make Invoice"
-msgstr ""
+msgstr "Fatura Oluştur"
#. module: mrp_repair
#: field:mrp.repair.fee,price_subtotal:0
#: field:mrp.repair.line,price_subtotal:0
msgid "Subtotal"
-msgstr "Alt Toplam"
+msgstr "Ara Toplam"
#. module: mrp_repair
#: report:repair.order:0
@@ -134,12 +153,12 @@ msgstr "Fatura Adresi:"
#. module: mrp_repair
#: field:mrp.repair,guarantee_limit:0
msgid "Guarantee limit"
-msgstr "Garanti limiti"
+msgstr "Garanti sınırı"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Notes"
-msgstr ""
+msgstr "Notlar"
#. module: mrp_repair
#: model:ir.module.module,description:mrp_repair.module_meta_information
@@ -154,13 +173,22 @@ msgid ""
" * Repair quotation report\n"
" * Notes for the technician and for the final customer\n"
msgstr ""
+"\n"
+" Amaç, bütün ürün onarımlarını yapmak için tam bir modül elde "
+"etmektir. Aşağıdaki konular bu modülün kapsamındadır:\n"
+" * Onarımdaki ürünleri ekle/kaldır\n"
+" * Stokları etkile\n"
+" * Faturalama (ürünler ve/veya hizmetler)\n"
+" * Garanti kavramı\n"
+" * Onarım teklifi raporu\n"
+" * Teknisyen ve son müşteri için notlar\n"
#. module: mrp_repair
#: field:mrp.repair,amount_tax:0
#: field:mrp.repair.fee,tax_id:0
#: field:mrp.repair.line,tax_id:0
msgid "Taxes"
-msgstr "Vergi"
+msgstr "Vergiler"
#. module: mrp_repair
#: report:repair.order:0
@@ -168,10 +196,10 @@ msgid "Net Total :"
msgstr "Net Toplam :"
#. module: mrp_repair
-#: code:addons/mrp_repair/mrp_repair.py:427
+#: code:addons/mrp_repair/mrp_repair.py:430
#, python-format
msgid "Warning !"
-msgstr ""
+msgstr "Uyarı !"
#. module: mrp_repair
#: report:repair.order:0
@@ -181,7 +209,7 @@ msgstr "KDV"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Operations"
-msgstr "Operasyonlar"
+msgstr "İşlemler"
#. module: mrp_repair
#: field:mrp.repair,move_id:0
@@ -189,16 +217,16 @@ msgid "Move"
msgstr "Hareket"
#. module: mrp_repair
-#: code:addons/mrp_repair/mrp_repair.py:362
+#: code:addons/mrp_repair/mrp_repair.py:365
#, python-format
msgid "You have to select a Partner Invoice Address in the repair form !"
-msgstr ""
+msgstr "Onarım formundan bir Paydaş Adresi seçmelisiniz !"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_order_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_order
msgid "Repair Orders"
-msgstr "Onarım Emirleri"
+msgstr "Onarım Siparişleri"
#. module: mrp_repair
#: model:ir.actions.report.xml,name:mrp_repair.report_mrp_repair
@@ -208,13 +236,13 @@ msgstr "Teklif / Sipariş"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Extra Info"
-msgstr "Extra Bilgi"
+msgstr "Ek Bilgi"
#. module: mrp_repair
#: field:mrp.repair.fee,repair_id:0
#: field:mrp.repair.line,repair_id:0
msgid "Repair Order Reference"
-msgstr ""
+msgstr "Onarım Siparişi Referansı"
#. module: mrp_repair
#: selection:mrp.repair.line,state:0
@@ -222,10 +250,10 @@ msgid "Draft"
msgstr "Taslak"
#. module: mrp_repair
-#: code:addons/mrp_repair/mrp_repair.py:376
+#: code:addons/mrp_repair/mrp_repair.py:379
#, python-format
msgid "No account defined for partner \"%s\"."
-msgstr ""
+msgstr "\"%s\" Paydaşı için tanımlanmış bir hesap yok."
#. module: mrp_repair
#: view:mrp.repair:0
@@ -237,33 +265,34 @@ msgstr "Onaylandı"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Repairs order"
-msgstr "Onarım Emri"
+msgstr "Onarım Siparişi"
#. module: mrp_repair
#: report:repair.order:0
msgid "Repair Order N° :"
-msgstr "Onarım Emri N° :"
+msgstr "Onarım Siparişi N° :"
#. module: mrp_repair
#: field:mrp.repair,prodlot_id:0
+#: field:mrp.repair.line,prodlot_id:0
#: report:repair.order:0
msgid "Lot Number"
-msgstr "Lot Numarası"
+msgstr "Parti Numarası"
#. module: mrp_repair
#: field:mrp.repair,fees_lines:0
msgid "Fees Lines"
-msgstr ""
+msgstr "Ücret Kalemleri"
#. module: mrp_repair
#: field:mrp.repair.line,type:0
msgid "Type"
-msgstr "Tipi"
+msgstr "Tür"
#. module: mrp_repair
#: report:repair.order:0
msgid "Fees Line(s)"
-msgstr ""
+msgstr "Ücret Kalemi(leri)"
#. module: mrp_repair
#: selection:mrp.repair,state:0
@@ -276,17 +305,17 @@ msgid "Shipping address :"
msgstr "Sevk Adresi :"
#. module: mrp_repair
-#: code:addons/mrp_repair/mrp_repair.py:376
-#: code:addons/mrp_repair/mrp_repair.py:405
-#: code:addons/mrp_repair/mrp_repair.py:434
+#: code:addons/mrp_repair/mrp_repair.py:379
+#: code:addons/mrp_repair/mrp_repair.py:408
+#: code:addons/mrp_repair/mrp_repair.py:437
#, python-format
msgid "Error !"
-msgstr ""
+msgstr "Hata !"
#. module: mrp_repair
#: field:mrp.repair.line,product_uom_qty:0
msgid "Quantity (UoM)"
-msgstr "Miktar (Birim)"
+msgstr "Miktar (Ölçü Birimi)"
#. module: mrp_repair
#: help:mrp.repair.line,state:0
@@ -299,6 +328,14 @@ msgid ""
" \n"
"* The 'Cancelled' state is set automatically when user cancel repair order."
msgstr ""
+" * 'Taslak' durumu, onarım siparişi taslak durumundayken otomatik olarak "
+"ayarlanır. \n"
+"* 'Onaylı' durumu, onarım siparişi onaylı durumdayken otomatik olarak "
+"ayarlanır. \n"
+"* 'Done' durumu, onarım siparişi tamamlandığında otomatik olarak ayarlanır. "
+" \n"
+"* 'Cancelled' durumu, kullanıcı onarım siparişini iptal ettiğinde otomatik "
+"olarak ayarlanır."
#. module: mrp_repair
#: report:repair.order:0
@@ -311,6 +348,8 @@ msgid ""
"This operation will cancel the Repair process, but will not cancel it's "
"Invoice. Do you want to continue?"
msgstr ""
+"Bu eylem Onarım işlemini iptal edecektir ama faturasını iptal etmeyecektir. "
+"Devam etmek istiyor musunuz?"
#. module: mrp_repair
#: field:mrp.repair,pricelist_id:0
@@ -327,17 +366,17 @@ msgstr "Teklif Notları"
#: code:addons/mrp_repair/wizard/cancel_repair.py:49
#, python-format
msgid "Warning!"
-msgstr ""
+msgstr "Uyarı!"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Search Reair Orders"
-msgstr ""
+msgstr "Onarım Siparişi Ara"
#. module: mrp_repair
#: report:repair.order:0
msgid "(Add)"
-msgstr ""
+msgstr "(Ekle)"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair_line
@@ -349,7 +388,7 @@ msgstr "Onarım Kalemi"
#: view:mrp.repair:0
#: field:mrp.repair,partner_id:0
msgid "Partner"
-msgstr "Ortak"
+msgstr "Paydaş"
#. module: mrp_repair
#: field:mrp.repair,invoice_method:0
@@ -364,7 +403,7 @@ msgstr "Onarıldı"
#. module: mrp_repair
#: model:ir.module.module,shortdesc:mrp_repair.module_meta_information
msgid "Products Repairs Module - Manage All products Repairs"
-msgstr ""
+msgstr "Ürün Onarımları Modülü - Bütün ürün Onarımlarını Yönet"
#. module: mrp_repair
#: field:mrp.repair.fee,invoice_line_id:0
@@ -385,7 +424,7 @@ msgstr "Onarım Öncesi"
#. module: mrp_repair
#: field:mrp.repair,location_id:0
msgid "Current Location"
-msgstr "Geçerli Lokasyon"
+msgstr "Geçerli Konum"
#. module: mrp_repair
#: view:mrp.repair.cancel:0
@@ -402,7 +441,7 @@ msgstr "Faturalandı"
#. module: mrp_repair
#: view:mrp.repair.cancel:0
msgid "No"
-msgstr "Hayır"
+msgstr "No"
#. module: mrp_repair
#: view:mrp.repair.make_invoice:0
@@ -412,78 +451,78 @@ msgstr "Faturaları Oluştur"
#. module: mrp_repair
#: report:repair.order:0
msgid "(Remove)"
-msgstr ""
+msgstr "(Kaldır)"
#. module: mrp_repair
#: selection:mrp.repair.line,type:0
msgid "Add"
-msgstr ""
+msgstr "Ekle"
#. module: mrp_repair
#: view:mrp.repair.make_invoice:0
msgid "Do you really want to create the invoice(s) ?"
-msgstr ""
+msgstr "Gerçekten fatura(ları) oluşturmak istiyor musunuz?"
#. module: mrp_repair
#: field:mrp.repair,name:0
msgid "Repair Reference"
-msgstr ""
+msgstr "Onarım Referansı"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair
msgid "Repair Order"
-msgstr ""
+msgstr "Onarım Siparişi"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Under Repair"
-msgstr "Onarımdakiler"
+msgstr "Onarımda"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Ready To Repair"
-msgstr ""
+msgstr "Onarıma Hazır"
#. module: mrp_repair
#: field:mrp.repair,amount_untaxed:0
msgid "Untaxed Amount"
-msgstr "Tutar"
+msgstr "Vergisiz Tutar"
#. module: mrp_repair
#: report:repair.order:0
msgid "Guarantee Limit"
-msgstr "Garanti Limiti"
+msgstr "Garanti Sınırı"
#. module: mrp_repair
#: field:mrp.repair,default_address_id:0
msgid "unknown"
-msgstr ""
+msgstr "bilinmeyen"
#. module: mrp_repair
#: field:mrp.repair,product_id:0
#: report:repair.order:0
msgid "Product to Repair"
-msgstr "Ürün Onarımı"
+msgstr "Onarılacak Ürün"
#. module: mrp_repair
#: report:repair.order:0
msgid "N° :"
-msgstr ""
+msgstr "N° :"
#. module: mrp_repair
#: help:mrp.repair,pricelist_id:0
msgid "The pricelist comes from the selected partner, by default."
-msgstr ""
+msgstr "Fiyat Listesi, varsayılan olarak seçilen paydaşa aittir."
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Date"
-msgstr ""
+msgstr "Tarih"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair_fee
msgid "Repair Fees Line"
-msgstr ""
+msgstr "Onarım Ücretleri Kalemi"
#. module: mrp_repair
#: selection:mrp.repair,state:0
@@ -498,7 +537,7 @@ msgstr "Hesapla"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Confirm Repair"
-msgstr "Düzeltmeyi Onayla"
+msgstr "Onarımı Onayla"
#. module: mrp_repair
#: report:repair.order:0
@@ -511,16 +550,16 @@ msgid "End Repair"
msgstr "Onarım Bitir"
#. module: mrp_repair
-#: code:addons/mrp_repair/mrp_repair.py:405
-#: code:addons/mrp_repair/mrp_repair.py:434
+#: code:addons/mrp_repair/mrp_repair.py:408
+#: code:addons/mrp_repair/mrp_repair.py:437
#, python-format
msgid "No account defined for product \"%s\"."
-msgstr ""
+msgstr "\"%s\" Ürünü için tanımlı hesap yok."
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Quotations"
-msgstr ""
+msgstr "Teklifler"
#. module: mrp_repair
#: field:mrp.repair.fee,product_uom_qty:0
@@ -538,7 +577,7 @@ msgstr "Onarımı Başlat"
#: field:mrp.repair,state:0
#: field:mrp.repair.line,state:0
msgid "State"
-msgstr ""
+msgstr "Durum"
#. module: mrp_repair
#: view:mrp.repair:0
@@ -566,6 +605,10 @@ msgid ""
"operation and fee you will add will be set as 'not to invoiced' by default. "
"Note that you can change manually afterwards."
msgstr ""
+"Garanti sınırı şöyle hesaplanır: son işlem tarihi + seçilen ürüne ait "
+"tanımlı garanti. Eğer geçerli tarih garanti sınırının altındaysa, "
+"ekleyeceğiniz her işlem ve ücret varsayılan olarak faturalandırılmayacak "
+"olarak işaretlenir. Daha sonra el ile değiştirebileceğinizi unutmayın."
#. module: mrp_repair
#: field:mrp.repair,invoice_id:0
@@ -575,18 +618,18 @@ msgstr "Fatura"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Fees"
-msgstr ""
+msgstr "Ücretler"
#. module: mrp_repair
#: selection:mrp.repair,state:0
#: view:mrp.repair.make_invoice:0
msgid "Cancel"
-msgstr "İptal"
+msgstr "Vazgeç"
#. module: mrp_repair
#: field:mrp.repair.line,location_dest_id:0
msgid "Dest. Location"
-msgstr "Hedef Lokasyon"
+msgstr "Hedef Konum"
#. module: mrp_repair
#: report:repair.order:0
@@ -596,12 +639,12 @@ msgstr "Operasyon Kalemi (leri)"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "History"
-msgstr "Geçmiş Bilgisi"
+msgstr "Geçmiş"
#. module: mrp_repair
#: field:mrp.repair,location_dest_id:0
msgid "Delivery Location"
-msgstr "Teslimat Lokasyonu"
+msgstr "Teslimat Konumu"
#. module: mrp_repair
#: help:mrp.repair,invoice_method:0
@@ -610,11 +653,14 @@ msgid ""
"selected is different from 'No Invoice', it also allow you to select the "
"pricelist and invoicing address."
msgstr ""
+"Bu alan, sipariş emrine ait işakışını değiştirmenizi sağlar. Seçilen değer "
+"'Faturasız' dan farklı ise, fiyat listesi ve fatura adresi seçmenize izin "
+"verir."
#. module: mrp_repair
#: view:mrp.repair.make_invoice:0
msgid "Create Invoice"
-msgstr ""
+msgstr "Fatura Oluştur"
#. module: mrp_repair
#: field:mrp.repair.fee,name:0
@@ -626,12 +672,12 @@ msgstr "Açıklama"
#. module: mrp_repair
#: field:mrp.repair,operations:0
msgid "Operation Lines"
-msgstr "Operasyon Kalemleri"
+msgstr "İşlem Kalemleri"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "invoiced"
-msgstr ""
+msgstr "faturalanmış"
#. module: mrp_repair
#: view:mrp.repair:0
@@ -643,7 +689,7 @@ msgstr "Ürün"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Invoice Corrected"
-msgstr ""
+msgstr "Fatura Düzeltildi"
#. module: mrp_repair
#: report:repair.order:0
@@ -653,13 +699,13 @@ msgstr "Fiyat"
#. module: mrp_repair
#: field:mrp.repair,deliver_bool:0
msgid "Deliver"
-msgstr "Teslimat"
+msgstr "Teslim Et"
#. module: mrp_repair
#: view:mrp.repair:0
#: field:mrp.repair,internal_notes:0
msgid "Internal Notes"
-msgstr "Dahili Notlar"
+msgstr "İç Notlar"
#. module: mrp_repair
#: report:repair.order:0
@@ -669,24 +715,24 @@ msgstr "Vergi:"
#. module: mrp_repair
#: field:mrp.repair,picking_id:0
msgid "Picking"
-msgstr ""
+msgstr "Toplama"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Untaxed amount"
-msgstr "Tutar"
+msgstr "Vergisiz Tutar"
#. module: mrp_repair
#: code:addons/mrp_repair/wizard/cancel_repair.py:41
#, python-format
msgid "Active ID is not Found"
-msgstr ""
+msgstr "Etkin No Bulunmadı"
#. module: mrp_repair
#: code:addons/mrp_repair/wizard/cancel_repair.py:49
#, python-format
msgid "Repair order is not invoiced."
-msgstr ""
+msgstr "Onarım siparişi faturanladırılmamış"
#. module: mrp_repair
#: view:mrp.repair:0
@@ -696,12 +742,12 @@ msgstr "Toplam Tutar"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "UoM"
-msgstr "Birim"
+msgstr "Ölçü Birimi"
#. module: mrp_repair
#: selection:mrp.repair.line,type:0
msgid "Remove"
-msgstr ""
+msgstr "Kaldır"
#. module: mrp_repair
#: field:mrp.repair.fee,product_uom:0
@@ -750,6 +796,7 @@ msgstr "Durumlar"
msgid ""
"This field allow you to choose the parner that will be invoiced and delivered"
msgstr ""
+"Bu alan faturalandırılacak ve teslimat yapılacak paydaşı seçmenizi sağlar"
#. module: mrp_repair
#: field:mrp.repair,amount_total:0
@@ -762,10 +809,10 @@ msgid "Ready to Repair"
msgstr "Onarıma Hazır"
#. module: mrp_repair
-#: code:addons/mrp_repair/mrp_repair.py:362
+#: code:addons/mrp_repair/mrp_repair.py:365
#, python-format
msgid "No partner !"
-msgstr ""
+msgstr "Paydaş Yok !"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Görüntüleme mimarisi için Geçersiz XML"
diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py
index e95e3fb6058..caacb2e3247 100644
--- a/addons/mrp_repair/mrp_repair.py
+++ b/addons/mrp_repair/mrp_repair.py
@@ -117,7 +117,7 @@ class mrp_repair(osv.osv):
'product_id': fields.many2one('product.product', string='Product to Repair', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'partner_id' : fields.many2one('res.partner', 'Partner', select=True, help='This field allow you to choose the parner that will be invoiced and delivered'),
'address_id': fields.many2one('res.partner.address', 'Delivery Address', domain="[('partner_id','=',partner_id)]"),
- 'default_address_id': fields.function(_get_default_address, method=True, type="many2one", relation="res.partner.address"),
+ 'default_address_id': fields.function(_get_default_address, type="many2one", relation="res.partner.address"),
'prodlot_id': fields.many2one('stock.production.lot', 'Lot Number', select=True, domain="[('product_id','=',product_id)]"),
'state': fields.selection([
('draft','Quotation'),
@@ -156,17 +156,17 @@ class mrp_repair(osv.osv):
'deliver_bool': fields.boolean('Deliver', help="Check this box if you want to manage the delivery once the product is repaired. If cheked, it will create a picking with selected product. Note that you can select the locations in the Info tab, if you have the extended view."),
'invoiced': fields.boolean('Invoiced', readonly=True),
'repaired': fields.boolean('Repaired', readonly=True),
- 'amount_untaxed': fields.function(_amount_untaxed, method=True, string='Untaxed Amount',
+ 'amount_untaxed': fields.function(_amount_untaxed, string='Untaxed Amount',
store={
'mrp.repair': (lambda self, cr, uid, ids, c={}: ids, ['operations'], 10),
'mrp.repair.line': (_get_lines, ['price_unit', 'price_subtotal', 'product_id', 'tax_id', 'product_uom_qty', 'product_uom'], 10),
}),
- 'amount_tax': fields.function(_amount_tax, method=True, string='Taxes',
+ 'amount_tax': fields.function(_amount_tax, string='Taxes',
store={
'mrp.repair': (lambda self, cr, uid, ids, c={}: ids, ['operations'], 10),
'mrp.repair.line': (_get_lines, ['price_unit', 'price_subtotal', 'product_id', 'tax_id', 'product_uom_qty', 'product_uom'], 10),
}),
- 'amount_total': fields.function(_amount_total, method=True, string='Total',
+ 'amount_total': fields.function(_amount_total, string='Total',
store={
'mrp.repair': (lambda self, cr, uid, ids, c={}: ids, ['operations'], 10),
'mrp.repair.line': (_get_lines, ['price_unit', 'price_subtotal', 'product_id', 'tax_id', 'product_uom_qty', 'product_uom'], 10),
@@ -661,7 +661,7 @@ class mrp_repair_line(osv.osv, ProductChangeMixin):
'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok','=',True)], required=True),
'invoiced': fields.boolean('Invoiced',readonly=True),
'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Sale Price')),
- 'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal',digits_compute= dp.get_precision('Sale Price')),
+ 'price_subtotal': fields.function(_amount_line, string='Subtotal',digits_compute= dp.get_precision('Sale Price')),
'tax_id': fields.many2many('account.tax', 'repair_operation_line_tax', 'repair_operation_line_id', 'tax_id', 'Taxes'),
'product_uom_qty': fields.float('Quantity (UoM)', digits=(16,2), required=True),
'product_uom': fields.many2one('product.uom', 'Product UoM', required=True),
@@ -750,7 +750,7 @@ class mrp_repair_fee(osv.osv, ProductChangeMixin):
'product_uom_qty': fields.float('Quantity', digits=(16,2), required=True),
'price_unit': fields.float('Unit Price', required=True),
'product_uom': fields.many2one('product.uom', 'Product UoM', required=True),
- 'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal',digits_compute= dp.get_precision('Sale Price')),
+ 'price_subtotal': fields.function(_amount_line, string='Subtotal',digits_compute= dp.get_precision('Sale Price')),
'tax_id': fields.many2many('account.tax', 'repair_fee_line_tax', 'repair_fee_line_id', 'tax_id', 'Taxes'),
'invoice_line_id': fields.many2one('account.invoice.line', 'Invoice Line', readonly=True),
'to_invoice': fields.boolean('To Invoice'),
diff --git a/addons/mrp_repair/mrp_repair_view.xml b/addons/mrp_repair/mrp_repair_view.xml
index c8554070a7c..16cdfc86b3d 100644
--- a/addons/mrp_repair/mrp_repair_view.xml
+++ b/addons/mrp_repair/mrp_repair_view.xml
@@ -116,7 +116,7 @@
diff --git a/addons/outlook/i18n/fi.po b/addons/outlook/i18n/fi.po
new file mode 100644
index 00000000000..c99b602787c
--- /dev/null
+++ b/addons/outlook/i18n/fi.po
@@ -0,0 +1,147 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-20 09:14+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-21 04:37+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: outlook
+#: field:outlook.installer,doc_file:0
+msgid "Installation Manual"
+msgstr "Asennusohje"
+
+#. module: outlook
+#: field:outlook.installer,plugin_file:0
+msgid "Outlook Plug-in"
+msgstr "Outlook liitännäinen"
+
+#. module: outlook
+#: field:outlook.installer,description:0
+msgid "Description"
+msgstr "Kuvaus"
+
+#. module: outlook
+#: model:ir.ui.menu,name:outlook.menu_base_config_plugins_outlook
+#: view:outlook.installer:0
+msgid "Outlook Plug-In"
+msgstr "Outlook liitännäinen"
+
+#. module: outlook
+#: view:outlook.installer:0
+msgid "Skip"
+msgstr "Ohita"
+
+#. module: outlook
+#: model:ir.module.module,shortdesc:outlook.module_meta_information
+msgid "Outlook Interface"
+msgstr "Outlook liittymä"
+
+#. module: outlook
+#: field:outlook.installer,doc_name:0
+#: field:outlook.installer,name:0
+msgid "File name"
+msgstr "Tiedostonimi"
+
+#. module: outlook
+#: field:outlook.installer,outlook:0
+msgid "Outlook Plug-in "
+msgstr "Outlook liitännäinen "
+
+#. module: outlook
+#: model:ir.module.module,description:outlook.module_meta_information
+msgid ""
+"\n"
+" This module provide the Outlook plug-in. \n"
+"\n"
+" Outlook plug-in allows you to select an object that you’d like to add\n"
+" to your email and its attachments from MS Outlook. You can select a "
+"partner, a task,\n"
+" a project, an analytical account, or any other object and Archived "
+"selected\n"
+" mail in mailgate.messages with attachments.\n"
+"\n"
+" "
+msgstr ""
+
+#. module: outlook
+#: help:outlook.installer,doc_file:0
+msgid "The documentation file :- how to install Outlook Plug-in."
+msgstr "Dokumentointi : -kuinka outlook liitännäinen asennetaan."
+
+#. module: outlook
+#: model:ir.model,name:outlook.model_outlook_installer
+msgid "outlook.installer"
+msgstr ""
+
+#. module: outlook
+#: model:ir.actions.act_window,name:outlook.action_outlook_installer
+#: model:ir.actions.act_window,name:outlook.action_outlook_wizard
+#: view:outlook.installer:0
+msgid "Outlook Plug-In Configuration"
+msgstr "Outlook liitännäisen konfiguraatio"
+
+#. module: outlook
+#: field:outlook.installer,progress:0
+msgid "Configuration Progress"
+msgstr "Konfiguraation eteneminen"
+
+#. module: outlook
+#: view:outlook.installer:0
+msgid ""
+"This plug-in allows you to link your e-mail to OpenERP's documents. You can "
+"attach it to any existing one in OpenERP or create a new one."
+msgstr ""
+"Tämä liitännäien sallii sinun linkittää sähköpostisi OpenERP dokumentteihin. "
+"Voit liittää sen mihin tahansa OpenERP:iin tai luoda uuden."
+
+#. module: outlook
+#: help:outlook.installer,outlook:0
+msgid ""
+"Allows you to select an object that you would like to add to your email and "
+"its attachments."
+msgstr ""
+"Voit valita objektin jonka haluat liittää sähköpostiin ja sen liitteisiin."
+
+#. module: outlook
+#: view:outlook.installer:0
+msgid "title"
+msgstr "otsikko"
+
+#. module: outlook
+#: view:outlook.installer:0
+msgid "_Close"
+msgstr ""
+
+#. module: outlook
+#: view:outlook.installer:0
+msgid "Installation and Configuration Steps"
+msgstr "Asennus ja konfigurointivaiheet"
+
+#. module: outlook
+#: field:outlook.installer,config_logo:0
+msgid "Image"
+msgstr "Kuva"
+
+#. module: outlook
+#: help:outlook.installer,plugin_file:0
+msgid ""
+"outlook plug-in file. Save as this file and install this plug-in in outlook."
+msgstr ""
+"Outlook liitännäistiedosto. Talleta se tiedostona ja asenna outlookissa."
+
+#. module: outlook
+#: view:outlook.installer:0
+msgid "Configure"
+msgstr "Konfiguroi"
diff --git a/addons/pad/i18n/fi.po b/addons/pad/i18n/fi.po
new file mode 100644
index 00000000000..fbec40b9370
--- /dev/null
+++ b/addons/pad/i18n/fi.po
@@ -0,0 +1,77 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-20 09:18+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-21 04:37+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: pad
+#: code:addons/pad/web/editors.py:32
+#, python-format
+msgid "Ok"
+msgstr "OK"
+
+#. module: pad
+#: code:addons/pad/web/editors.py:29
+#, python-format
+msgid "Name"
+msgstr "Nimi"
+
+#. module: pad
+#: help:res.company,pad_index:0
+msgid "The root URL of the company's pad instance"
+msgstr "Peruspolku yrityksen PAD instassiin"
+
+#. module: pad
+#: model:ir.model,name:pad.model_res_company
+msgid "Companies"
+msgstr "Yritykset"
+
+#. module: pad
+#: constraint:res.company:0
+msgid "Error! You can not create recursive companies."
+msgstr "Virhe! Et voi luoda sisäkkäisiä yrityksiä."
+
+#. module: pad
+#: code:addons/pad/web/editors.py:17
+#, python-format
+msgid "Write"
+msgstr "Kirjoita"
+
+#. module: pad
+#: model:ir.module.module,description:pad.module_meta_information
+msgid ""
+"\n"
+"Adds enhanced support for (Ether)Pad attachments in the web client, lets "
+"the\n"
+"company customize which Pad installation should be used to link to new pads\n"
+"(by default, pad.openerp.com)\n"
+" "
+msgstr ""
+
+#. module: pad
+#: field:res.company,pad_index:0
+msgid "Pad root URL"
+msgstr "Padin peruspolku (URL)"
+
+#. module: pad
+#: view:res.company:0
+msgid "Pad"
+msgstr ""
+
+#. module: pad
+#: model:ir.module.module,shortdesc:pad.module_meta_information
+msgid "Enhanced support for (Ether)Pad attachments"
+msgstr "Parannettu tuki (Ether)PAD liitännöille"
diff --git a/addons/point_of_sale/i18n/zh_CN.po b/addons/point_of_sale/i18n/zh_CN.po
index 450b2a6b160..618e465807a 100644
--- a/addons/point_of_sale/i18n/zh_CN.po
+++ b/addons/point_of_sale/i18n/zh_CN.po
@@ -7,32 +7,33 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-03 16:58+0000\n"
-"PO-Revision-Date: 2011-01-24 15:18+0000\n"
-"Last-Translator: Wei \"oldrev\" Li \n"
+"PO-Revision-Date: 2011-06-29 01:01+0000\n"
+"Last-Translator: shjerryzhou \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-04-29 04:57+0000\n"
-"X-Generator: Launchpad (build 12758)\n"
+"X-Launchpad-Export-Date: 2011-06-30 04:34+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
#. module: point_of_sale
#: field:pos.discount,discount_notes:0
msgid "Discount Notes"
-msgstr ""
+msgstr "折扣备注"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree_today
msgid "Sales by day"
-msgstr ""
+msgstr "日销售情况"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_confirm
msgid "Point of Sale Confirm"
-msgstr ""
+msgstr "POS确认"
#. module: point_of_sale
-#: wizard_button:pos.discount,init,apply_discount:0
+#: model:ir.actions.act_window,name:point_of_sale.action_pos_discount
+#: view:pos.discount:0
msgid "Apply Discount"
msgstr "应用折扣"
@@ -44,7 +45,7 @@ msgstr "设为草稿"
#. module: point_of_sale
#: field:report.transaction.pos,product_nb:0
msgid "Product Nb."
-msgstr ""
+msgstr "产品号"
#. module: point_of_sale
#: model:ir.module.module,shortdesc:point_of_sale.module_meta_information
@@ -54,41 +55,45 @@ msgstr "POS"
#. module: point_of_sale
#: view:report.pos.order:0
msgid "Today"
-msgstr ""
+msgstr "今天"
#. module: point_of_sale
-#: wizard_view:pos.add_product,init:0
+#: view:pos.add.product:0
msgid "Add product :"
msgstr "增加业务伙伴:"
#. module: point_of_sale
#: view:all.closed.cashbox.of.the.day:0
msgid "All Cashboxes Of the day :"
-msgstr ""
+msgstr "当日所有钱箱"
#. module: point_of_sale
#: view:pos.box.entries:0
msgid "Put Money"
-msgstr ""
+msgstr "存钱"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_cash_register_all
#: model:ir.ui.menu,name:point_of_sale.menu_report_cash_register_all
msgid "Register Analysis"
-msgstr ""
+msgstr "收银机分析"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_lines_detail
+#: report:pos.details:0
+#: report:pos.details_summary:0
msgid "Details of Sales"
msgstr "销售详情"
#. module: point_of_sale
#: view:pos.close.statement:0
msgid "Are you sure you want to close the statements ?"
-msgstr ""
+msgstr "你确定想关闭收银机吗?"
#. module: point_of_sale
-#: wizard_view:pos.scan_product,init:0
+#: model:ir.actions.act_window,name:point_of_sale.action_pos_scan_product
+#: model:ir.model,name:point_of_sale.model_pos_scan_product
+#: view:pos.scan.product:0
msgid "Scan product"
msgstr "扫描产品"
@@ -98,10 +103,10 @@ msgstr "扫描产品"
#: view:report.pos.order:0
#: field:report.pos.order,day:0
msgid "Day"
-msgstr ""
+msgstr "天"
#. module: point_of_sale
-#: wizard_view:pos.payment,ask_pay:0
+#: view:pos.make.payment:0
msgid "Add payment :"
msgstr "增加付款:"
@@ -109,7 +114,7 @@ msgstr "增加付款:"
#: view:report.cash.register:0
#: view:report.pos.order:0
msgid "My Sales"
-msgstr ""
+msgstr "我的销售订单"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_box_out
@@ -119,29 +124,31 @@ msgstr ""
#. module: point_of_sale
#: report:pos.sales.user.today.current.user:0
msgid "Today's Sales By Current User"
-msgstr ""
+msgstr "此用户今天销售情况"
#. module: point_of_sale
-#: rml:pos.invoice:0
-#: field:pos.payment,amount:0
-#: wizard_field:pos.payment,ask_pay,amount:0
+#: report:account.statement:0
+#: field:pos.box.entries,amount:0
+#: field:pos.box.out,amount:0
+#: report:pos.invoice:0
+#: field:pos.make.payment,amount:0
+#: report:pos.user.product:0
#: field:report.transaction.pos,amount:0
msgid "Amount"
msgstr "金额"
#. module: point_of_sale
-#: rml:pos.details:0
-#: rml:pos.lines:0
+#: report:pos.lines:0
msgid "VAT"
msgstr "增值税"
#. module: point_of_sale
#: report:pos.invoice:0
msgid "Origin"
-msgstr ""
+msgstr "原始"
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
msgid "Tax"
msgstr "税"
@@ -153,16 +160,17 @@ msgstr "交易数合计"
#. module: point_of_sale
#: help:account.journal,special_journal:0
msgid "Will put all the orders in waiting status till being accepted"
-msgstr ""
+msgstr "将设置所有订单为等待状态,知道被接受"
#. module: point_of_sale
-#: field:pos.order,partner_id:0
+#: report:account.statement:0
+#: field:report.pos.order,partner_id:0
msgid "Partner"
msgstr "业务伙伴"
#. module: point_of_sale
-#: rml:pos.details:0
-#: rml:pos.details_summary:0
+#: report:pos.details:0
+#: report:pos.details_summary:0
msgid "Total of the day"
msgstr "今天合计"
@@ -170,41 +178,47 @@ msgstr "今天合计"
#: view:report.pos.order:0
#: field:report.pos.order,average_price:0
msgid "Average Price"
-msgstr ""
+msgstr "平均价格"
#. module: point_of_sale
-#: rml:pos.invoice:0
-#: rml:pos.lines:0
+#: report:pos.lines:0
msgid "Disc. (%)"
msgstr "折扣(%)"
#. module: point_of_sale
-#: rml:pos.details:0
-#: rml:pos.details_summary:0
+#: report:pos.details:0
+#: report:pos.details_summary:0
msgid "Total discount"
msgstr "折扣合计"
#. module: point_of_sale
+#: view:account.bank.statement:0
+#: view:pos.order:0
#: field:pos.order,state:0
+#: report:pos.sales.user:0
+#: report:pos.sales.user.today:0
+#: report:pos.sales.user.today.current.user:0
+#: field:report.cash.register,state:0
+#: field:report.pos.order,state:0
msgid "State"
msgstr "状态"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_payment
msgid "Add payment"
-msgstr ""
+msgstr "新增付款"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree_month
msgid "Sales by month"
-msgstr ""
+msgstr "月销售情况"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_user_pos_today
#: view:report.sales.by.user.pos:0
#: view:report.sales.by.user.pos.month:0
msgid "Sales by User"
-msgstr ""
+msgstr "用户销售情况"
#. module: point_of_sale
#: report:pos.invoice:0
@@ -216,62 +230,63 @@ msgstr "折扣(%)"
#: field:pos.box.entries,ref:0
#: field:pos.box.out,ref:0
msgid "Ref"
-msgstr ""
+msgstr "关联单号"
#. module: point_of_sale
#: view:report.pos.order:0
#: field:report.pos.order,price_total:0
msgid "Total Price"
-msgstr ""
+msgstr "总价格"
#. module: point_of_sale
#: view:product.product:0
msgid "Miscelleanous"
-msgstr ""
+msgstr "杂项"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_sales_user
#: report:pos.sales.user:0
msgid "Sales Report"
-msgstr ""
+msgstr "销售报表"
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_discount.py:52
#, python-format
msgid "No Order Lines"
-msgstr ""
+msgstr "无订单明细"
#. module: point_of_sale
#: view:pos.order:0
msgid "Other Information"
-msgstr ""
+msgstr "其它信息"
#. module: point_of_sale
#: view:product.product:0
msgid "Product Type"
-msgstr ""
+msgstr "产品类型"
#. module: point_of_sale
#: view:pos.order:0
#: view:pos.payment.report.date:0
msgid "Dates"
-msgstr ""
+msgstr "日期"
#. module: point_of_sale
#: field:res.company,company_discount:0
msgid "Max Discount(%)"
-msgstr ""
+msgstr "最大折扣(%)"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_point_open_config
msgid "Cash register management"
-msgstr ""
+msgstr "现金登记管理"
#. module: point_of_sale
-#: code:addons/point_of_sale/pos.py:0
+#: code:addons/point_of_sale/point_of_sale.py:1057
+#: code:addons/point_of_sale/point_of_sale.py:1076
#, python-format
msgid "No valid pricelist line found !"
-msgstr ""
+msgstr "没找到有效的价格表明细。"
#. module: point_of_sale
#: report:pos.details:0
@@ -281,13 +296,13 @@ msgstr ""
#: report:pos.payment.report.user:0
#: report:pos.user.product:0
msgid "["
-msgstr ""
+msgstr "["
#. module: point_of_sale
#: field:report.sales.by.margin.pos,total:0
#: field:report.sales.by.margin.pos.month,total:0
msgid "Margin"
-msgstr ""
+msgstr "毛利"
#. module: point_of_sale
#: field:pos.order.line,discount:0
@@ -302,7 +317,7 @@ msgstr "总数量"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_report_sales_by_user_pos_month
msgid "Sales by user monthly"
-msgstr ""
+msgstr "用户月销售情况"
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_open_statement.py:54
@@ -311,57 +326,60 @@ msgid ""
"You can not open a Cashbox for \"%s\".\n"
"Please close its related cash register."
msgstr ""
+"你不能为\"%s\"打开钱箱。\n"
+"请关闭相关的收银机。"
#. module: point_of_sale
#: help:pos.order,user_salesman_id:0
msgid "User who is logged into the system."
-msgstr ""
+msgstr "系统的登录用户"
#. module: point_of_sale
#: field:product.product,income_pdt:0
msgid "Product for Input"
-msgstr ""
+msgstr "输入类产品"
#. module: point_of_sale
#: report:pos.details:0
#: report:pos.details_summary:0
msgid "Mode of Payment"
-msgstr ""
+msgstr "支付方式"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_point_of_sale
msgid "Daily Operations"
-msgstr ""
+msgstr "日常操作"
#. module: point_of_sale
#: view:account.bank.statement:0
msgid "Search Cash Statements"
-msgstr ""
+msgstr "查询现金对账单"
#. module: point_of_sale
#: view:pos.confirm:0
msgid "Are you sure you want to close your sales ?"
-msgstr ""
+msgstr "你确定要关闭你的销售订单吗?"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "August"
-msgstr ""
+msgstr "8月"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "June"
-msgstr ""
+msgstr "6月"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_user_pos_month
msgid "Sales by User Monthly"
-msgstr ""
+msgstr "用户月销售情况"
#. module: point_of_sale
-#: field:pos.payment,payment_date:0
+#: field:pos.order,date_payment:0
+#: field:report.pos.order,date_payment:0
msgid "Payment Date"
msgstr "付款日期"
@@ -369,40 +387,42 @@ msgstr "付款日期"
#: report:account.statement:0
#: report:all.closed.cashbox.of.the.day:0
msgid "Closing Date"
-msgstr ""
+msgstr "结束日期"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "October"
-msgstr ""
+msgstr "十月"
#. module: point_of_sale
#: field:account.bank.statement.line,am_out:0
msgid "To count"
-msgstr ""
+msgstr "计算"
#. module: point_of_sale
-#: rml:pos.details:0
-#: rml:pos.details_summary:0
+#: report:pos.details:0
+#: report:pos.details_summary:0
msgid "Summary"
msgstr "摘要"
#. module: point_of_sale
#: view:pos.order:0
msgid "Quotations"
-msgstr ""
+msgstr "报价单"
#. module: point_of_sale
#: field:report.pos.order,delay_payment:0
msgid "Delay Payment"
-msgstr ""
+msgstr "延期付款"
#. module: point_of_sale
-#: wizard_field:pos.add_product,init,quantity:0
-#: rml:pos.invoice:0
-#: rml:pos.lines:0
+#: field:pos.add.product,quantity:0
+#: report:pos.invoice:0
+#: report:pos.lines:0
#: field:pos.order.line,qty:0
+#: field:report.sales.by.user.pos,qty:0
+#: field:report.sales.by.user.pos.month,qty:0
msgid "Quantity"
msgstr "数量"
@@ -414,10 +434,11 @@ msgstr ""
#. module: point_of_sale
#: view:account.bank.statement:0
msgid "Period"
-msgstr ""
+msgstr "期间"
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
+#: report:pos.payment.report:0
msgid "Net Total:"
msgstr "净合计:"
@@ -429,7 +450,7 @@ msgstr "说明"
#. module: point_of_sale
#: view:product.product:0
msgid "Codes"
-msgstr ""
+msgstr "编码"
#. module: point_of_sale
#: view:pos.box.out:0
@@ -446,12 +467,15 @@ msgstr ""
#: view:pos.sales.user.today:0
#: view:pos.sales.user.today.current_user:0
msgid "Print Report"
-msgstr ""
+msgstr "打印报表"
#. module: point_of_sale
-#: rml:pos.invoice:0
-#: rml:pos.lines:0
+#: report:pos.invoice:0
+#: report:pos.lines:0
#: field:pos.order.line,price_unit:0
+#: report:pos.payment.report:0
+#: report:pos.payment.report.date:0
+#: report:pos.payment.report.user:0
msgid "Unit Price"
msgstr "单价"
@@ -459,7 +483,7 @@ msgstr "单价"
#: code:addons/point_of_sale/wizard/pos_box_entries.py:107
#, python-format
msgid "Please check that income account is set to %s"
-msgstr ""
+msgstr "请检查是否%s设置了收入类科目"
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_add_product.py:56
@@ -469,30 +493,36 @@ msgstr ""
#: model:ir.model,name:point_of_sale.model_pos_add_product
#, python-format
msgid "Add Product"
-msgstr ""
+msgstr "新增产品"
#. module: point_of_sale
#: field:report.transaction.pos,invoice_am:0
msgid "Invoice Amount"
-msgstr ""
+msgstr "发票金额"
#. module: point_of_sale
+#: view:account.bank.statement:0
+#: field:account.bank.statement.line,journal_id:0
+#: report:account.statement:0
+#: report:all.closed.cashbox.of.the.day:0
+#: model:ir.model,name:point_of_sale.model_account_journal
#: field:pos.config.journal,journal_id:0
#: field:pos.order,sale_journal:0
-#: wizard_field:pos.payment,ask_pay,journal:0
-#: field:pos.payment,journal_id:0
-#: field:report.transaction.pos,journal_id:0
+#: view:report.cash.register:0
+#: field:report.cash.register,journal_id:0
+#: field:report.pos.order,journal_id:0
msgid "Journal"
msgstr "分类帐"
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
msgid "Tel. :"
msgstr "电话:"
#. module: point_of_sale
-#: model:ir.actions.wizard,name:point_of_sale.pos_payment
#: view:pos.order:0
+#: selection:pos.order,state:0
+#: selection:report.pos.order,state:0
msgid "Payment"
msgstr "付款"
@@ -500,7 +530,7 @@ msgstr "付款"
#: report:account.statement:0
#: report:all.closed.cashbox.of.the.day:0
msgid "Ending Balance"
-msgstr ""
+msgstr "期末结余"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.products_for_output_operations
@@ -510,7 +540,7 @@ msgstr ""
#. module: point_of_sale
#: view:pos.payment.report.date:0
msgid "Sale by Date and User"
-msgstr ""
+msgstr "按日期和用户查看销售情况"
#. module: point_of_sale
#: code:addons/point_of_sale/point_of_sale.py:69
@@ -518,11 +548,11 @@ msgstr ""
msgid ""
"Cannot delete a point of sale which is closed or contains confirmed "
"cashboxes!"
-msgstr ""
+msgstr "不能删除已关闭或者有已确认钱箱的销售终端!"
#. module: point_of_sale
-#: rml:pos.details:0
-#: rml:pos.details_summary:0
+#: report:pos.details:0
+#: report:pos.details_summary:0
msgid "Mode of Taxes"
msgstr "税收模式"
@@ -530,75 +560,78 @@ msgstr "税收模式"
#: code:addons/point_of_sale/wizard/pos_close_statement.py:48
#, python-format
msgid "Cash registers are already closed."
-msgstr ""
+msgstr "收银机已关闭。"
#. module: point_of_sale
#: constraint:product.product:0
msgid "Error: Invalid ean code"
-msgstr ""
+msgstr "错误:无效的EAN编码"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_open_statement
#: view:pos.confirm:0
#: view:pos.open.statement:0
msgid "Open Statements"
-msgstr ""
+msgstr "开启收银机"
#. module: point_of_sale
#: view:pos.add.product:0
msgid "Save & New"
-msgstr ""
+msgstr "保存并新建"
#. module: point_of_sale
#: report:pos.details:0
msgid "Sales total(Revenue)"
-msgstr ""
+msgstr "销售总计(总收入)"
#. module: point_of_sale
-#: rml:pos.details:0
-#: rml:pos.details_summary:0
+#: report:pos.details:0
+#: report:pos.details_summary:0
msgid "Total paid"
msgstr "付款合计"
#. module: point_of_sale
#: field:account.journal,check_dtls:0
msgid "Check Details"
-msgstr ""
+msgstr "详细检查"
#. module: point_of_sale
-#: rml:pos.details:0
-#: rml:pos.details_summary:0
+#: report:pos.details:0
+#: report:pos.details_summary:0
msgid "Qty of product"
msgstr "产品数量"
#. module: point_of_sale
#: field:pos.order,contract_number:0
msgid "Contract Number"
-msgstr ""
+msgstr "联系号码"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "March"
-msgstr ""
+msgstr "3月"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_users_product_re
#: report:pos.user.product:0
msgid "User's Product"
-msgstr ""
+msgstr "用户的产品"
#. module: point_of_sale
-#: code:addons/point_of_sale/point_of_sale.py:1042
-#: code:addons/point_of_sale/point_of_sale.py:1067
+#: code:addons/point_of_sale/point_of_sale.py:1043
+#: code:addons/point_of_sale/point_of_sale.py:1068
#, python-format
msgid ""
"You have to select a pricelist in the sale form !\n"
"Please set one before choosing a product."
msgstr ""
+"你必须在销售窗口选择一条报价单!\n"
+"请在选择某个产品之前设置它。"
#. module: point_of_sale
-#: field:pos.order.line,price_subtotal:0
+#: view:pos.order:0
+#: field:pos.order.line,price_subtotal_incl:0
msgid "Subtotal"
msgstr "小计"
@@ -607,39 +640,39 @@ msgstr "小计"
#: model:ir.model,name:point_of_sale.model_pos_close_statement
#: view:pos.close.statement:0
msgid "Close Statements"
-msgstr ""
+msgstr "关闭收银机"
#. module: point_of_sale
#: view:account.journal:0
msgid "Extended Configureation"
-msgstr ""
+msgstr "扩展配置"
#. module: point_of_sale
#: report:account.statement:0
#: report:all.closed.cashbox.of.the.day:0
msgid "Starting Balance"
-msgstr ""
+msgstr "期初余额"
#. module: point_of_sale
#: report:pos.payment.report.user:0
msgid "Payment By User"
-msgstr ""
+msgstr "用户付款"
#. module: point_of_sale
#: field:pos.order,type_rec:0
msgid "Type of Receipt"
-msgstr ""
+msgstr "收据类型"
#. module: point_of_sale
#: view:report.pos.order:0
#: field:report.pos.order,nbr:0
msgid "# of Lines"
-msgstr ""
+msgstr "# 明细"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_accepted
msgid "Accepted Sales"
-msgstr ""
+msgstr "已接受的销售订单"
#. module: point_of_sale
#: help:account.journal,check_dtls:0
@@ -650,11 +683,10 @@ msgstr ""
#. module: point_of_sale
#: report:all.closed.cashbox.of.the.day:0
msgid "St.Name"
-msgstr ""
+msgstr "St.Name"
#. module: point_of_sale
-#: rml:pos.details:0
-#: rml:pos.details_summary:0
+#: report:pos.details_summary:0
msgid "Sales total"
msgstr "销售合计"
@@ -664,7 +696,7 @@ msgid "Sum of subtotals"
msgstr "合计小计"
#. module: point_of_sale
-#: wizard_field:pos.payment,ask_pay,payment_date:0
+#: field:pos.make.payment,payment_date:0
msgid "Payment date"
msgstr "付款日期"
@@ -681,9 +713,13 @@ msgstr "创建日期"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_sales_user_today
msgid "Today's Sales"
-msgstr ""
+msgstr "今天的销售情况"
#. module: point_of_sale
+#: view:report.sales.by.margin.pos:0
+#: view:report.sales.by.margin.pos.month:0
+#: view:report.sales.by.user.pos:0
+#: view:report.sales.by.user.pos.month:0
#: view:report.transaction.pos:0
msgid "POS "
msgstr "POS "
@@ -696,31 +732,32 @@ msgid "Total :"
msgstr "合计:"
#. module: point_of_sale
-#: code:addons/point_of_sale/pos.py:0
+#: code:addons/point_of_sale/point_of_sale.py:1202
#, python-format
msgid "Create line failed !"
-msgstr ""
+msgstr "明细创建失败!"
#. module: point_of_sale
#: field:report.sales.by.margin.pos,product_name:0
#: field:report.sales.by.margin.pos.month,product_name:0
msgid "Product Name"
-msgstr ""
+msgstr "产品名称"
#. module: point_of_sale
-#: code:addons/point_of_sale/pos.py:0
+#: code:addons/point_of_sale/point_of_sale.py:69
#, python-format
msgid "Invalid action !"
-msgstr ""
+msgstr "无效动作!"
#. module: point_of_sale
+#: field:pos.make.payment,pricelist_id:0
#: field:pos.order,pricelist_id:0
msgid "Pricelist"
msgstr "价格表"
#. module: point_of_sale
-#: rml:pos.details:0
-#: rml:pos.details_summary:0
+#: report:pos.details:0
+#: report:pos.details_summary:0
msgid "Total invoiced"
msgstr "已开票合计"
@@ -728,17 +765,17 @@ msgstr "已开票合计"
#: view:report.pos.order:0
#: field:report.pos.order,product_qty:0
msgid "# of Qty"
-msgstr ""
+msgstr "数量#"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_return
msgid "Point of sale return"
-msgstr ""
+msgstr "POS退款"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_report_sales_by_margin_pos_month
msgid "Sales by margin monthly"
-msgstr ""
+msgstr "按月利润率查看销售情况"
#. module: point_of_sale
#: view:pos.order:0
@@ -747,15 +784,15 @@ msgstr ""
#: field:report.sales.by.user.pos,date_order:0
#: field:report.sales.by.user.pos.month,date_order:0
msgid "Order Date"
-msgstr ""
+msgstr "订单日期"
#. module: point_of_sale
#: report:all.closed.cashbox.of.the.day:0
msgid "Today's Closed Cashbox"
-msgstr ""
+msgstr "今日关闭的钱箱"
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
msgid "Draft Invoice"
msgstr "发票草稿"
@@ -764,7 +801,7 @@ msgstr "发票草稿"
msgid ""
"The amount of the voucher must be the same amount as the one on the "
"statement line"
-msgstr ""
+msgstr "凭证金额必须和对账单明细上的金额一致"
#. module: point_of_sale
#: field:product.product,expense_pdt:0
@@ -775,7 +812,7 @@ msgstr ""
#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_sales_user_today_current_user
#: view:pos.sales.user.today.current_user:0
msgid "Sales for Current User"
-msgstr ""
+msgstr "当前用户的销售订单"
#. module: point_of_sale
#: report:pos.invoice:0
@@ -786,26 +823,26 @@ msgstr "财务状况备注:"
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "September"
-msgstr ""
+msgstr "9月"
#. module: point_of_sale
#: report:account.statement:0
#: report:all.closed.cashbox.of.the.day:0
msgid "Opening Date"
-msgstr ""
+msgstr "开启日期"
#. module: point_of_sale
#: report:pos.lines:0
msgid "Taxes :"
-msgstr ""
+msgstr "税:"
#. module: point_of_sale
#: field:report.transaction.pos,disc:0
msgid "Disc."
-msgstr ""
+msgstr "折扣"
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
msgid "VAT :"
msgstr "增值税:"
@@ -817,16 +854,16 @@ msgstr "POS单明细"
#. module: point_of_sale
#: view:pos.receipt:0
msgid "Receipt :"
-msgstr ""
+msgstr "收据:"
#. module: point_of_sale
-#: field:pos.order,amount_paid:0
+#: field:account.bank.statement.line,pos_statement_id:0
#: field:pos.order,amount_return:0
msgid "unknown"
msgstr "未知"
#. module: point_of_sale
-#: rml:pos.details:0
+#: report:pos.details:0
#: field:report.transaction.pos,date_create:0
msgid "Date"
msgstr "日期"
@@ -834,17 +871,17 @@ msgstr "日期"
#. module: point_of_sale
#: view:report.pos.order:0
msgid "Extended Filters..."
-msgstr ""
+msgstr "扩展过滤器..."
#. module: point_of_sale
#: field:pos.order,num_sale:0
msgid "Internal Note"
-msgstr ""
+msgstr "内部备注"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_res_company
msgid "Companies"
-msgstr ""
+msgstr "公司"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_report_transaction_pos
@@ -855,7 +892,7 @@ msgstr "POS交易"
#: code:addons/point_of_sale/wizard/pos_get_sale.py:54
#, python-format
msgid "UserError "
-msgstr ""
+msgstr "UserError "
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_box_entries
@@ -863,21 +900,21 @@ msgid "Pos Box Entries"
msgstr ""
#. module: point_of_sale
-#: code:addons/point_of_sale/wizard/wizard_get_sale.py:0
+#: code:addons/point_of_sale/wizard/pos_get_sale.py:54
#, python-format
msgid "You can't modify this order. It has already been paid"
-msgstr ""
+msgstr "你不能修改此订单,它已经付款了。"
#. module: point_of_sale
#: field:pos.details,date_end:0
#: field:pos.sale.user,date_end:0
msgid "Date End"
-msgstr ""
+msgstr "结束日期"
#. module: point_of_sale
#: report:pos.invoice:0
msgid "Your Reference"
-msgstr ""
+msgstr "你的关联单号"
#. module: point_of_sale
#: field:report.transaction.pos,no_trans:0
@@ -885,22 +922,21 @@ msgid "Number of Transaction"
msgstr "交易数"
#. module: point_of_sale
-#: wizard_button:pos.add_product,init,end:0
-#: wizard_button:pos.config.journal,init,end:0
-#: wizard_button:pos.discount,init,end:0
-#: view:pos.order:0
+#: view:pos.add.product:0
+#: view:pos.box.entries:0
+#: view:pos.box.out:0
+#: view:pos.get.sale:0
+#: view:pos.make.payment:0
#: selection:pos.order,state:0
-#: wizard_button:pos.payment,ask_pay,end:0
-#: wizard_button:pos.refund_order,init,end:0
-#: wizard_button:pos.sale.get,init,end:0
-#: wizard_button:pos.scan_product,init,end:0
+#: view:pos.receipt:0
+#: selection:report.pos.order,state:0
msgid "Cancel"
msgstr "取消"
#. module: point_of_sale
#: view:pos.order:0
msgid "Return Picking"
-msgstr ""
+msgstr "退回分拣单"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_details_summary
@@ -910,36 +946,36 @@ msgstr "销售(参考)"
#. module: point_of_sale
#: view:product.product:0
msgid "Information"
-msgstr ""
+msgstr "信息"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_wizard_enter_jrnl
msgid "Input Operations"
-msgstr ""
+msgstr "输入操作"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_report_cash_register
#: view:report.cash.register:0
msgid "Point of Sale Cash Register Analysis"
-msgstr ""
+msgstr "POS收银机分析"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_sales_user_today
msgid "Sale by Users"
-msgstr ""
+msgstr "按用户查看销售订单"
#. module: point_of_sale
#: report:pos.payment.report:0
msgid "Payment For Sale"
-msgstr ""
+msgstr "销售付款"
#. module: point_of_sale
#: field:pos.order,first_name:0
msgid "First Name"
-msgstr ""
+msgstr "名字"
#. module: point_of_sale
-#: view:pos.order:0
+#: view:res.company:0
msgid "Other"
msgstr "其它"
@@ -958,28 +994,31 @@ msgstr "金额合计"
#: model:ir.actions.act_window,name:point_of_sale.action_new_bank_statement_all_tree
#: model:ir.ui.menu,name:point_of_sale.menu_all_menu_all_register
msgid "Cash Registers"
-msgstr ""
+msgstr "收银机"
#. module: point_of_sale
#: view:account.journal:0
#: field:account.journal,journal_users:0
msgid "Users"
-msgstr ""
+msgstr "用户"
#. module: point_of_sale
-#: rml:pos.details:0
-#: rml:pos.invoice:0
-#: rml:pos.lines:0
-#: rml:pos.receipt:0
+#: report:pos.details:0
+#: report:pos.invoice:0
+#: report:pos.lines:0
msgid "Price"
msgstr "价格"
#. module: point_of_sale
-#: wizard_field:pos.scan_product,init,gencod:0
+#: field:pos.scan.product,gencod:0
msgid "Barcode"
-msgstr "条码"
+msgstr "条形码"
#. module: point_of_sale
+#: view:report.sales.by.margin.pos:0
+#: view:report.sales.by.margin.pos.month:0
+#: view:report.sales.by.user.pos:0
+#: view:report.sales.by.user.pos.month:0
#: view:report.transaction.pos:0
msgid "POS"
msgstr "POS"
@@ -987,18 +1026,18 @@ msgstr "POS"
#. module: point_of_sale
#: field:report.cash.register,date:0
msgid "Create Date"
-msgstr ""
+msgstr "创建日期"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_wizard_enter_jrnl2
msgid "Output Operations"
-msgstr ""
+msgstr "输出操作"
#. module: point_of_sale
#: report:pos.details:0
#: report:pos.details_summary:0
msgid "Start Period"
-msgstr ""
+msgstr "开始期间"
#. module: point_of_sale
#: report:account.statement:0
@@ -1006,12 +1045,12 @@ msgstr ""
#: report:pos.sales.user.today:0
#: report:pos.sales.user.today.current.user:0
msgid "Name"
-msgstr ""
+msgstr "名称"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_open_statement
msgid "Open Cash Registers"
-msgstr ""
+msgstr "打开收银机"
#. module: point_of_sale
#: report:pos.details:0
@@ -1021,15 +1060,15 @@ msgstr ""
#: report:pos.payment.report.user:0
#: report:pos.user.product:0
msgid "]"
-msgstr ""
+msgstr "]"
#. module: point_of_sale
#: sql_constraint:account.journal:0
msgid "The name of the journal must be unique per company !"
-msgstr ""
+msgstr "每个公司的日记账名称必须唯一!"
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
msgid "Supplier Refund"
msgstr "供应商退货"
@@ -1039,7 +1078,7 @@ msgstr "供应商退货"
#: view:report.cash.register:0
#: view:report.pos.order:0
msgid "Group By..."
-msgstr ""
+msgstr "分组..."
#. module: point_of_sale
#: view:pos.order:0
@@ -1049,53 +1088,54 @@ msgstr "POS单"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.all_closed_cashbox_of_the_day
msgid "All Closed CashBox"
-msgstr ""
+msgstr "所有关闭的钱箱"
#. module: point_of_sale
-#: code:addons/point_of_sale/pos.py:0
+#: code:addons/point_of_sale/point_of_sale.py:1042
+#: code:addons/point_of_sale/point_of_sale.py:1067
#, python-format
msgid "No Pricelist !"
-msgstr ""
+msgstr "没有价格表!"
#. module: point_of_sale
-#: wizard_view:pos.sale.get,init:0
+#: model:ir.actions.act_window,name:point_of_sale.action_pos_get_sale
+#: view:pos.get.sale:0
msgid "Select an Open Sale Order"
msgstr "选择待处理的销售单"
#. module: point_of_sale
#: view:pos.order:0
msgid "Order date"
-msgstr ""
+msgstr "订单日期"
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
msgid "Base"
msgstr "基础"
#. module: point_of_sale
#: view:product.product:0
msgid "Account"
-msgstr ""
+msgstr "科目"
#. module: point_of_sale
#: field:pos.order,sale_manager:0
msgid "Salesman Manager"
-msgstr ""
+msgstr "销售经理"
#. module: point_of_sale
#: view:pos.order:0
-#: field:pos.order,note:0
msgid "Notes"
msgstr "备注"
#. module: point_of_sale
-#: wizard_field:pos.sale.get,init,picking_id:0
+#: field:pos.get.sale,picking_id:0
+#: view:pos.order:0
msgid "Sale Order"
msgstr "销售单"
#. module: point_of_sale
-#: rml:pos.invoice:0
-#: rml:pos.lines:0
+#: report:pos.invoice:0
#: field:pos.order,amount_tax:0
msgid "Taxes"
msgstr "税"
@@ -1103,12 +1143,13 @@ msgstr "税"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_line
#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_line_day
+#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_line_form
msgid "Sale line"
msgstr "销售明细"
#. module: point_of_sale
#: field:pos.config.journal,code:0
-#: rml:pos.details:0
+#: report:pos.details:0
msgid "Code"
msgstr "代码"
@@ -1118,30 +1159,30 @@ msgstr "代码"
#: model:ir.ui.menu,name:point_of_sale.menu_point_of_sale_product
#: model:ir.ui.menu,name:point_of_sale.menu_pos_products
msgid "Products"
-msgstr ""
+msgstr "产品"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_payment_report
msgid "Payment Report For Sale"
-msgstr ""
+msgstr "销售的支付报表"
#. module: point_of_sale
#: field:account.journal,special_journal:0
msgid "Special Journal"
-msgstr ""
+msgstr "专用日记账"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_all_closed_cashbox_of_the_day
msgid "All closed cashbox of the day"
-msgstr ""
+msgstr "当日所有关闭的钱箱"
#. module: point_of_sale
#: view:pos.order:0
msgid "Extra Info"
-msgstr ""
+msgstr "附加信息"
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
msgid "Fax :"
msgstr "传真:"
@@ -1179,21 +1220,27 @@ msgstr ""
#. module: point_of_sale
#: field:pos.order,price_type:0
msgid "Price method"
-msgstr ""
+msgstr "定价方式"
#. module: point_of_sale
#: view:pos.receipt:0
msgid "Print the receipt of the sale"
-msgstr ""
+msgstr "打印销售订单的收据"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_stock_picking
msgid "Picking List"
-msgstr ""
+msgstr "分拣单"
#. module: point_of_sale
-#: rml:pos.details:0
-#: rml:pos.receipt:0
+#: report:pos.details:0
+#: report:pos.payment.report:0
+#: report:pos.payment.report.date:0
+#: report:pos.payment.report.user:0
+#: report:pos.sales.user.today.current.user:0
+#: report:pos.user.product:0
+#: field:report.sales.by.margin.pos,qty:0
+#: field:report.sales.by.margin.pos.month,qty:0
msgid "Qty"
msgstr "数量"
@@ -1201,18 +1248,25 @@ msgstr "数量"
#: view:report.cash.register:0
#: view:report.pos.order:0
msgid "Month -1"
-msgstr ""
+msgstr "上月"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_sale_user
#: model:ir.model,name:point_of_sale.model_pos_sale_user
#: view:pos.payment.report.user:0
msgid "Sale by User"
-msgstr ""
+msgstr "用户的销售订单"
#. module: point_of_sale
-#: code:addons/point_of_sale/pos.py:0
-#: code:addons/point_of_sale/report/pos_invoice.py:0
+#: code:addons/point_of_sale/point_of_sale.py:558
+#: code:addons/point_of_sale/point_of_sale.py:744
+#: code:addons/point_of_sale/point_of_sale.py:852
+#: code:addons/point_of_sale/report/pos_invoice.py:46
+#: code:addons/point_of_sale/wizard/pos_box_entries.py:103
+#: code:addons/point_of_sale/wizard/pos_box_entries.py:107
+#: code:addons/point_of_sale/wizard/pos_box_out.py:95
+#: code:addons/point_of_sale/wizard/pos_box_out.py:99
+#: code:addons/point_of_sale/wizard/pos_box_out.py:101
#, python-format
msgid "Error !"
msgstr "错误!"
@@ -1220,34 +1274,34 @@ msgstr "错误!"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_confirm
msgid "Sale Confirm"
-msgstr ""
+msgstr "确认售出"
#. module: point_of_sale
#: view:report.cash.register:0
msgid "state"
-msgstr ""
+msgstr "状态"
#. module: point_of_sale
#: view:product.product:0
msgid "Prices"
-msgstr ""
+msgstr "价格"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "July"
-msgstr ""
+msgstr "7月"
#. module: point_of_sale
-#: code:addons/point_of_sale/point_of_sale.py:544
+#: code:addons/point_of_sale/point_of_sale.py:547
#, python-format
msgid "Please provide an account for the product: %s"
-msgstr ""
+msgstr "请为产品%s提供一个科目"
#. module: point_of_sale
#: field:report.pos.order,delay_validation:0
msgid "Delay Validation"
-msgstr ""
+msgstr "验证延迟"
#. module: point_of_sale
#: field:pos.order,nb_print:0
@@ -1257,29 +1311,29 @@ msgstr "打印数"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_make_payment
msgid "Point of Sale Payment"
-msgstr ""
+msgstr "POS付款"
#. module: point_of_sale
#: report:pos.details:0
#: report:pos.details_summary:0
msgid "End Period"
-msgstr ""
+msgstr "结束期间"
#. module: point_of_sale
#: field:account.journal,auto_cash:0
msgid "Automatic Opening"
-msgstr ""
+msgstr "自动打开"
#. module: point_of_sale
#: field:pos.order.line,price_ded:0
msgid "Discount(Amount)"
-msgstr ""
+msgstr "折扣(金额)"
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_add_product.py:51
#, python-format
msgid "Active ID is not found"
-msgstr ""
+msgstr "没有发现有效的ID"
#. module: point_of_sale
#: field:account.bank.statement.line,is_acc:0
@@ -1292,7 +1346,7 @@ msgstr ""
#: view:report.pos.order:0
#: field:report.pos.order,month:0
msgid "Month"
-msgstr ""
+msgstr "本月"
#. module: point_of_sale
#: view:pos.order:0
@@ -1302,7 +1356,7 @@ msgstr "POS销售单"
#. module: point_of_sale
#: report:account.statement:0
msgid "Statement Name"
-msgstr ""
+msgstr "对账单名称"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_new_bank_statement_tree
@@ -1311,114 +1365,121 @@ msgstr ""
#: field:pos.box.out,journal_id:0
#: field:pos.make.payment,journal:0
msgid "Cash Register"
-msgstr ""
+msgstr "收银机"
#. module: point_of_sale
#: field:pos.payment.report.date,date_start:0
msgid "Start Date"
-msgstr ""
+msgstr "开始日期"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_receipt
msgid "Point of sale receipt"
-msgstr ""
+msgstr "POS收银条"
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_payment.py:91
#, python-format
msgid "No order lines defined for this sale "
-msgstr ""
+msgstr "此销售订单没有定义订单明细 "
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_margin_pos_today
msgid "Sales by User Daily margin"
-msgstr ""
+msgstr "按用户日利润率查看销售报表"
#. module: point_of_sale
#: field:pos.order,note_2:0
msgid "Customer Note"
-msgstr ""
+msgstr "客户备注"
#. module: point_of_sale
-#: code:addons/point_of_sale/pos.py:0
+#: code:addons/point_of_sale/point_of_sale.py:340
#, python-format
msgid "No order lines defined for this sale."
-msgstr ""
+msgstr "订单没有订单明细"
#. module: point_of_sale
#: field:report.cash.register,balance_start:0
msgid "Opening Balance"
-msgstr ""
+msgstr "期初余额"
#. module: point_of_sale
+#: field:pos.order,amount_paid:0
#: selection:pos.order,state:0
+#: view:report.pos.order:0
+#: selection:report.pos.order,state:0
msgid "Paid"
msgstr "付款"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_all_sales_lines
msgid "All sales lines"
-msgstr ""
+msgstr "所有销售明细"
#. module: point_of_sale
#: selection:pos.order,state:0
#: selection:report.cash.register,state:0
msgid "Quotation"
-msgstr ""
+msgstr "报价单"
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:all.closed.cashbox.of.the.day:0
+#: report:pos.invoice:0
+#: report:pos.lines:0
+#: report:pos.payment.report.date:0
+#: report:pos.payment.report.user:0
msgid "Total:"
msgstr "合计:"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_report_sales_by_margin_pos
msgid "Sales by margin"
-msgstr ""
+msgstr "按利润率查看销售"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_config_journal
msgid "Journal Configuration"
-msgstr ""
+msgstr "日记账配置"
#. module: point_of_sale
#: view:pos.order:0
msgid "Statement lines"
-msgstr ""
+msgstr "对账单明细"
#. module: point_of_sale
#: help:pos.order,user_id:0
msgid ""
"Person who uses the the cash register. It could be a reliever, a student or "
"an interim employee."
-msgstr ""
+msgstr "使用收银机的人。可以是一个救济者,学生或临时员工。"
#. module: point_of_sale
#: field:report.transaction.pos,invoice_id:0
msgid "Nbr Invoice"
-msgstr ""
+msgstr "发票编号"
#. module: point_of_sale
-#: model:ir.actions.report.xml,name:point_of_sale.pos_receipt
+#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_receipt
msgid "Receipt"
msgstr "收入"
#. module: point_of_sale
#: field:pos.order,invoice_wanted:0
msgid "Create Invoice"
-msgstr "创建发票"
+msgstr "生成发票"
#. module: point_of_sale
#: selection:pos.order,state:0
+#: selection:report.pos.order,state:0
msgid "Done"
msgstr "完成"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_invoice_report
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
+#: field:pos.make.payment,invoice_wanted:0
#: field:pos.order,invoice_id:0
-#: wizard_field:pos.payment,ask_pay,invoice_wanted:0
-#: field:report.transaction.pos,invoice_id:0
msgid "Invoice"
msgstr "发票"
@@ -1431,11 +1492,10 @@ msgstr ""
#: view:account.bank.statement:0
#: selection:report.cash.register,state:0
msgid "Open"
-msgstr ""
+msgstr "开放"
#. module: point_of_sale
#: field:pos.order.line,order_id:0
-#: field:pos.payment,order_id:0
msgid "Order Ref"
msgstr "单据参考"
@@ -1443,7 +1503,7 @@ msgstr "单据参考"
#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_payment_repport_date
#: model:ir.ui.menu,name:point_of_sale.menu_pos_payment_report_date
msgid "Sales lines Report"
-msgstr ""
+msgstr "销售明细报表"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_box_entries
@@ -1454,34 +1514,42 @@ msgstr ""
#. module: point_of_sale
#: selection:pos.order,price_type:0
msgid "Tax excluded"
-msgstr ""
+msgstr "不含税"
#. module: point_of_sale
#: field:report.sales.by.margin.pos,net_margin_per_qty:0
#: field:report.sales.by.margin.pos.month,net_margin_per_qty:0
msgid "Net margin per Qty"
-msgstr ""
+msgstr "单位数量的毛利润"
#. module: point_of_sale
#: view:report.sales.by.margin.pos:0
#: view:report.sales.by.margin.pos.month:0
msgid "Sales by User Margin"
-msgstr ""
+msgstr "按用户和利润查看销售情况"
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
msgid "Taxes:"
msgstr "税:"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_report_pos_order
msgid "Point of Sale Orders Statistics"
-msgstr ""
+msgstr "POS订单统计"
#. module: point_of_sale
-#: wizard_field:pos.add_product,init,product:0
-#: rml:pos.details:0
+#: model:ir.model,name:point_of_sale.model_product_product
+#: field:pos.add.product,product_id:0
+#: report:pos.details:0
#: field:pos.order.line,product_id:0
+#: report:pos.payment.report:0
+#: report:pos.payment.report.date:0
+#: report:pos.payment.report.user:0
+#: report:pos.user.product:0
+#: view:product.product:0
+#: view:report.pos.order:0
+#: field:report.pos.order,product_id:0
msgid "Product"
msgstr "产品"
@@ -1493,23 +1561,23 @@ msgstr "销售单明细"
#. module: point_of_sale
#: field:product.product,disc_controle:0
msgid "Discount Control"
-msgstr ""
+msgstr "折扣控制"
#. module: point_of_sale
#: field:report.cash.register,balance_end_real:0
msgid "Closing Balance"
-msgstr ""
+msgstr "期末余额"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_details
#: model:ir.ui.menu,name:point_of_sale.menu_pos_details
msgid "Sale Details"
-msgstr ""
+msgstr "销售详情"
#. module: point_of_sale
#: field:pos.payment.report.date,date_end:0
msgid "End Date"
-msgstr ""
+msgstr "结束日期"
#. module: point_of_sale
#: field:pos.order,date_order:0
@@ -1520,68 +1588,73 @@ msgstr "订单日期"
#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_payment_report_user
#: model:ir.model,name:point_of_sale.model_pos_payment_report_user
msgid "Sales lines by Users"
-msgstr ""
+msgstr "用户销售明细"
#. module: point_of_sale
#: field:res.company,max_diff:0
msgid "Max Difference for Cashboxes"
-msgstr ""
+msgstr "钱箱最大的差异"
#. module: point_of_sale
#: view:pos.close.statement:0
#: view:pos.confirm:0
#: view:pos.open.statement:0
msgid "Yes"
-msgstr ""
+msgstr "是"
#. module: point_of_sale
-#: code:addons/point_of_sale/point_of_sale.py:743
+#: code:addons/point_of_sale/point_of_sale.py:744
#, python-format
msgid "There is no income account defined for this product: \"%s\" (id:%d)"
-msgstr ""
+msgstr "没有为此产品定义收入类科目: \\\"%s\\\" (id:%d)"
#. module: point_of_sale
#: view:pos.make.payment:0
msgid "The cash register must be opened to be able to execute a payment."
-msgstr ""
+msgstr "收银机必须处于开启状态才能处理支付业务。"
#. module: point_of_sale
#: report:pos.lines:0
msgid "Net Total :"
-msgstr ""
+msgstr "总净重:"
#. module: point_of_sale
#: view:product.product:0
msgid "Product Description"
-msgstr ""
+msgstr "产品描述"
#. module: point_of_sale
#: field:pos.details,date_start:0
#: field:pos.sale.user,date_start:0
msgid "Date Start"
-msgstr ""
+msgstr "开始日期"
#. module: point_of_sale
-#: rml:pos.lines:0
#: field:pos.order,amount_total:0
+#: report:pos.payment.report:0
+#: report:pos.payment.report.date:0
+#: report:pos.payment.report.user:0
+#: report:pos.sales.user.today.current.user:0
+#: field:report.sales.by.user.pos,amount:0
+#: field:report.sales.by.user.pos.month,amount:0
msgid "Total"
msgstr "合计"
#. module: point_of_sale
#: view:pos.sale.user:0
msgid "Sale By User"
-msgstr ""
+msgstr "用户的销售订单"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_open_statement
msgid "Open Cash Register"
-msgstr ""
+msgstr "开启收银机"
#. module: point_of_sale
#: report:account.statement:0
#: model:ir.actions.report.xml,name:point_of_sale.account_statement
msgid "Statement"
-msgstr ""
+msgstr "银行单据"
#. module: point_of_sale
#: field:pos.order,name:0
@@ -1591,7 +1664,7 @@ msgstr "订单描述"
#. module: point_of_sale
#: field:pos.make.payment,num_sale:0
msgid "Num.File"
-msgstr ""
+msgstr "Num.File"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_payment_report
@@ -1599,54 +1672,70 @@ msgstr ""
#: model:ir.model,name:point_of_sale.model_pos_payment_report
#: view:pos.payment.report:0
msgid "Payment Report"
-msgstr ""
+msgstr "付款分析报表"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_view_pos_return
msgid "Return lines"
-msgstr ""
+msgstr "退货明细"
#. module: point_of_sale
-#: rml:pos.lines:0
+#: report:account.statement:0
+#: report:all.closed.cashbox.of.the.day:0
+#: report:pos.details:0
+#: report:pos.details_summary:0
+#: report:pos.lines:0
+#: field:pos.order,company_id:0
+#: field:pos.order.line,company_id:0
+#: report:pos.payment.report:0
+#: report:pos.payment.report.date:0
+#: report:pos.payment.report.user:0
+#: report:pos.sales.user:0
+#: report:pos.sales.user.today:0
+#: report:pos.sales.user.today.current.user:0
+#: report:pos.user.product:0
+#: field:report.pos.order,company_id:0
msgid "Company"
msgstr "公司"
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
msgid "Invoice Date"
msgstr "发票日期"
#. module: point_of_sale
-#: code:addons/point_of_sale/point_of_sale.py:1057
-#: code:addons/point_of_sale/point_of_sale.py:1076
+#: code:addons/point_of_sale/point_of_sale.py:1058
+#: code:addons/point_of_sale/point_of_sale.py:1077
#, python-format
msgid ""
"Couldn't find a pricelist line matching this product and quantity.\n"
"You have to change either the product, the quantity or the pricelist."
msgstr ""
+"找不到此产品和数量的价格表。\n"
+"你必须修改产品,或价格表的数量。"
#. module: point_of_sale
#: field:pos.order.line,serial_number:0
msgid "Serial Number"
-msgstr ""
+msgstr "序列号"
#. module: point_of_sale
#: view:pos.order:0
msgid "Reprint"
-msgstr ""
+msgstr "重新打印"
#. module: point_of_sale
-#: code:addons/point_of_sale/point_of_sale.py:555
+#: code:addons/point_of_sale/point_of_sale.py:558
#: code:addons/point_of_sale/wizard/pos_box_entries.py:103
#: code:addons/point_of_sale/wizard/pos_box_out.py:101
#, python-format
msgid "You have to open at least one cashbox"
-msgstr ""
+msgstr "你必须开启至少一个钱箱"
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_payment_report_user
msgid "Today's Payment By User"
-msgstr ""
+msgstr "今日用户的付款分析"
#. module: point_of_sale
#: field:stock.picking,pos_order:0
@@ -1658,74 +1747,73 @@ msgstr "POS单"
#: code:addons/point_of_sale/wizard/pos_payment.py:91
#, python-format
msgid "Error!"
-msgstr ""
+msgstr "出错!"
#. module: point_of_sale
-#: rml:pos.lines:0
+#: report:pos.lines:0
msgid "No. Of Articles"
msgstr "条款号"
#. module: point_of_sale
#: field:pos.order,date_validity:0
-#: wizard_field:pos.refund_order,init,date_validity:0
msgid "Validity Date"
msgstr "有效期"
#. module: point_of_sale
-#: view:pos.order:0
#: field:pos.order,pickings:0
msgid "Picking"
msgstr "领料/提货"
#. module: point_of_sale
#: field:pos.order,shop_id:0
+#: field:report.pos.order,shop_id:0
msgid "Shop"
msgstr "商店"
#. module: point_of_sale
-#: field:pos.order,last_out_picking:0
+#: field:pos.order,picking_id:0
msgid "Last Output Picking"
msgstr "最近输出的领料/提货"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_account_bank_statement_line
msgid "Bank Statement Line"
-msgstr ""
+msgstr "银行对账单明细"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_account_bank_statement
msgid "Bank Statement"
-msgstr ""
+msgstr "银行对账单"
#. module: point_of_sale
#: report:pos.user.product:0
msgid "Ending Date"
-msgstr ""
+msgstr "结束日期"
#. module: point_of_sale
#: view:report.sales.by.user.pos:0
#: view:report.sales.by.user.pos.month:0
#: view:report.transaction.pos:0
msgid "POS Report"
-msgstr ""
+msgstr "POS分析报表"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_discount
msgid "Add Discount"
-msgstr ""
+msgstr "增加折扣"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_close_statement
msgid "Close Cash Register"
-msgstr ""
+msgstr "关闭收银机"
#. module: point_of_sale
#: field:pos.order.line,qty_rfd:0
msgid "Refunded Quantity"
-msgstr ""
+msgstr "退货数量"
#. module: point_of_sale
-#: wizard_view:pos.scan_product,init:0
+#: view:pos.scan.product:0
msgid "Scan Barcode"
msgstr "扫描条码"
@@ -1733,62 +1821,63 @@ msgstr "扫描条码"
#: field:pos.box.entries,product_id:0
#: field:pos.box.out,product_id:0
msgid "Operation"
-msgstr ""
+msgstr "操作"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_point_ofsale
msgid "Sales Order"
-msgstr ""
+msgstr "销售订单"
#. module: point_of_sale
#: field:pos.order,journal_entry:0
msgid "Journal Entry"
-msgstr ""
+msgstr "日记账簿"
#. module: point_of_sale
#: selection:report.cash.register,state:0
msgid "Confirmed"
-msgstr ""
+msgstr "已确认"
#. module: point_of_sale
#: report:pos.invoice:0
msgid "Cancelled Invoice"
-msgstr ""
+msgstr "已取消的发票"
#. module: point_of_sale
-#: model:ir.actions.wizard,name:point_of_sale.pos_confirm
-#: wizard_button:pos.sale.get,init,set:0
+#: view:account.bank.statement:0
+#: view:pos.get.sale:0
+#: view:report.cash.register:0
msgid "Confirm"
msgstr "确定"
#. module: point_of_sale
#: report:pos.payment.report.date:0
msgid "Sales Lines"
-msgstr ""
+msgstr "销售明细"
#. module: point_of_sale
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
-msgstr ""
+msgstr "错误!您不能创建递归公司."
#. module: point_of_sale
#: field:pos.discount,discount:0
msgid "Discount "
-msgstr ""
+msgstr "折扣 "
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
msgid "Supplier Invoice"
msgstr "供应商发票"
#. module: point_of_sale
-#: code:addons/point_of_sale/pos.py:0
+#: code:addons/point_of_sale/point_of_sale.py:1210
#, python-format
msgid "Modify line failed !"
-msgstr ""
+msgstr "明细修改失败!"
#. module: point_of_sale
-#: wizard_field:pos.payment,ask_pay,payment_name:0
+#: field:pos.make.payment,payment_name:0
msgid "Payment name"
msgstr "付款名称"
@@ -1805,7 +1894,7 @@ msgstr ""
#. module: point_of_sale
#: model:ir.actions.report.xml,name:point_of_sale.pos_sales_user_today_current_user
msgid "Today's Sales by Current User"
-msgstr ""
+msgstr "当前用户今日销售订单"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_box_out
@@ -1815,58 +1904,58 @@ msgstr ""
#. module: point_of_sale
#: sql_constraint:account.journal:0
msgid "The code of the journal must be unique per company !"
-msgstr ""
+msgstr "每个公司的日记账代码必须唯一!"
#. module: point_of_sale
-#: model:ir.ui.menu,name:point_of_sale.menu_point_config
+#: model:ir.ui.menu,name:point_of_sale.menu_point_config_product
msgid "Configuration"
msgstr "设置"
#. module: point_of_sale
#: report:pos.user.product:0
msgid "Starting Date"
-msgstr ""
+msgstr "开始日期"
#. module: point_of_sale
#: field:pos.order,date_validation:0
#: field:report.pos.order,date_validation:0
msgid "Validation Date"
-msgstr ""
+msgstr "审核日期"
#. module: point_of_sale
-#: code:addons/point_of_sale/point_of_sale.py:504
-#: code:addons/point_of_sale/point_of_sale.py:506
+#: code:addons/point_of_sale/point_of_sale.py:507
+#: code:addons/point_of_sale/point_of_sale.py:509
#, python-format
msgid "You don't have enough access to validate this sale!"
-msgstr ""
+msgstr "你没有权限审核此销售订单!"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_invoice
msgid "Invoices"
-msgstr ""
+msgstr "发票"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "December"
-msgstr ""
+msgstr "12月"
#. module: point_of_sale
#: view:report.pos.order:0
#: field:report.pos.order,total_discount:0
msgid "Total Discount"
-msgstr ""
+msgstr "总折扣"
#. module: point_of_sale
#: view:pos.box.out:0
msgid "Take Money"
-msgstr ""
+msgstr "取钱"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_details
#: model:ir.model,name:point_of_sale.model_pos_sales_user_today_current_user
msgid "Sales Details"
-msgstr ""
+msgstr "销售明细"
#. module: point_of_sale
#: field:product.product,am_out:0
@@ -1878,26 +1967,35 @@ msgstr ""
#: code:addons/point_of_sale/wizard/pos_open_statement.py:54
#, python-format
msgid "Message"
-msgstr ""
+msgstr "消息"
#. module: point_of_sale
+#: view:account.journal:0
#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_tree2
#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_tree3
#: model:ir.actions.act_window,name:point_of_sale.action_pos_pos_form
+#: model:ir.actions.act_window,name:point_of_sale.action_pos_pos_form_user
#: model:ir.model,name:point_of_sale.model_pos_order
-#: model:ir.ui.menu,name:point_of_sale.menu_point_ofsale
#: model:ir.ui.menu,name:point_of_sale.menu_point_root
msgid "Point of Sale"
msgstr "POS"
#. module: point_of_sale
-#: field:pos.order,user_id:0
+#: view:pos.order:0
+#: field:pos.payment.report.date,user_id:0
+#: field:pos.payment.report.user,user_id:0
+#: field:pos.sale.user,user_id:0
+#: field:pos.sales.user.today,user_id:0
+#: view:report.pos.order:0
+#: field:report.pos.order,user_id:0
msgid "Salesman"
msgstr "销售员"
#. module: point_of_sale
-#: rml:pos.details:0
+#: report:pos.details:0
#: selection:pos.order,state:0
+#: view:report.pos.order:0
+#: selection:report.pos.order,state:0
msgid "Invoiced"
msgstr "已开票"
@@ -1906,20 +2004,21 @@ msgstr "已开票"
#: view:pos.confirm:0
#: view:pos.open.statement:0
msgid "No"
-msgstr ""
+msgstr "否"
#. module: point_of_sale
#: field:pos.order.line,notice:0
msgid "Discount Notice"
-msgstr ""
+msgstr "折扣通告"
#. module: point_of_sale
-#: wizard_button:pos.scan_product,init,add:0
+#: view:pos.scan.product:0
msgid "Add"
msgstr "增加"
#. module: point_of_sale
-#: selection:pos.order,state:0
+#: view:report.cash.register:0
+#: selection:report.pos.order,state:0
msgid "Draft"
msgstr "草稿"
@@ -1931,45 +2030,57 @@ msgstr "POS单明细"
#. module: point_of_sale
#: view:pos.open.statement:0
msgid "Are you sure you want to open the statements ?"
-msgstr ""
+msgstr "你确定要开启收银机吗?"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_payment_report_date
msgid "POS Payment Report according to date"
-msgstr ""
+msgstr "按日期的POS付款分析报表"
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
msgid "PRO-FORMA"
msgstr "形式发票"
#. module: point_of_sale
-#: code:addons/point_of_sale/pos.py:0
+#: code:addons/point_of_sale/point_of_sale.py:638
#, python-format
msgid "Please provide a partner for the sale."
-msgstr ""
+msgstr "请提供业务伙伴。"
#. module: point_of_sale
-#: code:addons/point_of_sale/point_of_sale.py:852
+#: code:addons/point_of_sale/point_of_sale.py:853
#, python-format
msgid ""
"There is no receivable account defined for this journal: \"%s\" (id:%d)"
-msgstr ""
+msgstr "没有为此日记账:\"%s\" (id:%d)定义应收账款科目"
#. module: point_of_sale
#: field:pos.order,user_salesman_id:0
msgid "Cashier"
-msgstr ""
+msgstr "收银员"
#. module: point_of_sale
+#: report:account.statement:0
+#: report:all.closed.cashbox.of.the.day:0
+#: view:pos.payment.report.date:0
+#: report:pos.sales.user:0
+#: report:pos.sales.user.today:0
+#: report:pos.sales.user.today.current.user:0
+#: report:pos.user.product:0
+#: view:report.cash.register:0
+#: field:report.cash.register,user_id:0
+#: field:report.sales.by.margin.pos,user_id:0
+#: field:report.sales.by.margin.pos.month,user_id:0
+#: field:report.sales.by.user.pos,user_id:0
+#: field:report.sales.by.user.pos.month,user_id:0
#: field:report.transaction.pos,user_id:0
msgid "User"
msgstr "用户"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree
-#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree_month
-#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree_today
+#: model:ir.model,name:point_of_sale.model_report_sales_by_user_pos
msgid "Sales by user"
msgstr "销售用户"
@@ -1977,26 +2088,32 @@ msgstr "销售用户"
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "November"
-msgstr ""
+msgstr "11月"
#. module: point_of_sale
#: view:pos.receipt:0
msgid "Print Receipt"
-msgstr ""
+msgstr "打印收银条"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "January"
-msgstr ""
+msgstr "1月"
#. module: point_of_sale
#: view:pos.order.line:0
msgid "POS Orders lines"
-msgstr ""
+msgstr "POS订单明细"
#. module: point_of_sale
-#: code:addons/point_of_sale/pos.py:0
+#: code:addons/point_of_sale/point_of_sale.py:340
+#: code:addons/point_of_sale/point_of_sale.py:507
+#: code:addons/point_of_sale/point_of_sale.py:509
+#: code:addons/point_of_sale/point_of_sale.py:547
+#: code:addons/point_of_sale/point_of_sale.py:638
+#: code:addons/point_of_sale/point_of_sale.py:1202
+#: code:addons/point_of_sale/point_of_sale.py:1210
#, python-format
msgid "Error"
msgstr "错误"
@@ -2004,40 +2121,49 @@ msgstr "错误"
#. module: point_of_sale
#: field:report.transaction.pos,journal_id:0
msgid "Sales Journal"
-msgstr ""
+msgstr "销售日记账"
#. module: point_of_sale
-#: rml:pos.invoice:0
+#: report:pos.invoice:0
msgid "Refund"
msgstr "退货"
#. module: point_of_sale
-#: code:addons/point_of_sale/report/pos_invoice.py:0
+#: code:addons/point_of_sale/report/pos_invoice.py:46
#, python-format
msgid "Please create an invoice for this sale."
-msgstr ""
+msgstr "请为此销售单生成发票。"
#. module: point_of_sale
#: report:pos.sales.user:0
#: report:pos.sales.user.today:0
#: field:report.pos.order,date:0
msgid "Date Order"
-msgstr ""
+msgstr "订购日期"
#. module: point_of_sale
#: model:ir.ui.menu,name:point_of_sale.menu_close_statement
msgid "Close Cash Registers"
-msgstr ""
+msgstr "关闭收银机"
#. module: point_of_sale
#: report:pos.details:0
#: report:pos.payment.report.date:0
#: report:pos.payment.report.user:0
msgid "Disc(%)"
-msgstr ""
+msgstr "折扣(%)"
#. module: point_of_sale
-#: view:pos.order:0
+#: view:all.closed.cashbox.of.the.day:0
+#: view:pos.details:0
+#: view:pos.discount:0
+#: view:pos.payment.report:0
+#: view:pos.payment.report.date:0
+#: view:pos.payment.report.user:0
+#: view:pos.sale.user:0
+#: view:pos.sales.user.today:0
+#: view:pos.sales.user.today.current_user:0
+#: view:pos.scan.product:0
msgid "Close"
msgstr "关闭"
@@ -2049,32 +2175,32 @@ msgstr "单据明细"
#. module: point_of_sale
#: field:pos.order.line,price_subtotal:0
msgid "Subtotal w/o Tax"
-msgstr ""
+msgstr "税额小计w/o"
#. module: point_of_sale
#: view:pos.order:0
msgid "Add product"
-msgstr ""
+msgstr "添加产品"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_payment
msgid "Pyament Report"
-msgstr ""
+msgstr "付款分析报表"
#. module: point_of_sale
#: field:report.transaction.pos,jl_id:0
msgid "Cash Journals"
-msgstr ""
+msgstr "现金日记账"
#. module: point_of_sale
#: view:pos.details:0
msgid "POS Details :"
-msgstr ""
+msgstr "POS详情:"
#. module: point_of_sale
#: report:pos.sales.user.today:0
msgid "Today's Sales By User"
-msgstr ""
+msgstr "今日用户销售情况"
#. module: point_of_sale
#: view:pos.box.entries:0
@@ -2086,14 +2212,14 @@ msgstr ""
#: code:addons/point_of_sale/wizard/pos_box_out.py:99
#, python-format
msgid "please check that account is set to %s"
-msgstr ""
+msgstr "请检查科目是否设置为%s"
#. module: point_of_sale
+#: field:pos.box.entries,name:0
+#: field:pos.box.out,name:0
#: field:pos.config.journal,name:0
-#: rml:pos.invoice:0
-#: rml:pos.lines:0
-#: field:pos.payment,name:0
-#: rml:pos.receipt:0
+#: report:pos.invoice:0
+#: report:pos.lines:0
msgid "Description"
msgstr "说明"
@@ -2101,39 +2227,39 @@ msgstr "说明"
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "May"
-msgstr ""
+msgstr "5月"
#. module: point_of_sale
#: report:pos.lines:0
msgid "Sales lines"
-msgstr ""
+msgstr "销售明细"
#. module: point_of_sale
#: field:pos.order,note:0
msgid "Internal Notes"
-msgstr ""
+msgstr "内部备注"
#. module: point_of_sale
#: view:pos.add.product:0
msgid "Save & Close"
-msgstr ""
+msgstr "保存并关闭"
#. module: point_of_sale
#: view:pos.order:0
msgid "Running"
-msgstr ""
+msgstr "正在运行"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_all_closed_cashbox_of_the_day
msgid "All Cashboxes Of the day"
-msgstr ""
+msgstr "当日所有钱箱"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_order_all
#: model:ir.ui.menu,name:point_of_sale.menu_report_pos_order_all
#: view:report.pos.order:0
msgid "Point of Sale Analysis"
-msgstr ""
+msgstr "POS分析"
#. module: point_of_sale
#: field:pos.make.payment,partner_id:0
@@ -2141,7 +2267,7 @@ msgstr ""
#: field:pos.order,partner_id:0
#: view:report.pos.order:0
msgid "Customer"
-msgstr ""
+msgstr "客户"
#. module: point_of_sale
#: field:pos.make.payment,is_acc:0
@@ -2149,18 +2275,18 @@ msgstr ""
#: selection:pos.order,state:0
#: selection:report.pos.order,state:0
msgid "Advance"
-msgstr ""
+msgstr "预支"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "February"
-msgstr ""
+msgstr "2月"
#. module: point_of_sale
#: view:report.cash.register:0
msgid " Today "
-msgstr ""
+msgstr " 今日 "
#. module: point_of_sale
#: code:addons/point_of_sale/wizard/pos_box_out.py:95
@@ -2169,42 +2295,53 @@ msgid ""
"The maximum value you can still withdraw is exceeded. \n"
" Remaining value is equal to %d "
msgstr ""
+"超出你能提取的最大金额。\n"
+"当前余额是%d。 "
#. module: point_of_sale
#: field:pos.order,remboursed:0
msgid "Remboursed"
-msgstr ""
+msgstr "已报销"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_tree_open
msgid "Opened Sales"
-msgstr ""
+msgstr "未结销售订单"
#. module: point_of_sale
#: selection:report.cash.register,month:0
#: selection:report.pos.order,month:0
msgid "April"
-msgstr ""
+msgstr "4月"
#. module: point_of_sale
-#: view:pos.order:0
+#: field:pos.order,statement_ids:0
msgid "Payments"
msgstr "付款"
#. module: point_of_sale
-#: rml:pos.lines:0
+#: report:pos.details:0
+#: report:pos.details_summary:0
+#: report:pos.lines:0
+#: report:pos.payment.report:0
+#: report:pos.payment.report.date:0
+#: report:pos.payment.report.user:0
+#: report:pos.sales.user:0
+#: report:pos.sales.user.today:0
+#: report:pos.sales.user.today.current.user:0
+#: report:pos.user.product:0
msgid "Print Date"
msgstr "打印日期"
#. module: point_of_sale
#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_margin_pos_month
msgid "Sales by User Monthly margin"
-msgstr ""
+msgstr "按用户月利润查看销售情况"
#. module: point_of_sale
#: view:pos.order:0
msgid "Search Sales Order"
-msgstr ""
+msgstr "查询销售订单"
#. module: point_of_sale
#: field:pos.order,account_move:0
@@ -2218,13 +2355,13 @@ msgstr "凭证"
#: view:pos.order:0
#, python-format
msgid "Make Payment"
-msgstr ""
+msgstr "付款"
#. module: point_of_sale
#: model:ir.model,name:point_of_sale.model_pos_sales_user_today
#: view:pos.sales.user.today:0
msgid "Sales User Today"
-msgstr ""
+msgstr "今日用户销售情况"
#. module: point_of_sale
#: view:report.cash.register:0
@@ -2232,7 +2369,7 @@ msgstr ""
#: view:report.pos.order:0
#: field:report.pos.order,year:0
msgid "Year"
-msgstr ""
+msgstr "年"
#~ msgid "Detail of Sales"
#~ msgstr "销售详情"
diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py
index 4eeb7b2dd9f..90bfa975a76 100644
--- a/addons/point_of_sale/point_of_sale.py
+++ b/addons/point_of_sale/point_of_sale.py
@@ -250,20 +250,19 @@ class pos_order(osv.osv):
states={'draft': [('readonly', False)]}, readonly=True),
'date_order': fields.datetime('Date Ordered', readonly=True, select=True),
'date_validation': fields.function(_get_date_payment,
- method=True,
string='Validation Date',
type='date', select=True, store=True),
- 'date_payment': fields.function(_get_date_payment2, method=True,
+ 'date_payment': fields.function(_get_date_payment2,
string='Payment Date',
type='date', select=True, store=True),
'date_validity': fields.date('Validity Date', required=True),
'user_id': fields.many2one('res.users', 'Connected Salesman', help="Person who uses the the cash register. It could be a reliever, a student or an interim employee."),
'user_salesman_id': fields.many2one('res.users', 'Cashier', required=True, help="User who is logged into the system."),
'sale_manager': fields.many2one('res.users', 'Salesman Manager'),
- 'amount_tax': fields.function(_amount_all, method=True, string='Taxes', digits_compute=dp.get_precision('Point Of Sale'), multi='all'),
- 'amount_total': fields.function(_amount_all, method=True, string='Total', multi='all'),
- 'amount_paid': fields.function(_amount_all, string='Paid', states={'draft': [('readonly', False)]}, readonly=True, method=True, digits_compute=dp.get_precision('Point Of Sale'), multi='all'),
- 'amount_return': fields.function(_amount_all, 'Returned', method=True, digits_compute=dp.get_precision('Point Of Sale'), multi='all'),
+ 'amount_tax': fields.function(_amount_all, string='Taxes', digits_compute=dp.get_precision('Point Of Sale'), multi='all'),
+ 'amount_total': fields.function(_amount_all, string='Total', multi='all'),
+ 'amount_paid': fields.function(_amount_all, string='Paid', states={'draft': [('readonly', False)]}, readonly=True, digits_compute=dp.get_precision('Point Of Sale'), multi='all'),
+ 'amount_return': fields.function(_amount_all, 'Returned', digits_compute=dp.get_precision('Point Of Sale'), multi='all'),
'lines': fields.one2many('pos.order.line', 'order_id', 'Order Lines', states={'draft': [('readonly', False)]}, readonly=True),
'price_type': fields.selection([
('tax_excluded','Tax excluded')],
@@ -955,7 +954,7 @@ class account_bank_statement_line(osv.osv):
res[line.id] = line.statement_id and line.statement_id.journal_id and line.statement_id.journal_id.name or None
return res
_columns= {
- 'journal_id': fields.function(_get_statement_journal, method=True,store=True, string='Journal', type='char', size=64),
+ 'journal_id': fields.function(_get_statement_journal,store=True, string='Journal', type='char', size=64),
'am_out': fields.boolean("To count"),
'is_acc': fields.boolean("Is accompte"),
'pos_statement_id': fields.many2one('pos.order', ondelete='cascade'),
@@ -1141,12 +1140,12 @@ class pos_order_line(osv.osv):
'notice': fields.char('Discount Notice', size=128, required=True),
'serial_number': fields.char('Serial Number', size=128),
'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok', '=', True)], required=True, change_default=True),
- 'price_unit': fields.function(_get_amount, method=True, string='Unit Price', store=True),
+ 'price_unit': fields.function(_get_amount, string='Unit Price', store=True),
'price_ded': fields.float('Discount(Amount)', digits_compute=dp.get_precision('Point Of Sale')),
'qty': fields.float('Quantity'),
'qty_rfd': fields.float('Refunded Quantity'),
- 'price_subtotal': fields.function(_amount_line_all, method=True, multi='pos_order_line_amount', string='Subtotal w/o Tax'),
- 'price_subtotal_incl': fields.function(_amount_line_all, method=True, multi='pos_order_line_amount', string='Subtotal'),
+ 'price_subtotal': fields.function(_amount_line_all, multi='pos_order_line_amount', string='Subtotal w/o Tax'),
+ 'price_subtotal_incl': fields.function(_amount_line_all, multi='pos_order_line_amount', string='Subtotal'),
'discount': fields.float('Discount (%)', digits=(16, 2)),
'order_id': fields.many2one('pos.order', 'Order Ref', ondelete='cascade'),
'create_date': fields.datetime('Creation Date', readonly=True),
diff --git a/addons/portal/__init__.py b/addons/portal/__init__.py
new file mode 100644
index 00000000000..47a320e7234
--- /dev/null
+++ b/addons/portal/__init__.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2011 OpenERP S.A ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import portal
+import wizard
+import ir_ui_menu
\ No newline at end of file
diff --git a/addons/portal/__openerp__.py b/addons/portal/__openerp__.py
new file mode 100644
index 00000000000..365ce3f66d5
--- /dev/null
+++ b/addons/portal/__openerp__.py
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2011 OpenERP S.A ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+
+{
+ "name" : "Portal",
+ "version" : "0.3",
+ "depends" : ["base", "share"],
+ "author" : "OpenERP SA",
+ "category": 'Tools',
+ "description": """
+This module defines 'portals' to customize the access to your OpenERP database
+for external users.
+
+A portal defines customized user menu and access rights for a group of users
+(the ones associated to that portal). It also associates user groups to the
+portal users (adding a group in the portal automatically adds it to the portal
+users, etc). That feature is very handy when used in combination with the
+module 'share'.
+ """,
+ 'website': 'http://www.openerp.com',
+ 'data': ['security/portal_security.xml',
+ 'security/ir.model.access.csv',
+ 'portal_view.xml',
+ 'wizard_view.xml',
+ 'wizard/share_wizard_view.xml',
+ ],
+ 'installable': True,
+ 'certificate' : '',
+}
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/portal/ir_ui_menu.py b/addons/portal/ir_ui_menu.py
new file mode 100644
index 00000000000..7326a12122b
--- /dev/null
+++ b/addons/portal/ir_ui_menu.py
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2011 OpenERP S.A ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import osv, fields
+
+class portal_menu(osv.osv):
+ """Inherited menu class to customized the login search for menus,
+ as web client 6.0 does not support the menu action properly yet"""
+
+ _inherit = 'ir.ui.menu'
+
+ def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
+ if context is None:
+ context = {}
+ # if the current user belongs to a portal, we have to
+ # rewrite any search on the top menus to be under the
+ # portal's root menu:
+ if not context.get('ir.ui.menu.full_list') and uid != 1 and \
+ args and len(args) == 1 and \
+ len(args[0]) == 3 and \
+ (args[0][0] == 'parent_id' \
+ and args[0][1] == '=' \
+ and args[0][2] == False):
+ Portals = self.pool.get('res.portal')
+ portal_id = Portals.search(cr, uid, [('group_id.users', 'in', uid)])
+ if portal_id:
+ assert len(portal_id) == 1, "Users may only belong to one portal at a time!"
+ portal_data = Portals.read(cr, uid, portal_id[0], ['parent_menu_id'])
+ menu_id_pair = portal_data.get('parent_menu_id') # (ID, Name)
+ if menu_id_pair:
+ args = [('parent_id', '=', menu_id_pair[0])]
+ ids = super(portal_menu, self).search(cr, uid, args, offset=0,
+ limit=None, order=order, context=context, count=False)
+ return len(ids) if count else ids
+portal_menu()
\ No newline at end of file
diff --git a/addons/portal/portal.py b/addons/portal/portal.py
new file mode 100644
index 00000000000..5f0dce3eaf6
--- /dev/null
+++ b/addons/portal/portal.py
@@ -0,0 +1,246 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2011 OpenERP S.A ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import osv, fields
+from tools.translate import _
+
+class portal(osv.osv):
+ _name = 'res.portal'
+ _description = 'Portal'
+ _rec_name = 'group_id'
+ _columns = {
+ 'group_id': fields.many2one('res.groups', required=True,
+ string='Portal Group',
+ help=_('This group defines the users associated to this portal')),
+ 'user_ids': fields.related('group_id', 'users',
+ type='many2many', relation='res.users', store=False,
+ string='Portal Users'),
+ 'menu_action_id': fields.many2one('ir.actions.actions', readonly=True,
+ string='Menu Action',
+ help=_("What replaces the standard menu for the portal's users")),
+ 'parent_menu_id': fields.many2one('ir.ui.menu',
+ string='Parent Menu',
+ help=_('The menu action opens the submenus of this menu item')),
+ 'widget_ids': fields.one2many('res.portal.widget', 'portal_id',
+ string='Widgets',
+ help=_('Widgets assigned to portal users')),
+ }
+ _sql_constraints = [
+ ('unique_group', 'UNIQUE(group_id)', _('Portals must have distinct groups.'))
+ ]
+
+ def copy(self, cr, uid, id, default={}, context=None):
+ """ override copy(): group_id and menu_action_id must be different """
+ # copy the former group_id
+ groups_obj = self.pool.get('res.groups')
+ group_id = self.browse(cr, uid, id, context).group_id.id
+ default['group_id'] = groups_obj.copy(cr, uid, group_id, {}, context)
+ default['menu_action_id'] = None
+ return super(portal, self).copy(cr, uid, id, default, context)
+
+ def create(self, cr, uid, values, context=None):
+ """ extend create() to assign the portal group and menu to users """
+ # first create the 'menu_action_id'
+ assert not values.get('menu_action_id')
+ values['menu_action_id'] = self._create_menu_action(cr, uid, values, context)
+
+ if 'user_ids' in values:
+ # set menu action of users
+ user_values = {'menu_id': values['menu_action_id']}
+ # values['user_ids'] should match [(6, 0, IDs)]
+ for id in get_many2many(values['user_ids']):
+ values['user_ids'].append((1, id, user_values))
+
+ # create portal
+ portal_id = super(portal, self).create(cr, uid, values, context)
+
+ # assign widgets to users
+ if 'user_ids' in values:
+ self._assign_widgets_to_users(cr, uid, [portal_id], context)
+
+ return portal_id
+
+ def name_get(self, cr, uid, ids, context=None):
+ portals = self.browse(cr, uid, ids, context)
+ return [(p.id, p.group_id.name) for p in portals]
+
+ def name_search(self, cr, uid, name='', args=None, operator='ilike', context=None, limit=100):
+ # first search for group names that match
+ groups_obj = self.pool.get('res.groups')
+ group_names = groups_obj.name_search(cr, uid, name, args, operator, context, limit)
+ # then search for portals that match the groups found so far
+ domain = [('group_id', 'in', [gn[0] for gn in group_names])]
+ ids = self.search(cr, uid, domain, context=context)
+ return self.name_get(cr, uid, ids, context)
+
+ def write(self, cr, uid, ids, values, context=None):
+ """ extend write() to reflect menu and groups changes on users """
+ # first apply portal changes
+ super(portal, self).write(cr, uid, ids, values, context)
+ portals = self.browse(cr, uid, ids, context)
+
+ # if 'menu_action_id' has changed, set menu_id on users
+ if 'menu_action_id' in values:
+ user_values = {'menu_id': values['menu_action_id']}
+ user_ids = [u.id for p in portals for u in p.user_ids if u.id != 1]
+ self.pool.get('res.users').write(cr, uid, user_ids, user_values, context)
+
+ # if parent_menu_id has changed, apply the change on menu_action_id
+ if 'parent_menu_id' in values:
+ act_window_obj = self.pool.get('ir.actions.act_window')
+ action_ids = [p.menu_action_id.id for p in portals]
+ action_values = {'domain': [('parent_id', '=', values['parent_menu_id'])]}
+ act_window_obj.write(cr, uid, action_ids, action_values, context)
+
+ # assign portal widgets to users, if widgets or users changed
+ if ('user_ids' in values) or ('widget_ids' in values):
+ self._assign_widgets_to_users(cr, uid, ids, context)
+
+ return True
+
+ def _create_menu_action(self, cr, uid, values, context=None):
+ # create a menu action that opens the menu items below parent_menu_id
+ groups_obj = self.pool.get('res.groups')
+ group_name = groups_obj.browse(cr, uid, values['group_id'], context).name
+ actions_obj = self.pool.get('ir.actions.act_window')
+ action_values = {
+ 'name': group_name + ' Menu',
+ 'type': 'ir.actions.act_window',
+ 'usage': 'menu',
+ 'res_model': 'ir.ui.menu',
+ 'view_type': 'tree',
+ 'view_id': self._res_xml_id(cr, uid, 'base', 'view_menu'),
+ 'domain': [('parent_id', '=', values.get('parent_menu_id', False))],
+ }
+ return actions_obj.create(cr, uid, action_values, context)
+
+ def do_create_menu(self, cr, uid, ids, context=None):
+ """ create a parent menu for the given portals """
+ menu_obj = self.pool.get('ir.ui.menu')
+ menu_root = self._res_xml_id(cr, uid, 'portal', 'portal_menu')
+
+ for p in self.browse(cr, uid, ids, context):
+ # create a menuitem under 'portal.portal_menu'
+ menu_values = {
+ 'name': p.group_id.name + ' Menu',
+ 'parent_id': menu_root,
+ 'groups_id': [(6, 0, [p.group_id.id])],
+ }
+ menu_id = menu_obj.create(cr, uid, menu_values, context)
+ # set the parent_menu_id to item_id
+ self.write(cr, uid, [p.id], {'parent_menu_id': menu_id}, context)
+
+ return True
+
+ def _assign_widgets_to_users(self, cr, uid, ids, context=None):
+ """ assign portal widgets to users for the given portal ids """
+ widget_user_obj = self.pool.get('res.widget.user')
+ portals = self.browse(cr, uid, ids, context)
+ for p in portals:
+ for w in p.widget_ids:
+ values = {'sequence': w.sequence, 'widget_id': w.widget_id.id}
+ for u in p.user_ids:
+ if u.id == 1: continue
+ values['user_id'] = u.id
+ widget_user_obj.create(cr, uid, values, context)
+
+ def onchange_group(self, cr, uid, ids, group_id, context=None):
+ """ update the users list when the group changes """
+ user_ids = False
+ if group_id:
+ group = self.pool.get('res.groups').browse(cr, uid, group_id, context)
+ user_ids = [u.id for u in group.users]
+ return {
+ 'value': {'user_ids': user_ids}
+ }
+
+ def _res_xml_id(self, cr, uid, module, xml_id):
+ """ return the resource id associated to the given xml_id """
+ data_obj = self.pool.get('ir.model.data')
+ data_id = data_obj._get_id(cr, uid, module, xml_id)
+ return data_obj.browse(cr, uid, data_id).res_id
+
+portal()
+
+
+
+class users(osv.osv):
+ _name = 'res.users'
+ _inherit = 'res.users'
+
+ def default_get(self, cr, uid, fields, context=None):
+ """ override default value of menu_id for portal users """
+ defs = super(users, self).default_get(cr, uid, fields, context)
+
+ # the value of 'menu_id' is passed in context by the portal form view
+ if ('menu_id' in context) and ('menu_id' in fields):
+ defs['menu_id'] = context['menu_id']
+
+ return defs
+
+users()
+
+
+
+class portal_widget(osv.osv):
+ """
+ Similar to res.widget.user (res_widget.py), but with a portal instead.
+ New users in a portal are assigned the portal's widgets.
+ """
+ _name='res.portal.widget'
+ _description = 'Portal Widgets'
+ _order = 'sequence'
+ _columns = {
+ 'sequence': fields.integer('Sequence'),
+ 'portal_id': fields.many2one('res.portal', select=1,
+ string='Portal'),
+ 'widget_id': fields.many2one('res.widget', required=True, ondelete='cascade',
+ string='Widget'),
+ }
+
+ def create(self, cr, uid, values, context=None):
+ domain = [('portal_id', '=', values.get('portal_id')),
+ ('widget_id', '=', values.get('widget_id'))]
+ existing = self.search(cr, uid, domain, context=context)
+ if existing:
+ res = existing[0]
+ else:
+ res = super(portal_widget, self).create(cr, uid, values, context=context)
+ return res
+
+portal_widget()
+
+
+
+# utils
+def get_browse_id(obj):
+ """ return the id of a browse() object, or None """
+ return (obj and obj.id or None)
+
+def get_browse_ids(objs):
+ """ return the ids of a list of browse() objects """
+ return map(get_browse_id, objs)
+
+def get_many2many(arg):
+ """ get the list of ids from a many2many 'values' field """
+ assert len(arg) == 1 and arg[0][0] == 6 # arg = [(6, _, IDs)]
+ return arg[0][2]
+
diff --git a/addons/portal/portal_view.xml b/addons/portal/portal_view.xml
new file mode 100644
index 00000000000..b218f84f745
--- /dev/null
+++ b/addons/portal/portal_view.xml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+ Portals
+ res.portal
+ form
+ tree,form
+
+A portal helps defining specific views and rules for a group of users (the
+portal group). A portal is associated with a menu; when changed, the portal menu
+is assigned to the portal's users. Groups can be added to or removed from the
+portal's users.
+
+
+
+
+
+
+
+ Portal List
+ res.portal
+ tree
+
+
+
+
+
+
+
+
+
+
+ Portal Search
+ res.portal
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+ Portal Form
+ res.portal
+ form
+
+
+
+
+
+
diff --git a/addons/portal/security/ir.model.access.csv b/addons/portal/security/ir.model.access.csv
new file mode 100644
index 00000000000..627df380b8e
--- /dev/null
+++ b/addons/portal/security/ir.model.access.csv
@@ -0,0 +1,5 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_portal_manager","access.portal.manager","model_res_portal","group_portal_manager",1,1,1,1
+"access_portal_all","access.portal.all","model_res_portal",,1,0,0,0
+"access_portal_widget_all","access.portal.widget.all","model_res_portal_widget",,1,0,0,0
+"access_portal_widget_manager","access.portal.widget.manager","model_res_portal_widget",group_portal_manager,1,1,1,1
\ No newline at end of file
diff --git a/addons/portal/security/portal_security.xml b/addons/portal/security/portal_security.xml
new file mode 100644
index 00000000000..3e9f1634597
--- /dev/null
+++ b/addons/portal/security/portal_security.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ Portal / Manager
+
+Members of this groups have access to the portal definitions, and can easily manage the users, access right and menus of portal users.
+Members of this group who are also members of the Sharing/User group get additional options in the sharing wizard:
+ - they may select a list of existing users to share with, without having to give a list of emails
+ - they may choose to share with a Portal group instead of sharing with users, effectively extending the Portal content
+These features are useful for setting up Portals, but this could result in an alteration of the system's security policy.
+Therefore this should be granted only to trustworthy users who know the security policy very well.
+This group must not be deleted.
+
+
+
\ No newline at end of file
diff --git a/addons/portal/wizard/__init__.py b/addons/portal/wizard/__init__.py
new file mode 100644
index 00000000000..7bfb1d92c34
--- /dev/null
+++ b/addons/portal/wizard/__init__.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2011 OpenERP S.A ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import share_wizard
+import groups_wizard
diff --git a/addons/portal/wizard/groups_wizard.py b/addons/portal/wizard/groups_wizard.py
new file mode 100644
index 00000000000..1c383eb7be4
--- /dev/null
+++ b/addons/portal/wizard/groups_wizard.py
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2011 OpenERP S.A ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import osv, fields
+from tools.translate import _
+
+class groups_wizard(osv.osv_memory):
+ _name = 'res.portal.groups'
+ _description = 'Portal Groups Wizard'
+ _columns = {
+ 'portal_id': fields.many2one('res.portal', required=True, readonly=True,
+ string='Portal'),
+ 'add_group_ids': fields.many2many('res.groups',
+ 'portal_groups_add', 'portal_groups_id', 'group_ids',
+ string='Add Groups'),
+ 'remove_group_ids': fields.many2many('res.groups',
+ 'portal_groups_remove', 'portal_groups_id', 'group_ids',
+ string='Remove Groups'),
+ }
+ _defaults = {
+ 'portal_id': (lambda self,cr,uid,context: context and context.get('active_id'))
+ }
+
+ def do_apply(self, cr, uid, ids, context=None, *args):
+ assert len(ids) == 1
+ wizard = self.browse(cr, uid, ids[0], context)
+
+ # select all portal users except admin
+ user_ids = [u.id for u in wizard.portal_id.user_ids if u.id != 1]
+
+ # apply group adds and removals to portal users
+ add_gids = [(4, g.id) for g in wizard.add_group_ids]
+ rem_gids = [(3, g.id) for g in wizard.remove_group_ids]
+ user_values = {'groups_id': add_gids + rem_gids}
+ self.pool.get('res.users').write(cr, uid, user_ids, user_values, context)
+
+ # return an empty dictionary to close the wizard window
+ return {}
+
+groups_wizard()
+
diff --git a/addons/portal/wizard/share_wizard.py b/addons/portal/wizard/share_wizard.py
new file mode 100644
index 00000000000..7f1222fa2e2
--- /dev/null
+++ b/addons/portal/wizard/share_wizard.py
@@ -0,0 +1,189 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2011 OpenERP S.A ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from osv import osv, fields
+from tools.translate import _
+
+UID_ROOT = 1
+SHARED_DOCS_MENU = "Documents"
+SHARED_DOCS_CHILD_MENU = "Shared Documents"
+
+class share_wizard_portal(osv.osv_memory):
+ """Inherited share wizard to automatically create appropriate
+ menus in the selected portal upon sharing with a portal group."""
+ _inherit = "share.wizard"
+
+ def _user_type_selection(self, cr, uid, context=None):
+ selection = super(share_wizard_portal, self)._user_type_selection(cr, uid, context=context)
+ selection.extend([('existing','Users you already shared with'),
+ ('groups','Existing Groups (e.g Portal Groups)')])
+ return selection
+
+ _columns = {
+ 'user_ids': fields.many2many('res.users', 'share_wizard_res_user_rel', 'share_id', 'user_id', 'Existing users', domain=[('share', '=', True)]),
+ 'group_ids': fields.many2many('res.groups', 'share_wizard_res_group_rel', 'share_id', 'group_id', 'Existing groups', domain=[('share', '=', False)]),
+
+ # no clean way to extend selection yet, copy the field.
+ 'user_type': fields.selection(_user_type_selection,'Users to share with',
+ help="Select the type of user(s) you would like to share data with."),
+ }
+
+ def is_portal_manager(self, cr, uid, context=None):
+ return self.has_group(cr, uid, module='portal', group_xml_id='group_portal_manager', context=context)
+
+ def _check_preconditions(self, cr, uid, wizard_data, context=None):
+ if wizard_data.user_type == 'existing':
+ self._assert(wizard_data.user_ids,
+ _('Please select at least one user to share with'),
+ context=context)
+ elif wizard_data.user_type == 'groups':
+ self._assert(wizard_data.group_ids,
+ _('Please select at least one group to share with'),
+ context=context)
+ return super(share_wizard_portal, self)._check_preconditions(cr, uid, wizard_data, context=context)
+
+ def _create_or_get_submenu_named(self, cr, uid, parent_menu_id, menu_name, context=None):
+ if not parent_menu_id:
+ return
+ Menus = self.pool.get('ir.ui.menu')
+ parent_menu = Menus.browse(cr, uid, parent_menu_id) # No context
+ menu_id = None
+ max_seq = 10
+ for child_menu in parent_menu.child_id:
+ max_seq = max(max_seq, child_menu.sequence)
+ if child_menu.name == menu_name:
+ menu_id = child_menu.id
+ break
+ if not menu_id:
+ # not found, create it
+ menu_id = Menus.create(cr, UID_ROOT,
+ {'name': menu_name,
+ 'parent_id': parent_menu.id,
+ 'sequence': max_seq + 10, # at the bottom
+ })
+ return menu_id
+
+ def _sharing_root_menu_id(self, cr, uid, portal, context=None):
+ """Create or retrieve root ID of sharing menu in portal menu
+
+ :param portal: browse_record of portal, constructed with a context WITHOUT language
+ """
+ parent_menu_id = self._create_or_get_submenu_named(cr, uid, portal.parent_menu_id.id, SHARED_DOCS_MENU, context=context)
+ if parent_menu_id:
+ child_menu_id = self._create_or_get_submenu_named(cr, uid, parent_menu_id, SHARED_DOCS_CHILD_MENU, context=context)
+ return child_menu_id
+
+ def _create_shared_data_menu(self, cr, uid, wizard_data, portal, context=None):
+ """Create sharing menus in portal menu according to share wizard options.
+
+ :param wizard_data: browse_record of share.wizard
+ :param portal: browse_record of portal, constructed with a context WITHOUT language
+ """
+ root_menu_id = self._sharing_root_menu_id(cr, uid, portal, context=context)
+ if not root_menu_id:
+ # no specific parent menu, cannot create the sharing menu at all.
+ return
+ # Create the shared action and menu
+ action_def = self._shared_action_def(cr, uid, wizard_data, context=None)
+ action_id = self.pool.get('ir.actions.act_window').create(cr, UID_ROOT, action_def)
+ menu_data = {'name': action_def['name'],
+ 'sequence': 10,
+ 'action': 'ir.actions.act_window,'+str(action_id),
+ 'parent_id': root_menu_id,
+ 'icon': 'STOCK_JUSTIFY_FILL'}
+ menu_id = self.pool.get('ir.ui.menu').create(cr, UID_ROOT, menu_data)
+ return menu_id
+
+ def _create_share_users_group(self, cr, uid, wizard_data, context=None):
+ # Override of super() to handle the possibly selected "existing users"
+ # and "existing groups".
+ # In both cases, we call super() to create the share group, but when
+ # sharing with existing groups, we will later delete it, and copy its
+ # access rights and rules to the selected groups.
+ group_id = super(share_wizard_portal,self)._create_share_users_group(cr, uid, wizard_data, context=context)
+
+ # For sharing with existing groups, we don't create a share group, instead we'll
+ # alter the rules of the groups so they can see the shared data
+ if wizard_data.group_ids:
+ # get the list of portals and the related groups to install their menus.
+ Portals = self.pool.get('res.portal')
+ all_portals = Portals.browse(cr, UID_ROOT, Portals.search(cr, UID_ROOT, [])) #no context!
+ all_portal_group_ids = [p.group_id.id for p in all_portals]
+
+ # populate result lines with the users of each group and
+ # setup the menu for portal groups
+ for group in wizard_data.group_ids:
+ if group.id in all_portal_group_ids:
+ portal = all_portals[all_portal_group_ids.index(group.id)]
+ self._create_shared_data_menu(cr, uid, wizard_data, portal, context=context)
+
+ for user in group.users:
+ new_line = {'user_id': user.id,
+ 'newly_created': False}
+ wizard_data.write({'result_line_ids': [(0,0,new_line)]})
+
+ elif wizard_data.user_ids:
+ # must take care of existing users, by adding them to the new group, which is group_ids[0],
+ # and adding the shortcut
+ selected_user_ids = [x.id for x in wizard_data.user_ids]
+ self.pool.get('res.users').write(cr, UID_ROOT, selected_user_ids, {'groups_id': [(4,group_id)]})
+ self._setup_action_and_shortcut(cr, uid, wizard_data, selected_user_ids, make_home=False, context=context)
+ # populate the result lines for existing users too
+ for user in wizard_data.user_ids:
+ new_line = { 'user_id': user.id,
+ 'newly_created': False}
+ wizard_data.write({'result_line_ids': [(0,0,new_line)]})
+
+ return group_id
+
+ def copy_share_group_access_and_delete(self, cr, wizard_data, share_group_id, context=None):
+ # In the case of sharing with existing groups, the strategy is to copy
+ # access rights and rules from the share group, so that we can
+ if not wizard_data.group_ids: return
+ Groups = self.pool.get('res.groups')
+ Rules = self.pool.get('ir.rule')
+ Rights = self.pool.get('ir.model.access')
+ share_group = Groups.browse(cr, UID_ROOT, share_group_id)
+ share_rule_ids = [r.id for r in share_group.rule_groups]
+ for target_group in wizard_data.group_ids:
+ # Link the rules to the group. This is appropriate because as of
+ # v6.1, the algorithm for combining them will OR the rules, hence
+ # extending the visible data.
+ Rules.write(cr, UID_ROOT, share_rule_ids, {'groups': [(4,target_group.id)]})
+ self._logger.debug("Linked sharing rules from temporary sharing group to group %s", target_group)
+
+ # Copy the access rights. This is appropriate too because
+ # groups have the UNION of all permissions granted by their
+ # access right lines.
+ for access_line in share_group.model_access:
+ Rights.copy(cr, UID_ROOT, access_line.id, default={'group_id': target_group.id})
+ self._logger.debug("Copied access rights from temporary sharing group to group %s", target_group)
+
+ # finally, delete it after removing its users
+ Groups.write(cr, UID_ROOT, [share_group_id], {'users': [(6,0,[])]})
+ Groups.unlink(cr, UID_ROOT, [share_group_id])
+ self._logger.debug("Deleted temporary sharing group %s", share_group_id)
+
+ def _finish_result_lines(self, cr, uid, wizard_data, share_group_id, context=None):
+ super(share_wizard_portal,self)._finish_result_lines(cr, uid, wizard_data, share_group_id, context=context)
+ self.copy_share_group_access_and_delete(cr, wizard_data, share_group_id, context=context)
+
+share_wizard_portal()
\ No newline at end of file
diff --git a/addons/portal/wizard/share_wizard_view.xml b/addons/portal/wizard/share_wizard_view.xml
new file mode 100644
index 00000000000..f16334b68a3
--- /dev/null
+++ b/addons/portal/wizard/share_wizard_view.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+ share.step1.form.portal
+ share.wizard
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ share.step2.form.portal
+ share.wizard
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/portal/wizard_view.xml b/addons/portal/wizard_view.xml
new file mode 100644
index 00000000000..f748292ede6
--- /dev/null
+++ b/addons/portal/wizard_view.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+ Add/Remove Groups
+ res.portal.groups
+ form
+ form
+ new
+
+
+
+
+ Portal Groups Wizard
+ res.portal.groups
+ form
+
+
+
+
+
+
+
+
+ Portal Form
+ res.portal
+
+
+
+
+
+
+
+
+
diff --git a/addons/procurement/i18n/fi.po b/addons/procurement/i18n/fi.po
new file mode 100644
index 00000000000..6895606767f
--- /dev/null
+++ b/addons/procurement/i18n/fi.po
@@ -0,0 +1,899 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-20 09:20+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-21 04:37+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: procurement
+#: view:make.procurement:0
+msgid "Ask New Products"
+msgstr "Kysy uusia tuotteita"
+
+#. module: procurement
+#: model:ir.ui.menu,name:procurement.menu_stock_sched
+msgid "Schedulers"
+msgstr "Ajastimet"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_make_procurement
+msgid "Make Procurements"
+msgstr "Tee hankinnat"
+
+#. module: procurement
+#: help:procurement.order.compute.all,automatic:0
+msgid ""
+"Triggers an automatic procurement for all products that have a virtual stock "
+"under 0. You should probably not use this option, we suggest using a MTO "
+"configuration on products."
+msgstr ""
+"Liipaisee automaattisen hankinnan kaikille tuotteille joiden näennäisvarasto "
+"on alle 0. Tätä vaihtoehtoa ei yleensä käytetä, vaan tuotteille on parempi "
+"määrittää varastosäännöt."
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Group By..."
+msgstr "Ryhmittely.."
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,procurement_draft_ids:0
+msgid "Draft procurement of the product and location of that orderpoint"
+msgstr "Luonnnos hankinta tuotteelle ja tilauspisteen paikalle"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:288
+#, python-format
+msgid "No supplier defined for this product !"
+msgstr "Tuotteelle ei ole määritelty toimittajaa!"
+
+#. module: procurement
+#: field:make.procurement,uom_id:0
+msgid "Unit of Measure"
+msgstr "Mittayksikkö"
+
+#. module: procurement
+#: field:procurement.order,procure_method:0
+msgid "Procurement Method"
+msgstr "Hankintatapa"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:304
+#, python-format
+msgid "No address defined for the supplier"
+msgstr "Toimittajan osoitetta ei ole määritetty"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.action_procurement_compute
+msgid "Compute Stock Minimum Rules Only"
+msgstr "Laske vain varaston minimirajat"
+
+#. module: procurement
+#: field:procurement.order,company_id:0
+#: field:stock.warehouse.orderpoint,company_id:0
+msgid "Company"
+msgstr "Yritys"
+
+#. module: procurement
+#: field:procurement.order,product_uos_qty:0
+msgid "UoS Quantity"
+msgstr "Myyntiyksikkö määrä"
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,name:0
+msgid "Reason"
+msgstr "Syy"
+
+#. module: procurement
+#: view:procurement.order.compute:0
+msgid "Compute Procurements"
+msgstr "Laske hankinnat"
+
+#. module: procurement
+#: field:procurement.order,message:0
+msgid "Latest error"
+msgstr "Viimeisin virhe"
+
+#. module: procurement
+#: help:mrp.property,composition:0
+msgid "Not used in computations, for information purpose only."
+msgstr "Ei käytetä laskutoimituksiin - vain tietoja varten."
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,procurement_id:0
+msgid "Latest procurement"
+msgstr "Viimeisin hankinta"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Notes"
+msgstr "Huomautukset"
+
+#. module: procurement
+#: selection:procurement.order,procure_method:0
+msgid "on order"
+msgstr "tilauksessa"
+
+#. module: procurement
+#: help:procurement.order,message:0
+msgid "Exception occurred while computing procurement orders."
+msgstr "Hankintatilausten laskennassa sattui poikkeus."
+
+#. module: procurement
+#: help:procurement.order,state:0
+msgid ""
+"When a procurement is created the state is set to 'Draft'.\n"
+" If the procurement is confirmed, the state is set to 'Confirmed'. "
+" \n"
+"After confirming the state is set to 'Running'.\n"
+" If any exception arises in the order then the state is set to 'Exception'.\n"
+" Once the exception is removed the state becomes 'Ready'.\n"
+" It is in 'Waiting'. state when the procurement is waiting for another one "
+"to finish."
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Minimum Stock Rules Search"
+msgstr "Minimivarasto sääntöjen haku"
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,product_min_qty:0
+msgid ""
+"When the virtual stock goes belong the Min Quantity, OpenERP generates a "
+"procurement to bring the virtual stock to the Max Quantity."
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order.compute.all:0
+msgid "Scheduler Parameters"
+msgstr "Aikataulutuksen parametrit"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_stock_move
+msgid "Stock Move"
+msgstr "Varastosiirto"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Planification"
+msgstr "Suunnittelu"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Ready"
+msgstr "Valmis"
+
+#. module: procurement
+#: field:procurement.order.compute.all,automatic:0
+msgid "Automatic orderpoint"
+msgstr "Automaattinen tilauspiste"
+
+#. module: procurement
+#: field:mrp.property,composition:0
+msgid "Properties composition"
+msgstr "Ominaisuuksien koostumus"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Confirmed"
+msgstr "Vahvistettu"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Retry"
+msgstr "Yritä uudelleen"
+
+#. module: procurement
+#: view:procurement.order.compute:0
+#: view:procurement.orderpoint.compute:0
+msgid "Parameters"
+msgstr "Parametrit"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Confirm"
+msgstr "Vahvista"
+
+#. module: procurement
+#: help:procurement.order,origin:0
+msgid ""
+"Reference of the document that created this Procurement.\n"
+"This is automatically completed by OpenERP."
+msgstr ""
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Procurement Orders to Process"
+msgstr "Prosessoitavat hankintatilaukset"
+
+#. module: procurement
+#: constraint:res.company:0
+msgid "Error! You can not create recursive companies."
+msgstr "Virhe! Et voi luoda sisäkkäisiä yrityksiä."
+
+#. module: procurement
+#: field:procurement.order,priority:0
+msgid "Priority"
+msgstr "Prioriteetti"
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,state:0
+msgid "State"
+msgstr "Tila"
+
+#. module: procurement
+#: field:procurement.order,location_id:0
+#: view:stock.warehouse.orderpoint:0
+#: field:stock.warehouse.orderpoint,location_id:0
+msgid "Location"
+msgstr "Sijainti"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_stock_picking
+msgid "Picking List"
+msgstr "Keräilylista"
+
+#. module: procurement
+#: field:make.procurement,warehouse_id:0
+#: view:stock.warehouse.orderpoint:0
+#: field:stock.warehouse.orderpoint,warehouse_id:0
+msgid "Warehouse"
+msgstr "Varasto"
+
+#. module: procurement
+#: selection:stock.warehouse.orderpoint,logic:0
+msgid "Best price (not yet active!)"
+msgstr "Paras hinta (ei vielä aktiivinen!)"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Product & Location"
+msgstr "Tuote & Sijainti"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order_compute
+msgid "Compute Procurement"
+msgstr "Laske hankinta"
+
+#. module: procurement
+#: model:ir.module.module,shortdesc:procurement.module_meta_information
+#: field:stock.move,procurements:0
+msgid "Procurements"
+msgstr "Hankinnat"
+
+#. module: procurement
+#: field:res.company,schedule_range:0
+msgid "Scheduler Range Days"
+msgstr "Ajastimen jakson päivät"
+
+#. module: procurement
+#: model:ir.actions.act_window,help:procurement.procurement_action
+msgid ""
+"A procurement order is used to record a need for a specific product at a "
+"specific location. A procurement order is usually created automatically from "
+"sales orders, a Pull Logistics rule or Minimum Stock Rules. When the "
+"procurement order is confirmed, it automatically creates the necessary "
+"operations to fullfil the need: purchase order proposition, manufacturing "
+"order, etc."
+msgstr ""
+
+#. module: procurement
+#: field:make.procurement,date_planned:0
+msgid "Planned Date"
+msgstr "Suunniteltu päivämäärä"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Group By"
+msgstr "Ryhmittelyn peruste"
+
+#. module: procurement
+#: field:make.procurement,qty:0
+#: field:procurement.order,product_qty:0
+msgid "Quantity"
+msgstr "Määrä"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:377
+#, python-format
+msgid "Not enough stock and no minimum orderpoint rule defined."
+msgstr "Ei tarpeeksi varastoa eikä minimitilauspistesääntöä määriteltynä"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:137
+#, python-format
+msgid "Invalid action !"
+msgstr "Virheellinen toiminto!"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "References"
+msgstr "Viitteet"
+
+#. module: procurement
+#: view:res.company:0
+msgid "Configuration"
+msgstr "Konfiguraatio"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,qty_multiple:0
+msgid "Qty Multiple"
+msgstr "Määrän kerroin"
+
+#. module: procurement
+#: help:procurement.order,procure_method:0
+msgid ""
+"If you encode manually a Procurement, you probably want to use a make to "
+"order method."
+msgstr ""
+
+#. module: procurement
+#: model:ir.ui.menu,name:procurement.menu_stock_procurement
+msgid "Automatic Procurements"
+msgstr "Automaattiset hankinnat"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_max_qty:0
+msgid "Max Quantity"
+msgstr "Maksimimäärä"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order
+#: model:process.process,name:procurement.process_process_procurementprocess0
+#: view:procurement.order:0
+msgid "Procurement"
+msgstr "Hankinta"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action
+msgid "Procurement Orders"
+msgstr "Hankintatilaukset"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "To Fix"
+msgstr "Korjattavaksi"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Exceptions"
+msgstr "Poikkeukset"
+
+#. module: procurement
+#: model:process.node,note:procurement.process_node_serviceonorder0
+msgid "Assignment from Production or Purchase Order."
+msgstr "Määritys tuotannosta tai ostotilaukselta."
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_mrp_property
+msgid "Property"
+msgstr "Ominaisuus"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.act_make_procurement
+#: view:make.procurement:0
+msgid "Procurement Request"
+msgstr "Hankintapyyntö"
+
+#. module: procurement
+#: view:procurement.orderpoint.compute:0
+msgid "Compute Stock"
+msgstr "Laske varasto"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Late"
+msgstr "Myöhässä"
+
+#. module: procurement
+#: model:process.process,name:procurement.process_process_serviceproductprocess0
+msgid "Service"
+msgstr "Palvelu"
+
+#. module: procurement
+#: model:ir.module.module,description:procurement.module_meta_information
+msgid ""
+"\n"
+" This is the module for computing Procurements.\n"
+" "
+msgstr ""
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,procurement_draft_ids:0
+msgid "Related Procurement Orders"
+msgstr "Liittyvät hankintatilaukset"
+
+#. module: procurement
+#: view:procurement.orderpoint.compute:0
+msgid ""
+"Wizard checks all the stock minimum rules and generate procurement order."
+msgstr "Velho tarkistaa kaikki minimivarastosäännöt ja luo hankintatilauksen"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_min_qty:0
+msgid "Min Quantity"
+msgstr "Minimimäärä"
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Urgent"
+msgstr "Kiireellinen"
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "plus"
+msgstr "plus"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:325
+#, python-format
+msgid ""
+"Please check the Quantity in Procurement Order(s), it should not be less "
+"than 1!"
+msgstr ""
+"Ole hyvä ja tarkista määrä hankintatilauksella. Sen ei tulisi olla alle 1 !"
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the "
+"orderpoint without removing it."
+msgstr ""
+"Jos aktiivisen kentän tilaksi asetetaan epätosi (false) se mahdollistaa "
+"tilauspisteen piilottamisen ilman sen poistamista"
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,product_max_qty:0
+msgid ""
+"When the virtual stock goes belong the Max Quantity, OpenERP generates a "
+"procurement to bring the virtual stock to the Max Quantity."
+msgstr ""
+
+#. module: procurement
+#: help:procurement.orderpoint.compute,automatic:0
+msgid "If the stock of a product is under 0, it will act like an orderpoint"
+msgstr "Jos tuotteen varastosaldo on alle 0, toimii se tilauspisteenä"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Lines"
+msgstr "Hankinnan rivit"
+
+#. module: procurement
+#: view:procurement.order.compute.all:0
+msgid ""
+"This wizard allows you to run all procurement, production and/or purchase "
+"orders that should be processed based on their configuration. By default, "
+"the scheduler is launched automatically every night by OpenERP. You can use "
+"this menu to force it to be launched now. Note that it runs in the "
+"background, you may have to wait for a few minutes until it has finished "
+"computing."
+msgstr ""
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,note:0
+msgid "Note"
+msgstr "Huomautus"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Draft"
+msgstr "Luonnos"
+
+#. module: procurement
+#: view:procurement.order.compute:0
+msgid "This wizard will schedule procurements."
+msgstr "Tämä ohjattu toiminto ajoittaa hankinnat."
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Status"
+msgstr "Tila"
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Normal"
+msgstr "Tavallinen"
+
+#. module: procurement
+#: constraint:stock.move:0
+msgid "You try to assign a lot which is not from the same product"
+msgstr "Erä ei ole samaa tuotetta"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,active:0
+msgid "Active"
+msgstr "Aktiivinen"
+
+#. module: procurement
+#: model:process.node,name:procurement.process_node_procureproducts0
+msgid "Procure Products"
+msgstr "Hanki tuotteita"
+
+#. module: procurement
+#: field:procurement.order,date_planned:0
+msgid "Scheduled date"
+msgstr "Arvioitu päivämäärä"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Exception"
+msgstr "Poikkeus"
+
+#. module: procurement
+#: code:addons/procurement/schedulers.py:179
+#, python-format
+msgid "Automatic OP: %s"
+msgstr "Automaattinen tilauspiste: %s"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_orderpoint_compute
+msgid "Automatic Order Point"
+msgstr "Automaattinen tilauspiste"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_stock_warehouse_orderpoint
+msgid "Minimum Inventory Rule"
+msgstr "Minimivarastosääntö"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_res_company
+msgid "Companies"
+msgstr "Yritykset"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Extra Information"
+msgstr "Lisätiedot"
+
+#. module: procurement
+#: help:procurement.order,name:0
+msgid "Procurement name."
+msgstr "Hankinnan nimi"
+
+#. module: procurement
+#: constraint:stock.move:0
+msgid "You must assign a production lot for this product"
+msgstr "Tälle tuotteelle pitää määrittää valmistuserä"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Reason"
+msgstr "Hankinnan syy"
+
+#. module: procurement
+#: sql_constraint:stock.warehouse.orderpoint:0
+msgid "Qty Multiple must be greater than zero."
+msgstr "Määrän kertoimen tulee olla yli 0"
+
+#. module: procurement
+#: selection:stock.warehouse.orderpoint,logic:0
+msgid "Order to Max"
+msgstr "Tilaa maksimiin"
+
+#. module: procurement
+#: field:procurement.order,date_close:0
+msgid "Date Closed"
+msgstr "Sulkemispäivä"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:372
+#, python-format
+msgid "Procurement '%s' is in exception: not enough stock."
+msgstr ""
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:138
+#, python-format
+msgid "Cannot delete Procurement Order(s) which are in %s State!"
+msgstr "Ei voi poistaa hankintatilauksia jotka ovat tilassa %s !"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:324
+#, python-format
+msgid "Data Insufficient !"
+msgstr "Riittämätön data!"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_mrp_property_group
+#: field:mrp.property,group_id:0
+#: field:mrp.property.group,name:0
+msgid "Property Group"
+msgstr "Ominaisuusryhmä"
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Misc"
+msgstr "Sekalaiset"
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Locations"
+msgstr "Sijainnit"
+
+#. module: procurement
+#: selection:procurement.order,procure_method:0
+msgid "from stock"
+msgstr "varastosta"
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "General Information"
+msgstr "Yleiset tiedot"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Run Procurement"
+msgstr "Suorita hankinta"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Done"
+msgstr "Valmis"
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,qty_multiple:0
+msgid "The procurement quantity will by rounded up to this multiple."
+msgstr "Hankinnan määrä pyöristetään ylös tähän moninkertaan."
+
+#. module: procurement
+#: view:make.procurement:0
+#: view:procurement.order:0
+#: selection:procurement.order,state:0
+#: view:procurement.order.compute:0
+#: view:procurement.order.compute.all:0
+#: view:procurement.orderpoint.compute:0
+msgid "Cancel"
+msgstr "Peruuta"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,logic:0
+msgid "Reordering Mode"
+msgstr "Uusintatilauksen tapa"
+
+#. module: procurement
+#: field:procurement.order,origin:0
+msgid "Source Document"
+msgstr "Lähdedokumentti"
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Not urgent"
+msgstr "Ei kiireellinen"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order_compute_all
+msgid "Compute all schedulers"
+msgstr "Laske kaikki ajastimet"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Current"
+msgstr "Nykyinen"
+
+#. module: procurement
+#: view:board.board:0
+msgid "Procurements in Exception"
+msgstr "Poikkeavat hankinnat"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Details"
+msgstr "Yksityiskohdat"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action5
+#: model:ir.actions.act_window,name:procurement.procurement_action_board
+#: model:ir.actions.act_window,name:procurement.procurement_exceptions
+#: model:ir.ui.menu,name:procurement.menu_stock_procurement_action
+msgid "Procurement Exceptions"
+msgstr "Hankinnan poikkeamat"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.act_procurement_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.act_product_product_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.act_stock_warehouse_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.action_orderpoint_form
+#: model:ir.ui.menu,name:procurement.menu_stock_order_points
+#: view:stock.warehouse.orderpoint:0
+msgid "Minimum Stock Rules"
+msgstr "Varaston minimirajat"
+
+#. module: procurement
+#: field:procurement.order,close_move:0
+msgid "Close Move at end"
+msgstr "Sulje siirto lopussa"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Scheduled Date"
+msgstr "Suunniteltu päivämäärä"
+
+#. module: procurement
+#: field:make.procurement,product_id:0
+#: view:procurement.order:0
+#: field:procurement.order,product_id:0
+#: field:stock.warehouse.orderpoint,product_id:0
+msgid "Product"
+msgstr "Tuote"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Temporary"
+msgstr "Väliaikainen"
+
+#. module: procurement
+#: field:mrp.property,description:0
+#: field:mrp.property.group,description:0
+msgid "Description"
+msgstr "Kuvaus"
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "min"
+msgstr "minimi"
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Quantity Rules"
+msgstr "Määräsäännöt"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Running"
+msgstr "Käynnissä olevat"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_uom:0
+msgid "Product UOM"
+msgstr "Tuotteen mittayksikkö"
+
+#. module: procurement
+#: model:process.node,name:procurement.process_node_serviceonorder0
+msgid "Make to Order"
+msgstr "Valmista tilaukselle"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "UOM"
+msgstr "Mittayksikkö"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Waiting"
+msgstr "Odotetaan"
+
+#. module: procurement
+#: model:ir.actions.act_window,help:procurement.action_orderpoint_form
+msgid ""
+"You can define your minimum stock rules, so that OpenERP will automatically "
+"create draft manufacturing orders or purchase quotations according to the "
+"stock level. Once the virtual stock of a product (= stock on hand minus all "
+"confirmed orders and reservations) is below the minimum quantity, OpenERP "
+"will generate a procurement request to increase the stock up to the maximum "
+"quantity."
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,move_id:0
+msgid "Reservation"
+msgstr "Varaus"
+
+#. module: procurement
+#: model:process.node,note:procurement.process_node_procureproducts0
+msgid "The way to procurement depends on the product type."
+msgstr "Hankintatapa riippuu tuotteen tyypistä"
+
+#. module: procurement
+#: view:make.procurement:0
+msgid ""
+"This wizard will plan the procurement for this product. This procurement may "
+"generate task, production orders or purchase orders."
+msgstr ""
+
+#. module: procurement
+#: view:res.company:0
+msgid "MRP & Logistics Scheduler"
+msgstr "MRP ja logistiikka ajastin"
+
+#. module: procurement
+#: field:mrp.property,name:0
+#: field:stock.warehouse.orderpoint,name:0
+msgid "Name"
+msgstr "Nimi"
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "max"
+msgstr "maksimi"
+
+#. module: procurement
+#: field:procurement.order,product_uos:0
+msgid "Product UoS"
+msgstr "Tuotteen myyntiyksikkö"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:353
+#, python-format
+msgid "from stock: products assigned."
+msgstr "varastosta: tuotteet määrätty."
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.action_compute_schedulers
+#: model:ir.ui.menu,name:procurement.menu_stock_proc_schedulers
+#: view:procurement.order.compute.all:0
+msgid "Compute Schedulers"
+msgstr "Laske ajastimet"
+
+#. module: procurement
+#: model:ir.actions.act_window,help:procurement.procurement_exceptions
+msgid ""
+"Procurement Orders represent the need for a certain quantity of products, at "
+"a given time, in a given location. Sales Orders are one typical source of "
+"Procurement Orders (but these are distinct documents). Depending on the "
+"procurement parameters and the product configuration, the procurement engine "
+"will attempt to satisfy the need by reserving products from stock, ordering "
+"products from a supplier, or passing a manufacturing order, etc. A "
+"Procurement Exception occurs when the system cannot find a way to fulfill a "
+"procurement. Some exceptions will resolve themselves automatically, but "
+"others require manual intervention (those are identified by a specific error "
+"message)."
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,product_uom:0
+msgid "Product UoM"
+msgstr "Tuotteen mittayksikkö"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Search Procurement"
+msgstr "Hae hankinnoista"
+
+#. module: procurement
+#: help:res.company,schedule_range:0
+msgid ""
+"This is the time frame analysed by the scheduler when computing "
+"procurements. All procurements that are not between today and today+range "
+"are skipped for future computation."
+msgstr ""
+"Aikaikkuna jonka ajastin analysoi hankintojen laskennassa. Kaikki hankinnat "
+"jotka eivät ole jakson tänään ja tänään+jakso sisällä ohitetaan tulevia "
+"laskentoja varten"
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Very Urgent"
+msgstr "Erittäin kiireellinen"
+
+#. module: procurement
+#: field:procurement.orderpoint.compute,automatic:0
+msgid "Automatic Orderpoint"
+msgstr "Automaattinen tilauspiste"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Details"
+msgstr "Hankinnan yksityiskohdat"
+
+#. module: procurement
+#: code:addons/procurement/schedulers.py:180
+#, python-format
+msgid "SCHEDULER"
+msgstr "AJASTIN"
diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py
index 743ef85a9ea..f05ca64144d 100644
--- a/addons/procurement/procurement.py
+++ b/addons/procurement/procurement.py
@@ -527,7 +527,7 @@ class stock_warehouse_orderpoint(osv.osv):
help="The procurement quantity will be rounded up to this multiple."),
'procurement_id': fields.many2one('procurement.order', 'Latest procurement', ondelete="set null"),
'company_id': fields.many2one('res.company','Company',required=True),
- 'procurement_draft_ids': fields.function(_get_draft_procurements, method=True, type='many2many', relation="procurement.order", \
+ 'procurement_draft_ids': fields.function(_get_draft_procurements, type='many2many', relation="procurement.order", \
string="Related Procurement Orders",help="Draft procurement of the product and location of that orderpoint"),
}
_defaults = {
diff --git a/addons/product/partner.py b/addons/product/partner.py
index 7aa9b3bc426..f779f3dcd4d 100644
--- a/addons/product/partner.py
+++ b/addons/product/partner.py
@@ -32,7 +32,6 @@ class res_partner(osv.osv):
relation='product.pricelist',
domain=[('type','=','sale')],
string="Sale Pricelist",
- method=True,
view_load=True,
help="This pricelist will be used, instead of the default one, for sales to the current partner"),
}
diff --git a/addons/product/product.py b/addons/product/product.py
index fa6796b3953..9deaf3398b1 100644
--- a/addons/product/product.py
+++ b/addons/product/product.py
@@ -102,7 +102,7 @@ class product_uom(osv.osv):
'1 * (reference unit) = ratio * (this unit)'),
'factor_inv': fields.function(_factor_inv, digits_compute=dp.get_precision('Product UoM'),
fnct_inv=_factor_inv_write,
- method=True, string='Ratio',
+ string='Ratio',
help='How many times this UoM is bigger than the reference UoM in this category:\n'\
'1 * (this unit) = ratio * (reference unit)', required=True),
'rounding': fields.float('Rounding Precision', digits_compute=dp.get_precision('Product UoM'), required=True,
@@ -206,7 +206,7 @@ class product_category(osv.osv):
_description = "Product Category"
_columns = {
'name': fields.char('Name', size=64, required=True, translate=True),
- 'complete_name': fields.function(_name_get_fnc, method=True, type="char", string='Name'),
+ 'complete_name': fields.function(_name_get_fnc, type="char", string='Name'),
'parent_id': fields.many2one('product.category','Parent Category', select=True),
'child_id': fields.one2many('product.category', 'parent_id', string='Child Categories'),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of product categories."),
@@ -296,9 +296,9 @@ class product_template(osv.osv):
help='Coefficient to convert UOM to UOS\n'
' uos = uom * coeff'),
'mes_type': fields.selection((('fixed', 'Fixed'), ('variable', 'Variable')), 'Measure Type', required=True),
- 'seller_delay': fields.function(_calc_seller, method=True, type='integer', string='Supplier Lead Time', multi="seller_delay", help="This is the average delay in days between the purchase order confirmation and the reception of goods for this product and for the default supplier. It is used by the scheduler to order requests based on reordering delays."),
- 'seller_qty': fields.function(_calc_seller, method=True, type='float', string='Supplier Quantity', multi="seller_qty", help="This is minimum quantity to purchase from Main Supplier."),
- 'seller_id': fields.function(_calc_seller, method=True, type='many2one', relation="res.partner", string='Main Supplier', help="Main Supplier who has highest priority in Supplier List.", multi="seller_id"),
+ 'seller_delay': fields.function(_calc_seller, type='integer', string='Supplier Lead Time', multi="seller_delay", help="This is the average delay in days between the purchase order confirmation and the reception of goods for this product and for the default supplier. It is used by the scheduler to order requests based on reordering delays."),
+ 'seller_qty': fields.function(_calc_seller, type='float', string='Supplier Quantity', multi="seller_qty", help="This is minimum quantity to purchase from Main Supplier."),
+ 'seller_id': fields.function(_calc_seller, type='many2one', relation="res.partner", string='Main Supplier', help="Main Supplier who has highest priority in Supplier List.", multi="seller_id"),
'seller_ids': fields.one2many('product.supplierinfo', 'product_id', 'Partners'),
'loc_rack': fields.char('Rack', size=16),
'loc_row': fields.char('Row', size=16),
@@ -469,14 +469,14 @@ class product_product(osv.osv):
_inherits = {'product.template': 'product_tmpl_id'}
_order = 'default_code,name_template'
_columns = {
- 'qty_available': fields.function(_product_qty_available, method=True, type='float', string='Real Stock'),
- 'virtual_available': fields.function(_product_virtual_available, method=True, type='float', string='Virtual Stock'),
- 'incoming_qty': fields.function(_product_incoming_qty, method=True, type='float', string='Incoming'),
- 'outgoing_qty': fields.function(_product_outgoing_qty, method=True, type='float', string='Outgoing'),
- 'price': fields.function(_product_price, method=True, type='float', string='Pricelist', digits_compute=dp.get_precision('Sale Price')),
- 'lst_price' : fields.function(_product_lst_price, method=True, type='float', string='Public Price', digits_compute=dp.get_precision('Sale Price')),
- 'code': fields.function(_product_code, method=True, type='char', string='Reference'),
- 'partner_ref' : fields.function(_product_partner_ref, method=True, type='char', string='Customer ref'),
+ 'qty_available': fields.function(_product_qty_available, type='float', string='Real Stock'),
+ 'virtual_available': fields.function(_product_virtual_available, type='float', string='Virtual Stock'),
+ 'incoming_qty': fields.function(_product_incoming_qty, type='float', string='Incoming'),
+ 'outgoing_qty': fields.function(_product_outgoing_qty, type='float', string='Outgoing'),
+ 'price': fields.function(_product_price, type='float', string='Pricelist', digits_compute=dp.get_precision('Sale Price')),
+ 'lst_price' : fields.function(_product_lst_price, type='float', string='Public Price', digits_compute=dp.get_precision('Sale Price')),
+ 'code': fields.function(_product_code, type='char', string='Reference'),
+ 'partner_ref' : fields.function(_product_partner_ref, type='char', string='Customer ref'),
'default_code' : fields.char('Reference', size=64),
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the product without removing it."),
'variants': fields.char('Variants', size=64),
@@ -733,7 +733,7 @@ class product_supplierinfo(osv.osv):
'sequence' : fields.integer('Sequence', help="Assigns the priority to the list of product supplier."),
'product_uom': fields.many2one('product.uom', string="Supplier UoM", help="Choose here the Unit of Measure in which the prices and quantities are expressed below."),
'min_qty': fields.float('Minimal Quantity', required=True, help="The minimal quantity to purchase to this supplier, expressed in the supplier Product UoM if not empty, in the default unit of measure of the product otherwise."),
- 'qty': fields.function(_calc_qty, method=True, store=True, type='float', string='Quantity', multi="qty", help="This is a quantity which is converted into Default Uom."),
+ 'qty': fields.function(_calc_qty, store=True, type='float', string='Quantity', multi="qty", help="This is a quantity which is converted into Default Uom."),
'product_id' : fields.many2one('product.template', 'Product', required=True, ondelete='cascade', select=True),
'delay' : fields.integer('Delivery Lead Time', required=True, help="Lead time in days between the confirmation of the purchase order and the reception of the products in your warehouse. Used by the scheduler for automatic computation of the purchase order planning."),
'pricelist_ids': fields.one2many('pricelist.partnerinfo', 'suppinfo_id', 'Supplier Pricelist'),
diff --git a/addons/product_expiry/i18n/fi.po b/addons/product_expiry/i18n/fi.po
new file mode 100644
index 00000000000..03098dfc7b1
--- /dev/null
+++ b/addons/product_expiry/i18n/fi.po
@@ -0,0 +1,181 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-27 06:27+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-28 04:40+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: product_expiry
+#: model:ir.model,name:product_expiry.model_stock_production_lot
+msgid "Production lot"
+msgstr "Tuotantoerä"
+
+#. module: product_expiry
+#: model:product.template,name:product_expiry.product_product_from_product_template
+msgid "Ham"
+msgstr "Kinkku"
+
+#. module: product_expiry
+#: model:product.template,name:product_expiry.product_product_lait_product_template
+msgid "Cow milk"
+msgstr "Maito"
+
+#. module: product_expiry
+#: model:ir.module.module,shortdesc:product_expiry.module_meta_information
+msgid "Products date of expiry"
+msgstr "Tuotteet viimeisen käyttöpäivän mukaan"
+
+#. module: product_expiry
+#: field:product.product,life_time:0
+msgid "Product Life Time"
+msgstr "Tuotteen elinikä"
+
+#. module: product_expiry
+#: help:stock.production.lot,use_date:0
+msgid ""
+"The date on which the lot starts deteriorating without becoming dangerous."
+msgstr ""
+"Päivä jolloin erän laatu alkaa heikkenemään ennenkun se tulee vaaralliseksi."
+
+#. module: product_expiry
+#: field:product.product,use_time:0
+msgid "Product Use Time"
+msgstr "Tuotteen käyttöaika"
+
+#. module: product_expiry
+#: sql_constraint:stock.production.lot:0
+msgid ""
+"The combination of serial number and internal reference must be unique !"
+msgstr ""
+"Sarjanumeron ja sisäisen viitenumeron yhdistelmän on oltava uniikki !"
+
+#. module: product_expiry
+#: help:stock.production.lot,removal_date:0
+msgid "The date on which the lot should be removed."
+msgstr "Päivä jolloin erä tulisi poistaa."
+
+#. module: product_expiry
+#: model:ir.model,name:product_expiry.model_product_product
+msgid "Product"
+msgstr "Tuote"
+
+#. module: product_expiry
+#: help:product.product,alert_time:0
+msgid ""
+"The number of days after which an alert should be notified about the "
+"production lot."
+msgstr "Päivien määrä jonka jälkeen tuote-erästä tulee hälytys."
+
+#. module: product_expiry
+#: field:product.product,removal_time:0
+msgid "Product Removal Time"
+msgstr "Tuotteen poistopäivä"
+
+#. module: product_expiry
+#: field:stock.production.lot,removal_date:0
+msgid "Removal Date"
+msgstr "Poistopäivä"
+
+#. module: product_expiry
+#: help:stock.production.lot,life_date:0
+msgid ""
+"The date on which the lot may become dangerous and should not be consumed."
+msgstr ""
+"Päivä jolloin erä muuttuu vaaralliseksi, eikä sitä tule enään käyttää."
+
+#. module: product_expiry
+#: model:ir.module.module,description:product_expiry.module_meta_information
+msgid ""
+"Track different dates on products and production lots:\n"
+" - end of life\n"
+" - best before date\n"
+" - removal date\n"
+" - alert date\n"
+"Used, for example, in food industries."
+msgstr ""
+
+#. module: product_expiry
+#: model:product.template,name:product_expiry.product_product_pain_product_template
+msgid "Bread"
+msgstr "Leipä"
+
+#. module: product_expiry
+#: model:product.uom,name:product_expiry.product_uom_ltr
+#: model:product.uom.categ,name:product_expiry.product_uom_categ_vol
+msgid "LTR"
+msgstr ""
+
+#. module: product_expiry
+#: view:product.product:0
+#: view:stock.production.lot:0
+msgid "Dates"
+msgstr "Päivämäärät"
+
+#. module: product_expiry
+#: field:stock.production.lot,life_date:0
+msgid "End of Life Date"
+msgstr "Elinkaaren loppupäivä"
+
+#. module: product_expiry
+#: field:stock.production.lot,use_date:0
+msgid "Best before Date"
+msgstr "Parasta ennen päiväys"
+
+#. module: product_expiry
+#: model:product.template,name:product_expiry.product_product_jambon_product_template
+msgid "French cheese Camenbert"
+msgstr "Ranskalaista Camenbert juustoa"
+
+#. module: product_expiry
+#: help:product.product,removal_time:0
+msgid "The number of days before a production lot should be removed."
+msgstr "Päivien määrä ennenkuin tuotantoerä tulisi poistaa."
+
+#. module: product_expiry
+#: field:stock.production.lot,alert_date:0
+msgid "Alert Date"
+msgstr "Hälytyspäivä"
+
+#. module: product_expiry
+#: help:product.product,use_time:0
+msgid ""
+"The number of days before a production lot starts deteriorating without "
+"becoming dangerous."
+msgstr ""
+
+#. module: product_expiry
+#: constraint:product.product:0
+msgid "Error: Invalid ean code"
+msgstr "Virhe: Väärä EAN-koodi"
+
+#. module: product_expiry
+#: help:product.product,life_time:0
+msgid ""
+"The number of days before a production lot may become dangerous and should "
+"not be consumed."
+msgstr ""
+"Päivien määrä ennenkuin tuotantoerä voi tulla vaaralliseksi eikä sitä enään "
+"tulisi käyttää."
+
+#. module: product_expiry
+#: help:stock.production.lot,alert_date:0
+msgid ""
+"The date on which an alert should be notified about the production lot."
+msgstr "Päivä jolloin tästä tuotantoerästä tulisi tehdä hälytys."
+
+#. module: product_expiry
+#: field:product.product,alert_time:0
+msgid "Product Alert Time"
+msgstr "Tuotten hälytysaika"
diff --git a/addons/product_manufacturer/i18n/fi.po b/addons/product_manufacturer/i18n/fi.po
new file mode 100644
index 00000000000..4d8ac103ccc
--- /dev/null
+++ b/addons/product_manufacturer/i18n/fi.po
@@ -0,0 +1,87 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-20 10:09+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-21 04:36+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: product_manufacturer
+#: model:ir.module.module,description:product_manufacturer.module_meta_information
+msgid "A module that add manufacturers and attributes on the product form"
+msgstr "Moduuli jo lisää valmistajia ja attribuutteja tuotelomakkeelle"
+
+#. module: product_manufacturer
+#: field:product.product,manufacturer_pref:0
+msgid "Manufacturer Product Code"
+msgstr "Valmistajan tuotekoodi"
+
+#. module: product_manufacturer
+#: model:ir.model,name:product_manufacturer.model_product_product
+#: field:product.manufacturer.attribute,product_id:0
+msgid "Product"
+msgstr "Tuote"
+
+#. module: product_manufacturer
+#: view:product.manufacturer.attribute:0
+msgid "Product Template Name"
+msgstr "Tuotemallipohjan nimi"
+
+#. module: product_manufacturer
+#: model:ir.model,name:product_manufacturer.model_product_manufacturer_attribute
+msgid "Product attributes"
+msgstr "Tuotteen attribuutit"
+
+#. module: product_manufacturer
+#: view:product.manufacturer.attribute:0
+#: view:product.product:0
+msgid "Product Attributes"
+msgstr "Tuotteen attribuutit"
+
+#. module: product_manufacturer
+#: field:product.manufacturer.attribute,name:0
+msgid "Attribute"
+msgstr "Attribuutti"
+
+#. module: product_manufacturer
+#: field:product.manufacturer.attribute,value:0
+msgid "Value"
+msgstr "Arvo"
+
+#. module: product_manufacturer
+#: constraint:product.product:0
+msgid "Error: Invalid ean code"
+msgstr "Virhe: Väärä EAN-koodi"
+
+#. module: product_manufacturer
+#: view:product.product:0
+#: field:product.product,attribute_ids:0
+msgid "Attributes"
+msgstr "Attribuutit"
+
+#. module: product_manufacturer
+#: model:ir.module.module,shortdesc:product_manufacturer.module_meta_information
+msgid "Products Attributes & Manufacturers"
+msgstr "Tuotteen attribuutit ja valmistajat"
+
+#. module: product_manufacturer
+#: field:product.product,manufacturer_pname:0
+msgid "Manufacturer Product Name"
+msgstr "Valmistajan tuotenimi"
+
+#. module: product_manufacturer
+#: view:product.product:0
+#: field:product.product,manufacturer:0
+msgid "Manufacturer"
+msgstr "Valmistaja"
diff --git a/addons/product_margin/product_margin.py b/addons/product_margin/product_margin.py
index 37639c3b223..5895feedf3f 100644
--- a/addons/product_margin/product_margin.py
+++ b/addons/product_margin/product_margin.py
@@ -92,38 +92,38 @@ class product_product(osv.osv):
return res
_columns = {
- 'date_from': fields.function(_product_margin, method=True, type='date', string='From Date', multi='product_margin'),
- 'date_to': fields.function(_product_margin, method=True, type='date', string='To Date', multi='product_margin'),
- 'invoice_state': fields.function(_product_margin, method=True, type='selection', selection=[
+ 'date_from': fields.function(_product_margin, type='date', string='From Date', multi='product_margin'),
+ 'date_to': fields.function(_product_margin, type='date', string='To Date', multi='product_margin'),
+ 'invoice_state': fields.function(_product_margin, type='selection', selection=[
('paid','Paid'),('open_paid','Open and Paid'),('draft_open_paid','Draft, Open and Paid')
], string='Invoice State',multi='product_margin', readonly=True),
- 'sale_avg_price' : fields.function(_product_margin, method=True, type='float', string='Avg. Unit Price', multi='product_margin',
+ 'sale_avg_price' : fields.function(_product_margin, type='float', string='Avg. Unit Price', multi='product_margin',
help="Avg. Price in Customer Invoices)"),
- 'purchase_avg_price' : fields.function(_product_margin, method=True, type='float', string='Avg. Unit Price', multi='product_margin',
+ 'purchase_avg_price' : fields.function(_product_margin, type='float', string='Avg. Unit Price', multi='product_margin',
help="Avg. Price in Supplier Invoices "),
- 'sale_num_invoiced' : fields.function(_product_margin, method=True, type='float', string='# Invoiced', multi='product_margin',
+ 'sale_num_invoiced' : fields.function(_product_margin, type='float', string='# Invoiced', multi='product_margin',
help="Sum of Quantity in Customer Invoices"),
- 'purchase_num_invoiced' : fields.function(_product_margin, method=True, type='float', string='# Invoiced', multi='product_margin',
+ 'purchase_num_invoiced' : fields.function(_product_margin, type='float', string='# Invoiced', multi='product_margin',
help="Sum of Quantity in Supplier Invoices"),
- 'sales_gap' : fields.function(_product_margin, method=True, type='float', string='Sales Gap', multi='product_margin',
+ 'sales_gap' : fields.function(_product_margin, type='float', string='Sales Gap', multi='product_margin',
help="Expected Sale - Turn Over"),
- 'purchase_gap' : fields.function(_product_margin, method=True, type='float', string='Purchase Gap', multi='product_margin',
+ 'purchase_gap' : fields.function(_product_margin, type='float', string='Purchase Gap', multi='product_margin',
help="Normal Cost - Total Cost"),
- 'turnover' : fields.function(_product_margin, method=True, type='float', string='Turnover' ,multi='product_margin',
+ 'turnover' : fields.function(_product_margin, type='float', string='Turnover' ,multi='product_margin',
help="Sum of Multification of Invoice price and quantity of Customer Invoices"),
- 'total_cost' : fields.function(_product_margin, method=True, type='float', string='Total Cost', multi='product_margin',
+ 'total_cost' : fields.function(_product_margin, type='float', string='Total Cost', multi='product_margin',
help="Sum of Multification of Invoice price and quantity of Supplier Invoices "),
- 'sale_expected' : fields.function(_product_margin, method=True, type='float', string='Expected Sale', multi='product_margin',
+ 'sale_expected' : fields.function(_product_margin, type='float', string='Expected Sale', multi='product_margin',
help="Sum of Multification of Sale Catalog price and quantity of Customer Invoices"),
- 'normal_cost' : fields.function(_product_margin, method=True, type='float', string='Normal Cost', multi='product_margin',
+ 'normal_cost' : fields.function(_product_margin, type='float', string='Normal Cost', multi='product_margin',
help="Sum of Multification of Cost price and quantity of Supplier Invoices"),
- 'total_margin' : fields.function(_product_margin, method=True, type='float', string='Total Margin', multi='product_margin',
+ 'total_margin' : fields.function(_product_margin, type='float', string='Total Margin', multi='product_margin',
help="Turnorder - Standard price"),
- 'expected_margin' : fields.function(_product_margin, method=True, type='float', string='Expected Margin', multi='product_margin',
+ 'expected_margin' : fields.function(_product_margin, type='float', string='Expected Margin', multi='product_margin',
help="Expected Sale - Normal Cost"),
- 'total_margin_rate' : fields.function(_product_margin, method=True, type='float', string='Total Margin (%)', multi='product_margin',
+ 'total_margin_rate' : fields.function(_product_margin, type='float', string='Total Margin (%)', multi='product_margin',
help="Total margin * 100 / Turnover"),
- 'expected_margin_rate' : fields.function(_product_margin, method=True, type='float', string='Expected Margin (%)', multi='product_margin',
+ 'expected_margin_rate' : fields.function(_product_margin, type='float', string='Expected Margin (%)', multi='product_margin',
help="Expected margin * 100 / Expected Sale"),
}
diff --git a/addons/profile_tools/i18n/fi.po b/addons/profile_tools/i18n/fi.po
new file mode 100644
index 00000000000..54edf5dbbbd
--- /dev/null
+++ b/addons/profile_tools/i18n/fi.po
@@ -0,0 +1,145 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-22 09:37+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-23 04:56+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: profile_tools
+#: help:misc_tools.installer,idea:0
+msgid "Promote ideas of the employees, votes and discussion on best ideas."
+msgstr ""
+"Edistää työntekijöiden ideoita, äänestystä ja keskustelua parhaista ideoista."
+
+#. module: profile_tools
+#: help:misc_tools.installer,share:0
+msgid ""
+"Allows you to give restricted access to your OpenERP documents to external "
+"users, such as customers, suppliers, or accountants. You can share any "
+"OpenERP Menu such as your project tasks, support requests, invoices, etc."
+msgstr ""
+
+#. module: profile_tools
+#: help:misc_tools.installer,lunch:0
+msgid "A simple module to help you to manage Lunch orders."
+msgstr "yksinkertainen moduuli lounastilausten hallintaan."
+
+#. module: profile_tools
+#: field:misc_tools.installer,subscription:0
+msgid "Recurring Documents"
+msgstr "Toistuvat dokumentit"
+
+#. module: profile_tools
+#: model:ir.model,name:profile_tools.model_misc_tools_installer
+msgid "misc_tools.installer"
+msgstr ""
+
+#. module: profile_tools
+#: model:ir.module.module,description:profile_tools.module_meta_information
+msgid ""
+"Installs tools for lunch,survey,subscription and audittrail\n"
+" module\n"
+" "
+msgstr ""
+
+#. module: profile_tools
+#: view:misc_tools.installer:0
+msgid ""
+"Extra Tools are applications that can help you improve your organization "
+"although they are not key for company management."
+msgstr ""
+
+#. module: profile_tools
+#: view:misc_tools.installer:0
+msgid "Configure"
+msgstr "Konfiguroi"
+
+#. module: profile_tools
+#: help:misc_tools.installer,survey:0
+msgid "Allows you to organize surveys."
+msgstr "Mahdollistaa kyselyjen organisoinnin."
+
+#. module: profile_tools
+#: model:ir.module.module,shortdesc:profile_tools.module_meta_information
+msgid "Miscellaneous Tools"
+msgstr "Sekalaiset työkalut"
+
+#. module: profile_tools
+#: help:misc_tools.installer,pad:0
+msgid ""
+"This module creates a tighter integration between a Pad instance of your "
+"choosing and your OpenERP Web Client by letting you easily link pads to "
+"OpenERP objects via OpenERP attachments."
+msgstr ""
+
+#. module: profile_tools
+#: field:misc_tools.installer,lunch:0
+msgid "Lunch"
+msgstr "Lunch"
+
+#. module: profile_tools
+#: view:misc_tools.installer:0
+msgid "Extra Tools Configuration"
+msgstr "Ylimääräisten työkalujen konfiguaatio"
+
+#. module: profile_tools
+#: field:misc_tools.installer,idea:0
+msgid "Ideas Box"
+msgstr "Idealaatikkoa"
+
+#. module: profile_tools
+#: help:misc_tools.installer,subscription:0
+msgid "Helps to generate automatically recurring documents."
+msgstr "Auttaa luomaan toistuvia automaattisia dokumentteja."
+
+#. module: profile_tools
+#: model:ir.actions.act_window,name:profile_tools.action_misc_tools_installer
+msgid "Tools Configuration"
+msgstr "Työkalujen konfigurointi"
+
+#. module: profile_tools
+#: field:misc_tools.installer,pad:0
+msgid "Collaborative Note Pads"
+msgstr "Yhteiset muistiinpanot"
+
+#. module: profile_tools
+#: field:misc_tools.installer,survey:0
+msgid "Survey"
+msgstr "Kysely"
+
+#. module: profile_tools
+#: view:misc_tools.installer:0
+msgid "Configure Extra Tools"
+msgstr "Konfiguroi ylimääräiset työkalut"
+
+#. module: profile_tools
+#: field:misc_tools.installer,progress:0
+msgid "Configuration Progress"
+msgstr "Konfiguraation eteneminen"
+
+#. module: profile_tools
+#: field:misc_tools.installer,config_logo:0
+msgid "Image"
+msgstr "Kuva"
+
+#. module: profile_tools
+#: view:misc_tools.installer:0
+msgid "title"
+msgstr "otsikko"
+
+#. module: profile_tools
+#: field:misc_tools.installer,share:0
+msgid "Web Share"
+msgstr "Nettijako"
diff --git a/addons/project/project.py b/addons/project/project.py
index 072f7cc31c3..b1461da424c 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -123,7 +123,7 @@ class project(osv.osv):
return super(project, self).unlink(cr, uid, ids, *args, **kwargs)
_columns = {
- 'complete_name': fields.function(_complete_name, method=True, string="Project Name", type='char', size=250),
+ 'complete_name': fields.function(_complete_name, string="Project Name", type='char', size=250),
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the project without removing it."),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of Projects."),
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account', help="Link this project to an analytic account if you need financial management on projects. It enables you to connect projects with budgets, planning, cost and revenue analysis, timesheets on projects, etc.", ondelete="cascade", required=True),
@@ -133,18 +133,18 @@ class project(osv.osv):
'members': fields.many2many('res.users', 'project_user_rel', 'project_id', 'uid', 'Project Members',
help="Project's members are users who can have an access to the tasks related to this project.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
'tasks': fields.one2many('project.task', 'project_id', "Project tasks"),
- 'planned_hours': fields.function(_progress_rate, multi="progress", method=True, string='Planned Time', help="Sum of planned hours of all tasks related to this project and its child projects.",
+ 'planned_hours': fields.function(_progress_rate, multi="progress", string='Planned Time', help="Sum of planned hours of all tasks related to this project and its child projects.",
store = {
'project.project': (lambda self, cr, uid, ids, c={}: ids, ['tasks'], 10),
'project.task': (_get_project_task, ['planned_hours', 'effective_hours', 'remaining_hours', 'total_hours', 'progress', 'delay_hours','state'], 10),
}),
- 'effective_hours': fields.function(_progress_rate, multi="progress", method=True, string='Time Spent', help="Sum of spent hours of all tasks related to this project and its child projects."),
- 'total_hours': fields.function(_progress_rate, multi="progress", method=True, string='Total Time', help="Sum of total hours of all tasks related to this project and its child projects.",
+ 'effective_hours': fields.function(_progress_rate, multi="progress", string='Time Spent', help="Sum of spent hours of all tasks related to this project and its child projects."),
+ 'total_hours': fields.function(_progress_rate, multi="progress", string='Total Time', help="Sum of total hours of all tasks related to this project and its child projects.",
store = {
'project.project': (lambda self, cr, uid, ids, c={}: ids, ['tasks'], 10),
'project.task': (_get_project_task, ['planned_hours', 'effective_hours', 'remaining_hours', 'total_hours', 'progress', 'delay_hours','state'], 10),
}),
- 'progress_rate': fields.function(_progress_rate, multi="progress", method=True, string='Progress', type='float', group_operator="avg", help="Percent of tasks closed according to the total of tasks todo."),
+ 'progress_rate': fields.function(_progress_rate, multi="progress", string='Progress', type='float', group_operator="avg", help="Percent of tasks closed according to the total of tasks todo."),
'warn_customer': fields.boolean('Warn Partner', help="If you check this, the user will have a popup when closing a task that propose a message to send by email to the customer.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
'warn_header': fields.text('Mail Header', help="Header added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
'warn_footer': fields.text('Mail Footer', help="Footer added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
@@ -420,7 +420,7 @@ class task(osv.osv):
return result.keys()
_columns = {
- 'active': fields.function(_is_template, method=True, store=True, string='Not a Template Task', type='boolean', help="This field is computed automatically and have the same behavior than the boolean 'active' field: if the task is linked to a template or unactivated project, it will be hidden unless specifically asked."),
+ 'active': fields.function(_is_template, store=True, string='Not a Template Task', type='boolean', help="This field is computed automatically and have the same behavior than the boolean 'active' field: if the task is linked to a template or unactivated project, it will be hidden unless specifically asked."),
'name': fields.char('Task Summary', size=128, required=True),
'description': fields.text('Description'),
'priority': fields.selection([('4','Very Low'), ('3','Low'), ('2','Medium'), ('1','Important'), ('0','Very important')], 'Priority'),
@@ -438,23 +438,23 @@ class task(osv.osv):
'child_ids': fields.many2many('project.task', 'project_task_parent_rel', 'parent_id', 'task_id', 'Delegated Tasks'),
'notes': fields.text('Notes'),
'planned_hours': fields.float('Planned Hours', help='Estimated time to do the task, usually set by the project manager when the task is in draft state.'),
- 'effective_hours': fields.function(_hours_get, method=True, string='Hours Spent', multi='hours', help="Computed using the sum of the task work done.",
+ 'effective_hours': fields.function(_hours_get, string='Hours Spent', multi='hours', help="Computed using the sum of the task work done.",
store = {
'project.task': (lambda self, cr, uid, ids, c={}: ids, ['work_ids', 'remaining_hours', 'planned_hours'], 10),
'project.task.work': (_get_task, ['hours'], 10),
}),
'remaining_hours': fields.float('Remaining Hours', digits=(16,2), help="Total remaining time, can be re-estimated periodically by the assignee of the task."),
- 'total_hours': fields.function(_hours_get, method=True, string='Total Hours', multi='hours', help="Computed as: Time Spent + Remaining Time.",
+ 'total_hours': fields.function(_hours_get, string='Total Hours', multi='hours', help="Computed as: Time Spent + Remaining Time.",
store = {
'project.task': (lambda self, cr, uid, ids, c={}: ids, ['work_ids', 'remaining_hours', 'planned_hours'], 10),
'project.task.work': (_get_task, ['hours'], 10),
}),
- 'progress': fields.function(_hours_get, method=True, string='Progress (%)', multi='hours', group_operator="avg", help="If the task has a progress of 99.99% you should close the task if it's finished or reevaluate the time",
+ 'progress': fields.function(_hours_get, string='Progress (%)', multi='hours', group_operator="avg", help="If the task has a progress of 99.99% you should close the task if it's finished or reevaluate the time",
store = {
'project.task': (lambda self, cr, uid, ids, c={}: ids, ['work_ids', 'remaining_hours', 'planned_hours','state'], 10),
'project.task.work': (_get_task, ['hours'], 10),
}),
- 'delay_hours': fields.function(_hours_get, method=True, string='Delay Hours', multi='hours', help="Computed as difference of the time estimated by the project manager and the real time to close the task.",
+ 'delay_hours': fields.function(_hours_get, string='Delay Hours', multi='hours', help="Computed as difference of the time estimated by the project manager and the real time to close the task.",
store = {
'project.task': (lambda self, cr, uid, ids, c={}: ids, ['work_ids', 'remaining_hours', 'planned_hours'], 10),
'project.task.work': (_get_task, ['hours'], 10),
@@ -529,8 +529,6 @@ class task(osv.osv):
#
# Override view according to the company definition
#
-
-
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
users_obj = self.pool.get('res.users')
@@ -562,13 +560,27 @@ class task(osv.osv):
res['fields'][f]['string'] = res['fields'][f]['string'].replace('Hours',tm)
return res
+ def _check_child_task(self, cr, uid, ids, context=None):
+ if context == None:
+ context = {}
+ tasks = self.browse(cr, uid, ids, context=context)
+ for task in tasks:
+ if task.child_ids:
+ for child in task.child_ids:
+ if child.state in ['draft', 'open', 'pending']:
+ raise osv.except_osv(_("Warning !"), _("Child task still open.\nPlease cancel or complete child task first."))
+ return True
+
def action_close(self, cr, uid, ids, context=None):
# This action open wizard to send email to partner or project manager after close task.
- project_id = len(ids) and ids[0] or False
- if not project_id: return False
- task = self.browse(cr, uid, project_id, context=context)
+ if context == None:
+ context = {}
+ task_id = len(ids) and ids[0] or False
+ self._check_child_task(cr, uid, ids, context=context)
+ if not task_id: return False
+ task = self.browse(cr, uid, task_id, context=context)
project = task.project_id
- res = self.do_close(cr, uid, [project_id], context=context)
+ res = self.do_close(cr, uid, [task_id], context=context)
if project.warn_manager or project.warn_customer:
return {
'name': _('Send Email after close task'),
@@ -582,7 +594,7 @@ class task(osv.osv):
}
return res
- def do_close(self, cr, uid, ids, context=None):
+ def do_close(self, cr, uid, ids, context={}):
"""
Close Task
"""
@@ -601,7 +613,7 @@ class task(osv.osv):
'ref_partner_id': task.partner_id.id,
'ref_doc1': 'project.task,%d'% (task.id,),
'ref_doc2': 'project.project,%d'% (project.id,),
- })
+ }, context=context)
for parent_id in task.parent_ids:
if parent_id.state in ('pending','draft'):
@@ -610,12 +622,12 @@ class task(osv.osv):
if child.id != task.id and child.state not in ('done','cancelled'):
reopen = False
if reopen:
- self.do_reopen(cr, uid, [parent_id.id])
+ self.do_reopen(cr, uid, [parent_id.id], context=context)
vals.update({'state': 'done'})
vals.update({'remaining_hours': 0.0})
if not task.date_end:
vals.update({ 'date_end':time.strftime('%Y-%m-%d %H:%M:%S')})
- self.write(cr, uid, [task.id],vals)
+ self.write(cr, uid, [task.id],vals, context=context)
message = _("The task '%s' is done") % (task.name,)
self.log(cr, uid, task.id, message)
return True
@@ -634,15 +646,15 @@ class task(osv.osv):
'ref_partner_id': task.partner_id.id,
'ref_doc1': 'project.task,%d' % task.id,
'ref_doc2': 'project.project,%d' % project.id,
- })
-
- self.write(cr, uid, [task.id], {'state': 'open'})
+ }, context=context)
+ self.write(cr, uid, [task.id], {'state': 'open'}, context=context)
return True
- def do_cancel(self, cr, uid, ids, *args):
+ def do_cancel(self, cr, uid, ids, context={}):
request = self.pool.get('res.request')
- tasks = self.browse(cr, uid, ids)
+ tasks = self.browse(cr, uid, ids, context=context)
+ self._check_child_task(cr, uid, ids, context=context)
for task in tasks:
project = task.project_id
if project.warn_manager and project.user_id and (project.user_id.id != uid):
@@ -654,25 +666,25 @@ class task(osv.osv):
'ref_partner_id': task.partner_id.id,
'ref_doc1': 'project.task,%d' % task.id,
'ref_doc2': 'project.project,%d' % project.id,
- })
+ }, context=context)
message = _("The task '%s' is cancelled.") % (task.name,)
self.log(cr, uid, task.id, message)
- self.write(cr, uid, [task.id], {'state': 'cancelled', 'remaining_hours':0.0})
+ self.write(cr, uid, [task.id], {'state': 'cancelled', 'remaining_hours':0.0}, context=context)
return True
- def do_open(self, cr, uid, ids, *args):
- tasks= self.browse(cr,uid,ids)
+ def do_open(self, cr, uid, ids, context={}):
+ tasks= self.browse(cr, uid, ids, context=context)
for t in tasks:
data = {'state': 'open'}
if not t.date_start:
data['date_start'] = time.strftime('%Y-%m-%d %H:%M:%S')
- self.write(cr, uid, [t.id], data)
+ self.write(cr, uid, [t.id], data, context=context)
message = _("The task '%s' is opened.") % (t.name,)
self.log(cr, uid, t.id, message)
return True
- def do_draft(self, cr, uid, ids, *args):
- self.write(cr, uid, ids, {'state': 'draft'})
+ def do_draft(self, cr, uid, ids, context={}):
+ self.write(cr, uid, ids, {'state': 'draft'}, context=context)
return True
def do_delegate(self, cr, uid, task_id, delegate_data={}, context=None):
@@ -707,8 +719,8 @@ class task(osv.osv):
self.log(cr, uid, task.id, message)
return True
- def do_pending(self, cr, uid, ids, *args):
- self.write(cr, uid, ids, {'state': 'pending'})
+ def do_pending(self, cr, uid, ids, context={}):
+ self.write(cr, uid, ids, {'state': 'pending'}, context=context)
for (id, name) in self.name_get(cr, uid, ids):
message = _("The task '%s' is pending.") % name
self.log(cr, uid, id, message)
@@ -736,13 +748,19 @@ class task(osv.osv):
index = sorted_types.index(typeid)
self.write(cr, uid, task.id, {'type_id': sorted_types[index+1]})
return True
-
+
def next_type(self, cr, uid, ids, *args):
return self._change_type(cr, uid, ids, True, *args)
def prev_type(self, cr, uid, ids, *args):
return self._change_type(cr, uid, ids, False, *args)
-
+
+ def unlink(self, cr, uid, ids, context=None):
+ if context == None:
+ context = {}
+ self._check_child_task(cr, uid, ids, context=context)
+ res = super(task, self).unlink(cr, uid, ids, context)
+ return res
task()
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 5faa0090a15..0f53aff7ed4 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -369,7 +369,7 @@
gantt
-
+
diff --git a/addons/project/wizard/project_task_close.py b/addons/project/wizard/project_task_close.py
index 97e8e4730c2..010bba9e52b 100644
--- a/addons/project/wizard/project_task_close.py
+++ b/addons/project/wizard/project_task_close.py
@@ -115,7 +115,7 @@ class project_task_close(osv.osv_memory):
mail_id = tools.email_send(from_adr, to_adr, subject, tools.ustr(body), email_bcc=[from_adr])
if not mail_id:
raise osv.except_osv(_('Error'), _("Couldn't send mail! Check the email ids and smtp configuration settings"))
- return {}
+ return {'type': 'ir.actions.act_window_close'}
project_task_close()
diff --git a/addons/project/wizard/project_task_delegate.py b/addons/project/wizard/project_task_delegate.py
index cffdf2f9ef9..eaf5dea3084 100644
--- a/addons/project/wizard/project_task_delegate.py
+++ b/addons/project/wizard/project_task_delegate.py
@@ -108,6 +108,6 @@ class project_task_delegate(osv.osv_memory):
delegate_data['user_id'] = delegate_data['user_id'][0]
delegate_data['name'] = tools.ustr(delegate_data['name'])
task_pool.do_delegate(cr, uid, task_id, delegate_data, context=context)
- return {}
+ return {'type': 'ir.actions.act_window_close'}
project_task_delegate()
diff --git a/addons/project/wizard/project_task_reevaluate.py b/addons/project/wizard/project_task_reevaluate.py
index e4e2fab66e3..d627ffa4408 100644
--- a/addons/project/wizard/project_task_reevaluate.py
+++ b/addons/project/wizard/project_task_reevaluate.py
@@ -79,5 +79,5 @@ class project_task_reevaluate(osv.osv_memory):
task_pool.write(cr, uid, task_id, {'remaining_hours': data.remaining_hours})
if context.get('button_reactivate', False):
task_pool.do_reopen(cr, uid, [task_id], context=context)
- return {}
+ return {'type': 'ir.actions.act_window_close'}
project_task_reevaluate()
diff --git a/addons/project_issue/i18n/zh_CN.po b/addons/project_issue/i18n/zh_CN.po
new file mode 100644
index 00000000000..1c41a92d2f9
--- /dev/null
+++ b/addons/project_issue/i18n/zh_CN.po
@@ -0,0 +1,972 @@
+# Chinese (Simplified) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-30 11:51+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Simplified) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-07-01 04:54+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: project_issue
+#: field:project.issue.report,delay_open:0
+msgid "Avg. Delay to Open"
+msgstr "距开始处理"
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Group By..."
+msgstr "分组..."
+
+#. module: project_issue
+#: field:project.issue,working_hours_open:0
+msgid "Working Hours to Open the Issue"
+msgstr "据开始处理小时数"
+
+#. module: project_issue
+#: constraint:project.project:0
+msgid "Error! project start-date must be lower then project end-date."
+msgstr "错误!项目的开始日期必须小于项目的结束日期"
+
+#. module: project_issue
+#: field:project.issue,date_open:0
+msgid "Opened"
+msgstr "已开启"
+
+#. module: project_issue
+#: field:project.issue.report,opening_date:0
+msgid "Date of Opening"
+msgstr "距开始日期天数"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "March"
+msgstr "三月"
+
+#. module: project_issue
+#: field:project.issue,progress:0
+msgid "Progress (%)"
+msgstr "进度(%)"
+
+#. module: project_issue
+#: field:project.issue,company_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,company_id:0
+msgid "Company"
+msgstr "公司"
+
+#. module: project_issue
+#: field:project.issue,email_cc:0
+msgid "Watchers Emails"
+msgstr "关注者的电子邮件"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Close Working hours"
+msgstr "距处理结束小时数"
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_issue_version
+msgid "project.issue.version"
+msgstr "project.issue.version"
+
+#. module: project_issue
+#: field:project.issue,day_open:0
+msgid "Days to Open"
+msgstr "距开始日期"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:360
+#, python-format
+msgid ""
+"You cannot escalate this issue.\n"
+"The relevant Project has not configured the Escalation Project!"
+msgstr ""
+"不能升级此缺陷。\n"
+"所属项目没有配置相关项目。"
+
+#. module: project_issue
+#: constraint:project.project:0
+msgid "Error! You cannot assign escalation to the same project!"
+msgstr "不能升级到相同的项目"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Date Closed"
+msgstr "结束日期"
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,day:0
+msgid "Day"
+msgstr "天"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Add Internal Note"
+msgstr "添加内部备注"
+
+#. module: project_issue
+#: field:project.issue,task_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,task_id:0
+msgid "Task"
+msgstr "任务"
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Issues By Stage"
+msgstr "按状态查看缺陷"
+
+#. module: project_issue
+#: field:project.issue,partner_mobile:0
+msgid "Mobile"
+msgstr "手机"
+
+#. module: project_issue
+#: field:project.issue,message_ids:0
+msgid "Messages"
+msgstr "消息"
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_project
+#: view:project.issue:0
+#: field:project.issue,project_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,project_id:0
+msgid "Project"
+msgstr "项目"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_view_my_open_project_issue_tree
+msgid "My Open Project issues"
+msgstr "我的未处理缺陷"
+
+#. module: project_issue
+#: selection:project.issue,state:0
+#: selection:project.issue.report,state:0
+msgid "Cancelled"
+msgstr "已取消"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:360
+#, python-format
+msgid "Warning !"
+msgstr "警告!"
+
+#. module: project_issue
+#: field:project.issue.report,date_closed:0
+msgid "Date of Closing"
+msgstr "结束日期"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Search"
+msgstr "缺陷列表"
+
+#. module: project_issue
+#: field:project.issue.report,working_hours_open:0
+msgid "Avg. Working Hours to Open"
+msgstr "距开始日期小时数"
+
+#. module: project_issue
+#: field:project.issue,date_action_next:0
+msgid "Next Action"
+msgstr "下一动作"
+
+#. module: project_issue
+#: help:project.project,project_escalation_id:0
+msgid ""
+"If any issue is escalated from the current Project, it will be listed under "
+"the project selected here."
+msgstr "如果当前项目的缺陷被提升,则这个缺陷会归属于这里输入的项目"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Extra Info"
+msgstr "附加信息"
+
+#. module: project_issue
+#: model:ir.actions.act_window,help:project_issue.action_project_issue_report
+msgid ""
+"This report on the project issues allows you to analyse the quality of your "
+"support or after-sales services. You can track the issues per age. You can "
+"analyse the time required to open or close an issue, the number of email to "
+"exchange and the time spent on average by issues."
+msgstr "缺陷报表用于分析你的支持或售后服务的数量。报表自动分页。可以分析开始处理或关闭一个缺陷需要的时间,邮件的数量和处理缺陷的平均时间。"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,partner_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,partner_id:0
+msgid "Partner"
+msgstr "业务伙伴"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:473
+#, python-format
+msgid " (copy)"
+msgstr " (copy)"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Previous"
+msgstr "上一个"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Statistics"
+msgstr "统计信息"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Convert To Task"
+msgstr "转为任务"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_report
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_report_tree
+#: view:project.issue.report:0
+msgid "Issues Analysis"
+msgstr "缺陷分析"
+
+#. module: project_issue
+#: field:project.issue.version,name:0
+msgid "Version Number"
+msgstr "版本号"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Next"
+msgstr "下一个"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,priority:0
+#: view:project.issue.report:0
+#: field:project.issue.report,priority:0
+msgid "Priority"
+msgstr "优先级"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Send New Email"
+msgstr "发送新电子邮件"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,version_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,version_id:0
+msgid "Version"
+msgstr "版本"
+
+#. module: project_issue
+#: model:ir.module.module,shortdesc:project_issue.module_meta_information
+msgid "Issue Management in Project Management"
+msgstr "项目管理中的缺陷管理"
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Pending Issues"
+msgstr "暂停的缺陷"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Open Working Hours"
+msgstr "距开始处理小时数"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.project_issue_categ_action
+msgid "Issue Categories"
+msgstr "缺陷类别"
+
+#. module: project_issue
+#: field:project.issue,email_from:0
+msgid "Email"
+msgstr "电子邮件"
+
+#. module: project_issue
+#: field:project.issue,canal_id:0
+#: field:project.issue.report,canal_id:0
+msgid "Channel"
+msgstr "渠道"
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Lowest"
+msgstr "最低"
+
+#. module: project_issue
+#: field:project.issue,create_date:0
+#: field:project.issue.report,creation_date:0
+msgid "Creation Date"
+msgstr "创建日期"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.project_issue_version_action
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_version_act
+msgid "Versions"
+msgstr "版本"
+
+#. module: project_issue
+#: field:project.issue,partner_phone:0
+msgid "Phone"
+msgstr "电话"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Reset to Draft"
+msgstr "重置为草稿"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Today"
+msgstr "今天"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.open_board_project_issue
+#: model:ir.ui.menu,name:project_issue.menu_deshboard_project_issue
+msgid "Project Issue Dashboard"
+msgstr "缺陷控制台"
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Done"
+msgstr "已完成"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "July"
+msgstr "七月"
+
+#. module: project_issue
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_category_act
+msgid "Categories"
+msgstr "类别"
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+#: field:project.issue.report,type_id:0
+msgid "Stage"
+msgstr "阶段"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "History Information"
+msgstr "历史信息"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_view_current_project_issue_tree
+#: model:ir.actions.act_window,name:project_issue.action_view_pending_project_issue_tree
+msgid "Project issues"
+msgstr "缺陷"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Communication & History"
+msgstr "沟通&日志"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "My Open Project Issue"
+msgstr "我未处理的缺陷"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_view_my_project_issue_tree
+msgid "My Project Issues"
+msgstr "我的缺陷清单"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Contact"
+msgstr "联系方式"
+
+#. module: project_issue
+#: view:board.board:0
+msgid "My Board"
+msgstr "我的控制台"
+
+#. module: project_issue
+#: view:board.board:0
+msgid "My Issues"
+msgstr "我的缺陷清单"
+
+#. module: project_issue
+#: help:project.issue,canal_id:0
+msgid ""
+"The channels represent the different communication modes available with the "
+"customer. With each commercial opportunity, you can indicate the canall "
+"which is this opportunity source."
+msgstr "渠道是不同的接触客户的方式。每个商机都要指定来源的渠道。"
+
+#. module: project_issue
+#: model:ir.actions.act_window,help:project_issue.project_issue_version_action
+msgid ""
+"You can use the issues tracker in OpenERP to handle bugs in the software "
+"development project, to handle claims in after-sales services, etc. Define "
+"here the different versions of your products on which you can work on issues."
+msgstr "可以用缺陷跟踪来管理软件开发中的Bug或售后的产品缺陷等。这里输入您管理缺陷的产品的不同版本。"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:283
+#, python-format
+msgid "Tasks"
+msgstr "任务"
+
+#. module: project_issue
+#: field:project.issue.report,nbr:0
+msgid "# of Issues"
+msgstr "缺陷编号"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "September"
+msgstr "九月"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "December"
+msgstr "十二月"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Tree"
+msgstr "缺陷列表"
+
+#. module: project_issue
+#: help:project.issue,assigned_to:0
+msgid "This is the current user to whom the related task have been assigned"
+msgstr "这是这个任务现在的负责人"
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+#: field:project.issue.report,month:0
+msgid "Month"
+msgstr "月份"
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_issue_report
+msgid "project.issue.report"
+msgstr "project.issue.report"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:362
+#: view:project.issue:0
+#, python-format
+msgid "Escalate"
+msgstr "提升"
+
+#. module: project_issue
+#: model:crm.case.categ,name:project_issue.feature_request_categ
+msgid "Feature Requests"
+msgstr "功能请求"
+
+#. module: project_issue
+#: field:project.issue,write_date:0
+msgid "Update Date"
+msgstr "更新日期"
+
+#. module: project_issue
+#: model:ir.module.module,description:project_issue.module_meta_information
+msgid ""
+"\n"
+" This module provide Issues/Bugs Management in Project\n"
+" "
+msgstr ""
+"\n"
+" 这个模块在项目管理中增加了缺陷管理\n"
+" "
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,categ_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,categ_id:0
+msgid "Category"
+msgstr "类别"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "#Number of Project Issues"
+msgstr "缺陷编号"
+
+#. module: project_issue
+#: help:project.issue,email_cc:0
+msgid ""
+"These email addresses will be added to the CC field of all inbound and "
+"outbound emails for this record before being sent. Separate multiple email "
+"addresses with a comma"
+msgstr "这些邮箱地址将添加到所有接收的发送邮件的抄送字段,用逗号分隔多个邮件地址。"
+
+#. module: project_issue
+#: selection:project.issue,state:0
+#: selection:project.issue.report,state:0
+msgid "Draft"
+msgstr "草稿"
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Low"
+msgstr "最低"
+
+#. module: project_issue
+#: field:project.issue,date_closed:0
+#: selection:project.issue,state:0
+#: selection:project.issue.report,state:0
+msgid "Closed"
+msgstr "已结束"
+
+#. module: project_issue
+#: field:project.issue.report,delay_close:0
+msgid "Avg. Delay to Close"
+msgstr "平均耗用天数"
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue,state:0
+#: view:project.issue.report:0
+#: selection:project.issue.report,state:0
+msgid "Pending"
+msgstr "等待中"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Status"
+msgstr "状态"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "#Project Issues"
+msgstr "缺陷编号"
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Current Issues"
+msgstr "当前缺陷"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "August"
+msgstr "八月"
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Normal"
+msgstr "一般"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Global CC"
+msgstr "完整抄送"
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue,state:0
+msgid "To Do"
+msgstr "待办"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "June"
+msgstr "六月"
+
+#. module: project_issue
+#: field:project.issue,day_close:0
+msgid "Days to Close"
+msgstr "剩余天数"
+
+#. module: project_issue
+#: field:project.issue,active:0
+#: field:project.issue.version,active:0
+msgid "Active"
+msgstr "生效"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "November"
+msgstr "十一月"
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Extended Filters..."
+msgstr "增加筛选条件"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Search"
+msgstr "搜索"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "October"
+msgstr "十月"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "January"
+msgstr "一月"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature Tracker Tree"
+msgstr "缺陷列表"
+
+#. module: project_issue
+#: model:crm.case.categ,name:project_issue.bug_categ
+msgid "Bugs"
+msgstr ""
+
+#. module: project_issue
+#: view:board.board:0
+msgid "Issues By State"
+msgstr "按状态列出缺陷"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,date:0
+msgid "Date"
+msgstr "日期"
+
+#. module: project_issue
+#: field:project.issue,partner_address_id:0
+msgid "Partner Contact"
+msgstr "业务伙伴联系人"
+
+#. module: project_issue
+#: field:project.issue,type_id:0
+msgid "Resolution"
+msgstr "解决方案"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "History"
+msgstr "历史记录"
+
+#. module: project_issue
+#: field:project.issue,assigned_to:0
+#: view:project.issue.report:0
+#: field:project.issue.report,assigned_to:0
+msgid "Assigned to"
+msgstr "指派到"
+
+#. module: project_issue
+#: field:project.project,reply_to:0
+msgid "Reply-To Email Address"
+msgstr "回复给邮件地址"
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Highest"
+msgstr "最高"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Attachments"
+msgstr "附件"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Form"
+msgstr "缺陷"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,state:0
+#: view:project.issue.report:0
+#: field:project.issue.report,state:0
+msgid "State"
+msgstr "状态"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "General"
+msgstr "一般"
+
+#. module: project_issue
+#: view:project.issue.version:0
+msgid "Issue Version"
+msgstr "缺陷版本"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Communication"
+msgstr "沟通"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Cancel"
+msgstr "取消(&C)"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Close"
+msgstr "结束"
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue.report,state:0
+msgid "Open"
+msgstr "待办"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.act_project_project_2_project_issue_all
+#: model:ir.actions.act_window,name:project_issue.project_issue_categ_act0
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_track
+#: view:project.issue:0
+msgid "Issues"
+msgstr "缺陷"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_stage
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_state
+#: model:ir.model,name:project_issue.model_project_issue
+#: model:ir.ui.menu,name:project_issue.menu_project_confi
+#: view:project.issue.report:0
+msgid "Project Issue"
+msgstr "缺陷"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,user_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,user_id:0
+msgid "Responsible"
+msgstr "负责人"
+
+#. module: project_issue
+#: help:project.issue,progress:0
+msgid "Computed as: Time Spent / Total Time."
+msgstr "计算方式:花费时间 / 总时间"
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Current"
+msgstr "当前的"
+
+#. module: project_issue
+#: model:ir.actions.act_window,help:project_issue.project_issue_categ_act0
+msgid ""
+"Issues such as system bugs, customer complaints, and material breakdowns are "
+"collected here. You can define the stages assigned when solving the project "
+"issue (analysis, development, done). With the mailgateway module, issues can "
+"be integrated through an email address (example: support@mycompany.com)"
+msgstr ""
+"缺陷(如系统故障、客户投诉、材料破损)在这里搜集。可以输入缺陷处理的阶段(分析原因、正在处理、已完成)。安装了mailgateway模块后,缺陷管理可以与"
+"特定邮件集成(如:support@mycompany.com)"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Details"
+msgstr "详细信息"
+
+#. module: project_issue
+#: help:project.issue,email_from:0
+msgid "These people will receive email."
+msgstr "这些人将收到电子邮件。"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Reply"
+msgstr "回复"
+
+#. module: project_issue
+#: field:project.issue,name:0
+msgid "Issue"
+msgstr "缺陷"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature Tracker Search"
+msgstr "缺陷列表"
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,description:0
+msgid "Description"
+msgstr "描述"
+
+#. module: project_issue
+#: field:project.issue,section_id:0
+msgid "Sales Team"
+msgstr "销售团队"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "May"
+msgstr "五月"
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_report
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_report_tree
+msgid "Issue Analysis"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Sale Team "
+msgstr "销售团队 "
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,email:0
+msgid "# Emails"
+msgstr "电子邮件"
+
+#. module: project_issue
+#: field:project.issue,partner_name:0
+msgid "Employee's Name"
+msgstr "员工姓名"
+
+#. module: project_issue
+#: help:project.issue,state:0
+msgid ""
+"The state is set to 'Draft', when a case is created. "
+" \n"
+"If the case is in progress the state is set to 'Open'. "
+" \n"
+"When the case is over, the state is set to 'Done'. "
+" \n"
+"If the case needs to be reviewed then the state is set to 'Pending'."
+msgstr ""
+"当一个业务创建时状态设为'草稿'\n"
+"如果业务正在处理状态设为'开启'\n"
+"当业务结束状态设为'完成'\n"
+"如果业务需要审查状态设为'待定'"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "February"
+msgstr "二月"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:61
+#, python-format
+msgid "Issue '%s' has been opened."
+msgstr "缺陷 ‘%s' 已新建"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature description"
+msgstr "功能描述"
+
+#. module: project_issue
+#: field:project.project,project_escalation_id:0
+msgid "Project Escalation"
+msgstr "提升"
+
+#. module: project_issue
+#: help:project.issue,section_id:0
+msgid ""
+"Sales team to which Case belongs to. Define "
+"Responsible user and Email account for mail gateway."
+msgstr "这个业务所属的销售团队。输入团队负责人和邮箱。"
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Month-1"
+msgstr "上月"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:76
+#, python-format
+msgid "Issue '%s' has been closed."
+msgstr "缺陷 '%s' 已处理"
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "April"
+msgstr "四月"
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "References"
+msgstr "参考资料"
+
+#. module: project_issue
+#: field:project.issue,working_hours_close:0
+msgid "Working Hours to Close the Issue"
+msgstr "剩余工时"
+
+#. module: project_issue
+#: field:project.issue,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:377
+#, python-format
+msgid "No Title"
+msgstr "无标题"
+
+#. module: project_issue
+#: help:project.issue.report,delay_close:0
+#: help:project.issue.report,delay_open:0
+msgid "Number of Days to close the project issue"
+msgstr "剩余天数"
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,section_id:0
+msgid "Sale Team"
+msgstr "销售团队"
+
+#. module: project_issue
+#: field:project.issue.report,working_hours_close:0
+msgid "Avg. Working Hours to Close"
+msgstr "平均剩余工时"
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "High"
+msgstr "高"
+
+#. module: project_issue
+#: field:project.issue,date_deadline:0
+msgid "Deadline"
+msgstr "截止日期"
+
+#. module: project_issue
+#: field:project.issue,date_action_last:0
+msgid "Last Action"
+msgstr "最近动作"
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,name:0
+msgid "Year"
+msgstr "年"
+
+#. module: project_issue
+#: field:project.issue,duration:0
+msgid "Duration"
+msgstr "时长"
+
+#. module: project_issue
+#: view:board.board:0
+msgid "My Open Issues by Creation Date"
+msgstr "未处理的缺陷(按创建日期)"
+
+#~ msgid "Maintenance"
+#~ msgstr "维护"
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index a8a32847243..b6032241a8e 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -205,18 +205,18 @@ class project_issue(crm.crm_case, osv.osv):
'duration': fields.float('Duration'),
'task_id': fields.many2one('project.task', 'Task', domain="[('project_id','=',project_id)]"),
'day_open': fields.function(_compute_day, string='Days to Open', \
- method=True, multi='compute_day', type="float", store=True),
+ multi='compute_day', type="float", store=True),
'day_close': fields.function(_compute_day, string='Days to Close', \
- method=True, multi='compute_day', type="float", store=True),
+ multi='compute_day', type="float", store=True),
'assigned_to': fields.many2one('res.users', 'Assigned to', required=False, select=1),
'working_hours_open': fields.function(_compute_day, string='Working Hours to Open the Issue', \
- method=True, multi='compute_day', type="float", store=True),
+ multi='compute_day', type="float", store=True),
'working_hours_close': fields.function(_compute_day, string='Working Hours to Close the Issue', \
- method=True, multi='compute_day', type="float", store=True),
+ multi='compute_day', type="float", store=True),
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
'date_action_last': fields.datetime('Last Action', readonly=1),
'date_action_next': fields.datetime('Next Action', readonly=1),
- 'progress': fields.function(_hours_get, method=True, string='Progress (%)', multi='hours', group_operator="avg", help="Computed as: Time Spent / Total Time.",
+ 'progress': fields.function(_hours_get, string='Progress (%)', multi='hours', group_operator="avg", help="Computed as: Time Spent / Total Time.",
store = {
'project.issue': (lambda self, cr, uid, ids, c={}: ids, ['task_id'], 10),
'project.task': (_get_issue_task, ['progress'], 10),
diff --git a/addons/project_issue_sheet/i18n/fi.po b/addons/project_issue_sheet/i18n/fi.po
new file mode 100644
index 00000000000..3f49470827f
--- /dev/null
+++ b/addons/project_issue_sheet/i18n/fi.po
@@ -0,0 +1,78 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-28 09:02+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-29 04:43+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: project_issue_sheet
+#: model:ir.module.module,description:project_issue_sheet.module_meta_information
+msgid ""
+"\n"
+" This module adds the Timesheet support for the "
+"Issues/Bugs Management in Project\n"
+" "
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_account_analytic_line
+msgid "Analytic Line"
+msgstr "Analyyttinen rivi"
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_project_issue
+msgid "Project Issue"
+msgstr "Projekti tapahtuma"
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_hr_analytic_timesheet
+msgid "Timesheet Line"
+msgstr "Tuntilistan rivi"
+
+#. module: project_issue_sheet
+#: view:project.issue:0
+msgid "Timesheet"
+msgstr "Tuntilista"
+
+#. module: project_issue_sheet
+#: field:project.issue,analytic_account_id:0
+msgid "Analytic Account"
+msgstr "Analyyttinen tili"
+
+#. module: project_issue_sheet
+#: view:project.issue:0
+msgid "Worklogs"
+msgstr "Työlokit"
+
+#. module: project_issue_sheet
+#: field:account.analytic.line,create_date:0
+msgid "Create Date"
+msgstr "Luontipäivä"
+
+#. module: project_issue_sheet
+#: field:project.issue,timesheet_ids:0
+msgid "Timesheets"
+msgstr "Tuntilistat"
+
+#. module: project_issue_sheet
+#: model:ir.module.module,shortdesc:project_issue_sheet.module_meta_information
+msgid "Add the Timesheet support for Issue Management in Project Management"
+msgstr ""
+"Lisää tuntilistan tuen tapaustenhallintaan projektinhallintaohjelmistossa"
+
+#. module: project_issue_sheet
+#: field:hr.analytic.timesheet,issue_id:0
+msgid "Issue"
+msgstr "Tapaus"
diff --git a/addons/project_issue_sheet/i18n/zh_CN.po b/addons/project_issue_sheet/i18n/zh_CN.po
new file mode 100644
index 00000000000..eda41afa445
--- /dev/null
+++ b/addons/project_issue_sheet/i18n/zh_CN.po
@@ -0,0 +1,80 @@
+# Chinese (Simplified) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-07-02 03:48+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Simplified) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-07-03 04:47+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: project_issue_sheet
+#: model:ir.module.module,description:project_issue_sheet.module_meta_information
+msgid ""
+"\n"
+" This module adds the Timesheet support for the "
+"Issues/Bugs Management in Project\n"
+" "
+msgstr ""
+"\n"
+" 此模块把缺陷管理和计工单集成在一起了\n"
+" "
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_account_analytic_line
+msgid "Analytic Line"
+msgstr "辅助核算明细"
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_project_issue
+msgid "Project Issue"
+msgstr "缺陷"
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_hr_analytic_timesheet
+msgid "Timesheet Line"
+msgstr "计工单明细"
+
+#. module: project_issue_sheet
+#: view:project.issue:0
+msgid "Timesheet"
+msgstr "计工单"
+
+#. module: project_issue_sheet
+#: field:project.issue,analytic_account_id:0
+msgid "Analytic Account"
+msgstr "辅助核算项目"
+
+#. module: project_issue_sheet
+#: view:project.issue:0
+msgid "Worklogs"
+msgstr "工作记录"
+
+#. module: project_issue_sheet
+#: field:account.analytic.line,create_date:0
+msgid "Create Date"
+msgstr "创建日期"
+
+#. module: project_issue_sheet
+#: field:project.issue,timesheet_ids:0
+msgid "Timesheets"
+msgstr "计工单"
+
+#. module: project_issue_sheet
+#: model:ir.module.module,shortdesc:project_issue_sheet.module_meta_information
+msgid "Add the Timesheet support for Issue Management in Project Management"
+msgstr "对缺陷管理增加了计工单支持"
+
+#. module: project_issue_sheet
+#: field:hr.analytic.timesheet,issue_id:0
+msgid "Issue"
+msgstr "缺陷"
diff --git a/addons/project_long_term/i18n/zh_CN.po b/addons/project_long_term/i18n/zh_CN.po
new file mode 100644
index 00000000000..65ebffc73c9
--- /dev/null
+++ b/addons/project_long_term/i18n/zh_CN.po
@@ -0,0 +1,599 @@
+# Chinese (Simplified) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-30 06:07+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Simplified) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-07-01 04:54+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: project_long_term
+#: model:ir.module.module,shortdesc:project_long_term.module_meta_information
+msgid "Long Term Project Management"
+msgstr "长期项目管理"
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+msgid "Compute Scheduling of Phases"
+msgstr "项目周期计算"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,next_phase_ids:0
+msgid "Next Phases"
+msgstr "下一阶段"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Project's Tasks"
+msgstr "项目任务"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_phases
+msgid "Phases"
+msgstr "阶段"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: view:project.resource.allocation:0
+msgid "Group By..."
+msgstr "分组..."
+
+#. module: project_long_term
+#: constraint:project.project:0
+msgid "Error! project start-date must be lower then project end-date."
+msgstr "错误!项目的开始日期必须小于项目的结束日期"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_resouce_allocation
+#: view:project.resource.allocation:0
+msgid "Resources Allocation"
+msgstr "资源分配"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Displaying settings"
+msgstr "显示设置"
+
+#. module: project_long_term
+#: field:project.compute.phases,target_project:0
+msgid "Schedule"
+msgstr "日程"
+
+#. module: project_long_term
+#: model:ir.module.module,description:project_long_term.module_meta_information
+msgid ""
+"\n"
+"\n"
+" Long Term Project management module that tracks planning, "
+"scheduling, resources allocation.\n"
+" Mainly used with Big project management.\n"
+" - Project Phases will be maintained by Manager of the project\n"
+" - Compute Phase Scheduling: Compute start date and end date of "
+"the phases which are in draft,open and pending state of the project given.\n"
+" If no project given then all the "
+"draft,open and pending state phases will be taken\n"
+" - Compute Task Scheduling: This works same as the scheduler "
+"button on project.phase. It takes the project as argument and computes all "
+"the open,draft and pending tasks\n"
+" - Schedule Tasks: All the tasks which are in draft,pending and "
+"open state are scheduled with taking the phase's start date\n"
+"\n"
+" "
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.task:0
+msgid "Error ! You cannot create recursive tasks."
+msgstr "错误!不能创建循环引用的任务"
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_resouce_allocation
+msgid "Resource Allocations"
+msgstr "资源分配"
+
+#. module: project_long_term
+#: constraint:project.project:0
+msgid "Error! You cannot assign escalation to the same project!"
+msgstr "不能升级到相同的项目"
+
+#. module: project_long_term
+#: code:addons/project_long_term/project_long_term.py:128
+#, python-format
+msgid "Day"
+msgstr "天"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_task
+msgid "Task"
+msgstr "任务"
+
+#. module: project_long_term
+#: selection:project.compute.phases,target_project:0
+msgid "Compute a Single Project"
+msgstr "计算单个项目"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,previous_phase_ids:0
+msgid "Previous Phases"
+msgstr "上一阶段"
+
+#. module: project_long_term
+#: help:project.phase,product_uom:0
+msgid "UoM (Unit of Measure) is the unit of measurement for Duration"
+msgstr "某个周期的计量单位"
+
+#. module: project_long_term
+#: help:project.phase,date_end:0
+msgid ""
+" It's computed by the scheduler according to the start date and the duration."
+msgstr " 这个日期是由开始日期和计划日数根据日历计算出来的。"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_project
+#: field:project.compute.phases,project_id:0
+#: field:project.compute.tasks,project_id:0
+#: view:project.phase:0
+#: field:project.phase,project_id:0
+#: view:project.resource.allocation:0
+#: field:project.resource.allocation,project_id:0
+#: view:project.task:0
+msgid "Project"
+msgstr "项目"
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:50
+#, python-format
+msgid "Error!"
+msgstr "错误!"
+
+#. module: project_long_term
+#: selection:project.phase,state:0
+msgid "Cancelled"
+msgstr "已取消"
+
+#. module: project_long_term
+#: help:project.resource.allocation,date_end:0
+msgid "Ending Date"
+msgstr "结束日期"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Planning"
+msgstr "计划"
+
+#. module: project_long_term
+#: field:project.phase,constraint_date_end:0
+msgid "Deadline"
+msgstr "截止日期"
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "_Cancel"
+msgstr "取消(_C)"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.action_project_compute_phases
+#: model:ir.ui.menu,name:project_long_term.menu_compute_phase
+msgid "Compute Phase Scheduling"
+msgstr "计算阶段日程"
+
+#. module: project_long_term
+#: code:addons/project_long_term/project_long_term.py:190
+#, python-format
+msgid " (copy)"
+msgstr " (copy)"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: view:project.resource.allocation:0
+#: field:project.resource.allocation,useability:0
+msgid "Availability"
+msgstr "可用"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,state:0
+msgid "State"
+msgstr "状态"
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "C_ompute"
+msgstr "计算(_O)"
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+msgid "Compute Scheduling of phases for all or specified project"
+msgstr "针对所有或特定的一个项目计算阶段周期"
+
+#. module: project_long_term
+#: field:project.phase,product_uom:0
+msgid "Duration UoM"
+msgstr "时间段计量单位"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.action_project_compute_tasks
+#: model:ir.ui.menu,name:project_long_term.menu_compute_tasks
+msgid "Compute Task Scheduling"
+msgstr "计算项目日程"
+
+#. module: project_long_term
+#: field:project.phase,constraint_date_start:0
+msgid "Minimum Start Date"
+msgstr "最早开始时间"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_resource_allocation
+#: view:project.phase:0
+#: view:project.resource.allocation:0
+msgid "Project Resource Allocation"
+msgstr "项目资源分配"
+
+#. module: project_long_term
+#: view:project.compute.tasks:0
+msgid "Compute Scheduling of Task"
+msgstr "计算任务日程"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_resource
+#: model:ir.ui.menu,name:project_long_term.menu_pm_resources_project1
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource
+#: view:project.resource.allocation:0
+msgid "Resources"
+msgstr "资源"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,help:project_long_term.action_project_compute_phases
+msgid ""
+"To schedule phases of all or a specified project. It then open a gantt "
+"view.\n"
+"\t "
+msgstr ""
+"某个或所有项目的阶段日程。会显示一个甘特图。\n"
+"\t "
+
+#. module: project_long_term
+#: help:project.resource.allocation,date_start:0
+msgid "Starting Date"
+msgstr "开始日期"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.project_phase_task_list
+msgid "Related Tasks"
+msgstr "相关任务"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Dates"
+msgstr "日期"
+
+#. module: project_long_term
+#: help:project.resource.allocation,useability:0
+msgid ""
+"Availability of this resource for this project phase in percentage (=50%)"
+msgstr "这个资源在此项目阶段的可用性,用百分数表示"
+
+#. module: project_long_term
+#: help:project.phase,constraint_date_start:0
+msgid "force the phase to start after this date"
+msgstr "强制项目在此日期之后开始"
+
+#. module: project_long_term
+#: field:project.phase,task_ids:0
+msgid "Project Tasks"
+msgstr "项目任务列表"
+
+#. module: project_long_term
+#: field:project.phase,resource_ids:0
+msgid "Project Resources"
+msgstr "项目资源"
+
+#. module: project_long_term
+#: view:project.schedule.tasks:0
+msgid "_Ok"
+msgstr "确定(_O)"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Schedule and Display info"
+msgstr "日程和显示信息"
+
+#. module: project_long_term
+#: help:project.phase,date_start:0
+msgid ""
+"It's computed by the scheduler according the project date or the end date of "
+"the previous phase."
+msgstr "这个日期根据项目的开始日期或前一个阶段的结束日期结算而来"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Month"
+msgstr "月份"
+
+#. module: project_long_term
+#: constraint:project.phase:0
+msgid "Phase start-date must be lower than phase end-date."
+msgstr "阶段的开始日期必须早于项目的结束日期"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_schedule_tasks
+msgid "project.schedule.tasks"
+msgstr "project.schedule.tasks"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,help:project_long_term.act_project_phase
+msgid ""
+"A project can be split into the different phases. For each phase, you can "
+"define your resources allocation, describe different tasks and link your "
+"phase to previous and next phases, add date constraints for the automated "
+"scheduling. Use the long term planning in order to planify your available "
+"human resources, convert your phases into a series of tasks when you start "
+"working on the project."
+msgstr ""
+"项目能分成不同的阶段。可以为每个阶段分配资源,定义不同的任务并可以把各个阶段连起来,按日历自动计算计划日期。使用长期计划可以在项目的开始阶段管理人员可用性"
+"、划分每阶段的任务。"
+
+#. module: project_long_term
+#: field:project.phase,date_start:0
+#: field:project.resource.allocation,date_start:0
+msgid "Start Date"
+msgstr "开始日期"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Resource Allocation"
+msgstr "资源分配"
+
+#. module: project_long_term
+#: help:project.phase,constraint_date_end:0
+msgid "force the phase to finish before this date"
+msgstr "强制该阶段在此日期前完成"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Draft"
+msgstr "草稿"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Pending"
+msgstr "等待中"
+
+#. module: project_long_term
+#: field:project.resource.allocation,name:0
+msgid "unknown"
+msgstr "未知的"
+
+#. module: project_long_term
+#: field:project.resource.allocation,user_id:0
+msgid "User"
+msgstr "用户"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Task Detail"
+msgstr "任务细节"
+
+#. module: project_long_term
+#: help:project.project,resource_calendar_id:0
+msgid "Timetable working hours to adjust the gantt diagram report"
+msgstr "从时间表的工作时间来调整甘特图报表"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_compute_tasks
+msgid "Project Compute Tasks"
+msgstr "计算任务计划"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Constraints"
+msgstr "限制"
+
+#. module: project_long_term
+#: help:project.phase,sequence:0
+msgid "Gives the sequence order when displaying a list of phases."
+msgstr "输入序号用于阶段列表排序"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_phase
+#: model:ir.actions.act_window,name:project_long_term.act_project_phase_list
+#: model:ir.ui.menu,name:project_long_term.menu_project_phase
+#: model:ir.ui.menu,name:project_long_term.menu_project_phase_list
+#: view:project.phase:0
+#: field:project.project,phase_ids:0
+msgid "Project Phases"
+msgstr "项目阶段"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Done"
+msgstr "已完成"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Cancel"
+msgstr "取消(&C)"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "In Progress"
+msgstr "进行中"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Remaining Hours"
+msgstr "剩余小时数"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,responsible_id:0
+msgid "Responsible"
+msgstr "负责人"
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar
+#: field:project.project,resource_calendar_id:0
+msgid "Working Time"
+msgstr "工作的时间"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Current"
+msgstr "当前的"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Start Phase"
+msgstr "阶段开始"
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:50
+#, python-format
+msgid "Please Specify Project to be schedule"
+msgstr "请输入要排计划的项目"
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,total_hours:0
+msgid "Total Hours"
+msgstr "总小时数"
+
+#. module: project_long_term
+#: view:project.schedule.tasks:0
+msgid "Task Scheduling completed successfully."
+msgstr "任务日程排列完毕"
+
+#. module: project_long_term
+#: view:project.compute.tasks:0
+msgid "Compute Scheduling of Task for specified project."
+msgstr "为某个特定的项目计算日程"
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+msgid "Phase"
+msgstr "阶段"
+
+#. module: project_long_term
+#: help:project.phase,state:0
+msgid ""
+"If the phase is created the state 'Draft'.\n"
+" If the phase is started, the state becomes 'In Progress'.\n"
+" If review is needed the phase is in 'Pending' state. "
+" \n"
+" If the phase is over, the states is set to 'Done'."
+msgstr ""
+"新建的阶段状态是草稿\n"
+"开始后的阶段状态是正在进行中\n"
+"如果需要复核则状态为等待中\n"
+"已结束的阶段状态是完成"
+
+#. module: project_long_term
+#: field:project.phase,date_end:0
+#: field:project.resource.allocation,date_end:0
+msgid "End Date"
+msgstr "结束日期"
+
+#. module: project_long_term
+#: view:project.resource.allocation:0
+#: field:project.resource.allocation,resource_id:0
+msgid "Resource"
+msgstr "资源"
+
+#. module: project_long_term
+#: field:project.phase,name:0
+msgid "Name"
+msgstr "名称"
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Tasks Details"
+msgstr "任务详情"
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar
+msgid "Working Period"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_resource_resource
+msgid "Resource Detail"
+msgstr "资源明细"
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_phase_schedule
+msgid "Scheduling"
+msgstr "调度"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_phase
+#: view:project.phase:0
+#: field:project.resource.allocation,phase_id:0
+#: view:project.task:0
+#: field:project.task,phase_id:0
+msgid "Project Phase"
+msgstr "项目阶段"
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_compute_phases
+msgid "Project Compute Phases"
+msgstr "计算项目阶段"
+
+#. module: project_long_term
+#: field:project.schedule.tasks,msg:0
+msgid "Message"
+msgstr "消息"
+
+#. module: project_long_term
+#: constraint:project.phase:0
+msgid "Loops in phases not allowed"
+msgstr "阶段间不能递归引用"
+
+#. module: project_long_term
+#: field:project.phase,sequence:0
+msgid "Sequence"
+msgstr "序号"
+
+#. module: project_long_term
+#: selection:project.compute.phases,target_project:0
+msgid "Compute All Projects"
+msgstr "计算所有项目"
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar_leaves
+msgid "Resource Leaves"
+msgstr "成员请假"
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.action_project_schedule_tasks
+#: view:project.phase:0
+#: view:project.schedule.tasks:0
+msgid "Schedule Tasks"
+msgstr "任务日程"
+
+#. module: project_long_term
+#: help:project.phase,duration:0
+msgid "By default in days"
+msgstr "默认按天"
+
+#. module: project_long_term
+#: field:project.phase,duration:0
+msgid "Duration"
+msgstr "时长"
diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py
index 779c7f6d062..6c5ef7890bf 100644
--- a/addons/project_long_term/project_long_term.py
+++ b/addons/project_long_term/project_long_term.py
@@ -23,6 +23,7 @@ from datetime import datetime
from tools.translate import _
from osv import fields, osv
from resource.faces import task as Task
+from operator import itemgetter
class project_phase(osv.osv):
_name = "project.phase"
@@ -119,7 +120,7 @@ class project_phase(osv.osv):
'state': fields.selection([('draft', 'Draft'), ('open', 'In Progress'), ('pending', 'Pending'), ('cancelled', 'Cancelled'), ('done', 'Done')], 'State', readonly=True, required=True,
help='If the phase is created the state \'Draft\'.\n If the phase is started, the state becomes \'In Progress\'.\n If review is needed the phase is in \'Pending\' state.\
\n If the phase is over, the states is set to \'Done\'.'),
- 'total_hours': fields.function(_compute, method=True, string='Total Hours'),
+ 'total_hours': fields.function(_compute, string='Total Hours'),
}
_defaults = {
'responsible_id': lambda obj,cr,uid,context: uid,
@@ -398,7 +399,7 @@ class project_resource_allocation(osv.osv):
res[allocation.id] = name
return res
_columns = {
- 'name': fields.function(get_name, method=True, type='char', size=256),
+ 'name': fields.function(get_name, type='char', size=256),
'resource_id': fields.many2one('resource.resource', 'Resource', required=True),
'phase_id': fields.many2one('project.phase', 'Project Phase', ondelete='cascade', required=True),
'project_id': fields.related('phase_id', 'project_id', type='many2one', relation="project.project", string='Project', store=True),
@@ -729,7 +730,7 @@ class project_task(osv.osv):
if context is None:
context = {}
task = self.browse(cr, uid, task_id, context=context)
- duration = str(task.planned_hours )+ 'H'
+ duration = str(task.planned_hours)+ 'H'
str_resource = False
parent = task.parent_ids
if task.phase_id.resource_ids:
@@ -743,10 +744,12 @@ class project_task(osv.osv):
effort = \'%s\'
resource = %s
'''%(task.id, task.name, duration, str_resource)
- if parent:
+ if task.child_ids:
+ seq = [[child.planned_hours, child.id] for child in task.child_ids]
+ seq.sort(key=itemgetter(0))
s +='''
start = up.Task_%s.end
-'''%(parent[0].id)
+ '''%(seq[-1][1])
else:
s = '''
def Task_%s():
@@ -754,10 +757,12 @@ class project_task(osv.osv):
effort = \'%s\'
resource = %s
'''%(task.id, task.name, duration, str_resource)
- if parent:
+ if task.child_ids:
+ seq = [[child.planned_hours, child.id] for child in task.child_ids]
+ seq.sort(key=itemgetter(0))
s +='''
start = up.Task_%s.end
-'''%(parent[0].id)
+'''%(seq[-1][1])
s += '\n'
return s
project_task()
diff --git a/addons/project_mailgate/i18n/fi.po b/addons/project_mailgate/i18n/fi.po
new file mode 100644
index 00000000000..d7b563f2f4b
--- /dev/null
+++ b/addons/project_mailgate/i18n/fi.po
@@ -0,0 +1,100 @@
+# Finnish translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-22 10:01+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Finnish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-23 04:56+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: project_mailgate
+#: view:project.task:0
+msgid "History Information"
+msgstr "Historiatiedot"
+
+#. module: project_mailgate
+#: model:ir.model,name:project_mailgate.model_project_task
+msgid "Task"
+msgstr "Tehtävä"
+
+#. module: project_mailgate
+#: model:ir.module.module,description:project_mailgate.module_meta_information
+msgid ""
+"This module is an interface that synchronises mails with OpenERP Project "
+"Task.\n"
+"\n"
+"It allows creating tasks as soon as a new mail arrives in our configured "
+"mail server.\n"
+"Moreover, it keeps track of all further communications and task states.\n"
+" "
+msgstr ""
+
+#. module: project_mailgate
+#: view:project.task:0
+msgid "Attachments"
+msgstr "Liitteet"
+
+#. module: project_mailgate
+#: model:ir.module.module,shortdesc:project_mailgate.module_meta_information
+msgid "Project MailGateWay"
+msgstr "Projektin sähköpostivälittäjä"
+
+#. module: project_mailgate
+#: constraint:project.task:0
+msgid "Error ! You cannot create recursive tasks."
+msgstr "Virhe ! Et voi luoda rekursiivisiä tehtäviä."
+
+#. module: project_mailgate
+#: field:project.task,message_ids:0
+msgid "Messages"
+msgstr "Viestit"
+
+#. module: project_mailgate
+#: code:addons/project_mailgate/project_mailgate.py:123
+#, python-format
+msgid "Draft"
+msgstr "Luonnos"
+
+#. module: project_mailgate
+#: view:project.task:0
+msgid "Details"
+msgstr "Yksityiskohdat"
+
+#. module: project_mailgate
+#: code:addons/project_mailgate/project_mailgate.py:149
+#, python-format
+msgid "Cancel"
+msgstr "Peruuta"
+
+#. module: project_mailgate
+#: code:addons/project_mailgate/project_mailgate.py:143
+#, python-format
+msgid "Done"
+msgstr "Valmis"
+
+#. module: project_mailgate
+#: code:addons/project_mailgate/project_mailgate.py:129
+#, python-format
+msgid "Open"
+msgstr "Auki"
+
+#. module: project_mailgate
+#: code:addons/project_mailgate/project_mailgate.py:135
+#, python-format
+msgid "Pending"
+msgstr "Odottava"
+
+#. module: project_mailgate
+#: view:project.task:0
+msgid "History"
+msgstr "Historia"
diff --git a/addons/project_mailgate/i18n/zh_CN.po b/addons/project_mailgate/i18n/zh_CN.po
new file mode 100644
index 00000000000..5146601a653
--- /dev/null
+++ b/addons/project_mailgate/i18n/zh_CN.po
@@ -0,0 +1,104 @@
+# Chinese (Simplified) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-06-28 16:25+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Simplified) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-06-29 04:43+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: project_mailgate
+#: view:project.task:0
+msgid "History Information"
+msgstr "历史信息"
+
+#. module: project_mailgate
+#: model:ir.model,name:project_mailgate.model_project_task
+msgid "Task"
+msgstr "任务"
+
+#. module: project_mailgate
+#: model:ir.module.module,description:project_mailgate.module_meta_information
+msgid ""
+"This module is an interface that synchronises mails with OpenERP Project "
+"Task.\n"
+"\n"
+"It allows creating tasks as soon as a new mail arrives in our configured "
+"mail server.\n"
+"Moreover, it keeps track of all further communications and task states.\n"
+" "
+msgstr ""
+"此模块是邮件和任务的接口。\n"
+"允许在特定邮件服务器收到邮件后马上创建任务。\n"
+"还能跟踪进一步的沟通和任务阶段\n"
+" "
+
+#. module: project_mailgate
+#: view:project.task:0
+msgid "Attachments"
+msgstr "附件"
+
+#. module: project_mailgate
+#: model:ir.module.module,shortdesc:project_mailgate.module_meta_information
+msgid "Project MailGateWay"
+msgstr "Project MailGateWay"
+
+#. module: project_mailgate
+#: constraint:project.task:0
+msgid "Error ! You cannot create recursive tasks."
+msgstr "错误!不能创建循环引用的任务"
+
+#. module: project_mailgate
+#: field:project.task,message_ids:0
+msgid "Messages"
+msgstr "消息"
+
+#. module: project_mailgate
+#: code:addons/project_mailgate/project_mailgate.py:123
+#, python-format
+msgid "Draft"
+msgstr "草稿"
+
+#. module: project_mailgate
+#: view:project.task:0
+msgid "Details"
+msgstr "详细信息"
+
+#. module: project_mailgate
+#: code:addons/project_mailgate/project_mailgate.py:149
+#, python-format
+msgid "Cancel"
+msgstr "取消"
+
+#. module: project_mailgate
+#: code:addons/project_mailgate/project_mailgate.py:143
+#, python-format
+msgid "Done"
+msgstr "完成"
+
+#. module: project_mailgate
+#: code:addons/project_mailgate/project_mailgate.py:129
+#, python-format
+msgid "Open"
+msgstr "未结"
+
+#. module: project_mailgate
+#: code:addons/project_mailgate/project_mailgate.py:135
+#, python-format
+msgid "Pending"
+msgstr "等待中"
+
+#. module: project_mailgate
+#: view:project.task:0
+msgid "History"
+msgstr "历史记录"
diff --git a/addons/project_mailgate/project_mailgate.py b/addons/project_mailgate/project_mailgate.py
index 64bb8c2dc69..66eaa2e85fa 100644
--- a/addons/project_mailgate/project_mailgate.py
+++ b/addons/project_mailgate/project_mailgate.py
@@ -19,17 +19,19 @@
#
##############################################################################
-from osv import fields,osv
+from osv import fields, osv
from tools.translate import _
import binascii
+
class project_tasks(osv.osv):
_name = "project.task"
- _inherit = ['mailgate.thread','project.task']
-
+ _inherit = ['mailgate.thread', 'project.task']
+
_columns={
- 'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('model','=',_name)], readonly=True),
+ 'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('model', '=', _name)], readonly=True),
}
+
def message_new(self, cr, uid, msg, context=None):
# """
# Automatically calls when new email message arrives
@@ -42,23 +44,24 @@ class project_tasks(osv.osv):
subject = msg.get('subject')
body = msg.get('body')
msg_from = msg.get('from')
- priority = msg.get('priority')
+ #TODO map email priority with openerp task priority
+ priority = msg.get('priority')
- data = {
+ data = {
'name': subject,
'description': body,
- 'planned_hours' : 0.0,
+ 'planned_hours': 0.0,
}
res = mailgate_obj.get_partner(cr, uid, msg_from)
if res:
data.update(res)
- res = self.create(cr, uid, data)
-
+ res = self.create(cr, uid, data)
+
attachments = msg.get('attachments', [])
for attachment in attachments or []:
data_attach = {
'name': attachment,
- 'datas':binascii.b2a_base64(str(attachments.get(attachment))),
+ 'datas': binascii.b2a_base64(str(attachments.get(attachment))),
'datas_fname': attachment,
'description': 'Mail attachment',
'res_model': self._name,
@@ -66,31 +69,31 @@ class project_tasks(osv.osv):
}
self.pool.get('ir.attachment').create(cr, uid, data_attach)
- return res
-
- def message_update(self, cr, uid, id, msg, data={}, default_act='pending'):
+ return res
+
+ def message_update(self, cr, uid, id, msg, data={}, default_act='pending'):
mailgate_obj = self.pool.get('email.server.tools')
- msg_actions, body_data = mailgate_obj.msg_act_get(msg)
+ msg_actions, body_data = mailgate_obj.msg_act_get(msg)
data.update({
- 'description': body_data,
+ 'description': body_data,
})
act = 'do_'+default_act
if 'state' in msg_actions:
- if msg_actions['state'] in ['draft','close','cancel','open','pending']:
+ if msg_actions['state'] in ['draft', 'close', 'cancel', 'open', 'pending']:
act = 'do_' + msg_actions['state']
-
- for k1,k2 in [('cost','planned_hours')]:
+
+ for k1, k2 in [('cost', 'planned_hours')]:
try:
data[k2] = float(msg_actions[k1])
except:
pass
if 'priority' in msg_actions:
- if msg_actions['priority'] in ('1','2','3','4','5'):
+ if msg_actions['priority'] in ('1', '2', '3', '4', '5'):
data['priority'] = msg_actions['priority']
-
+
self.write(cr, uid, [id], data)
- getattr(self,act)(cr, uid, [id])
+ getattr(self, act)(cr, uid, [id])
return True
def message_followers(self, cr, uid, ids, context=None):
@@ -108,7 +111,7 @@ class project_tasks(osv.osv):
def msg_send(self, cr, uid, id, *args, **argv):
return True
-
+
def _history(self, cr, uid, cases, keyword, history=False, subject=None, email=False, details=None, email_from=False, message_id=False, attach=[], context=None):
mailgate_pool = self.pool.get('mailgate.thread')
return mailgate_pool.history(cr, uid, cases, keyword, history=history,\
@@ -116,37 +119,37 @@ class project_tasks(osv.osv):
details=details, email_from=email_from,\
message_id=message_id, attach=attach, \
context=context)
-
- def do_draft(self, cr, uid, ids, *args, **kwargs):
- res = super(project_tasks, self).do_draft(cr, uid, ids, *args, **kwargs)
- tasks = self.browse(cr, uid, ids)
- self._history(cr, uid, tasks, _('Draft'))
+
+ def do_draft(self, cr, uid, ids, context=None):
+ res = super(project_tasks, self).do_draft(cr, uid, ids, context)
+ tasks = self.browse(cr, uid, ids, context=context)
+ self._history(cr, uid, tasks, _('Draft'), context=context)
return res
-
- def do_open(self, cr, uid, ids, *args, **kwargs):
- res = super(project_tasks, self).do_open(cr, uid, ids, *args, **kwargs)
- tasks = self.browse(cr, uid, ids)
- self._history(cr, uid, tasks, _('Open'))
+
+ def do_open(self, cr, uid, ids, context=None):
+ res = super(project_tasks, self).do_open(cr, uid, ids, context)
+ tasks = self.browse(cr, uid, ids, context=context)
+ self._history(cr, uid, tasks, _('Open'), context=context)
return res
-
- def do_pending(self, cr, uid, ids, *args, **kwargs):
- res = super(project_tasks, self).do_pending(cr, uid, ids, *args, **kwargs)
- tasks = self.browse(cr, uid, ids)
- self._history(cr, uid, tasks, _('Pending'))
+
+ def do_pending(self, cr, uid, ids, context=None):
+ res = super(project_tasks, self).do_pending(cr, uid, ids, context)
+ tasks = self.browse(cr, uid, ids, context=context)
+ self._history(cr, uid, tasks, _('Pending'), context=context)
return res
-
- def do_close(self, cr, uid, ids, *args, **kwargs):
- res = super(project_tasks, self).do_close(cr, uid, ids, *args, **kwargs)
- tasks = self.browse(cr, uid, ids)
+
+ def do_close(self, cr, uid, ids, context=None):
+ res = super(project_tasks, self).do_close(cr, uid, ids, context)
+ tasks = self.browse(cr, uid, ids, context=context)
for task in tasks:
if task.state == 'done':
- self._history(cr, uid, tasks, _('Done'))
+ self._history(cr, uid, tasks, _('Done'), context=context)
return res
-
- def do_cancel(self, cr, uid, ids, *args, **kwargs):
- res = super(project_tasks, self).do_cancel(cr, uid, ids, *args, **kwargs)
- tasks = self.browse(cr, uid, ids)
- self._history(cr, uid, tasks, _('Cancel'))
+
+ def do_cancel(self, cr, uid, ids, context=None):
+ res = super(project_tasks, self).do_cancel(cr, uid, ids, context=context)
+ tasks = self.browse(cr, uid, ids, context=context)
+ self._history(cr, uid, tasks, _('Cancel'), context=context)
return res
project_tasks()
diff --git a/addons/project_messages/i18n/zh_CN.po b/addons/project_messages/i18n/zh_CN.po
new file mode 100644
index 00000000000..51983dae2b3
--- /dev/null
+++ b/addons/project_messages/i18n/zh_CN.po
@@ -0,0 +1,138 @@
+# Chinese (Simplified) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-07-02 15:15+0000\n"
+"Last-Translator: Wei \"oldrev\" Li \n"
+"Language-Team: Chinese (Simplified) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-07-03 04:47+0000\n"
+"X-Generator: Launchpad (build 13168)\n"
+
+#. module: project_messages
+#: field:project.messages,to_id:0
+msgid "To"
+msgstr "收件人"
+
+#. module: project_messages
+#: model:ir.model,name:project_messages.model_project_messages
+msgid "project.messages"
+msgstr "project.messages"
+
+#. module: project_messages
+#: field:project.messages,from_id:0
+msgid "From"
+msgstr "发件人"
+
+#. module: project_messages
+#: model:ir.actions.act_window,name:project_messages.messages_form
+#: model:ir.ui.menu,name:project_messages.menu_messages_form
+msgid "Communication Messages"
+msgstr "通信消息管理"
+
+#. module: project_messages
+#: view:project.messages:0
+msgid "Group By..."
+msgstr "分组..."
+
+#. module: project_messages
+#: field:project.messages,create_date:0
+msgid "Creation Date"
+msgstr "创建日期"
+
+#. module: project_messages
+#: view:project.messages:0
+msgid "Today"
+msgstr "今天"
+
+#. module: project_messages
+#: help:project.messages,to_id:0
+msgid "Keep this empty to broadcast the message."
+msgstr "不输入则广播此消息"
+
+#. module: project_messages
+#: model:ir.actions.act_window,name:project_messages.act_project_messages
+#: model:ir.actions.act_window,name:project_messages.action_view_project_editable_messages_tree
+#: view:project.messages:0
+#: view:project.project:0
+#: field:project.project,message_ids:0
+msgid "Messages"
+msgstr "消息"
+
+#. module: project_messages
+#: model:ir.model,name:project_messages.model_project_project
+#: view:project.messages:0
+#: field:project.messages,project_id:0
+msgid "Project"
+msgstr "项目"
+
+#. module: project_messages
+#: model:ir.actions.act_window,help:project_messages.messages_form
+msgid ""
+"An in-project messaging system allows for an efficient and trackable "
+"communication between project members. The messages are stored in the system "
+"and can be used for post analysis."
+msgstr "一个项目内的消息系统,以便项目成员间内部高效可控地沟通。消息存储在系统中可以做历史记录分析。"
+
+#. module: project_messages
+#: model:ir.module.module,description:project_messages.module_meta_information
+msgid ""
+"\n"
+" This module provides the functionality to send messages within a "
+"project.\n"
+" A user can send messages individually to other user. He can even "
+"broadcast\n"
+" it to all the users.\n"
+" "
+msgstr ""
+"\n"
+" 此模块允许在项目内部发送消息。\n"
+"用户可以给另一个用户发消息。也可以对所有成员广播消息。\n"
+" "
+
+#. module: project_messages
+#: view:project.messages:0
+msgid "Message To"
+msgstr "收件人"
+
+#. module: project_messages
+#: constraint:project.project:0
+msgid "Error! You cannot assign escalation to the same project!"
+msgstr "不能升级到相同的项目"
+
+#. module: project_messages
+#: view:project.messages:0
+#: field:project.messages,message:0
+#: view:project.project:0
+msgid "Message"
+msgstr "消息"
+
+#. module: project_messages
+#: view:project.messages:0
+msgid "Message From"
+msgstr "发件人"
+
+#. module: project_messages
+#: model:ir.actions.act_window,name:project_messages.messages_form
+#: model:ir.ui.menu,name:project_messages.menu_messages_form
+#: view:project.messages:0
+msgid "Project Messages"
+msgstr "项目消息"
+
+#. module: project_messages
+#: constraint:project.project:0
+msgid "Error! project start-date must be lower then project end-date."
+msgstr "错误!项目的开始日期必须小于项目的结束日期"
+
+#. module: project_messages
+#: model:ir.module.module,shortdesc:project_messages.module_meta_information
+msgid "In-Project Messaging System"
+msgstr "项目内部消息系统"
diff --git a/addons/project_messages/project_messages_view.xml b/addons/project_messages/project_messages_view.xml
index 4f74e7ebfbf..027403b84f3 100644
--- a/addons/project_messages/project_messages_view.xml
+++ b/addons/project_messages/project_messages_view.xml
@@ -11,12 +11,12 @@
-
+
-
+
@@ -316,8 +316,8 @@