[MERGE] trunk
bzr revid: al@openerp.com-20111001114303-p4e0oaficot6dv69
@@ -23,7 +23,7 @@ import account
|
||||
import installer
|
||||
import project
|
||||
import partner
|
||||
import invoice
|
||||
import account_invoice
|
||||
import account_bank_statement
|
||||
import account_bank
|
||||
import account_cash_statement
|
||||
@@ -32,7 +32,7 @@ import account_analytic_line
|
||||
import wizard
|
||||
import report
|
||||
import product
|
||||
import sequence
|
||||
import ir_sequence
|
||||
import company
|
||||
import res_currency
|
||||
|
||||
|
||||
@@ -103,8 +103,7 @@ module named account_voucher.
|
||||
'account_end_fy.xml',
|
||||
'account_invoice_view.xml',
|
||||
'partner_view.xml',
|
||||
'data/account_invoice.xml',
|
||||
'data/account_data2.xml',
|
||||
'data/account_data.xml',
|
||||
'account_invoice_workflow.xml',
|
||||
'project/project_view.xml',
|
||||
'project/project_report.xml',
|
||||
@@ -119,7 +118,7 @@ module named account_voucher.
|
||||
'process/statement_process.xml',
|
||||
'process/customer_invoice_process.xml',
|
||||
'process/supplier_invoice_process.xml',
|
||||
'sequence_view.xml',
|
||||
'ir_sequence_view.xml',
|
||||
'company_view.xml',
|
||||
'board_account_view.xml',
|
||||
"wizard/account_report_profit_loss_view.xml",
|
||||
|
||||
@@ -672,32 +672,22 @@ class account_journal(osv.osv):
|
||||
return super(account_journal, self).write(cr, uid, ids, vals, context=context)
|
||||
|
||||
def create_sequence(self, cr, uid, vals, context=None):
|
||||
""" Create new no_gap entry sequence for every new Joural
|
||||
"""
|
||||
Create new entry sequence for every new Joural
|
||||
"""
|
||||
seq_pool = self.pool.get('ir.sequence')
|
||||
seq_typ_pool = self.pool.get('ir.sequence.type')
|
||||
|
||||
name = vals['name']
|
||||
code = vals['code'].lower()
|
||||
|
||||
types = {
|
||||
'name': name,
|
||||
'code': code
|
||||
}
|
||||
seq_typ_pool.create(cr, uid, types)
|
||||
# in account.journal code is actually the prefix of the sequence
|
||||
# whereas ir.sequence code is a key to lookup global sequences.
|
||||
prefix = vals['code'].upper()
|
||||
|
||||
seq = {
|
||||
'name': name,
|
||||
'code': code,
|
||||
'active': True,
|
||||
'prefix': code + "/%(year)s/",
|
||||
'name': vals['name'],
|
||||
'implementation':'no_gap',
|
||||
'prefix': prefix + "/%(year)s/",
|
||||
'padding': 4,
|
||||
'number_increment': 1
|
||||
}
|
||||
if 'company_id' in vals:
|
||||
seq['company_id'] = vals['company_id']
|
||||
return seq_pool.create(cr, uid, seq)
|
||||
return self.pool.get('ir.sequence').create(cr, uid, seq)
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
if not 'sequence_id' in vals or not vals['sequence_id']:
|
||||
@@ -1214,7 +1204,7 @@ class account_move(osv.osv):
|
||||
else:
|
||||
if journal.sequence_id:
|
||||
c = {'fiscalyear_id': move.period_id.fiscalyear_id.id}
|
||||
new_name = obj_sequence.get_id(cr, uid, journal.sequence_id.id, context=c)
|
||||
new_name = obj_sequence.next_by_id(cr, uid, journal.sequence_id.id, c)
|
||||
else:
|
||||
raise osv.except_osv(_('Error'), _('No sequence defined on the journal !'))
|
||||
|
||||
@@ -1256,7 +1246,7 @@ class account_move(osv.osv):
|
||||
context = {}
|
||||
c = context.copy()
|
||||
c['novalidate'] = True
|
||||
result = super(osv.osv, self).write(cr, uid, ids, vals, c)
|
||||
result = super(account_move, self).write(cr, uid, ids, vals, c)
|
||||
self.validate(cr, uid, ids, context=context)
|
||||
return result
|
||||
|
||||
|
||||
@@ -340,9 +340,9 @@ class account_bank_statement(osv.osv):
|
||||
else:
|
||||
if st.journal_id.sequence_id:
|
||||
c = {'fiscalyear_id': st.period_id.fiscalyear_id.id}
|
||||
st_number = obj_seq.get_id(cr, uid, st.journal_id.sequence_id.id, context=c)
|
||||
st_number = obj_seq.next_by_id(cr, uid, st.journal_id.sequence_id.id, context=c)
|
||||
else:
|
||||
st_number = obj_seq.get(cr, uid, 'account.bank.statement')
|
||||
st_number = obj_seq.next_by_code(cr, uid, 'account.bank.statement')
|
||||
|
||||
for line in st.move_line_ids:
|
||||
if line.state <> 'valid':
|
||||
|
||||
@@ -294,9 +294,9 @@ class account_cash_statement(osv.osv):
|
||||
if statement.name and statement.name == '/':
|
||||
if statement.journal_id.sequence_id:
|
||||
c = {'fiscalyear_id': statement.period_id.fiscalyear_id.id}
|
||||
st_number = obj_seq.get_id(cr, uid, statement.journal_id.sequence_id.id, context=c)
|
||||
st_number = obj_seq.next_by_id(cr, uid, statement.journal_id.sequence_id.id, context=c)
|
||||
else:
|
||||
st_number = obj_seq.get(cr, uid, 'account.cash.statement')
|
||||
st_number = obj_seq.next_by_code(cr, uid, 'account.cash.statement')
|
||||
vals.update({
|
||||
'name': st_number
|
||||
})
|
||||
|
||||
@@ -1221,7 +1221,7 @@ class account_move_line(osv.osv):
|
||||
vals['move_id'] = res[0]
|
||||
if not vals.get('move_id', False):
|
||||
if journal.sequence_id:
|
||||
#name = self.pool.get('ir.sequence').get_id(cr, uid, journal.sequence_id.id)
|
||||
#name = self.pool.get('ir.sequence').next_by_id(cr, uid, journal.sequence_id.id)
|
||||
v = {
|
||||
'date': vals.get('date', time.strftime('%Y-%m-%d')),
|
||||
'period_id': context['period_id'],
|
||||
@@ -1273,7 +1273,7 @@ class account_move_line(osv.osv):
|
||||
'user_id': uid
|
||||
})]
|
||||
|
||||
result = super(osv.osv, self).create(cr, uid, vals, context=context)
|
||||
result = super(account_move_line, self).create(cr, uid, vals, context=context)
|
||||
# CREATE Taxes
|
||||
if vals.get('account_tax_id', False):
|
||||
tax_id = tax_obj.browse(cr, uid, vals['account_tax_id'])
|
||||
|
||||
@@ -32,7 +32,7 @@ class res_company(osv.osv):
|
||||
string="Reserve and Profit/Loss Account",
|
||||
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"),
|
||||
help="This account is used for transferring Profit/Loss (If It is Profit: Amount will be added, Loss : Amount will be deducted.), as calculated in Profit & Loss Report"),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
||||
@@ -469,66 +469,48 @@
|
||||
Account Journal Sequences
|
||||
-->
|
||||
|
||||
<record id="sequence_journal_type" model="ir.sequence.type">
|
||||
<field name="name">Account Journal</field>
|
||||
<field name="code">account.journal</field>
|
||||
</record>
|
||||
<record id="sequence_journal" model="ir.sequence">
|
||||
<field name="name">Account Journal</field>
|
||||
<field name="code">account.journal</field>
|
||||
<field name="prefix"/>
|
||||
</record>
|
||||
<record id="sequence_sale_journal" model="ir.sequence">
|
||||
<field name="name">Sale Journal</field>
|
||||
<field name="code">account.journal</field>
|
||||
<field name="name">Account Default Sales Journal</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">SAJ/%(year)s/</field>
|
||||
</record>
|
||||
<record id="sequence_refund_sales_journal" model="ir.sequence">
|
||||
<field name="name">Sales Credit Note Journal</field>
|
||||
<field name="code">account.journal</field>
|
||||
<field name="name">Account Default Sales Credit Note Journal</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">SCNJ/%(year)s/</field>
|
||||
</record>
|
||||
<record id="sequence_purchase_journal" model="ir.sequence">
|
||||
<field name="name">Purchase Journal</field>
|
||||
<field name="code">account.journal</field>
|
||||
<field name="name">Account Default Expenses Journal</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">EXJ/%(year)s/</field>
|
||||
</record>
|
||||
<record id="sequence_refund_purchase_journal" model="ir.sequence">
|
||||
<field name="name">Expenses Credit Notes Journal</field>
|
||||
<field name="code">account.journal</field>
|
||||
<field name="name">Account Default Expenses Credit Notes Journal</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">ECNJ/%(year)s/</field>
|
||||
</record>
|
||||
<record id="sequence_bank_journal" model="ir.sequence">
|
||||
<field name="name">Bank Journal</field>
|
||||
<field name="code">account.journal</field>
|
||||
<field name="name">Account Default Bank Journal</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">BNK/%(year)s/</field>
|
||||
</record>
|
||||
<record id="sequence_check_journal" model="ir.sequence">
|
||||
<field name="name">Checks Journal</field>
|
||||
<field name="code">account.journal</field>
|
||||
<field name="name">Account Default Checks Journal</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">CHK/%(year)s/</field>
|
||||
</record>
|
||||
<record id="sequence_cash_journal" model="ir.sequence">
|
||||
<field name="name">Cash Journal</field>
|
||||
<field name="code">account.journal</field>
|
||||
<field name="name">Account Default Cash Journal</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">CSH/%(year)s/</field>
|
||||
</record>
|
||||
<record id="sequence_opening_journal" model="ir.sequence">
|
||||
<field name="name">Opening Entries Journal</field>
|
||||
<field name="code">account.journal</field>
|
||||
<field name="name">Account Default Opening Entries Journal</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">OPEJ/%(year)s/</field>
|
||||
</record>
|
||||
<record id="sequence_miscellaneous_journal" model="ir.sequence">
|
||||
<field name="name">Miscellaneous Journal</field>
|
||||
<field name="code">account.journal</field>
|
||||
<field name="name">Account Default Miscellaneous Journal</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">MISJ/%(year)s/</field>
|
||||
</record>
|
||||
@@ -538,7 +520,7 @@
|
||||
-->
|
||||
|
||||
<record id="sequence_reconcile" model="ir.sequence.type">
|
||||
<field name="name">Account reconcile sequence</field>
|
||||
<field name="name">Account Reconcile</field>
|
||||
<field name="code">account.reconcile</field>
|
||||
</record>
|
||||
<record id="sequence_reconcile_seq" model="ir.sequence">
|
||||
@@ -550,7 +532,7 @@
|
||||
</record>
|
||||
|
||||
<record id="sequence_statement_type" model="ir.sequence.type">
|
||||
<field name="name">Bank Statement</field>
|
||||
<field name="name">Account Bank Statement</field>
|
||||
<field name="code">account.bank.statement</field>
|
||||
</record>
|
||||
<record id="sequence_statement" model="ir.sequence">
|
||||
@@ -562,7 +544,7 @@
|
||||
</record>
|
||||
|
||||
<record id="cash_sequence_statement_type" model="ir.sequence.type">
|
||||
<field name="name">Cash Statement</field>
|
||||
<field name="name">Account Cash Statement</field>
|
||||
<field name="code">account.cash.statement</field>
|
||||
</record>
|
||||
<record id="cash_sequence_statement" model="ir.sequence">
|
||||
@@ -572,5 +554,30 @@
|
||||
<field eval="1" name="number_next"/>
|
||||
<field eval="1" name="number_increment"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Sequence for analytic account
|
||||
-->
|
||||
<record id="seq_type_analytic_account" model="ir.sequence.type">
|
||||
<field name="name">Analytic account</field>
|
||||
<field name="code">account.analytic.account</field>
|
||||
</record>
|
||||
<record id="seq_analytic_account" model="ir.sequence">
|
||||
<field name="name">Analytic account sequence</field>
|
||||
<field name="code">account.analytic.account</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field eval="2708" name="number_next"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Invoice requests (deprecated)
|
||||
-->
|
||||
<record id="req_link_invoice" model="res.request.link">
|
||||
<field name="name">Invoice</field>
|
||||
<field name="object">account.invoice</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,75 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<record id="req_link_invoice" model="res.request.link">
|
||||
<field name="name">Invoice</field>
|
||||
<field name="object">account.invoice</field>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Sequences types for invoices
|
||||
-->
|
||||
<record id="seq_type_out_invoice" model="ir.sequence.type">
|
||||
<field name="name">Account Invoice Out</field>
|
||||
<field name="code">account.invoice.out_invoice</field>
|
||||
</record>
|
||||
<record id="seq_type_in_invoice" model="ir.sequence.type">
|
||||
<field name="name">Account Invoice In</field>
|
||||
<field name="code">account.invoice.in_invoice</field>
|
||||
</record>
|
||||
<record id="seq_type_out_refund" model="ir.sequence.type">
|
||||
<field name="name">Account Refund Out</field>
|
||||
<field name="code">account.invoice.out_refund</field>
|
||||
</record>
|
||||
<record id="seq_type_in_refund" model="ir.sequence.type">
|
||||
<field name="name">Account Refund In</field>
|
||||
<field name="code">account.invoice.in_refund</field>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Sequences for invoices
|
||||
-->
|
||||
<record id="seq_out_invoice" model="ir.sequence">
|
||||
<field name="name">Account Invoice Out</field>
|
||||
<field name="code">account.invoice.out_invoice</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">%(year)s/</field>
|
||||
</record>
|
||||
<record id="seq_in_invoice" model="ir.sequence">
|
||||
<field name="name">Account Invoice In</field>
|
||||
<field name="code">account.invoice.in_invoice</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">%(year)s/</field>
|
||||
</record>
|
||||
<record id="seq_out_refund" model="ir.sequence">
|
||||
<field name="name">Account Refund Out</field>
|
||||
<field name="code">account.invoice.out_refund</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">%(year)s/</field>
|
||||
</record>
|
||||
<record id="seq_in_refund" model="ir.sequence">
|
||||
<field name="name">Account Refund In</field>
|
||||
<field name="code">account.invoice.in_refund</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field name="prefix">%(year)s/</field>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Sequences types for analytic account
|
||||
-->
|
||||
<record id="seq_type_analytic_account" model="ir.sequence.type">
|
||||
<field name="name">Analytic account</field>
|
||||
<field name="code">account.analytic.account</field>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Sequence for analytic account
|
||||
-->
|
||||
<record id="seq_analytic_account" model="ir.sequence">
|
||||
<field name="name">Analytic account sequence</field>
|
||||
<field name="code">account.analytic.account</field>
|
||||
<field eval="3" name="padding"/>
|
||||
<field eval="2708" name="number_next"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -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:14+0000\n"
|
||||
"PO-Revision-Date: 2011-09-22 02:55+0000\n"
|
||||
"PO-Revision-Date: 2011-09-30 23:12+0000\n"
|
||||
"Last-Translator: Majed Majbour <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-23 04:38+0000\n"
|
||||
"X-Generator: Launchpad (build 14012)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 14071)\n"
|
||||
|
||||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
||||
msgid "System payment"
|
||||
msgstr "الدفع عن طريق النظام"
|
||||
msgstr "نظام الدفع"
|
||||
|
||||
#. module: account
|
||||
#: view:account.journal:0
|
||||
@@ -124,6 +124,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
|
||||
|
||||
@@ -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:14+0000\n"
|
||||
"PO-Revision-Date: 2010-12-12 00:12+0000\n"
|
||||
"Last-Translator: qdp (OpenERP) <qdp-launchpad@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2011-09-30 07:02+0000\n"
|
||||
"Last-Translator: Raiko Pajur <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-17 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 13955)\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 14071)\n"
|
||||
|
||||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
||||
msgid "System payment"
|
||||
msgstr ""
|
||||
msgstr "Süsteemi maksed"
|
||||
|
||||
#. module: account
|
||||
#: view:account.journal:0
|
||||
msgid "Other Configuration"
|
||||
msgstr ""
|
||||
msgstr "Muud konfiguratsioonid"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40
|
||||
@@ -39,6 +39,8 @@ msgid ""
|
||||
"You cannot remove/deactivate an account which is set as a property to any "
|
||||
"Partner."
|
||||
msgstr ""
|
||||
"Sa ei saa kustutada / desaktiveerida kontot, mis on määratud mis tahes "
|
||||
"\"Partner\" varaks."
|
||||
|
||||
#. module: account
|
||||
#: view:account.move.reconcile:0
|
||||
@@ -48,7 +50,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: field:account.installer.modules,account_voucher:0
|
||||
msgid "Voucher Management"
|
||||
msgstr ""
|
||||
msgstr "Voucheri juhtimine"
|
||||
|
||||
#. module: account
|
||||
#: view:account.account:0
|
||||
@@ -133,13 +135,13 @@ msgstr "Raamatupidamise kirjed-"
|
||||
#: code:addons/account/account.py:1291
|
||||
#, python-format
|
||||
msgid "You can not delete posted movement: \"%s\"!"
|
||||
msgstr ""
|
||||
msgstr "Sa ei saa kustutada postitatud liikumist: \"%s\"!"
|
||||
|
||||
#. module: account
|
||||
#: report:account.invoice:0
|
||||
#: field:account.invoice.line,origin:0
|
||||
msgid "Origin"
|
||||
msgstr "Päritolu"
|
||||
msgstr "Allikas"
|
||||
|
||||
#. module: account
|
||||
#: view:account.account:0
|
||||
@@ -164,7 +166,7 @@ msgstr "Viide"
|
||||
#. module: account
|
||||
#: view:account.open.closed.fiscalyear:0
|
||||
msgid "Choose Fiscal Year "
|
||||
msgstr ""
|
||||
msgstr "Vali eelarveaasta "
|
||||
|
||||
#. module: account
|
||||
#: help:account.payment.term,active:0
|
||||
@@ -172,12 +174,14 @@ msgid ""
|
||||
"If the active field is set to False, it will allow you to hide the payment "
|
||||
"term without removing it."
|
||||
msgstr ""
|
||||
"Kui aktiivne ala on väärne ( False ), siis see võimaldab teil peita/varjata "
|
||||
"maksetähtaeg seda kustutamata."
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/invoice.py:1421
|
||||
#, python-format
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
msgstr "Hoiatus!"
|
||||
|
||||
#. module: account
|
||||
#: field:account.fiscal.position.account,account_src_id:0
|
||||
@@ -204,7 +208,7 @@ msgstr "Negatiivne"
|
||||
#: code:addons/account/wizard/account_move_journal.py:95
|
||||
#, python-format
|
||||
msgid "Journal: %s"
|
||||
msgstr ""
|
||||
msgstr "Päevik: %s"
|
||||
|
||||
#. module: account
|
||||
#: help:account.analytic.journal,type:0
|
||||
@@ -231,7 +235,7 @@ msgstr "konto.maks"
|
||||
msgid ""
|
||||
"No period defined for this date: %s !\n"
|
||||
"Please create a fiscal year."
|
||||
msgstr ""
|
||||
msgstr "Periood ei ole defineeritud sellele kuupäevale: %s"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_move_line_reconcile_select
|
||||
@@ -259,7 +263,7 @@ msgstr ""
|
||||
#: code:addons/account/invoice.py:1210
|
||||
#, python-format
|
||||
msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)"
|
||||
msgstr ""
|
||||
msgstr "Arve '%s' on makstud osaliselt: %s%s on tasutud %s%s (%s%s maksmata)"
|
||||
|
||||
#. module: account
|
||||
#: model:process.transition,note:account.process_transition_supplierentriesreconcile0
|
||||
@@ -280,7 +284,7 @@ msgstr "Teie ei saa lisada/muuta suletud päeviku kirjeid."
|
||||
#. module: account
|
||||
#: view:account.bank.statement:0
|
||||
msgid "Calculated Balance"
|
||||
msgstr ""
|
||||
msgstr "Välja arvutatud tasakaal (Calculated Balance)"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_account_use_model_create_entry
|
||||
@@ -352,7 +356,7 @@ msgstr "Ostu omadused"
|
||||
#: view:account.installer:0
|
||||
#: view:account.installer.modules:0
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
msgstr "Seadista"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.entries.report,month:0
|
||||
@@ -361,7 +365,7 @@ msgstr ""
|
||||
#: selection:report.account.sales,month:0
|
||||
#: selection:report.account_type.sales,month:0
|
||||
msgid "June"
|
||||
msgstr ""
|
||||
msgstr "Juuni"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,help:account.action_account_moves_bank
|
||||
@@ -395,12 +399,12 @@ msgstr ""
|
||||
#. module: account
|
||||
#: selection:account.journal,type:0
|
||||
msgid "Opening/Closing Situation"
|
||||
msgstr ""
|
||||
msgstr "Avamise/Sulgemise situatsioon"
|
||||
|
||||
#. module: account
|
||||
#: help:account.journal,currency:0
|
||||
msgid "The currency used to enter statement"
|
||||
msgstr ""
|
||||
msgstr "Valuuta väite sisestamiseks"
|
||||
|
||||
#. module: account
|
||||
#: field:account.open.closed.fiscalyear,fyear_id:0
|
||||
@@ -498,17 +502,17 @@ msgstr "Päevik"
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_invoice_confirm
|
||||
msgid "Confirm the selected invoices"
|
||||
msgstr ""
|
||||
msgstr "Kinnita valitud arved"
|
||||
|
||||
#. module: account
|
||||
#: field:account.addtmpl.wizard,cparent_id:0
|
||||
msgid "Parent target"
|
||||
msgstr ""
|
||||
msgstr "Lapsevanema sihtmärk"
|
||||
|
||||
#. module: account
|
||||
#: field:account.bank.statement,account_id:0
|
||||
msgid "Account used in this journal"
|
||||
msgstr ""
|
||||
msgstr "Konto kasutatud selles arveraamatus"
|
||||
|
||||
#. module: account
|
||||
#: help:account.aged.trial.balance,chart_account_id:0
|
||||
@@ -527,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 "Vali Kontode graafikud"
|
||||
|
||||
#. module: account
|
||||
#: view:product.product:0
|
||||
@@ -537,7 +541,7 @@ msgstr "Ostumaksud"
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_invoice_refund
|
||||
msgid "Invoice Refund"
|
||||
msgstr ""
|
||||
msgstr "Arveraamatu tagasimakse"
|
||||
|
||||
#. module: account
|
||||
#: report:account.overdue:0
|
||||
@@ -560,7 +564,7 @@ msgstr ""
|
||||
#: field:account.fiscal.position,tax_ids:0
|
||||
#: field:account.fiscal.position.template,tax_ids:0
|
||||
msgid "Tax Mapping"
|
||||
msgstr ""
|
||||
msgstr "Maksude kaardistamine"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_account_fiscalyear_close_state
|
||||
@@ -571,7 +575,7 @@ msgstr "Sule majandusaasta"
|
||||
#. module: account
|
||||
#: model:process.transition,note:account.process_transition_confirmstatementfromdraft0
|
||||
msgid "The accountant confirms the statement."
|
||||
msgstr ""
|
||||
msgstr "Raamatupidaja kinnitab selle avalduse"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.balance.report,display_account:0
|
||||
@@ -587,12 +591,12 @@ msgstr "Kõik"
|
||||
#. module: account
|
||||
#: field:account.invoice.report,address_invoice_id:0
|
||||
msgid "Invoice Address Name"
|
||||
msgstr ""
|
||||
msgstr "Arveraamatu Aadressi Nimi"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.installer,period:0
|
||||
msgid "3 Monthly"
|
||||
msgstr ""
|
||||
msgstr "Iga 3 kuu tagant"
|
||||
|
||||
#. module: account
|
||||
#: view:account.unreconcile.reconcile:0
|
||||
@@ -604,7 +608,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: view:analytic.entries.report:0
|
||||
msgid " 30 Days "
|
||||
msgstr ""
|
||||
msgstr " 30 päeva "
|
||||
|
||||
#. module: account
|
||||
#: field:ir.sequence,fiscal_ids:0
|
||||
@@ -624,7 +628,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: sql_constraint:account.sequence.fiscalyear:0
|
||||
msgid "Main Sequence must be different from current !"
|
||||
msgstr ""
|
||||
msgstr "Pea"
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice.tax,tax_amount:0
|
||||
@@ -652,12 +656,12 @@ msgstr "Sulge periood"
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_common_partner_report
|
||||
msgid "Account Common Partner Report"
|
||||
msgstr ""
|
||||
msgstr "Konto tava \"Partner\" aruanne"
|
||||
|
||||
#. module: account
|
||||
#: field:account.fiscalyear.close,period_id:0
|
||||
msgid "Opening Entries Period"
|
||||
msgstr ""
|
||||
msgstr "Avatud sissekanete periood"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_journal_period
|
||||
@@ -791,7 +795,7 @@ msgstr "J.C./liiguta nime"
|
||||
#: selection:report.account.sales,month:0
|
||||
#: selection:report.account_type.sales,month:0
|
||||
msgid "September"
|
||||
msgstr ""
|
||||
msgstr "September"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.subscription,period_type:0
|
||||
@@ -802,7 +806,7 @@ msgstr "päevad"
|
||||
#: help:account.account.template,nocreate:0
|
||||
msgid ""
|
||||
"If checked, the new chart of accounts will not contain this by default."
|
||||
msgstr ""
|
||||
msgstr "Kui märgitud, siis uus kontode graafik ei sisalda seda puudujääki."
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/wizard/account_invoice_refund.py:102
|
||||
@@ -825,7 +829,7 @@ msgstr "Arvutus"
|
||||
#. module: account
|
||||
#: view:account.move.line:0
|
||||
msgid "Next Partner to reconcile"
|
||||
msgstr ""
|
||||
msgstr "Kooskõlastama järgmise \"Partner\"-iga"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/account_move_line.py:1191
|
||||
@@ -834,12 +838,14 @@ msgid ""
|
||||
"You can not do this modification on a confirmed entry ! Please note that you "
|
||||
"can just change some non important fields !"
|
||||
msgstr ""
|
||||
"Teie ei saa teha see muudatus kinnitatud kirjel ! Teie saate muuta ainult "
|
||||
"mõned vähetähtsad väljad !"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.report:0
|
||||
#: field:account.invoice.report,delay_to_pay:0
|
||||
msgid "Avg. Delay To Pay"
|
||||
msgstr ""
|
||||
msgstr "Keskmine viivitus maksete tegemisel"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_account_tax_chart
|
||||
@@ -862,7 +868,7 @@ msgstr "Tähtaeg"
|
||||
#: view:account.invoice.report:0
|
||||
#: field:account.invoice.report,price_total_tax:0
|
||||
msgid "Total With Tax"
|
||||
msgstr ""
|
||||
msgstr "Kokku koos maksudega"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
@@ -870,7 +876,7 @@ msgstr ""
|
||||
#: view:validate.account.move:0
|
||||
#: view:validate.account.move.lines:0
|
||||
msgid "Approve"
|
||||
msgstr ""
|
||||
msgstr "Nõustu"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
@@ -925,7 +931,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: view:account.analytic.line:0
|
||||
msgid "Purchases"
|
||||
msgstr ""
|
||||
msgstr "Ostud"
|
||||
|
||||
#. module: account
|
||||
#: field:account.model,lines_id:0
|
||||
@@ -972,7 +978,7 @@ msgstr "Partneri bilanss"
|
||||
#. module: account
|
||||
#: field:account.bank.accounts.wizard,acc_name:0
|
||||
msgid "Account Name."
|
||||
msgstr ""
|
||||
msgstr "Konto nimi."
|
||||
|
||||
#. module: account
|
||||
#: field:account.chart.template,property_reserve_and_surplus_account:0
|
||||
@@ -983,7 +989,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: field:report.account.receivable,name:0
|
||||
msgid "Week of Year"
|
||||
msgstr ""
|
||||
msgstr "Nädal"
|
||||
|
||||
#. module: account
|
||||
#: field:account.bs.report,display_type:0
|
||||
@@ -995,12 +1001,12 @@ msgstr "Rõhtpaigutus"
|
||||
#. module: account
|
||||
#: view:board.board:0
|
||||
msgid "Customer Invoices to Approve"
|
||||
msgstr ""
|
||||
msgstr "Kliendi arved kinnitamiseks"
|
||||
|
||||
#. module: account
|
||||
#: help:account.fiscalyear.close,fy_id:0
|
||||
msgid "Select a Fiscal year to close"
|
||||
msgstr ""
|
||||
msgstr "Vali eelarve aasta mida sulgeda"
|
||||
|
||||
#. module: account
|
||||
#: help:account.account,user_type:0
|
||||
@@ -1018,13 +1024,13 @@ msgstr ""
|
||||
#. module: account
|
||||
#: report:account.partner.balance:0
|
||||
msgid "In dispute"
|
||||
msgstr ""
|
||||
msgstr "Vaidlustatav"
|
||||
|
||||
#. module: account
|
||||
#: 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 "Raha register"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.account.type,report_type:0
|
||||
@@ -1042,7 +1048,7 @@ msgstr "-"
|
||||
#. module: account
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Manager"
|
||||
msgstr ""
|
||||
msgstr "Juhataja"
|
||||
|
||||
#. module: account
|
||||
#: view:account.subscription.generate:0
|
||||
@@ -1052,7 +1058,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: selection:account.bank.accounts.wizard,account_type:0
|
||||
msgid "Bank"
|
||||
msgstr ""
|
||||
msgstr "Pank"
|
||||
|
||||
#. module: account
|
||||
#: field:account.period,date_start:0
|
||||
@@ -1062,13 +1068,13 @@ msgstr "Perioodi algus"
|
||||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
|
||||
msgid "Confirm statement"
|
||||
msgstr ""
|
||||
msgstr "Kinnita avaldus"
|
||||
|
||||
#. module: account
|
||||
#: field:account.fiscal.position.tax,tax_dest_id:0
|
||||
#: field:account.fiscal.position.tax.template,tax_dest_id:0
|
||||
msgid "Replacement Tax"
|
||||
msgstr ""
|
||||
msgstr "Vahetus maks"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.move.line,centralisation:0
|
||||
@@ -1087,12 +1093,12 @@ msgstr ""
|
||||
#. module: account
|
||||
#: view:account.invoice.cancel:0
|
||||
msgid "Cancel Invoices"
|
||||
msgstr ""
|
||||
msgstr "Peata arved"
|
||||
|
||||
#. module: account
|
||||
#: view:account.unreconcile.reconcile:0
|
||||
msgid "Unreconciliation transactions"
|
||||
msgstr ""
|
||||
msgstr "Mittesobivad tehingud"
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice.tax,tax_code_id:0
|
||||
@@ -1110,7 +1116,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: help:account.move.line,move_id:0
|
||||
msgid "The move of this entry line."
|
||||
msgstr ""
|
||||
msgstr "Selle rea liigutus."
|
||||
|
||||
#. module: account
|
||||
#: field:account.move.line.reconcile,trans_nbr:0
|
||||
@@ -1174,7 +1180,7 @@ msgstr "Konto"
|
||||
#. module: account
|
||||
#: field:account.tax,include_base_amount:0
|
||||
msgid "Included in base amount"
|
||||
msgstr ""
|
||||
msgstr "Lisa baas osa"
|
||||
|
||||
#. module: account
|
||||
#: view:account.entries.report:0
|
||||
@@ -1186,7 +1192,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: field:account.account,level:0
|
||||
msgid "Level"
|
||||
msgstr ""
|
||||
msgstr "Tase"
|
||||
|
||||
#. module: account
|
||||
#: report:account.invoice:0
|
||||
@@ -1207,7 +1213,7 @@ msgstr "Maksud"
|
||||
#: code:addons/account/wizard/account_report_common.py:120
|
||||
#, python-format
|
||||
msgid "Select a starting and an ending period"
|
||||
msgstr ""
|
||||
msgstr "Vali algus ja lõpp periood"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_account_template
|
||||
@@ -1217,12 +1223,12 @@ msgstr "Mallid kontodele"
|
||||
#. module: account
|
||||
#: view:account.tax.code.template:0
|
||||
msgid "Search tax template"
|
||||
msgstr ""
|
||||
msgstr "Otsi maksu templati"
|
||||
|
||||
#. module: account
|
||||
#: report:account.invoice:0
|
||||
msgid "Your Reference"
|
||||
msgstr ""
|
||||
msgstr "Teie viide"
|
||||
|
||||
#. module: account
|
||||
#: view:account.move.reconcile:0
|
||||
@@ -1246,7 +1252,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
msgid "Reset to Draft"
|
||||
msgstr ""
|
||||
msgstr "Lähtesta mustandiks"
|
||||
|
||||
#. module: account
|
||||
#: view:wizard.multi.charts.accounts:0
|
||||
@@ -1268,7 +1274,7 @@ msgstr ""
|
||||
#: model:ir.actions.act_window,name:account.action_partner_all
|
||||
#: model:ir.ui.menu,name:account.next_id_22
|
||||
msgid "Partners"
|
||||
msgstr ""
|
||||
msgstr "Partnerid"
|
||||
|
||||
#. module: account
|
||||
#: view:account.bank.statement:0
|
||||
@@ -1323,7 +1329,7 @@ msgstr "Bilanss pole 0"
|
||||
#. module: account
|
||||
#: view:account.tax:0
|
||||
msgid "Search Taxes"
|
||||
msgstr ""
|
||||
msgstr "Otsi maksu"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_analytic_cost_ledger
|
||||
@@ -1338,7 +1344,7 @@ msgstr "Loo sissekanded"
|
||||
#. module: account
|
||||
#: field:account.entries.report,nbr:0
|
||||
msgid "# of Items"
|
||||
msgstr ""
|
||||
msgstr "# detaile"
|
||||
|
||||
#. module: account
|
||||
#: field:account.automatic.reconcile,max_amount:0
|
||||
@@ -1353,7 +1359,7 @@ msgstr "Arvuta maksud"
|
||||
#. module: account
|
||||
#: field:wizard.multi.charts.accounts,code_digits:0
|
||||
msgid "# of Digits"
|
||||
msgstr ""
|
||||
msgstr "# numbrit"
|
||||
|
||||
#. module: account
|
||||
#: field:account.journal,entry_posted:0
|
||||
@@ -1364,7 +1370,7 @@ msgstr ""
|
||||
#: view:account.invoice.report:0
|
||||
#: field:account.invoice.report,price_total:0
|
||||
msgid "Total Without Tax"
|
||||
msgstr ""
|
||||
msgstr "Kokku ilma maksudeta"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,help:account.action_move_journal_line
|
||||
@@ -1378,7 +1384,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: view:account.entries.report:0
|
||||
msgid "# of Entries "
|
||||
msgstr ""
|
||||
msgstr "# sisestusi "
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_temp_range
|
||||
@@ -1435,7 +1441,7 @@ msgstr "Mall finantspositsioonile"
|
||||
#. module: account
|
||||
#: model:account.tax.code,name:account.account_tax_code_0
|
||||
msgid "Tax Code Test"
|
||||
msgstr ""
|
||||
msgstr "Maksu koodi test"
|
||||
|
||||
#. module: account
|
||||
#: field:account.automatic.reconcile,reconciled:0
|
||||
@@ -1445,22 +1451,22 @@ msgstr ""
|
||||
#. module: account
|
||||
#: field:account.journal.view,columns_id:0
|
||||
msgid "Columns"
|
||||
msgstr ""
|
||||
msgstr "Veerud"
|
||||
|
||||
#. module: account
|
||||
#: report:account.overdue:0
|
||||
msgid "."
|
||||
msgstr ""
|
||||
msgstr "."
|
||||
|
||||
#. module: account
|
||||
#: view:account.analytic.cost.ledger.journal.report:0
|
||||
msgid "and Journals"
|
||||
msgstr ""
|
||||
msgstr "ja arveraamatud"
|
||||
|
||||
#. module: account
|
||||
#: field:account.journal,groups_id:0
|
||||
msgid "Groups"
|
||||
msgstr ""
|
||||
msgstr "Grupid"
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice,amount_untaxed:0
|
||||
@@ -1471,18 +1477,20 @@ msgstr "Maksuvaba"
|
||||
#. module: account
|
||||
#: view:account.partner.reconcile.process:0
|
||||
msgid "Go to next partner"
|
||||
msgstr ""
|
||||
msgstr "Mine järgmise \"Partner\"-ile"
|
||||
|
||||
#. module: account
|
||||
#: view:account.bank.statement:0
|
||||
msgid "Search Bank Statements"
|
||||
msgstr ""
|
||||
msgstr "Otsi panga avaldust"
|
||||
|
||||
#. module: account
|
||||
#: sql_constraint:account.model.line:0
|
||||
msgid ""
|
||||
"Wrong credit or debit value in model (Credit + Debit Must Be greater \"0\")!"
|
||||
msgstr ""
|
||||
"Vale krediidi või deebeti arv mudelis ( Krediit + Deebet Peab olema suurem "
|
||||
"kui \"0\" ) !"
|
||||
|
||||
#. module: account
|
||||
#: view:account.chart.template:0
|
||||
@@ -1516,14 +1524,14 @@ msgstr ""
|
||||
#. module: account
|
||||
#: report:account.analytic.account.cost_ledger:0
|
||||
msgid "Date/Code"
|
||||
msgstr ""
|
||||
msgstr "Kuupäev/Kood"
|
||||
|
||||
#. module: account
|
||||
#: field:account.analytic.line,general_account_id:0
|
||||
#: view:analytic.entries.report:0
|
||||
#: field:analytic.entries.report,general_account_id:0
|
||||
msgid "General Account"
|
||||
msgstr ""
|
||||
msgstr "Üldine konto"
|
||||
|
||||
#. module: account
|
||||
#: field:res.partner,debit_limit:0
|
||||
@@ -1554,13 +1562,13 @@ msgstr ""
|
||||
#. module: account
|
||||
#: field:wizard.multi.charts.accounts,seq_journal:0
|
||||
msgid "Separated Journal Sequences"
|
||||
msgstr ""
|
||||
msgstr "Eraldatud päeviku järjekorrad"
|
||||
|
||||
#. module: account
|
||||
#: field:account.bank.statement,user_id:0
|
||||
#: view:account.invoice:0
|
||||
msgid "Responsible"
|
||||
msgstr ""
|
||||
msgstr "Vastutav"
|
||||
|
||||
#. module: account
|
||||
#: report:account.overdue:0
|
||||
@@ -1570,7 +1578,7 @@ msgstr "Vahesumma:"
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_report_account_type_sales_tree_all
|
||||
msgid "Sales by Account Type"
|
||||
msgstr ""
|
||||
msgstr "Müügid konto järgi"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.refund:0
|
||||
@@ -1582,7 +1590,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: model:ir.ui.menu,name:account.periodical_processing_invoicing
|
||||
msgid "Invoicing"
|
||||
msgstr ""
|
||||
msgstr "Arveldamine"
|
||||
|
||||
#. module: account
|
||||
#: field:account.chart.template,tax_code_root_id:0
|
||||
@@ -1598,17 +1606,17 @@ msgstr "Kaasa algsed"
|
||||
#. module: account
|
||||
#: field:account.tax.code,sum:0
|
||||
msgid "Year Sum"
|
||||
msgstr ""
|
||||
msgstr "Aasta kokkuvõtte"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.report.xml,name:account.report_account_voucher_new
|
||||
msgid "Print Voucher"
|
||||
msgstr ""
|
||||
msgstr "Prindi voucher"
|
||||
|
||||
#. module: account
|
||||
#: view:account.change.currency:0
|
||||
msgid "This wizard will change the currency of the invoice"
|
||||
msgstr ""
|
||||
msgstr "See wizard muudab valuuta arvelduses"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,help:account.action_account_chart
|
||||
@@ -1632,7 +1640,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: field:account.cashbox.line,pieces:0
|
||||
msgid "Values"
|
||||
msgstr ""
|
||||
msgstr "Väärtused"
|
||||
|
||||
#. module: account
|
||||
#: help:account.journal.period,active:0
|
||||
@@ -1675,7 +1683,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: report:account.move.voucher:0
|
||||
msgid "Ref. :"
|
||||
msgstr ""
|
||||
msgstr "Viide:"
|
||||
|
||||
#. module: account
|
||||
#: view:account.analytic.chart:0
|
||||
@@ -1685,7 +1693,7 @@ msgstr "Analüütilised kontoplaanid"
|
||||
#. module: account
|
||||
#: view:account.analytic.line:0
|
||||
msgid "My Entries"
|
||||
msgstr ""
|
||||
msgstr "Minu sisestused"
|
||||
|
||||
#. module: account
|
||||
#: report:account.overdue:0
|
||||
@@ -1696,7 +1704,7 @@ msgstr "Kliendi viide:"
|
||||
#: code:addons/account/account_cash_statement.py:328
|
||||
#, python-format
|
||||
msgid "User %s does not have rights to access %s journal !"
|
||||
msgstr ""
|
||||
msgstr "Kasutajal %s ei ole õigusi et siseneda %s arveraamatusse !"
|
||||
|
||||
#. module: account
|
||||
#: help:account.period,special:0
|
||||
@@ -1717,12 +1725,12 @@ msgstr ""
|
||||
#: code:addons/account/account.py:499
|
||||
#, python-format
|
||||
msgid "You cannot deactivate an account that contains account moves."
|
||||
msgstr ""
|
||||
msgstr "Sa ei saa deaktiveerida kontot mis sisaldab konto liikumisi."
|
||||
|
||||
#. module: account
|
||||
#: field:account.move.line.reconcile,credit:0
|
||||
msgid "Credit amount"
|
||||
msgstr ""
|
||||
msgstr "Kreedidi kogus"
|
||||
|
||||
#. module: account
|
||||
#: constraint:account.move.line:0
|
||||
@@ -1745,7 +1753,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: sql_constraint:account.move.line:0
|
||||
msgid "Wrong credit or debit value in accounting entry !"
|
||||
msgstr ""
|
||||
msgstr "Vale kreedit või deebeti raamatupidamise sisend !"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice.report:0
|
||||
@@ -1757,7 +1765,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_account_period_close
|
||||
msgid "period close"
|
||||
msgstr ""
|
||||
msgstr "Periood suletud"
|
||||
|
||||
#. module: account
|
||||
#: view:account.installer:0
|
||||
@@ -1767,18 +1775,18 @@ msgstr ""
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.action_project_account_analytic_line_form
|
||||
msgid "Entries By Line"
|
||||
msgstr ""
|
||||
msgstr "SIsestused ridade kaupa"
|
||||
|
||||
#. module: account
|
||||
#: report:account.tax.code.entries:0
|
||||
msgid "A/c Code"
|
||||
msgstr ""
|
||||
msgstr "A/c kood"
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice,move_id:0
|
||||
#: field:account.invoice,move_name:0
|
||||
msgid "Journal Entry"
|
||||
msgstr ""
|
||||
msgstr "Päevaraamatu kanne"
|
||||
|
||||
#. module: account
|
||||
#: view:account.tax:0
|
||||
@@ -1788,7 +1796,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: field:account.cashbox.line,subtotal:0
|
||||
msgid "Sub Total"
|
||||
msgstr ""
|
||||
msgstr "Vahesumma"
|
||||
|
||||
#. module: account
|
||||
#: view:account.account:0
|
||||
@@ -1798,7 +1806,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr ""
|
||||
msgstr "Viga! Sa ei saa luua rekursiivseid ettevõtteid."
|
||||
|
||||
#. module: account
|
||||
#: view:account.analytic.account:0
|
||||
@@ -1821,12 +1829,12 @@ msgstr "Kehtiv"
|
||||
#: 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 "Prindi konto arveraamat"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model,name:account.model_product_category
|
||||
msgid "Product Category"
|
||||
msgstr ""
|
||||
msgstr "Toote kategooria"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.account.type,report_type:0
|
||||
@@ -1836,7 +1844,7 @@ msgstr "/"
|
||||
#. module: account
|
||||
#: field:account.bs.report,reserve_account_id:0
|
||||
msgid "Reserve & Profit/Loss Account"
|
||||
msgstr ""
|
||||
msgstr "Reservi & kasumi/kahjumi konto"
|
||||
|
||||
#. module: account
|
||||
#: help:account.bank.statement,balance_end:0
|
||||
@@ -1887,12 +1895,12 @@ msgstr ""
|
||||
#: field:account.installer.modules,config_logo:0
|
||||
#: field:wizard.multi.charts.accounts,config_logo:0
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
msgstr "Pilt"
|
||||
|
||||
#. module: account
|
||||
#: report:account.move.voucher:0
|
||||
msgid "Canceled"
|
||||
msgstr ""
|
||||
msgstr "Tühistatud"
|
||||
|
||||
#. module: account
|
||||
#: view:account.invoice:0
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2010-12-11 23:34+0000\n"
|
||||
"Last-Translator: BlueT - Matthew Lien - 練喆明 <bluet@ubuntu-tw.org>\n"
|
||||
"PO-Revision-Date: 2011-09-27 10:01+0000\n"
|
||||
"Last-Translator: Walter Cheuk <wwycheuk@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-17 05:02+0000\n"
|
||||
"X-Generator: Launchpad (build 13955)\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\n"
|
||||
|
||||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_supplierreconcilepaid0
|
||||
@@ -48,7 +48,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: field:account.installer.modules,account_voucher:0
|
||||
msgid "Voucher Management"
|
||||
msgstr ""
|
||||
msgstr "換票券管理"
|
||||
|
||||
#. module: account
|
||||
#: view:account.account:0
|
||||
@@ -3550,7 +3550,7 @@ msgstr ""
|
||||
#: view:product.template:0
|
||||
#: view:res.partner:0
|
||||
msgid "Accounting"
|
||||
msgstr "账号"
|
||||
msgstr "會計"
|
||||
|
||||
#. module: account
|
||||
#: help:account.central.journal,amount_currency:0
|
||||
@@ -6779,7 +6779,7 @@ msgstr ""
|
||||
#: field:account.invoice.tax,invoice_id:0
|
||||
#: model:ir.model,name:account.model_account_invoice_line
|
||||
msgid "Invoice Line"
|
||||
msgstr "发票行"
|
||||
msgstr "發票明細"
|
||||
|
||||
#. module: account
|
||||
#: field:account.balance.report,display_account:0
|
||||
@@ -6788,7 +6788,7 @@ msgstr "发票行"
|
||||
#: field:account.pl.report,display_account:0
|
||||
#: field:account.report.general.ledger,display_account:0
|
||||
msgid "Display accounts"
|
||||
msgstr ""
|
||||
msgstr "顯示帳號"
|
||||
|
||||
#. module: account
|
||||
#: field:account.account.type,sign:0
|
||||
@@ -9305,7 +9305,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: field:account.invoice,invoice_line:0
|
||||
msgid "Invoice Lines"
|
||||
msgstr "发票行"
|
||||
msgstr "發票明細"
|
||||
|
||||
#. module: account
|
||||
#: constraint:account.account.template:0
|
||||
|
||||
@@ -46,23 +46,14 @@ class ir_sequence(osv.osv):
|
||||
'fiscal_ids': fields.one2many('account.sequence.fiscalyear',
|
||||
'sequence_main_id', 'Sequences')
|
||||
}
|
||||
def get_id(self, cr, uid, sequence_id, test='id', context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
cr.execute('select id from ir_sequence where '
|
||||
+ test + '=%s and active=%s', (sequence_id, True,))
|
||||
res = cr.dictfetchone()
|
||||
if res:
|
||||
for line in self.browse(cr, uid, res['id'],
|
||||
context=context).fiscal_ids:
|
||||
if line.fiscalyear_id.id == context.get('fiscalyear_id', False):
|
||||
return super(ir_sequence, self).get_id(cr, uid,
|
||||
line.sequence_id.id,
|
||||
test="id",
|
||||
context=context)
|
||||
return super(ir_sequence, self).get_id(cr, uid, sequence_id, test,
|
||||
context=context)
|
||||
|
||||
def _next(self, cr, uid, seq_ids, context=None):
|
||||
for seq in self.browse(cr, uid, seq_ids, context):
|
||||
for line in seq.fiscal_ids:
|
||||
if line.fiscalyear_id.id == context.get('fiscalyear_id'):
|
||||
return super(ir_sequence, self)._next(cr, uid, [line.sequence_id.id], context)
|
||||
return super(ir_sequence, self)._next(cr, uid, seq_ids, context)
|
||||
|
||||
ir_sequence()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -29,7 +29,7 @@ class account_analytic_cost_ledger_journal_report(osv.osv_memory):
|
||||
_columns = {
|
||||
'date1': fields.date('Start of period', required=True),
|
||||
'date2': fields.date('End of period', required=True),
|
||||
'journal': fields.many2many('account.analytic.journal', 'ledger_journal_rel', 'ledger_id', 'Journal_id', 'Journals'),
|
||||
'journal': fields.many2many('account.analytic.journal', 'ledger_journal_rel', 'ledger_id', 'journal_id', 'Journals'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
code: NEW
|
||||
type: situation
|
||||
analytic_journal_id: sit
|
||||
sequence_id: sequence_journal
|
||||
default_debit_account_id: cash
|
||||
default_credit_account_id: cash
|
||||
company_id: base.main_company
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
!python {model: account.account}: |
|
||||
ctx={}
|
||||
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
|
||||
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False}
|
||||
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False,'target_move': 'all'}
|
||||
from tools import test_reports
|
||||
test_reports.try_report_action(cr, uid, 'action_account_pl_report',wiz_data=data_dict, context=ctx, our_module='account')
|
||||
-
|
||||
@@ -156,7 +156,7 @@
|
||||
!python {model: account.account}: |
|
||||
ctx={}
|
||||
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
|
||||
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': True}
|
||||
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': True,'target_move': 'all'}
|
||||
from tools import test_reports
|
||||
test_reports.try_report_action(cr, uid, 'action_account_pl_report',wiz_data=data_dict, context=ctx, our_module='account')
|
||||
-
|
||||
|
||||
@@ -19,13 +19,17 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv
|
||||
from osv import osv, fields
|
||||
|
||||
class account_balance_report(osv.osv_memory):
|
||||
_inherit = "account.common.account.report"
|
||||
_name = 'account.balance.report'
|
||||
_description = 'Trial Balance Report'
|
||||
|
||||
_columns = {
|
||||
'journal_ids': fields.many2many('account.journal', 'account_balance_report_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'journal_ids': [],
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ class account_aged_trial_balance(osv.osv_memory):
|
||||
'direction_selection': fields.selection([('past','Past'),
|
||||
('future','Future')],
|
||||
'Analysis Direction', required=True),
|
||||
'journal_ids': fields.many2many('account.journal', 'account_aged_trial_balance_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
|
||||
}
|
||||
_defaults = {
|
||||
'period_length': 30,
|
||||
|
||||
@@ -40,11 +40,9 @@ class account_bs_report(osv.osv_memory):
|
||||
_columns = {
|
||||
'display_type': fields.boolean("Landscape Mode"),
|
||||
'reserve_account_id': fields.many2one('account.account', 'Reserve & Profit/Loss Account',
|
||||
required=True,
|
||||
help='This Account is used for transfering Profit/Loss ' \
|
||||
'(Profit: Amount will be added, Loss: Amount will be duducted), ' \
|
||||
'which is calculated from Profilt & Loss Report',
|
||||
help='This account is used for transferring Profit/Loss (If It is Profit: Amount will be added, Loss : Amount will be deducted.), as calculated in Profit & Loss Report',
|
||||
domain = [('type','=','other')]),
|
||||
'journal_ids': fields.many2many('account.journal', 'account_bs_report_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
|
||||
}
|
||||
|
||||
_defaults={
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='target_move']" position="after">
|
||||
<field name="display_account"/>
|
||||
<field name="reserve_account_id" required="1"/>
|
||||
<field name="reserve_account_id"/>
|
||||
<field name="display_type"/>
|
||||
<newline/>
|
||||
</xpath>
|
||||
|
||||
@@ -19,13 +19,17 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv
|
||||
from osv import osv, fields
|
||||
|
||||
class account_central_journal(osv.osv_memory):
|
||||
_name = 'account.central.journal'
|
||||
_description = 'Account Central Journal'
|
||||
_inherit = "account.common.journal.report"
|
||||
|
||||
_columns = {
|
||||
'journal_ids': fields.many2many('account.journal', 'account_central_journal_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
|
||||
}
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
data = self.pre_print_report(cr, uid, ids, data, context=context)
|
||||
return {
|
||||
|
||||
@@ -35,7 +35,7 @@ class account_common_report(osv.osv_memory):
|
||||
'filter': fields.selection([('filter_no', 'No Filters'), ('filter_date', 'Date'), ('filter_period', 'Periods')], "Filter by", required=True),
|
||||
'period_from': fields.many2one('account.period', 'Start Period'),
|
||||
'period_to': fields.many2one('account.period', 'End Period'),
|
||||
'journal_ids': fields.many2many('account.journal', 'account_common_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
|
||||
'journal_ids': fields.many2many('account.journal', string='Journals', required=True),
|
||||
'date_from': fields.date("Start Date"),
|
||||
'date_to': fields.date("End Date"),
|
||||
'target_move': fields.selection([('posted', 'All Posted Entries'),
|
||||
|
||||
@@ -19,17 +19,21 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv
|
||||
from osv import osv, fields
|
||||
|
||||
class account_general_journal(osv.osv_memory):
|
||||
_inherit = "account.common.journal.report"
|
||||
_name = 'account.general.journal'
|
||||
_description = 'Account General Journal'
|
||||
|
||||
_columns = {
|
||||
'journal_ids': fields.many2many('account.journal', 'account_general_journal_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
|
||||
}
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
data = self.pre_print_report(cr, uid, ids, data, context=context)
|
||||
return {'type': 'ir.actions.report.xml', 'report_name': 'account.general.journal', 'datas': data}
|
||||
|
||||
account_general_journal()
|
||||
|
||||
#vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
#vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -32,6 +32,7 @@ class account_report_general_ledger(osv.osv_memory):
|
||||
help='If you selected to filter by date or period, this field allow you to add a row to display the amount of debit/credit/balance that precedes the filter you\'ve set.'),
|
||||
'amount_currency': fields.boolean("With Currency", help="It adds the currency column if the currency is different then the company currency"),
|
||||
'sortby': fields.selection([('sort_date', 'Date'), ('sort_journal_partner', 'Journal & Partner')], 'Sort by', required=True),
|
||||
'journal_ids': fields.many2many('account.journal', 'account_report_general_ledger_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
|
||||
}
|
||||
_defaults = {
|
||||
'landscape': True,
|
||||
|
||||
@@ -31,6 +31,7 @@ class account_partner_balance(osv.osv_memory):
|
||||
_columns = {
|
||||
'display_partner': fields.selection([('non-zero_balance', 'With balance is not equal to 0'), ('all', 'All Partners')]
|
||||
,'Display Partners'),
|
||||
'journal_ids': fields.many2many('account.journal', 'account_partner_balance_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
@@ -51,4 +52,4 @@ class account_partner_balance(osv.osv_memory):
|
||||
|
||||
account_partner_balance()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -35,6 +35,7 @@ class account_partner_ledger(osv.osv_memory):
|
||||
'filter': fields.selection([('filter_no', 'No Filters'), ('filter_date', 'Date'), ('filter_period', 'Periods'), ('unreconciled', 'Unreconciled Entries')], "Filter by", required=True),
|
||||
'page_split': fields.boolean('One Partner Per Page', help='Display Ledger Report with One partner per page'),
|
||||
'amount_currency': fields.boolean("With Currency", help="It adds the currency column if the currency is different then the company currency"),
|
||||
'journal_ids': fields.many2many('account.journal', 'account_partner_ledger_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
|
||||
}
|
||||
_defaults = {
|
||||
'initial_balance': False,
|
||||
|
||||
@@ -30,6 +30,7 @@ class account_print_journal(osv.osv_memory):
|
||||
'sort_selection': fields.selection([('date', 'Date'),
|
||||
('ref', 'Reference Number'),],
|
||||
'Entries Sorted by', required=True),
|
||||
'journal_ids': fields.many2many('account.journal', 'account_print_journal_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
|
||||
}
|
||||
_defaults = {
|
||||
'sort_selection': 'date',
|
||||
@@ -44,4 +45,4 @@ class account_print_journal(osv.osv_memory):
|
||||
|
||||
account_print_journal()
|
||||
|
||||
#vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
#vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -28,14 +28,15 @@ class account_pl_report(osv.osv_memory):
|
||||
_inherit = "account.common.account.report"
|
||||
_name = "account.pl.report"
|
||||
_description = "Account Profit And Loss Report"
|
||||
|
||||
_columns = {
|
||||
'display_type': fields.boolean("Landscape Mode"),
|
||||
'journal_ids': fields.many2many('account.journal', 'account_pl_report_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'display_type': False,
|
||||
'journal_ids': [],
|
||||
'target_move': False
|
||||
}
|
||||
|
||||
def _print_report(self, cr, uid, ids, data, context=None):
|
||||
|
||||
@@ -9,9 +9,6 @@
|
||||
<field name="inherit_id" ref="account.account_common_report_view" />
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<xpath expr="//field[@name='target_move']" position="replace">
|
||||
<field name="target_move" required="0" readonly="1"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='journal_ids']" position="replace">
|
||||
<field name="journal_ids" required="0" colspan="4" nolabel="1" readonly="1"/>
|
||||
</xpath>
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# Chinese (Traditional) 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 <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 09:57+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\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 "會計師"
|
||||
@@ -366,7 +366,7 @@ class account_move_line(osv.osv):
|
||||
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
|
||||
if context is None:
|
||||
context = {}
|
||||
result = super(osv.osv, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu)
|
||||
result = super(account_move_line, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu)
|
||||
return result
|
||||
|
||||
account_move_line()
|
||||
@@ -496,4 +496,4 @@ class account_bank_statement_line(osv.osv):
|
||||
}
|
||||
account_bank_statement_line()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
# Chinese (Traditional) 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 <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 10:28+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\n"
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: view:product.category:0
|
||||
msgid " Accounting Property"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: sql_constraint:purchase.order:0
|
||||
msgid "Order Reference must be unique !"
|
||||
msgstr "訂單參考不能重覆!"
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: constraint:product.category:0
|
||||
msgid "Error ! You can not create recursive categories."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: constraint:product.template:0
|
||||
msgid ""
|
||||
"Error: The default UOM and the purchase UOM must be in the same category."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.model,name:account_anglo_saxon.model_account_invoice_line
|
||||
msgid "Invoice Line"
|
||||
msgstr "發票明細"
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.model,name:account_anglo_saxon.model_purchase_order
|
||||
msgid "Purchase Order"
|
||||
msgstr "購貨單"
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.model,name:account_anglo_saxon.model_product_template
|
||||
msgid "Product Template"
|
||||
msgstr "產品範本"
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.model,name:account_anglo_saxon.model_product_category
|
||||
msgid "Product Category"
|
||||
msgstr "產品分類"
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.module.module,shortdesc:account_anglo_saxon.module_meta_information
|
||||
msgid "Stock Accounting for Anglo Saxon countries"
|
||||
msgstr ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.model,name:account_anglo_saxon.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr "發票"
|
||||
|
||||
#. module: account_anglo_saxon
|
||||
#: model:ir.model,name:account_anglo_saxon.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr "提貨清單"
|
||||
|
||||
#. 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 ""
|
||||
@@ -0,0 +1,529 @@
|
||||
# Brazilian Portuguese 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 <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-11-24 12:54+0000\n"
|
||||
"PO-Revision-Date: 2011-09-30 14:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-10-01 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 14071)\n"
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_list_normal
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_list_normal
|
||||
msgid "Open Assets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,method_end:0
|
||||
#: field:account.asset.property.history,method_end:0
|
||||
msgid "Ending date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Depreciation board"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
#: field:account.asset.asset,name:0
|
||||
#: field:account.asset.board,asset_id:0
|
||||
#: field:account.asset.property,asset_id:0
|
||||
#: field:account.invoice.line,asset_id:0
|
||||
#: field:account.move.line,asset_id:0
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_form
|
||||
#: model:ir.model,name:account_asset.model_account_asset_asset
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_form
|
||||
msgid "Asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,method:0
|
||||
msgid "Linear"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Change duration"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,child_ids:0
|
||||
msgid "Child assets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.board,value_asset:0
|
||||
msgid "Asset Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_field:account.asset.modify,init,name:0
|
||||
msgid "Reason"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
#: field:account.asset.asset,entry_ids:0
|
||||
#: wizard_field:account.asset.compute,asset_compute,move_ids:0
|
||||
msgid "Entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.compute,asset_compute:0
|
||||
msgid "Generated entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_field:account.asset.modify,init,method_delay:0
|
||||
#: field:account.asset.property,method_delay:0
|
||||
#: field:account.asset.property.history,method_delay:0
|
||||
msgid "Number of interval"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_button:account.asset.compute,asset_compute,asset_open:0
|
||||
msgid "Open entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_list
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_list
|
||||
#: model:ir.ui.menu,name:account_asset.menu_finance_Assets
|
||||
#: model:ir.ui.menu,name:account_asset.menu_finance_config_Assets
|
||||
msgid "Assets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,method:0
|
||||
msgid "Progressive"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_list_draft
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_list_draft
|
||||
msgid "Draft Assets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.modify,init:0
|
||||
#: wizard_field:account.asset.modify,init,note:0
|
||||
#: view:account.asset.property.history:0
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Change history"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Depreciation entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Methods"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.modify,init:0
|
||||
msgid "Asset properties to modify"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_field:account.asset.modify,init,method_period:0
|
||||
#: field:account.asset.property,method_period:0
|
||||
#: field:account.asset.property.history,method_period:0
|
||||
msgid "Period per interval"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Depreciation duration"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,account_analytic_id:0
|
||||
msgid "Analytic account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Depreciation methods"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Other information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.board,value_asset_cumul:0
|
||||
msgid "Cumul. value"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.property:0
|
||||
msgid "Assets methods"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.model,name:account_asset.model_account_asset_property
|
||||
msgid "Asset property"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.compute,asset_compute:0
|
||||
#: wizard_view:account.asset.compute,init:0
|
||||
#: wizard_button:account.asset.compute,init,asset_compute:0
|
||||
#: model:ir.actions.wizard,name:account_asset.wizard_asset_compute
|
||||
#: model:ir.ui.menu,name:account_asset.menu_wizard_asset_compute
|
||||
msgid "Compute assets"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.modify,init:0
|
||||
#: wizard_button:account.asset.modify,init,asset_modify:0
|
||||
#: model:ir.actions.wizard,name:account_asset.wizard_asset_modify
|
||||
msgid "Modify asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Confirm asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.property.history:0
|
||||
#: model:ir.model,name:account_asset.model_account_asset_property_history
|
||||
msgid "Asset history"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,date:0
|
||||
msgid "Date created"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.module.module,description:account_asset.module_meta_information
|
||||
msgid ""
|
||||
"Financial and accounting asset management.\n"
|
||||
" Allows to define\n"
|
||||
" * Asset category. \n"
|
||||
" * Assets.\n"
|
||||
" *Asset usage period and property.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.board,value_gross:0
|
||||
#: field:account.asset.property,value_total:0
|
||||
msgid "Gross value"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,method_time:0
|
||||
msgid "Ending period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.board,name:0
|
||||
msgid "Asset name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Accounts information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,note:0
|
||||
#: field:account.asset.category,note:0
|
||||
#: field:account.asset.property.history,note:0
|
||||
msgid "Note"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.asset,state:0
|
||||
#: selection:account.asset.property,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,type:0
|
||||
msgid "Depr. method type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,account_asset_id:0
|
||||
msgid "Asset account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property.history,asset_property_id:0
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.asset,state:0
|
||||
msgid "Normal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,method_progress_factor:0
|
||||
msgid "Progressif factor"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,localisation:0
|
||||
msgid "Localisation"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,method:0
|
||||
msgid "Computation method"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,method_time:0
|
||||
msgid "Time method"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property.history,user_id:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,property_ids:0
|
||||
msgid "Asset method name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,date:0
|
||||
#: field:account.asset.property.history,date:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.board,value_net:0
|
||||
msgid "Net value"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.close,init:0
|
||||
#: model:ir.actions.wizard,name:account_asset.wizard_asset_close
|
||||
msgid "Close asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,history_ids:0
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,account_actif_id:0
|
||||
msgid "Depreciation account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,period_id:0
|
||||
#: wizard_field:account.asset.compute,init,period_id:0
|
||||
msgid "Period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_category_form
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_category_form
|
||||
msgid "Asset Category"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_button:account.asset.close,init,end:0
|
||||
#: wizard_button:account.asset.compute,init,end:0
|
||||
#: wizard_button:account.asset.modify,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.asset,state:0
|
||||
#: wizard_button:account.asset.compute,asset_compute,end:0
|
||||
#: selection:account.asset.property,state:0
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,state:0
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.module.module,shortdesc:account_asset.module_meta_information
|
||||
msgid "Asset management"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.board:0
|
||||
#: field:account.asset.property,board_ids:0
|
||||
#: model:ir.model,name:account_asset.model_account_asset_board
|
||||
msgid "Asset board"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,state:0
|
||||
msgid "Global state"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,method_time:0
|
||||
msgid "Delay"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_view:account.asset.close,init:0
|
||||
msgid "General information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,journal_analytic_id:0
|
||||
msgid "Analytic journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,name:0
|
||||
msgid "Method name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,journal_id:0
|
||||
msgid "Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property.history,name:0
|
||||
msgid "History name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Close method"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,entry_asset_ids:0
|
||||
msgid "Asset Entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,category_id:0
|
||||
#: view:account.asset.category:0
|
||||
#: field:account.asset.category,name:0
|
||||
#: model:ir.model,name:account_asset.model_account_asset_category
|
||||
msgid "Asset category"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "Depreciation"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,code:0
|
||||
#: field:account.asset.category,code:0
|
||||
msgid "Asset code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,value_total:0
|
||||
msgid "Total value"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.asset,state:0
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: view:account.asset.asset:0
|
||||
msgid "General info"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.property,value_residual:0
|
||||
msgid "Residual value"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: wizard_button:account.asset.close,init,asset_close:0
|
||||
msgid "End of asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,type:0
|
||||
msgid "Direct"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: selection:account.asset.property,type:0
|
||||
msgid "Indirect"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,parent_id:0
|
||||
msgid "Parent asset"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_tree
|
||||
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_tree
|
||||
msgid "Asset Hierarchy"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,259 @@
|
||||
# Chinese (Traditional) 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 <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 10:40+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\n"
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda,journal_id:0
|
||||
#: field:account.coda.import,journal_id:0
|
||||
msgid "Bank Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: field:account.coda.import,note:0
|
||||
msgid "Log"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.model,name:account_coda.model_account_coda_import
|
||||
msgid "Account Coda Import"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,name:0
|
||||
msgid "Coda file"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda.import,awaiting_account:0
|
||||
msgid "Default Account for Unrecognized Movement"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda,date:0
|
||||
msgid "Import Date"
|
||||
msgstr "匯入日期"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,note:0
|
||||
msgid "Import log"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Import"
|
||||
msgstr "匯入"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
msgid "Coda import"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: code:addons/account_coda/account_coda.py:51
|
||||
#, python-format
|
||||
msgid "Coda file not found for bank statement !!"
|
||||
msgstr ""
|
||||
|
||||
#. 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 "公司"
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: field:account.coda,user_id:0
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda:0
|
||||
#: field:account.coda,date:0
|
||||
msgid "Date"
|
||||
msgstr "日期"
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.ui.menu,name:account_coda.menu_account_coda_statement
|
||||
msgid "Coda Import Logs"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.model,name:account_coda.model_account_coda
|
||||
msgid "coda for an Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda.import,def_payable:0
|
||||
msgid "Default Payable Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: help:account.coda,name:0
|
||||
msgid "Store the detail of bank statements"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Open Statements"
|
||||
msgstr ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.bank.statement,coda_id:0
|
||||
msgid "Coda"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Results :"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Result of Imported Coda Statements"
|
||||
msgstr ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. 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 ""
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.model,name:account_coda.model_account_bank_statement
|
||||
msgid "Bank Statement"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.actions.act_window,name:account_coda.action_account_coda
|
||||
msgid "Coda Logs"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: code:addons/account_coda/wizard/account_coda_import.py:311
|
||||
#, python-format
|
||||
msgid "Result"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Click on 'New' to select your file :"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda.import,def_receivable:0
|
||||
msgid "Default Receivable Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_coda
|
||||
#: view:account.coda.import:0
|
||||
msgid "Close"
|
||||
msgstr "關閉"
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,statement_ids:0
|
||||
msgid "Generated Bank Statements"
|
||||
msgstr ""
|
||||
|
||||
#. 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 ""
|
||||
@@ -35,7 +35,7 @@ class account_move(osv.osv):
|
||||
seq_no = False
|
||||
for move in self.browse(cr, uid, ids, context=context):
|
||||
if move.journal_id.internal_sequence_id:
|
||||
seq_no = obj_sequence.get_id(cr, uid, move.journal_id.internal_sequence_id.id, context=context)
|
||||
seq_no = obj_sequence.next_by_id(cr, uid, move.journal_id.internal_sequence_id.id, context=context)
|
||||
if seq_no:
|
||||
self.write(cr, uid, [move.id], {'internal_sequence_number': seq_no})
|
||||
return res
|
||||
|
||||
@@ -0,0 +1,221 @@
|
||||
# Chinese (Traditional) 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 <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 11:32+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\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 "內部序列號碼"
|
||||
|
||||
#. module: account_sequence
|
||||
#: help:account.sequence.installer,number_next:0
|
||||
msgid "Next number of this sequence"
|
||||
msgstr "本序列下個號碼"
|
||||
|
||||
#. module: account_sequence
|
||||
#: field:account.sequence.installer,number_next:0
|
||||
msgid "Next Number"
|
||||
msgstr "下個號碼"
|
||||
|
||||
#. 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 ""
|
||||
@@ -674,7 +674,7 @@ class account_voucher(osv.osv):
|
||||
if inv.number:
|
||||
name = inv.number
|
||||
elif inv.journal_id.sequence_id:
|
||||
name = seq_obj.get_id(cr, uid, inv.journal_id.sequence_id.id)
|
||||
name = seq_obj.next_by_id(cr, uid, inv.journal_id.sequence_id.id)
|
||||
else:
|
||||
raise osv.except_osv(_('Error !'), _('Please define a sequence on the journal !'))
|
||||
if not inv.reference:
|
||||
|
||||
@@ -280,6 +280,7 @@
|
||||
<form string="Customer Payment">
|
||||
<group col="6" colspan="4">
|
||||
<field name="partner_id" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date)" string="Customer"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
<field name="amount"
|
||||
invisible="context.get('line_type', False)"
|
||||
string="Paid Amount"
|
||||
|
||||
@@ -239,7 +239,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'name': fields.char(size='64', string='File Name'),
|
||||
'name': fields.char(size=64, string='File Name'),
|
||||
'summary': fields.function(_get_summary, type='text', string='Summary'),
|
||||
'file_export': fields.binary(string='Export'),
|
||||
'file_import': fields.binary(string='Import'),
|
||||
|
||||
@@ -123,9 +123,6 @@ class audittrail_rule(osv.osv):
|
||||
#End Loop
|
||||
return True
|
||||
|
||||
audittrail_rule()
|
||||
|
||||
|
||||
class audittrail_log(osv.osv):
|
||||
"""
|
||||
For Audittrail Log
|
||||
@@ -161,9 +158,6 @@ class audittrail_log(osv.osv):
|
||||
}
|
||||
_order = "timestamp desc"
|
||||
|
||||
audittrail_log()
|
||||
|
||||
|
||||
class audittrail_log_line(osv.osv):
|
||||
"""
|
||||
Audittrail Log Line.
|
||||
@@ -181,9 +175,6 @@ class audittrail_log_line(osv.osv):
|
||||
'field_description': fields.char('Field Description', size=64),
|
||||
}
|
||||
|
||||
audittrail_log_line()
|
||||
|
||||
|
||||
class audittrail_objects_proxy(object_proxy):
|
||||
""" Uses Object proxy for auditing changes on object of subscribed Rules"""
|
||||
|
||||
@@ -289,8 +280,7 @@ class audittrail_objects_proxy(object_proxy):
|
||||
#End Loop
|
||||
return True
|
||||
|
||||
|
||||
def log_fct(self, db, uid, model, method, fct_src, *args):
|
||||
def log_fct(self, cr, uid, model, method, fct_src, *args):
|
||||
"""
|
||||
Logging function: This function is performs logging oprations according to method
|
||||
@param db: the current database
|
||||
@@ -304,8 +294,7 @@ class audittrail_objects_proxy(object_proxy):
|
||||
uid_orig = uid
|
||||
uid = 1
|
||||
res2 = args
|
||||
pool = pooler.get_pool(db)
|
||||
cr = pooler.get_db(db).cursor()
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
resource_pool = pool.get(model)
|
||||
log_pool = pool.get('audittrail.log')
|
||||
model_pool = pool.get('ir.model')
|
||||
@@ -316,8 +305,7 @@ class audittrail_objects_proxy(object_proxy):
|
||||
model = model_pool.browse(cr, uid, model_id)
|
||||
|
||||
if method in ('create'):
|
||||
res_id = fct_src(db, uid_orig, model.model, method, *args)
|
||||
cr.commit()
|
||||
res_id = fct_src(cr, uid_orig, model.model, method, *args)
|
||||
resource = resource_pool.read(cr, uid, res_id, args[0].keys())
|
||||
vals = {
|
||||
"method": method,
|
||||
@@ -338,14 +326,12 @@ class audittrail_objects_proxy(object_proxy):
|
||||
lines.append(line)
|
||||
self.create_log_line(cr, uid, log_id, model, lines)
|
||||
|
||||
cr.commit()
|
||||
cr.close()
|
||||
return res_id
|
||||
|
||||
elif method in ('read'):
|
||||
res_ids = args[0]
|
||||
old_values = {}
|
||||
res = fct_src(db, uid_orig, model.model, method, *args)
|
||||
res = fct_src(cr, uid_orig, model.model, method, *args)
|
||||
if type(res) == list:
|
||||
for v in res:
|
||||
old_values[v['id']] = v
|
||||
@@ -370,8 +356,6 @@ class audittrail_objects_proxy(object_proxy):
|
||||
lines.append(line)
|
||||
|
||||
self.create_log_line(cr, uid, log_id, model, lines)
|
||||
cr.commit()
|
||||
cr.close()
|
||||
return res
|
||||
|
||||
elif method in ('unlink'):
|
||||
@@ -401,9 +385,7 @@ class audittrail_objects_proxy(object_proxy):
|
||||
lines.append(line)
|
||||
|
||||
self.create_log_line(cr, uid, log_id, model, lines)
|
||||
res = fct_src(db, uid_orig, model.model, method, *args)
|
||||
cr.commit()
|
||||
cr.close()
|
||||
res = fct_src(cr, uid_orig, model.model, method, *args)
|
||||
return res
|
||||
else:
|
||||
res_ids = []
|
||||
@@ -428,8 +410,7 @@ class audittrail_objects_proxy(object_proxy):
|
||||
old_values_text[field] = self.get_value_text(cr, uid, field, resource[field], model)
|
||||
old_values[resource_id] = {'text':old_values_text, 'value': old_value}
|
||||
|
||||
res = fct_src(db, uid_orig, model.model, method, *args)
|
||||
cr.commit()
|
||||
res = fct_src(cr, uid_orig, model.model, method, *args)
|
||||
|
||||
if res_ids:
|
||||
for resource in resource_pool.read(cr, uid, res_ids):
|
||||
@@ -457,107 +438,40 @@ class audittrail_objects_proxy(object_proxy):
|
||||
lines.append(line)
|
||||
|
||||
self.create_log_line(cr, uid, log_id, model, lines)
|
||||
cr.commit()
|
||||
cr.close()
|
||||
return res
|
||||
return True
|
||||
|
||||
|
||||
|
||||
def execute(self, db, uid, model, method, *args, **kw):
|
||||
"""
|
||||
Overrides Object Proxy execute method
|
||||
@param db: the current database
|
||||
@param uid: the current user's ID for security checks,
|
||||
@param object: Object who's values are being changed
|
||||
@param method: get any method and create log
|
||||
|
||||
@return: Returns result as per method of Object proxy
|
||||
"""
|
||||
uid_orig = uid
|
||||
uid = 1
|
||||
pool = pooler.get_pool(db)
|
||||
model_pool = pool.get('ir.model')
|
||||
rule_pool = pool.get('audittrail.rule')
|
||||
cr = pooler.get_db(db).cursor()
|
||||
cr.autocommit(True)
|
||||
logged_uids = []
|
||||
fct_src = super(audittrail_objects_proxy, self).execute
|
||||
|
||||
def my_fct(db, uid, model, method, *args):
|
||||
rule = False
|
||||
model_ids = model_pool.search(cr, uid, [('model', '=', model)])
|
||||
def check_rules(self, cr, uid, model, method):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
# Check if auditrails is installed for that db and then if one rule match
|
||||
if 'audittrail.rule' in pool.models:
|
||||
model_ids = pool.get('ir.model').search(cr, 1, [('model', '=', model)])
|
||||
model_id = model_ids and model_ids[0] or False
|
||||
if model_id:
|
||||
rule_ids = pool.get('audittrail.rule').search(cr, 1, [('object_id', '=', model_id), ('state', '=', 'subscribed')])
|
||||
for rule in pool.get('audittrail.rule').read(cr, 1, rule_ids, ['user_id','log_read','log_write','log_create','log_unlink','log_action','log_workflow']):
|
||||
if len(rule['user_id'])==0 or uid in rule['user_id']:
|
||||
if rule.get('log_'+method,0):
|
||||
return True
|
||||
elif method not in ('default_get','read','fields_view_get','fields_get','search','search_count','name_search','name_get','get','request_get', 'get_sc', 'unlink', 'write', 'create'):
|
||||
if rule['log_action']:
|
||||
return True
|
||||
|
||||
for model_name in pool.obj_list():
|
||||
if model_name == 'audittrail.rule':
|
||||
rule = True
|
||||
if not rule:
|
||||
return fct_src(db, uid_orig, model, method, *args)
|
||||
if not model_id:
|
||||
return fct_src(db, uid_orig, model, method, *args)
|
||||
def execute_cr(self, cr, uid, model, method, *args, **kw):
|
||||
fct_src = super(audittrail_objects_proxy, self).execute_cr
|
||||
if self.check_rules(cr,uid,model,method):
|
||||
res = self.log_fct(cr, uid, model, method, fct_src, *args)
|
||||
else:
|
||||
res = fct_src(cr, uid, model, method, *args)
|
||||
return res
|
||||
|
||||
rule_ids = rule_pool.search(cr, uid, [('object_id', '=', model_id), ('state', '=', 'subscribed')])
|
||||
if not rule_ids:
|
||||
return fct_src(db, uid_orig, model, method, *args)
|
||||
|
||||
for thisrule in rule_pool.browse(cr, uid, rule_ids):
|
||||
for user in thisrule.user_id:
|
||||
logged_uids.append(user.id)
|
||||
if not logged_uids or uid in logged_uids:
|
||||
if method in ('read', 'write', 'create', 'unlink'):
|
||||
if getattr(thisrule, 'log_' + method):
|
||||
return self.log_fct(db, uid_orig, model, method, fct_src, *args)
|
||||
|
||||
elif method not in ('default_get','read','fields_view_get','fields_get','search','search_count','name_search','name_get','get','request_get', 'get_sc', 'unlink', 'write', 'create'):
|
||||
if thisrule.log_action:
|
||||
return self.log_fct(db, uid_orig, model, method, fct_src, *args)
|
||||
|
||||
return fct_src(db, uid_orig, model, method, *args)
|
||||
try:
|
||||
res = my_fct(db, uid, model, method, *args)
|
||||
return res
|
||||
finally:
|
||||
cr.close()
|
||||
|
||||
def exec_workflow(self, db, uid, model, method, *args, **argv):
|
||||
uid_orig = uid
|
||||
uid = 1
|
||||
|
||||
pool = pooler.get_pool(db)
|
||||
logged_uids = []
|
||||
fct_src = super(audittrail_objects_proxy, self).exec_workflow
|
||||
field = method
|
||||
rule = False
|
||||
model_pool = pool.get('ir.model')
|
||||
rule_pool = pool.get('audittrail.rule')
|
||||
cr = pooler.get_db(db).cursor()
|
||||
cr.autocommit(True)
|
||||
try:
|
||||
model_ids = model_pool.search(cr, uid, [('model', '=', model)])
|
||||
for obj_name in pool.obj_list():
|
||||
if obj_name == 'audittrail.rule':
|
||||
rule = True
|
||||
if not rule:
|
||||
return super(audittrail_objects_proxy, self).exec_workflow(db, uid_orig, model, method, *args, **argv)
|
||||
if not model_ids:
|
||||
return super(audittrail_objects_proxy, self).exec_workflow(db, uid_orig, model, method, *args, **argv)
|
||||
|
||||
rule_ids = rule_pool.search(cr, uid, [('object_id', 'in', model_ids), ('state', '=', 'subscribed')])
|
||||
if not rule_ids:
|
||||
return super(audittrail_objects_proxy, self).exec_workflow(db, uid_orig, model, method, *args, **argv)
|
||||
|
||||
for thisrule in rule_pool.browse(cr, uid, rule_ids):
|
||||
for user in thisrule.user_id:
|
||||
logged_uids.append(user.id)
|
||||
if not logged_uids or uid in logged_uids:
|
||||
if thisrule.log_workflow:
|
||||
return self.log_fct(db, uid_orig, model, method, fct_src, *args)
|
||||
return super(audittrail_objects_proxy, self).exec_workflow(db, uid_orig, model, method, *args, **argv)
|
||||
|
||||
return True
|
||||
finally:
|
||||
cr.close()
|
||||
def exec_workflow_cr(self, cr, uid, model, method, *args, **argv):
|
||||
fct_src = super(audittrail_objects_proxy, self).exec_workflow_cr
|
||||
if self.check_rules(cr,uid,model,'workflow'):
|
||||
res = self.log_fct(cr, uid, model, method, fct_src, *args)
|
||||
else:
|
||||
res = fct_src(cr, uid, model, method, *args)
|
||||
return res
|
||||
|
||||
audittrail_objects_proxy()
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2010-2011 OpenERP s.a. (<http://openerp.com>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import res_users
|
||||
import controllers
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2010-2011 OpenERP s.a. (<http://openerp.com>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
||||
{
|
||||
'name': 'OpenID',
|
||||
'version': '2.0',
|
||||
'category': 'Authentification',
|
||||
'description': """Allow users to login through OpenID.""",
|
||||
'author': 'OpenERP s.a.',
|
||||
'maintainer': 'OpenERP s.a.',
|
||||
'website': 'http://www.openerp.com',
|
||||
'depends': ['base'],
|
||||
'data': [
|
||||
'res_users.xml',
|
||||
],
|
||||
'js': [
|
||||
'static/src/js/auth_openid.js',
|
||||
],
|
||||
'css': [
|
||||
'static/src/css/openid.css',
|
||||
],
|
||||
'external_dependencies': {
|
||||
'python' : ['openid'],
|
||||
},
|
||||
'installable': True,
|
||||
'active': False,
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -0,0 +1,20 @@
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2011 OpenERP SA (<http://openerp.com>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import main
|
||||
@@ -0,0 +1,225 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2010-2011 OpenERP s.a. (<http://openerp.com>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
import urllib
|
||||
|
||||
import werkzeug.urls
|
||||
import werkzeug.exceptions
|
||||
|
||||
from openerp.modules.registry import RegistryManager
|
||||
import web.common.dispatch as openerpweb
|
||||
|
||||
from openid import oidutil
|
||||
from openid.store import memstore
|
||||
#from openid.store import filestore
|
||||
from openid.consumer import consumer
|
||||
from openid.cryptutil import randomString
|
||||
from openid.extensions import ax, sreg
|
||||
|
||||
from .. import utils
|
||||
|
||||
|
||||
|
||||
_logger = logging.getLogger('web.auth_openid')
|
||||
oidutil.log = logging.getLogger('openid').debug
|
||||
|
||||
|
||||
class GoogleAppsAwareConsumer(consumer.GenericConsumer):
|
||||
def complete(self, message, endpoint, return_to):
|
||||
if message.getOpenIDNamespace() == consumer.OPENID2_NS:
|
||||
server_url = message.getArg(consumer.OPENID2_NS, 'op_endpoint', consumer.no_default)
|
||||
if server_url.startswith('https://www.google.com/a/'):
|
||||
# update fields
|
||||
for attr in ['claimed_id', 'identity']:
|
||||
value = message.getArg(consumer.OPENID2_NS, attr)
|
||||
value = 'https://www.google.com/accounts/o8/user-xrds?uri=%s' % urllib.quote_plus(value)
|
||||
message.setArg(consumer.OPENID2_NS, attr, value)
|
||||
|
||||
# now, resign the message
|
||||
assoc_handle = message.getArg(consumer.OPENID_NS, 'assoc_handle')
|
||||
assoc = self.store.getAssociation(server_url, assoc_handle)
|
||||
message.delArg(consumer.OPENID2_NS, 'sig')
|
||||
message.delArg(consumer.OPENID2_NS, 'signed')
|
||||
message = assoc.signMessage(message)
|
||||
|
||||
return super(GoogleAppsAwareConsumer, self).complete(message, endpoint, return_to)
|
||||
|
||||
|
||||
class OpenIDController(openerpweb.Controller):
|
||||
_cp_path = '/auth_openid/login'
|
||||
|
||||
_store = memstore.MemoryStore() # TODO use a filestore
|
||||
|
||||
_REQUIRED_ATTRIBUTES = ['email']
|
||||
_OPTIONAL_ATTRIBUTES = 'nickname fullname postcode country language timezone'.split()
|
||||
|
||||
|
||||
def _add_extensions(self, request):
|
||||
"""Add extensions to the request"""
|
||||
|
||||
sreg_request = sreg.SRegRequest(required=self._REQUIRED_ATTRIBUTES,
|
||||
optional=self._OPTIONAL_ATTRIBUTES)
|
||||
request.addExtension(sreg_request)
|
||||
|
||||
ax_request = ax.FetchRequest()
|
||||
for alias in self._REQUIRED_ATTRIBUTES:
|
||||
uri = utils.SREG2AX[alias]
|
||||
ax_request.add(ax.AttrInfo(uri, required=True, alias=alias))
|
||||
for alias in self._OPTIONAL_ATTRIBUTES:
|
||||
uri = utils.SREG2AX[alias]
|
||||
ax_request.add(ax.AttrInfo(uri, required=False, alias=alias))
|
||||
|
||||
request.addExtension(ax_request)
|
||||
|
||||
def _get_attributes_from_success_response(self, success_response):
|
||||
attrs = {}
|
||||
|
||||
all_attrs = self._REQUIRED_ATTRIBUTES + self._OPTIONAL_ATTRIBUTES
|
||||
|
||||
sreg_resp = sreg.SRegResponse.fromSuccessResponse(success_response)
|
||||
if sreg_resp:
|
||||
for attr in all_attrs:
|
||||
value = sreg_resp.get(attr)
|
||||
if value is not None:
|
||||
attrs[attr] = value
|
||||
|
||||
ax_resp = ax.FetchResponse.fromSuccessResponse(success_response)
|
||||
if ax_resp:
|
||||
for attr in all_attrs:
|
||||
value = ax_resp.getSingle(utils.SREG2AX[attr])
|
||||
if value is not None:
|
||||
attrs[attr] = value
|
||||
return attrs
|
||||
|
||||
def _get_realm(self, req):
|
||||
return req.httprequest.host_url
|
||||
|
||||
@openerpweb.jsonrequest
|
||||
def verify(self, req, db, url):
|
||||
redirect_to = werkzeug.urls.Href(req.httprequest.host_url + 'auth_openid/login/process')(session_id=req.session_id)
|
||||
realm = self._get_realm(req)
|
||||
|
||||
session = dict(dbname=db, openid_url=url) # TODO add origin page ?
|
||||
oidconsumer = consumer.Consumer(session, self._store)
|
||||
|
||||
try:
|
||||
request = oidconsumer.begin(url)
|
||||
except consumer.DiscoveryFailure, exc:
|
||||
fetch_error_string = 'Error in discovery: %s' % (str(exc[0]),)
|
||||
return {'error': fetch_error_string, 'title': 'OpenID Error'}
|
||||
|
||||
if request is None:
|
||||
return {'error': 'No OpenID services found', 'title': 'OpenID Error'}
|
||||
|
||||
req.session.openid_session = session
|
||||
self._add_extensions(request)
|
||||
|
||||
if request.shouldSendRedirect():
|
||||
redirect_url = request.redirectURL(realm, redirect_to)
|
||||
return {'action': 'redirect', 'value': redirect_url, 'session_id': req.session_id}
|
||||
else:
|
||||
form_html = request.htmlMarkup(realm, redirect_to)
|
||||
return {'action': 'post', 'value': form_html, 'session_id': req.session_id}
|
||||
|
||||
|
||||
@openerpweb.httprequest
|
||||
def process(self, req, **kw):
|
||||
session = getattr(req.session, 'openid_session', None)
|
||||
if not session:
|
||||
return werkzeug.utils.redirect('/')
|
||||
|
||||
oidconsumer = consumer.Consumer(session, self._store, consumer_class=GoogleAppsAwareConsumer)
|
||||
|
||||
query = req.httprequest.args
|
||||
info = oidconsumer.complete(query, req.httprequest.base_url)
|
||||
display_identifier = info.getDisplayIdentifier()
|
||||
|
||||
session['status'] = info.status
|
||||
user_id = None
|
||||
|
||||
if info.status == consumer.SUCCESS:
|
||||
dbname = session['dbname']
|
||||
with utils.cursor(dbname) as cr:
|
||||
registry = RegistryManager.get(dbname)
|
||||
Modules = registry.get('ir.module.module')
|
||||
|
||||
installed = Modules.search_count(cr, 1, ['&', ('name', '=', 'auth_openid'), ('state', '=', 'installed')]) == 1
|
||||
if installed:
|
||||
|
||||
Users = registry.get('res.users')
|
||||
|
||||
#openid_url = info.endpoint.canonicalID or display_identifier
|
||||
openid_url = session['openid_url']
|
||||
|
||||
attrs = self._get_attributes_from_success_response(info)
|
||||
attrs['openid_url'] = openid_url
|
||||
session['attributes'] = attrs
|
||||
openid_email = attrs.get('email', False)
|
||||
|
||||
domain = []
|
||||
if openid_email:
|
||||
domain += ['|', ('openid_email', '=', False)]
|
||||
domain += [('openid_email', '=', openid_email)]
|
||||
|
||||
domain += [
|
||||
('openid_url', '=', openid_url),
|
||||
('active', '=', True),
|
||||
]
|
||||
ids = Users.search(cr, 1, domain)
|
||||
assert len(ids) < 2
|
||||
if ids:
|
||||
user_id = ids[0]
|
||||
login = Users.browse(cr, 1, user_id).login
|
||||
key = randomString(utils.KEY_LENGTH, '0123456789abcdef')
|
||||
Users.write(cr, 1, [user_id], {'openid_key': key})
|
||||
# TODO fill empty fields with the ones from sreg/ax
|
||||
cr.commit()
|
||||
|
||||
u = req.session.login(dbname, login, key)
|
||||
|
||||
if not user_id:
|
||||
session['message'] = 'This OpenID identifier is not associated to any active users'
|
||||
|
||||
|
||||
elif info.status == consumer.SETUP_NEEDED:
|
||||
session['message'] = info.setup_url
|
||||
elif info.status == consumer.FAILURE and display_identifier:
|
||||
fmt = "Verification of %s failed: %s"
|
||||
session['message'] = fmt % (display_identifier, info.message)
|
||||
else: # FAILURE
|
||||
# Either we don't understand the code or there is no
|
||||
# openid_url included with the error. Give a generic
|
||||
# failure message. The library should supply debug
|
||||
# information in a log.
|
||||
session['message'] = 'Verification failed.'
|
||||
|
||||
|
||||
fragment = '#loginerror' if not user_id else ''
|
||||
return werkzeug.utils.redirect('/web/webclient/home?debug=1'+fragment)
|
||||
|
||||
@openerpweb.jsonrequest
|
||||
def status(self, req):
|
||||
session = getattr(req.session, 'openid_session', {})
|
||||
return {'status': session.get('status'), 'message': session.get('message')}
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env python
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2010-2011 OpenERP s.a. (<http://openerp.com>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
from openerp.osv import osv, fields
|
||||
import openerp.exceptions
|
||||
import tools
|
||||
|
||||
import utils
|
||||
|
||||
class res_users(osv.osv):
|
||||
_inherit = 'res.users'
|
||||
|
||||
# TODO create helper fields for autofill openid_url and openid_email -> http://pad.openerp.com/web-openid
|
||||
|
||||
_columns = {
|
||||
'openid_url': fields.char('OpenID URL', size=1024),
|
||||
'openid_email': fields.char('OpenID Email', size=256,
|
||||
help="Used for disambiguation in case of a shared OpenID URL"),
|
||||
'openid_key': fields.char('OpenID Key', size=utils.KEY_LENGTH,
|
||||
readonly=True),
|
||||
}
|
||||
|
||||
def _check_openid_url_email(self, cr, uid, ids, context=None):
|
||||
return all(self.search_count(cr, uid, [('active', '=', True), ('openid_url', '=', u.openid_url), ('openid_email', '=', u.openid_email)]) == 1 \
|
||||
for u in self.browse(cr, uid, ids, context) if u.active and u.openid_url)
|
||||
|
||||
def _check_openid_url_email_msg(self, cr, uid, ids, context):
|
||||
return "There is already an active user with this OpenID Email for this OpenID URL"
|
||||
|
||||
_constraints = [
|
||||
(_check_openid_url_email, lambda self, *a, **kw: self._check_openid_url_email_msg(*a, **kw), ['active', 'openid_url', 'openid_email']),
|
||||
]
|
||||
|
||||
def copy(self, cr, uid, rid, defaults=None, context=None):
|
||||
reset_fields = 'openid_url openid_email'.split()
|
||||
reset_values = dict.fromkeys(reset_fields, False)
|
||||
if defaults is None:
|
||||
defaults = reset_values
|
||||
else:
|
||||
defaults = dict(reset_values, **defaults)
|
||||
|
||||
defaults['openid_key'] = False
|
||||
return super(res_users, self).copy(cr, uid, rid, defaults, context)
|
||||
|
||||
def login(self, db, login, password):
|
||||
result = super(res_users, self).login(db, login, password)
|
||||
if result:
|
||||
return result
|
||||
else:
|
||||
with utils.cursor(db) as cr:
|
||||
cr.execute('UPDATE res_users SET date=now() WHERE login=%s AND openid_key=%s AND active=%s RETURNING id',
|
||||
(tools.ustr(login), tools.ustr(password), True))
|
||||
res = cr.fetchone()
|
||||
cr.commit()
|
||||
return res[0] if res else False
|
||||
|
||||
|
||||
def check(self, db, uid, passwd):
|
||||
try:
|
||||
return super(res_users, self).check(db, uid, passwd)
|
||||
except openerp.exceptions.AccessDenied:
|
||||
if not passwd:
|
||||
raise
|
||||
with utils.cursor(db) as cr:
|
||||
cr.execute('''SELECT COUNT(1)
|
||||
FROM res_users
|
||||
WHERE id=%s
|
||||
AND openid_key=%s
|
||||
AND active=%s''',
|
||||
(int(uid), passwd, True))
|
||||
if not cr.fetchone()[0]:
|
||||
raise
|
||||
self._uid_cache.setdefault(db, {})[uid] = passwd
|
||||
|
||||
res_users()
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_users_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<notebook colspan="4" position="inside">
|
||||
<page string="OpenID">
|
||||
<field name="openid_url"/>
|
||||
<field name="openid_email"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
input[name='openid_url'] {
|
||||
background: #fff url(../img/login-bg.gif) no-repeat 1px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.auth_choice {
|
||||
position: static;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.openerp .login .oe_forms .oe_box2 td input[name="db"], .oe_forms .oe_box2 td select[name="db"] {
|
||||
width: 50%;
|
||||
float: left;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.openerp .login .oe_login_right_pane {
|
||||
margin-left: 525px;
|
||||
}
|
||||
.openerp .login form {
|
||||
width: 475px;
|
||||
}
|
||||
|
||||
.openid_providers {
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.openid_providers li {
|
||||
display: block;
|
||||
float: left;
|
||||
margin: 0 1px 3px 2px;
|
||||
}
|
||||
|
||||
.openid_providers a {
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
border: 1px solid #ddd;
|
||||
background: #fff url(../img/openid_16.png) no-repeat 50%;
|
||||
text-indent: -9999px;
|
||||
overflow: hidden;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.openid_providers a.selected {
|
||||
border-color: #9A0404;
|
||||
}
|
||||
|
||||
.openid_providers a[title="Password"] { background-image: url(../img/textfield_key.png); }
|
||||
.openid_providers a[title="AOL"] { background-image: url(../img/aol.png); }
|
||||
.openid_providers a[title="ClaimID"] { background-image: url(../img/claimid.png); }
|
||||
.openid_providers a[title="Google"] { background-image: url(../img/googlefav.png); }
|
||||
.openid_providers a[title="Google Apps"] { background-image: url(../img/marketplace.gif); }
|
||||
.openid_providers a[title="MyOpenID"] { background-image: url(../img/myopenid.png); }
|
||||
.openid_providers a[title="VeriSign"] { background-image: url(../img/verisign.png); }
|
||||
.openid_providers a[title="Yahoo!"] { background-image: url(../img/yahoo.png); }
|
||||
.openid_providers a[title="Launchpad"] { background-image: url(../img/launchpad.png); }
|
||||
|
||||
|
||||
tr.auth_choice.selected {
|
||||
display: table-row;
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 940 B |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 419 B |
|
After Width: | Height: | Size: 328 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 320 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 671 B |
|
After Width: | Height: | Size: 455 B |
|
After Width: | Height: | Size: 520 B |
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,135 @@
|
||||
|
||||
openerp.auth_openid = function(instance) {
|
||||
|
||||
var QWeb = instance.web.qweb;
|
||||
QWeb.add_template('/auth_openid/static/src/xml/auth_openid.xml');
|
||||
|
||||
instance.web.Login = instance.web.Login.extend({
|
||||
start: function() {
|
||||
this._super.apply(this, arguments);
|
||||
var self = this;
|
||||
|
||||
this.$openid_selected_button = $();
|
||||
this.$openid_selected_input = $();
|
||||
this.$openid_selected_provider = null;
|
||||
|
||||
|
||||
var openIdProvider = null;
|
||||
if (this.has_local_storage && this.remember_creditentials) {
|
||||
openIdProvider = localStorage.getItem('openid-provider');
|
||||
}
|
||||
|
||||
if (openIdProvider) {
|
||||
$openid_selected_provider = openIdProvider;
|
||||
this.do_openid_select('a[href="#' + openIdProvider + '"]', openIdProvider, true);
|
||||
|
||||
if (this.has_local_storage && this.remember_creditentials) {
|
||||
this.$openid_selected_input.find('input').val(localStorage.getItem('openid-login'));
|
||||
}
|
||||
}
|
||||
else {
|
||||
this.do_openid_select('a[data-url=""]', 'login,password', true);
|
||||
}
|
||||
|
||||
this.$element.find('a[data-url]').click(function (event) {
|
||||
event.preventDefault();
|
||||
var selected_oidh = $(this).attr('href').substr(1);
|
||||
if (selected_oidh != self.$openid_selected_provider) {
|
||||
self.do_openid_select(this, selected_oidh);
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
|
||||
do_openid_select: function (button, provider, noautosubmit) {
|
||||
var self = this;
|
||||
|
||||
self.$openid_selected_button.add(self.$openid_selected_input).removeClass('selected');
|
||||
self.$openid_selected_button = self.$element.find(button).addClass('selected');
|
||||
|
||||
var input = _(provider.split(',')).map(function(p) { return 'tr[data-provider="'+p+'"]'; }).join(',');
|
||||
self.$openid_selected_input = self.$element.find(input).addClass('selected');
|
||||
|
||||
self.$openid_selected_input.find('input:first').focus();
|
||||
self.$openid_selected_provider = (self.$openid_selected_button.attr('href') || '').substr(1);
|
||||
|
||||
if (self.has_local_storage && self.remember_creditentials) {
|
||||
localStorage.setItem('openid-provider', self.$openid_selected_provider);
|
||||
}
|
||||
|
||||
if (!noautosubmit && self.$openid_selected_input.length == 0) {
|
||||
self.$element.find('form').submit();
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
on_login_invalid: function() {
|
||||
var self = this;
|
||||
var fragment = jQuery.deparam.fragment();
|
||||
if (fragment.loginerror != undefined) {
|
||||
this.rpc('/auth_openid/login/status', {}, function(result) {
|
||||
if (_.contains(['success', 'failure'], result.status) && result.message) {
|
||||
self.notification.warn('Invalid OpenID Login', result.message);
|
||||
}
|
||||
if (result.status === 'setup_needed' && result.message) {
|
||||
window.location.replace(result.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
return this._super();
|
||||
},
|
||||
|
||||
on_submit: function(ev) {
|
||||
|
||||
var dataurl = this.$openid_selected_button.attr('data-url');
|
||||
|
||||
if(!dataurl) {
|
||||
// login-password submitted
|
||||
this._super(ev);
|
||||
} else {
|
||||
ev.preventDefault();
|
||||
|
||||
var id = this.$openid_selected_input.find('input').val();
|
||||
if (this.has_local_storage && this.remember_creditentials) {
|
||||
localStorage.setItem('openid-login', id);
|
||||
}
|
||||
|
||||
var db = this.$element.find("form [name=db]").val();
|
||||
var openid_url = dataurl.replace('{id}', id);
|
||||
|
||||
this.do_openid_login(db, openid_url);
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
do_openid_login: function(db, openid_url) {
|
||||
var self = this;
|
||||
this.rpc('/auth_openid/login/verify', {'db': db, 'url': openid_url}, function(result) {
|
||||
if (result.error) {
|
||||
self.notification.warn(result.title, result.error);
|
||||
self.on_login_invalid();
|
||||
return;
|
||||
}
|
||||
if (result.session_id) {
|
||||
self.session.session_id = result.session_id;
|
||||
self.session.session_save();
|
||||
}
|
||||
if (result.action === 'post') {
|
||||
document.open();
|
||||
document.write(result.value);
|
||||
document.close();
|
||||
} else if (result.action === 'redirect') {
|
||||
window.location.replace(result.value);
|
||||
} else {
|
||||
// XXX display error ?
|
||||
}
|
||||
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
};
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- vim:fdl=1: -->
|
||||
<templates id="template" xml:space="preserve">
|
||||
|
||||
<t t-extend="Login">
|
||||
<t t-jquery=".oe_box2 tr:first td:nth-child(2)" t-operation="append">
|
||||
<ul class="openid_providers">
|
||||
<li><a href="#login,password" title="Password" data-url="" id="btn_password">Password</a></li>
|
||||
<li><a href="#google" title="Google" data-url="https://www.google.com/accounts/o8/id">Google</a></li>
|
||||
<li><a href="#googleapps" title="Google Apps" data-url="https://www.google.com/accounts/o8/site-xrds?hd={id}">Google</a></li>
|
||||
<li><a href="#launchpad" title="Launchpad" data-url="https://launchpad.net/~{id}">Launchpad</a></li>
|
||||
<li><a href="#openid_url" title="OpenID" data-url="{id}">OpenID</a></li>
|
||||
</ul>
|
||||
</t>
|
||||
</t>
|
||||
|
||||
<t t-extend="Login">
|
||||
<t t-jquery=".oe_box2 tr:first" t-operation="after">
|
||||
<tr>
|
||||
<td><label for="googleapps">Google Apps Domain:</label></td>
|
||||
<td><input type="text" name="googleapps" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="launchpad">Username:</label></td>
|
||||
<td><input type="text" name="launchpad" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="openid_url">OpenID URL:</label></td>
|
||||
<td><input type="text" name="openid_url" /></td>
|
||||
</tr>
|
||||
</t>
|
||||
</t>
|
||||
|
||||
<t t-extend="Login">
|
||||
<t t-jquery=".oe_box2 tr:has(input[name!='db'])">
|
||||
//this.addClass('auth_choice'); // XXX for some reason, not all tr tags are HTMLElement's and thus, jQuery decide to not change the class...
|
||||
this.attr('class', 'auth_choice');
|
||||
this.each(function() {
|
||||
var $i = $(this);
|
||||
$i.attr('data-provider', $i.find('input').attr('name'));
|
||||
});
|
||||
</t>
|
||||
</t>
|
||||
|
||||
</templates>
|
||||
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env python
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2010-2011 OpenERP s.a. (<http://openerp.com>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
from contextlib import contextmanager
|
||||
from openerp.modules.registry import RegistryManager
|
||||
|
||||
KEY_LENGTH = 16
|
||||
|
||||
SREG2AX = { # from http://www.axschema.org/types/#sreg
|
||||
'nickname': 'http://axschema.org/namePerson/friendly',
|
||||
'email': 'http://axschema.org/contact/email',
|
||||
'fullname': 'http://axschema.org/namePerson',
|
||||
'dob': 'http://axschema.org/birthDate',
|
||||
'gender': 'http://axschema.org/person/gender',
|
||||
'postcode': 'http://axschema.org/contact/postalCode/home',
|
||||
'country': 'http://axschema.org/contact/country/home',
|
||||
'language': 'http://axschema.org/pref/language',
|
||||
'timezone': 'http://axschema.org/pref/timezone',
|
||||
}
|
||||
|
||||
|
||||
@contextmanager
|
||||
def cursor(db):
|
||||
cr = RegistryManager.get(db).db.cursor()
|
||||
try:
|
||||
yield cr
|
||||
finally:
|
||||
cr.close()
|
||||
|
||||
@@ -0,0 +1,502 @@
|
||||
# Chinese (Traditional) 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 <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 12:38+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\n"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_mail_to_user:0
|
||||
msgid ""
|
||||
"Check this if you want the rule to send an email to the responsible person."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_remind_partner:0
|
||||
msgid "Remind Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_partner_categ_id:0
|
||||
msgid "Partner Category"
|
||||
msgstr "伙伴分類"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_mail_to_watchers:0
|
||||
msgid "Mail to Watchers (CC)"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_state_to:0
|
||||
msgid "Button Pressed"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,model_id:0
|
||||
msgid "Object"
|
||||
msgstr "物件"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_mail_to_email:0
|
||||
msgid "Mail to these Emails"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_state:0
|
||||
msgid "Set State to"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_email_from:0
|
||||
msgid "Email From"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Email Body"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_range_type:0
|
||||
msgid "Days"
|
||||
msgstr "日"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,last_run:0
|
||||
msgid "Last Run"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: code:addons/base_action_rule/base_action_rule.py:313
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_reply_to:0
|
||||
msgid "Reply-To"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_email_cc:0
|
||||
msgid ""
|
||||
"These people will receive a copy of the future communication between partner "
|
||||
"and users by email"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_range_type:0
|
||||
msgid "Minutes"
|
||||
msgstr "分鐘"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,name:0
|
||||
msgid "Rule Name"
|
||||
msgstr "規則名稱"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_remind_partner:0
|
||||
msgid ""
|
||||
"Check this if you want the rule to send a reminder by email to the partner."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Conditions on Model Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_type:0
|
||||
msgid "Deadline"
|
||||
msgstr "最後限期"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr "伙伴"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_subject)s = Object subject"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Email Reminders"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Special Keywords to Be Used in The Body"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_state_from:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: model:ir.actions.act_window,help:base_action_rule.base_action_rule_act
|
||||
msgid ""
|
||||
"Use automated actions to automatically trigger actions for various screens. "
|
||||
"Example: a lead created by a specific user may be automatically set to a "
|
||||
"specific sales team, or an opportunity which still has status pending after "
|
||||
"14 days might trigger an automatic reminder email."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_mail_to_email:0
|
||||
msgid "Email-id of the persons whom mail is to be sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
#: model:ir.module.module,shortdesc:base_action_rule.module_meta_information
|
||||
msgid "Action Rule"
|
||||
msgstr "動作規則"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Fields to Change"
|
||||
msgstr "要變更欄位"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_type:0
|
||||
msgid "Creation Date"
|
||||
msgstr "建立日期"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_type:0
|
||||
msgid "Last Action Date"
|
||||
msgstr "最後動作日期"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_range_type:0
|
||||
msgid "Hours"
|
||||
msgstr "小時"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_id)s = Object ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Delay After Trigger Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_remind_attach:0
|
||||
msgid "Remind with Attachment"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: constraint:ir.cron:0
|
||||
msgid "Invalid arguments"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_user_id:0
|
||||
msgid "Set Responsible to"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_type:0
|
||||
msgid "None"
|
||||
msgstr "無"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_email_to:0
|
||||
msgid ""
|
||||
"Use a python expression to specify the right field on which one than we will "
|
||||
"use for the 'To' field of the header"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_user_phone)s = Responsible phone"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid ""
|
||||
"The rule uses the AND operator. The model must match all non-empty fields so "
|
||||
"that the rule executes the action described in the 'Actions' tab."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_date_range_type:0
|
||||
msgid "Delay type"
|
||||
msgstr "延遲類型"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,regex_name:0
|
||||
msgid ""
|
||||
"Regular expression for matching name of the resource\n"
|
||||
"e.g.: 'urgent.*' will search for records having name starting with the "
|
||||
"string 'urgent'\n"
|
||||
"Note: This is case sensitive search."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_method:0
|
||||
msgid "Call Object Method"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_email_to:0
|
||||
msgid "Email To"
|
||||
msgstr "電郵至"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_mail_to_watchers:0
|
||||
msgid ""
|
||||
"Check this if you want the rule to mark CC(mail to any other person defined "
|
||||
"in actions)."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(partner)s = Partner name"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Note"
|
||||
msgstr "備註"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_email_from:0
|
||||
msgid ""
|
||||
"Use a python expression to specify the right field on which one than we will "
|
||||
"use for the 'From' field of the header"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_date_range:0
|
||||
msgid "Delay after trigger date"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Conditions"
|
||||
msgstr "條件"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,trg_date_range:0
|
||||
msgid ""
|
||||
"Delay After Trigger Date,specifies you can put a negative number. If you "
|
||||
"need a delay before the trigger date, like sending a reminder 15 minutes "
|
||||
"before a meeting."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,active:0
|
||||
msgid "Active"
|
||||
msgstr "活躍"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: code:addons/base_action_rule/base_action_rule.py:314
|
||||
#, python-format
|
||||
msgid "No E-Mail ID Found for your Company address!"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_remind_user:0
|
||||
msgid "Remind Responsible"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: model:ir.module.module,description:base_action_rule.module_meta_information
|
||||
msgid "This module allows to implement action rules for any object."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,sequence:0
|
||||
msgid "Gives the sequence order when displaying a list of rules."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_range_type:0
|
||||
msgid "Months"
|
||||
msgstr "月"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,filter_id:0
|
||||
msgid "Filter"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: selection:base.action.rule,trg_date_type:0
|
||||
msgid "Date"
|
||||
msgstr "日期"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,server_action_id:0
|
||||
msgid ""
|
||||
"Describes the action name.\n"
|
||||
"eg:on which object which action to be taken on basis of which condition"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: model:ir.model,name:base_action_rule.model_ir_cron
|
||||
msgid "ir.cron"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_description)s = Object description"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: constraint:base.action.rule:0
|
||||
msgid "Error: The mail is not well formated"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Email Actions"
|
||||
msgstr "電郵動作"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Email Information"
|
||||
msgstr "電郵資料"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: model:ir.model,name:base_action_rule.model_base_action_rule
|
||||
msgid "Action Rules"
|
||||
msgstr "動作規則"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_mail_body:0
|
||||
msgid "Content of mail"
|
||||
msgstr "郵件內容"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_user_id:0
|
||||
msgid "Responsible"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(partner_email)s = Partner Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_date)s = Creation date"
|
||||
msgstr "%(object_date)s = 建立日期"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_user_email)s = Responsible Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_mail_body:0
|
||||
msgid "Mail body"
|
||||
msgstr "郵件內文"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_remind_user:0
|
||||
msgid ""
|
||||
"Check this if you want the rule to send a reminder by email to the user."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Server Action to be Triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_mail_to_user:0
|
||||
msgid "Mail to Responsible"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,act_email_cc:0
|
||||
msgid "Add Watchers (Cc)"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Conditions on Model Fields"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: model:ir.actions.act_window,name:base_action_rule.base_action_rule_act
|
||||
#: model:ir.ui.menu,name:base_action_rule.menu_base_action_rule_form
|
||||
msgid "Automated Actions"
|
||||
msgstr "自動化動作"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,server_action_id:0
|
||||
msgid "Server Action"
|
||||
msgstr "伺服器動作"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,regex_name:0
|
||||
msgid "Regex on Resource Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,act_remind_attach:0
|
||||
msgid ""
|
||||
"Check this if you want that all documents attached to the object be attached "
|
||||
"to the reminder email sent."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Conditions on Timing"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Actions"
|
||||
msgstr "動作"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: help:base.action.rule,active:0
|
||||
msgid ""
|
||||
"If the active field is set to False, it will allow you to hide the rule "
|
||||
"without removing it."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "%(object_user)s = Responsible name"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,create_date:0
|
||||
msgid "Create Date"
|
||||
msgstr "建立日期"
|
||||
|
||||
#. module: base_action_rule
|
||||
#: view:base.action.rule:0
|
||||
msgid "Conditions on States"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_action_rule
|
||||
#: field:base.action.rule,trg_date_type:0
|
||||
msgid "Trigger Date"
|
||||
msgstr ""
|
||||
@@ -0,0 +1,71 @@
|
||||
# Chinese (Traditional) 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 <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 13:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\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 ""
|
||||
|
||||
#. 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 "基礎 - 密碼加密"
|
||||
|
||||
#. 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 ""
|
||||
@@ -0,0 +1,518 @@
|
||||
# Chinese (Hong Kong) 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 <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 13:44+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\n"
|
||||
|
||||
#. module: base_report_creator
|
||||
#: help:base_report_creator.report.filter,expression:0
|
||||
msgid ""
|
||||
"Provide an expression for the field based on which you want to filter the "
|
||||
"records.\n"
|
||||
" e.g. res_partner.id=3"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: model:ir.model,name:base_report_creator.model_report_menu_create
|
||||
msgid "Menu Create"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report,view_graph_type:0
|
||||
msgid "Graph Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
msgid "Used View"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: wizard_view:base_report_creator.report_filter.fields,set_value_select_field:0
|
||||
msgid "Filter Values"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report.fields,graph_mode:0
|
||||
msgid "Graph Mode"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: code:addons/base_report_creator/base_report_creator.py:310
|
||||
#, python-format
|
||||
msgid ""
|
||||
"These is/are model(s) (%s) in selection which is/are not related to any "
|
||||
"other model"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
msgid "Legend"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
msgid "Graph View"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report.filter,expression:0
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: model:ir.actions.wizard,name:base_report_creator.wizard_set_filter_fields
|
||||
msgid "Set Filter Fields"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.fields,calendar_mode:0
|
||||
msgid "Ending Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: model:ir.model,name:base_report_creator.model_base_report_creator_report_filter
|
||||
msgid "Report Filters"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
#: field:base_report_creator.report,sql_query:0
|
||||
msgid "SQL Query"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
#: view:report.menu.create:0
|
||||
msgid "Create Menu"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.fields,group_method:0
|
||||
msgid "Minimum"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: wizard_field:base_report_creator.report_filter.fields,set_value_select_field,operator:0
|
||||
msgid "Operator"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.filter,condition:0
|
||||
#: selection:base_report_creator.report_filter.fields,set_value_select_field,condition:0
|
||||
msgid "OR"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: model:ir.actions.act_window,name:base_report_creator.base_report_creator_action
|
||||
msgid "Custom Reports"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: code:addons/base_report_creator/base_report_creator.py:310
|
||||
#, python-format
|
||||
msgid "No Related Models!!"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:report.menu.create:0
|
||||
msgid "Menu Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.fields,group_method:0
|
||||
msgid "Sum"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: constraint:base_report_creator.report:0
|
||||
msgid "You must have to give calendar view's color,start date and delay."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report,model_ids:0
|
||||
msgid "Reported Objects"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
msgid "Field List"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report,type:0
|
||||
msgid "Report Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
msgid "Add filter"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: model:ir.actions.act_window,name:base_report_creator.action_report_menu_create
|
||||
msgid "Create Menu for Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report,view_type1:0
|
||||
#: selection:base_report_creator.report,view_type2:0
|
||||
#: selection:base_report_creator.report,view_type3:0
|
||||
msgid "Form"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report,view_type2:0
|
||||
#: selection:base_report_creator.report,view_type3:0
|
||||
#: selection:base_report_creator.report.fields,calendar_mode:0
|
||||
#: selection:base_report_creator.report.fields,graph_mode:0
|
||||
msgid "/"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
#: field:base_report_creator.report.fields,report_id:0
|
||||
#: field:base_report_creator.report.filter,report_id:0
|
||||
#: model:ir.model,name:base_report_creator.model_base_report_creator_report
|
||||
#: model:ir.model,name:base_report_creator.model_base_report_creator_report_result
|
||||
msgid "Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.fields,calendar_mode:0
|
||||
msgid "Starting Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
msgid "Filters on Fields"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report,group_ids:0
|
||||
msgid "Authorized Groups"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report,view_type1:0
|
||||
#: selection:base_report_creator.report,view_type2:0
|
||||
#: selection:base_report_creator.report,view_type3:0
|
||||
msgid "Tree"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report,view_graph_orientation:0
|
||||
msgid "Graph Orientation"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
msgid "Authorized Groups (empty for all)"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
msgid "Security"
|
||||
msgstr "保安"
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:report.menu.create,menu_name:0
|
||||
msgid "Menu Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.filter,condition:0
|
||||
#: selection:base_report_creator.report_filter.fields,set_value_select_field,condition:0
|
||||
msgid "AND"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: constraint:base_report_creator.report:0
|
||||
msgid "You can not display field which are not stored in Database."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report.fields,calendar_mode:0
|
||||
msgid "Calendar Mode"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: model:ir.model,name:base_report_creator.model_base_report_creator_report_fields
|
||||
msgid "Display Fields"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.fields,graph_mode:0
|
||||
msgid "Y Axis"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report,view_type1:0
|
||||
#: selection:base_report_creator.report,view_type2:0
|
||||
#: selection:base_report_creator.report,view_type3:0
|
||||
msgid "Calendar"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report,view_type1:0
|
||||
#: selection:base_report_creator.report,view_type2:0
|
||||
#: selection:base_report_creator.report,view_type3:0
|
||||
msgid "Graph"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: wizard_field:base_report_creator.report_filter.fields,set_value_select_field,field_id:0
|
||||
msgid "Field Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: wizard_view:base_report_creator.report_filter.fields,set_value_select_field:0
|
||||
msgid "Set Filter Values"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report,view_graph_orientation:0
|
||||
msgid "Vertical"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report,type:0
|
||||
msgid "Rows And Columns Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
msgid "General Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: help:base_report_creator.report.fields,sequence:0
|
||||
msgid "Gives the sequence order when displaying a list of fields."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: wizard_view:base_report_creator.report_filter.fields,init:0
|
||||
msgid "Select Field to filter"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report,active:0
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report,view_graph_orientation:0
|
||||
msgid "Horizontal"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report.fields,group_method:0
|
||||
msgid "Grouping Method"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report.filter,condition:0
|
||||
#: wizard_field:base_report_creator.report_filter.fields,set_value_select_field,condition:0
|
||||
msgid "Condition"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.fields,group_method:0
|
||||
msgid "Count"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.fields,graph_mode:0
|
||||
msgid "X Axis"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:report.menu.create,menu_parent_id:0
|
||||
msgid "Parent Menu"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: wizard_button:base_report_creator.report_filter.fields,set_value_select_field,set_value:0
|
||||
msgid "Confirm Filter"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report.filter,name:0
|
||||
msgid "Filter Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
msgid "Open Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.fields,group_method:0
|
||||
msgid "Grouped"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
#: model:ir.module.module,shortdesc:base_report_creator.module_meta_information
|
||||
msgid "Report Creator"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: wizard_button:base_report_creator.report_filter.fields,init,end:0
|
||||
#: wizard_button:base_report_creator.report_filter.fields,set_value_select_field,end:0
|
||||
#: view:report.menu.create:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: constraint:base_report_creator.report:0
|
||||
msgid "You can apply aggregate function to the non calculated field."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report,menu_id:0
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report,view_type1:0
|
||||
msgid "First View"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.fields,calendar_mode:0
|
||||
msgid "Delay"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report.fields,field_id:0
|
||||
msgid "Field"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.fields,calendar_mode:0
|
||||
msgid "Unique Colors"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: help:base_report_creator.report,active:0
|
||||
msgid ""
|
||||
"If the active field is set to False, it will allow you to hide the report "
|
||||
"without removing it."
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report,view_graph_type:0
|
||||
msgid "Pie Chart"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report,view_type3:0
|
||||
msgid "Third View"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.fields,calendar_mode:0
|
||||
msgid "End Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report,name:0
|
||||
msgid "Report Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
msgid "Fields"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.fields,group_method:0
|
||||
msgid "Average"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
msgid "Use %(uid)s to filter by the connected user"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report.fields,group_method:0
|
||||
msgid "Maximum"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: wizard_button:base_report_creator.report_filter.fields,init,set_value_select_field:0
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: wizard_field:base_report_creator.report_filter.fields,set_value_select_field,value:0
|
||||
msgid "Values"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: selection:base_report_creator.report,view_graph_type:0
|
||||
msgid "Bar Chart"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report,view_type2:0
|
||||
msgid "Second View"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:report.menu.create:0
|
||||
msgid "Create Menu For This Report"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
msgid "View parameters"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: field:base_report_creator.report.fields,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: wizard_field:base_report_creator.report_filter.fields,init,field_id:0
|
||||
msgid "Filter Field"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
#: field:base_report_creator.report,field_ids:0
|
||||
msgid "Fields to Display"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: view:base_report_creator.report:0
|
||||
#: field:base_report_creator.report,filter_ids:0
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_report_creator
|
||||
#: model:ir.module.module,description:base_report_creator.module_meta_information
|
||||
msgid ""
|
||||
"This module allows you to create any statistic\n"
|
||||
"report on several objects. It's a SQL query builder and browser\n"
|
||||
"for and users.\n"
|
||||
"\n"
|
||||
"After installing the module, it adds a menu to define custom report in\n"
|
||||
"the \"Dashboard\" menu.\n"
|
||||
msgstr ""
|
||||
@@ -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:14+0000\n"
|
||||
"PO-Revision-Date: 2009-01-30 12:44+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"PO-Revision-Date: 2011-09-27 14:38+0000\n"
|
||||
"Last-Translator: Walter Cheuk <wwycheuk@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:28+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\n"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.model,name:base_report_designer.model_base_report_sxw
|
||||
@@ -24,12 +24,12 @@ msgstr ""
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
msgid "OpenERP Report Designer Configuration"
|
||||
msgstr ""
|
||||
msgstr "OpenERP 報表設計師配置"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.module.module,shortdesc:base_report_designer.module_meta_information
|
||||
msgid "Report designer interface module"
|
||||
msgstr ""
|
||||
msgstr "報表設計師介面模組"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
@@ -41,7 +41,7 @@ msgstr ""
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.file.sxw:0
|
||||
msgid "Upload the modified report"
|
||||
msgstr ""
|
||||
msgstr "上載已修改報表"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.module.module,description:base_report_designer.module_meta_information
|
||||
@@ -59,7 +59,7 @@ msgstr ""
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.file.sxw:0
|
||||
msgid "The .SXW report"
|
||||
msgstr ""
|
||||
msgstr ".SXW 報表"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.model,name:base_report_designer.model_base_report_designer_installer
|
||||
@@ -69,33 +69,33 @@ msgstr ""
|
||||
#. module: base_report_designer
|
||||
#: field:base_report_designer.installer,description:0
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
msgstr "說明"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
msgid "_Close"
|
||||
msgstr ""
|
||||
msgstr "關閉(_C)"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.rml.save:0
|
||||
msgid "The RML report"
|
||||
msgstr ""
|
||||
msgstr "RML 報表"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
msgstr "配置"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
msgid "title"
|
||||
msgstr ""
|
||||
msgstr "標題"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: field:base.report.file.sxw,report_id:0
|
||||
#: field:base.report.sxw,report_id:0
|
||||
msgid "Report"
|
||||
msgstr ""
|
||||
msgstr "報表"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.model,name:base_report_designer.model_base_report_rml_save
|
||||
@@ -105,62 +105,62 @@ msgstr ""
|
||||
#. module: base_report_designer
|
||||
#: model:ir.ui.menu,name:base_report_designer.menu_action_report_designer_wizard
|
||||
msgid "Report Designer"
|
||||
msgstr ""
|
||||
msgstr "報表設計師"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: field:base_report_designer.installer,name:0
|
||||
msgid "File name"
|
||||
msgstr ""
|
||||
msgstr "檔案名稱"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.file.sxw:0
|
||||
#: view:base.report.sxw:0
|
||||
msgid "Get a report"
|
||||
msgstr ""
|
||||
msgstr "取得報表"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
#: model:ir.actions.act_window,name:base_report_designer.action_report_designer_wizard
|
||||
msgid "OpenERP Report Designer"
|
||||
msgstr ""
|
||||
msgstr "OpenERP 報表設計師"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.sxw:0
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
msgstr "繼續"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: field:base.report.rml.save,file_rml:0
|
||||
msgid "Save As"
|
||||
msgstr ""
|
||||
msgstr "另存為..."
|
||||
|
||||
#. module: base_report_designer
|
||||
#: help:base_report_designer.installer,plugin_file:0
|
||||
msgid ""
|
||||
"OpenObject Report Designer plug-in file. Save as this file and install this "
|
||||
"plug-in in OpenOffice."
|
||||
msgstr ""
|
||||
msgstr "OpenObject 報表設計師插件檔。儲存此檔並於 OpenOffice 安裝此插件。"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.rml.save:0
|
||||
msgid "Save RML FIle"
|
||||
msgstr ""
|
||||
msgstr "儲存 RML 檔案"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: field:base.report.file.sxw,file_sxw:0
|
||||
#: field:base.report.file.sxw,file_sxw_upload:0
|
||||
msgid "Your .SXW file"
|
||||
msgstr ""
|
||||
msgstr "您的 .SXW 檔案"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
msgid "Installation and Configuration Steps"
|
||||
msgstr ""
|
||||
msgstr "安裝及配置步驟"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: field:base_report_designer.installer,progress:0
|
||||
msgid "Configuration Progress"
|
||||
msgstr ""
|
||||
msgstr "配置進度"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.file.sxw:0
|
||||
@@ -174,17 +174,17 @@ msgstr ""
|
||||
#. module: base_report_designer
|
||||
#: view:base_report_designer.installer:0
|
||||
msgid "Skip"
|
||||
msgstr ""
|
||||
msgstr "略過"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: field:base_report_designer.installer,config_logo:0
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
msgstr "圖像"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.actions.act_window,name:base_report_designer.action_view_base_report_sxw
|
||||
msgid "Base Report sxw"
|
||||
msgstr ""
|
||||
msgstr "基礎報表 sxw"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.model,name:base_report_designer.model_base_report_file_sxw
|
||||
@@ -194,19 +194,19 @@ msgstr ""
|
||||
#. module: base_report_designer
|
||||
#: field:base_report_designer.installer,plugin_file:0
|
||||
msgid "OpenObject Report Designer Plug-in"
|
||||
msgstr ""
|
||||
msgstr "OpenObject 報表設計師插件"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.actions.act_window,name:base_report_designer.action_report_designer_installer
|
||||
msgid "OpenERP Report Designer Installation"
|
||||
msgstr ""
|
||||
msgstr "OpenERP 報表設計師安裝"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.file.sxw:0
|
||||
#: view:base.report.rml.save:0
|
||||
#: view:base.report.sxw:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
msgstr "取消"
|
||||
|
||||
#. module: base_report_designer
|
||||
#: model:ir.model,name:base_report_designer.model_ir_actions_report_xml
|
||||
@@ -216,4 +216,4 @@ msgstr ""
|
||||
#. module: base_report_designer
|
||||
#: view:base.report.sxw:0
|
||||
msgid "Select your report"
|
||||
msgstr ""
|
||||
msgstr "選取您的報表"
|
||||
|
||||
@@ -289,7 +289,7 @@ class specify_partner_terminology(osv.osv_memory):
|
||||
field_ref = f_id.model_id.model + ',' + f_id.name
|
||||
self.make_translations(cr, uid, ids, field_ref, 'field', f_id.field_description, _case_insensitive_replace(f_id.field_description,'Customer',o.partner), context=context)
|
||||
#translate help tooltip of field
|
||||
for obj in self.pool.obj_pool.values():
|
||||
for obj in self.pool.models.values():
|
||||
for field_name, field_rec in obj._columns.items():
|
||||
if field_rec.help.lower().count('customer'):
|
||||
field_ref = obj._name + ',' + field_name
|
||||
|
||||
@@ -0,0 +1,289 @@
|
||||
# Chinese (Traditional) 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 <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 14:38+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\n"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.actions.act_window,name:base_synchro.action_view_base_synchro
|
||||
msgid "Base Synchronization"
|
||||
msgstr "基礎同步化"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,server_db:0
|
||||
msgid "Server Database"
|
||||
msgstr "伺服器資料庫"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.server:0
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro_server
|
||||
msgid "Synchronized server"
|
||||
msgstr "同步化伺服器"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj.avoid,name:0
|
||||
msgid "Field Name"
|
||||
msgstr "欄位名稱"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,synchronize_date:0
|
||||
msgid "Latest Synchronization"
|
||||
msgstr "最新同步化"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro,user_id:0
|
||||
msgid "Send Result To"
|
||||
msgstr "將結果發送至"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro_obj_avoid
|
||||
msgid "Fields to not synchronize"
|
||||
msgstr "不同步化之欄位"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "_Close"
|
||||
msgstr "關閉(_C)"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "Transfer Data To Server"
|
||||
msgstr "將資料轉至伺服器"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro_obj
|
||||
msgid "Register Class"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
#: model:ir.actions.act_window,name:base_synchro.action_transfer_tree
|
||||
#: model:ir.ui.menu,name:base_synchro.transfer_menu_id
|
||||
msgid "Synchronized objects"
|
||||
msgstr "同步化物件"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,obj_ids:0
|
||||
msgid "Models"
|
||||
msgstr "模型"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj.avoid,obj_id:0
|
||||
#: view:base.synchro.obj.line:0
|
||||
#: field:base.synchro.obj.line,obj_id:0
|
||||
msgid "Object"
|
||||
msgstr "物件"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,login:0
|
||||
msgid "User Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
#: view:base.synchro.obj.line:0
|
||||
msgid "Group By"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: selection:base.synchro.obj,action:0
|
||||
msgid "Upload"
|
||||
msgstr "上載"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
msgid "Latest synchronization"
|
||||
msgstr "最新同步化"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.module.module,description:base_synchro.module_meta_information
|
||||
msgid "Synchronization with all objects."
|
||||
msgstr "與所有物件同步化。"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj.line:0
|
||||
#: field:base.synchro.obj.line,name:0
|
||||
msgid "Date"
|
||||
msgstr "日期"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,password:0
|
||||
msgid "Password"
|
||||
msgstr "密碼"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,avoid_ids:0
|
||||
msgid "Fields Not Sync."
|
||||
msgstr "無同步化欄位"
|
||||
|
||||
#. module: base_synchro
|
||||
#: selection:base.synchro.obj,action:0
|
||||
msgid "Both"
|
||||
msgstr "兩者"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,name:0
|
||||
msgid "Name"
|
||||
msgstr "名稱"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
msgid "Fields"
|
||||
msgstr "欄位"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj.line:0
|
||||
msgid "Transfered Ids Details"
|
||||
msgstr "已傳送 Ids 詳情"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,action:0
|
||||
msgid "Synchronisation direction"
|
||||
msgstr "同步化方向"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,server_id:0
|
||||
msgid "Server"
|
||||
msgstr "伺服器"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_obj_line_tree
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro_obj_line
|
||||
#: model:ir.ui.menu,name:base_synchro.menu_action_base_synchro_obj_line_tree
|
||||
msgid "Synchronized instances"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,active:0
|
||||
msgid "Active"
|
||||
msgstr "作用中"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
#: field:base.synchro.obj,model_id:0
|
||||
msgid "Object to synchronize"
|
||||
msgstr "要同步化物件"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.module.module,shortdesc:base_synchro.module_meta_information
|
||||
msgid "Base Synchro"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_server_tree
|
||||
#: model:ir.ui.menu,name:base_synchro.synchro_server_tree_menu_id
|
||||
msgid "Servers to be synchronized"
|
||||
msgstr "要同步化伺服器"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro.obj:0
|
||||
msgid "Transfer Details"
|
||||
msgstr "傳送詳情"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj.line,remote_id:0
|
||||
msgid "Remote Id"
|
||||
msgstr "遠端 Id"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,line_id:0
|
||||
msgid "Ids Affected"
|
||||
msgstr "受影響 Ids"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.ui.menu,name:base_synchro.next_id_63
|
||||
msgid "History"
|
||||
msgstr "歷史紀錄"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.ui.menu,name:base_synchro.next_id_62
|
||||
#: model:ir.ui.menu,name:base_synchro.synch_config
|
||||
msgid "Synchronization"
|
||||
msgstr "同步化"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,domain:0
|
||||
msgid "Domain"
|
||||
msgstr "領域"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "_Synchronize"
|
||||
msgstr "同步化(_S)"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "OK"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,name:0
|
||||
msgid "Server name"
|
||||
msgstr "伺服器名稱"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr "次序"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid ""
|
||||
"The synchronisation has been started.You will receive a request when it's "
|
||||
"done."
|
||||
msgstr "同步化已開始。完成時會收到要求。"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.server,server_port:0
|
||||
msgid "Server Port"
|
||||
msgstr "伺服器連接埠"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.ui.menu,name:base_synchro.menu_action_view_base_synchro
|
||||
msgid "Synchronize objects"
|
||||
msgstr "同步化物件"
|
||||
|
||||
#. module: base_synchro
|
||||
#: view:base.synchro:0
|
||||
msgid "Synchronization Complited!"
|
||||
msgstr "同步化完成!"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.model,name:base_synchro.model_base_synchro
|
||||
msgid "base.synchro"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro.obj.line,local_id:0
|
||||
msgid "Local Id"
|
||||
msgstr "本機 Id"
|
||||
|
||||
#. module: base_synchro
|
||||
#: model:ir.actions.act_window,name:base_synchro.actions_regclass_tree
|
||||
#: model:ir.actions.act_window,name:base_synchro.actions_transfer_line_form
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_synchro
|
||||
#: selection:base.synchro.obj,action:0
|
||||
msgid "Download"
|
||||
msgstr "下載"
|
||||
|
||||
#. module: base_synchro
|
||||
#: field:base.synchro,server_url:0
|
||||
#: field:base.synchro.server,server_url:0
|
||||
msgid "Server URL"
|
||||
msgstr "伺服器 URL"
|
||||
@@ -0,0 +1,32 @@
|
||||
# Chinese (Traditional) 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 <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 14:45+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\n"
|
||||
|
||||
#. module: base_tools
|
||||
#: model:ir.module.module,shortdesc:base_tools.module_meta_information
|
||||
msgid "Common base for tools modules"
|
||||
msgstr "工具模組共同基礎"
|
||||
|
||||
#. module: base_tools
|
||||
#: model:ir.module.module,description:base_tools.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" "
|
||||
@@ -381,7 +381,7 @@ class crm_case(crm_base):
|
||||
default.update({ 'date_closed': False, })
|
||||
if self._columns.get('date_open'):
|
||||
default.update({ 'date_open': False })
|
||||
return super(osv.osv, self).copy(cr, uid, id, default, context=context)
|
||||
return super(crm_case, self).copy(cr, uid, id, default, context=context)
|
||||
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
|
||||
@@ -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-01-27 05:08+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 07:26+0000\n"
|
||||
"Last-Translator: Walter Cheuk <wwycheuk@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:19+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\n"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.lead.report:0
|
||||
@@ -78,7 +78,7 @@ msgstr "今日"
|
||||
#. module: crm
|
||||
#: view:crm.merge.opportunity:0
|
||||
msgid "Select Opportunities"
|
||||
msgstr "選取機會"
|
||||
msgstr "選擇機會"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting: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
|
||||
@@ -249,7 +249,7 @@ msgstr ""
|
||||
#: view:res.partner:0
|
||||
#, python-format
|
||||
msgid "Phone Call"
|
||||
msgstr "打電話"
|
||||
msgstr "致電"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.lead,optout:0
|
||||
@@ -260,7 +260,7 @@ msgstr ""
|
||||
#: code:addons/crm/crm_opportunity.py:108
|
||||
#, python-format
|
||||
msgid "The opportunity '%s' has been marked as lost."
|
||||
msgstr ""
|
||||
msgstr "「%s」機會已標為丟失。"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.actions.act_window,help:crm.action_report_crm_lead
|
||||
@@ -309,7 +309,7 @@ msgid ""
|
||||
"If you select Merge with existing Opportunity, the lead details(with the "
|
||||
"communication history) will be merged with existing Opportunity of Selected "
|
||||
"partner."
|
||||
msgstr ""
|
||||
msgstr "如選擇與現有機會合併,潛在客戶之詳情(包括通訊記錄)會與選取之伙伴的現有機會合併。"
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.meeting,class:0
|
||||
@@ -389,7 +389,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:process.transition,name:crm.process_transition_opportunitymeeting0
|
||||
msgid "Opportunity Meeting"
|
||||
msgstr ""
|
||||
msgstr "商機會談"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.lead.report,delay_close:0
|
||||
@@ -400,7 +400,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:process.node,note:crm.process_node_opportunities0
|
||||
msgid "When a real project/opportunity is detected"
|
||||
msgstr ""
|
||||
msgstr "當偵測到真正專案/機會"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.installer,crm_fundraising:0
|
||||
@@ -446,7 +446,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_crm_lead2opportunity_action
|
||||
msgid "Convert/Merge Opportunity"
|
||||
msgstr ""
|
||||
msgstr "轉變/合併機會"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.lead,write_date:0
|
||||
@@ -457,7 +457,7 @@ msgstr "更新日期"
|
||||
#: view:crm.lead2opportunity.action:0
|
||||
#: field:crm.lead2opportunity.action,name:0
|
||||
msgid "Select Action"
|
||||
msgstr ""
|
||||
msgstr "選擇動作"
|
||||
|
||||
#. module: crm
|
||||
#: field:base.action.rule,trg_categ_id:0
|
||||
@@ -475,7 +475,7 @@ msgstr "分類"
|
||||
#. module: crm
|
||||
#: view:crm.lead.report:0
|
||||
msgid "#Opportunities"
|
||||
msgstr ""
|
||||
msgstr "#機會"
|
||||
|
||||
#. module: crm
|
||||
#: model:crm.case.resource.type,name:crm.type_oppor2
|
||||
@@ -495,7 +495,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: view:crm.lead.report:0
|
||||
msgid "Opportunity Analysis"
|
||||
msgstr ""
|
||||
msgstr "機會分析"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.meeting,location:0
|
||||
@@ -525,7 +525,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:process.transition,note:crm.process_transition_opportunitymeeting0
|
||||
msgid "Normal or phone meeting for opportunity"
|
||||
msgstr ""
|
||||
msgstr "與機會的正常或電話會談"
|
||||
|
||||
#. module: crm
|
||||
#: model:process.node,note:crm.process_node_leads0
|
||||
@@ -544,7 +544,7 @@ msgstr ""
|
||||
#: model:ir.actions.act_window,name:crm.crm_partner2opportunity
|
||||
#, python-format
|
||||
msgid "Create Opportunity"
|
||||
msgstr ""
|
||||
msgstr "建立機會"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.installer:0
|
||||
@@ -631,7 +631,7 @@ msgstr "滿意度調查"
|
||||
msgid ""
|
||||
"Thick this box if you want that on escalation, the responsible of this sale "
|
||||
"team automatically becomes responsible of the lead/opportunity escaladed"
|
||||
msgstr ""
|
||||
msgstr "如想提升注意級別,勾選此項;此銷售隊伍之負責人會自動成為已提升注意潛在客戶/機會之負責人"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.installer,outlook:0
|
||||
@@ -671,7 +671,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: view:crm.phonecall.report:0
|
||||
msgid "#Phone calls"
|
||||
msgstr ""
|
||||
msgstr "致電數"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.segmentation,categ_id:0
|
||||
@@ -691,7 +691,7 @@ 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 ""
|
||||
msgstr "渠道代表該顧客之不同通訊模式。對於每個商機,您可指明此機會來源之管道。"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm_meeting.py:93
|
||||
@@ -720,7 +720,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: view:res.users:0
|
||||
msgid "Current Activity"
|
||||
msgstr "目前活動"
|
||||
msgstr "當前動態"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.meeting,exrule:0
|
||||
@@ -835,7 +835,7 @@ msgstr "停止處理"
|
||||
#. module: crm
|
||||
#: view:crm.phonecall:0
|
||||
msgid "Search Phonecalls"
|
||||
msgstr ""
|
||||
msgstr "搜尋致電"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.lead2opportunity.partner:0
|
||||
@@ -953,7 +953,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: view:crm.phonecall2opportunity:0
|
||||
msgid "Convert To Opportunity "
|
||||
msgstr ""
|
||||
msgstr "轉變為機會 "
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.case.stage,sequence:0
|
||||
@@ -1016,7 +1016,7 @@ msgstr "三月"
|
||||
#: code:addons/crm/crm_lead.py:230
|
||||
#, python-format
|
||||
msgid "The opportunity '%s' has been closed."
|
||||
msgstr ""
|
||||
msgstr "「%s」機會已結束。"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.lead,day_open:0
|
||||
@@ -1033,7 +1033,7 @@ msgstr "將時間顯示為"
|
||||
#: view:crm.phonecall2partner:0
|
||||
#, python-format
|
||||
msgid "Create Partner"
|
||||
msgstr ""
|
||||
msgstr "建立伙伴"
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.segmentation.line,expr_operator:0
|
||||
@@ -1056,7 +1056,7 @@ msgstr ""
|
||||
#, python-format
|
||||
msgid ""
|
||||
"There are no other 'Open' or 'Pending' Opportunities for the partner '%s'."
|
||||
msgstr ""
|
||||
msgstr "「%s」伙伴並無「開放」或「待處理」之機會。"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.lead:0
|
||||
@@ -1105,7 +1105,7 @@ msgstr ""
|
||||
#: field:crm.meeting,date_action_next:0
|
||||
#: field:crm.phonecall,date_action_next:0
|
||||
msgid "Next Action"
|
||||
msgstr ""
|
||||
msgstr "下個動作"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.meeting,end_date:0
|
||||
@@ -1128,7 +1128,7 @@ msgstr ""
|
||||
#: code:addons/crm/wizard/crm_phonecall_to_opportunity.py:57
|
||||
#, python-format
|
||||
msgid "Closed/Cancelled Phone Call Could not convert into Opportunity"
|
||||
msgstr ""
|
||||
msgstr "已結束/已取消之致電不能轉為機會"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.segmentation:0
|
||||
@@ -1353,7 +1353,7 @@ msgstr "已處理最大伙伴ID"
|
||||
#: model:ir.actions.act_window,name:crm.action_report_crm_phonecall
|
||||
#: model:ir.ui.menu,name:crm.menu_report_crm_phonecalls_tree
|
||||
msgid "Phone Calls Analysis"
|
||||
msgstr ""
|
||||
msgstr "致電分析"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.lead.report,opening_date:0
|
||||
@@ -1493,7 +1493,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: field:crm.phonecall2opportunity,name:0
|
||||
msgid "Opportunity Summary"
|
||||
msgstr ""
|
||||
msgstr "機會摘要"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.phonecall.report:0
|
||||
@@ -1584,7 +1584,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_crm_merge_opportunity
|
||||
msgid "Merge two Opportunities"
|
||||
msgstr ""
|
||||
msgstr "合併兩個機會"
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.meeting,end_type:0
|
||||
@@ -1611,7 +1611,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:ir.actions.act_window,name:crm.crm_phonecall_categ_action
|
||||
msgid "Phonecall Categories"
|
||||
msgstr ""
|
||||
msgstr "致電分類"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.meeting:0
|
||||
@@ -1804,7 +1804,7 @@ msgstr "上級團隊"
|
||||
#. module: crm
|
||||
#: field:crm.lead,date_action:0
|
||||
msgid "Next Action Date"
|
||||
msgstr ""
|
||||
msgstr "下個動作日期"
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.segmentation,state:0
|
||||
@@ -1850,7 +1850,7 @@ msgstr ""
|
||||
#: view:crm.phonecall.report:0
|
||||
#: model:ir.actions.act_window,name:crm.act_crm_opportunity_crm_phonecall_new
|
||||
msgid "Phone calls"
|
||||
msgstr ""
|
||||
msgstr "致電"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.lead:0
|
||||
@@ -2070,7 +2070,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:process.node,note:crm.process_node_meeting0
|
||||
msgid "Schedule a normal or phone meeting"
|
||||
msgstr ""
|
||||
msgstr "安排正常或電話會談"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:375
|
||||
@@ -2331,7 +2331,7 @@ msgstr ""
|
||||
#: model:ir.ui.menu,name:crm.menu_crm_case_phone
|
||||
#: view:res.partner:0
|
||||
msgid "Phone Calls"
|
||||
msgstr ""
|
||||
msgstr "致電"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.lead.report,delay_open:0
|
||||
@@ -2358,7 +2358,7 @@ msgstr "活躍"
|
||||
#: code:addons/crm/crm_lead.py:306
|
||||
#, python-format
|
||||
msgid "The stage of opportunity '%s' has been changed to '%s'."
|
||||
msgstr ""
|
||||
msgstr "機會階段已由「%s」變為「%s」。"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm_lead.py:282
|
||||
@@ -2414,7 +2414,7 @@ msgstr ""
|
||||
#: field:crm.lead2partner,action:0
|
||||
#: field:crm.phonecall2partner,action:0
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
msgstr "動作"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.installer,crm_claim:0
|
||||
@@ -2544,7 +2544,7 @@ msgstr ""
|
||||
#: view:board.board:0
|
||||
#: model:ir.actions.act_window,name:crm.act_my_oppor
|
||||
msgid "My Open Opportunities"
|
||||
msgstr ""
|
||||
msgstr "我的開放機會"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.actions.act_window,name:crm.open_board_statistical_dash
|
||||
@@ -2585,7 +2585,7 @@ msgstr "會議類型"
|
||||
#: code:addons/crm/wizard/crm_lead_to_opportunity.py:314
|
||||
#, python-format
|
||||
msgid "Merge with Existing Opportunity"
|
||||
msgstr "與既有機會合併"
|
||||
msgstr "與現有機會合併"
|
||||
|
||||
#. module: crm
|
||||
#: help:crm.lead,state:0
|
||||
@@ -2714,7 +2714,7 @@ msgstr ""
|
||||
#: field:crm.meeting,date_action_last:0
|
||||
#: field:crm.phonecall,date_action_last:0
|
||||
msgid "Last Action"
|
||||
msgstr ""
|
||||
msgstr "最後動作"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.meeting,duration:0
|
||||
@@ -3485,7 +3485,7 @@ msgstr "各階段機會"
|
||||
#. module: crm
|
||||
#: model:ir.actions.act_window,name:crm.crm_case_categ_phone_create_partner
|
||||
msgid "Schedule Phone Call"
|
||||
msgstr ""
|
||||
msgstr "安排致電"
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.lead.report,month:0
|
||||
@@ -3564,7 +3564,7 @@ msgstr ""
|
||||
#: code:addons/crm/wizard/crm_merge_opportunities.py:100
|
||||
#, python-format
|
||||
msgid "Merged into Opportunity: %s"
|
||||
msgstr "合併至機會:%s"
|
||||
msgstr "已合併至機會: %s"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/crm.py:347
|
||||
@@ -3584,7 +3584,7 @@ msgstr "分類化"
|
||||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_base_action_rule
|
||||
msgid "Action Rules"
|
||||
msgstr ""
|
||||
msgstr "動作規則"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.meeting,rrule_type:0
|
||||
@@ -3594,7 +3594,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: field:crm.meeting,phonecall_id:0
|
||||
msgid "Phonecall"
|
||||
msgstr ""
|
||||
msgstr "致電"
|
||||
|
||||
#. module: crm
|
||||
#: selection:crm.meeting,week_list:0
|
||||
@@ -3763,7 +3763,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: selection:crm.lead2opportunity.action,name:0
|
||||
msgid "Merge with existing Opportunity"
|
||||
msgstr ""
|
||||
msgstr "與現有機會合併"
|
||||
|
||||
#. module: crm
|
||||
#: field:crm.meeting,select1:0
|
||||
@@ -3816,7 +3816,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: field:res.partner,phonecall_ids:0
|
||||
msgid "Phonecalls"
|
||||
msgstr ""
|
||||
msgstr "致電"
|
||||
|
||||
#. module: crm
|
||||
#: view:crm.lead.report:0
|
||||
|
||||
@@ -92,7 +92,6 @@
|
||||
-
|
||||
!record {model: crm.lead2opportunity.partner, id: crm_lead2opportunity_partner_create_1}:
|
||||
action: 'exist'
|
||||
name: 'existing partner'
|
||||
-
|
||||
Then, Click on "Create Opportunity" button.
|
||||
-
|
||||
@@ -104,7 +103,6 @@
|
||||
-
|
||||
!record {model: crm.lead2opportunity.partner, id: crm_lead2opportunity_partner_create_2}:
|
||||
action: 'nothing'
|
||||
name: 'Do not link to a partner'
|
||||
-
|
||||
Then, Click on "Create Opportunity" button.
|
||||
-
|
||||
|
||||
@@ -37,7 +37,7 @@ class crm_lead2opportunity_partner(osv.osv_memory):
|
||||
('nothing', 'Do not link to a partner')], \
|
||||
'Action', required=True),
|
||||
'name': fields.selection([('convert', 'Convert to Opportunity'), ('merge', 'Merge with existing Opportunity')],'Select Action', required=True),
|
||||
'opportunity_ids': fields.many2many('crm.lead', 'merge_opportunity_rel', 'merge_id', 'opportunity_id', 'Opportunities', domain=[('type', '=', 'opportunity')]),
|
||||
'opportunity_ids': fields.many2many('crm.lead', string='Opportunities', domain=[('type', '=', 'opportunity')]),
|
||||
}
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
@@ -236,7 +236,7 @@ class crm_lead2opportunity_mass_convert(osv.osv_memory):
|
||||
|
||||
|
||||
_columns = {
|
||||
'user_ids': fields.many2many('res.users', 'mass_convert_rel', 'user_id', 'wizard_id', 'Salesmans'),
|
||||
'user_ids': fields.many2many('res.users', string='Salesmans'),
|
||||
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
|
||||
|
||||
}
|
||||
|
||||
@@ -142,7 +142,7 @@ class crm_merge_opportunity(osv.osv_memory):
|
||||
count+=1
|
||||
|
||||
for history in opp.message_ids:
|
||||
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, 'subject' : _("From %s : %s") % (opp.name, history.subject) }, context=context)
|
||||
|
||||
#Notification about loss of information
|
||||
details = []
|
||||
|
||||
@@ -108,6 +108,7 @@
|
||||
'email_to': 'info@axelor.com',
|
||||
'email_from': 'Administrator <admin@openerp.com>',
|
||||
'reply_to': 'sales_openerp@openerp.com',
|
||||
'state': 'draft',
|
||||
'history': 'latest',
|
||||
}
|
||||
ids = self.create(cr, uid, vals, context={'active_id': ref('crm_lead_questionnaireonopenerp0'), 'active_model': 'crm.lead'})
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
</group>
|
||||
<separator string="" colspan="4" />
|
||||
<group col="6" colspan="4">
|
||||
<field name="smtp_server_id" widget="selection" colspan="4"/>
|
||||
<field name="email_from" colspan="4" required="1"/>
|
||||
<field name="email_to" colspan="4" required="1"/>
|
||||
<field name="email_cc" colspan="4"/>
|
||||
|
||||
@@ -264,7 +264,7 @@ class crm_segmentation(osv.osv):
|
||||
}
|
||||
|
||||
_constraints = [
|
||||
(orm.orm._check_recursion, 'Error ! You can not create recursive profiles.', ['parent_id'])
|
||||
(osv.osv._check_recursion, 'Error ! You can not create recursive profiles.', ['parent_id'])
|
||||
]
|
||||
|
||||
def process_continue(self, cr, uid, ids, start=False):
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
# Chinese (Traditional) 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 <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 08:06+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\n"
|
||||
|
||||
#. module: decimal_precision
|
||||
#: field:decimal.precision,digits:0
|
||||
msgid "Digits"
|
||||
msgstr "數字"
|
||||
|
||||
#. module: decimal_precision
|
||||
#: view:decimal.precision:0
|
||||
msgid "Decimal Precision"
|
||||
msgstr "小數精確度"
|
||||
|
||||
#. module: decimal_precision
|
||||
#: model:ir.actions.act_window,name:decimal_precision.action_decimal_precision_form
|
||||
#: model:ir.ui.menu,name:decimal_precision.menu_decimal_precision_form
|
||||
msgid "Decimal Accuracy Definitions"
|
||||
msgstr ""
|
||||
|
||||
#. module: decimal_precision
|
||||
#: model:ir.module.module,description:decimal_precision.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
"This module allows to configure the price accuracy you need for different "
|
||||
"kind\n"
|
||||
"of usage: accounting, sales, purchases, ...\n"
|
||||
"\n"
|
||||
"The decimal precision is configured per company.\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"此模組讓您為會計、銷售、採購...等不同用途設定價錢準確度。\n"
|
||||
"\n"
|
||||
"每間公司之小數精確度可以不同。\n"
|
||||
|
||||
#. module: decimal_precision
|
||||
#: field:decimal.precision,name:0
|
||||
msgid "Usage"
|
||||
msgstr "用途"
|
||||
|
||||
#. module: decimal_precision
|
||||
#: sql_constraint:decimal.precision:0
|
||||
msgid "Only one value can be defined for each given usage!"
|
||||
msgstr "每種用途只可定義一個值!"
|
||||
|
||||
#. module: decimal_precision
|
||||
#: model:ir.module.module,shortdesc:decimal_precision.module_meta_information
|
||||
msgid "Decimal Precision Configuration"
|
||||
msgstr "小數精確度設定"
|
||||
|
||||
#. module: decimal_precision
|
||||
#: model:ir.model,name:decimal_precision.model_decimal_precision
|
||||
msgid "decimal.precision"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Decimal Accuracy"
|
||||
#~ msgstr "小數準確度"
|
||||
@@ -7,19 +7,19 @@ 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-01-28 03:29+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 10:27+0000\n"
|
||||
"Last-Translator: Walter Cheuk <wwycheuk@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:01+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:19+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\n"
|
||||
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "單號參照"
|
||||
msgstr "訂單參考"
|
||||
|
||||
#. module: delivery
|
||||
#: model:product.template,name:delivery.delivery_product_product_template
|
||||
@@ -67,7 +67,7 @@ msgstr "體積"
|
||||
#. module: delivery
|
||||
#: sql_constraint:sale.order:0
|
||||
msgid "Order Reference must be unique !"
|
||||
msgstr "交貨參照不能重覆!"
|
||||
msgstr "訂單參考不能重覆!"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid,line_ids:0
|
||||
@@ -82,17 +82,17 @@ msgstr "交貨單"
|
||||
#. module: delivery
|
||||
#: view:res.partner:0
|
||||
msgid "Deliveries Properties"
|
||||
msgstr ""
|
||||
msgstr "交貨性質"
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.actions.act_window,name:delivery.action_picking_tree4
|
||||
msgid "Picking to be invoiced"
|
||||
msgstr ""
|
||||
msgstr "要開立發票的提貨"
|
||||
|
||||
#. module: delivery
|
||||
#: help:delivery.grid,sequence:0
|
||||
msgid "Gives the sequence order when displaying a list of delivery grid."
|
||||
msgstr ""
|
||||
msgstr "提供顯示交貨格線清單的次序。"
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.grid:0
|
||||
@@ -103,12 +103,12 @@ msgstr "國家"
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "交貨單:"
|
||||
msgstr "交貨單 :"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,variable_factor:0
|
||||
msgid "Variable Factor"
|
||||
msgstr ""
|
||||
msgstr "可變因子"
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.actions.act_window,help:delivery.action_delivery_grid_form
|
||||
@@ -132,7 +132,7 @@ msgstr "固定"
|
||||
#: field:res.partner,property_delivery_carrier:0
|
||||
#: field:sale.order,carrier_id:0
|
||||
msgid "Delivery Method"
|
||||
msgstr "交貨方式"
|
||||
msgstr "交貨方法"
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_stock_move
|
||||
@@ -143,12 +143,12 @@ msgstr "庫存調動"
|
||||
#: code:addons/delivery/delivery.py:141
|
||||
#, python-format
|
||||
msgid "No line matched this order in the choosed delivery grids !"
|
||||
msgstr ""
|
||||
msgstr "選擇的交貨格無一行符合此訂單 !"
|
||||
|
||||
#. module: delivery
|
||||
#: field:stock.picking,carrier_tracking_ref:0
|
||||
msgid "Carrier Tracking Ref"
|
||||
msgstr "運輸公司追蹤編號"
|
||||
msgstr "運輸公司追蹤參考"
|
||||
|
||||
#. module: delivery
|
||||
#: field:stock.picking,weight_net:0
|
||||
@@ -172,7 +172,7 @@ msgstr "警告"
|
||||
#. module: delivery
|
||||
#: view:delivery.grid:0
|
||||
msgid "Grid definition"
|
||||
msgstr ""
|
||||
msgstr "格線定義"
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.sale.order:0
|
||||
@@ -197,12 +197,12 @@ msgstr "銷貨單"
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_delivery_grid
|
||||
msgid "Delivery Grid"
|
||||
msgstr ""
|
||||
msgstr "交貨格線"
|
||||
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "發票交至"
|
||||
msgstr "發票開立對象:"
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_stock_picking
|
||||
@@ -212,7 +212,7 @@ msgstr "提貨清單"
|
||||
#. module: delivery
|
||||
#: model:ir.model,name:delivery.model_delivery_sale_order
|
||||
msgid "Make Delievery"
|
||||
msgstr ""
|
||||
msgstr "進行交貨"
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.module.module,description:delivery.module_meta_information
|
||||
@@ -228,12 +228,12 @@ msgstr ""
|
||||
#. module: delivery
|
||||
#: view:delivery.grid.line:0
|
||||
msgid "Grid Lines"
|
||||
msgstr ""
|
||||
msgstr "格線"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,grid_id:0
|
||||
msgid "Grid"
|
||||
msgstr ""
|
||||
msgstr "網格"
|
||||
|
||||
#. module: delivery
|
||||
#: help:delivery.grid,active:0
|
||||
@@ -245,17 +245,17 @@ msgstr ""
|
||||
#. module: delivery
|
||||
#: field:delivery.grid,zip_to:0
|
||||
msgid "To Zip"
|
||||
msgstr ""
|
||||
msgstr "至郵遞區號"
|
||||
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "單子日期"
|
||||
msgstr "訂單日期"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid,name:0
|
||||
msgid "Grid Name"
|
||||
msgstr ""
|
||||
msgstr "網格名稱"
|
||||
|
||||
#. module: delivery
|
||||
#: view:stock.move:0
|
||||
@@ -287,7 +287,7 @@ msgstr ""
|
||||
#: code:addons/delivery/wizard/delivery_sale_order.py:95
|
||||
#, python-format
|
||||
msgid "No grid available !"
|
||||
msgstr ""
|
||||
msgstr "無可用網格 !"
|
||||
|
||||
#. module: delivery
|
||||
#: selection:delivery.grid.line,operator:0
|
||||
@@ -299,7 +299,7 @@ msgstr ""
|
||||
#: code:addons/delivery/wizard/delivery_sale_order.py:98
|
||||
#, python-format
|
||||
msgid "Order not in draft state !"
|
||||
msgstr ""
|
||||
msgstr "訂單不在草稿階段 !"
|
||||
|
||||
#. module: delivery
|
||||
#: constraint:res.partner:0
|
||||
@@ -314,7 +314,7 @@ msgstr "批次"
|
||||
#. module: delivery
|
||||
#: constraint:stock.move:0
|
||||
msgid "You try to assign a lot which is not from the same product"
|
||||
msgstr ""
|
||||
msgstr "指定了不同產品的批次"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,active:0
|
||||
@@ -325,7 +325,7 @@ msgstr "活躍"
|
||||
#. module: delivery
|
||||
#: report:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr ""
|
||||
msgstr "貨運日期"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,product_id:0
|
||||
@@ -382,7 +382,7 @@ msgstr "運輸公司伙伴"
|
||||
#. module: delivery
|
||||
#: view:res.partner:0
|
||||
msgid "Sales & Purchases"
|
||||
msgstr "銷售&採購"
|
||||
msgstr "銷售 及 購貨"
|
||||
|
||||
#. module: delivery
|
||||
#: selection:delivery.grid.line,operator:0
|
||||
@@ -392,12 +392,12 @@ msgstr ""
|
||||
#. module: delivery
|
||||
#: constraint:stock.move:0
|
||||
msgid "You must assign a production lot for this product"
|
||||
msgstr "須為此產品分配生產批次"
|
||||
msgstr "須為此產品指定生產批次"
|
||||
|
||||
#. module: delivery
|
||||
#: view:delivery.sale.order:0
|
||||
msgid "Create Deliveries"
|
||||
msgstr ""
|
||||
msgstr "進行交貨"
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.actions.act_window,name:delivery.action_delivery_cost
|
||||
@@ -481,7 +481,7 @@ msgstr ""
|
||||
#: code:addons/delivery/wizard/delivery_sale_order.py:98
|
||||
#, python-format
|
||||
msgid "The order state have to be draft to add delivery lines."
|
||||
msgstr ""
|
||||
msgstr "訂單狀態要是草稿才能添加交貨明細。"
|
||||
|
||||
#. module: delivery
|
||||
#: model:ir.module.module,shortdesc:delivery.module_meta_information
|
||||
@@ -491,12 +491,12 @@ msgstr "運輸公司與交貨"
|
||||
#. module: delivery
|
||||
#: field:delivery.carrier,grids_id:0
|
||||
msgid "Delivery Grids"
|
||||
msgstr ""
|
||||
msgstr "交貨網格"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid,sequence:0
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
msgstr "次序"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,list_price:0
|
||||
@@ -507,7 +507,7 @@ msgstr "銷售價"
|
||||
#: view:delivery.grid:0
|
||||
#: field:delivery.grid,state_ids:0
|
||||
msgid "States"
|
||||
msgstr ""
|
||||
msgstr "狀態"
|
||||
|
||||
#. module: delivery
|
||||
#: field:delivery.grid.line,price_type:0
|
||||
|
||||
@@ -65,7 +65,9 @@ class mail_compose_message(osv.osv_memory):
|
||||
|
||||
_columns = {
|
||||
'use_template': fields.boolean('Use Template'),
|
||||
'template_id': fields.selection(_get_templates, 'Template'),
|
||||
'template_id': fields.selection(_get_templates, 'Template',
|
||||
size=-1 # means we want an int db column
|
||||
),
|
||||
}
|
||||
|
||||
def on_change_template(self, cr, uid, ids, use_template, template_id, email_from=None, email_to=None, context=None):
|
||||
|
||||
@@ -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-01-28 15:50+0000\n"
|
||||
"PO-Revision-Date: 2011-09-27 07:58+0000\n"
|
||||
"Last-Translator: Walter Cheuk <wwycheuk@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-05 05:04+0000\n"
|
||||
"X-Generator: Launchpad (build 13830)\n"
|
||||
"X-Launchpad-Export-Date: 2011-09-28 05:19+0000\n"
|
||||
"X-Generator: Launchpad (build 14049)\n"
|
||||
|
||||
#. module: event
|
||||
#: view:event.event:0
|
||||
@@ -717,7 +717,7 @@ msgstr "八月"
|
||||
#: field:res.partner,event_ids:0
|
||||
#: field:res.partner,event_registration_ids:0
|
||||
msgid "unknown"
|
||||
msgstr "不明"
|
||||
msgstr "不詳"
|
||||
|
||||
#. module: event
|
||||
#: selection:report.event.registration,month:0
|
||||
|
||||
@@ -38,7 +38,7 @@ You can manage:
|
||||
'author': 'OpenERP SA',
|
||||
'website': 'http://www.openerp.com',
|
||||
'images': ['images/hr_department.jpeg', 'images/hr_employee.jpeg','images/hr_job_position.jpeg'],
|
||||
'depends': ['base_setup', 'resource', 'board'],
|
||||
'depends': ['base_setup','mail', 'resource', 'board'],
|
||||
'init_xml': [],
|
||||
'update_xml': [
|
||||
'security/hr_security.xml',
|
||||
|
||||
@@ -154,7 +154,9 @@ class hr_employee(osv.osv):
|
||||
'coach_id': fields.many2one('hr.employee', 'Coach'),
|
||||
'job_id': fields.many2one('hr.job', 'Job'),
|
||||
'photo': fields.binary('Photo'),
|
||||
'passport_id':fields.char('Passport No', size=64)
|
||||
'passport_id':fields.char('Passport No', size=64),
|
||||
'color': fields.integer('Color Index'),
|
||||
'city': fields.related('address_id', 'city', type='char', string='City'),
|
||||
}
|
||||
|
||||
def unlink(self, cr, uid, ids, context=None):
|
||||
@@ -203,6 +205,7 @@ class hr_employee(osv.osv):
|
||||
'active': 1,
|
||||
'photo': _get_photo,
|
||||
'marital': 'single',
|
||||
'color': 0,
|
||||
}
|
||||
|
||||
def _check_recursion(self, cr, uid, ids, context=None):
|
||||
|
||||
@@ -125,7 +125,70 @@
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- HR Kanban View -->
|
||||
<record model="ir.ui.view" id="hr_kanban_view_employees">
|
||||
<field name="name">HR - Employess Kanban</field>
|
||||
<field name="model">hr.employee</field>
|
||||
<field name="type">kanban</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban default_group_by="department_id">
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<t t-set="color" t-value="kanban_color(record.color.raw_value || record.name.raw_value)"/>
|
||||
<div t-att-class="color + (record.color.raw_value == 1 ? ' oe_kanban_color_alert' : '')">
|
||||
<div class="oe_kanban_box oe_kanban_color_border">
|
||||
<div class="oe_kanban_box_header oe_kanban_color_bgdark oe_kanban_color_border oe_kanban_draghandle">
|
||||
<table class="oe_kanban_table">
|
||||
<tr>
|
||||
<td class="oe_kanban_title1" align="left" valign="middle"><field name="name"/></td>
|
||||
<td valign="top" width="22">
|
||||
<img t-att-src="kanban_gravatar(record.user_id.value, 22)" class="oe_kanban_gravatar"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger oe_kanban_color_border">
|
||||
<table class="oe_kanban_table">
|
||||
<tr>
|
||||
<td valign="top" width="22">
|
||||
<t t-if="record.photo.raw_value">
|
||||
<img t-att-src="'data:image/png;base64,'+record.photo.raw_value" width='48' height='48'/>
|
||||
</t>
|
||||
<t t-if="!record.photo.raw_value">
|
||||
<img src="/web/static/src/img/employee.png"/>
|
||||
</t>
|
||||
</td>
|
||||
<td>
|
||||
<div class="oe_kanban_title2"><field name="job_id"/></div>
|
||||
<div class="oe_kanban_title3">
|
||||
<field name="department_id"/>
|
||||
<t t-if="record.department_id.raw_value && record.city.raw_value">,</t>
|
||||
<field name="city"/>
|
||||
</div>
|
||||
<div class="oe_kanban_title3">
|
||||
<i><field name="work_email"/>
|
||||
<t t-if="record.work_phone.raw_value && record.work_email.raw_value">,</t>
|
||||
<field name="work_phone"/></i>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="oe_kanban_buttons_set oe_kanban_color_border oe_kanban_color_bglight oe_kanban_box_show_onclick">
|
||||
<div class="oe_kanban_left">
|
||||
<a string="Edit" icon="gtk-edit" type="edit"/>
|
||||
<a string="Change Color" icon="color-picker" type="color" name="color"/>
|
||||
<a string="Send New Email" name="%(mail.action_email_compose_message_wizard)d" icon="terp-mail-message-new" type="action"/>
|
||||
</div>
|
||||
<br class="oe_kanban_clear"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
<record id="open_view_employee_tree" model="ir.actions.act_window">
|
||||
<field name="name">Employees Structure</field>
|
||||
<field name="res_model">hr.employee</field>
|
||||
@@ -149,13 +212,27 @@
|
||||
<field name="name">Employees</field>
|
||||
<field name="res_model">hr.employee</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">tree,form,kanban</field>
|
||||
<field name="domain">[]</field>
|
||||
<field name="context">{"search_default_department_id": department_id,"search_default_active":eval('True')}</field>
|
||||
<field name="view_id" ref="view_employee_tree"/>
|
||||
<field name="search_view_id" ref="view_employee_filter"/>
|
||||
<field name="help">Here you can manage your work force by creating employees and assigning them specific properties in the system. Maintain all employee related information and keep track of anything that needs to be recorded for them. The personal information tab will help you maintain their identity data. The Categories tab gives you the opportunity to assign them related employee categories depending on their position and activities within the company. A category can be a seniority level within the company or a department. The Timesheets tab allows to assign them a specific timesheet and analytic journal where 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.</field>
|
||||
</record>
|
||||
|
||||
<record id="open_view_employee_list_my_tree2" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_employee_tree"/>
|
||||
<field name="act_window_id" ref="open_view_employee_list_my"/>
|
||||
</record>
|
||||
|
||||
<record id="open_view_employee_list_my_form2" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_employee_form"/>
|
||||
<field name="act_window_id" ref="open_view_employee_list_my"/>
|
||||
</record>
|
||||
|
||||
<menuitem action="open_view_employee_list_my" id="menu_open_view_employee_list_my" sequence="3" parent="menu_hr_main"/>
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ class hr_si_so_ask(osv.osv_memory):
|
||||
_columns = {
|
||||
'name': fields.char('Employees name', size=32, required=True, readonly=True),
|
||||
'last_time': fields.datetime('Your last sign out', required=True),
|
||||
'emp_id': fields.char('Empoyee ID', size=32, required=True, readonly=True),
|
||||
'emp_id': fields.many2one('hr.employee', 'Empoyee ID', readonly=True),
|
||||
}
|
||||
|
||||
def _get_empname(self, cr, uid, context=None):
|
||||
@@ -52,10 +52,12 @@ class hr_si_so_ask(osv.osv_memory):
|
||||
|
||||
def sign_in(self, cr, uid, ids, context=None):
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
data['emp_id'] = data['emp_id'] and data['emp_id'][0]
|
||||
return self.pool.get('hr.sign.in.out').sign_in(cr, uid, data, context)
|
||||
|
||||
def sign_out(self, cr, uid, ids, context=None):
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
data['emp_id'] = data['emp_id'] and data['emp_id'][0]
|
||||
return self.pool.get('hr.sign.in.out').sign_out(cr, uid, data, context)
|
||||
|
||||
hr_si_so_ask()
|
||||
@@ -68,7 +70,7 @@ class hr_sign_in_out(osv.osv_memory):
|
||||
_columns = {
|
||||
'name': fields.char('Employees name', size=32, required=True, readonly=True),
|
||||
'state': fields.char('Current state', size=32, required=True, readonly=True),
|
||||
'emp_id': fields.char('Employee ID', size=32, required=True, readonly=True),
|
||||
'emp_id': fields.many2one('hr.employee', 'Empoyee ID', readonly=True),
|
||||
}
|
||||
|
||||
def _get_empid(self, cr, uid, context=None):
|
||||
@@ -88,6 +90,7 @@ class hr_sign_in_out(osv.osv_memory):
|
||||
obj_model = self.pool.get('ir.model.data')
|
||||
att_obj = self.pool.get('hr.attendance')
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
data['emp_id'] = data['emp_id'] and data['emp_id'][0]
|
||||
emp_id = data['emp_id']
|
||||
att_id = att_obj.search(cr, uid, [('employee_id', '=', emp_id)], limit=1, order='name desc')
|
||||
last_att = att_obj.browse(cr, uid, att_id, context=context)
|
||||
@@ -113,6 +116,7 @@ class hr_sign_in_out(osv.osv_memory):
|
||||
obj_model = self.pool.get('ir.model.data')
|
||||
att_obj = self.pool.get('hr.attendance')
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
data['emp_id'] = data['emp_id'] and data['emp_id'][0]
|
||||
emp_id = data['emp_id']
|
||||
att_id = att_obj.search(cr, uid, [('employee_id', '=', emp_id),('action', '!=', 'action')], limit=1, order='name desc')
|
||||
last_att = att_obj.browse(cr, uid, att_id, context=context)
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
<field name="model">hr.holidays</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="red:state == 'refuse';blue:state == 'draft';black:state in ('confirm','validate','validate1')" string="Leaves">
|
||||
<tree colors="red:state == 'refuse';blue:state == 'draft';black:state in ('confirm','validate','validate1')" string="Allocation Requests">
|
||||
<field name="holiday_type"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="category_id"/>
|
||||
@@ -225,7 +225,7 @@
|
||||
<field name="model">hr.holidays</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="red:state == 'refuse';blue:state == ' draft';black:state in ('confirm','validate','validate1')">
|
||||
<tree colors="red:state == 'refuse';blue:state == ' draft';black:state in ('confirm','validate','validate1')" string="Leave Requests">
|
||||
<field name="holiday_type"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="category_id"/>
|
||||
|
||||
@@ -180,6 +180,7 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
multi='day_open', type="float", store=True),
|
||||
'day_close': fields.function(_compute_day, string='Days to Close', \
|
||||
multi='day_close', type="float", store=True),
|
||||
'color': fields.integer('Color Index'),
|
||||
}
|
||||
|
||||
def _get_stage(self, cr, uid, context=None):
|
||||
@@ -194,6 +195,7 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
'priority': lambda *a: '',
|
||||
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c),
|
||||
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'color': 0,
|
||||
}
|
||||
|
||||
def onchange_job(self,cr, uid, ids, job, context=None):
|
||||
@@ -442,6 +444,21 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
res = super(hr_applicant, self).case_reset(cr, uid, ids, *args)
|
||||
self.write(cr, uid, ids, {'date_open': False, 'date_closed': False})
|
||||
return res
|
||||
|
||||
def set_priority(self, cr, uid, ids, priority):
|
||||
"""Set lead priority
|
||||
"""
|
||||
return self.write(cr, uid, ids, {'priority' : priority})
|
||||
|
||||
def set_high_priority(self, cr, uid, ids, *args):
|
||||
"""Set lead priority to high
|
||||
"""
|
||||
return self.set_priority(cr, uid, ids, '1')
|
||||
|
||||
def set_normal_priority(self, cr, uid, ids, *args):
|
||||
"""Set lead priority to normal
|
||||
"""
|
||||
return self.set_priority(cr, uid, ids, '3')
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
if 'stage_id' in vals and vals['stage_id']:
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<record model="ir.actions.act_window" id="crm_case_categ0_act_job">
|
||||
<field name="name">Applicants</field>
|
||||
<field name="res_model">hr.applicant</field>
|
||||
<field name="view_mode">tree,form,graph,calendar</field>
|
||||
<field name="view_mode">tree,form,graph,calendar,kanban</field>
|
||||
<field name="view_id" ref="crm_case_tree_view_job"/>
|
||||
<field name="context">{"search_default_user_id":uid, 'search_default_current': 1,"search_default_department_id": department_id}</field>
|
||||
<field name="search_view_id" ref="view_crm_case_jobs_filter"/>
|
||||
|
||||
@@ -277,7 +277,81 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- hr Applicant Kanban View -->
|
||||
|
||||
<record model="ir.ui.view" id="hr_kanban_view_applicant">
|
||||
<field name="name">Hr Applicants kanban</field>
|
||||
<field name="model">hr.applicant</field>
|
||||
<field name="type">kanban</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban default_group_by="stage_id">
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<t t-set="color" t-value="kanban_color(record.color.raw_value || record.state.raw_value)"/>
|
||||
<div t-att-class="color + (record.priority.raw_value == 1 ? ' oe_kanban_color_alert' : '')">
|
||||
<div class="oe_kanban_box oe_kanban_color_border">
|
||||
<div class="oe_kanban_box_header oe_kanban_color_bgdark oe_kanban_color_border oe_kanban_draghandle">
|
||||
<table class="oe_kanban_table">
|
||||
<tr>
|
||||
<td class="oe_kanban_title1" align="left" valign="middle">
|
||||
<a t-if="record.priority.raw_value == 1" icon="star-on" type="object" name="set_normal_priority" />
|
||||
<a t-if="record.priority.raw_value != 1" icon="star-off" type="object" name="set_high_priority" style="opacity:0.6; filter:alpha(opacity=60);"/>
|
||||
<field name="partner_name"/>
|
||||
</td>
|
||||
<td valign="top" width="22">
|
||||
<img t-att-src="kanban_gravatar(record.user_id.value, 22)" class="oe_kanban_gravatar"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="oe_kanban_box_content oe_kanban_color_bglight oe_kanban_box_show_onclick_trigger oe_kanban_color_border">
|
||||
<table class="oe_kanban_table">
|
||||
<tr>
|
||||
<td>
|
||||
<div class="oe_kanban_right oe_kanban_small">
|
||||
<field name="user_id"/>
|
||||
</div>
|
||||
<div class="oe_kanban_title2">
|
||||
<field name="job_id"/>
|
||||
<t t-if="record.priority.raw_value == 0"></t>
|
||||
<t t-if="record.priority.raw_value == 5">(Not Good)</t>
|
||||
<t t-if="record.priority.raw_value == 4">(On Average)</t>
|
||||
<t t-if="record.priority.raw_value == 3">(Good)</t>
|
||||
<t t-if="record.priority.raw_value == 2">(Very Good)</t>
|
||||
<t t-if="record.priority.raw_value == 1">(Excellent)</t>
|
||||
</div>
|
||||
<div class="oe_kanban_title3">
|
||||
<field name="type_id"/>
|
||||
</div>
|
||||
<div class="oe_kanban_title3">
|
||||
<i><field name="date_action"/><field name="title_action"/></i>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="oe_kanban_buttons_set oe_kanban_color_border oe_kanban_color_bglight oe_kanban_box_show_onclick">
|
||||
<div class="oe_kanban_left">
|
||||
<a string="Edit" icon="gtk-edit" type="edit"/>
|
||||
<a string="Change Color" icon="color-picker" type="color" name="color"/>
|
||||
<a string="Send New Email" name="%(mail.action_email_compose_message_wizard)d" icon="terp-mail-message-new" type="action"/>
|
||||
<a string="Add Internal Note" name="%(crm.action_crm_add_note)d" context="{'model': 'crm.lead' }" icon="terp-document-new" type="action"/>
|
||||
<a name="action_makeMeeting" type="object" string="Schedule Meeting" icon="gtk-redo" />
|
||||
<a t-if="record.survey.raw_value" name="action_print_survey" type="object" string="Print Interview" icon="gtk-print" />
|
||||
</div>
|
||||
<div class="oe_kanban_right">
|
||||
<a name="case_open" string="Mark Won" states="pending,draft" type="object" icon="lead-stage-won" />
|
||||
<a name="case_pending" string="Mark Lost" states="draft,open" type="object" icon="lead-stage-lost" />
|
||||
</div>
|
||||
<br class="oe_kanban_clear"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
# ------------------------------------------------------
|
||||
# HR Job
|
||||
# ------------------------------------------------------
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<group col="9" colspan="8">
|
||||
<field name="state" readonly="1"/>
|
||||
<button name="set_cancel" string="Cancel" type="object" states="open,pending" icon="gtk-cancel"/>
|
||||
<button name="set_open" string="Reactivate Account" type="object" states="pending,cancelled,close" icon="gtk-ok"/>
|
||||
<button name="set_open" string="Reactivate Account" type="object" states="pending,cancelled,close,draft" icon="gtk-ok"/>
|
||||
<button name="set_pending" string="Pending" type="object" states="open" icon="gtk-media-pause"/>
|
||||
<button name="set_close" string="Close" type="object" states="open,pending" icon="terp-dialog-close"/>
|
||||
</group>
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
-
|
||||
!python {model: idea.post.vote}: |
|
||||
uid2 = ref('test_idea_user1')
|
||||
new_id = self.create(cr, uid2, {'vote': 50}, {"active_ids": [ref("idea_idea_0")]})
|
||||
new_id = self.create(cr, uid2, {'vote': "50"}, {"active_ids": [ref("idea_idea_0")]})
|
||||
self.do_vote(cr, uid2, [new_id], {"active_ids": [ref("idea_idea_0")]})
|
||||
|
||||
- |
|
||||
@@ -69,7 +69,7 @@
|
||||
-
|
||||
!python {model: idea.post.vote}: |
|
||||
uid2 = ref('test_idea_user2')
|
||||
new_id = self.create(cr, uid2, {'vote': 100, 'note': 'We can learn many things from technical presentation'}, {"active_ids": [ref("idea_idea_0")]})
|
||||
new_id = self.create(cr, uid2, {'vote': "100", 'note': 'We can learn many things from technical presentation'}, {"active_ids": [ref("idea_idea_0")]})
|
||||
self.do_vote(cr, uid2, [new_id], {'active_ids': [ref('idea_idea_0')]})
|
||||
|
||||
- |
|
||||
|
||||
@@ -117,7 +117,8 @@ class partner_vat_list_13(osv.osv_memory):
|
||||
""" Partner Vat Listing """
|
||||
_name = "partner.vat.list_13"
|
||||
_columns = {
|
||||
'partner_ids': fields.many2many('vat.listing.clients', 'vat_partner_rel', 'vat_id', 'partner_id', 'Clients', required=False, help='You can remove clients/partners which you do not want to show in xml file'),
|
||||
# TODO the referenced model has been deleted at revno 4672.1.2.
|
||||
#'partner_ids': fields.many2many('vat.listing.clients', 'vat_partner_rel', 'vat_id', 'partner_id', 'Clients', required=False, help='You can remove clients/partners which you do not want to show in xml file'),
|
||||
'name': fields.char('File Name', size=32),
|
||||
'msg': fields.text('File created', size=64, readonly=True),
|
||||
'file_save' : fields.binary('Save File', readonly=True),
|
||||
@@ -127,7 +128,8 @@ class partner_vat_list_13(osv.osv_memory):
|
||||
return context.get('partner_ids', [])
|
||||
|
||||
_defaults={
|
||||
'partner_ids': _get_partners
|
||||
# TODO the referenced model has been deleted at revno 4672.1.2.
|
||||
# 'partner_ids': _get_partners
|
||||
}
|
||||
|
||||
def create_xml(self, cursor, user, ids, context=None):
|
||||
|
||||
@@ -83,9 +83,10 @@ class partner_vat_intra(osv.osv_memory):
|
||||
else:
|
||||
data_cmpny = obj_user.browse(cursor, user, user).company_id
|
||||
data = self.read(cursor, user, ids)[0]
|
||||
company_vat = data_cmpny.partner_id.vat.replace(' ','').upper()
|
||||
company_vat = data_cmpny.partner_id.vat
|
||||
if not company_vat:
|
||||
raise osv.except_osv(_('Data Insufficient'),_('No VAT Number Associated with Main Company!'))
|
||||
company_vat = company_vat.replace(' ','').upper()
|
||||
|
||||
seq_controlref = obj_sequence.get(cursor, user, 'controlref')
|
||||
seq_declarantnum = obj_sequence.get(cursor, user, 'declarantnum')
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
<field name="code">EXPF</field>
|
||||
<field name="type">purchase</field>
|
||||
<field name="view_id" ref="account.account_journal_view"/>
|
||||
<field name="sequence_id" ref="account.sequence_journal"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="update_posted" eval="True" />
|
||||
<field name="entry_posted" eval="True" />
|
||||
@@ -17,7 +16,6 @@
|
||||
<field name="code">BCHF</field>
|
||||
<field name="type">cash</field>
|
||||
<field name="view_id" ref="account.account_journal_bank_view"/>
|
||||
<field name="sequence_id" ref="account.sequence_journal"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="update_posted" eval="True" />
|
||||
<field name="entry_posted" eval="True" />
|
||||
@@ -28,7 +26,6 @@
|
||||
<field name="code">BEUR</field>
|
||||
<field name="type">cash</field>
|
||||
<field name="view_id" ref="account.account_journal_bank_view"/>
|
||||
<field name="sequence_id" ref="account.sequence_journal"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="update_posted" eval="True" />
|
||||
<field name="entry_posted" eval="True" />
|
||||
@@ -40,7 +37,6 @@
|
||||
<field name="code">CAI</field>
|
||||
<field name="type">cash</field>
|
||||
<field name="view_id" ref="account.account_journal_bank_view"/>
|
||||
<field name="sequence_id" ref="account.sequence_journal"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="update_posted" eval="True" />
|
||||
<field name="entry_posted" eval="True" />
|
||||
@@ -51,7 +47,6 @@
|
||||
<field name="code">OD</field>
|
||||
<field name="type">general</field>
|
||||
<field name="view_id" ref="account.account_journal_bank_view"/>
|
||||
<field name="sequence_id" ref="account.sequence_journal"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="update_posted" eval="True" />
|
||||
<field name="entry_posted" eval="True" />
|
||||
@@ -63,7 +58,6 @@
|
||||
<field name="type">situation</field>
|
||||
<field name="centralisation">True</field>
|
||||
<field name="view_id" ref="account.account_journal_view"/>
|
||||
<field name="sequence_id" ref="account.sequence_journal"/>
|
||||
<field name="update_posted" eval="True" />
|
||||
</record>
|
||||
|
||||
|
||||